在Android资源中存储与语言无关的字符串

在Android资源中存储与语言无关的字符串,android,internationalization,resources,Android,Internationalization,Resources,我如何在Android项目中存储一些与语言无关的值,如网址。我目前将其存储在我的strings.xml中。这看起来不太好,因为如果我添加了其他语言和翻译,此条目仍将具有相同的值并将被复制 我还想了解一些关于使用I18N创建Android项目的技巧。对于I18N格式,您可以为一个本地用户创建一些资源文件夹: /res/values <- default locale /res/values-fr <- values for french locale ... /res/va

我如何在Android项目中存储一些与语言无关的值,如网址。我目前将其存储在我的
strings.xml
中。这看起来不太好,因为如果我添加了其他语言和翻译,此条目仍将具有相同的值并将被复制


我还想了解一些关于使用I18N创建Android项目的技巧。

对于I18N格式,您可以为一个本地用户创建一些资源文件夹:

/res/values     <- default locale
/res/values-fr  <- values for french locale
...

/res/values对于与语言无关的字符串,只需创建一个带有常量的类:

public class MyIndependentStrings {

public static final String SOME_STRING = "Value";

}
用法:

tvMyTextView.setText(MyIndependentStrings.SOME_STRING);

在这种情况下,您将使用常量,而不是../values/Strings.xml中的i18n字符串。您不需要在翻译的xml文件中再次创建相同的键。如果Android在德语/西班牙语/任何语言文件中找不到
链接
,它将返回到默认
string.xml
中存储的原始密钥


我建议先实现英文版本,然后让别人翻译。

尝试将与语言无关的字符串放入:

\res\values-nodpi\strings.xml

好的,我不知道这个功能。因此,在这种情况下不需要更改代码。其基本思想在应用程序名称的情况下是显而易见的。您不需要将“Awesome”放在所有语言文件中。您还需要调整首选项中的lint设置以避免警告消息。这样,他就不能在xml文件中使用它们“在这种情况下,您将使用常量,而不是../values/Strings.xml中的i18n字符串”-我提到过。