android 中的非本地化字符串

Non-localized strings in android

如何避免(某些)字符串资源本地化?

有时我需要在多个地方使用相同的字符串。例如,在定义首选项时,我需要 preferences.xml 和 java 代码中的首选项键才能获得首选项值。要么我可以手动定义密钥两次(我现在这样做),但我觉得我的密钥列表越来越大并且容易出错。

我也可以在 strins.xml 中定义密钥,但我担心它会被翻译(迟早(错误?))。我担心这可能会导致问题,即使用不同的键多次存储相同的偏好值。如果用户更改语言并且所有设置都被重置怎么办?

有没有办法定义一个字符串 - 在代码和 xml 中都可以访问 - 在本地化过程中不会被翻译?

一般来说,如果您仅在默认 strings.xml 中提供字符串,那么它在所有语言环境中都将显示相同。此外,您可以使用 "translatable" 属性,它会告诉 Lint 该字符串不是为翻译而设计的,而是用于文档目的。

只需使用translatable=false。我建议将您的首选项键放在单独的资源文件中,因为这样更容易管理。

<string name="Key" translatable="false">my key</string>