我的安卓应用没有响应语言更改



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

我很确定我在编写应用程序的早期阶段就已经工作了,但现在肯定不起作用。

我尝试"清理"我的项目并执行完整的构建,但行为没有改变。 我还能尝试/研究什么?

新信息:当我从模拟器中的设置应用程序更改语言时,设置应用程序中的几个项目仅更改。 其中大部分仍然是英语! 所以也许这是模拟器的问题?

在我的手机上,我注意到"设置"中的所有内容都被翻译了......

显然,在SKD的某些先前版本中,印度尼西亚语的代码是"id",但后来改为"in"。 正如我在原始帖子中提到的,我在应用程序的先前状态下使其工作,但后来它停止工作。 这可能是由于我在某个时候将minSDKVersion从某个早期版本更改为21。

我能够按照CommonsWare的建议并访问区域设置来确认印度尼西亚语的正确代码。 经过一些研究,我发现在我的应用程序中执行此操作的方法是:

Locale lTemp = getSystem().getConfiguration().locale;
String sTemp1 = lTemp.getCountry();
String sTemp2 = lTemp.getLanguage();

请注意,getConfiguration((.locale 已被弃用,首选方法是:

Locale lTemp = getSystem().getConfiguration().getLocales().get(0);

但是为了使用这种方法,我不得不将minSDKVersion更改为24,这是我不愿意做的。

最新更新