安卓系统:混合本地化语言

3

我在 main.java 中显示正确的语言方面遇到了麻烦。在某些设备(例如 Galaxy Nexus)上,语言会像 /res/values-de 一样正确地显示。但在一些其他设备上,例如 HTC Legend 或 Samsung Ace,main.java 是英文的,而后续页面却是德语的。main.java 中的日志显示区域设置为 "DE"...

有人有什么解决方法吗?

非常感谢任何帮助。

2个回答

0

这取决于您的手机语言设置。 您可以在代码中更改语言设置,但不要忘记在关闭应用程序后更改为默认设置。

//in onCreate();
Resources standardResources = getApplicationContext();
DisplayMetrics metrics = standardResources.getDisplayMetrics();
Configuration config = new Configuration(standardResources.getConfiguration());
config.locale = new Locale("de") // change
standardResources.updateConfiguration(config, metrics);

// in onDestroy()
config.locale = Locale.getDefault(); // default
standardResources.updateConfiguration(config, metrics);

我已经尝试过这个了,但没有效果,问题仍然存在。我已经没有任何想法了 :( - user1831815

0

国家代码是正确的,问题在于有些手机可以正常使用,有些手机不能。而且在所有设备上,第二个加载的页面都是德语。 - user1831815
你测试的所有设备都是2.3+吗?因为正如链接所说,一些语言代码直到2.3版本才可用。 - jcw
您确定所有 values XML 文件中都包含相同的字符串吗?有些语言可能会缺少一些字符串,这种情况是否可能出现呢? - jcw
如果你移除所有语言,只剩下一种语言会发生什么? - jcw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接