en_UK는 부정한 로케일입니까?
지금까지 항상 'en'을 사용했어요영국'은 영국 영어입니다.오늘 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의 '버그'에 불과합니까, 아니면 다른 이유가 있습니까?
올바른 국가 코드는 다음과 같습니다.en_GB
. 로케일에서는 ISO 3166-1을 국가 코드로 사용합니다.위키피디아에는 다음이 포함됩니다.
ISO 3166/MA에 따라 코드는 "국가 이름과 국가 코드 간의 시각적 연관성을 허용하기 위해 국가 이름의 중요하고 고유한 구성요소를 반영하기 위해" 선택된다.[7] 이러한 이유로 "공화국", "왕국", "연합", "연방" 또는 "민주"와 같은 국가 이름의 공통 구성요소는 일반적으로 코드 요소를 도출하는 데 사용되지 않습니다.그 결과, 예를 들어 영국은 공식적으로 "영국 및 북아일랜드 연합 왕국"이라는 공식 명칭에 따라 영국 대신 알파-2 코드 GB를 할당받았다(영국은 영국의 요청에 따라 보류).
그것은 정말 흔한 실수입니다.en_UK가 틀렸습니다.영국의 ISO 국가 코드는 GB이며 언어 태그는 en_GB입니다.
불완전한 구현
1985년부터 ISO 3166-1 alpha-2 코드가 도메인네임 시스템에서 국가 코드 최상위 도메인(ccTLD)으로 사용되고 있습니다.Internet Assigned Numbers Authority는 현재 대부분 알파-2 코드 뒤에 ccTLD를 할당하고 있지만 몇 가지 예외가 있습니다.[9] 예를 들어 영국은 현재 ISO 3166-1에서 예외적으로 영국의 요청으로 유보되어 있기 때문에 알파-2 코드가 GB인 영국은 .gb 대신 .uk를 ccTLD로 사용합니다.
위키피디아 http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2에 따르면.
그래서 이건 오래된 물건인 것 같아요.
편집: 마틴 클레이튼이 더 나은 답을 찾았습니다.
단순히 로케일을 발명할 수는 없습니다!이미 정의되어 있습니다.그래서 "en-gb"는 영국 영어이고 "en-us"는 미국 영어입니다.만약 "en-uk"를 쓴다면, 당신은 단지 코드를 만든 것입니다.
공식 코드가 en-uk가 아닌 en-gb인 이유는 기본적으로 영국 영어라는 것이 없기 때문이라고 생각합니다.그 언어 변종은 영국식이다.영국과 영국의 차이는 다음과 같습니다.
영국 = GB + 북아일랜드
그래서 변종 이름을 "en-UK"라고 지으면 마치 북아일랜드에서 말하는 방식을 이 카테고리에 포함시키고 싶다고 말하는 것과 같습니다.하지만 왜 그렇게 하고 싶어하죠?언어학적 관점에서 보면 북아일랜드 영어는 영국 영어보다 아일랜드 영어(en-IE)에 가깝기 때문에 말이 안 된다.
ISO 3166의 영국 및 북아일랜드 국가 코드는 어떤 이유로든 "GB"이므로 로케일 코드는 en_GB여야 하며 en_GB가 되어서는 안 됩니다.여기에 기재된 바와 같이 영국.
en_GB는 glibc, gnome, kde 등에서도 사용됩니다.
또한 apache http 1.3 및 roundcube 프로젝트와 같이 오픈소스 프로젝트의 많은 이전 버그 수정이 이와 관련되어 있다는 사실도 좋아합니다.
언급URL : https://stackoverflow.com/questions/7296262/is-en-uk-an-illegal-locale
'programing' 카테고리의 다른 글
SoapClient 클래스를 사용하여 PHP SOAP 호출을 발신하는 방법 (0) | 2023.01.31 |
---|---|
SOAP 메시지와 WSDL의 차이점 (0) | 2023.01.31 |
http://localhost:8000/broadcasting/auth 404(찾을 수 없음) (0) | 2023.01.31 |
어디에 isset() 및 !empty()를 사용해야 합니까? (0) | 2023.01.31 |
함수의 모든 인수를 해당 함수 내에서 단일 개체로 가져올 수 있습니까? (0) | 2023.01.31 |