Lingo.dev + .json-dictionary

Lingo.dev CLI übersetzt JSON-Dateien, bei denen jeder übersetzbare String mehrere Locale-Schlüssel in einem einzelnen Objekt enthält. Im Gegensatz zum Standard-JSON-Format, das Sprachen in verschiedene Dateien trennt, speichert json-dictionary alle Übersetzungen zusammen mit sprachspezifischen Schlüsseln wie {"en": "Hello", "es": "Hola"}.

Schnelle Einrichtung

Erstellen Sie eine i18n.json Konfigurationsdatei:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json-dictionary": {
      "include": ["content/pages.json"]
    }
  }
}

Dateistruktur

Das json-dictionary Format speichert Übersetzungen als verschachtelte Objekte mit Locale-Schlüsseln:

{
  "title": {
    "en": "Welcome to our site",
    "es": "Bienvenido a nuestro sitio"
  },
  "navigation": {
    "home": {
      "en": "Home",
      "es": "Inicio"
    },
    "about": {
      "en": "About Us",
      "es": "Acerca de nosotros"
    }
  },
  "staticValue": "This won't be translated",
  "pages": [
    {
      "title": {
        "en": "Page One",
        "es": "Página Uno"
      }
    }
  ]
}

Alles übersetzen

npx lingo.dev@latest i18n

Die CLI führt automatisch folgende Aktionen durch:

  • Extrahiert nur übersetzbare Objekte (solche mit Locale-Schlüsseln)
  • Bewahrt nicht-übersetzbare Werte unverändert
  • Fügt Zielsprachen-Schlüssel neben den bestehenden hinzu
  • Behält die Reihenfolge der Quellsprachen-Schlüssel bei (Quellsprache zuerst, andere alphabetisch)

Schlüsselverhalten

Erkennung übersetzbarer Elemente: Nur Objekte, die Ihren Quellsprachen-Schlüssel enthalten, werden als übersetzbar betrachtet. Einfache Strings, Zahlen, Booleans und Objekte ohne Locale-Schlüssel bleiben unverändert.

Schlüsselreihenfolge: Beim Hinzufügen von Übersetzungen erscheint die Quellsprache zuerst, gefolgt von anderen Sprachen in alphabetischer Reihenfolge:

{
  "message": {
    "en": "Original text",
    "de": "Deutscher Text",
    "es": "Texto en español",
    "fr": "Texte français"
  }
}

Verschachtelungsunterstützung: Funktioniert mit tief verschachtelten Strukturen und Arrays, die übersetzbare Objekte enthalten.

Erweiterte Konfiguration

Dateien ausschließen

"json-dictionary": {
  "include": ["content/*.json"],
  "exclude": ["content/config.json"]
}