Язык и локаль IDs

Язык IDs идентифицирует язык, диалект или сценарий и используется для именования специфичных для языка папок ресурса сохраненными в комплекте приложений. Локаль IDs идентифицирует ряд региональных соглашений и используется в APIs — такой как NSLocale, NSDateFormatter, NSNumberFormatter, и NSCalendar классы — где информация об области необходима для форматирования данных. OS X и iOS используют стандартный язык ID и локаль форматы ID, состоящие из указателей области и языка. Например, с помощью языка, объединенного с указателем области, язык, ID может различить различные языки и региональные диалекты.

Указатели языка

Указатель языка является кодом, представляющим язык. Используйте ISO с двумя буквами (предпочтенный) стандарт 639-1 или ISO с тремя буквами стандарт 639-2. Если ISO используют ISO код 639-2 вместо этого, код 639-1 не доступен для определенного языка. Например, нет никакого ISO кода 639-1 для гавайского языка, так используйте ISO код 639-2. Таблица b-1 перечисляет указатели языка для подмножества языков.

Табличные b-1  примеры указателя Языка

Язык

ISO код 639-1

ISO код 639-2

Английский язык

en

eng

Французский язык

fr

fre

Немецкий язык

de

ger

Японский язык

ja

jpn

Гаваец

никакой указатель

haw

Для полного списка ISO 639-1 и ISO 639-2 кода, посмотрите Коды ISO 639.2 для Представления Имен и Языков.

Указатели области

Указатель области является кодом, представляющим страну. Используйте ISO 3166-1 стандарт, капитализированный код с двумя буквами, показанный в Таблице b-2.

Таблица b-2  Региональные примеры указателя

Область

ISO 3166-1 код

США

US

Соединенное Королевство

GB

Австралиец

AU

Франция

FR

Канадец

CA

Для полного списка ISO 3166-1 код посмотрите ISO 3166-1 Таблица Декодирования.

Язык IDs

Язык ID идентифицирует язык, используемый во многих областях, диалект, используемый в определенной области или сценарии, используемом в многократных областях. Для указания языка, используемого во многих областях, используйте указатель языка отдельно. Для указания определенного диалекта используйте дефис для объединения указателя языка с указателем области. Для указания сценария объедините указатель языка с указателем сценария. Например, для указания общего английского языка используйте en указатель языка как язык ID. Для указания английского языка, поскольку это используется в Соединенном Королевстве использовать en-GB как язык ID.

Таблица b-3 показывает поддерживаемому языку синтаксис ID и примеры общих языков и диалектов.

Табличный b-3  Язык синтаксис ID и примеры

Язык синтаксис ID

Примеры

Описание

[language designator]

en для английского языка

fr для французского языка

de для немецкого языка

Указывает язык только.

[language designator]-[region designator]

en-AU для английского языка, как используется в Австралии

en-GB для английского языка, как используется в Соединенном Королевстве

fr-FR для французского языка, как используется во Франции

fr-CA для французского языка, как используется в Канаде

de-AT для немецкого языка, как используется в Австрии

de-CH для немецкого языка, как используется в Швейцарии

Указывает диалект языка.

[language designator]-[script designator]

Посмотрите таблицу b-4.

Указывает сценарий языка.

Для указателя сценария используйте стандарт ISO 15924, четыре буквы с первым верхним регистром буквы и последние три нижних регистра, как показано в Таблице b-4.

Табличный b-4  язык Сценария примеры ID

Язык сценария ID

Описание

az-Arab

Азербайджанский язык в арабском сценарии.

az-Cyrl

Азербайджанский язык в Кириллическом сценарии.

az-Latn

Азербайджанский язык в латинском сценарии.

sr-Cyrl

Сербский язык в Кириллическом сценарии.

sr-Latn

Сербский язык в латинском сценарии.

uz-Cyrl

Узбекский язык в Кириллическом сценарии.

uz-Latn

Узбекский язык в латинском сценарии.

zh-Hans

Китайский язык в упрощенном сценарии.

zh-Hant

Китайский язык в традиционном сценарии.

Посмотрите раздел «ISO 639-3 and Macro Languages» Понимания Новых Языковых тегов для большего количества китайского языка примеры ID. Для полной спецификации BCP 47 для языковых тегов перейдите к BCP 47: Теги для Идентификации Языков. Однако iOS и OS X только поддерживают язык синтаксис ID, состоящий из указателя языка и дополнительной области или указателя сценария.

Локаль IDs

Локаль ID идентифицирует определенную область и ее местные представления — такие как форматирование дат, времена и числа. Для указания локали используйте символ подчеркивания для объединения языка ID с указателем области, как показано в Таблице b-5. Например, локаль ID для англоязычных динамиков в Соединенном Королевстве en_GB, в то время как локаль для англоговорящих резидентных объектов США en_US.

Табличная b-5  Локаль синтаксис ID и примеры

Локаль синтаксис ID

Примеры

Описание

[language designator]

en

fr

Неуказанная область, где используется язык.

[language designator]_[region designator]

en_GB

zh_HK

Язык, используемый и региональное предпочтение пользователя.

[language designator]-[script designator]

az-Arab

zh-Hans

Неуказанная область, где используется сценарий.

[language designator]-[script designator]_[region designator]

zh-Hans_HK

Сценарий, используемый и региональное предпочтение пользователя.

Только используйте указатель сценария в локали ID, когда будет неоднозначность. Например, потому что Традиционный китайский является языком по умолчанию в Гонконге, использовать zh_HK, где zh код для Традиционных китайцев и HK код для Гонконгской области. Для Упрощенного китайского, используемого в Гонконге, использовать zh-Hans_HK как локаль ID, где zh-Hans код для сценария Упрощенного китайского.

Используя указатели подтега

Если необходимо, можно использовать язык или код локали, который не известен NSBundle класс или Базовая Основа связывают функции. Например, Вы могли создать свои собственные указатели языка для языка, еще не перечисленного в соглашениях ISO или доступного как язык в XCode.

Если Вы принимаете решение создать новый указатель, несомненно, соблюдут правила, найденные в разделах 2.2.1 и 4.5 из BCP 47: Теги для Идентификации Языков. Теги, не следующие этим соглашениям, как гарантируют, не будут работать. При использовании подтегов гарантируйте, что сокращение, сохраненное настройками языка пользователя, соответствует указатель, используемый Вашим .lproj каталог точно.