我正在开发支持三种语言的应用程序
繁体中文
为此我在res文件夹中创建了两个额外的文件夹:
我正在使用以下功能来更改语言 `
public void setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, StartMenuActivity.class);
finish();
startActivity(refresh);`
}
我将以下值传递给函数
我也试过以下值
但它不起作用。问题是什么?任何人都可以建议我吗?
出于测试目的,我创建了 values-zh 文件夹并将 zh 传递给 的的setLocale 在这种情况下,语言正在改变。
这与传统和简体中文无关?
答案 0 :(得分:1)
您可以使用以下代码来解决您的问题
public void setLocale(String lang) {
Locale myLocale;
if (lang.equals("zh_CN")) {
myLocale = Locale.SIMPLIFIED_CHINESE;
} else if (lang.equals("zh_TW")) {
myLocale = Locale.TRADITIONAL_CHINESE;
} else {
myLocale = new Locale(lang);
}
Locale.setDefault(myLocale);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}