【问题标题】:getString returning wrong language stringgetString 返回错误的语言字符串
【发布时间】:2016-05-23 08:19:03
【问题描述】:

在我的应用程序类的 onCreate 中,我有这段代码

 Locale current = getResources().getConfiguration().locale;
        String language = Utils.getPhoneLanguage();
        String text = getString(R.string.text);

我已将手机语言设置为德语,并且

当前是de_DE

语言是德

而 text 是 values/strings.xml 中的字符串,而不是 values-de/strings.xml 中的字符串。

可能是什么问题?

【问题讨论】:

  • 您在values-de/strings.xml 中没有text,或者您正在以编程方式更改手机的区域设置
  • 我有它,而且我没有以编程方式更改我的手机语言环境,这 3 行是应用程序类的 onCreate 中的第一行。
  • 清理并重建你的代码
  • @Blackbelt 为什么以编程方式更改语言环境是个问题?按需更改应用程序语言的正确方法是什么?
  • 不确定自 2016 年以来是否有任何变化 - 理想情况下,手机的用户区域设置会选择应用程序区域设置。话虽如此,如果您需要在应用程序中切换语言环境,请执行此操作

标签: android xml locale getstring


【解决方案1】:
public void setLocale(String lang) { 
    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
    Intent refresh = new Intent(this, AndroidLocalize.class); 
    startActivity(refresh); 
    finish();
} 

传递要设置的语言

【讨论】:

  • 我不想强制语言区域设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2010-09-27
相关资源
最近更新 更多