Zum Inhalt springen

Docs / Erste Schritte

Maschinell übersetzte Seite

Diese Seite wurde automatisch übersetzt und kann daher Fehler oder seltsame Formulierungen enthalten. Die englische Version ist die maßgebliche Quelle. Das englische Original lesen.

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

Die Befehle unten nutzen npx. Mit pnpm, yarn oder bun nimmst du stattdessen pnpm verbatra, yarn verbatra oder bun run verbatra. Bricht pnpm mit ERR_PNPM_IGNORED_BUILDS 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:

locales/en.json
{
  "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.

Ausgabe
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-run
Ausgabe
verbatra: 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_API_KEY= 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 translate

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

locales/de.json
{
  "greeting": "Hallo, {{name}}!",
  "cart": {
    "empty": "Dein Warenkorb ist leer."
  }
}

Prüfe, ob jede Locale synchron ist

npx @verbatra/cli check
Ausgabe
[ok] checking the locales (0.0s)
verbatra check
  de: 0 missing, 0 stale, 2 up-to-date (in sync)
all locales in sync

check 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.json hat 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.json speichert 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.json hält fest, welcher Provider und welches Modell jeden Wert geschrieben hat. Siehe Herkunft.
  • verbatra.cache.json und .verbatra-local/ enthalten den neu erzeugbaren Übersetzungscache und den lokalen Laufzustand. init hat beide schon in die .gitignore eingetragen. 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

Auf GitHub bearbeiten

Auf dieser Seite