Accéder au contenu principal

Guide d'agent : Utiliser champollion

champollion est un outil CLI qui traduit les fichiers de paramètres régionaux de votre application en une seule commande. Ce guide s'adresse aux agents IA (ou aux développeurs travaillant avec des agents IA) qui souhaitent passer de zéro à des fichiers de paramètres régionaux traduits rapidement.

:::tip Déjà familiarisé ? Si vous avez simplement besoin de commandes, accédez à la Référence CLI. Si vous souhaitez construire et évaluer une méthode de traduction, consultez le Guide d'agent Arena. :::


Configuration de l'environnement

# No global install needed — npx runs it directly
npx champollion sync

Prérequis :

  • Node.js 18+
  • Une clé API pour votre fournisseur de traduction

Configuration de la clé API — champollion a besoin d'au moins une clé selon les méthodes que vous utilisez :

# Option 1: export (session only)
export OPENROUTER_API_KEY="sk-or-..." # for llm / llm-coached methods
export GOOGLE_TRANSLATE_API_KEY="AIza..." # for google-translate method

# Option 2: .env file in your project root (persistent, gitignored)
echo 'OPENROUTER_API_KEY=sk-or-...' > .env

Champollion lit .env automatiquement. Obtenez une clé OpenRouter sur openrouter.ai/keys.


Première synchronisation

Champollion détecte automatiquement vos fichiers de paramètres régionaux, leur format (JSON, TOML, YAML, PO) et vos langues cibles :

npx champollion sync

Ce qui se passe :

  1. Charge champollion.config.json (ou détecte automatiquement les paramètres)
  2. Analyse votre fichier de paramètres régionaux source, aplatit les clés imbriquées
  3. Compare par rapport à .champollion.lock (hachages SHA-256 des valeurs précédemment traduites)
  4. Vérifie .champollion/tm.json pour les traductions en cache (Mémoire de traduction)
  5. Traduit uniquement les clés modifiées, manquantes ou obsolètes via la méthode configurée
  6. Exécute la porte de qualité (5 vérifications) sur chaque traduction
  7. Écrit les traductions réussies dans le fichier de paramètres régionaux cible
  8. Met à jour le fichier de verrouillage et le cache TM

Lors d'une réexécution typique après modification d'une clé, l'étape 4 sert 142 clés à partir du cache et l'étape 5 traduit 1 clé. C'est pourquoi les synchronisations ultérieures sont rapides et peu coûteuses.


Configuration

Créez champollion.config.json à la racine de votre projet :

{
"inputLocale": "en",
"pairs": {
"en-fr": { "method": "llm-coached" },
"en-ja": { "method": "google-translate" },
"en-crk": { "method": "api", "endpoint": "http://localhost:3000/translate" }
}
}

Champs clés :

ChampObjectifDéfaut
inputLocaleLangue sourceen
pairsMappage source→cible avec configuration de méthode(obligatoire)
localesDirOù se trouvent les fichiers de paramètres régionaux(détection automatique)
modelModèle LLM pour les méthodes llm/llm-coachedgoogle/gemini-2.5-flash
batchSizeClés par appel API80 (LLM), 128 (Google)
jsonConcurrencyTraductions parallèles de paramètres régionaux pour les clés JSON200
contentConcurrencyAppels API parallèles pour la traduction de contenu48

Référence complète : Configuration


Méthodes de traduction

MéthodeQuand l'utiliserCoûtClé API nécessaire
llmUsage général, bon pour les langues bien dotées en ressourcesPar jeton (dépend du modèle)OPENROUTER_API_KEY
llm-coachedQuand vous avez des règles de grammaire/dictionnaire pour la langue ciblePar jeton + contexte de coachingOPENROUTER_API_KEY
google-translateLangues à ressources élevées où la traduction automatique fonctionne bien20 $/million de caractèresGOOGLE_TRANSLATE_API_KEY
apiPipeline personnalisé hébergé derrière un point de terminaison HTTPDéterminé par le serveurAucune (le point de terminaison gère l'authentification)
pluginMéthode pré-packagée installée localementVarieVarie

Détails : Méthodes de traduction


Données de coaching

Pour les paires llm-coached, les données de coaching orientent le LLM avec des connaissances linguistiques explicites. Créez un fichier de coaching :

coaching/fr.json
{
"grammar_rules": [
"Use formal register (vous) for all UI text",
"Adjectives agree in gender and number with the noun"
],
"dictionary": {
"dashboard": "tableau de bord",
"settings": "paramètres"
},
"style_notes": "Prefer active voice. Avoid anglicisms."
}

Référencez-le dans votre configuration de paire :

"en-fr": { "method": "llm-coached", "coachingFile": "coaching/fr.json" }

La porte de qualité vérifie que les termes du dictionnaire apparaissent réellement dans la sortie — les violations sont enregistrées comme des avertissements [TERM].

Détails : Données de coaching


Porte de qualité

Chaque traduction passe par cinq vérifications automatisées avant d'être écrite sur le disque :

VérificationCe qu'elle détecteExemple
Vide/blancLe modèle n'a rien retourné""
Écho sourceLe modèle a retourné l'entrée anglaise inchangée"Welcome" pour le japonais
Boucle d'hallucinationTrigrammes répétés"Qo' Qo' Qo' Qo'"
Inflation de longueurLa sortie est 4 fois ou plus plus longue que la sourceSource de 10 caractères → sortie de 50 caractères
Conformité du scriptMauvais script pour la localeTexte latin pour la locale arabe

Les défaillances sont enregistrées avec le préfixe [GATE]. Pas de replis silencieux — si une traduction échoue, elle est signalée, pas silencieusement acceptée.

Détails : Porte de qualité


Mémoire de traduction

Champollion met en cache les traductions dans .champollion/tm.json, indexées par texte source + locale + méthode. Lors des synchronisations ultérieures, les clés inchangées sont servies à partir du cache — pas d'appel API, pas de coût.

[TM] 142 key(s) served from cache
Translating 3 key(s) to French (llm)... [OK]

Pour contourner le cache pour une exécution : npx champollion sync --no-tm

Détails : Mémoire de traduction


Fichiers générés

Champollion crée plusieurs fichiers dans votre projet. Sachez ce qu'ils sont pour ne pas supprimer ou valider accidentellement les mauvais :

FichierObjectifGit ?
.champollion.lockHachages SHA-256 des valeurs source traduites (détection des modifications)Oui — validez ceci
.champollion-content.lockIdentique, mais pour les fichiers de contenu Markdown/MDXOui — validez ceci
.champollion/tm.jsonCache de mémoire de traductionOui — validez ceci (économise les coûts API pour l'équipe)
.champollion/coaching/Répertoire de données de coachingOui — c'est votre connaissance linguistique
champollion.config.jsonConfiguration du projetOui — validez ceci

Modèles courants

Traduire une paire de langues :

npx champollion sync --pair en-fr

Traduire toutes les paires configurées :

npx champollion sync

Champollion traduit toutes les locales en parallèle. Avec la mise en cache TM, seules les clés modifiées accèdent à l'API.

Mode contenu (Markdown/MDX pour Docusaurus, Hugo, etc.) :

npx champollion sync --content

Traduit les documents, articles de blog et fichiers de contenu aux côtés du JSON de paramètres régionaux. Utilise la concurrence parallèle (par défaut : 48 appels API simultanés). Ajustez avec --content-concurrency.

Exécution à blanc (aperçu sans écriture) :

npx champollion sync --dry-run

Forcer la re-traduction de clés spécifiques :

npx champollion sync --force-keys "hero.title,nav.about"

Forcer la re-traduction de tous les fichiers de contenu :

npx champollion sync --force-content

Vérifier l'état de la traduction :

npx champollion status

Affiche la couverture, les niveaux de qualité et les informations de plugin pour chaque paire.

Audit pour les replis non traduits :

npx champollion audit

Liste toutes les valeurs de repli [EN] qui nécessitent une traduction.


Dépannage

ProblèmeSolution
OPENROUTER_API_KEY not setExportez la clé ou ajoutez-la à .env à la racine de votre projet
No locale files foundDéfinissez localesDir dans la configuration, ou assurez-vous que vos fichiers de paramètres régionaux correspondent à la dénomination standard (en.json, fr.json)
[GATE] Script compliance failedVotre locale cible a reçu du texte latin au lieu du script attendu — essayez un modèle différent ou ajoutez des données de coaching
[GATE] Source echoLe modèle a retourné l'anglais inchangé — les données de coaching ou un modèle différent résolvent généralement ce problème
Toutes les traductions en cacheExécutez avec --no-tm pour contourner le cache, ou --force-keys pour des clés spécifiques
Conflits de fichier de verrouillage.champollion.lock utilise des hachages SHA-256 — les conflits de fusion sont sûrs à résoudre en conservant l'une ou l'autre version, puis en réexécutant la synchronisation

Prochaines étapes