Tutoriel : Construire un plugin de traduction
Construisez une méthode de traduction personnalisée à partir de zéro, évaluez-la et déployez-la en tant que plugin champollion. Ceci est le flux de travail complet pour ajouter une nouvelle paire linguistique qu'aucune API commerciale ne supporte.
Ce que vous allez construire : Un plugin de traduction encadré pour le français formel avec terminologie imposée, règles grammaticales et scores d'évaluation.
Durée : 30–45 minutes
Prérequis :
- champollion installé (
npm install --save-dev champollion) - Une clé API OpenRouter (
OPENROUTER_API_KEY) - Python 3.10+ (pour le harnais d'évaluation)
Étape 1 : Identifier le problème
Vous traduisez un tableau de bord SaaS en français. La méthode llm par défaut produit des traductions correctes mais incohérentes :
- Parfois « dashboard » devient « tableau de bord », d'autres fois « panneau de contrôle »
- Le registre alterne entre les formes
tuetvous - Les termes techniques sont anglicisés de manière incohérente
Vous avez besoin d'imposer la terminologie et de contrôler le registre que l'invite LLM générique ne fournit pas.
Étape 2 : Créer des données d'encadrement
Créez un fichier d'encadrement qui encode vos exigences linguistiques :
mkdir -p .champollion/coaching
{
"grammar_rules": [
"Always use the 'vous' form for formal register",
"French adjectives agree in gender and number with their noun",
"Use the present tense for UI instructions, not the imperative",
"Preserve sentence-final punctuation style from the source"
],
"dictionary": {
"dashboard": "tableau de bord",
"deployment": "déploiement",
"settings": "paramètres",
"environment variable": "variable d'environnement",
"webhook": "webhook",
"API key": "clé API",
"sign in": "se connecter",
"sign out": "se déconnecter",
"repository": "dépôt",
"pull request": "demande de tirage"
},
"style_notes": "Formal technical French. Prefer native French terms over anglicisms where established equivalents exist. Keep UI labels concise — 3 words maximum where possible."
}
Ce que chaque champ fait :
grammar_rules— Injecté dans l'invite système du LLM en tant que contraintes explicitesdictionary— Mis en correspondance avec les clés sources ; lorsqu'un terme du dictionnaire apparaît, il est injecté en tant que « terminologie requise » dans l'invitestyle_notes— Ajouté à l'invite système en tant que conseils de style général
Étape 3 : Configurer la paire
Dites à champollion d'utiliser llm-coached pour le français :
{
"version": 3,
"inputLocale": "en",
"localesDir": "./locales",
"pairs": {
"en:fr": {
"method": "llm-coached",
"model": "google/gemini-3.5-flash",
"temperature": 0.2
}
},
"languages": {
"fr": {
"register": "Formal technical French (vous-form)",
"name": "French"
}
}
}
Étape 4 : Le tester
npx champollion sync --dry
Examinez la sortie de simulation. Vérifiez que :
- ✅ Les termes du dictionnaire sont utilisés de manière cohérente (« tableau de bord », pas « panneau de contrôle »)
- ✅ La forme
vousest utilisée partout - ✅ Les termes techniques correspondent à votre dictionnaire
Ensuite, exécutez la synchronisation réelle :
npx champollion sync
Étape 5 : Évaluer avec le harnais d'évaluation (Optionnel)
Si vous voulez des scores de qualité — et vous le voulez, car les plugins sont livrés avec des données d'évaluation — utilisez le harnais d'évaluation compagnon.
Installer le harnais
pip install mt-eval-harness
Créer un corpus de référence
Créez un fichier avec des chaînes sources et des traductions de référence :
[
{
"source": "Dashboard",
"reference": "Tableau de bord"
},
{
"source": "Sign in to your account",
"reference": "Connectez-vous à votre compte"
},
{
"source": "Your deployment is ready",
"reference": "Votre déploiement est prêt"
},
{
"source": "Environment variables",
"reference": "Variables d'environnement"
}
]
Exécuter l'évaluation
mt-eval test \
--corpus corpus/french-formal.json \
--source en \
--target fr \
--model google/gemini-3.5-flash \
--temperature 0.2 \
--champollion-config champollion.config.json
Le harnais produit :
- chrF++ — Score F au niveau des caractères (0–100). Au-dessus de 70 est solide.
- BLEU — Chevauchement des n-grammes (0–100). Au-dessus de 40 est bon pour la traduction encadrée.
- Taux de correspondance exacte — Proportion de traductions correspondant exactement à la référence.
- COMET — Métrique de qualité neuronale (si installée via
mt-eval setup --comet).
:::tip Testez ce que vous déployez
L'utilisation de --champollion-config importe votre modèle de production, registre, température et données d'encadrement directement depuis votre champollion.config.json. Cela garantit que vous évaluez la méthode exacte que vous allez déployer.
:::
Exporter le plugin
Une fois satisfait des scores :
mt-eval export \
--name french-formal-v1 \
--report eval/logs/harness/run_report.json \
--output ./french-formal-v1/
Cela crée :
french-formal-v1/
├── method.json # Manifest with config + benchmarks
└── coaching/
└── fr.json # Your coaching data
Étape 6 : Installer le plugin dans Champollion
npx champollion plugin install ./french-formal-v1/
Cela copie le plugin vers .champollion/methods/french-formal-v1/.
Mettez à jour votre configuration pour l'utiliser :
{
"pairs": {
"en:fr": {
"methodPlugin": "french-formal-v1"
}
}
}
Étape 7 : Vérifier
# Check plugin is installed and shows benchmark scores
npx champollion status
# Run a sync with the plugin
npx champollion sync
# Audit licensing status
npx champollion provenance
La sortie status affichera :
en → fr
Method: french-formal-v1 (llm-coached)
Model: google/gemini-3.5-flash
Quality: high
chrF++: 74.2
BLEU: 46.8
Exact: 42%
Ce que vous avez construit
Vous disposez maintenant de :
- Données d'encadrement — Règles grammaticales et terminologie qui imposent la cohérence
- Scores d'évaluation — Qualité quantifiée qui est livrée avec le plugin
- Un plugin portable —
method.json+ données d'encadrement, installable sur n'importe quelle machine - Déploiement en production — Intégré dans votre pipeline de synchronisation
Prochaines étapes
- Spécification du plugin — Référence complète du format de manifeste
- Méthodes de traduction — Comparez les quatre méthodes
- Langues peu dotées en ressources — Appliquez ce modèle aux langues sans couverture API
- Traduire 30 langues — Étendez votre projet à un public mondial