Übersicht
Der Befehl verbatra: seine zehn Unterbefehle, die gemeinsamen Flags, wie er deine Umgebung liest und der Exit-Code-Vertrag.
Maschinell übersetzte Seite
@verbatra/cli liefert das verbatra-Binary, einen dünnen Wrapper über @verbatra/sdk. Zehn Befehle erledigen die Arbeit:
| Befehl | Was er tut |
|---|---|
init | eine verbatra-Konfiguration und .env.example für dieses Projekt anlegen |
translate | jedes Ziel-Locale einmal übersetzen, dann beenden |
watch | bei jeder Quelländerung neu übersetzen, bis unterbrochen wird |
check | melden, welche Keys pro Locale fehlen oder veraltet sind, schreibgeschützt |
diff | die genauen Keys pro Locale listen, die hinzugefügt oder neu übersetzt würden oder verwaist sind, schreibgeschützt |
doctor | die Projekteinrichtung prüfen und alle Probleme auf einmal melden, ohne einen Provider aufzurufen |
export | unübersetzte Strings für eine menschliche Übersetzerin exportieren, als Excel-Arbeitsmappe oder als je eine CSV- oder TSV-Datei pro Locale |
import | eine ausgefüllte Arbeitsmappe oder Trennzeichen-Datei zurück in die Locale-Dateien importieren |
studio | Verbatra Studio starten, das lokale Übersetzungs-Dashboard |
mcp | einen stdio-MCP-Server starten, der die Tools von verbatra für einen MCP-Client bereitstellt |
Installieren und aufrufen
Installiere @verbatra/cli als Dev-Dependency und starte das Binary anschließend über deinen Paketmanager:
| Paketmanager | Installation | Aufruf |
|---|---|---|
| npm | npm install --save-dev @verbatra/cli | npx verbatra <command> |
| pnpm | pnpm add -D @verbatra/cli | pnpm verbatra <command> (oder pnpm exec verbatra <command>) |
| yarn | yarn add -D @verbatra/cli | yarn verbatra <command> |
| bun | bun add -d @verbatra/cli | bun run verbatra <command> |
Du brauchst Node.js >=22.14.0.
Willst du einen Befehl vor der Installation ausprobieren? npx @verbatra/cli <command> (npm) oder pnpm dlx @verbatra/cli <command> (pnpm) funktionieren beide ohne vorherige lokale Installation.
Gemeinsame Konventionen
--cwd <path>löst die Konfiguration und die Locale-Dateien von diesem Verzeichnis statt vom aktuellen aus auf. Jeder Befehl nimmt es.--config <path>lädt diese Konfigurationsdatei, statt eine zu suchen. Jeder Befehl außerinitnimmt es; die Suchreihenfolge steht in Konfigurationsdatei.--jsongibt einen maschinenlesbaren Envelope auf stdout aus, eine Zeile pro Datensatz, und hält stdout sauber zum Weiterleiten.- Verzweige auf sein
ok-Feld: ein Erfolg trägt die Daten des Befehls unterresult, ein fehlgeschlagener Lauf trägt denselben stabilen Fehlercode, den auch die stderr-Zeile nennt. Die menschenlesbare Fehlerzeile geht in beiden Fällen auf stderr. translate,watch,check,diff,doctor,exportundimportunterstützen es;init,studioundmcpnicht.mcpschreibt überhaupt nichts auf stdout, da stdout der MCP-Protokollkanal ist; sieheverbatra mcp.
- Verzweige auf sein
--helpund--versiongeben aus und enden mit0. Ein unbekannter Befehl oder ein unbekanntes Flag endet mit2.
Umgebungsdateien
translate, watch, doctor, studio und mcp laden .env.local und dann .env aus dem Arbeitsverzeichnis, bevor sie laufen. Eine bereits in deiner echten Umgebung gesetzte Variable gewinnt immer. API-Keys werden nur aus der Umgebung gelesen, nie aus der Konfigurationsdatei oder einem Flag: siehe Provider. Die schreibgeschützten Befehle (check, diff) und die Übergabe-Befehle (export, import) rufen nie einen Provider auf und laden keine .env-Dateien.
Exit-Codes
Der Exit-Code ist der Vertrag, auf den ein CI-Schritt oder Skript verzweigt:
| Code | Bedeutung |
|---|---|
0 | Erfolg (auch --help und --version) |
1 | translate oder import lief durch, aber einige Locales schlugen fehl oder blieben partial, check fand ein Locale nicht synchron, diff fand ausstehende Änderungen, oder doctor fand ein Einrichtungsproblem |
2 | konnte nicht laufen: ein Fehler des gesamten Laufs (Konfiguration, Quelle, Provider, Lock) oder ein Verwendungsfehler |
130 | watch, studio oder mcp wurde durch einen zweiten Interrupt zwangsbeendet |
Jede Befehlsseite erklärt, wie diese Codes für sie gelten. Wie du sie in eine Pipeline einbaust, steht in CI und Exit-Codes.
Edit on GitHub