Arbeiten mit vorhandenen Übersetzungen

Lingo.dev CLI integriert sich nahtlos in Projekte, die bereits Übersetzungsdateien haben, bewahrt bestehende Arbeit und füllt fehlende Übersetzungen aus.

Wenn Sie die CLI in einem Projekt mit vorhandenen Übersetzungen ausführen, analysiert sie, was bereits übersetzt wurde, und generiert nur Inhalte für fehlende Schlüssel, wodurch die Qualität und Konsistenz Ihrer bestehenden Übersetzungen erhalten bleibt.

Hinweis: Stellen Sie sicher, dass Ihre Zielsprachendateien leer sind und keinen Inhalt in der Quellsprache enthalten. Quellspracheninhalte in Zieldateien sind eine schlechte Praxis und können den Übersetzungsprozess beeinträchtigen.

Funktionsweise

Lingo.dev CLI vergleicht Ihre Quellinhalte mit vorhandenen Zieldateien, um Lücken zu identifizieren. Nur fehlende Übersetzungen werden generiert, wobei Ihre bestehende Arbeit unberührt bleibt.

Beispielszenario:

// locales/en.json (Quelle)
{
  "welcome": "Welcome to our app",
  "button.save": "Save",
  "button.cancel": "Cancel",
  "error.network": "Network error"
}

// locales/es.json (vorhandene Teilübersetzungen)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar"
}

Durch Ausführen von npx lingo.dev@latest i18n werden nur die fehlenden Übersetzungen generiert:

// locales/es.json (nach CLI-Ausführung)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar",
  "button.cancel": "Cancelar",
  "error.network": "Error de red"
}

Ihre vorhandenen Übersetzungen für "welcome" und "button.save" bleiben unverändert.

Erster Lauf mit vorhandenen Übersetzungen

Wenn Sie Lingo.dev CLI zum ersten Mal in einem Projekt mit vorhandenen Übersetzungen ausführen, erstellt es die Datei i18n.lock basierend auf Ihrem aktuellen Status. Diese Sperrdatei verfolgt, welche Inhalte verarbeitet wurden, und stellt sicher, dass vorhandene Übersetzungen nicht neu generiert werden.

Workflow:

  1. Initialer Scan — CLI identifiziert vorhandene Übersetzungen in Zieldateien
  2. Lückenanalyse — Vergleicht Quellschlüssel mit Zieldateien, um fehlende Übersetzungen zu finden
  3. Übersetzungsgenerierung — Erstellt nur fehlende Übersetzungen
  4. Sperrdateierstellung — Zeichnet Inhalts-Fingerabdrücke für alle Quellinhalte auf

Migration von Legacy-Übersetzungssystemen

Lingo.dev CLI arbeitet mit Übersetzungsdateien, die mit beliebigen Tools erstellt wurden, solange sie Standardformate wie JSON, YAML oder andere unterstützte Dateitypen verwenden.

Migrationsschritte:

  1. i18n.json konfigurieren — Richten Sie Ihre Bucket-Muster so ein, dass sie mit vorhandenen Dateispeicherorten übereinstimmen
  2. Initiale Übersetzung ausführen — CLI füllt alle fehlenden Übersetzungen aus
  3. Überprüfen und committen — Bestehende Übersetzungen bleiben erhalten, nur Lücken werden gefüllt

Beispiel für eine Migration:

// Ihre bestehende Projektstruktur
locales/
  en.json    (Quelle)
  es.json    (teilweise Übersetzungen aus vorherigem Tool)
  fr.json    (teilweise Übersetzungen aus vorherigem Tool)

// i18n.json Konfiguration
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

Die CLI respektiert Ihre bestehende Dateistruktur und Übersetzungen.

Umgang mit Übersetzungsqualität

Bestehende Übersetzungen könnten eine schlechtere Qualität aufweisen als Übersetzungen, die von KI-Übersetzungsengines generiert wurden. Lingo.dev CLI bietet Optionen, um Übersetzungen bei Bedarf zu aktualisieren:

Bestehende Übersetzungen beibehalten:

npx lingo.dev@latest i18n

# Behält alle bestehenden Übersetzungen bei, füllt Lücken

Bestimmte Sprachen neu übersetzen:

npx lingo.dev@latest i18n --force --locale es

# Generiert alle spanischen Übersetzungen neu

Bestimmte Schlüssel neu übersetzen:

npx lingo.dev@latest i18n --force --key error.network

# Generiert nur den Schlüssel error.network in allen Sprachen neu

Für weitere Informationen zur Neuübersetzung, siehe Neuübersetzung.

Leere Zieldateien

Wenn Sie leere Zieldateien oder Dateien mit nur einigen Schlüsseln haben, behandelt Lingo.dev CLI diese als teilweise übersetzt und füllt fehlende Inhalte aus.

Beispiel:

// locales/de.json (leere Zieldatei)
{}

Nach Ausführung der CLI wird daraus eine vollständige Übersetzungsdatei mit allen übersetzten Quellschlüsseln.

Lockfile-Initialisierung

Der erste Durchlauf erstellt eine i18n.lock-Datei, die Ihren bestehenden Zustand widerspiegelt. Dies verhindert, dass die CLI Inhalte neu übersetzt, die bereits vorhanden waren, selbst wenn sie ursprünglich nicht von der Lingo.dev CLI generiert wurden.

Diese Sperrdatei gewährleistet ein konsistentes Verhalten zwischen bestehenden und neuen Übersetzungen in Zukunft.