【发布时间】:2016-09-27 14:36:44
【问题描述】:
我创建了多语言(英语、俄语、乌兹别克语)应用程序。我将 4 个字符串资源放在 4 个文件夹(values、values-en、values-ru、values-uz)中作为docs。当我在 App Controller 中更改应用语言更新资源配置时,如下所示:
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());
应用程序通过调用应用程序控制器的方法重新启动后,如下所示:
public void reStart() {
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
在他们之后,几乎所有设计都运行良好。但在三星 Galaxy S6 (SM-G920F) 上,它的表现非常疯狂。有些单词是英语,有些是乌兹别克语和其他单词。 那么,如何解决这个错误呢?不是所有设备都支持(适用于)“支持不同语言”的概念吗? 顺便说一句,我检查了所有资源都以相应的语言给出(如附图所示):
【问题讨论】:
-
三星喜欢在那里做自己的事情...... :[我发现他们并不总是遵循标准(对于一些事情)
-
在更改设备语言而不是像那样以编程方式时,您是否遇到同样的问题?
-
那我该怎么办? @NeilLocketz
-
您不需要以编程方式更改语言,语言必须由用户设置定义。当他更改设备语言时,您的资源将自动更改
-
正在为多语种受众创建应用程序。需要从应用程序内部切换语言。客户已明确要求此功能。
标签: android localization samsung-mobile multilingual