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.
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.
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 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.