我有数组文件夹:
<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>
我已经将文件夹名称"values- zh -rTW“放在res文件夹中,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();
}
发布于 2016-11-11 16:48:56
明白了,如果你们使用的语言是这样的zh-rTW或anylanguage-blabla
然后,您必须拆分语言代码"-“,然后在
Locale locale = new Locale("zh","TW");
一切都按预期完成了吗
https://stackoverflow.com/questions/40543364
复制相似问题