Accéder au contenu principal

Référence CLI

Commandes

champollion init Interactive setup wizard (--yes for quick defaults)
champollion sync Translate & sync all locale files
champollion watch Auto-sync when the source file changes
champollion audit List all untranslated [EN] fallback values
champollion lint Scan source code for hardcoded strings
champollion wrap Auto-wrap hardcoded strings in t() calls (with undo)
champollion seo <sub> Generate hreflang, sitemap.xml, or JSON-LD schema
champollion integrity Audit locale files for format/encoding issues
champollion verify Verify translations are present and correct (CI gate)
champollion status Show pair configuration, plugins, and quality tiers
champollion provenance Audit translation resource licensing
champollion plugin <sub> Manage method plugins (install, remove, list)
champollion fonts <sub> Download web fonts for PUA script converters
champollion leaderboard Browse and install methods from the MT Eval Arena leaderboard
champollion tm <sub> Manage Translation Memory cache (stats, clear)
champollion xliff <sub> Export/import XLIFF 1.2 for professional review

Exécutez champollion <command> --help pour obtenir une aide détaillée sur n'importe quelle commande.

Options globales

--help, -h Show help (global or per-command)
--version, -v Print version and exit
--yes, -y Skip interactive prompts, use defaults
--config <path> Custom config file path
--dir <path> Override locales directory
--content-dir <path> Hugo/Docusaurus content directory for Markdown translation
--source <code> Override source locale (default: en)
--model <model> Override translation model (full slug or alias from shared/model-aliases.json)
--method <method> Translation method: llm, google-translate (default: from config)
--temperature <n> LLM temperature (0.0–2.0, default: 0.3)
--coaching-file <path> Path to free-text coaching prompt file (injected into system prompt)
--format <fmt> Locale file format: json, toml, yaml, or auto
--dry, --dry-run Preview changes without writing files
--concurrency <n> Max parallel API calls (sets both JSON and content, default: 48)
--json-concurrency <n> Max parallel locale translations for JSON keys (default: 200)
--content-concurrency <n> Max parallel API calls for content translation (default: 48)
--force-content Re-translate all content files (clears content lock)
--force-keys <keys> Comma-separated dot-notation keys to force re-translate
--no-tm Skip Translation Memory cache for this sync run
--no-verify Skip post-sync verification pass
--locale <code> Target locale (xliff export, tm clear)
--quiet Errors and warnings only — suppress banner, progress bar, and info lines
--json Machine-readable NDJSON output — one JSON object per event

init

Assistant interactif de configuration qui crée champollion.config.json. Guide à travers la locale source, les langues cibles, le format de fichier et le modèle de traduction.

champollion init # interactive wizard
champollion init --yes # skip wizard, use defaults
champollion init --yes --langs fr,de,ja # quick setup with specific languages
champollion init --source en --dir ./i18n # overrides with defaults

Option --langs : Liste de codes de langue cibles séparés par des virgules. Ignore l'invite de langue et applique les présets de registre par défaut pour chaque langue. Combinez avec --yes pour une configuration entièrement non-interactive.

Présets de langue : Lorsque vous êtes invité à entrer les langues cibles, vous pouvez taper les noms des présets :

  • european → fr, de, es, it, pt, nl
  • asian → ja, zh, ko
  • global → fr, es, de, ja, zh, ko, pt, ar
  • nordic → da, fi, nb, sv

Mélangez les présets et les codes individuels : european, ja → fr, de, es, it, pt, nl, ja


sync

Traduit les clés manquantes et obsolètes dans tous les fichiers de locale. Exécute la vérification post-sync par défaut.

champollion sync # translate everything
champollion sync --dry-run # preview only
champollion sync --force-keys "hero.title" # force re-translate
champollion sync --force-keys "a.title,a.subtitle" # multiple keys
champollion sync --force-content # re-translate all Markdown/MDX
champollion sync --content-dir ./content # include Hugo Markdown
champollion sync --method google-translate # force Google Translate
champollion sync --concurrency 20 # 20 parallel API calls (both phases)
champollion sync --json-concurrency 30 # 30 parallel locale translations (JSON)
champollion sync --content-concurrency 8 # 8 parallel content translations
champollion sync --no-verify # skip post-sync verification
champollion sync --no-tm # skip cache, fresh API calls

Mémoire de traduction : Par défaut, sync charge .champollion/tm.json et fournit les traductions en cache pour les valeurs source inchangées. Utilisez --no-tm pour contourner le cache (utile lors du changement de fournisseur de traduction ou du débogage de la qualité). Consultez Mémoire de traduction.

Détection des modifications : champollion stocke les hachages SHA-256 dans .champollion.lock. Lorsque les valeurs source changent, la synchronisation suivante retraduit automatiquement ces clés. Validez le fichier de verrouillage pour que tous les développeurs partagent la ligne de base.

Parallélisme : La traduction des clés JSON et la traduction de contenu s'exécutent en parallèle. Les locales JSON sont traduites simultanément (par défaut : 200 locales concurrentes), avec des lots au sein de chaque locale également parallélisés (4 lots concurrents). La traduction de contenu (Markdown, MDX, articles de blog) s'exécute dans un pool d'éléments de travail plat (par défaut : 48 appels API concurrents). Remplacez avec --json-concurrency, --content-concurrency, ou --concurrency (définit les deux).

Sortie : Sync affiche une bannière de version, la détection du format/framework, une estimation des coûts et des barres de progression par locale :

champollion v0.1.0

[INFO] Detected format: json (auto)
[INFO] Source: en.json (2,847 keys)
[INFO] Pairs: es-MX:llm, fr:deepl

[INFO] es-MX.json — 2,847 missing
████████████████████████████████ 2,847/2,847 keys
[INFO] fr.json — 2,847 missing
████████████████████████████████ 2,847/2,847 keys
[OK] Synced 5,694 keys total.

Les barres de progression se mettent à jour sur place après chaque lot (~80 clés). Utilisez --quiet pour les erreurs/avertissements uniquement, ou --json pour une sortie NDJSON lisible par machine. Les deux suppriment la barre de progression et la bannière.


watch

Synchronisation automatique lorsque le fichier de locale source change. S'exécute jusqu'à interruption avec Ctrl+C.

champollion watch

audit

Énumère toutes les valeurs de secours préfixées par [EN] non traduites des exécutions précédentes. Quitte avec le code 1 si des valeurs sont trouvées — utilisez comme porte CI pour échouer les builds avec des traductions incomplètes.

champollion audit

verify

Relit tous les fichiers de locale depuis le disque et vérifie que les traductions sont réellement présentes et correctes. C'est la même vérification qui s'exécute automatiquement à la fin de chaque sync (sauf si --no-verify est passé).

champollion verify # verify all locale files
champollion verify --warn-only # non-blocking
champollion verify && echo "All good" # CI gate

Ce qu'il vérifie :

  • Parité des clés — toutes les clés source présentes dans chaque cible
  • Marqueurs de secours [EN] des exécutions précédentes
  • Traductions vides
  • Conformité des scripts — les locales non-latines doivent avoir des traductions non-ASCII
  • Préservation des espaces réservés — les espaces réservés ICU correspondent à la source
  • Problèmes d'encodage — marqueurs BOM, caractères invisibles
  • Échos source — valeurs identiques à la source (avertissement)

lint

Analyse le code source pour les chaînes de caractères codées en dur visibles par l'utilisateur qui devraient utiliser les appels de traduction i18n. Détecte automatiquement votre framework (next-intl, react-i18next, vue-i18n, Hugo).

champollion lint # exits 1 if issues found
champollion lint --warn-only # always exits 0
champollion lint --src ./app # custom source directory
champollion lint --min-length 4 # minimum string length to flag

Ce qu'il détecte :

  • Chaînes codées en dur dans le texte JSX, placeholder, alt, aria-label, title
  • Fichiers avec contenu visible par l'utilisateur mais sans importation de framework i18n
  • Clés mortes — clés de locale qu'aucun fichier source ne référence
  • Score de couverture — pourcentage de chaînes passant par i18n

Exclusions : Créez .champollionignore dans la racine de votre projet (motifs glob, comme .gitignore).


wrap

Enveloppe automatiquement les chaînes codées en dur détectées par lint dans les appels t(). Crée des sauvegardes automatiques avant de modifier les fichiers.

champollion wrap # auto-wrap with backup
champollion wrap --dry # preview wrapping changes
champollion wrap --undo # restore from .champollion-backup/

Portes de sécurité :

  1. Vérification Git-clean (ignorée en dry-run)
  2. Sauvegarde automatique vers .champollion-backup/
  3. Aperçu des différences avant chaque écriture de fichier
  4. Support --undo pour restaurer à partir de la sauvegarde

seo

Générez des artefacts SEO pour les sites multilingues.

champollion seo hreflang # print hreflang tags
champollion seo sitemap --base-url https://example.com --out sitemap.xml
champollion seo jsonld --base-url https://example.com # JSON-LD schema
Sous-commandeSortie
hreflangBalises <link rel="alternate" hreflang>
sitemapsitemap.xml multilingue
jsonldSchéma JSON-LD WebSite language

integrity

Détecte la corruption et la dérive dans les fichiers de locale traduits.

champollion integrity # exits 1 if issues found
champollion integrity --warn-only # non-blocking

Ce qu'il vérifie :

  • Corruption des espaces réservés (par exemple, {name} présent dans la source mais absent dans la cible)
  • Problèmes d'encodage (mojibake, Unicode invalide)
  • Copies non traduites (valeur cible identique à la source)
  • Clés orphelines (clés dans la cible qui n'existent pas dans la source)
  • Complétude des catégories plurielles ICU MessageFormat (par exemple, l'arabe nécessite 6 catégories)

tm

Gérez le cache de mémoire de traduction (.champollion/tm.json). TM stocke les traductions précédentes et les fournit lors des synchronisations suivantes au lieu d'appeler l'API.

champollion tm stats # show cache statistics
champollion tm clear # clear cache (with confirmation)
champollion tm clear --yes # clear without confirmation
champollion tm clear --locale fr # clear only French entries
Sous-commandeSortie
statsNombre d'entrées, taille du fichier, répartition par locale
clearSupprimer le fichier cache (complet ou par locale)
OptionEffet
--locale <code>Effacer uniquement les entrées d'une locale
--yesIgnorer l'invite de confirmation

Consultez Mémoire de traduction pour comprendre comment TM fonctionne et quand l'effacer.


xliff

Exportez et importez des fichiers XLIFF 1.2 pour examen par des traducteurs professionnels. XLIFF est le format d'échange universel pris en charge par les outils TAO comme memoQ, SDL Trados et Phrase.

champollion xliff export --locale fr # export French XLIFF
champollion xliff export --locale ja --out ./review/ # custom output path
champollion xliff import .champollion/xliff/fr.xliff # import reviewed file
champollion xliff import ./reviewed.xliff --dry # preview import
Sous-commandeSortie
exportGénérer .xliff à partir des fichiers de locale source + cible
importFusionner les traductions .xliff examinées dans les fichiers de locale
OptionEffet
--locale <code>Locale cible pour l'export (obligatoire)
--out <path>Chemin ou répertoire de sortie personnalisé
--dryAperçu de l'import sans écriture

Consultez Travailler avec des traducteurs professionnels pour le flux de travail complet.


status

Affiche la configuration de la paire, les plugins installés, les niveaux de qualité et les scores de référence.

champollion status

provenance

Auditez les licences des ressources de traduction pour tous les plugins installés.

champollion provenance

plugin

Gérez les plugins de méthode de traduction. Les plugins sont des recettes de traduction pré-packagées installées dans .champollion/methods/.

champollion plugin list # show installed plugins
champollion plugin install ./my-method/ # install from local directory
champollion plugin remove crk-coached-v1 # remove a plugin

Consultez Spécification des plugins pour le format du manifeste du plugin.


leaderboard

Parcourez, recherchez et installez des méthodes de traduction à partir du classement MT Eval Arena. Les méthodes installées à partir du classement incluent les scores de référence et la MethodConfig canonique complète — la configuration exacte utilisée lors de l'évaluation.

champollion leaderboard # show leaderboard
champollion leaderboard --pair en:fr # filter by language pair
champollion leaderboard --install crk-coached-v8 # install a method plugin
champollion leaderboard --install crk-coached-v8 --apply # install + patch config
OptionEffet
--pair <code>Filtrer le classement par paire de langues (par exemple, en:fr)
--install <name>Installer un plugin de méthode à partir du classement
--applyAprès l'installation, ajouter automatiquement methodPlugin à champollion.config.json

Flux de travail --apply : Lorsque vous installez avec --apply, champollion écrit le plugin de méthode dans .champollion/methods/ et corrige votre champollion.config.json pour l'utiliser pour la paire pertinente. C'est le chemin le plus rapide de « qu'est-ce qui obtient les meilleurs scores ? » à « je l'utilise en production ».


fonts

Télécharge et gère les polices web PUA pour les convertisseurs de scripts de langues construites. Les langues qui utilisent des caractères de zone d'utilisation privée (Klingon, Sindarin, Kryptonien) ont besoin de polices web personnalisées pour rendre leurs scripts. Cette commande les télécharge à partir de référentiels open-source vérifiés.

champollion fonts list # show needed fonts
champollion fonts install # download all needed fonts
champollion fonts install --css # also generate CSS snippet
champollion fonts install --dir ./public/fonts # custom output directory
Sous-commandeSortie
listAffiche les polices PUA nécessaires et leur statut d'installation
installTélécharge les polices pour les langues configurées
OptionEffet
--dir <path>Remplacer le répertoire de sortie des polices (détection automatique du type de projet)
--cssGénérer un extrait conlang-fonts.css aux côtés des polices
--config <path>Chemin vers le fichier de configuration (utilisé pour détecter les langues qui ont besoin de polices)

Détection automatique : Le répertoire de sortie est déduit de la structure de votre projet :

  • Docosaurusstatic/fonts/ ou website/static/fonts/
  • Hugostatic/fonts/
  • Par défautpublic/fonts/

Convertisseurs Unicode natifs (crk → Syllabaires du Cree, sr → Cyrillique serbe) ne nécessitent PAS d'installation de police.

Consultez Conlangs, Scripts & Orthographie pour les détails complets des polices PUA.

Pipeline à trois niveaux

Utilisez lint, sync et audit ensemble pour une i18n infaillible :

package.json
{
"scripts": {
"i18n:lint": "champollion lint",
"i18n:sync": "champollion sync",
"i18n:audit": "champollion audit"
}
}
NiveauCommandeQuandObjectif
LintlintPré-commitBloquer les commits avec des chaînes codées en dur
SyncsyncPost-commit / CITraduire les clés manquantes et modifiées
VerifyverifyPost-sync / CIConfirmer que les traductions sont présentes et correctes
AuditauditÉtape de buildÉchouer le déploiement si une locale a des marqueurs [EN]

Voir aussi