XML
KI-Übersetzung für XML-Dateien mit Lingo.dev CLI
Was ist XML?
XML (Extensible Markup Language) ist eine Auszeichnungssprache, die Regeln für die Kodierung von Dokumenten in einem Format definiert, das sowohl für Menschen als auch für Maschinen lesbar ist. Es wird häufig für Konfigurationsdateien, Datenaustausch und strukturierte Inhalte verwendet.
Zum Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<title>Hello, world!</title>
<description>
<summary>Simple demo app</summary>
<details>Basic example content</details>
</description>
<image src="photo.jpg" alt="Example photo" title="Click to view"/>
<link href="example.com" label="Click here">Learn more</link>
<message>
<greeting>Hello there!</greeting>
<body>Welcome to the app</body>
</message>
</root>
Was ist Lingo.dev CLI?
Lingo.dev CLI ist eine kostenlose, quelloffene CLI zum Übersetzen von Anwendungen und Inhalten mit KI. Sie wurde entwickelt, um herkömmliche Übersetzungsmanagementsoftware zu ersetzen und sich gleichzeitig in bestehende Pipelines zu integrieren.
Weitere Informationen finden Sie unter Überblick.
Über diesen Leitfaden
Dieser Leitfaden erklärt, wie man XML-Dateien mit Lingo.dev CLI übersetzt.
Sie lernen, wie man:
- Ein Projekt von Grund auf erstellt
- Eine Übersetzungspipeline konfiguriert
- Übersetzungen mit KI generiert
Voraussetzungen
Um Lingo.dev CLI zu verwenden, stellen Sie sicher, dass Node.js v18+ installiert ist:
❯ node -v
v22.17.0
Schritt 1. Projekt einrichten
Erstellen Sie in Ihrem Projektverzeichnis eine i18n.json-Datei:
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {}
}
Diese Datei definiert das Verhalten der Übersetzungspipeline, einschließlich der zu übersetzenden Sprachen und des Speicherorts der lokalisierbaren Inhalte im Dateisystem.
Weitere Informationen zu den verfügbaren Eigenschaften finden Sie unter i18n.json.
Schritt 2. Konfigurieren der Quellsprache
Die Quellsprache ist die ursprüngliche Sprache und Region, in der Ihr Inhalt verfasst wurde. Um die Quellsprache zu konfigurieren, setzen Sie die Eigenschaft locale.source in der i18n.json-Datei:
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {}
}
Die Quellsprache muss als BCP 47 Sprachkennzeichen angegeben werden.
Eine vollständige Liste der von Lingo.dev CLI unterstützten Sprachcodes finden Sie unter Unterstützte Sprachcodes.
Schritt 3. Ziel-Locales konfigurieren
Die Ziel-Locales sind die Sprachen und Regionen, in die Sie Ihre Inhalte übersetzen möchten. Um die Ziel-Locales zu konfigurieren, setzen Sie die locale.targets-Eigenschaft in der i18n.json-Datei:
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {}
}
Schritt 4. Quellinhalt erstellen
Falls Sie es noch nicht getan haben, erstellen Sie eine oder mehrere XML-Dateien, die den zu übersetzenden Inhalt enthalten. Diese Dateien müssen sich in einem Pfad befinden, der irgendwo die Quell-Locale enthält (z.B. als Verzeichnisname wie en/ oder als Teil des Dateinamens wie messages.en.xml).
Schritt 5. Bucket erstellen
-
Fügen Sie in der
i18n.json-Datei ein"xml"-Objekt zumbuckets-Objekt hinzu:{ "$schema": "https://lingo.dev/schema/i18n.json", "version": "1.10", "locale": { "source": "en", "targets": ["es"] }, "buckets": { "xml": {} } } -
Definieren Sie im
"xml"-Objekt ein Array mit einem oder mehrereninclude-Mustern:{ "$schema": "https://lingo.dev/schema/i18n.json", "version": "1.10", "locale": { "source": "en", "targets": ["es"] }, "buckets": { "xml": { "include": ["./[locale]/example.xml"] } } }Diese Muster definieren, welche Dateien übersetzt werden sollen.
Die Muster selbst:
- müssen
[locale]als Platzhalter für die konfigurierte Locale enthalten - können auf Dateipfade verweisen (z.B.
"[locale]/config.xml") - können Sternchen als Wildcard-Platzhalter verwenden (z.B.
"[locale]/*.xml")
Rekursive Glob-Muster (z.B.
**/*.xml) werden nicht unterstützt. - müssen
Schritt 6. LLM konfigurieren
Lingo.dev CLI verwendet große Sprachmodelle (LLMs), um Inhalte mit KI zu übersetzen. Um eines dieser Modelle zu nutzen, benötigen Sie einen API-Schlüssel von einem unterstützten Anbieter.
Um so schnell wie möglich loszulegen, empfehlen wir die Verwendung von Lingo.dev Engine — unserer eigenen, gehosteten Plattform, die 10.000 Token kostenlose monatliche Nutzung bietet:
-
Führen Sie den folgenden Befehl aus:
npx lingo.dev@latest loginDies öffnet Ihren Standard-Browser und fordert Sie zur Authentifizierung auf.
-
Folgen Sie den Anweisungen.
Schritt 7. Generieren der Übersetzungen
Führen Sie im Verzeichnis, das die Datei i18n.json enthält, den folgenden Befehl aus:
npx lingo.dev@latest run
Dieser Befehl:
- Liest die
i18n.jsonDatei. - Findet die Dateien, die übersetzt werden müssen.
- Extrahiert den übersetzbaren Inhalt aus den Dateien.
- Verwendet das konfigurierte LLM, um den extrahierten Inhalt zu übersetzen.
- Schreibt den übersetzten Inhalt zurück in das Dateisystem.
Bei der ersten Generierung von Übersetzungen wird eine i18n.lock Datei erstellt. Diese Datei verfolgt, welche Inhalte übersetzt wurden, und verhindert unnötige Neuübersetzungen bei nachfolgenden Durchläufen.
Beispiel
en/example.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<title>Hello, world!</title>
<description>
<summary>Simple demo app</summary>
<details>Basic example content</details>
</description>
<image src="photo.jpg" alt="Example photo" title="Click to view"/>
<link href="example.com" label="Click here">Learn more</link>
<button type="submit" value="Submit" placeholder="Enter text">Submit</button>
<message>
<greeting>Hello there!</greeting>
<body>Welcome to the app</body>
<signature>Thanks, MyApp Team</signature>
</message>
</root>
es/example.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<title>¡Hola, mundo!</title>
<description>
<summary>Aplicación de demostración simple</summary>
<details>Contenido de ejemplo básico</details>
</description>
<image src="photo.jpg" alt="Foto de ejemplo" title="Haz clic para ver"/>
<link href="example.com" label="Haz clic aquí">Aprender más</link>
<button type="submit" value="Enviar" placeholder="Ingresa texto">Enviar</button>
<message>
<greeting>¡Hola!</greeting>
<body>Bienvenido a la aplicación</body>
<signature>Gracias, Equipo de MyApp</signature>
</message>
</root>
i18n.json
{
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {
"xml": {
"include": ["./[locale]/example.xml"]
}
},
"$schema": "https://lingo.dev/schema/i18n.json"
}
i18n.lock
version: 1
checksums:
ec06a6ebae97ffd5f7afc99d9a8f051b:
root/title: 0468579ef2fbc83c9d520c2f2f1c5059
root/description/summary: f2c85bf6eeebeea33609e04598201bb6
root/description/details: 2ee85b8f2f0f1bc008d9cf1f916cb09c
root/image/%24/src: 3ce26f0a5486adf10e1b7eee1b866a70
root/image/%24/alt: 94058fbed56fffaef2e9bbea59ba4a54
root/image/%24/title: 60487c71b570d9dedca6fddd4a75d16a
root/link/_: e598091d132f890c37a6d4ed94f6d794
root/link/%24/href: 285d79d2783cf0769ab9e767362c1499
root/link/%24/label: 26ce69aad587f70d47e7606436bf1d6d
root/button/_: 7c91ef5f747eea9f77a9c4f23e19fb2e
root/button/%24/type: fa8748b22d5bac98fdcd57e3d6594cf3
root/button/%24/value: 7c91ef5f747eea9f77a9c4f23e19fb2e
root/button/%24/placeholder: 7b5d59cee6952db66043a4b289b51884
root/section/article/paragraph/sentence: 28ca53c71a2e3e3de79c892a9b193b1a
root/meta/%24/name: d097029e873a4b19132e2603bd2c9fe4
root/meta/%24/content: 0811ae3ab84aa87205383c3d8ac42bf3
root/message/greeting: 85559fc839c5181b7958654e62c987d5
root/message/body: ed0d4b1cde20d045f9f8c5007c784b0b
root/message/signature: 181c8c304980949e101865098f548705