Android正在更改中文和繁体中文的地区设置,但不起作用
在我的应用程序中,我可以选择从中文转换为繁体中文 我使用的是spinner,位置1是中文,位置2是繁体中文。选择位置1时,以下是切换语言的代码Android正在更改中文和繁体中文的地区设置,但不起作用,android,string,localization,Android,String,Localization,在我的应用程序中,我可以选择从中文转换为繁体中文 我使用的是spinner,位置1是中文,位置2是繁体中文。选择位置1时,以下是切换语言的代码 if (pos == 0) { langSelected ="en"; } else if (pos == 1) { langSelected ="zh"; } else if (pos == 2) { langSelected ="zh-rTW"; } Locale loc
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());
}
}
使用spinner从英文切换到中文时,会加载正确的语言,但加载繁体中文(zh rTW)时,只加载中文文本
我在values zh中有我的简体中文文本,因为我在values zh rTW中加载了繁体中文文本
每种语言的应用程序名称都不同,因此我也尝试从设备设置更改语言,现在也可以用简体中文正确加载,但不能加载繁体中文。但在这里,应用程序名称更改为繁体中文,即应用程序名称从值zh rTW加载
哪里出了问题,我是否必须更改繁体中文文件夹?根据我的经验,简体中文最好使用值zh rCN,繁体中文最好使用值zh rTW。此外,这可能已经是您在代码的其他地方所做的事情,手动更改区域设置需要重新加载活动才能生效。因此,一个简单的
Finish()
和StartActivity()
就足够了。我知道这是一篇迟发的帖子,但希望它能帮助别人
解决方案是简单地使用国家名称创建区域设置。这意味着Locale
类已经声明了一些静态Locale。例如:-
中国地区-
台湾地区-
简言之,解决办法是:-
Locale locale;
if(lang.equals("zh-rTW"))
locale = Locale.TAIWAN;
else(lang.equals("zh-rCN")
locale = Locale.CHINA;
else
//handle other languages
此代码更改简体中文和繁体中文的区域设置:
public void setAppLocale(Context context, String languageCode, String countryCode){
Resources resources = context.getResources();
Locale locale = new Locale(languageCode, countryCode);
Locale.setDefault(locale);
Configuration configuration = new Configuration();
configuration.setLocale(locale);
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
你找到解决办法了吗?