Referenz / CLI
Maschinell übersetzte Seite
verbatra import
Importiere eine ausgefüllte Übergabe als Arbeitsmappe, CSV, TSV oder XLIFF zurück in die Locale-Dateien, mit denselben Sicherheitsprüfungen.
Lies eine von einer Übersetzerin ausgefüllte Übergabe zurück in deine Locale-Dateien. Jeder Wert läuft durch dieselben Integritätsprüfungen wie ein automatischer Lauf: Werte, die bestehen, werden geschrieben, und die Lock-Datei wird aktualisiert; Werte, die durchfallen, werden zurückgehalten und gemeldet. Eine kaputte Zelle landet also nie in einer Locale-Datei. Ein echter Lauf ergänzt außerdem fehlende Einträge in einer vorhandenen .gitignore, siehe .gitignore-Einträge.
Synopsis
verbatra import <workbook> [flags]<workbook>: die Übergabe, dieverbatra exportgeschrieben und die Übersetzerin ausgefüllt hat. Beixlsxist das die Arbeitsmappen-Datei; beicsv,tsv,xliff2undxliff12eine einzelne<locale>.csv-,<locale>.tsv- oder<locale>.xlf-Datei oder das Verzeichnis mit einer Datei pro Locale.
Beispiele
# import the filled workbook
verbatra import verbatra-translations.xlsx
# validate and report, write nothing
verbatra import verbatra-translations.xlsx --dry-run
# import every locale file in a CSV handoff directory
verbatra import handoff --format csv
# import one XLIFF file back from a CAT tool, naming the reviewer
verbatra import handoff/de.xlf --reviewer "Agency GmbH"Flags
| Flag | Argument | Standard | Wirkung |
|---|---|---|---|
--dry-run | keins | aus | validieren und melden, ohne Locale-Dateien zu schreiben oder das Lock zu aktualisieren |
--format | <format> | aus der Endung des Pfads: csv, tsv, xliff2 bei .xlf oder .xliff, sonst xlsx; bei einem Verzeichnis aus dem Export-Manifest oder den Locale-Dateien darin | xlsx, csv, tsv, xliff2 oder xliff12; jedes der beiden XLIFF-Formate liest beide Versionen |
--reviewer | <name> | keiner | Name, der bei jeder als reviewed oder final markierten XLIFF-Unit festgehalten wird; höchstens 64 Zeichen, gespeichert in der eingecheckten Herkunftsdatei |
--lock-timeout | <seconds> | 600 | wie lange auf eine gehaltene Schreibsperre einer Locale gewartet wird; eine ganze Zahl von 1 bis 3600, sonst ein Verwendungsfehler, Exit 2 |
Außerdem nimmt der Befehl die globalen Flags --cwd, --config und --json.
Verhalten
Warnung
Jeder ausgefüllte Wert, der die Prüfungen besteht, ersetzt den Wert in der Locale-Datei, auch einen, den eine Person geschrieben hat. Führe zuerst --dry-run aus, um zu sehen, was sich ändern würde.
Locale-Dateien und Überbleibsel
Bei csv und tsv kommt die Locale aus dem Dateinamen. Lass also jede Datei genau so heißen, wie sie exportiert wurde. Eine konfigurierte Ziel-Locale ohne Datei (oder, in einer Arbeitsmappe, ohne Blatt) scheitert mit WORKBOOK_; sie wird nie stillschweigend übersprungen.
Eine Datei aus einem früheren Export mit breiterer --locales-Auswahl wird nie angewendet. Der Import gleicht das Verzeichnis mit dem Manifest des jüngsten Exports ab und lässt eine solche Locale mit HANDOFF_ scheitern. Exportiere die Locale neu oder lösche die Datei. Ein Verzeichnis ohne lesbares Manifest (von Hand zusammengestellt oder von einem Archiv beschnitten) wird so gelesen, wie es ist, ebenso eine Einzeldatei, die du direkt angibst.
Schreibsperren
--lock-timeout legt fest, wie lange eine Locale auf eine belegte Schreibsperre wartet, bevor sie mit LOCK_ scheitert, genau wie bei verbatra translate. Das Warten passiert, bevor die Datei der Locale geschrieben wird: Eine Locale, die ins Zeitlimit läuft, bleibt unberührt, die anderen werden trotzdem importiert, und der Befehl endet mit 1. Ist eine Datei einmal geschrieben, wartet das Eintragen in die Lock-Datei bis zum Standard von zehn Minuten, egal was --lock-timeout sagt. Ein Warten über eine Sekunde meldet eine Zeile mit der Sperre und ihrem Halter (unter --json ein lock-wait-Eintrag). --dry-run nimmt keine Sperre und wartet daher nie.
XLIFF
Eine XLIFF-Datei wird in der Version gelesen, die sie angibt, und eine einzelne Datei, deren Name keine konfigurierte Locale ist, wird über ihre angegebene Zielsprache zugeordnet. Eine Unit, deren Ziel dem aktuellen Wert entspricht, ändert nichts; jedes andere Ziel durchläuft das Integritäts-Gate wie eine Arbeitsmappen-Zeile. Eine als reviewed oder final markierte Unit (in 1.2 auch signed-off oder approved="yes") wird als freigegeben festgehalten, mit --reviewer als Namen, und mit dem Hinweis HANDOFF_ gemeldet. Eine Unit, deren ID keinen Quell-Key nennt, wird als fehlerhafte Zeile gemeldet. Siehe An eine Übersetzungsagentur übergeben.
Leere und kaputte Zeilen
Eine leere Translation-Zelle lässt eine Locale nie scheitern: Die Zeile wird übersprungen, ihre Lock-Baseline bleibt erhalten, und der Key wird als unfilled gemeldet, solange er noch eine Übersetzung braucht. Der Import einer Übergabe, die noch niemand ausgefüllt hat, gelingt also und listet jeden ausstehenden Key.
Eine einzelne unlesbare Zeile wird als fehlerhafte Zeile gemeldet, und der Rest der Locale wird trotzdem importiert. Eine Übergabe, die zu groß ist oder sich gar nicht parsen lässt (etwa kein lesbarer xlsx-Container), ist ein SOURCE_-Fehler des gesamten Laufs, dessen Meldung sagt, was nicht stimmte.
In einer CSV-, TSV- oder xlsx-Übergabe bleibt eine ausgefüllte Zeile, die dem Wert eines aktuellen Keys entspricht, unberührt und wird als unverändert gemeldet, nicht als übersetzt, sobald sie das Integritäts-Gate passiert neu. Siehe Manuelle Übersetzung.
Rückmeldung im Terminal
import zeigt eine Zeile, während es die Datei liest und anwendet. Nach einem sauberen Import schlägt es verbatra check vor, nach --dry-run denselben Import ohne das Flag. Scheitert eine Locale oder bleibt sie partiell, schlägt es denselben Import vor, sobald du die abgelehnten Zeilen korrigiert hast, oder, wenn eine Locale mit einem Fehler scheiterte, der einen nächsten Schritt hat, genau diesen Schritt:
verbatra: importing verbatra-translations.xlsx... done (0.4s)
next: verbatra check (confirm every locale is in sync)Diese Zeilen gehen auf stderr, und --quiet lässt sie weg. Siehe Terminalausgabe.
JSON-Ausgabe
Schema: import-envelope.json validiert den ganzen Envelope; Schemas listet die übrigen auf.
Mit --json trägt der Envelope eine RunSummary, dieselbe Form, die verbatra translate ausgibt; RunSummary listet jedes Feld auf.
Exit-Codes
| Code | Bedeutung |
|---|---|
0 | jede Ziel-Locale kam vollständig durch |
1 | der Lauf lief durch, aber eine oder mehrere Locales schlugen fehl oder blieben unvollständig |
2 | konnte nicht laufen: ein Fehler des gesamten Laufs (Konfiguration, Übergabe, Format oder eine kaputte Lock-Datei) oder ein Verwendungsfehler |
130 | mit Ctrl-C (SIGINT) abgebrochen, nachdem die Schreibsperren des Laufs freigegeben wurden |
143 | mit SIGTERM beendet, nachdem die Schreibsperren des Laufs freigegeben wurden |
Der Vertrag entspricht verbatra translate, eine manuelle Übergabe verzweigt in CI also genauso: Eine unvollständige Locale endet mit 1, und eine Lock-Datei, die kaputt ist oder kaputtgeht, stoppt den gesamten Lauf mit 2 und lässt die übrigen Locales unberührt (bereits angewendete bleiben geschrieben). Den Vertrag, dem jeder Befehl folgt, findest du unter Exit-Codes.
Siehe auch
- Menschliche Übersetzung behandelt den vollständigen Roundtrip aus Export, Ausfüllen und Import und was eine Übersetzerin bearbeiten darf.
- Übersetzungssicherheit erklärt die Prüfungen, die einen Wert zurückhalten können.
- An eine Übersetzungsagentur übergeben behandelt den XLIFF-Roundtrip durch ein CAT-Tool.
verbatra exporterzeugt die Übergabe, die dieser Befehl liest.