Vous êtes coincé avec un fichier de traductions énorme, où chaque recherche de clé ressemble à une chasse au trésor ? 🗺️
J’ai vécu ça. Et j’ai trouvé une solution qui m’a fait gagner du temps, de la clarté, et surtout… de la sérénité.
Quand j’ai commencé à gérer les traductions pour une grosse application Angular, tout était regroupé dans un seul fichier JSON géant.
L’idée ? Simplifier les choses pour le système de traduction.
Mais très vite, c’était devenu ingérable :
❌ Difficile de naviguer dans un fichier aussi dense.
❌ Impossible de répartir le travail efficacement entre développeurs et traducteurs.
❌ Retrouver une clé spécifique relevait de l’exploit.
C’est alors que j’ai décidé de repenser la façon de gérer les traductions, avec une approche découpée et automatisée.
Voici ce que j’ai mis en place :
1️⃣ Découpage des traductions par fonctionnalité
- Chaque fonctionnalité a son propre fichier JSON.
- Les traductions globales (boutons comme *sauvegarder*, *annuler*, etc.) sont regroupées dans un fichier commun.
2️⃣ Fusion automatisée
- Un script qui concatène tous les fichiers des fonctionnalités pour générer un fichier unique par langue, compatible avec **ngx-translate** ou tout autre système de traduction.
- Ce script gère également les GUIDs, des identifiants uniques pour chaque version du fichier, afin d’assurer une traçabilité parfaite.
3️⃣ Détection des changements
- Le script compare les traductions existantes avec celles générées, et n’écrit que si des modifications sont détectées. Cela réduit les risques de conflits et évite les réécritures inutiles.
Un workflow optimisé pour Angular :
Voici comment tout s’enchaîne dans un projet Angular :
- Chargement dynamique des fichiers de traductions :
En utilisant `HttpLoaderFactory` avec **ngx-translate**, je peux charger les fichiers JSON générés automatiquement.
Voir doc officielle: https://buff.ly/3PN3a9N
- Organisation découpée :
Tous les fichiers JSON par fonctionnalités sont stockés dans des répertoires spécifiques (`src/assets/i18n//`).
- Script automatisé :
Le script s’assure que chaque langue dispose d’un fichier unique (`_.json`) consolidant toutes les traductions nécessaires.
Les bénéfices :
✅ Pour les traducteurs : des fichiers ciblés et lisibles, faciles à gérer.
✅ Pour les développeurs : une structure claire pour ajouter ou modifier des clés.
✅ Pour les déploiements : un système automatisé, traçable et fiable.
✅ Pour la maintenance : une réduction drastique des erreurs et du temps perdu à naviguer dans des fichiers géants.
J'ai mis à disposition mon script sur mon GitHub, si cela vous intéresse : https://buff.ly/4hf9T8r
💬 Et vous ?
Vous avez déjà vécu ce genre de casse-tête avec vos fichiers de traductions ?
Comment l’avez-vous géré ?