Comment distinguer le chinois simplifié et traditionnel en C #?
-
28-10-2019 - |
Question
Mon application a été traduite dans plusieurs langues, dont le français, le chinois traditionnel et le chinois simplifié. Désormais, lors du premier lancement de l'application, j'aimerais sélectionner automatiquement la traduction correcte en fonction des paramètres régionaux de l'utilisateur.
Pour le français, l'évaluation de la propriété TwoLettersIsoLanguageName
du InstalledUiCulture
a bien fonctionné, mais pour le chinois, les codes ISO ne sont pas suffisants. J'ai pensé à recourir à la propriété Name
, qui sépare zh-Hans
et zh-Hant
, mais qui rompt le français, car elle donne fr-FR
sur certains systèmes et fr-CA
sur d'autres, par exemple.
Y a-t-il un moyen simple d'obtenir le code de langue à deux lettres de la culture actuelle s'il n'est pas chinois, et autrement obtenir zh-Hans
/ zh-Hant
?
Je recherche une solution élégante; J'ai bien sûr pensé à analyser la propriété Name
de la culture et à créer un cas particulier pour le chinois, mais ce n'est pas vraiment joli: /
En bref, je pense que je cherche un moyen de récupérer une culture "neutre" de la culture actuelle: de fr-Fr
obtenir fr
, de zh-TW
obtenir zh-Hant
, et de zh-CN
obtenir zh-Hans
. Des idées?
Merci!
La solution
Il semble que la Parent propriété deLa classe CultureInfo est ce que vous recherchez.
Il semble qu'il a été pris en charge dès le début.
BTW.En cas de traduction, vous devez utiliser CurrentUICulture plutôt que CurrentCulture (ce dernier est destiné àformatage) ou InstalledUiCulture, qui est la version linguistique du système d'exploitation et non la préférence utilisateur nécessaire.