Bisher hatte ich immer ‘en_UK’ für britisches Englisch verwendet. Heute habe ich bei der Verwendung mit Zend Framework einen Fehler erhalten, da das Gebietsschema nicht in der langen Liste der anerkannten Gebietsschemas enthalten ist.
Hier nur ein kurzer Auszug aus dieser Liste:
'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,
Wie Sie sehen können, gibt es alle möglichen Gebiete mit englischer Sprache und es gibt auch einen Eintrag „en_GB“, von dem ich annehme, dass er für Großbritannien steht … aber es gibt kein „en_UK“. Ist das nur ein ‘Bug’ im Zend Framework oder gibt es dafür einen anderen Grund?
Der richtige Ländercode ist en_GB
. Gebietsschemas verwenden ISO 3166-1 für Ländercodes. Das Wikipedia-Schreiben beinhaltet:
Die Codes werden gemäß ISO 3166/MA so gewählt, „dass sie die signifikante, eindeutige Komponente des Ländernamens widerspiegeln, um eine visuelle Zuordnung zwischen Ländername und Ländercode zu ermöglichen“.[7] Aus diesem Grund werden übliche Bestandteile von Ländernamen wie „Republic“, „Kingdom“, „United“, „Federal“ oder „Democratic“ normalerweise nicht zur Ableitung der Codeelemente verwendet. Infolgedessen wird beispielsweise dem Vereinigten Königreich offiziell der Alpha-2-Code GB anstelle von UK zugewiesen, basierend auf seinem offiziellen Namen “United Kingdom of Great Britain and Northern Ireland” (obwohl UK auf Wunsch des Vereinigten Königreichs reserviert ist). ).
Es ist in der Tat ein häufiger (?) Fehler. en_UK ist falsch. Der ISO-Ländercode für das Vereinigte Königreich ist GB, wodurch das Sprach-Tag en_GB wird.
Unvollkommene Implementierungen
Ab 1985 wurden ISO 3166-1 Alpha-2-Codes im Domain Name System als länderspezifische Top-Level-Domains (ccTLDs) verwendet. Die Internet Assigned Numbers Authority vergibt derzeit die ccTLDs hauptsächlich nach den Alpha-2-Codes, jedoch mit wenigen Ausnahmen.[9] Beispielsweise verwendet das Vereinigte Königreich, dessen Alpha-2-Code GB lautet, .uk anstelle von .gb als ccTLD, da UK derzeit auf Wunsch des Vereinigten Königreichs in ISO 3166-1 ausnahmsweise reserviert ist.
Laut Wikipedia http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.
Also anscheinend ist es ein altes Ding, das hängen geblieben ist oder so.
BEARBEITEN: Martin Clayton hat eine bessere Antwort gefunden.
Locales kann man nicht einfach erfinden! Sie sind bereits definiert. „en-gb“ ist also britisches Englisch, während „en-us“ amerikanisches Englisch ist. Wenn Sie „en-uk“ verwenden, erfinden Sie nur einen Code.
Warum der offizielle Code “en-gb” und nicht “en-uk” ist, denke ich im Grunde, weil es kein britisches Englisch gibt. Die Sprachvariante ist Britisch. Beachten Sie, dass der Unterschied zwischen Großbritannien und dem Vereinigten Königreich ist:
UK = GB + Nordirland
Wenn Sie also die Variante „en-UK“ nennen, sagen Sie, dass Sie die Art und Weise, wie sie in Nordirland sprechen, in diese Kategorie aufnehmen möchten. Aber warum willst du das tun? Aus sprachlicher Sicht macht es keinen Sinn, da das nordirische Englisch dem irischen Englisch (en-IE) näher steht als dem britischen Englisch.
der korrekte Ländercode in ISO 3166 für das Vereinigte Königreich von Großbritannien und Nordirland ist aus irgendeinem Grund “GB”, daher sollte der Gebietsschemacode en_GB lauten und nicht wie angemerkt en_UK hier.
en_GB wird auch von glibc, gnome, kde usw. verwendet
Außerdem mag ich die Tatsache, dass viele frühere Fehlerkorrekturen in Open-Source-Projekten damit zusammenhängen, wie in Apache http 1.3 und Roundcube-Projekt
Der Locale-Index von Zend bestätigt, dass en_GB Englisch/Großbritannien ist, aber ich sehe kein en_UK, also würde ich vermuten, dass en_GB bevorzugt wird. framework.zend.com/manual/en/zend.locale.appendix.html
– BaileyParker
3. September 2011 um 22:43 Uhr
Die offizielle ISO-Seite erwähnt GB als gültigen Code, aber nicht UK: iso.org/iso/country_codes/iso_3166_code_lists/…
– BaileyParker
3. September 2011 um 22:49 Uhr
@PHPMyCoder: Ja, das zeigen die Antworten bereits!
– Markus
3. September 2011 um 22:50 Uhr
In der lokalen Welt
uk
steht für Ukraine, nicht UK 🙂– Ilya Saunkin
7. Dezember 2016 um 14:54 Uhr
@Ilya, das musste ich nachschlagen. Ich glaube, die ukrainische Sprache ist uk, aber die Ukraine selbst ist UA, dh uk_UA.
– Robert Jørgensgaard Engdahl
25. Januar 2018 um 7:22 Uhr