kat*_*tit 16 android localization
好的,我知道标题声音疯了:)
这就是我想要的.我的应用程序已本地化为设备用户,但我发送回服务器的信息需要全部为英文.我的默认应用语言环境英语.
例如,我有数组:
我有本地化的数组:
当俄罗斯用户看到列表并选择几个项目时 - 我需要获得相应的英文版本.
我想我的答案归结为如何做getString()并传递locale?或者如何在特定区域设置中获取阵列?
wje*_*hak 24
即使设备上的默认语言环境不同,下面的代码也会检索波兰语的本地化字符串:
Configuration conf = getResources().getConfiguration();
conf.locale = new Locale("pl");
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Resources resources = new Resources(getAssets(), metrics, conf);
/* get localized string */
String str = resources.getString(R.string.hello);
Run Code Online (Sandbox Code Playgroud)
我希望这也适用于其他资源类型,如数组,所以它应该足以用"en"替换"pl"...
如果您使用 JB 2.2.x 或更高版本(基本上 API >= 17),您可以使用createConfigurationContext执行以下操作:
public String translate(Locale locale, int resId) {
Configuration config = new Configuration(context.getResources().getConfiguration());
config.setLocale(locale);
return context.createConfigurationContext(config).getText(resId);
}
Run Code Online (Sandbox Code Playgroud)
您必须通过其他内容来标识元素,例如 id,甚至英文名称。
不可能获取给定本地化字符串的原始字符串。原因之一是字符串的本地化不是传递函数,但还有很多其他原因导致这不是一个好的方向。
| 归档时间: |
|
| 查看次数: |
14919 次 |
| 最近记录: |