安卓 语言locale获取顺序有误

2022-12-28  本文已影响0人  wustzhy

用的react-native-i18n,发现 getLanguages方法获取的语言列表先后顺序不对
vi(越南语)似乎招到了歧视,永远无法排在最前面。。。

居然搜不到 遇到同样问题的,情况如下

还提供了测试case,得出LocaleList.getDefault()与真实设定的语言顺序一致

LocaleList localeList3 = LocaleList.getDefault();
  for (int i = 0; i < localeList3.size(); i++) {
    MLog.e(i + " >3> " + localeList3.get(i).getLanguage() + "-" + localeList3.get(i).getCountry());
  }

实测 LocaleList.getDefault()确实没问题

image.png

并最后给了个结论
从 Android 7.0 开始,系统语言支持多个,可手动排序,系统根据 App 本身支持的语言和手机出厂设置的语言等因素来调整 App 本身的默认语言。

看到App 本身支持的语言这里,鬼使神差,我查一查zh、en发现 在packages.gradle有配置了enzh,难道是因为没有vi,所以vi被歧视了

android {
    defaultConfig {
            resConfigs "en", "zh"
...    

后来发现,真是这里导致的getConfiguration().getLocales()获取的语言顺序与实际不符。去掉这行 or 增加vi,就没问题了!!!

上一篇下一篇

猜你喜欢

热点阅读