如何避免(某些)我的字符串资源被本地化?
有时我需要多个相同的字符串。例如,在定义首选项时,我需要在preferences.xml和我的java代码中使用首选项键以获取首选项值。要么我可以手动定义两次键(我现在这样做),但我觉得我的键列表变得越来越大,容易出错。
我也可以在我的strins.xml中定义密钥,但后来我担心它会被翻译(迟早(错误?))。我担心这可能导致问题是使用不同的密钥多次存储相同的优先值。如果用户更改语言并重置所有设置怎么办?
有没有办法定义一个字符串 - 可以在代码和xml中访问 - 它们不会作为本地化过程的一部分进行翻译?
答案 0 :(得分:3)
通常,如果仅在默认strings.xml中提供字符串,则它在所有语言环境中显示相同。此外,您可以使用"translatable"属性,该属性将告诉Lint此字符串不是为了翻译而设计的,并且将用于文档目的。
答案 1 :(得分:0)
只需使用translatable=false
即可。我建议将您的偏好键设置为单独的资源文件,因为它更容易管理。
<string name="Key" translatable="false">my key</string>