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"]
}