Quando il primo browser accept-language è `zh-HK`, la lingua dell'interfaccia utente predefinita non è corretta

Attualmente, Discourse supporta le localizzazioni in cinese tradizionale (zh_TW) e cinese semplificato (zh_CN). Tuttavia, quando l’accept-language del browser è impostato su zh-HK per primo, Discourse seleziona erroneamente zh_CN come lingua predefinita.

La maggior parte degli utenti di Taiwan (zh-TW), Hong Kong (zh-HK) e Macao (zh-MO) preferisce il cinese tradizionale, quindi per questi valori di accept-language, Discourse dovrebbe selezionare zh_TW come lingua predefinita. (Tecnicamente, si potrebbero anche utilizzare le informazioni sui sottotag probabili di Unicode CLDR, ma nel caso del solo cinese sarebbe un po’ eccessivo.)

Vorrei anche sottolineare che avere “中文” e “中文 (TW)” nella selezione della lingua è estremamente strano. Dovrebbe invece elencare “简体中文” per il cinese semplificato e “正體中文” per il cinese tradizionale.

5 Mi Piace

Questo è sicuramente vero. Ecco una PR per modificarlo:

(Twitter usa 繁體 invece di 正體, quindi ho seguito il loro esempio.)

È tutto ciò che serve cambiare @gerhard?

5 Mi Piace

Per risolvere il problema indicato nel titolo, l’opzione “corretta” sarebbe utilizzare zh-Hans e zh-Hant, ma i browser non sono coerenti nelle opzioni che offrono.

Chrome:

Firefox:

Non riesco a trovare alcun modo in Safari per selezionare una lingua, quindi deve sempre utilizzare le impostazioni di sistema? Questo potrebbe includere tutte queste opzioni:


La documentazione suggerisce che un codice linguistico come zh-Hans_HK è possibile su macOS. Mi chiedo se questo venga trasmesso al browser.

1 Mi Piace

La comunità FOSS taiwanese per la localizzazione preferisce “正體” rispetto a “繁體”, ma non mi dà fastidio nessuna delle due.

Finché hai solo due varianti, il codice è per lo più estetico. Spesso, anche se il nome indica “Cinese (Tradizionale)”, il codice sottostante è ancora zh_TW. In ogni caso, devi comunque gestire entrambe le varianti di tag linguistici lingua-regione e lingua-scripto-regione inviate dai browser. Per quanto ne so, Firefox su Android invia l’intestazione accept-language con zh-Hant-HK, a seconda dell’impostazione della localizzazione del sistema Android.

2 Mi Piace