【发布时间】:2013-01-17 13:33:14
【问题描述】:
如何在 Android 项目中存储一些与语言无关的值,例如网站地址。我目前将它存储在我的strings.xml 中。这看起来不太好,好像我添加了另一种语言和翻译,这个条目仍然具有相同的值并且会被复制。
我还想获得一些关于使用 I18N 创建 Android 项目的技巧。
【问题讨论】:
标签: android internationalization resources
如何在 Android 项目中存储一些与语言无关的值,例如网站地址。我目前将它存储在我的strings.xml 中。这看起来不太好,好像我添加了另一种语言和翻译,这个条目仍然具有相同的值并且会被复制。
我还想获得一些关于使用 I18N 创建 Android 项目的技巧。
【问题讨论】:
标签: android internationalization resources
您无需再次在已翻译的 xml 文件中创建相同的密钥。如果 Android 在 German/Spanish/Whatever 语言文件中没有找到 link,它将回退到存储在默认 string.xml 中的原始密钥。
我建议先实现英文版,然后让别人翻译。
【讨论】:
对于 i18n 格式,您可以为一个本地创建一些资源文件夹:
/res/values <- default locale
/res/values-fr <- values for french locale
...
有关更多示例,请阅读文档:http://developer.android.com/guide/topics/resources/localization.html
【讨论】:
对于独立于语言的字符串,只需创建一个带有常量的类:
public class MyIndependentStrings {
public static final String SOME_STRING = "Value";
}
用法:
tvMyTextView.setText(MyIndependentStrings.SOME_STRING);
在这种情况下,您将使用常量而不是来自 ../values/strings.xml 的 i18n 字符串
【讨论】:
尝试将独立于语言的字符串放入:
\res\values-nodpi\strings.xml
【讨论】: