Подтвердить что ты не робот

Является en_UK незаконным языком?

До сих пор я всегда использовал 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 или есть еще одна причина для этого?

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Начиная с 1985 года, коды ISO 3166-1 alpha-2 были использованы в Система доменных имен в качестве доменов верхнего уровня страны (ccTLD). Администрирование присвоенных номеров Интернета в настоящее время назначает ccTLD в основном, следуя кодам альфа-2, но за некоторыми исключениями. [9] Для Например, Соединенное Королевство, чей альфа-код 2 является GB, использует .uk вместо .gb как его ccTLD, так как Великобритания в настоящее время исключительно зарезервирована в ИСО 3166-1 по просьбе Соединенного Королевства.

Согласно wikipedia http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.

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

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

Ответ 4

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

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

Великобритания = GB + Северная Ирландия

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

Ответ 5

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

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

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