例如,有一个app提供多语言支持,在我的activity / UI中,我调用了getResources().getString(R.string.hello)
,它存在于strings.xml中,这样
values\strings.xml
values-ru\strings.xml
现在,当调用getResources().getString(R.string.hello)
并需要根据系统区域设置访问字符串时,是否会从values\strings.xml
或values-ru\strings.xml
获取字符串?
OR
是否需要根据系统区域设置更改我的应用区域设置(保持应用区域设置与系统区域设置相同),然后从getString()
检索值,以下链接中建议的内容
答案 0 :(得分: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
另请查看以下链接
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
答案 1 :(得分:1)
自动完成。按照标准,所使用的语言在values\strings.xml
中,但如果用户设备的语言设置为ru,则字符串自动为values-ru\strings.xml
上的字符串,依此类推您放置的所有语言你的资源。
您可以在here中了解有关此主题的更多信息。
在运行时,Android系统根据当前为用户设备设置的区域设置使用适当的字符串资源集。