Aller au contenu

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
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

Fournisseurs

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

Une exécution, une locale

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

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.

$ 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.

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.

en → de, es, fr, jaterminé
Source (en)Welcome back, {name}!
Chaîne source
Langues cibles
Contrôle d’intégrité réussi : 4 sur 4 placeholders intactsenvoyés 1conservés 9placeholders 4/4
translate.ts
@verbatra/sdk
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 });
translate()résolu

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

Comment ces résultats ont été générés

Fournisseur
Gemini
Modèle
gemini-2.5-flash
Généré
Chaque résultat pré-généré, une ligne par chaîne source
Source (Anglais)AllemandEspagnolFrançaisJaponais
Save changesÄnderungen speichernGuardar cambiosEnregistrer les modifications変更を保存
Sign inAnmeldenIniciar sesiónSe connecterサインイン
Welcome back, {name}!Willkommen zurück, {name}!¡Bienvenido de nuevo, {name}!Bienvenue, {name} !おかえりなさい、{name}さん!
You have {count} new messagesSie haben {count} neue NachrichtenTienes {count} mensajes nuevosVous 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 againNicht wieder anzeigenNo mostrar esto de nuevoNe plus afficher ceci今後表示しない
SettingsEinstellungenConfiguraciónParamè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.変更されたキーのみが翻訳されます。
VerbatraVerbatraVerbatraVerbatraVerbatra

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

    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

    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

    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

    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

    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

    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 (s’ouvre dans un nouvel onglet), et tu ne paies ton fournisseur que pour les clés modifiées ; l’estimation des coûts 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.

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 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 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 la confronte aux autres outils, sources à l’appui, même quand ils sont meilleurs.

Avant de dépenser un jeton

Commence par un test à blanc

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.

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