在我的应用程序中,我可以选择从中文切换到繁体中文。
我正在使用微调器,位置 1 是中文,2 是繁体中文。选择位置 1 时,这是我切换语言的代码
if (pos == 0)
{
langSelected ="en";
}
else if (pos == 1)
{
langSelected ="zh";
}
else if (pos == 2)
{
langSelected ="zh-rTW";
}
Locale locale = new Locale(lang);
Locale.setDefault(locale);
android.content.res.Configuration config = new android.content.res.Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
@Override
public void onConfigurationChanged(android.content.res.Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (locale != null){
newConfig.locale = locale;
Locale.setDefault(locale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}
当使用微调器从英文切换到中文时,正确的语言被加载,但是当加载繁体中文(zh-rTW)时,只有中文文本被加载
我在 values-zh 中有我的简体中文文本,而我在 values-zh-rTW 中加载了繁体中文文本
每种语言的应用程序名称不同,所以我也尝试从设备设置更改语言,现在也可以在简体中文中正确加载,但繁体中文无法加载。但是这里的应用名称更改为繁体中文,即应用名称从 values-zh-rTW 加载
我哪里出错了,我是否必须更改繁体中文的文件夹?
最佳答案
我知道这是一个迟到的帖子,但希望它能帮助某人..
解决方案是使用国家名称简单地创建一个 Locale。这意味着 Locale
类已经声明了一些静态语言环境。例如:-
中国地区 - https://developer.android.com/reference/java/util/Locale.html#CHINA
台湾地区 - https://developer.android.com/reference/java/util/Locale.html#TAIWAN
简单来说,解决方案是:-
Locale locale;
if(lang.equals("zh-rTW"))
locale = Locale.TAIWAN;
else(lang.equals("zh-rCN")
locale = Locale.CHINA;
else
//handle other languages
关于Android更改中文和繁体中文的语言环境不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449434/