2011-02-03 17 views
51

Estamos creando subsitios en varios idiomas en nuestro sitio web.¿Códigos de idioma para chino simplificado y chino tradicional?

Me gustaría utilizar los códigos de dos letras. Español y francés son fáciles Obtendrán URL como:

mydomain.com/es 
mydomain.com/fr 

pero tengo un problema con el chino tradicional y simplificado. ¿Existen estándares para los cuales se deben usar códigos de 2 letras para estos idiomas?

mydomain.com/zh 
mydomain.com/? 
+0

Usted dice que el español y el francés son fáciles, pero la base de datos CLDR enumera 26 y 47 variantes específicas de cada país, respectivamente. Solo depende de cuánto los recursos que proporciona dependen de las diferencias. – Patanjali

Respuesta

105

@dkarp da una excelente respuesta general. Agregaré algunos detalles adicionales con respecto al chino:

Hay varios países donde el chino es el principal idioma escrito. La principal diferencia entre ellos es si usan caracteres simplificados o tradicionales, pero también hay diferencias regionales menores (en el vocabulario, etc.). La forma estándar de distinguirlos sería con un código de país, p. zh_CN para China continental, zh_SG para Singapur, zh_TW para Taiwán, o zh_HK para Hong Kong.

China continental y Singapur ambos usan caracteres simplificados, y los demás usan caracteres tradicionales. Dado que China y Taiwán son los dos con mayor población, solo zh_CN y zh_TW se utilizan a menudo para distinguir las versiones simplificadas y tradicionales de un sitio web.

más correcto, sin embargo, sería el uso de zh_HANS de caracteres chinos simplificados (genéricos), y zh_HANT para los caracteres chinos tradicionales, excepto en raros casos en que es significativo para distinguir los diferentes países.

+5

Esta es una gran respuesta, está bien escrita y probablemente no es algo que la mayoría de la gente sepa. Y traza una línea agradable entre lo que es más técnico * correcto * ('zh_HANS') y lo que está realmente fuera de uso general (' zh_CN'). Puede hacer una búsqueda en Google de los dos términos: se trata de una diferencia de 7 a 1 a favor de 'zh_CN', que honestamente es menor de lo que esperaba. – dkarp

+8

En realidad, la diferencia ** en URLs ** es tan grande como esperaba. 'inurl: zh_CN' da 4,3 millones de visitas; 'inurl: zh_HANS' da 20K. Aún así, una respuesta realmente informativa. – dkarp

25

De hecho, hay una representación estándar para esto. Como las personas se han encontrado con el mismo problema que está viendo (el mismo idioma, pero diferentes dialectos o caracteres), han ampliado el código de dos letras con un código de región de dos letras. Por lo tanto, es posible que tenga una página universal en francés en mydomain.com/fr, pero la internacionalización para lectores francocanadienses podría dejarle con mydomain.com/fr_CA (Canadá) y mydomain.com/fr_FR (Francia). Algunas plataformas usan un guión en lugar de un guión bajo para separar el idioma y los códigos de región (por lo tanto, fr-CA y fr-FR).

La configuración estándar para chino simplificado es zh_CN. La configuración regional estándar para chino tradicional es zh_TW.

Vacilo en apuntar hacia los documentos de estándares BCP 47, ya que son, un poco pesados ​​en los detalles y un poco de luz en la legibilidad. Simplemente vaya con los identificadores de configuración regional estándar, como the ones in used by Java, y todo irá bien.

0

El idioma depende de dónde se hable (¡doh!), De modo que los códigos de idioma y configuración regional reflejan esa realidad. zh es el código de idioma básico, pero debido a que hay dos formas principales de él, hay zh_Hans y zh_Hant, pero siguen siendo solo códigos de idioma, no configuraciones regionales.

específico para los lugares

Para especificar completamente el idioma que se utiliza en un determinado ubicación , el código de país todavía tiene que ser el sufijo, así que hacer zh_Hans_HK y zh_Hant_HK para el chino simplificado y tradicional, respectivamente, ambos como se habla en Hong Kong.

En realidad, la realidad es que algo más específico que el código de país se requiere a menudo en muchos países, pero que es probable que aumente exponencialmente la complejidad y el mantenimiento de bases de datos como CLDR, además de la infraestructura de apoyo para alimentar en ella, como IP a la extracción de detalles de ubicación, generalmente no está disponible o es lo suficientemente preciso.

Texto fijo

Ahora, si el código es sólo para especificar qué conjunto de cuerdas fijas para usar en la interfaz de usuario, o incluso páginas enteras establece en un sitio, un sufijo país no es realmente necesario, a menos que existan más de unos pocos lugares en los que el idioma varía de forma significativa (información basada en la ubicación) para molestarse en crear un conjunto de recursos por separado. Cuanto mayor sea el conjunto de recursos, más probable será un código de idioma basado en la configuración regional [en este contexto, solo un atributo de idioma, en lugar de una configuración regional verdadera, ¡así puede llamarlo como quiera!] pero al menos solo tienes que hacer eso cuando sea necesario.

valores On-the-fly

Sin embargo, si quisiera dar formato a los valores de variables particulares, como fechas, horas, monedas y números, sobre la marcha, locales vuelven importantes, porque todas las herramientas que admite dicha funcionalidad (como las basadas en datos CLDR Unicode). La configuración regional para estos debe ser configuración independiente para el código para el que el idioma de la interfaz de usuario generado internamente se debe usar, a menos que desee crear un conjunto de recursos para configuración local conocida, y mantenerlos ad nauseum!

herramientas de idioma del navegador

Tenga en cuenta que al especificar la configuración regional para una página web que puede ser editado, como en los cuadros de entrada, y la corrección ortográfica en atributos o CSS se ha habilitado para el campo, herramientas de idioma del navegador se corrector ortográfico del campo según esa configuración regional.

Criterios

Tienes que ser claro acerca de lo que el conjunto de recursos está proporcionando, por lo que considerar:

  • cuerdas fijas? Solo lenguaje
  • ¿Formateo sobre la marcha? Lugar.
  • ¿Verificación ortográfica en el entorno de visualización? Lugar.
  • ¿Páginas enteras/subsitio? Solo lenguaje, si no localidad (como una variante de idioma) si se requiere contenido significativamente diferente.

hoja de cálculo para minimizar la sobrecarga de mantenimiento

utilizo una hoja de cálculo para mantener cadenas de la IU, donde cada código de lenguaje tiene un código de matriz, de modo que la célula para su versión de una cadena tiene una fórmula que obtiene su cadena del padre. Para crear una cadena personalizada para ese idioma y cadena, simplemente sobrescribo la fórmula de celda con el texto exacto. Eso minimiza la cantidad de mantenimiento de recursos. Ejecuto una macro al final que genera un archivo de recursos completo para cada idioma.

Cuestiones relacionadas