우리는 웹 사이트에 다국어 하위 사이트를 만들고 있습니다.
2 글자 언어 코드를 사용하고 싶습니다. 스페인어와 프랑스어는 쉽습니다. 다음과 같은 URL을 얻게됩니다.
mydomain.com/es
mydomain.com/fr
하지만 중국어 번체 및 간체에 문제가 있습니다. 이러한 언어에 사용할 2 자 코드에 대한 표준이 있습니까?
mydomain.com/zh
mydomain.com/?
우리는 웹 사이트에 다국어 하위 사이트를 만들고 있습니다.
2 글자 언어 코드를 사용하고 싶습니다. 스페인어와 프랑스어는 쉽습니다. 다음과 같은 URL을 얻게됩니다.
mydomain.com/es
mydomain.com/fr
하지만 중국어 번체 및 간체에 문제가 있습니다. 이러한 언어에 사용할 2 자 코드에 대한 표준이 있습니까?
mydomain.com/zh
mydomain.com/?
답변:
@dkarp는 훌륭한 일반적인 대답을 제공합니다. 중국어와 관련된 몇 가지 추가 사항을 추가하겠습니다.
중국어가 주요 문자 언어 인 여러 국가가 있습니다. 그들 사이의 가장 큰 차이점은 간체 또는 전통 문자를 사용하는지 여부이지만 지역적 차이 (어휘 등)도 약간 있습니다. 이들을 구별하는 표준 방법은 예 zh_CN
를 들어 중국 본토, zh_SG
싱가포르, zh_TW
대만 또는 zh_HK
홍콩의 경우 국가 코드를 사용하는 것 입니다.
중국 본토와 싱가포르는 모두 간체 문자를 사용하고 나머지는 전통 문자를 사용합니다. 중국과 대만 이후 가장 큰 인구를 가진 두 가지, 단지 zh_CN
와 zh_TW
종종 웹 사이트의 간체 및 번체 문자 버전을 구별하는 데 사용됩니다.
더 기술적으로 정확하지만, 일반적으로 실제로 사용하지 않는 , 그러나 사용하는 것 zh_HANS
(일반) 중국어 간체 문자, 그리고 zh_HANT
그것을 다른 나라를 구분하는 의미가 때 중국의 전통 문자, 드문 경우를 제외하고.
zh_HANS
)과 일반적으로 사용되는 것 ( zh_CN
) 사이에 좋은 선을 그립니다 . 두 용어에 대해 Google 검색을 수행 할 수 있습니다 zh_CN
. 이는 에 찬성하는 7 대 1 차이 이며 솔직히 제가 예상했던 것보다 적습니다.
inurl:zh_CN
4.3M 히트를 제공합니다. inurl:zh_HANS
20K를 제공합니다. 그래도 정말 유익한 답변입니다.
실제로 이것에 대한 표준 표현이 있습니다. 사람들이 당신이보고있는 것과 똑같은 문제 (같은 언어이지만 다른 방언이나 문자)에 부딪 혔기 때문에 그들은 두 글자 지역 코드로 두 글자 언어 코드를 확장했습니다. 따라서에 범용 프랑스어 페이지가있을 수 mydomain.com/fr
있지만 캐나다 프랑스어 독자를 위해 국제화하면 mydomain.com/fr_CA
(캐나다) 및 mydomain.com/fr_FR
(프랑스) 가 남을 수 있습니다 . 일부 플랫폼에서는 밑줄 대신 대시를 사용하여 언어 및 지역 코드를 구분합니다 (따라서 fr-CA
및 fr-FR
).
중국어 간체의 표준 로케일은 zh_CN
입니다. 중국어 번체의 표준 로케일은 zh_TW
입니다.
실제 BCP 47 표준 문서는 세부 사항이 약간 무겁고 가독성에 약간의 가독성이 있기 때문에 주저합니다 . Java에서 사용하는 것과 같은 표준 로케일 식별자 를 사용 하면 괜찮습니다.
언어는 어디에서 사용되는지에 따라 다르므로 (doh!) 언어 및 로케일 코드는 그 현실을 반영합니다. zh
기본 언어 코드가 있지만, 그것의 두 가지 주요 형태가 있기 때문에, 거기에 zh_Hans
와 zh_Hant
있지만, 그들은 여전히 유일한 언어 코드가 아닌 로케일입니다.
위치 별
완벽에 사용되는 언어를 지정하려면 특정 위치, 국가 코드는 여전히 만드는 접미사되어야 zh_Hans_HK
하고 zh_Hant_HK
, 홍콩에서 사용 양쪽으로 각각 간체 및 번체 중국어, 대한.
실제로 많은 국가에서 국가 코드보다 더 구체적인 것이 필요한 경우가 많지만 CLDR과 같은 데이터베이스의 복잡성 및 유지 관리와 IP 대 위치 세부 정보 추출과 같은 지원 인프라가 기하 급수적으로 증가 할 가능성이 있습니다. , 일반적으로 사용할 수 없거나 충분히 정확하지 않습니다.
고정 텍스트
이제 코드가 사용자 인터페이스에서 사용할 고정 문자열 집합을 지정하거나 사이트의 전체 페이지 집합을 지정하는 것이라면 언어가 여러 곳이 아닌 한 국가 접미사가 실제로 필요하지 않습니다. 완전히 별도의 리소스 세트를 생성하는 데 상당히 충분합니다 (위치 기반 정보).
리소스 세트가 클수록 로케일을 기반으로하는 언어 코드가 필요할 가능성이 높아집니다 [이 컨텍스트에서는 실제 로케일이 아니라 언어 속성 만 있으므로 원하는대로 호출 할 수 있습니다!]. 필요한 경우에만 그렇게하면됩니다.
즉석 가치
그러나 날짜, 시간, 통화 및 숫자와 같은 특정 변수 값을 즉석에서 포맷하려는 경우 이러한 기능을 지원하는 모든 도구 (예 : 유니 코드 CLDR 데이터 기반 도구)가이를 기대하기 때문에 로케일이 중요해집니다. 알려진 모든 로케일에 대한 리소스 세트를 만들고 광고 구역을 유지 하려는 경우가 아니라면 이러한 로케일은 사내 생성 UI 언어가 사용하도록 설정된 코드에 대한 별도의 설정 이어야합니다 .
브라우저 언어 도구
입력 상자에서와 같이 편집 할 수있는 웹 페이지의 로케일을 지정하고 필드에 대해 속성 또는 CSS의 맞춤법 검사가 활성화 된 경우 브라우저의 언어 도구는 해당 로케일에 따라 필드의 맞춤법을 검사합니다.
기준
리소스 세트가 제공하는 내용을 명확히해야하므로 다음을 고려하십시오.
유지 관리 오버 헤드를 최소화하는 스프레드 시트
스프레드 시트를 사용하여 각 언어 코드에 부모 코드가있는 UI 문자열을 보관하므로 해당 버전의 문자열에 대한 셀에는 부모로부터 문자열을 가져 오는 수식이 있습니다. 해당 언어 및 문자열에 대한 사용자 지정 문자열을 만들려면 셀 수식을 정확한 텍스트로 덮어 씁니다. 이는 리소스 유지 관리의 양을 최소화합니다. 마지막에 각 언어에 대한 완전한 리소스 파일을 생성하는 매크로를 실행합니다.