Aller au contenu
11 juin 20264 min readProduct

Une commande des chaînes en dur à une application localisée

Les outils de codage IA ont changé qui livre des logiciels. Une application construite en un après-midi avec v0, Lovable, Bolt ou Cursor semble terminée, jusqu'à ce que quelqu'un demande une deuxième langue et que vous réalisiez que chaque chaîne est en dur. Internationaliser après coup signifiait jusqu'ici un week-end entier : envelopper les chaînes, câbler i18next, créer un projet, ajouter des langues, faire circuler des fichiers.

C'est désormais une seule commande :

npx i18next-cli localize

La nouvelle super-commande localize de i18next-cli 1.62 enchaîne tout le parcours (détecter, instrumenter, extraire, connecter à Locize, traduire par IA, livrer) et se termine par une application localisée et fonctionnelle.


À quoi ressemble une exécution

$ npx i18next-cli localize
i18next-cli localize — from hardcoded strings to a localized app

[1/6] Detecting project…
      ✔ react + TypeScript
[2/6] Configuration…
      ✔ locales: en, de, fr, it
[3/6] Instrumenting code…
96/101 candidate string(s) instrumented (5 skipped).
[4/6] Extracting translation keys…
Translation keys extracted.
[5/6] Connecting to Locize…

  One manual step — in your browser:
    1. Sign up / log in
    2. Create a project. Your target languages (en, de, fr, it) are
       created automatically on the first sync.
    3. Copy your Project ID and an API key.

[6/6] Translating & delivering…
Synced to Locize with AI auto-translate requested.
      Waiting for AI translations to arrive…
        de: 96/96 (100%)
        fr: 96/96 (100%)
        it: 96/96 (100%)
All languages translated and downloaded.

 Done. Your app is localized.

Your AI translations come with confidence scores; low-confidence ones
are flagged for review in Locize.

L'étape 5 est le seul moment manuel de tout le flux : s'inscrire sur Locize, créer un projet, coller deux identifiants. Tout le reste se fait automatiquement, y compris la création de vos langues cibles. Si votre configuration ou votre environnement contient déjà LOCIZE_PROJECTID/LOCIZE_API_KEY, même cette étape disparaît.


Ce qui vient de se passer

  1. Détection : framework (React et Next.js nativement), TypeScript, une éventuelle configuration i18next existante.
  2. Configuration : utilise votre i18next.config.ts, ou lance l'assistant interactif init s'il n'en existe pas.
  3. Instrumentation : enveloppe les chaînes en dur dans des appels t() et des composants <Trans>, en injectant useTranslation() là où c'est nécessaire. Interactif par défaut : vous approuvez chaque changement. C'est la commande instrument, un assistant, pas un compilateur.
  4. Extraction : rassemble chaque clé dans vos fichiers de locale.
  5. Connexion à Locize : inscription guidée, et aucune configuration manuelle des langues, car les langues de votre configuration sont créées automatiquement lors de la première synchronisation (locize-cli ≥ 12.3, qui propulse les étapes Locize).
  6. Traduction & livraison : synchronise avec la traduction automatique IA, activée par défaut pour les nouveaux projets et qui utilise votre glossaire et votre styleguide comme contexte. La commande regarde ensuite les traductions arriver, les télécharge et affiche le snippet CDN i18next-locize-backend, pour que les futures corrections de traduction partent en ligne sans redéployer votre application.

Le projet Locize après l'exécution : les quatre langues à 100 %, publiées automatiquement.

Et comme la Quality Estimation est elle aussi activée par défaut pour les nouveaux projets, chaque traduction IA arrive avec un score de confiance ; celles à faible confiance sont signalées pour relecture au lieu de partir en ligne silencieusement. Et elle a attrapé un vrai cas dans cette démo :


Votre agent de codage IA peut s'en charger

Les applications pour lesquelles cette commande a été conçue ont souvent été écrites par un agent. Le flux est donc aussi disponible sous forme de prompt :

npx i18next-cli localize --print-agent-prompt

Cela affiche des instructions pas à pas pour Claude Code, Cursor ou tout autre agent de codage, utilisant les commandes CLI individuelles (instrument --dry-run, extract, locize-sync, …) au lieu de la super-commande interactive. Le prompt est aligné sur la version de votre CLI installée, et ne dérive donc jamais de ce que fait localize lui-même. Collez-le dans votre agent, fournissez les deux identifiants Locize quand il les demande, et relisez le diff à la fin.


Limites honnêtes

  • Relisez le diff d'instrumentation. L'instrumentation est heuristique et interactive pour une bonne raison : approuvez les changements chaîne par chaîne et attendez-vous à en ajuster quelques-uns (noms de marque, libellés dynamiques). Un arbre git non commité déclenche d'abord une demande de confirmation, et --dry-run prévisualise tout sans rien écrire.
  • Next.js App Router : instrument injecte useTranslation(), qui est client uniquement. Vérifiez les composants serveur dans le diff et ajoutez 'use client' ou passez-les à un modèle t() côté serveur.
  • Les stacks non React se dégradent proprement. La transformation couvre React/JSX d'origine ; pour Vue ou Svelte, ajoutez un plugin communautaire (i18next-cli-vue, i18next-cli-plugin-svelte). Sans plugin, l'étape d'instrumentation est sautée avec des indications, et le reste du flux (extraction → Locize → traduction automatique) s'exécute quand même.
  • La traduction IA s'exécute dès que le projet est abonné ou que votre propre clé de fournisseur IA/MT est configurée. La synchronisation elle-même fonctionne dans les deux cas, et relancer localize plus tard termine le travail : la commande est idempotente, les étapes déjà accomplies sont simplement sautées.

Pour commencer

À la racine de votre projet :

npx i18next-cli localize

Ou prévisualisez d'abord avec npx i18next-cli localize --dry-run. La référence complète des options (mode CI, --skip-instrument, namespaces, …) se trouve dans le README de i18next-cli, et le côté Locize dans la documentation CLI.

Si vous repoussiez la localisation à cause de la tuyauterie : la tuyauterie a disparu. Créez un compte Locize gratuit et lancez la commande.

Fatigué de gérer vos traductions à la main ?

Locize est le backend de gestion de traductions créé par l'équipe i18next : diffusion CDN, traduction IA, édition in-context, sans redéploiement.

Démarrez votre essai gratuit de 14 jours