我的应用程序支持4种语言。用户选择他/她的语言。但我不能为俄罗斯做那件事。
if (dil.equals("eng")){
Configuration c = new Configuration(context.getResources().getConfiguration());
c.locale = Locale.ENGLISH;
context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
}
else if (dil.equals("ger")){
Configuration c = new Configuration(context.getResources().getConfiguration());
c.locale = Locale.GERMAN;
context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
}
else if (dil.equals("rus")){
Configuration c = new Configuration(context.getResources().getConfiguration());
c.locale = Locale.????????;
context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
}
else
{
Configuration c = new Configuration(context.getResources().getConfiguration());
c.locale = Locale.getDefault();
context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
}
我不懂俄语;
c.locale = Locale.????????;
答案 0 :(得分:28)
使用此constructor,您可以将语言环境设置为俄语:
Locale myLocale = new Locale("ru","RU");
以下是Java的supported locales列表。您可以看到支持“ru”,但未经过测试。
文档还说有时候更好地提供基本本地化和国际化,所以我从
编辑Locale myLocale = new Locale("ru")
到
Locale myLocale = new Locale("ru","RU")
答案 1 :(得分:0)
根据Android documentation for Locale
这个类的构造函数不进行错误检查。您可以为不存在的语言和国家/地区创建区域设置,并且可以为不存在的组合创建实例(例如“de_US”表示“在美国使用德语”)。
请注意,除了en_US之外,区域设置数据不一定适用于此类中预定义为常量的任何语言环境,en_US是唯一的区域设置,Java保证始终可用。
假设所有设备都具有相同的区域设置也是错误的。在美国销售的设备几乎肯定会支持en_US和es_US,但不一定支持具有相同语言但具有不同国家/地区的任何语言环境(例如en_GB或es_ES),也不支持其他语言的任何语言环境(例如de_DE)。对于在欧洲销售的设备,情况恰恰相反。
此外,文档没有列出俄语的区域设置,所以看起来你必须创建一个。另外要注意上面引用的第三段。所以也许最好提供自己的。
检查this SO post,它还有一些有关语言环境的有用提示