Android локализовать es-r419

Я локализую свое приложение, а один из поддерживаемых языков/областей - Espanol-419. Android не поддерживает значения соглашения об именах-es-r419, но он принимает значения-en-rGB.  Какое имя следует использовать, чтобы заставить его работать?

Ответ 1

Я не знаю, откуда приходит 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

Литература:

Update:

Таким образом, очевидно, что 419 из UN M.49 standard, принятого BCP 47 для тега языка IETF. Google документация по альтернативным ресурсам говорит:

Язык определяется двухбуквенным кодом языка ISO 639-1, необязательно сопровождаемым двух буквенным кодом региона ISO 3166-1-alpha-2 (которому предшествуют строчные буквы "r" ).

Ясно (только по "r" ) вы можете видеть, что это не стандартные теги языка IETF. К сожалению, я считаю, что это также означает, что вы не сможете найти подходящую двухбуквенную область, эквивалентную 419. Вы также можете проверить официальный список ISO . Это не так, для стран есть только два тега для письма. По-видимому, он очень распространенный не поддерживает трехзначные теги.

Единственное решение, о котором я могу думать, это предоставить набор по умолчанию для es, а затем более конкретный набор для подразделения es. Вы могли бы предоставить ресурсы для каждого региона (например, es-rAR), который, по вашему мнению, соответствует 419, но, глядя на этот список, я думаю, что было бы проще сделать обратное и использовать es для предоставления ресурсов для латиноамериканского испанского языка, а затем предоставить ресурсы для es-rES для Испании. Поскольку es-rES более конкретный, чем es, он должен иметь приоритет (если совпадает языковой стандарт).

Ответ 2

es-r419 = es-rUS. 

измените имя папки на values-es-rUS для согласованности с пользовательскими параметрами времени выполнения.

При использовании служб переводов Google, когда вы запрашиваете перевод на испанский язык для Латинской Америки, вы получите возвращенную папку es-r419.

При просмотре источника AOSP или в settings->language and input->language вы увидите испанский и испанский (США).

Во время выполнения, выбирая язык = испанский (США), вы не увидите строки, вытащенные из values-es-r419, и, конечно, вы увидите строки, вытащенные из values-es-rUS

Ответ 3

  Android 7.0 (уровень API 24) обеспечивает более надежное разрешение ресурсов и автоматически находит лучшие варианты отката. Однако, чтобы ускорить разрешение и улучшить удобство сопровождения, вы должны хранить ресурсы на наиболее распространенном родительском диалекте. Например, если ранее вы хранили испанские ресурсы в каталоге values-es-rUS, переместите их в каталог values-b+es+419, который содержит латиноамериканский испанский.

Источник: https://developer.android.com/guide/topics/resources/multilingual-support.html

Мы предложили выбрать язык в приложении, поэтому для хорошей работы на новых и старых телефонах у нас были дублированные ресурсы в values-es-rUS Español (Estados Unidos), а также values-b+es+419 Español (Latinoamérica)