Pregunta

Estamos creando subsitios multilingües en nuestro sitio web.

Me gustaría utilizar los códigos de idioma de 2 letras.El español y el 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 sobre qué códigos de 2 letras utilizar para estos idiomas?

mydomain.com/zh
mydomain.com/?
¿Fue útil?

Solución

@Dkarp ofrece una excelente respuesta general. Agregaré algunos detalles adicionales con respecto a los chinos:

Hay varios países donde el chino es el idioma escrito principal. La principal diferencia entre ellos es si usan personajes simplificados o tradicionales, pero también hay diferencias regionales menores (en 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 personajes simplificados, y los otros usan personajes tradicionales. Dado que China y Taiwán son los dos con las poblaciones más grandes, solo zh_CN y zh_TW a menudo se usan para distinguir las versiones de personajes 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 los caracteres tradicionales chinos, a excepción de los casos raros en los que es significativo distinguir diferentes países.

Otros consejos

De hecho, existe una representación estándar para esto.Como la gente se ha encontrado exactamente con el mismo problema que usted está viendo (mismo idioma, pero diferentes dialectos o caracteres), han ampliado el código de idioma de dos letras con un código de región de dos letras.Entonces es posible que tengas una página universal en francés en mydomain.com/fr, pero la internacionalización para los lectores francocanadienses puede dejarles con una mydomain.com/fr_CA (Canadá) y mydomain.com/fr_FR (Francia).Algunas plataformas utilizan un guión en lugar de un guión bajo para separar los códigos de idioma y región (por lo tanto fr-CA y fr-FR).

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

Dudo en señalarte el verdadero BCP 47 documentos estándar, ya que son un poco pesados ​​en detalles y un poco ligeros en legibilidad.Simplemente utilice identificadores locales estándar, como los que usa Java, y estarás bien.

El lenguaje depende de dónde se habla (¡doh!), Por lo que los códigos de lenguaje y localidad reflejan esa realidad. zh es el código de idioma básico, pero debido a que hay dos formas principales, hay zh_Hans y zh_Hant, pero todavía son solo códigos de idiomas, no locales.

Específico de la ubicación

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

En realidad, 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, además de la infraestructura de soporte para alimentarlo, como la extracción de detalles de ubicación de IP a la ubicación. , generalmente no está disponible ni es lo suficientemente preciso.

Texto fijo

Ahora, si el código es solo para especificar qué conjunto de cadenas fijas para usar en la interfaz de usuario, o incluso las páginas completas en un sitio, un sufijo de país no es realmente necesario, a menos que haya más de unos pocos lugares donde el lenguaje varía Lo suficientemente significativo (información basada en la ubicación) para molestarse en crear un conjunto de recursos completamente separado.

Cuanto más grande sea el conjunto de recursos, más probable es que un código de idioma basado en el local [en este contexto, solo un atributo de lenguaje, en lugar de una verdadera localidad, ¡puede llamarlo como le guste!] Solo tengo que hacer eso cuando sea necesario.

Valores sobre la marcha

Sin embargo, si desea formatear valores variables particulares, como fechas, tiempos, monedas y números, en la marcha, los locales se vuelven importantes, porque todas las herramientas que admiten dicha funcionalidad (como las basadas en datos de Unicode CLDR) los esperan. El local de estos debe ser un configuración separada al código para el que se utilizará el lenguaje de interfaz de usuario generado interno, a menos que desee crear un conjunto de recursos para cada Conocido local y manténgalos ad nauseum!

Herramientas de idioma del navegador

Tenga en cuenta que al especificar la configuración regional para una página web que se puede editar, como en los cuadros de entrada, y el corrector de hechizos en atributos o CSS se ha habilitado para el campo, las herramientas de lenguaje del navegador se rehacieron el campo de acuerdo con esa ubicación.

Criterios

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

  • ¿Cadenas fijas? Solo idioma.
  • Formatear sobre la marcha? Lugar.
  • ¿La compensación de ortografía en el entorno de visualización? Lugar.
  • ¿Páginas enteras/subsitio? Solo lenguaje, de lo contrario, local (como variante de lenguaje) si se requiere un contenido significativamente diferente.

Hoja de cálculo para minimizar la sobrecarga 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 de los padres. Para crear una cadena personalizada para ese idioma y cadena, solo sobrescribo la fórmula de la celda con el texto exacto. Que minimiza la cantidad de mantenimiento de recursos. Ejecuto una macro al final que genera un archivo de recursos completo para cada idioma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top