rub*_*uby 4 multilingual android localization
我需要开发一个适用于英语和日语的应用程序.
我只需要对我的应用程序进行语言更改,所有其他手机应用程序应该使用默认语言.
请帮我一些在android 2.2中使用的代码片段/ apis
本地化就是您所需要的!
本地化应用程序的很大一部分是为不同语言提供替代文本.在某些情况下,您还将提供替代图形,声音,布局和其他特定于语言环境的资源.
应用程序可以指定许多res //目录,每个目录都有不同的限定符.要为其他语言环境创建备用资源,请使用指定语言或语言区域组合的限定符.(资源目录的名称必须符合提供备用资源中描述的命名方案,否则将无法编译.)
例:
假设您的应用程序的默认语言是英语.同时假设您要本地化应用程序中的法国所有的文字,而大部分的文字在你的应用程序(除了应用程序的标题一切)日本.在这种情况下,您可以创建三个备用strings.xml文件,每个文件都存储在特定于语言环境的资源目录中:
- res/values/strings.xml包含应用程序使用的所有字符串的英文文本,包括名为title的字符串的文本.
- res/values-fr/strings.xml包含所有字符串的法语文本,包括标题.
- res/values-ja/strings.xml包含除title之外的所有字符串的日语文本.
如果你的Java代码引用了R.string.title,那么运行时会发生什么:
Run Code Online (Sandbox Code Playgroud)* If the device is set to any language other than French, Android
将从res/values/strings.xml文件加载标题.*如果设备设置为法语,Android将从res/values-fr/strings.xml文件加载标题.
请注意,如果设备设置为日语,Android将在res/values-ja/strings.xml文件中查找标题.但因为没有这样的字符串包含在该文件中,Android将回落到默认值,并会从RES /价值/ strings.xml档案中英文加载称号.
要更改应用程序的本地化,可以使用以下代码段:
Resources res = getResources();
Configuration newConfig = new Configuration(res.getConfiguration());
// newConfig.locale = Locale.TRADITIONAL_CHINESE;
newConfig.locale = Locale.ENGLISH;
res.updateConfiguration(newConfig, null);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3508 次 |
最近记录: |