安卓系统美国本地化无法工作

3
我有以下问题:
我想以编程方式更改我的应用程序的语言。
因此,我使用了共享首选项来更改区域设置。
        Locale locale2 = new Locale("b0"); 
        Locale.setDefault(locale2);
        Configuration config2 = new Configuration();
        config2.locale = locale2;
        getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());

b0是保存的本地信息。

b0在德国语言环境de和英语语言环境en下工作得非常出色,但在美国语言环境en_US下却无法正常工作。

当然,我添加了一个新文件夹:

res/values-en-rUS

使用美式字符串 xml。

如果我将手机语言更改为英语(美国),则应用程序将以美式英语启动。

我甚至编辑了我的行:

            Locale locale2 = new Locale("en_US"); 

仍然不起作用。

"en_US"有什么问题吗?

http://developer.android.com/reference/java/util/Locale.html

非常感谢您的帮助。

1个回答

2

我刚刚找到了答案(请参见javadoc)。

在您的情况下,您应该编写:

Locale locale2 = new Locale("en","US"); 

在基于Scala语言的情况下,通用函数如下所示:
val locale = if(name contains '_') {
  val splitted = sign.split("_")
  new Locale(splitted(0),splitted(1))
} else {
  new Locale(name); 
}

否则它会定义一个新的语言代码en_us,这不是你想要的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接