Docs / Anleitungen
Maschinell übersetzte Seite
Eine Sprache hinzufügen
Füge einem verbatra-Projekt eine neue Ziel-Locale hinzu: eine Zeile Konfiguration und ein translate-Lauf, während die bestehenden Locales unangetastet bleiben.
Nutze das, wenn ein Projekt schon in einige Sprachen übersetzt wird und du eine weitere willst. Es braucht eine Zeile Konfiguration und einen Lauf. verbatra behandelt die neue Locale so, als fehle ihr jeder Key, und füllt sie; deine bestehenden Locales kosten nichts, weil die Lock-Datei sie weiterhin als aktuell verzeichnet.
Du brauchst ein funktionierendes Projekt: eine Konfiguration, eine Quell-Locale-Datei und einen Provider-Key. Wenn du noch keins hast, fang mit dem Quickstart an.
Füge die Locale zu deiner Konfiguration hinzu
Trage den Code in targetLocales in verbatra.config.ts ein:
import { defineConfig } from "@verbatra/cli";
export default defineConfig({
sourceLocale: "en",
targetLocales: ["de", "fr"],
format: "i18next-json",
files: { pattern: "locales/{locale}.json" },
provider: { id: "gemini", options: { model: "gemini-2.5-flash", maxOutputTokens: 4096 } },
});Regeln für Locale-Codes
Schreib den Code in BCP-47-Form, mit Bindestrich: pt-BR, nicht pt_. Wenn deine Dateien Unterstriche verwenden, schreib trotzdem pt-BR und setz files.localeStyle auf posix; verbatra behält den Dateinamen pt_. Beim Laden der Konfiguration werden ein ungültiger Code, die Quell-Locale und zwei Codes, die sich nur in der Groß- und Kleinschreibung unterscheiden, abgelehnt. Die vollständigen Regeln stehen unter Locale-Codes; mit verbatra doctor siehst du, ob ein Provider die neue Sprache unterstützt.
Sieh dir die Arbeit vorab an
Schau dir an, was ein Lauf tun würde, bevor du etwas ausgibst:
verbatra diff --locales frDie neue Locale hat noch keine Datei, also wird jeder Quell-Key als fehlend aufgeführt. Lass --locales weg, um zu prüfen, dass deine anderen Locales nichts auflisten. diff ruft keinen Provider auf und schreibt nichts. Für eine Kostenschätzung führ verbatra translate --estimate aus; siehe Kosten vor einem Lauf schätzen.
Übersetze
verbatra translateDer Lauf übersetzt jeden Quell-Key in die neue Locale und schreibt die Datei an dein files.pattern, hier locales/fr.json. Nur die neue Locale löst Provider-Aufrufe aus: Die anderen Locales haben gegenüber ihrer Lock-Baseline keine fehlenden oder geänderten Keys, also wird für sie nichts gesendet.
Wenn der Lauf für die neue Locale nichts behält, weil jeder Key eine Prüfung nicht bestanden hat, ihre Provider-Anfragen gescheitert sind oder ein Token-Budget sie zurückgehalten hat, wird keine Datei angelegt. Die Keys bleiben fehlend, und der nächste Lauf versucht sie erneut.
Danach endet verbatra check mit 0, wenn jede Locale, die neue eingeschlossen, synchron ist.
Sprachen mit mehr Pluralkategorien
Manche Sprachen brauchen mehr Pluralformen, als deine Quelle hat. Englisch hat one und other; Polnisch braucht vier, Arabisch sechs, und Französisch ergänzt many. Standardmäßig übersetzt verbatra die Formen, die deine Quelle hat, und erfindet die übrigen nicht: Der Lauf gelingt und meldet einen Hinweis PLURAL_, der nennt, was fehlt.
Fehlende Formen erzeugen
Wenn du i18next-JSON mit einem LLM-Provider nutzt, kann verbatra die fehlenden Formen schreiben:
export default defineConfig({
// ...
generatePlurals: true,
});Erzeugte Formen durchlaufen dieselben Integritätsprüfungen wie jede Übersetzung.
Formen aus CLDR
Welche Formen eine Sprache braucht, kommt aus den CLDR-Pluralregeln, die in Node.js eingebaut sind, für jede Sprache, Ordinalzahlen eingeschlossen. Die ICU-Formate (next-intl und ARB) halten einen ganzen Plural in einem Wert und brauchen deshalb keine Erzeugung: Der Provider wird genau nach den Zweigen gefragt, die die Zielsprache verwendet. Unter generatePlurals steht, was auf den Hinweis zurückfällt, und unter Plurale, wie verbatra entscheidet, welche Formen eine Sprache braucht.
Pflege weiter nur die Quelle
Ab jetzt bearbeitest du nur noch die Quell-Locale. Füg dort einen String hinzu und führ translate erneut aus: verbatra trägt ihn in jedes Ziel ein, auch in das gerade hinzugefügte.
Siehe auch
verbatra translateundverbatra diff: jedes Flag, das auf dieser Seite vorkommt.- Die Konfigurationsdatei:
targetLocales,files.patternundfiles.localeStyle. - Sprachen und Locales: welche Sprachen jeder Provider abdeckt, Schriften, regionale Varianten und Rechts-nach-links-Text.
- Die Lock-Datei: warum bestehende Locales bei einem erneuten Lauf nichts kosten.