2012-12-03 10 views
11

widziałem kilka sprzecznych tabele pokazujące lokalizacje i jakie nazwy powinny podjąćAndroid wartości lokalizacyjne - ** Nazwy folderów

Wiele z nich sugerują, że istnieją wersje języka dla każdego kraju, który jest w porządku, dla języków takich jak angielski, hiszpański, chiński, gdzie mogę wybrać, aby folder values-en lub folder values-en_US jeśli chcę uczynić go bardziej specyficzne

ale niektóre inne języki, takie jak greckie nazwy lokalizacji el_GR, mogę po prostu zrobić nazwa folderu values-el lub musi być values-el_GR

ów tylko przykładem i nie ufam tabele Przeczytałem i android przewodnik deweloper nie prawie listę dostępnych lokalizacje

Odpowiedz

23

Folder plików smyczkowych Android jest sformatowana jako następujące:

  • bez wariantu regionu: values-[locale]
  • z wariantem regionu: values-[locale]-r[region]
  • Na przykład: values-en, values-en-rGB , values-el-rGR.

W Twoim przypadku wystarczy utworzyć folder values-el do tłumaczenia greckiego, a values-el-rGR dla danego kraju greckim tłumaczeniu.

Można również skorzystać z mechanizmu rezerwowego zasobów w systemie Android, aby umożliwić dalsze tłumaczenie lokalnych łańcuchów.

Załóżmy na przykład, że masz ciąg o nazwie "R.string.title", a locale to "el-GR", Android będzie szukał wartości "R.string.title", przeszukując pliki w następującej kolejności:

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

Dlatego można po prostu umieścić danego kraju ins tłumaczeniowe ide res/values-el-rGR/strings.xml, i niech res/values-el/strings.xml przechowuje ogólne tłumaczenia.

Pozwala uniknąć duplikowania napisów w różnych plikach językowych, wykorzystując ten mechanizm rezerwowy.

+0

Dzięki za porady. Próbowałem niestandardowych ustawień regionalnych z emulatorem Androida, ale nie widziałem folderów regionu. Zmieniłem język emulatora i wszystko jest w porządku. Nie ufaj użytkownikom funkcji Custom Locale emulatora. – emresancaktar

0

wszystko można znaleźć w https://developer.android.com/index.html

  1. w https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

strony descript stwardnienie Resouce określić, jak rozciągliwej, wartość

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

strona zapewnia Language res define, to import Jak utworzyć katalogi lokalizacji i pliki zasobów.

format to <resource type>-b+<language code>[+<country code>].

i language codecountry code odniesienia https://developer.android.com/reference/java/util/Locale.html

język ISO 639 kod alfa-2 lub alfa-3 język lub zarejestrowanych Subtagi język do 8 liter alfa (dla przyszłych rozszerzeń). Kiedy język ma zarówno kod alfa-2, jak i kod alfa-3, należy użyć kodu alfa-2. Możesz znaleźć pełną listę poprawnych kodów językowych w rejestrze subtagów IANA (wyszukaj "Typ: język"). https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

kraj (region) Kod kraju ISO 3166 alfa-2 lub numer kierunkowy UN M.49-3. Pełną listę prawidłowych kodów krajów i regionów można znaleźć w rejestrze subtagów IANA (wyszukaj "Typ: region").

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

Inne odniesienia: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2