我有数组文件夹:
<string-array name="language">
<item>English</item>
<item>Chinese Simplified</item>
<item>Chinese Traditional</item>
</string-array>
<string-array name="language_values">
<item>en</item>
<item>zh</item>
<item>zh-rTW</item>
</string-array>
我在res文件夹中放置了文件夹名称“values-zh-rTW”,而android studio在翻译编辑器中仅显示zh
现在,按照我的代码,我可以选择简体中文和英文,但是当我从设置中选择繁体中文时,为什么不显示英文?
这是我获取语言和设置语言的代码:
private String getLanguage(Context c, String defaultLanguage) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(c);
return preferences.getString("language", defaultLanguage);
}
@SuppressWarnings("deprecation")
public void setLanguage(Context context, String languageCode) {
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
config.setLocale(locale);
} else {
config.locale = locale;
}
context.getApplicationContext().getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("language", languageCode);
editor.apply();
}
最佳答案
知道了,如果你们使用的语言使用诸如zh-rTW或anylanguage-blabla之类的语言
那么您必须拆分语言代码“-”,然后在中传递第二个参数
Locale locale = new Locale("zh","TW");
一切都按预期完成