我创建了一个多语言(英语,俄语,乌兹别克语)应用程序。我将4个字符串资源放在4个文件夹中(values,values-en,values-ru,values-uz),如docs所示。当我更改应用程序语言时,会更新App Controller中的资源配置,如下所示:
之后,通过调用App控制器的以下方法,应用程序将重新启动:
在其他设备上,它可以很好地工作。但是在三星Galaxy S6(SM-G920F)上,它表现得很疯狂。有些单词是英语,而其他单词则是乌兹别克语等。 那么,如何修复此错误?“支持不同语言”的概念不适用于所有设备吗? 顺便说一下,我已经检查过所有资源都以相应的语言提供(如附图所示)。
Settings.LANGUAGE = prefs.getString(User.LANG, Settings.RUSSIAN);
Locale locale = new Locale(Settings.LANGUAGE);
Locale.setDefault(locale);
Configuration configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics());
之后,通过调用App控制器的以下方法,应用程序将重新启动:
public void reStart() {
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
在其他设备上,它可以很好地工作。但是在三星Galaxy S6(SM-G920F)上,它表现得很疯狂。有些单词是英语,而其他单词则是乌兹别克语等。 那么,如何修复此错误?“支持不同语言”的概念不适用于所有设备吗? 顺便说一下,我已经检查过所有资源都以相应的语言提供(如附图所示)。