【问题标题】:Android Locale : Configure locale for canadian english and normal englishAndroid Locale : 为加拿大英语和普通英语配置语言环境
【发布时间】:2015-08-12 11:06:27
【问题描述】:

在多语言应用程序中,当我使用默认语言(英语)时,它会从默认(res/values)文件夹中获取 strings.xml。而对于加拿大英语,它也使用同一个文件夹(res/values)。根据 android 标准,它必须从相应的文件夹(res/values-en-rCA)中获取。

我不知道我哪里出错了。根据设备语言需要吗?

使用的语言环境代码:

英语 - zh

英语/加拿大 - en_CA

【问题讨论】:

  • 我很生气你认为加拿大英语不正常

标签: android localization locale mobility


【解决方案1】:
You need to set the locale in order to load the proper resources.


 DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();
 Configuration configuration = new Configuration();
 Locale locale = new Locale("en_CA");
 configuration.locale = locale;
 Locale.setDefault(locale);
 res.updateConfiguration(configuration, metrics);

【讨论】:

  • 我只使用相同的代码。即使我也这样设置。语言环境正在将代码(en_CA)转换为小写,如 en_ca。我有很多活动。我无法在所有这些课程中改变。有没有其他办法?
  • 尝试更改区域设置 locale = new Locale("en_CA");到 Locale locale = Locale.CANADA;
  • 我早就试过了。有用。但是我在我的代码中大约 50 个地方使用了相同的代码。所以我必须全部更换。还有其他方法吗?我想知道为什么语言环境总是转换为小写(en_CA 到 en_ca)
  • 您需要避免在您的应用程序中重复对系统不健康的代码,您现在看起来必须更改很多地方来修复它。您可以创建一个像 Util 类这样的类并实现它,以便在您想要更改语言环境的任何地方调用它。这适用于您可以在您的应用中拥有的其他内容。
  • 是的,我已经使用 util 类完成了它,但我想知道为什么语言环境总是将语言环境代码转换为小写本身(en_CA 到 en_ca)。当我们将语言环境代码分配给新的语言环境对象时!!!我们不能限制它为什么?。
猜你喜欢
  • 2012-01-27
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-20
  • 2011-08-31
相关资源
最近更新 更多