我已经为我的应用程序设置了2种语言的字符串资源:English&印度尼西亚。当我在Android Studio的GUI编辑器中更改语言时,我的活动会显示相应的字符串。但是当我在模拟器或实际手机上更改语言时,我的应用程序并不使用印尼语字符串 - 只有英语。唯一的例外是我使用日期小部件,它的文本不是来自我的字符串资源。该文本被翻译得很好。
我很确定我在编写应用程序的早期阶段就已经开始工作了,但它确实现在还没有工作。
新信息:当我从模拟器中的设置应用更改语言时,只会更改设置应用中的少数项目。大部分还是英文!也许这可能是模拟器中的一个问题?
在我的手机上,我注意到“设置”中的所有内容都已翻译...
答案 0 :(得分:0)
显然,在SKD的某些先前版本中,印尼语的代码是“id”,但后来改为“in”。正如我在原帖中所提到的,我在应用程序的先前状态下工作,但随后它停止工作。这可能是因为我将某些早期版本的minSDKVersion更改为21。
通过遵循CommonsWare的建议并访问Locale,我能够确认正确的印尼语代码。经过一些研究,我发现在我的应用程序中执行此操作的方法是:
Locale lTemp = getSystem().getConfiguration().locale;
String sTemp1 = lTemp.getCountry();
String sTemp2 = lTemp.getLanguage();
请注意,不推荐使用getConfiguration()。locale,首选方法是:
Locale lTemp = getSystem().getConfiguration().getLocales().get(0);
但是为了使用这种方法,我不得不将minSDKVersion改为24,这是我不愿意做的。