web-dev-qa-db-fra.com

En_UK est-il un environnement local illégal?

Jusqu'à présent, j'avais toujours utilisé "en_UK" pour l'anglais britannique. Aujourd'hui, j'ai eu une erreur lors de son utilisation avec Zend Framework car les paramètres régionaux ne sont pas inclus dans la longue liste de paramètres régionaux reconnus.

Voici juste un court extrait de cette 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,

Comme vous pouvez le voir, il existe toutes sortes de territoires de langue anglaise et il y a aussi une entrée "en_GB" qui, je suppose, signifie Grande-Bretagne ... mais il n'y a pas de "en_UK". Est-ce juste un "bug" dans Zend Framework ou y a-t-il une autre raison à cela?

59
markus

Le bon code de pays est en_GB. Les paramètres régionaux utilisent ISO 3166-1 pour les codes de pays. Le wikipedia writeup comprend:

Les codes sont choisis, conformément à la norme ISO 3166/MA, "pour refléter la composante significative et unique du nom du pays afin de permettre une association visuelle entre le nom du pays et le code du pays". [7] Pour cette raison, les composants communs des noms de pays comme "République", "Royaume", "Uni", "Fédéral" ou "Démocratique" ne sont normalement pas utilisés pour dériver les éléments de code. En conséquence, par exemple, le Royaume-Uni se voit officiellement attribuer le code alpha-2 GB plutôt que le Royaume-Uni, sur la base de son nom officiel "Royaume-Uni de Grande-Bretagne et d'Irlande du Nord" (bien que le Royaume-Uni soit réservé à la demande du Royaume-Uni). ).

76
martin clayton

Il s'agit en effet d'une erreur courante (?). en_UK a tort. Le code pays ISO pour le Royaume-Uni est GB, ce qui rend la balise de langue en_GB.

20
GolezTrol

Implémentations imparfaites

Depuis 1985, les codes ISO 3166-1 alpha-2 ont été utilisés dans le système de noms de domaine en tant que domaines de premier niveau de code de pays (ccTLD). L'Internet Assigned Numbers Authority attribue actuellement les ccTLD en suivant principalement les codes alpha-2, mais à quelques exceptions près. [9] Par exemple, le Royaume-Uni, dont le code alpha-2 est GB, utilise .uk au lieu de .gb comme ccTLD, car le Royaume-Uni est actuellement exceptionnellement réservé dans ISO 3166-1 à la demande du Royaume-Uni.

Selon wikipedia http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 .

Donc apparemment, c'est une vieille chose qui est restée ou quelque chose comme ça.

EDIT: martin clayton a trouvé une meilleure réponse.

6
Andreas

Vous ne pouvez pas simplement inventer des paramètres régionaux! Ils sont déjà définis. Donc, "en-gb" est l'anglais britannique, tandis que "en-us" est l'anglais américain. Si vous utilisez "en-uk", vous créez simplement un code.

Quant à savoir pourquoi le code officiel est "en-gb" et non "en-uk", je pense essentiellement parce qu'il n'y a rien de tel que l'anglais du Royaume-Uni. La variante linguistique est britannique. Notez que la différence entre la Grande-Bretagne et le Royaume-Uni est:

UK = GB + Irlande du Nord

Donc, en nommant la variante "en-UK", c'est comme si vous disiez que vous voulez inclure la façon dont ils parlent en Irlande du Nord dans cette catégorie. Mais pourquoi tu veux faire ça? D'un point de vue linguistique, cela n'a aucun sens, car l'anglais d'Irlande du Nord est plus proche de l'anglais irlandais (en-IE) que de l'anglais britannique.

4
Linguist

le code de pays correct dans ISO 3166 pour le Royaume-Uni de Grande-Bretagne et d'Irlande du Nord est pour une raison quelconque "GB", donc le code local doit être en_GB, et non en_UK comme indiqué ici .

en_GB est également utilisé par glibc, gnome, kde, etc.

J'aime aussi le fait que de nombreuses corrections de bogues précédentes dans des projets opensource sont liées à cela comme dans Apache http 1. et projet roundcube

3
Mouna Cheikhna