问题:当设置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不应该在默认值之前选择吗?有没有人遇到过类似的问题?
暂无答案!
目前还没有任何答案,快来回答吧!