首页 文章

android US Locale无法正常工作

提问于
浏览
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与德国语言环境和英语语言环境完美配合,但与美国语言环境无关: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 回答

  • 1

    我刚发现the answer(见the 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 ,这不是你想要的 .

相关问题