La langue dépend de l'endroit où elle est parlée (doh !), les codes de langue et de lieu reflètent donc cette réalité. zh
est le code de base du langage, mais parce qu'il en existe deux formes principales, il y a zh_Hans
y zh_Hant
mais il ne s'agit toujours que de codes de langue, et non de localités.
Site spécifique
Pour spécifier complètement la langue utilisée dans un particulier le code du pays doit toujours être suffixé, ce qui permet de faire zh_Hans_HK
y zh_Hant_HK
pour le chinois simplifié et le chinois traditionnel, respectivement, tous deux tels que parlés à Hong Kong.
En fait, la réalité est que quelque chose de plus spécifique que le code pays est souvent requis dans de nombreux pays, mais cela risque d'augmenter de façon exponentielle la complexité et la maintenance de bases de données comme la CLDR, sans compter que l'infrastructure de soutien pour l'alimenter, comme l'extraction des détails de l'IP à la localisation, n'est généralement pas disponible ou suffisamment précise.
Texte fixe
Maintenant, si le code sert uniquement à 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, à moins qu'il n'y ait plus de quelques endroits où la langue varie de manière suffisamment significative (informations basées sur l'emplacement) pour prendre la peine de créer un ensemble de ressources séparé.
Plus l'ensemble des ressources est important, plus il est probable qu'un code de langue basé sur la locale (dans ce contexte, il s'agit simplement d'un attribut de langue, plutôt que d'une véritable locale, que vous pouvez appeler comme vous voulez) sera nécessaire, mais au moins vous ne devez le faire que lorsque c'est nécessaire.
Valeurs à la volée
Cependant, si vous souhaitez formater à la volée des valeurs variables particulières, comme les dates, les heures, les devises et les nombres, les paramètres locaux deviennent importants, car tous les outils qui prennent en charge cette fonctionnalité (comme ceux basés sur les données Unicode CLDR) les attendent. La locale pour ces éléments doit être un réglage séparé au code pour lequel un langage d'interface utilisateur généré en interne est paramétré, à moins que vous ne souhaitiez créer un ensemble de ressources pour l'option chaque locale connue, et les maintenir ad nauseum !
Outils de langage du navigateur
Notez que lorsque vous spécifiez la locale d'une page Web qui peut être modifiée, comme dans les zones de saisie, et que la vérification orthographique dans les attributs ou les css a été activée pour le champ, les outils linguistiques du navigateur vérifieront l'orthographe du champ en fonction de cette locale.
Critères
Vous devez être clair sur ce que l'ensemble de ressources fournit, alors réfléchissez :
- Cordes fixes ? Langue uniquement.
- Formatage à la volée ? Locale.
- La vérification de l'orthographe dans l'environnement visuel ? Locale.
- Pages entières/sous-site ? Langue uniquement, sinon locale (en tant que variante de la langue) si le contenu doit être sensiblement différent.
Feuille de calcul pour minimiser les frais d'entretien
J'utilise une feuille de calcul pour contenir les chaînes de l'interface utilisateur où chaque code de langue a un code parent, de sorte que la cellule pour sa version d'une chaîne a 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 ressources à gérer. À la fin, j'exécute une macro qui génère un fichier de ressources complet pour chaque langue.
2 votes
Vous dites que l'espagnol et le français sont faciles, mais la base de données du CLDR recense respectivement 26 et 47 variantes spécifiques à chaque pays ! Tout dépend simplement de la mesure dans laquelle les ressources que vous fournissez dépendent de ces différences.