Cuando el primer idioma aceptado del navegador es `zh-HK`, el idioma predeterminado de la interfaz de usuario es incorrecto

Actualmente, Discourse cuenta con localización en chino tradicional (zh_TW) y chino simplificado (zh_CN). Sin embargo, cuando tengo la configuración de accept-language del navegador establecida en zh-HK como primera opción, Discourse selecciona erróneamente zh_CN como idioma predeterminado.

La mayoría de los usuarios de Taiwán (zh-TW), Hong Kong (zh-HK) y Macao (zh-MO) prefieren el chino tradicional, por lo que para estos valores de accept-language, Discourse debería seleccionar zh_TW como idioma predeterminado en su lugar. (Técnicamente también se podría utilizar la información de subetiquetas probables de Unicode CLDR, pero solo para el chino sería un poco excesivo).

También quiero señalar que tener “中文” y “中文 (TW)” en la selección de idiomas es extremadamente extraño. En realidad, debería listar “简体中文” para el chino simplificado y “正體中文” para el chino tradicional.

5 Me gusta

Esto es definitivamente cierto. Aquí hay una PR para cambiarlo:

(Twitter usa 繁體 en lugar de 正體, así que seguí su ejemplo.)

¿Eso es todo lo que necesita cambiar, @gerhard?

5 Me gusta

Para abordar el problema mencionado en el título, la opción «correcta» sería utilizar zh-Hans y zh-Hant, pero los navegadores presentan opciones inconsistentes.

Chrome:

Firefox:

No he encontrado ninguna forma en Safari de seleccionar un idioma, ¿por lo que debe usar siempre la configuración del sistema? Eso potencialmente incluiría todas estas opciones:


La documentación sugiere que un código de idioma como zh-Hans_HK es posible en macOS. Me pregunto si eso llega al navegador.

1 me gusta

La comunidad taiwanesa de FOSS para la localización prefiere “正體” en lugar de “繁體”, pero a mí no me importa ninguna de las dos.

Mientras solo tengas dos variantes, el código es mayormente cosmético. Con mucha frecuencia, aunque el nombre diga “Chino (Tradicional)”, el código subyacente sigue siendo zh_TW. De cualquier forma, aún necesitas manejar tanto las variantes lenguaje-región como las lenguaje-escritura-región de las etiquetas de idioma enviadas por los navegadores. Por lo que sé, Firefox en Android sí envía accept-language con zh-Hant-HK, dependiendo de la configuración de la localización del sistema Android.

2 Me gusta