在开发Android应用时,我有一种奇怪的行为(我不是原始开发者,我只是刚开始更新它):
该应用程序支持两种语言(每种语言只有一个字符串文件):德语和英语。
当应用运行时,某些视图显示英语,而其他视图显示德语文本。同时。
默认语言(即res/values/strings.xml
)为英语,另一个文件为res/values-ge/strings.xml
。该应用程序在德国Android系统(v7.0)上运行。
所以似乎有些观点认为他们应该使用应用程序的默认设置,而其他观点则遵循用户的系统语言选择。
它甚至不一致:当我继续开发应用程序并更新两个字符串文件中的翻译时,一些视图(例如最初以德语显示的Tab栏)突然以英语显示。< / p>
我不是编程新手,为其他平台(例如iOS)做了很多多语言应用程序,所以我确实理解了基本概念。我很确定我没有把字符串文件中的键错误。
我在Mac上使用Android Studio 2.3.3,以防万一。
为什么会发生这种情况的任何想法?或者如何调试这个?我会在哪里开始寻找为什么有些观点会使用错误的语言,甚至是随机的?
更新我刚刚意识到&#34; ge&#34;毕竟,德语可能不是正确的代码。并且,令人惊讶的是,当我重命名&#34; values-ge&#34;文件夹到&#34; values-de&#34;然后我突然在某些地方获得了预期的德语文本。然而,在其他地方,我现在得到英语,我之前有德语。所以,它修正了一些观点,但打破了其他观点。我无法理解这一点。
此外,当我使用&#34; E&#34;时,日期格式化程序会用英语吐出星期几的文本。代码(new SimpleDateFormat("E, dd.MM.")
):我希望看到&#34; Die,30.09。&#34;但得到&#34;星期四,30.09。&#34;。但这可能值得一个单独的问题。
答案 0 :(得分:1)
原来我必须解决几个问题:
答案 1 :(得分:0)
我想到的第一件事就是德语string.xml
文件中可能缺少一些字符串。系统将基本使用您的系统语言,但如果它没有在该文件中找到所需的字符串,它将切换到英语string.xml
的默认文件,因此这可能是导致此行为的原因。 / p>