en_UK是非法区域设置吗?

2022-08-30 08:29:53

到目前为止,我一直使用“en_UK”来表示英式英语。今天,当它与Zend框架一起使用时,我遇到了一个错误,因为该区域设置不包括在一长串可识别的区域设置中。

以下是该列表的简短摘录:

'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中的一个“错误”,还是有其他原因?


答案 1

正确的国家/地区代码是 。区域设置使用 ISO 3166-1 作为国家/地区代码。维基百科的文章包括:en_GB

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


答案 2

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


推荐