安卓本地化对某些语言无效。

5
我已经创建了一个名为values-he的文件夹,并且其中的strings.xml文件与默认的strings.xml文件完全相同,只是翻译成了其他语言。但是,在选择希伯来语的真实设备和模拟器上运行应用程序时,仍然显示默认的英文文本。有任何想法吗?
编辑:这个问题已经得到解答 - 在某些情况下(包括希伯来语),一些Android设备支持废弃的语言代码。对于希伯来语,一些设备仍然支持旧的“iw”代码,而不是“he”。在其他一些语言中也存在这种情况。

1
你可以在这里找到解决方案:https://dev59.com/cGoy5IYBdhLWcg3wq_7O - Vladimir Mironov
1
还有这个 - dmon
@dmon和vmironov,非常感谢你们两个。Dmon,如果你想把这个链接作为答案发表,我会接受它的。我不知道为什么这么多人把自己的答案放在评论里。即使是一个链接,我也在寻找它而无法找到。展示给我这个链接就是一个很好的答案... - user1545072
嗯,我认为可能是因为这个问题已经被问过/回答过了,所以我们不应该再为此得分?不确定。 - dmon
但这并不是我们的答案...我们只是在谷歌上搜索到的。 - Vladimir Mironov
好的,我谷歌过了。相信我。但是不知道用什么词语来搜索。你帮我找到了。现在,如果有人遇到同样的问题,他们可能会找到我的问题而不是你链接中的问题,所以提供一个被接受的答案可能是有帮助的,即使他可以查看评论并查看链接。在我看来,这不是关于回答者是谁,而是以最清晰和高效的方式提供所需的知识,而你做到了...但你怎么想就怎么做吧... - user1545072
2个回答

8

来自Android Locale类的说明:

请注意,Java使用了几个已过时的两个字母代码。希伯来语(“he”)的语言代码被重写为“iw”,印度尼西亚语(“id”)被重写为“in”,意第绪语(“yi”)被重写为“ji”。这种重写甚至会发生在构造自己的Locale对象时,不仅适用于各种查找方法返回的实例。此外,一些设备也使用he来表示希伯来语,因此为了兼容性,请同时使用values-iwvalues-he


1
“所以使用 iw 而不是 he” - 我不同意这个观点。一些设备使用“he”,一些使用“iw”,因此如果您想支持希伯来语,最好同时使用两者。除此之外,感谢您的好回答,我接受了它。 - user1545072
@YekhezkelYovel 对于这个混淆我很抱歉,是的,你是正确的,我会编辑我的答案。 - K_Anas
不用担心,但是请更改它,这样任何人看到它时都会得到好的建议... - user1545072
即使在Nexus 5上最近的5.1.1版本中,“he”也无法正常工作。因此,我不得不添加“iw”。我会保留两者。 - kalan nawarathne

0

从 2021 年夏季开始,Google 现在要求您上传捆绑包(.aab)而不是 .apk 文件。随着这一变化,如果您的设备不支持特定语言,则将无法从 Play 商店下载该语言的应用

在此处查看解决方案


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