我使用此代码手动更改应用的语言:
Locale locale = new Locale(OneLanguageCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
我在OneLanguageCode中设置了国际代码。一切都可以找到我尝试过的每一个代码,比如“en”,“es”,“fr”等......但是我用简体中文让自己变得疯狂。 在这种情况下,我有一个名为 values-zh-rCN 的文件夹,其中包含字符串。如果我将设备语言设置为简体中文,它的效果很好。但是没有办法用上面的代码手动设置它。 我尝试使用“zh-CN”作为OneLanguageCode值,但也没有成功。它以英文显示。
正如我所说的所有这些与其他语言一起工作。我可以让人们使用荷兰语作为他们的设备默认语言,但在我的应用程序中有法语。为什么我不能将荷兰语作为设备默认语言,但在我的应用程序中使用繁体中文?
感谢您的时间。
答案 0 :(得分:0)
Locale locale = new Locale("en_CA");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getApplicationContext().getResources().updateConfiguration(config, null);
答案 1 :(得分:0)
感谢user2968888的帮助,这就是我解决的问题:
Locale locale;
if(OneLanguageCode.equals("schinese")) //any tag here to know it is Simplified Chinese
locale = Locale.SIMPLIFIED_CHINESE;
else
locale = new Locale(OneLanguageCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getApplicationContext().getResources().updateConfiguration(config, null);