Die Lingo.dev CLI übersetzt statische Dateien in deinem Repository – Markdown, MDX, Markdoc, JSON, YAML, Untertitel und mehr – über eine konfigurierte Lokalisierungs-Engine. Zeige einfach auf deine Inhalte, führe sie einmal aus, und du erhältst die übersetzten Dateien direkt neben den Quelldateien.
Unterstützte Inhaltstypen#
| Inhaltstyp | Format | CLI-Bucket | Beispielpfad |
|---|---|---|---|
| Dokumentation | Markdown | markdown | docs/[locale]/getting-started.md |
| Dokumentation | MDX | mdx | docs/[locale]/getting-started.mdx |
| Dokumentation | Markdoc | markdoc | docs/[locale]/getting-started.mdoc |
| Strukturierte Daten | JSON | json | data/[locale].json |
| Strukturierte Daten | YAML | yaml | data/[locale].yaml |
| Blogartikel | Markdown / MDX | markdown / mdx | blog/[locale]/post-slug.md |
| Untertitel | SRT | srt | subs/[locale]/intro.srt |
| Untertitel | VTT | vtt | subs/[locale]/intro.vtt |
| Tabellen | CSV | csv-per-locale | data/[locale].csv |
| Konfigurationsstrings | Properties | properties | lang/[locale].properties |
| Konfigurationsstrings | Gettext PO | po | locale/[locale]/messages.po |
| Reiner Text | TXT | txt | content/[locale]/readme.txt |
Voraussetzungen#
Jeder CLI-Durchlauf schickt Inhalte durch eine Lokalisierungs-Engine – die Konfiguration, die festlegt, welches LLM-Modell, Glossar, welche Markenstimme und welche Anweisungen verwendet werden. Erstelle sie im Lingo.dev-Dashboard und generiere einen API-Schlüssel.
Dokumentationssites#
Die meisten Dokumentations-Frameworks organisieren übersetzte Inhalte in sprachspezifischen Verzeichnissen. Die CLI-Buckets markdown, mdx und markdoc übersetzen diese Dateien und erhalten dabei Frontmatter, Codeblöcke und Komponenten-Syntax.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"markdown": {
"include": ["docs/[locale]/getting-started.md"]
},
"mdx": {
"include": ["docs/[locale]/setup.mdx"]
}
}
}Passe das Muster include an die Verzeichnisstruktur deines Frameworks an:
| Framework | Verzeichniskonvention pro Sprache | Referenz |
|---|---|---|
| Docusaurus | i18n/[locale]/docusaurus-plugin-content-docs/current/ | Docusaurus i18n-Guide |
| Nextra | Seiten pro Sprache oder JSON-Wörterbücher | Nextra-Dokumentation |
| Hugo | content/[locale]/ | Hugo-Guide für Mehrsprachigkeit |
| Astro | src/content/[locale]/ oder JSON-Wörterbücher | Astro i18n-Guide |
| VitePress | Verzeichnispräfix [locale]/ | VitePress i18n |
| MkDocs | Sprachspezifisches docs/ mit i18n-Plugin | MkDocs i18n-Plugin |
MDX-Komponenten
Der Bucket mdx erhält die JSX-Komponenten-Syntax während der Übersetzung. Eigene Komponenten wie <Callout>, <Tabs> und <CodeBlock> bleiben unverändert – übersetzt wird nur der darin enthaltene Text.
Strukturierte Daten#
JSON- und YAML-Dateien werden mit den Buckets json und yaml übersetzt. Verwende gesperrte Schlüssel, damit nicht übersetzbare Werte (IDs, URLs, Konfigurations-Flags) nicht verändert werden.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"json": {
"include": ["content/[locale].json"],
"lockedKeys": ["id", "slug", "url"]
},
"yaml": {
"include": ["data/[locale].yaml"]
}
}
}Für YAML-Dateien, die den Sprachcode als Root-Key verwenden (häufig in Rails und Hugo), nutze stattdessen den Bucket yaml-root-key – er liest aus dem Schlüssel der Ausgangssprache und schreibt in die Schlüssel der Zielsprachen innerhalb derselben Datei.
Untertitel#
SRT- und VTT-Untertiteldateien werden mit den Buckets srt und vtt übersetzt. Die CLI erhält alle Zeitangaben, Cue-Indizes und Formatierungs-Tags – übersetzt wird nur der Textinhalt.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"srt": {
"include": ["subs/[locale]/intro.srt"]
}
}
}Arbeiten mit großen Inhaltsmengen#
Repositories mit statischen Inhalten können Tausende von Dateien enthalten. Die CLI bewältigt das effizient mit drei Mechanismen:
| Mechanismus | So hilft es |
|---|---|
| Lockfile | Verfolgt SHA-256-Fingerabdrücke des Quellinhalts. Nur neue oder geänderte Dateien werden bei späteren Durchläufen übersetzt. |
| Parallele Verarbeitung | Verteilt die Übersetzung auf mehrere gleichzeitig laufende Worker. Konfiguriere sie mit run --concurrency 20. |
| Gezielte Durchläufe | Verarbeite einen bestimmten Bucket oder eine bestimmte Sprache: run --bucket markdown oder run --target-locale es. |
