---
title: "Verbatra: i18n-CLI, die nur geänderte Schlüssel übersetzt"
description: "Verbatra, eine Open-Source-CLI mit SDK für i18n, findet fehlende und geänderte Keys in deinen Sprachdateien und übersetzt nur diese mit deinem Provider-Key."
---

# Übersetze nur, was sich geändert hat

Verbatra hasht jeden Schlüssel in einer Lock-Datei, sendet nur geänderte Schlüssel an deinen Anbieter und lässt die CI bei Abweichungen fehlschlagen.

- [Loslegen](https://verbatra.kreitz-webdev.de/de/docs/quickstart.md)
- [Mit anderen Tools vergleichen](https://verbatra.kreitz-webdev.de/de/compare)

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

## Funktioniert mit deinen Sprachdateien und Anbietern

### Dateiformate

- 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

[Alle Formate](https://verbatra.kreitz-webdev.de/de/docs/formats.md)

### Anbieter

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

[Alle Anbieter](https://verbatra.kreitz-webdev.de/de/docs/providers.md)

## Ein Durchlauf, ein Locale

2 Schlüssel verlassen deinen Computer, 12 bleiben erhalten

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

## Alles rund um den Diff

Eine CLI, ein SDK, ein lokales Studio und ein MCP-Server, die alle dieselbe Lock-Datei lesen.

### Übersetzen: Alles neu zu übersetzen kostet mehr

Nur 4 von 28 Übersetzungen sind neu oder geändert, also gehen nur 4 an deinen Anbieter.

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

### Prüfung: Fehlende Schlüssel erreichen die Produktion

`exit 1`

Der Check endet mit 1, solange einer Locale Schlüssel fehlen. Er braucht keinen API-Schlüssel und läuft deshalb bei jedem Pull Request.

### Integrität: Ein kaputter Platzhalter führt zu einem kaputten Bildschirm

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

### Agenten: Dein Coding-Agent korrigiert Übersetzungen

Registriere den MCP-Server für das Projekt, und der Agent kann den Status lesen und Übersetzungen korrigieren. Tools, die Provider-Tokens verbrauchen, bleiben deaktiviert, bis du sie zulässt.

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

## Eine Zeichenkette mit dem SDK übersetzen

Wähle einen String aus und schau zu, wie der SDK-Aufruf ihn in jede Sprache unten übersetzt. Platzhalter bleiben genau an ihrem Platz.

Vorgeneriert mit dem Verbatra SDK und Gemini, nicht live.

- Anbieter: Gemini
- Modell: `gemini-2.5-flash`
- Generiert: 16. Oktober 2026

Jedes vorgenerierte Ergebnis, eine Zeile pro Quellzeichenkette:

| Quelle (Englisch) | Deutsch | Spanisch | Französisch | Japanisch |
| --- | --- | --- | --- | --- |
| 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 });
```

Mehr erfahren:

- [SDK-Schnellstart](https://verbatra.kreitz-webdev.de/de/docs/sdk-quickstart.md)
- [SDK-Referenz](https://verbatra.kreitz-webdev.de/de/docs/sdk.md)
- [Anbieter](https://verbatra.kreitz-webdev.de/de/docs/providers.md)

## Funktionen: Für den gesamten Übersetzungs-Workflow entwickelt

Vom ersten String in deinem Quellcode bis zur überprüften Übersetzung in der Produktion.

- [Im Studio überprüfen](https://verbatra.kreitz-webdev.de/de/docs/cli/studio.md): Ein lokales Dashboard für dein Projekt: durchsuche jedes Locale, arbeite die Überprüfungswarteschlange ab und bearbeite Werte direkt.
- [An Leute übergeben](https://verbatra.kreitz-webdev.de/de/docs/cli/export.md): Exportiere eine Excel-Arbeitsmappe, CSV, TSV oder XLIFF für einen Übersetzer und importiere sie zurück. Importierte Werte bleiben vor späteren Maschinenläufen geschützt.
- [Aus der Quelle extrahieren](https://verbatra.kreitz-webdev.de/de/docs/cli/extract.md): Scanne deinen Code nach Übersetzungsaufrufen und füge die neuen Schlüssel zum Quell-Locale hinzu, bevor sie jemand übersetzt.
- [Beobachten, während du baust](https://verbatra.kreitz-webdev.de/de/docs/cli/watch.md): Lass einen Watcher während der Entwicklung laufen, und jede Änderung am Quell-Locale wird übersetzt, sobald du speicherst.
- [Typisierte Schlüssel](https://verbatra.kreitz-webdev.de/de/docs/cli/types.md): Generiere TypeScript-Deklarationen für deine Schlüssel und Nachrichtenargumente, sodass ein Tippfehler in einem Schlüssel den Build fehlschlagen lässt.
- [Wissen, bevor du zahlst](https://verbatra.kreitz-webdev.de/de/docs/cli/doctor.md): Doctor prüft dein Setup ohne API-Schlüssel, und eine Schätzung beziffert einen Durchlauf, bevor er dich etwas kostet.

## Bevor du Verbatra installierst

Kurze Antworten, jede mit der Docs-Seite, die tiefer geht.

### Ist Verbatra kostenlos?

Ja. Verbatra ist kostenlos und Open Source unter der [MIT-Lizenz](https://github.com/verbatra/verbatra/blob/main/LICENSE), und du bezahlst deinen Anbieter nur für die geänderten Schlüssel; [Kostenschätzung](https://verbatra.kreitz-webdev.de/de/docs/estimating-cost.md) berechnet zuerst einen Durchlauf.

### Welche Übersetzungs-Anbieter unterstützt Verbatra?

Anthropic, OpenAI, Gemini, DeepL, Google Cloud Translation, OpenCode, OpenAI-compatible und LibreTranslate. Setze einen im `provider`-Block, oder `none`, wenn nur Menschen übersetzen; die [Anbieterseite](https://verbatra.kreitz-webdev.de/de/docs/providers.md) deckt jeden ab.

### Sendet Verbatra meine Strings oder API-Schlüssel irgendwohin?

Nur an den von dir konfigurierten Anbieter, wenn ein Befehl übersetzt; es gibt keine Telemetrie. Schlüssel bleiben in Umgebungsvariablen, und [Datenverarbeitung](https://verbatra.kreitz-webdev.de/de/docs/data-handling.md) listet auf, was jeder Anbieter erhält.

### Kann Verbatra einen Pull Request fehlschlagen lassen, wenn Übersetzungen fehlen?

Ja. `verbatra check` beendet sich mit Exit-Code 1, solange eine Sprachdatei fehlende oder veraltete Schlüssel enthält, und braucht keinen API-Schlüssel; die [GitHub Action](https://verbatra.kreitz-webdev.de/de/docs/github-action.md) führt dies bei Pull Requests aus.

### Wie unterscheidet sich Verbatra von anderen i18n-Tools?

Es ist eine CLI, die auf deinen eigenen committeten Dateien läuft, keine gehostete Plattform. Die [Vergleichsseite](https://verbatra.kreitz-webdev.de/de/compare) prüft sie gegen andere Tools, mit Quellen, auch dort, wo diese stärker sind.

In den Docs:

- [Schnellstart](https://verbatra.kreitz-webdev.de/de/docs/quickstart.md)
- [Übersetzungssicherheit](https://verbatra.kreitz-webdev.de/de/docs/translation-safety.md)
- [Vollständiger Vergleich](https://verbatra.kreitz-webdev.de/de/compare)

## Beginne mit einem Probelauf

Bevor du einen Token ausgibst

Dieser Pfad ist für ein Projekt, das bereits Lokalisierungsdateien hat, und keiner der Schritte benötigt einen API-Schlüssel.

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

- [npm-Provenienz](https://www.npmjs.com/package/@verbatra/cli)
- [MIT-Lizenz](https://github.com/verbatra/verbatra/blob/main/LICENSE)
- [Die CLI sendet keine Telemetriedaten](https://verbatra.kreitz-webdev.de/de/docs/data-handling.md)
- [90% Abdeckungsschwelle](https://codecov.io/gh/verbatra/verbatra)
- [CI-Workflow](https://github.com/verbatra/verbatra/actions/workflows/ci.yml)
