Quando o primeiro accept-language do navegador é `zh-HK`, o idioma padrão da interface está incorreto

O Discourse atualmente possui localização em Chinês Tradicional (zh_TW) e Chinês Simplificado (zh_CN). No entanto, quando defino zh-HK como o primeiro valor em accept-language do navegador, o Discourse seleciona erroneamente zh_CN como idioma padrão.

A maioria dos usuários de Taiwan (zh-TW), Hong Kong (zh-HK) e Macau (zh-MO) prefere o Chinês Tradicional. Portanto, para esses valores de accept-language, o Discourse deveria selecionar zh_TW como idioma padrão. (Tecnicamente, também é possível utilizar informações sobre subtags prováveis do Unicode CLDR, mas apenas para o chinês isso seria um pouco exagero.)

Também gostaria de destacar que ter “中文” e “中文 (TW)” na seleção de idiomas é extremamente estranho. Deveria listar “简体中文” para Chinês Simplificado e “正體中文” para Chinês Tradicional.

5 curtidas

Isso é definitivamente verdade. Aqui está um PR para mudar isso:

(O Twitter usa 繁體 em vez de 正體, então segui a eles.)

É só isso que precisa ser alterado, @gerhard?

5 curtidas

Para resolver o problema mencionado no título, a opção “correta” seria utilizarmos zh-Hans e zh-Hant, mas os navegadores são inconsistentes quanto às opções que apresentam.

Chrome:

Firefox:

Não consegui encontrar nenhuma maneira no Safari de escolher um idioma, então ele deve sempre usar as configurações do sistema? Isso potencialmente inclui todas essas opções:


A Documentação sugere que um código de idioma como zh-Hans_HK é possível no macOS. Fico me perguntando se isso chega até o navegador.

1 curtida

A comunidade taiwanesa de FOSS para l10n prefere “正體” em vez de “繁體”, mas não me importo com nenhum dos dois.

Enquanto houver apenas duas variantes, o código é basicamente cosmético. Muitas vezes, mesmo quando o nome diz “Chinês (Tradicional)”, o código subjacente ainda é zh_TW. De qualquer forma, você ainda precisa lidar com ambas as variantes de tags de idioma enviadas pelos navegadores: language-region e language-script-region. Pelo que sei, o Firefox no Android envia o cabeçalho accept-language com zh-Hant-HK, dependendo da configuração de localidade do sistema Android.

2 curtidas