Lingo.dev + .json5 (JSON5)

Lingo.dev CLI übersetzt JSON5-Lokalisierungsdateien mit vollständiger Unterstützung für JSON5-Syntax einschließlich Kommentaren, unquotierten Schlüsseln, nachgestellten Kommas und einfachen Anführungszeichen. Die CLI bewahrt die JSON5-Formatierung und entwicklerfreundliche Syntax bei, während sie die Framework-Kompatibilität gewährleistet und aus Kostengründen nur modifizierte Inhalte verarbeitet.

Schnelle Einrichtung

Erstellen Sie eine i18n.json Konfigurationsdatei:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json5": {
      "include": ["locales/[locale].json5"]
    }
  }
}

Hinweis: [locale] ist ein Platzhalter, der wörtlich in der Konfiguration bleiben sollte, da er während der CLI-Ausführung durch die tatsächliche Locale ersetzt wird.

Alles übersetzen

npx lingo.dev@latest i18n

Verarbeitet automatisch JSON5-Syntaxfunktionen, behält Kommentare und Formatierung bei und aktualisiert nur geänderte Inhalte.

JSON5-Syntax-Unterstützung

JSON5 erweitert JSON mit entwicklerfreundlicher Syntax:

{
  // Kommentare werden unterstützt
  title: "Hello, world!", // Zeilenkommentare funktionieren
  description: 'Einfache Anführungszeichen erlaubt',
  unquoted: 'Schlüssel funktionieren ohne Anführungszeichen',
  trailing: 'Komma ist in Ordnung',
  
  /* Blockkommentare
     werden ebenfalls unterstützt */
  multiline: "Dies ist ein \
langer String, der \
über mehrere Zeilen geht",
  
  // Hexadezimale Zahlen
  hex_value: 0xDEADBEEF,
  positive: +123,
  
  nested: {
    key: 'value',
  }, // Nachgestelltes Komma erlaubt
}

Intelligente Strukturerhaltung

Behält JSON5-Syntax und Framework-Konventionen bei:

{
  nav: {
    home: "Home",
    about: {
      team: "Unser Team"
    }
  },
  items: {
    one: "{{count}} Element",
    other: "{{count}} Elemente"
  },
  // Konfiguration bleibt intakt
  version: 0x010203
}

Erweiterte Konfiguration

Dateien ausschließen

"json5": {
  "include": ["locales/[locale]/*.json5"],
  "exclude": ["locales/[locale]/config.json5"]
}

Technische Schlüssel sperren

"json5": {
  "lockedKeys": ["app/version", "settings/apiKey"]
}

Verwenden Sie Schrägstriche (/) für verschachtelte Schlüsselpfade oder Sternchen (*), um mehrere Schlüsselpfade abzugleichen.

JSON5 vs JSON

JSON5 bietet eine verbesserte Entwicklererfahrung bei vollständiger JSON-Kompatibilität:

  • Kommentare: Dokumentieren Sie Ihre Übersetzungen mit Inline- und Block-Kommentaren
  • Unzitierte Schlüssel: Übersichtlichere Syntax ohne Anführungszeichen um Eigenschaftsnamen
  • Nachfolgende Kommas: Einfachere Bearbeitung und bessere Versionskontroll-Diffs
  • Einfache Anführungszeichen: Flexibilität bei der String-Zitierung
  • Mehrzeilige Strings: Bessere Lesbarkeit für lange Texte
  • Zahlenformate: Hexadezimal, positive Vorzeichen und mehr

Alle JSON-Dateien sind gültige JSON5-Dateien, was die Migration nahtlos macht.