Docs / Anleitungen
Maschinell übersetzte Seite
An eine Agentur übergeben (XLIFF)
Exportiere die zu übersetzenden Strings als XLIFF 2.0 oder 1.2 für ein CAT-Tool und importiere die Antwort mit denselben Sicherheitsprüfungen wie jeden Lauf.
Das brauchst du, wenn professionelle Übersetzerinnen in einem CAT-Tool wie Trados, memoQ, OmegaT, Matecat oder Phrase arbeiten. XLIFF kommt bei ihnen als Segmente mit Status, Notizen und geschützten Platzhaltern an, und genau darauf sind ihr Übersetzungsspeicher und ihre QA-Prüfungen ausgelegt. verbatra schreibt XLIFF aus jedem Projektformat, nicht nur aus einem XLIFF-Projekt, und liest es über denselben Import zurück wie eine Arbeitsmappen-Übergabe.
Der Roundtrip
# 1. Export one XLIFF 2.0 file per target locale into handoff/
verbatra export --format xliff2 --out handoff
# 2. The agency translates handoff/de.xlf, handoff/fr.xlf ... in its CAT tool and sends them back
# 3. Import every returned file, recording who signed off on the reviewed ones
verbatra import handoff --format xliff2 --reviewer "Agency GmbH"Liest das Tool XLIFF 2.0 noch nicht, nimm --format xliff12. So oder so bekommst du eine <locale>.xlf pro Ziel-Locale. Eine Datei, die von einem früheren, breiteren Export übrig ist, wird beim Import abgelehnt statt angewendet.
Um eine einzelne zurückgeschickte Datei zu importieren, nenn sie direkt. Ein Pfad, der auf .xlf oder .xliff endet, wird ohne --format als XLIFF gelesen, und die XLIFF-Version kommt aus der Datei selbst:
verbatra import handoff/de.xlfDie Locale kommt aus dem Dateinamen. Hat das Tool die Datei umbenannt (etwa in project_), wird stattdessen die Zielsprache, die die Datei angibt, mit deinen konfigurierten Locales abgeglichen.
Was in der Datei landet
Der Export wählt dieselben Keys wie ein Arbeitsmappen-Export: die fehlenden und geänderten, mit --include-unchanged auch die aktuellen. Jeder Key wird zu einer Unit:
- Der Key benennt die Unit: in XLIFF 2.0 als
nameder Unit, in XLIFF 1.2 alsidundresnamedertrans-unit. - Platzhalter, Inline-Markup und ICU-Syntax werden zu Inline-Codes (
<ph>), die ein CAT-Tool als Tags zeigt, die die Übersetzerin platziert, aber nicht bearbeiten kann. Der Text in jedem ICU-Zweig bleibt übersetzbar. Der Import verwandelt jeden Code wieder in seinen exakten Originaltext. - Kontext reist als Notizen mit: Beschreibung und Bedeutung eines Keys, wo das Projektformat sie trägt.
- Der Quell-Hash reist als Metadaten mit, damit der Import erkennt, ob sich die Quelle seit dem Export geändert hat.
- Ein geänderter Key trägt seine alte Übersetzung als Ziel, als Ausgangspunkt, im Anfangsstatus.
Segmentstatus
Der Status jedes Segments kommt aus der Lock-Datei und der Review-Entscheidung des Keys:
| Der Key ist | XLIFF 2.0 state | XLIFF 1.2 state |
|---|---|---|
| fehlend | initial, kein Ziel | kein Ziel |
| veraltet (Quelle geändert) | initial, alte Übersetzung als Ziel | needs-translation, alte Übersetzung als Ziel |
| aktuell, nicht geprüft | translated | translated |
| aktuell und freigegeben | reviewed | signed-off und approved="yes" |
| aktuell, aber abgelehnt | initial | needs-translation |
Woher ein Wert kommt, ändert seinen Status nicht: Eine maschinelle Übersetzung, ein Treffer aus dem Speicher und ein Wert, den eine Person getippt hat, sind alle translated, bis jemand sie freigibt.
Markierungen für maschinelle Übersetzung
Die Herkunft reist neben dem Status mit, sodass die Agentur sieht, welche Ziele eine Maschine geschrieben hat. In XLIFF 1.2 trägt ein nicht freigegebenes, maschinell geschriebenes Ziel state-qualifier="mt-suggestion"; in XLIFF 2.0 tragen die Metadaten der Unit ihre Herkunft und ihren Review-Status. Der Import ignoriert beides. Siehe Nachweis maschineller Übersetzungen festhalten.
Was der Import annimmt
Jede zurückgeschickte Unit durchläuft die Prüfungen eines Arbeitsmappen-Imports: das Integritäts-Gate, den Schutz vor veralteter Quelle, [[CLEAR]], um einen Wert absichtlich zu leeren, und ein leeres Ziel für "noch nicht übersetzt". XLIFF ergänzt diese Regeln:
- Ein Ziel, das so bleibt, wie es exportiert wurde, ändert nichts. Der Key bleibt Byte für Byte gleich und behält seine Herkunft. Soll die alte Übersetzung eines veralteten Keys für die neue Quelle gelten, setzt die Übersetzerin seinen Status über
initialhinaus. - Jedes andere Ziel ist eine Übersetzung, egal in welchem Status, weil manche Tools den Text schreiben, den Status aber stehen lassen.
reviewedundfinalhalten eine Freigabe fest. In XLIFF 1.2 auchsigned-off,finalundapproved="yes". Die Freigabe wird mit dem Namen aus--reviewerinverbatra.provenance.jsongespeichert und alsHANDOFF_gemeldet. Ein importierter Wert bekommt die HerkunftREVIEWS_ RECORDED import; ein Wert, den die Übersetzerin nur bestätigt hat, behält seine Herkunft, etwamachine.- Fehlt der Quell-Hash, zählt der Quelltext. Passt der Quelltext der Unit noch, wird sie importiert; sonst wird sie als Drift zurückgehalten.
- Schäden werden gemeldet, nicht fatal. Eine Unit mit unbekanntem Key oder kaputten Inline-Codes wird als fehlerhafte Zeile gemeldet, ein doppelter Key als Duplikat; der Rest der Datei wird trotzdem importiert.
- Das XML wird sicher geparst. Eine Datei, die eine Entity oder ein internes DTD-Subset deklariert, wird abgelehnt, ebenso eine Datei über 32 MB.
Führ zuerst verbatra import --dry-run aus, um all das samt der Freigaben zu sehen, ohne eine Datei zu schreiben.
XLIFF 1.2 kann kein Zeichen tragen, das XML 1.0 verbietet (ein Steuerzeichen wie U+0007), deshalb fällt ein solches Zeichen in einem 1.2-Export weg. XLIFF 2.0 trägt es exakt, nimm also xliff2, wenn das Tool es liest.
Ein Tool von Hand prüfen: OmegaT
Die automatischen Tests bearbeiten exportierte Dateien so, wie es ein CAT-Tool tut, führen aber keines aus. Für einen echten Roundtrip nimm OmegaT, das kostenlos ist:
- Exportiere eine Übergabe:
verbatra export --format xliff12 --out handoff(oderxliff2). - Leg in OmegaT ein Projekt mit deiner Quell- und Zielsprache an und kopier
handoff/de.xlfin den Ordnersourcedes Projekts. - Öffne das Projekt. Platzhalter wie
{{name}}erscheinen als Tags: Übersetze den Text drumherum und füg jedes Tag mit Strg+T (Cmd+T unter macOS) ein, statt es zu tippen. - Übersetze einige Segmente, lass einige unübersetzt und speichere.
- Wähl Project, Create Translated Documents. OmegaT schreibt
de.xlfin den Ordnertargetdes Projekts. - Prüf sie:
verbatra import path/to/target/de.xlf --dry-run. Übersetzte Segmente stehen untertranslated, unberührte unterunfilled, und nichts wird abgelehnt, solange kein Tag verloren ging. - Importiere sie:
verbatra import path/to/target/de.xlf, danachverbatra check.
Aus dem SDK
Die CLI umhüllt dieselben Funktionen exportWorkbook und importWorkbook wie die Arbeitsmappen-Übergabe:
import { exportWorkbook, importWorkbook, loadConfig } from "@verbatra/sdk";
const config = await loadConfig();
await exportWorkbook({ config, format: "xliff2", out: "handoff" });
const summary = await importWorkbook({
config,
workbook: "handoff",
format: "xliff2",
reviewer: "Agency GmbH",
});Siehe auch
verbatra export: jedes Export-Flag, einschließlich der XLIFF-Formate.verbatra import: jedes Import-Flag, einschließlich--reviewer.- Mit Excel oder CSV übergeben: die Arbeitsmappen-Übergabe und jede Prüfung des Imports.