en_UK是非法的地方吗?

时间:2011-09-03 22:32:14

标签: php zend-framework locale

到目前为止,我一直使用' 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'。这只是一个' bug'在Zend Framework中还是有其他原因吗?

5 个答案:

答案 0 :(得分:75)

正确的国家/地区代码为en_GB。区域设置使用ISO 3166-1作为国家/地区代码。 wikipedia writeup包括:

  

根据ISO 3166 / MA,选择代码“以反映   国家名称的重要,独特组成部分,以便允许   国家名称和国家代码之间的视觉关联“。[7]为此   原因,国家名称的共同组成部分,如“共和国”,“王国”,   “联合”,“联邦”或“民主”通常不用于推导   代码元素。因此,例如,英国   官方分配了alpha-2代码GB而不是UK,基于   它的正式名称是“大不列颠及北爱尔兰联合王国”   爱尔兰“(尽管英国是应联合国的要求保留的   英国)。

答案 1 :(得分:20)

这确实是一个常见的(?)错误。 en_UK错了。英国的ISO国家/地区代码为GB,使语言标记为en_GB。

答案 2 :(得分:6)

  

不完美的实施

     

从1985年开始,ISO 3166-1 alpha-2代码已被用于   域名系统作为国家/地区代码顶级域名(ccTLD)。该   互联网号码分配机构目前分配ccTLD   主要遵循alpha-2代码,但有一些例外。[9]对于   例如,英国,其alpha-2代码是GB,使用.uk   而不是.gb作为其ccTLD,因为英国目前被特别保留   根据英国的要求,在ISO 3166-1中。

根据维基百科http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

显然,这是一件老旧的东西,或者类似的东西。

编辑:马丁克莱顿找到了更好的答案。

答案 3 :(得分:4)

你不能简单地发明语言环境!它们已经定义好了。所以“en-gb”是英国英语,而“en-us”是美国英语。如果您使用“en-uk”,那么您只需编写代码。

至于为什么官方代码是“en-gb”而不是“en-uk”,我认为基本上是因为没有英国英语这样的东西。语言变体是英国人。请注意,英国和英国之间的差异是:

英国= GB +北爱尔兰

因此,通过命名变体“en-UK”,就像你说你想要在这个类别中包括他们在北爱尔兰的说话方式。但是你为什么要那样做呢?从语言学的角度来看,没有任何意义,因为北爱尔兰英语比英国英语更接近爱尔兰英语(en-IE)。

答案 4 :(得分:3)

大不列颠及北爱尔兰联合王国的ISO 3166中的正确国家/地区代码由于某种原因“GB”,因此区域代码应为en_GB,而不是en_UK,如上所述here

en_GB也被glibc,gnome,kde等使用

此外,我喜欢这样一个事实:开源项目中许多以前的错误修复都与apache http 1.3roundcube project

相关。