web-dev-qa-db-fra.com

Codes de langue pour le chinois simplifié et le chinois traditionnel?

Nous créons des sous-sites multilingues sur notre site Web.

Je souhaite utiliser les codes de langue à 2 lettres. L'espagnol et le français sont faciles. Ils obtiendront des URL comme:

mydomain.com/es
mydomain.com/fr

mais je rencontre un problème avec le chinois traditionnel et simplifié. Existe-t-il des normes pour quels codes à 2 lettres utiliser pour ces langues?

mydomain.com/zh
mydomain.com/?
64
jeph perro

@dkarp donne une excellente réponse générale. J'ajouterai quelques détails supplémentaires concernant le chinois:

Il y a plusieurs pays où le chinois est la principale langue écrite. La principale différence entre eux est qu'ils utilisent des caractères simplifiés ou traditionnels, mais il y a aussi des différences régionales mineures (dans le vocabulaire, etc.). La manière standard de les distinguer serait avec un code de pays, par ex. zh_CN pour la Chine continentale, zh_SG pour Singapour, zh_TW pour Taïwan ou zh_HK pour Hong Kong.

La Chine continentale et Singapour utilisent tous deux des caractères simplifiés, et les autres utilisent des caractères traditionnels. Étant donné que la Chine et Taïwan sont les deux pays les plus peuplés, zh_CN et zh_TW sont souvent utilisés pour distinguer les versions de caractères simplifiées et traditionnelles d'un site Web.

Plus correct, cependant, serait d'utiliser zh_HANS pour les caractères chinois simplifiés (génériques) et zh_HANT pour les caractères chinois traditionnels, sauf dans de rares cas où il est utile de distinguer différents pays.

140
Todd Owen

Il existe en effet une représentation standard pour cela. Comme les gens ont rencontré exactement le même problème que vous voyez - même langue, mais différents dialectes ou caractères - ils ont étendu le code de langue à deux lettres avec un code de région à deux lettres. Vous pourriez donc avoir une page française universelle sur mydomain.com/fr, mais l'internationalisation pour les lecteurs canadiens-français pourrait vous laisser un mydomain.com/fr_CA (Canada) et mydomain.com/fr_FR (France). Certaines plates-formes utilisent un tiret au lieu d'un trait de soulignement pour séparer les codes de langue et de région (d'où fr-CA et fr-FR).

Les paramètres régionaux standard pour le chinois simplifié sont zh_CN. Les paramètres régionaux standard pour le chinois traditionnel sont zh_TW.

J'hésite à vous orienter vers les documents standards BCP 47 , car ils sont, euh, un peu lourds sur les détails et un peu légers sur la lisibilité. Allez simplement avec des identifiants de paramètres régionaux standard, comme ceux utilisés par Java , et tout ira bien.

29
dkarp

La langue dépend de l'endroit où elle est parlée (doh!), Donc les codes de langue et de localisation reflètent cette réalité. zh est le code de langue de base, mais comme il existe en deux formes principales, il existe zh_Hans et zh_Hant, mais ce ne sont encore que des codes de langue, pas des paramètres régionaux.

spécifique à l'emplacement

Pour spécifier complètement la langue utilisée dans un emplacement particulier , le code du pays doit encore être suffixé, ce qui rend zh_Hans_HK et zh_Hant_HK pour le chinois simplifié et le chinois traditionnel, respectivement, tous deux parlés à Hong Kong.

En fait, la réalité est que quelque chose de plus spécifique que le code de pays est souvent requis dans de nombreux pays, mais cela est susceptible d'augmenter de façon exponentielle la complexité et la maintenance des bases de données comme CLDR, ainsi que l'infrastructure de support pour y alimenter, comme l'IP pour l'extraction des détails de l'emplacement , n'est généralement pas disponible ou suffisamment précis.

texte fixe

Maintenant, si le code est juste pour spécifier quel ensemble de chaînes fixes à utiliser dans l'interface utilisateur, ou même des ensembles de pages entières sur un site, un suffixe de pays n'est pas vraiment nécessaire, sauf s'il y a plus de quelques endroits où la langue varie suffisamment important (informations géolocalisées) pour créer un ensemble de ressources distinct.

Plus l'ensemble de ressources est grand, plus il est probable qu'un code de langue basé sur les paramètres régionaux [dans ce contexte, juste un attribut de langue, plutôt qu'un véritable paramètre régional, vous pouvez donc l'appeler comme vous voulez!] Sera nécessaire, mais au moins vous ne doivent le faire que lorsque cela est nécessaire.

valeurs à la volée

Cependant, si vous souhaitez formater des valeurs de variables particulières, comme les dates, les heures, les devises et les nombres, à la volée, les paramètres régionaux deviennent importants, car tous les outils qui prennent en charge de telles fonctionnalités (comme ceux basés sur les données Unicode CLDR) les attendent. Les paramètres régionaux pour ceux-ci doivent être un paramètre distinct du code pour lequel le langage d'interface utilisateur généré en interne doit être utilisé, sauf si vous souhaitez créer un ensemble de ressources pour tous les paramètres régionaux connus, et maintenez-les ad nauseum!

Outils de langue du navigateur

Notez que lorsque vous spécifiez les paramètres régionaux pour une page Web qui peut être modifiée, comme dans les zones de saisie, et que la vérification orthographique dans les attributs ou CSS a été activée pour le champ, les outils linguistiques du navigateur vérifient le champ en fonction de ces paramètres régionaux.

Critères

Vous devez être clair sur ce que l'ensemble de ressources fournit, alors pensez à:

  • Chaînes fixes? Langue uniquement.
  • Formatage à la volée? Lieu.
  • Vérification orthographique dans l'environnement de visualisation? Lieu.
  • Pages entières/sous-site? Langue uniquement, sinon paramètres régionaux (comme variante de langue) si un contenu significativement différent est requis.

Feuille de calcul pour minimiser les frais de maintenance

J'utilise une feuille de calcul pour contenir des chaînes d'interface utilisateur où chaque code de langue a un code parent, de sorte que la cellule de sa version d'une chaîne ait une formule qui obtient sa chaîne du parent. Pour créer une chaîne personnalisée pour cette langue et cette chaîne, je remplace simplement la formule de la cellule par le texte exact. Cela minimise la quantité de maintenance des ressources. J'exécute une macro à la fin qui génère un fichier de ressources complet pour chaque langue.

1
Patanjali