Variantes régionales
Le concept
Section intitulée « Le concept »Une variante régionale est une sous-locale (fr-CA, en-GB, pt-BR...) posée en surcouche d'une langue de base (fr, en, pt) selon BCP-47. Elle ne redéfinit pas toute la langue : elle ne porte que les chaînes qui diffèrent du parent.
Le principe clé est le repli parent : une clé absente dans la variante retombe sur la langue parente, puis sur la source.
fr-CA -> fr -> sourceExemple : en fr-CA, vous surchargez email par « courriel » ; toutes les autres clés héritent de fr sans duplication. Le CDN sert un bundle fusionné (la base fr plus les surcharges fr-CA).
C'est une dimension de langue, distincte des surfaces (accessibilité et appareil). Les surfaces sont des couches de contenu sur une clé ; les variantes régionales sont des langues à part entière reliées par un parent.
Configuration
Section intitulée « Configuration »- Déclarer la variante : ajoutez le tag BCP-47 (
fr-CA) au catalogue de langues. Le parent est déduit du tag (fr-CAa pour parentfr), il n'y a pas de champ parent à renseigner. Le catalogue porte les métadonnéesis_variantetparent_code(viaGET /v1/languages), dont héritent automatiquement le script et le sens d'écriture (RTL). - Modèle de surcouche : ne traduisez que ce qui diffère du parent. Tout le reste hérite, il n'y a rien à dupliquer.
- Chaîne de repli BCP-47 : la résolution suit
variante -> parent -> source(fr-CA -> fr -> source). - Noms de langues :
i18n.nativeName(lng?)renvoie l'endonyme (le nom natif de la langue, issu du catalogue, sans dépendre d'Intl.DisplayNames). Pour un nom traduit dans la langue de l'interface, utilisezIntl.DisplayNames(localeUI, { type: 'language' }).
Côté SDK
Section intitulée « Côté SDK »Ajoutez le tag BCP-47 à vos locales (avec @sonenta/astro : locales + defaultLocale ; en react-i18next, la variante vient du manifeste CDN de la version). La résolution fr-CA -> fr -> source est automatique, sur deux niveaux : le CDN sert la variante en bundle fusionné (fr-CA inclut déjà la base fr), et la chaîne fallbackLng du SDK résout fr-CA -> fr -> fallbackLng. Pointez fallbackLng vers votre locale source pour la fin de chaîne. Aucun code par clé n'est nécessaire.