android - getResources().getString() 是如何工作的

标签 android string locale multilingual android-resources

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

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

现在,当调用 getResources().getString(R.string.hello) 并需要根据系统区域设置访问字符串时,我们将从 values\strings.xml< 获取字符串values-ru\strings.xml?

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

  1. get-string-from-default-locale-using-string-in-specific-locale

  2. how-to-get-string-from-different-locales-in-android

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

最佳答案

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     }

为您的应用程序包返回一个 Resources 实例。

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

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

关于android - getResources().getString() 是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641994/

相关文章:

c++ - 语言环境是否有一个定义负号的 Facet?

python - 将字符串中的随机值替换为随机值

c++ - C++ std::string 的长度(以字节为单位)

cocoa - Cocoa(Touch) 支持有限数量的货币

android - 库项目的依赖项未内置到 APK 中

c - 我怎么知道什么时候应该释放库函数返回的 C 中的字符串?

java - Java 中的多语言本地化

java - 使用 BitmapFactory 加载多个图像 [OutOfMemoryException]

java - 为Android命名主类

android - java.lang.UnsatisfiedLinkError : dlopen failed: libavcodec-57. 所以有意外的 e_machine:40