问题:当setlocale为“zh_tw”时,我的应用程序使用默认strings.xml而不是“zh”strings.xml

2g32fytz  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(173)

问题:当设置locale“zh_tw”时,我的应用程序使用默认strings.xml而不是“zh”strings.xml。
以下是获取默认语言环境和设置语言环境的源代码:

Locale locale = Locale.getDefault();
    String defaultLanguage = locale.getLanguage();
    String defaultCountry = locale.getCountry();
    Log.e("Get", "Default Lang:" + defaultLanguage+ " ctry:"+defaultCountry);

    Resources resources = context.getResources();
    Locale locale = new Locale(languageCode, countryCode);
    Locale.setDefault(locale);
    Configuration configuration = new Configuration();
    configuration.setLocale(locale);
    Log.e("Set", " locale:"+locale.toString());

    resources.updateConfiguration(configuration, resources.getDisplayMetrics());

日志:

E/Get: Default Lang:zh ctry:TW
E/Set:  locale:zh_TW

我的问题是,当系统语言设置为西班牙语、日语或其他语言时,它工作正常,并且使用“es”、“ja”strings.xml。

E/Get: Default Lang:es ctry:ES
E/Set:  locale:es_ES

E/Get: Default Lang:ja ctry:JP
E/Set:  locale:ja_JP

但当设置为“zh_tw”时,它不起作用,它将使用default strings.xml。我说不出有什么区别。首先,我有一个“zh_cn”strings.xml。我删除了它,但情况仍然是一样的。
“zh”strings.xml不应该在默认值之前选择吗?有没有人遇到过类似的问题?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题