|
Dokumentation
Demo buchenPlattform
PlattformMCPCLI
APIWorkflows
LeitfädenChangelog

Überblick

  • @lingo.dev/cli

Erste Schritte

  • Schnellstart
  • Konfiguration

Referenz

  • lingo push
  • lingo pull
  • Weitere Befehle
  • lingo purge

Konfiguration

  • Schlüsselsteuerung
  • Formate
  • Sprachen

Leitfäden

  • Eine Sprache hinzufügen
  • Bestehende Übersetzungen
  • Neuübersetzung
  • Hinweise für Übersetzer
  • Runs, Status und Wiederherstellung
  • CI/CD
  • Monorepos
  • Große Projekte

Suchst du die ältere CLI (v0)? Zur Dokumentation der Legacy CLI

Schlüsselsteuerung

In den meisten Fällen soll jede Zeichenkette in einer Datei übersetzt werden. Für Ausnahmen — Markennamen, Feature-Flags, Rechtstexte, internen Ballast — bietet die CLI drei dateispezifische Steuerungen, die Sie in einem files[]-Eintrag in .lingo/config.json festlegen.

SteuerungKonfigurationsfeldWas die Engine macht
SperrenlockedKeysKopiert den Quellwert unübersetzt in jedes Ziel.
BeibehaltenpreservedKeysBelässt, was bereits im Ziel steht, und überschreibt es nie.
IgnorierenignoredKeysLässt den Schlüssel in der Zieldatei vollständig weg.

Alle drei verwenden Schlüsselpfade in Punkt-/Klammernotation, die die Struktur der Datei abbilden:

json
{
  "files": [
    {
      "pattern": "content/en/app.json",
      "lockedKeys": ["meta.version"],
      "preservedKeys": ["legal.terms"],
      "ignoredKeys": ["internal.debug"]
    }
  ]
}

Sperren — den Wert überall identisch halten#

lockedKeys kopiert den Quellwert unübersetzt in jede Zieldatei. Verwenden Sie es für Werte, die sprachübergreifend Byte für Byte identisch bleiben müssen:

json
{
  "pattern": "content/en/app.json",
  "lockedKeys": ["meta.version", "config.apiUrl"]
}

de.json und fr.json werden mit meta.version befüllt — exakt der Quellzeichenkette. Ändern Sie die Quelle, übernimmt das nächste lingo push den neuen Wert in jede Sprache, weiterhin unübersetzt.

Beibehalten — ein manuell gepflegtes Ziel schützen#

preservedKeys weist die Engine an, einen bereits vorhandenen Zielwert nie zu überschreiben. Verwenden Sie es, wenn ein Schlüssel eine menschliche Übersetzung braucht — Rechtstexte, Compliance-Texte oder alles, was Sie geprüft haben und das das Modell nicht anfassen soll:

json
{
  "pattern": "content/en/settings.jsonc",
  "preservedKeys": ["featureFlags"]
}

Die Engine initialisiert den Schlüssel bei der ersten Übersetzung aus der Quelle und lässt Ihre Änderungen bei allen weiteren Durchläufen unberührt. Vergleichen Sie das unten mit overrides.

Ignorieren — den Schlüssel aus der Ausgabe weglassen#

ignoredKeys entfernt den Schlüssel vollständig aus den Zieldateien — er wird weder übersetzt noch kopiert noch geschrieben. Verwenden Sie es für Debug-Zeichenketten, interne Flags und Testdaten, die nie in einem übersetzten Build landen sollen:

json
{
  "pattern": "content/en/app.json",
  "ignoredKeys": ["internal.debug", "dev.testData"]
}

JSON und JSONC

Die Schlüsselsteuerung funktioniert für strukturierte Schlüssel/Wert-Formate — json und jsonc. Bei Formaten aus der Markdown-Familie steuern Sie den Übersetzungsbereich stattdessen mit translateFrontmatterFields und translateComponentProps (siehe Formats).

Overrides vs. Beibehalten#

Es gibt zwei Möglichkeiten, wie ein vorhandener Zielwert einen Durchlauf übersteht:

  • Beibehalten (preservedKeys) — deklarativ. Der Schlüssel ist per Konfiguration geschützt, in jeder Sprache, dauerhaft.
  • Lokale Änderungen — lingo push vergleicht den Hash jedes Ziels mit der Lockfile. Wenn Sie eine Zieldatei manuell bearbeitet haben, meldet push sie als skipped (local edits) und lässt sie unberührt. Mit --force (inklusive Scope) überschreiben Sie sie. Siehe lingo push.

Greifen Sie zu preservedKeys, wenn der Schutz dauerhaft und sprachübergreifend gelten soll; für einmalige manuelle Anpassungen reicht die Erkennung lokaler Änderungen.

Migration von der Legacy-CLI#

Die Legacy-CLI konnte auch Schlüssel umbenennen (eine Übersetzung übernehmen, wenn sich die Schlüssel-ID geändert hat). Das gehört nicht zur aktuellen CLI — der Übersetzungsstatus wird pro Datei-Hash verfolgt, sodass ein umbenannter Schlüssel beim nächsten Push erneut übersetzt wird. Sperren, Beibehalten und Ignorieren bleiben erhalten, mit einer Änderung: Pfade verwenden Punkt-/Klammernotation (meta.version) statt der früheren Slash-Notation (meta/version).

War diese Seite hilfreich?

Max PrilutskiyMax Prilutskiy·Aktualisiert vor etwa 8 Stunden·2 Min. Lesezeit