Docs / Erste Schritte
Maschinell übersetzte Seite
Schnellstart
Installiere die CLI, erzeuge eine Konfiguration, sieh dir den Lauf ohne API-Schlüssel in der Vorschau an und übersetze deine erste Locale-Datei.
Am Ende dieser Seite hat eine englische Locale-Datei eine deutsche Schwester, geschrieben von einem Provider und von verbatra geprüft, dazu die Lock-Datei, mit der jeder spätere Lauf nur noch übersetzt, was sich geändert hat. Du brauchst Node.js ^22.18.0 || >=24 und etwa zehn Minuten. Die ersten vier Schritte brauchen weder ein Konto noch einen API-Schlüssel.
Du hast schon Locale-Dateien und einen Coding-Agenten?
Gib deinem Agenten den Prompt von verbatra mit einem KI-Agenten einrichten. Er richtet verbatra um die Locale-Dateien ein, die dein Projekt schon hat, und hält an, bevor er etwas ausgibt. Die Schritte unten fangen bei null an.
Einen Schnellstart, der die übersetzte Datei auch in deiner App lädt, gibt es für React, Next.js, Vue, Angular und Flutter.
Schritte
Installiere die CLI
npm install --save-dev @verbatra/cliDie Befehle unten nutzen npx. Mit pnpm, yarn oder bun nimmst du stattdessen pnpm verbatra, yarn verbatra oder bun run verbatra. Bricht pnpm mit ERR_ ab, hilft dir die Fehlerbehebung.
Lege eine Quell-Locale-Datei an
Hat dein Projekt schon Locale-Dateien, überspringst du diesen Schritt. Sonst legst du eine an:
{
"greeting": "Hello, {{name}}!",
"cart": {
"empty": "Your cart is empty."
}
}Erzeuge eine Konfiguration
npx @verbatra/cli init --format i18next-json --provider gemini --yes--format nennt dein Dateiformat: Wähle deinen Stack hat die ID für jedes Framework. --yes übernimmt, was init erkannt hat, statt nachzufragen; lässt du es weg, beantwortest du die Fragen, die verbatra init auflistet.
created verbatra.config.ts
created .env.example
created .gitignore (.env, .env.local, .verbatra-local/, verbatra.cache.json)
detected format i18next-json, pattern locales/{locale}.json, locales en (confidence: medium)
next steps:
- Copy .env.example to .env and set GEMINI_API_KEY there. Never commit .env.
- npx @verbatra/cli doctor (Check the setup. It calls no provider and reads no key value.)
- npx @verbatra/cli translate --dry-run (Preview what a run would translate, without calling the provider.)Die neue verbatra.config.ts übersetzt von en nach de. Für weitere Sprachen ergänzt du Codes in targetLocales.
Sieh dir den Lauf ohne Schlüssel an
npx @verbatra/cli translate --dry-runverbatra: dry run over 1 locale, no provider call
verbatra: de done, 2 would translate
verbatra translate (dry run)
de: 2 would translate, 0 unchanged
1 succeeded, 0 partial, 0 failed (dry run: nothing written)
[ok] dry run done in 0.0s, nothing written
next: verbatra translate (run it for real)Das ist die Form im interaktiven Terminal; in einer Pipe oder in CI bekommt jeder Schritt zusätzlich eine eigene Zeile, siehe Terminalausgabe. Ein Probelauf baut keinen Provider, braucht also keinen Schlüssel, kostet nichts und schreibt nichts. verbatra doctor prüft den Rest der Einrichtung auf dieselbe Weise.
Übersetze
cp .env.example .envÖffne .env und füge deinen Schlüssel hinter GEMINI_ ein. Schlüssel kommen immer nur aus der Umgebung, und die CLI lädt .env.local und .env hinein. Noch kein Schlüssel? Gemini hat eine kostenlose Stufe: Erstelle einen im Google AI Studio. Alle anderen Provider und ihre Variablen stehen unter Provider.
npx @verbatra/cli translateverbatra schickt die zwei fehlenden Keys an Gemini, prüft jedes Ergebnis und schreibt die deutsche Datei. Die Zusammenfassung beginnt mit de: 2 translated, 0 unchanged und nennt die Tokens, die der Lauf verbraucht hat. Der Wortlaut hängt vom Modell ab, zum Beispiel:
{
"greeting": "Hallo, {{name}}!",
"cart": {
"empty": "Dein Warenkorb ist leer."
}
}Prüfe, ob jede Locale synchron ist
npx @verbatra/cli check[ok] checking the locales (0.0s)
verbatra check
de: 0 missing, 0 stale, 2 up-to-date (in sync)
all locales in synccheck ruft keinen Provider auf und endet mit 1, sobald eine Locale nicht mehr synchron ist. Derselbe Befehl kann also einen Pull Request absichern.
Was gerade passiert ist
locales/de.jsonhat dieselben Keys in derselben Reihenfolge wie deine Quelle, und{{name}}ist erhalten geblieben: Ein Ergebnis, das einen Platzhalter verliert, wird zurückgehalten und nie geschrieben. Siehe Übersetzungssicherheit.verbatra.lock.jsonspeichert einen Hash des Quelltexts hinter jeder Übersetzung, damit der nächste Lauf nur neue und geänderte Keys schickt. Siehe Die Lock-Datei.verbatra.provenance.jsonhält fest, welcher Provider und welches Modell jeden Wert geschrieben hat. Siehe Herkunft.verbatra.cache.jsonund.verbatra-local/enthalten den neu erzeugbaren Übersetzungscache und den lokalen Laufzustand.inithat beide schon in die.gitignoreeingetragen. Siehe Der Cache.
Committe die Locale-Dateien, die Lock-Datei und die Herkunftsdatei zusammen, damit jeder Rechner und deine CI gegen dieselbe Basis vergleichen.
Nächste Schritte
Eine Sprache hinzufügen
Ergänze eine Ziel-Locale und lass einen Lauf sie füllen.
verbatra in der CI ausführen
Lass einen Pull Request fehlschlagen, wenn eine Locale abweicht.
So funktioniert ein Lauf
Die Pipeline hinter den Befehlen, die du gerade ausgeführt hast.
Konfigurationsdatei
Alles, was verbatra.config.ts enthalten kann.