6

例如,有一个提供多语言支持的应用程序,在我的活动/用户界面中,我调用getResources().getString(R.string.hello)它存在于 strings.xml 中,这样

values\strings.xml
values-ru\strings.xml

现在,当调用getResources().getString(R.string.hello)并需要根据系统语言环境访问字符串时,是否会从values\strings.xmlOR获取字符串values-ru\strings.xml

或者

是否需要根据系统区域设置更改我的应用程序区域设置(保持应用程序区域设置与系统区域设置相同),然后从中检索值getString(),以下链接中建议

  1. 使用特定语言环境中的字符串从默认语言环境获取字符串

  2. 如何在 android 中从不同的语言环境中获取字符串

我已经搜索了各种其他链接,但无法找到解决方案

4

2 回答 2

8
MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

将每个语言环境的字符串值添加到相应的文件中。

在运行时,Android 系统根据当前为用户设备设置的区域设置使用适当的字符串资源集。

有关使用资源进行本地化的信息

http://developer.android.com/guide/topics/resources/localization.html

更多信息 @

http://developer.android.com/training/basics/supporting-devices/languages.html

另请检查以下链接

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/content/ContextWrapper.java/

86     @Override
87     public Resources getResources()
88     {
89         return mBase.getResources();
90     }

返回应用程序包的资源实例。

332 
333     public final String getString(int resId) {
334         return getResources().getString(resId);
335     }

从应用程序包的默认字符串表中返回本地化字符串。参数: resId 字符串的资源id

于 2013-09-05T17:13:33.257 回答
2

它是自动完成的。按照标准,打开的语言在您的语言中,values\strings.xml但如果用户设备将他的语言设置为 ru,则该字符串自动是 on thevalues-ru\strings.xml的语言,依此类推,适用于您放在资源上的所有语言。

您可以在此处阅读有关此主题的更多信息。

在运行时,Android 系统根据当前为用户设备设置的语言环境使用适当的字符串资源集。

于 2013-09-05T17:03:58.920 回答