Claude Code Plugins

Community-maintained marketplace

Feedback

I18n Translation Sync

@jls42/leapmultix
1
0

Vérifie la synchronisation des fichiers de traduction (fr.json, en.json, es.json) et détecte les clés manquantes, valeurs vides, et incohérences de types

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name I18n Translation Sync
description Vérifie la synchronisation des fichiers de traduction (fr.json, en.json, es.json) et détecte les clés manquantes, valeurs vides, et incohérences de types

I18n Translation Synchronization

Maintient la synchronisation des fichiers de traduction pour toutes les langues supportées.

Quand utiliser

  • Ajout de nouveaux textes UI
  • Modification de traductions existantes
  • Avant de committer changements i18n
  • Quand npm run i18n:compare signale erreurs

Langues supportées

  • fr.json (référence) - Toujours modifier en premier
  • en.json (anglais)
  • es.json (espagnol)

Scripts disponibles

npm run i18n:compare  # Compare tous les fichiers (PRINCIPAL)
npm run i18n:verify   # Vérifie cohérence
npm run i18n:unused   # Détecte clés inutilisées

Workflow principal

1. Vérifier l'état actuel

npm run i18n:compare

Si erreurs, lire le rapport détaillé.

2. Modifier les traductions

Règle d'or : Toujours commencer par fr.json

  1. Modifie fr.json d'abord
  2. Copie la STRUCTURE (pas les valeurs) dans en.json et es.json
  3. Traduis les valeurs

3. Vérifier synchronisation

npm run i18n:compare

Doit afficher : "Tous les fichiers de traduction sont parfaitement synchronisés !"

4. Tester dans l'UI

Lance l'application et teste le sélecteur de langue.

Détection automatique

Le script npm run i18n:compare détecte :

Clés manquantes :

  • Clés présentes dans fr.json mais absentes dans en.json/es.json

Clés supplémentaires :

  • Clés présentes dans en.json/es.json mais absentes dans fr.json

Valeurs vides :

  • "", null, undefined, []

Incohérences de types :

  • String vs Array (ex: fr.json = "text", en.json = ["array"])

Format du rapport :

  • Console détaillée
  • JSON exporté dans docs/translations-comparison-report.json

Corriger les erreurs

Clés manquantes

Ajoute les clés manquantes dans en.json/es.json avec traductions appropriées.

Clés supplémentaires

Supprime les clés supplémentaires OU ajoute-les dans fr.json si nécessaires.

Valeurs vides

Remplace les valeurs vides par traductions appropriées.

Types incohérents

Uniformise le type (soit String partout, soit Array partout).

Structure des fichiers

Format JSON :

{
  "key": "value",
  "nested": {
    "key": "value"
  },
  "array": ["item1", "item2"]
}

Dot notation :

  • key → "key"
  • nested.key → "nested.key"
  • array → "array"

Le script aplatit la structure en dot notation pour comparaison.

Checklist i18n

  • fr.json modifié en premier
  • Structure copiée dans en.json et es.json
  • Valeurs traduites correctement
  • npm run i18n:compare passe (100% synchronisé)
  • Testé dans UI avec sélecteur de langue
  • Pas de valeurs vides
  • Types cohérents (String ou Array)

En cas de doute

Source : fr.json + npm scripts

Règles absolues :

  1. Toujours vérifier avec npm run i18n:compare
  2. fr.json est la référence (pas en.json, pas es.json)
  3. Ne jamais committer avec erreurs i18n
  4. Tester dans UI avant commit
  5. Scripts npm détectent TOUS les problèmes

Workflow minimal :

# Modifier fr.json
npm run i18n:compare  # Vérifier
# Copier structure dans en.json, es.json
# Traduire valeurs
npm run i18n:compare  # DOIT être OK