2012-01-20 7 views
11

Estoy localizando mi aplicación y uno de los idiomas/regiones compatibles es English-419. Android no admite los valores de la convención de nomenclatura-es-r419, pero sí acepta values-en-rGB. ¿Qué nombre debo usar para que funcione?Android localize es-r419

Respuesta

12

No sé de dónde viene r419. Lo único que podría pensar que sería es un LCID, pero 419 es para ruso, o country code, pero no hay nada para 419. Aquí hay una lista de códigos locales para español, quizás el que desea está aquí:

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 

Referencias:

Actualización:

Así que al parecer 419 es de la UN M.49 standard ocupado por BCP 47 para la etiqueta de idioma IETF. Google de documentation on alternative resources says:

El lenguaje se define por un código de idioma de dos letras ISO 639-1, seguido opcionalmente por una de dos letras ISO código de región 3166-1-alfa-2 (precedido por "r" minúscula).

Claramente (por la "r" sola) puede ver que estas no son etiquetas de lenguaje IETF estándar. Desafortunadamente, creo que esto también significa que no podrá encontrar una región de dos letras adecuada equivalente a 419. También puede consultar official ISO list. No está allí, solo hay dos etiquetas de letras para los países. Aparentemente es very common que no admite las etiquetas de 3 dígitos.

La única solución que se me ocurre es proporcionar un conjunto predeterminado para es y luego un conjunto más específico para una subdivisión de es países. Puede proporcionar recursos para cada región (como es-rAR) que cree que coinciden con 419, pero mirando esa lista, creo que sería más fácil hacer lo contrario y usar es para proporcionar recursos para el español de América Latina, y luego proporcionar recursos para es-rES para España. Como es-rES es más específico que es, debe tener prioridad (si la configuración regional coincide).

+3

Su americana http://www.iana.org/assignments/lang-tags/es-419 Español América – Taranfx

+1

Actualizado con lo que es de esperar una solución. – kabuko

+0

, solo para aclarar, si solo proporciona un paquete 'es', se elegirá para todos los calificadores' es' si no especifica uno más específico? –

6
es-r419 = es-rUS. 

el cambio del nombre de la carpeta a values-es-rUS por coherencia con las opciones de usuario en tiempo de ejecución.

Al utilizar los servicios de traducción de Google, cuando solicite una traducción al español para Latinoamérica, recibirá la carpeta es-r419 devuelta.

Al buscar fuente AOSP, o en el settings->language and input->language, verá español y español (Estados Unidos).

En tiempo de ejecución, el idioma seleccionando = Español (Estados Unidos), no se verán cadenas extraídos de values-es-r419, y por supuesto verá cadenas extraídos de values-es-rUS

+0

Existen más configuraciones regionales para español que solo es-rUS, y de acuerdo con jt-gilkeson, puede, en Android 7.0 y posterior, escribir b + es + 419 para acceder a estas regiones UN M.49. – Liggliluff

3

Android 7.0 (API nivel 24) brinda una resolución de recursos más robusta y encuentra mejores retrocesos automáticamente. Sin embargo, para acelerar la resolución y mejorar el mantenimiento, debe almacenar recursos en el dialecto principal más común. Por ejemplo, si estaba almacenando recursos en español en el directorio values-es-rUS, muévalos al directorio values-b+es+419, que contiene español de América Latina.

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

Cuestiones relacionadas