traductor república que popular paises oficiales mandarín mandarin letras idiomas idioma hablan escritura chino china utf-8 internationalization cjk chinese-locale

utf-8 - república - paises que hablan chino mandarin



¿Códigos de idioma para chino simplificado y chino tradicional? (3)

Estamos creando subsitios en varios idiomas en nuestro sitio web.

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

mydomain.com/es mydomain.com/fr

pero me encuentro con un problema con 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/?


@dkarp da una excelente respuesta general. Agregaré algunos detalles adicionales con respecto a 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, por ejemplo, zh_CN para China continental, zh_SG para Singapur, zh_TW para Taiwán o zh_HK para Hong Kong.

China continental y Singapur 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 usan a menudo para distinguir las versiones simplificadas y tradicionales de un sitio web.

Más correcto , sin embargo, sería usar zh_HANS para caracteres chinos simplificados (genéricos) y zh_HANT para caracteres chinos tradicionales, excepto en casos excepcionales en los que sea significativo distinguir países diferentes.


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 de francés universal en mydomain.com/fr , pero la internacionalización para los lectores francocanadienses podría dejarlo con un mydomain.com/fr_CA (Canadá) y un 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 (de ahí fr-CA y fr-FR ).

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

Dudo en señalar los verdaderos 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 los utilizados por Java , y estará bien.


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 ello, hay zh_Hans y zh_Hant , pero todavía son solo códigos de idioma, no configuraciones regionales.

Ubicación específica

Para especificar completamente qué idioma se usa en una ubicación particular , el código de país aún tiene que tener un sufijo, por lo que hacer zh_Hans_HK y zh_Hant_HK para chino simplificado y tradicional, respectivamente, ambos como se habla en Hong Kong.

De hecho, la realidad es que a menudo se requiere algo más específico que el código de país en muchos países, pero es probable que aumente exponencialmente la complejidad y el mantenimiento de bases de datos como CLDR, más la infraestructura de soporte para alimentarlo, como IP para 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 solo para especificar qué conjunto de cadenas fijas usar en la interfaz de usuario, o incluso conjuntos de páginas completas en un sitio, un sufijo de país no es realmente necesario, a menos que existan más de unos pocos lugares donde el idioma varía. lo suficientemente significativo (información basada en la ubicación) para molestar a la creación de un conjunto de recursos por separado.

Cuanto mayor sea el conjunto de recursos, más probable será que se requiera 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 usted solo tiene que hacer eso cuando sea necesario.

Valores sobre la marcha

Sin embargo, si desea formatear valores de variables particulares, como fechas, horas, monedas y números, las configuraciones regionales sobre la marcha se vuelven importantes, porque todas las herramientas que admiten dicha funcionalidad (como las basadas en datos Unicode CLDR) las esperan. La configuración regional para estos debe ser una configuración independiente del código para el que el idioma de la interfaz de usuario generado en el hogar se configura para su uso, a menos que desee crear un conjunto de recursos para cada configuración local conocida y mantenerlos ad nauseum.

Herramientas de lenguaje del navegador

Tenga en cuenta que al especificar la configuración regional de una página web que se puede editar, como en los cuadros de entrada y la revisión ortográfica en atributos o css se ha habilitado para el campo, las herramientas de idioma del navegador verificarán el campo de acuerdo con esa configuración regional.

Criterio

Debe tener claro lo que proporciona el conjunto de recursos, así que considere:

  • ¿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 gastos generales de mantenimiento

Utilizo una hoja de cálculo para contener cadenas de interfaz de usuario donde cada código de idioma tiene un código principal, de modo que la celda para su versión de una cadena tiene una fórmula que obtiene su cadena del elemento primario. 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.