安卓本地化

10

1
我需要在以下语言中放置数值-XX数值,有人可以帮忙吗? 对于英语,我们可以使用默认值 德语, 法语, 西班牙语, 意大利语, 丹麦语, 芬兰语, 挪威语, 瑞典语, 英语(英国), 葡萄牙语。 - SoftReference
3个回答

19

我的应用程序使用以下未记录的语言,并且它们可以正常工作:

  • ca 加泰罗尼亚语
  • el 希腊语
  • es 西班牙语
  • pl 波兰语
  • pt 葡萄牙语
  • ro 罗马尼亚语
  • ru 俄语
  • sv 瑞典语

更一般地说,应该是此表格中“639-1”列中的字符串。


那么使用未记录的XX值可以确保应用程序本地化正确,对吗? - SoftReference
未记录的列表有91个语言环境,所以我们可以像正常列表一样使用它吗? - SoftReference
救了我。我的直觉让我把“cat”作为加泰罗尼亚语的缩写,而不是“ca”(因为“ca”更多地与加拿大有关)。我们谈论的是语言,而不是地理区域。 - Xavi Montero

2

I suggest use the list of the ISO 639-1 standard


0

几乎可以使用由表示语言代码的字符串(如ISO 639-1所指定)和(可选)国家(如ISO 3166-1的Alpha 2表示所定义)定义的任何语言。您可以仅指定语言(即“en”)或仅在特定区域中使用的语言(即“en”,“US”)。您不需要使用随Locale一起提供的常量(虽然很方便)。

// This is to get spanish locale of Spain
Locale spanish = new Locale("es", "ES");

问题不仅在于指定正确的语言,还要确保移动电话支持所指示区域设置的文字/格式。例如,在西班牙销售的手机将支持“es”和“es_ES”,几乎肯定也会支持“en”和“en_US”,可能还会支持“ca_ES”、“ba_ES”和“gl_ES”。它不太可能支持例如“es_AR”或“zh_CN”。因此,我认为你的问题的答案是“取决于你的应用市场”。

我想要针对上述语言进行目标定位,但我明白这些区域可能并不可用。然而,文档列表非常有限,不像未记录的列表可以通过简单的代码片段获得。for(Locale temp :Locale.getAvailableLocales()){ Log.i(temp.getDisplayCountry() + " - " + temp.getDisplayLanguage() , temp.toString()); } - SoftReference
你应该注意 Locale.getAvailableLocales() 返回的列表,因为这些是你手机实际支持的语言。 - Fernando Miguélez
重要的是设备是否真正支持该语言并不重要,而是该语言在设备的设置中列出,以便您可以选择它。您可以使用未记录的语言,例如“eu”(巴斯克语),但您将无法将设备的区域设置为巴斯克语。尽管如此,对于这种语言的真正“支持”并不是必需的,您只需使用任何适当的应用程序将设备的区域设置为“eu”,即可获得“支持”。 - caw

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