---
title: "Verbatra : la CLI i18n qui ne traduit que les clés modifiées"
description: "Verbatra, CLI et SDK i18n open source, trouve les clés manquantes ou modifiées de tes fichiers de locale et ne traduit qu’elles, avec ta clé de fournisseur."
---

# Ne traduis que ce qui a changé

Verbatra hache chaque clé dans un fichier de verrouillage, n’envoie que les clés modifiées à ton fournisseur et fait échouer la CI en cas de dérive.

- [Démarrer](https://verbatra.kreitz-webdev.de/fr/docs/quickstart.md)
- [Comparer avec d’autres outils](https://verbatra.kreitz-webdev.de/fr/compare)

```sh
npm i -D @verbatra/cli
```

## Fonctionne avec les fichiers de locale et les fournisseurs que tu utilises déjà

### Formats de fichiers

- i18next JSON
- vue-i18n JSON
- next-intl JSON
- ngx-translate JSON
- XLIFF
- YAML
- Flutter ARB
- Java/Spring .properties
- Apple .strings
- Xcode String Catalog
- Android strings.xml
- gettext .po/.pot
- INI
- .NET .resx

[Tous les formats](https://verbatra.kreitz-webdev.de/fr/docs/formats.md)

### Fournisseurs

- Anthropic
- OpenAI
- Gemini
- DeepL
- Google Cloud Translation
- OpenCode
- OpenAI-compatible
- LibreTranslate

[Tous les fournisseurs](https://verbatra.kreitz-webdev.de/fr/docs/providers.md)

## Une exécution, une locale

2 clés quittent ta machine, 12 restent sur place

```text
de: 2 translated, 12 unchanged, 359 tokens (318 in, 41 out)
```

## Tout autour du diff

Une CLI, un SDK, un Studio local et un serveur MCP, tous lisant le même fichier de verrouillage.

### Traduire: Tout retraduire coûte plus cher

Seules 4 traductions sur 28 sont nouvelles ou modifiées, donc seules 4 partent chez ton fournisseur.

```text
$ npx @verbatra/cli translate
  de: 2 translated, 12 unchanged, 359 tokens (318 in, 41 out)
  fr: 2 translated, 12 unchanged, 366 tokens (322 in, 44 out)
  total: 725 tokens (640 in, 85 out)
2 succeeded, 0 partial, 0 failed
```

### Vérification: Les clés manquantes arrivent en production

`exit 1`

La vérification se termine avec 1 tant qu’il manque des clés à une locale. Elle ne nécessite aucune clé API, elle s’exécute donc sur chaque pull request.

### Intégrité: Un placeholder cassé casse un écran

- de: Willkommen zurück, {name}!
- es: ¡Bienvenido de nuevo, {name}!
- fr: Bienvenue, {name} !
- ja: おかえりなさい、{name}さん！

### Agents: Ton agent de code corrige les traductions

Enregistre le serveur MCP pour le projet, et l’agent peut lire le statut et corriger les traductions. Les outils qui dépensent des jetons de fournisseur restent inactifs jusqu’à ce que tu les autorises.

```sh
claude mcp add --transport stdio --scope project verbatra -- npx -y @verbatra/mcp
```

## Traduis une chaîne avec le SDK

Choisis une chaîne et regarde l’appel SDK la traduire dans toutes les langues ci-dessous. Les espaces réservés restent exactement en place.

Pré-généré avec le SDK Verbatra et Gemini, non en direct.

- Fournisseur: Gemini
- Modèle: `gemini-2.5-flash`
- Généré: 16 octobre 2026

Chaque résultat pré-généré, une ligne par chaîne source:

| Source (Anglais) | Allemand | Espagnol | Français | Japonais |
| --- | --- | --- | --- | --- |
| Save changes | Änderungen speichern | Guardar cambios | Enregistrer les modifications | 変更を保存 |
| Sign in | Anmelden | Iniciar sesión | Se connecter | サインイン |
| Welcome back, {name}! | Willkommen zurück, {name}! | ¡Bienvenido de nuevo, {name}! | Bienvenue, {name} ! | おかえりなさい、{name}さん！ |
| You have {count} new messages | Sie haben {count} neue Nachrichten | Tienes {count} mensajes nuevos | Vous avez {count} nouveaux messages | {count}件の新しいメッセージがあります |
| Your cart is empty. | Ihr Warenkorb ist leer. | Tu carrito está vacío. | Votre panier est vide. | カートは空です。 |
| Delete this file? | Diese Datei löschen? | ¿Eliminar este archivo? | Supprimer ce fichier ? | このファイルを削除しますか？ |
| Don't show this again | Nicht wieder anzeigen | No mostrar esto de nuevo | Ne plus afficher ceci | 今後表示しない |
| Settings | Einstellungen | Configuración | Paramètres | 設定 |
| Only changed keys get translated. | Es werden nur geänderte Schlüssel übersetzt. | Solo las claves modificadas se traducen. | Seules les clés modifiées sont traduites. | 変更されたキーのみが翻訳されます。 |
| Verbatra | Verbatra | Verbatra | Verbatra | Verbatra |

```ts title="translate.ts"
import { defineConfig, loadConfig, translate } from "@verbatra/sdk";

const config = await loadConfig({
  configOverride: defineConfig({
    sourceLocale: "en",
    targetLocales: [
      "de",
      "es",
      "fr",
      "ja",
    ],
    format: "next-intl-json",
    files: { pattern: "messages/{locale}.json" },
    provider: {
      id: "gemini",
      options: { model: "gemini-2.5-flash", maxOutputTokens: 2048 },
    },
  }),
});

const summary = await translate({ config });
```

En savoir plus:

- [Démarrage rapide du SDK](https://verbatra.kreitz-webdev.de/fr/docs/sdk-quickstart.md)
- [Référence du SDK](https://verbatra.kreitz-webdev.de/fr/docs/sdk.md)
- [Fournisseurs](https://verbatra.kreitz-webdev.de/fr/docs/providers.md)

## Fonctionnalités: Conçu pour l’ensemble du flux de travail de traduction

De la première chaîne dans ton code source à la traduction relue en production.

- [Relis dans le Studio](https://verbatra.kreitz-webdev.de/fr/docs/cli/studio.md): Un tableau de bord local pour ton projet : parcours chaque locale, gère la file de relecture et modifie les valeurs directement.
- [Confie à des personnes](https://verbatra.kreitz-webdev.de/fr/docs/cli/export.md): Exporte un classeur Excel, un CSV, un TSV ou un XLIFF pour un traducteur et réimporte-le. Les valeurs importées restent protégées des exécutions machine ultérieures.
- [Extrais du code source](https://verbatra.kreitz-webdev.de/fr/docs/cli/extract.md): Scanne ton code à la recherche des appels de traduction et ajoute les nouvelles clés à la locale source avant que quiconque ne les traduise.
- [Surveille pendant que tu développes](https://verbatra.kreitz-webdev.de/fr/docs/cli/watch.md): Maintiens un « watcher » en cours d’exécution en développement, et chaque modification de la locale source est traduite dès que tu enregistres.
- [Clés typées](https://verbatra.kreitz-webdev.de/fr/docs/cli/types.md): Génère des déclarations TypeScript pour tes clés et tes arguments de message, afin qu’une faute de frappe dans une clé fasse échouer la compilation.
- [Sache avant de dépenser](https://verbatra.kreitz-webdev.de/fr/docs/cli/doctor.md): Doctor vérifie la configuration sans clé API, et une estimation permet de dimensionner une exécution avant qu’elle ne coûte quoi que ce soit.

## Avant d’installer Verbatra

Réponses courtes, chacune avec la page de la documentation qui approfondit.

### Verbatra est-il gratuit ?

Oui. Verbatra est gratuit et open source sous la [licence MIT](https://github.com/verbatra/verbatra/blob/main/LICENSE), et tu ne paies ton fournisseur que pour les clés modifiées ; [l’estimation des coûts](https://verbatra.kreitz-webdev.de/fr/docs/estimating-cost.md) dimensionne d’abord une exécution.

### Quels fournisseurs de traduction Verbatra prend-il en charge ?

Anthropic, OpenAI, Gemini, DeepL, Google Cloud Translation, OpenCode, OpenAI-compatible et LibreTranslate. Définis-en un dans `provider`, ou `none` si seuls des humains traduisent ; voir les [fournisseurs](https://verbatra.kreitz-webdev.de/fr/docs/providers.md).

### Verbatra envoie-t-il mes chaînes ou mes clés API quelque part ?

Uniquement au fournisseur que tu configures, quand une commande traduit ; aucune télémétrie. Les clés restent dans l’environnement, et la [gestion des données](https://verbatra.kreitz-webdev.de/fr/docs/data-handling.md) liste ce que reçoit chaque fournisseur.

### Verbatra peut-il faire échouer une pull request si des traductions sont manquantes ?

Oui. `verbatra check` renvoie le code 1 tant qu’une locale a des clés manquantes ou obsolètes, sans clé API ; la [GitHub Action](https://verbatra.kreitz-webdev.de/fr/docs/github-action.md) l’exécute sur les pull requests.

### En quoi Verbatra diffère-t-il des autres outils i18n ?

C’est une CLI qui s’exécute sur tes fichiers versionnés, pas une plateforme hébergée. La [page de comparaison](https://verbatra.kreitz-webdev.de/fr/compare) la confronte aux autres outils, sources à l’appui, même quand ils sont meilleurs.

Dans la documentation:

- [Démarrage rapide](https://verbatra.kreitz-webdev.de/fr/docs/quickstart.md)
- [Sécurité de la traduction](https://verbatra.kreitz-webdev.de/fr/docs/translation-safety.md)
- [Comparaison complète](https://verbatra.kreitz-webdev.de/fr/compare)

## Commence par un test à blanc

Avant de dépenser un jeton

Ce parcours s’adresse à un projet qui a déjà des fichiers de locale, et aucune des deux étapes ne nécessite de clé API.

```sh
npx @verbatra/cli init
npx @verbatra/cli translate --dry-run
```

- [Provenance npm](https://www.npmjs.com/package/@verbatra/cli)
- [Licence MIT](https://github.com/verbatra/verbatra/blob/main/LICENSE)
- [La CLI n’envoie aucune télémétrie](https://verbatra.kreitz-webdev.de/fr/docs/data-handling.md)
- [Seuil de couverture de 90 %](https://codecov.io/gh/verbatra/verbatra)
- [Workflow CI](https://github.com/verbatra/verbatra/actions/workflows/ci.yml)
