【问题标题】:device locale is set to en_us after clearing app data清除应用数据后设备区域设置为 en_us
【发布时间】:2016-03-09 09:09:50
【问题描述】:

我有一个本地化的字符串资源 A。我注意到,在我清除应用程序数据/缓存(在设置下)并打开我的活动(属于该应用程序)后,我总是在 en locale 中看到资源 A,而不管当前设备语言。如果我再次进行设置,手动将设备语言更改为任何内容,然后返回我的活动,则资源 A 将再次正确本地化。

我想知道为什么在清除应用程序数据/缓存后将语言环境设置为默认值,有没有办法解决这个问题?谢谢。

【问题讨论】:

  • 我认为,您需要在应用程序开始时设置语言环境。
  • 我该怎么做?我认为应用程序区域设置始终与设备设置中设置的语言同步,但它不能那样工作?
  • 你能告诉我你支持什么语言吗?
  • 我的应用支持 en、fr、de、es、zh、ja。

标签: android android-resources


【解决方案1】:

这是一个 hacky 解决方案,但您可以像这样在启动器活动中设置语言环境:

Configuration config = res.getConfiguration();
Configuration configuration = new Configuration();
config.locale = config.locale;
getBaseContext().getResources().updateConfiguration(configuration,
      getBaseContext().getResources().getDisplayMetrics());

您还可以检查设备区域设置,以确保设备区域设置已更改。

【讨论】:

    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2017-08-22
    • 2017-05-17
    相关资源
    最近更新 更多