2012-01-20 11 views
11

Sto localizzando la mia app e una lingua/area supportata è Espanol-419. Android non supporta i valori della convenzione di denominazione-es-r419 ma accetta values-en-rGB. Quale nome dovrei usare per farlo funzionare?Localizza Android es-r419

risposta

12

Non so da dove provenga r419. L'unica cosa che potrei pensare sarebbe un LCID ma 419 è per il russo, o country code, ma non c'è nulla per 419. Ecco un elenco di codici locali per lo spagnolo, forse quello che vuoi è qui:

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 

Riferimenti:

Aggiornamento:

Quindi, apparentemente 419 è dal UN M.49 standard occupato dal BCP 47 per il tag di lingua IETF. Google documentation on alternative resources says:

La lingua è definita da due lettere ISO 639-1 codice lingua, eventualmente seguito da un due lettere ISO codice regione 3166-1-alpha-2 (preceduto da minuscole "r").

Chiaramente (solo con "r") è possibile vedere che questi non sono tag di linguaggio IETF standard. Purtroppo, credo che ciò significhi anche che non sarà possibile trovare una regione di due lettere equivalente a 419. È anche possibile controllare lo official ISO list. Non è lì, ci sono solo due lettere per i paesi. Apparentemente è very common non supportare i tag a 3 cifre.

L'unica soluzione che posso pensare è di fornire un set predefinito per es e quindi un set più specifico per una suddivisione di paesi es. Potresti fornire risorse per ogni area geografica (ad esempio es-rAR) che ritieni si adatti a 419, ma osservando tale elenco, penso che sarebbe più semplice fare il contrario e utilizzare es per fornire risorse per lo spagnolo latino-americano e quindi fornire risorse per es-rES per la Spagna. Poiché es-rES è più specifico di es, dovrebbe avere la precedenza (se le impostazioni internazionali corrispondono).

+3

Il suo latino americano http://www.iana.org/assignments/lang-tags/es-419 spagnola – Taranfx

+1

Aggiornato con ciò che è si spera una soluzione. – kabuko

+0

quindi, per chiarire, se fornisci solo un pacchetto 'es', verrà scelto per tutti i qualificatori' es' se non ne specifichi uno più specifico? –

6
es-r419 = es-rUS. 

cambiare il nome della cartella in values-es-rUS per coerenza con le opzioni utente di runtime.

Quando si utilizzano i servizi di traduzione di Google, quando si richiede la traduzione in spagnolo per l'America Latina, si riceverà la cartella es-r419 restituita.

Quando si guarda alla sorgente AOSP o nello settings->language and input->language, vedrai spagnolo e spagnolo (Stati Uniti).

In fase di esecuzione, la lingua selezionando = Spagnolo (Stati Uniti), non vedrà le stringhe tirato da values-es-r419, e, naturalmente, si vedrà stringhe tirato da values-es-rUS

+0

Sono disponibili più localizzazioni per lo spagnolo che solo es-rUS e, secondo jt-gilkeson, è possibile, in Android 7.0 e versioni successive, scrivere b + es + 419 per accedere a queste regioni M.49 UN. – Liggliluff

3

Android 7.0 (livello API 24) offre una risoluzione delle risorse più robusta e trova automaticamente migliori fallback. Tuttavia, per velocizzare la risoluzione e migliorare la manutenibilità, è necessario memorizzare le risorse nel dialetto genitore più comune. Ad esempio, se prima memorizzava risorse spagnole nella directory values-es-rUS, spostali nella directory values-b+es+419, che contiene lo spagnolo latino-americano.

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

Problemi correlati