我的Android应用程序没有响应语言更改

时间:2017-07-08 12:37:30

标签: android localization

我已经为我的应用程序设置了2种语言的字符串资源:English&印度尼西亚。当我在Android Studio的GUI编辑器中更改语言时,我的活动会显示相应的字符串。但是当我在模拟器或实际手机上更改语言时,我的应用程序并不使用印尼语字符串 - 只有英语。唯一的例外是我使用日期小部件,它的文本不是来自我的字符串资源。该文本被翻译得很好。

我很确定我在编写应用程序的早期阶段就已经开始工作了,但它确实现在还没有工作。

我试过"清洁"我的项目&做一个完整的构建,但行为没有变化。我还可以尝试/研究什么?

新信息:当我从模拟器中的设置应用更改语言时,只会更改设置应用中的少数项目。大部分还是英文!也许这可能是模拟器中的一个问题?

在我的手机上,我注意到“设置”中的所有内容都已翻译...

1 个答案:

答案 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,这是我不愿意做的。