Значения локализации Android - ** имена папок

Я видел несколько противоречивых таблиц, которые показывают локализацию и какие имена они должны принимать

Многие из них предполагают, что существуют версии языка для каждой страны, что хорошо, для таких языков, как английский, испанский и китайский, где я могу выбрать папку values-en или values-en_US, если Я хочу сделать его более конкретным

но некоторые другие языки, такие как греческие, имеют имя локали el_GR, могу ли я просто создать имена папок values-el или он должен быть values-el_GR

Это просто пример, и я не доверяю таблицам, которые я прочитал, и руководство разработчика Android не содержит список доступных локалей

Ответ 2

Имя папки строковых файлов Android отформатировано следующим образом:

  • без варианта региона: values-[locale]
  • с вариантом области: values-[locale]-r[region]
  • Например: values-en, values-en-rGB, values-el-rGR.

В вашем случае вам просто нужно создать папку values-el для греческого перевода и values-el-rGR для греческого перевода по стране.

Кроме того, вы можете использовать механизм резервного копирования ресурсов в Android, чтобы разрешить дальнейшие переводы отдельных строк.

Например, предположим, что у вас есть строка под названием "R.string.title", а locale - "el-GR", Android будет искать значение "R.string.title", выполнив поиск файлов в следующем порядке

  • res/values-el-rGR/strings.xml
  • res/values-el/strings.xml
  • res/values/strings.xml

Следовательно, вы можете просто поместить перевод, специфичный для страны, внутри res/values-el-rGR/strings.xml, и пусть res/values-el/strings.xml хранит общие переводы.

Он может избежать дублирования ваших строк в разных языковых файлах, используя этот резервный механизм.

Ответ 3

все можно найти в https://developer.android.com/index.html

описатель страницы множественного resouce определяет, как drawable, значение

  1. в https://developer.android.com/training/basics/supporting-devices/languages.html

страница предоставляет определение языка, это импорт. Как создавать локальные каталоги и файлы ресурсов.

формат <resource type>-b+<language code>[+<country code>].

и language code country code ссылка https://developer.android.com/reference/java/util/Locale.html

язык ISO 639 альфа-2 или альфа-3 языка, или зарегистрированные языковые subtags до 8 альфа-букв (для будущих улучшений). Если язык имеет как код альфа-2, так и код альфа-3, необходимо использовать код альфа-2. Вы можете найти полный список допустимых кодов языков в регистре субтега языка IANA (поиск по "Тип: язык" ). https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

страна (регион) ISO 3166 альфа-2 код страны или код M.49 номерной № ООН. Полный список правильных кодов стран и регионов можно найти в реестре субтитров языка IANA (поиск по "Тип: регион" ).

https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

Другие ссылки: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2