Собственная УК Незаконное язык?


до сих пор я всегда использовал "en_UK" для британского английского языка. Сегодня я получил ошибку при использовании его с Zend Framework, потому что локаль не входит в длинный список распознанных локалей.

вот лишь краткий отрывок из этого списка:

'ee_GH' => true, 'ee_TG' => true, 'ee'    => true, 'el_CY' => true, 'el_GR' => true,
'el'    => true, 'en_AS' => true, 'en_AU' => true, 'en_BE' => true, 'en_BW' => true,
'en_BZ' => true, 'en_CA' => true, 'en_GB' => true, 'en_GU' => true, 'en_HK' => true,
'en_IE' => true, 'en_IN' => true, 'en_JM' => true, 'en_MH' => true, 'en_MP' => true,
'en_MT' => true, 'en_NA' => true, 'en_NZ' => true, 'en_PH' => true, 'en_PK' => true,
'en_SG' => true, 'en_TT' => true, 'en_UM' => true, 'en_US' => true, 'en_VI' => true,
'en_ZA' => true, 'en_ZW' => true, 'en'    => true, 'eo'    => true, 'es_AR' => true,
'es_BO' => true, 'es_CL' => true, 'es_CO' => true, 'es_CR' => true, 'es_DO' => true,

Как вы можете видеть, есть все виды территорий с английским языком, а также запись "en_GB", которая, как я полагаю, означает Великобританию... но нет en_UK'. Это просто "ошибка" в Zend Framework или есть другая причина?

5 53

5 ответов:

правильный код страны en_GB. Локали используют ISO 3166-1 для кодов стран. Элемент wikipedia writeup включает в себя:

коды выбраны, согласно ISO 3166 / MA, "для того чтобы отразить значительный, уникальный компонент названия страны для того, чтобы позволить визуальная связь между названием страны и кодом страны".[7] для этого причина, общие компоненты названий стран, таких как "Республика", " Королевство", "Объединенные", "федеральные " или" демократические " являются обычно не используется для получения элемент кода. Как следствие, например, Великобритания официально присвоен альфа-2 код ГБ, а не Великобритании, на основе его официальное название "Соединенное Королевство Великобритании и Северной Ирландия "(хотя Великобритания зарезервирована по запросу США Царство.)

Это действительно часто (?) ошибка. en_UK неправильно. Код страны ISO для Великобритании-GB, что делает языковой тег en_GB.

несовершенных реализаций

начиная с 1985 года, ISO 3166-1 альфа-2 коды были использованы в Система доменных имен как код страны домены верхнего уровня (ccTLDs). Этот Интернет назначенные номера орган в настоящее время назначает ccTLD в основном, после альфа-2 коды, но с некоторыми исключениями.[9] для например, в Соединенном Королевстве, чей альфа-2 код ГБ, использует .Великобритания вместо .gb в качестве ccTLD, поскольку Великобритания в настоящее время исключительно зарезервирована в ISO 3166-1 on просьба Соединенного Королевства.

согласно Википедии http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.

Так что, по-видимому, это старая вещь, которая застряла или что-то в этом роде.

EDIT: Мартин Клейтон нашел лучший ответ.

вы не можете просто выдумывать районов! Они уже определены. Таким образом," en-gb "-Это британский английский, тогда как" en-us " - американский английский. Если вы используете "en-uk", вы просто составляете код.

Что касается того, почему официальный код "en-gb", а не "en-uk", я думаю, в основном потому, что нет такой вещи, как английский язык Соединенного Королевства. Языковой вариант-британский. Обратите внимание, что разница между Великобританией и Соединенным Королевством:

UK = GB + Northern Ирландия

поэтому, называя вариант "en-UK", вы как будто говорите, что хотите включить то, как они говорят в Северной Ирландии, в эту категорию. Но зачем тебе это делать? С лингвистической точки зрения это не имеет смысла, поскольку североирландский английский ближе к Ирландскому английскому (en-IE), чем британский английский.

правильный код страны в ISO 3166 для Соединенного Королевства Великобритании и Северной Ирландии по какой-то причине "GB", поэтому код локали должен быть en_GB, а не en_UK, как отмечалось здесь.

en_GB также используется glibc, gnome, kde и т. д.

также мне нравится тот факт, что многие предыдущие исправления ошибок в проектах с открытым исходным кодом связаны с этим, как в apache http 1.3 и проект roundcube