Aller au contenu
TrucklineMP

Internationalisation et traductions

TrucklineMP utilise un système unifié d’internationalisation (i18n) construit sur Next-Intl pour gérer le routage multilingue, les catalogues de traduction et les contributions de traduction.


Toutes les chaînes traduisibles de l’application web sont définies dans des fichiers de messages JSON organisés par locale sous messages/ :

messages/
├── en/ # Anglais (catalogue source)
│ ├── common.json
│ ├── account.json
│ └── ...
├── pl/ # Polski (Polonais)
│ ├── common.json
│ └── ...
└── de/ # Deutsch (Allemand)
├── common.json
└── ...

Les clés de message prennent en charge les fonctionnalités de traduction standard ICU telles que l’interpolation et les pluriels :

{
"welcome": "Welcome back, {username}!",
"memberCount": "{count, plural, =0 {No members} =1 {1 member} other {# members}}"
}

TrucklineMP dispose d’espaces de travail intégrés pour gérer et réviser les traductions :

  1. Espace de travail utilisateur (/translations) : Permet aux membres de la communauté de soumettre des contributions de traduction pour les clés incomplètes dans les langues de leur choix.
  2. Espace de travail de révision (/translations/[locale]/review) : Une interface de workflow permettant aux modérateurs de traduction d’inspecter, d’approuver ou de rejeter les soumissions de traduction.

L’équipe de la plateforme gère la configuration des locales et le déploiement des traductions via des outils réservés à l’équipe.


Le contenu au niveau système, comme les définitions de badges, les options de menus déroulants dynamiques, ou les règles officielles de la plateforme, est enregistré dans :

official-content.ts

Les développeurs doivent utiliser les fonctions utilitaires de ce module pour enregistrer les chaînes système et s’assurer qu’elles sont analysées et cataloguées par le runtime de traduction.


Plusieurs scripts CLI sont disponibles pour synchroniser, valider et vérifier les catalogues de traduction pendant le développement.

Synchronise tous les catalogues de locales cibles (messages/pl/*.json, messages/de/*.json, etc.) avec la structure du catalogue source anglais, en ajoutant les clés manquantes et en supprimant les clés retirées :

Fenêtre de terminal
npm run i18n:sync

Valide que tous les fichiers JSON des catalogues sont bien formés et contiennent une syntaxe valide :

Fenêtre de terminal
npm run i18n:check

Vérifie que les variables de formatage ICU (par exemple {username}) correspondent parfaitement entre le fichier source anglais et tous les fichiers traduits :

Fenêtre de terminal
npm run i18n:layout

Calcule les métriques de pourcentage de couverture de traduction sur toutes les locales configurées :

Fenêtre de terminal
npm run i18n:coverage

Exécute les contrôles de validation complets (vérification, couverture stricte, contrôles de mise en page, et tests unitaires sous src/i18n/__tests__/ pour prévenir les attaques de sécurité et d’injection XSS via les traductions). Cette suite est exécutée par le pipeline CI avant de fusionner toute pull request :

Fenêtre de terminal
npm run i18n:verify