Lingo.dev + XLIFF

Lingo.dev CLI übersetzt XLIFF-Dateien (XML Localization Interchange File Format) unter Beibehaltung der Dokumentstruktur, Übersetzungseinheiten und Workflow-Status. Die CLI unterstützt sowohl XLIFF 1.2 als auch 2.0 Formate, behält Quellsprachen-Metadaten bei, bewahrt Datei/Gruppen/Einheiten-Hierarchien, verarbeitet CDATA-Abschnitte für XML-sensible Inhalte und integriert sich mit professionellen Übersetzungs-Workflows und CAT-Tools.

Schnelle Einrichtung

Konfiguration für XLIFF-Dateien:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xliff": {
      "include": ["localization/[locale].xliff"]
    }
  }
}

Hinweis: [locale] ist ein Platzhalter, der wörtlich in der Konfiguration verbleiben sollte, da er während der CLI-Ausführung durch die tatsächliche Locale ersetzt wird.

XLIFF-Dateien übersetzen

npx lingo.dev@latest i18n

Bewahrt die XLIFF-Struktur, Übersetzungsstatus und Metadaten des professionellen Übersetzungs-Workflows bei der Übersetzung von Inhalten.

XLIFF-Dateistruktur

XLIFF 1.2 Format

<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
  <file original="app.strings" source-language="en" target-language="es" datatype="plaintext">
    <header></header>
    <body>
      <trans-unit id="welcome" resname="welcome.message">
        <source>Welcome to our application</source>
        <target state="translated">Bienvenido a nuestra aplicación</target>
      </trans-unit>
      <trans-unit id="login" resname="auth.login">
        <source>Log In</source>
        <target state="new"></target>
      </trans-unit>
    </body>
  </file>
</xliff>

XLIFF 2.0 Format

<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en">
  <file id="messages">
    <unit id="welcome">
      <segment>
        <source>Welcome to our application</source>
      </segment>
    </unit>
    <group id="auth">
      <unit id="login">
        <segment>
          <source>Log In</source>
        </segment>
      </unit>
    </group>
  </file>
</xliff>

Schlüsselgenerierung

XLIFF-Schlüssel werden deterministisch mit URL-Kodierung generiert:

XLIFF 1.2 Schlüssel

  • Basierend auf dem resname-Attribut, dann id, dann Quelltext
  • Einfaches Format: welcome.message, auth.login

XLIFF 2.0 Schlüssel

  • Hierarchische Pfadstruktur: resources/{fileId}/{groupPath}{unitId}/source
  • URL-kodierte Pfade: resources%2Fmessages%2Fauth%2FgroupUnits%2Flogin%2Fsource
  • Gruppen erstellen verschachtelte Pfade mit dem Separator groupUnits

XLIFF-spezifische Funktionen

Übersetzungsstatus

<!-- XLIFF 1.2 target states -->
<target state="new">Untranslated content</target>
<target state="translated">Translated content</target>
<target state="reviewed">Reviewed translation</target>
<target state="final">Final approved translation</target>

Der Übersetzungsstatus wird während der Verarbeitung beibehalten und aktualisiert.

Metadaten der Ausgangssprache

<!-- XLIFF 1.2 -->
<file source-language="en-US" target-language="es-ES">

<!-- XLIFF 2.0 -->
<xliff srcLang="en-US" trgLang="es-ES">

Informationen zur Ausgangssprache werden automatisch beibehalten und aktualisiert.

CDATA-Abschnitte

<source><![CDATA[Content with <tags> & "special" characters]]></source>

CDATA-Abschnitte werden automatisch für Inhalte verwendet, die XML-sensitive Zeichen enthalten.

Gruppenorganisation

<!-- XLIFF 2.0 groups for logical organization -->
<group id="navigation">
  <unit id="home"><segment><source>Home</source></segment></unit>
  <unit id="settings"><segment><source>Settings</source></segment></unit>
</group>

Hierarchische Gruppenstrukturen werden beibehalten und in Schlüsselpfaden abgebildet.

Erweiterte Konfiguration

Mehrere XLIFF-Dateien

"xliff": {
  "include": [
    "localization/app_[locale].xliff",
    "localization/ui_[locale].xliff"
  ]
}

Dateierweiterungen

"xliff": {
  "include": [
    "translations/[locale].xliff",
    "translations/[locale].xlf"
  ]
}

Sowohl die Erweiterungen .xliff als auch .xlf werden unterstützt.

Übersetzungseinheiten sperren

"xliff": {
  "include": ["localization/[locale].xliff"],
  "lockedKeys": ["app.version", "build.number"]
}

Professioneller Übersetzungsworkflow

XLIFF-Dateien lassen sich nahtlos integrieren mit:

  • CAT (Computer-Assisted Translation)-Tools
  • Translation Management Systems (TMS)
  • Professionellen Übersetzer-Workflows
  • Qualitätssicherungsprozessen
  • Übersetzungsspeichersystemen

Die CLI bewahrt alle Workflow-Metadaten und ermöglicht gleichzeitig KI-gestützte Übersetzung für schnelle Lokalisierung.