Übersetze nur, was sich geändert hat.

verbatra ist ein CLI und SDK, das deine i18n-Locale-Dateien synchron hält. Du pflegst die Quell-Locale; es füllt jede weitere Locale über den KI-Anbieter, den du wählst.

npm i -D @verbatra/cli
  • Neueste veröffentlichte @verbatra/cli-Version auf npm
  • Neueste veröffentlichte @verbatra/sdk-Version auf npm
  • Build-Status der Continuous Integration
  • Auf Codecov gemeldete Testabdeckung
  • Monatliche npm-Downloads
  • Veröffentlicht unter der MIT-Lizenz
~/acme-shop

An example verbatra command-line session.

  1. verbatra init
    • ✓ created verbatra.config.ts
    • source en · targets de, es, fr
    • provider gemini · key from GEMINI_API_KEY
  2. verbatra translate
    • diff en.json · 12 new · 0 changed · 108 unchanged
    • de 12 translated · 108 unchanged · 0 withheld
    • es 12 translated · 108 unchanged · 0 withheld
    • fr 12 translated · 108 unchanged · 0 withheld
    • ✓ 36 keys translated in 5.4s · 0 skipped · lock updated
  3. verbatra diff
    • en.json · 120 keys · source of truth
    • de 2 new · 1 changed · 117 up to date
    • es 0 new · 0 changed · 120 up to date
    • fr 5 new · 0 changed · 115 up to date
    • 8 keys would be sent · run verbatra translate to apply
  4. verbatra watch
    • watching en.json for changes
    • en.json changed · 1 new key
    • de 1 translated · 0 withheld
    • es 1 translated · 0 withheld
    • fr 1 translated · 0 withheld
    • ✓ 3 keys translated · waiting for changes

Ein Tool für den gesamten Übersetzungsablauf.

verbatra ist mehr als KI-Übersetzung. Es deckt maschinelle Übersetzung ab, die du steuerst, eine saubere Excel-Übergabe für menschliche Übersetzerinnen und die Automatisierung, um jede Locale synchron zu halten.

KI-Übersetzung

Übersetze nur das Geänderte über den von dir gewählten Anbieter: Anthropic, OpenAI, Gemini, DeepL, Google Cloud Translation oder einen beliebigen OpenAI-kompatiblen Server, den du selbst betreibst. Eine festgeschriebene Lock-Datei sorgt dafür, dass jeder Durchlauf inkrementell ist, und die Integrität von Platzhaltern und ICU wird geprüft, bevor etwas geschrieben wird.

Excel-Übergabe

Führe verbatra export aus, um eine gestylte .xlsx-Arbeitsmappe zu erzeugen, gib sie an ein Übersetzungsbüro oder interne Übersetzerinnen, und verbatra import liest ihre Änderungen zurück in deine Locale-Dateien. Kombiniere maschinelle Übersetzung mit professioneller menschlicher Arbeit.

Automatisierung

Halte jede Locale synchron, während du arbeitest: verbatra watch übersetzt bei Änderungen, CI-freundliche Exit-Codes und --json-Ausgabe fügen sich in jede Pipeline ein, und eine GitHub Action führt es in deinem Workflow aus.

Ein Werkzeug, jedes Framework.

verbatra liest die Lokalisierungsdateien, die dein Stack bereits verwendet: JSON für i18next, vue-i18n, next-intl und ngx-translate, plus XLIFF, YAML, Flutter ARB, Java/Spring .properties, Apple .strings und Xcode String Catalogs, Android strings.xml und gettext .po/.pot Dateien. Es füllt sie über den von dir gewählten Anbieter, kein neues Format muss übernommen werden.

  • Frameworks und Formate:
  • React
  • Next.js
  • Vue
  • Nuxt
  • Angular
  • Node.js
  • SvelteKit
  • Astro
  • React Native
  • Flutter

Übersetze über das Modell, dem du vertraust.

Anthropic, OpenAI, Gemini, DeepL, Google Cloud Translation oder ein beliebiger OpenAI-kompatibler Server, den du selbst hostest. Wähle einen in einer einzigen Zeile deiner Konfiguration und wechsle den Anbieter, ohne deine Lokalisierungsdateien zu berühren.

  • Übersetzungsanbieter:
  • Anthropic
  • OpenAI
  • Gemini
  • DeepL

Ein Lauf ist eine kurze, vorhersehbare Pipeline.

Keine Magie, keine Hintergrundsynchronisierung: eine deterministische Abfolge, die du von oben nach unten lesen kannst.

  1. 01

    Konfigurieren

    Richte verbatra auf deine Quell-Locale, liste die Zielsprachen auf und wähle einen Anbieter. Die Konfiguration liegt in einer Datei; API-Schlüssel bleiben in deiner Umgebung.

  2. 02

    Vergleichen

    Jeder Lauf vergleicht deine Quell-Locale mit der eingecheckten Lock-Datei und sortiert jeden Schlüssel in neu, geändert, unverändert oder verwaist ein. Verwaiste Schlüssel, also solche, die nicht mehr in deiner Quelle stehen, werden gemeldet und bleiben erhalten: Aus deinen Locale-Dateien wird nichts entfernt, es sei denn, du aktivierst --prune.

  3. 03

    Übersetzen

    Nur die neuen und geänderten Schlüssel werden in Stapeln an deinen Anbieter gesendet, mit deinem Glossar und Tonfall. Alles andere bleibt unangetastet.

  4. 04

    Prüfen und schreiben

    Die Integrität von Platzhaltern und ICU wird bei jedem Ergebnis geprüft. Alles, was kaputtgeht, wird zurückgehalten; der Rest wird in deine Locale-Dateien geschrieben und die Lock-Datei wird aktualisiert.

Behalte den gesamten Übersetzungsstand im Blick, lokal.

Verbatra Studio ist ein lokales Dashboard über deinem Projekt. Es zeigt die Abdeckung jeder Locale live, listet die Übersetzungen auf, die ein Lauf als prüfenswert markiert hat, und lässt dich sie direkt korrigieren. Das Bearbeiten braucht keinen API-Key und ruft nie einen Provider auf.

Verbatra Studio
Die Seite Übersetzungen in Verbatra Studio: vier Kacheln für Keys, die Aufmerksamkeit brauchen, durchschnittliche Abdeckung, synchrone Locales und Token-Verbrauch des letzten Laufs, darunter ein Raster, das jeden Key pro Locale als fehlend oder synchron markiert, und eine Abdeckungstabelle pro Locale.
Studio gibt es hell und dunkel. Wechsle den Screenshot, um zu vergleichen.
Übersetzungen in Studio prüfen

Gebaut für Teams, die in vielen Sprachen ausliefern.

Jede Entscheidung begünstigt Vorhersehbarkeit: kleine Diffs, explizite Konfiguration und nichts, was nicht zuerst geprüft wurde, wird geschrieben.

Standardmäßig inkrementell

Eine eingecheckte Lock-Datei hält fest, was übersetzt wurde. Jeder Lauf vergleicht die Quelle und ruft den Anbieter nur für die Schlüssel auf, die sich geändert haben.

Der Anbieter deiner Wahl

Anthropic, OpenAI, Gemini, DeepL, Google Cloud Translation oder ein lokales OpenAI-kompatibles Modell, ausgewählt in einer Zeile deiner Konfiguration. Wechsle den Anbieter, ohne deine Lokalisierungsdateien zu berühren.

Sicher durch Konstruktion

Die Integrität von Platzhaltern und ICU wird nach jeder Übersetzung geprüft. Ein Ergebnis, das einen Platzhalter kaputtmacht, wird zurückgehalten und nie geschrieben.

Schlüssel bleiben in deiner Umgebung

API-Schlüssel des Anbieters werden aus Umgebungsvariablen gelesen, nie aus der Konfigurationsdatei, nie aus CLI-Argumenten und nie protokolliert.

CLI und SDK, eine Engine

Der Befehl verbatra und @verbatra/sdk teilen sich einen einzigen Orchestrierungskern, sodass Skripte, CI und dein eigenes Werkzeug sich identisch verhalten.

Probeläufe und Watch-Modus

Sieh dir genau an, was ein Lauf ändern würde, ohne etwas zu schreiben, oder halte einen Watch-Modus am Laufen, der übersetzt, während sich deine Quell-Locale weiterentwickelt.

Häufig gestellte Fragen

Kurze, direkte Antworten auf die Fragen, die Teams vor der Einführung von verbatra stellen.

JSON für i18next, vue-i18n, next-intl und ngx-translate, plus XLIFF, YAML, Flutter ARB, Java/Spring .properties, Apple .strings und Xcode String Catalogs, Android strings.xml und gettext .po/.pot Dateien. Das deckt React, Next.js, Vue, Nuxt, Angular, SvelteKit, Astro, Node.js, Spring, Flutter, iOS, macOS, Android und jeden gettext-basierten Stack ab. verbatra liest die Dateien, die du bereits hast; es gibt kein verbatra-spezifisches Format, zu dem migriert werden müsste.

Es führt eine eingecheckte Lock-Datei, die festhält, was bereits übersetzt wurde. Jeder Lauf vergleicht deine Quell-Locale mit dieser Lock-Datei und sendet nur die neuen oder geänderten Schlüssel an deinen Anbieter. Unveränderte Schlüssel werden nie angefasst, sodass ein typischer Lauf eine Handvoll Strings kostet, nicht deinen ganzen Katalog.

Sechs, hinter einer Oberfläche: Anthropic, OpenAI und Gemini (LLMs), DeepL und Google Cloud Translation (maschinelle Übersetzung) sowie openai-compatible, das verbatra auf einen lokalen oder selbst gehosteten Server wie Ollama, LM Studio oder vLLM verweist. Du wählst einen über seine ID in deiner Konfiguration aus und kannst später durch Bearbeiten dieser einen Zeile wechseln. Gemini hat einen echten kostenlosen Tarif, und ein lokales Modell kostet pro Aufruf nichts.

Jedes Ergebnis durchläuft eine Prüfung der Platzhalter- und ICU-Integrität, bevor es geschrieben wird. Eine Übersetzung, die einen Platzhalter weglässt, erfindet oder umsortiert oder ungültige ICU-Nachrichtensyntax erzeugt, wird zurückgehalten, statt in deine Locale-Datei gespeichert zu werden. Dieselbe Prüfung gilt für Bearbeitungen und Neuübersetzungen in Verbatra Studio.

verbatra selbst ist kostenlos und quelloffen unter der MIT-Lizenz. Der einzige Kostenfaktor ist die Nutzung deines Anbieters, die du steuerst: Es übersetzt nur, was sich geändert hat, und du kannst es kostenlos auf Geminis kostenlosem Tarif oder einem lokalen OpenAI-kompatiblen Modell betreiben.

Schluss mit dem manuellen Synchronisieren von Locale-Dateien.

Füge verbatra hinzu, checke die Lock-Datei ein und lass jeden Lauf nur das anfassen, was sich geändert hat.