【问题标题】:android US Locale not workingandroid美国语言环境不起作用
【发布时间】:2012-11-07 13:08:56
【问题描述】:

我有以下问题:

我想以编程方式更改我的应用程序的语言。

所以我使用共享首选项来更改语言环境。

        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

任何帮助都非常受欢迎。

【问题讨论】:

    标签: android locale


    【解决方案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,这不是你想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多