Android本地化es-r419

Tar*_*nfx 14 android localization

我正在本地化我的应用程序,其中一个支持的语言/区域是Espanol-419.Android不支持命名约定值-es-r419但它确实接受values-en-rGB.我应该使用什么名称来使其起作用?

kab*_*uko 12

我不知道r419来自哪里.我唯一能想到的就是LCID,但419是俄语或国家代码,但419没有任何内容.以下是西班牙语的区域代码列表,也许你想要的是这里:

es-ar  Spanish - Argentina
es-bo  Spanish - Bolivia    
es-cl  Spanish - Chile
es-co  Spanish - Colombia
es-cr  Spanish - Costa Rica
es-do  Spanish - Dominican Republic
es-ec  Spanish - Ecuador
es-sv  Spanish - El Salvador
es-gt  Spanish - Guatemala
es-hn  Spanish - Honduras
es-mx  Spanish - Mexico
es-ni  Spanish - Nicaragua
es-pa  Spanish - Panama
es-py  Spanish - Paraguay
es-pe  Spanish - Peru
es-pr  Spanish - Puerto Rico
es-es  Spanish - Spain (Traditional)
es-uy  Spanish - Uruguay
es-ve  Spanish - Venezuela
Run Code Online (Sandbox Code Playgroud)

参考文献:

更新:

显然419来自BCP 47为IETF语言标签采用的UN M.49标准.谷歌关于替代资源文档说:

该语言由两个字母的ISO 639-1语言代码定义,可选地后跟两个字母的ISO 3166-1-alpha-2区域代码(以小写"r"开头).

显然(仅通过"r")您可以看到这些不是标准的IETF语言标记.不幸的是,我相信这也意味着您将无法找到相当于419的合适的双字母区域.您还可以查看官方的ISO列表.它不在那里,国家只有两个字母标签.显然,不支持3位数标签是很常见的.

我能想到的唯一解决方案是为国家es细分提供默认设置,然后提供更具体的设置es.您可以为es-rAR您认为与419匹配的每个区域(例如)提供资源,但是查看该列表,我认为相反的做法更容易,并且用于es为拉丁美洲西班牙语提供资源,然后提供资源es-rES对于西班牙 至于es-rES是不是更具体的es,应该优先考虑(如果该区域设置相匹配).

  • 其拉丁美洲西班牙语http://www.iana.org/assignments/lang-tags/es-419 (3认同)
  • 所以只是澄清一下,如果你只提供一个 `es` 包,如果你不指定更具体的一个,它会被所有的 `es` 限定符选择? (2认同)

sor*_*oid 7

es-r419 = es-rUS. 
Run Code Online (Sandbox Code Playgroud)

更改文件夹名称以values-es-rUS与运行时用户选项保持一致.

使用Google翻译服务时,当您请求为拉丁美洲语翻译西班牙语时,您将收到es-r419返回的文件夹.

在查看AOSP来源时,settings->language and input->language您会看到西班牙语和西班牙语(美国).

在运行时,选择语言=西班牙语(美国),你不会看到拉出的字符串values-es-r419,当然你会看到拉出的字符串values-es-rUS


jt-*_*son 6

Android 7.0(API级别24)带来了更强大的资源解析度,并自动找到了更好的后备。但是,为了加快分辨率并提高可维护性,您应该将资源存储在最常见的父方言中。例如,如果您以前将西班牙文资源存储在values-es-rUS目录中,请将它们移动到values-b+es+419包含拉丁美洲西班牙文的目录中。

来源:https : //developer.android.com/guide/topics/resources/multilingual-support.html

我们提供了应用内语言选择功能,因此为了在新旧手机上正常工作,我们在values-es-rUSEspañol(Estados Unidos)和values-b+es+419Español(Latinoamérica)中保留了重复的资源

  • 事实上,这是新的正确答案。我已经使用 Android Studio 3.5 对其进行了测试,它可以正确识别“values-b+es+419”语言标签。 (3认同)
  • 我认为这应该是新的公认解决方案,因为它基于 Google 的最新信息(https://developer.android.com/guide/topics/resources/multilingual-support.html)。 (2认同)