Lingo.dev + .json (Vue.js)

Lingo.dev CLI übersetzt Vue.js i18n JSON-Dateien unter Beibehaltung der Nachrichtenformatierung, Interpolationssyntax und Vue-spezifischen Konventionen. Die CLI arbeitet nahtlos mit der vue-i18n Bibliothek zusammen, behält alle Vue-Nachrichtenformatierungen bei, bewahrt Platzhalter wie {name}, behandelt die Nachrichtenverknüpfung mit der @:-Syntax korrekt und erhält Komponenten-Interpolationsplatzhalter intakt.

Schnelle Einrichtung

Konfiguration für Vue.js i18n Locale-Dateien:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "vue-json": {
      "include": ["src/locales/[locale].json"]
    }
  }
}

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

Vue i18n Dateien übersetzen

npx lingo.dev@latest i18n

Bewahrt Vue.js Nachrichtenformatierung, Interpolationsplatzhalter und vue-i18n-spezifische Syntax.

Vue i18n Funktionen

Nachrichteninterpolation

{
  "message": {
    "hello": "Hallo {name}!",
    "welcome": "Willkommen {name}, Sie haben {count} Nachrichten"
  }
}

Pluralisierungsregeln

{
  "car": "Auto | Autos",
  "apple": "keine Äpfel | ein Apfel | {count} Äpfel"
}

Verknüpfte Nachrichten

{
  "common": {
    "name": "Anwendungsname"
  },
  "welcome": "Willkommen bei @:common.name"
}

Vue's @: Nachrichtenverknüpfungssyntax wird beibehalten.

Erweiterte Vue-Funktionen

HTML-Nachrichtenunterstützung

{
  "message": {
    "title": "Willkommen auf <strong>unserer Plattform</strong>",
    "link": "Besuchen Sie unser <a href='/help'>Hilfecenter</a>"
  }
}

Komponenten-Interpolation

{
  "message": {
    "terms": "Ich stimme den {0}Nutzungsbedingungen{/0} und der {1}Datenschutzrichtlinie{/1} zu"
  }
}

Platzhaltersyntax für Komponenten-Interpolation bleibt intakt.

Datums-/Uhrzeit- und Zahlenformatierung

{
  "datetime": {
    "short": "{value}",
    "long": "{value}"
  },
  "number": {
    "currency": "{value}"
  }
}

Erweiterte Konfiguration

Mehrere Locale-Verzeichnisse

"vue-json": {
  "include": [
    "src/locales/[locale].json",
    "src/i18n/[locale]/*.json"
  ]
}

Vue-spezifische Schlüssel sperren

"vue-json": {
  "include": ["src/locales/[locale].json"],
  "lockedKeys": ["$vuetify", "dateTimeFormats", "numberFormats"]
}