getResources().getString()如何工作android

Akh*_*ain 5 string multilingual android locale android-resources

例如,有一个提供多语言支持的应用程序,在我的activity/UI中,我调用getResources().getString(R.string.hello)了strings.xml中存在的内容

values\strings.xml
values-ru\strings.xml
Run Code Online (Sandbox Code Playgroud)

现在在调用getResources().getString(R.string.hello)并需要根据系统区域设置访问字符串时,是否会从values\strings.xmlOR中获取字符串values-ru\strings.xml

要么

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

  1. 得到弦外之用字符串,在特定的默认语言环境,语言环境

  2. 如何对获得字符串从 - 不同,语言环境功能于安卓

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

Rag*_*dan 8

MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml
Run Code Online (Sandbox Code Playgroud)

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

在运行时,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     }
Run Code Online (Sandbox Code Playgroud)

返回应用程序包的Res​​ources实例.

332 
333     public final String getString(int resId) {
334         return getResources().getString(resId);
335     }
Run Code Online (Sandbox Code Playgroud)

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