Lingo.dev + .properties (Java)
Lingo.dev CLI übersetzt Java .properties-Dateien unter Beibehaltung der Schlüssel-Wert-Struktur, Escape-Sequenzen und Java-Lokalisierungskonventionen. Die CLI arbeitet nahtlos mit Javas ResourceBundle-System zusammen, behält das Format der Properties-Datei exakt bei, behandelt Unicode und spezielle Zeichenescaping korrekt, bewahrt {0}
, {1}
Platzhalter für MessageFormat und integriert sich in Maven- und Gradle-Build-Prozesse.
Schnelle Einrichtung
Konfiguration für Java-Properties-Dateien:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"properties": {
"include": ["src/main/resources/messages_[locale].properties"]
}
}
}
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.
Properties-Dateien übersetzen
npx lingo.dev@latest i18n
Behält das Format der Properties-Datei, Escape-Sequenzen und Java-spezifische Konventionen bei, während die Werte übersetzt werden.
Struktur der Properties-Datei
Grundlegende Schlüssel-Wert-Paare
welcome.message=Willkommen in unserer Anwendung
login.button=Anmelden
logout.button=Abmelden
error.invalid.credentials=Ungültiger Benutzername oder Passwort
Namespace-Organisation
# Authentifizierungsnachrichten
auth.login.title=Anmelden
auth.login.subtitle=Geben Sie Ihre Anmeldedaten ein
auth.register.title=Konto erstellen
auth.forgot.password=Passwort vergessen?
# Navigationselemente
nav.home=Startseite
nav.dashboard=Dashboard
nav.settings=Einstellungen
MessageFormat-Platzhalter
welcome.user=Willkommen zurück, {0}!
items.count=Sie haben {0} Artikel in Ihrem Warenkorb
validation.min.length=Feld muss mindestens {0} Zeichen lang sein
date.format=Heute ist {0,date,short}
Java-spezifische Funktionen
Unicode-Escape-Sequenzen
japanese.greeting=\u3053\u3093\u306b\u3061\u306f
euro.symbol=Preis: 100\u20ac
Unicode-Escapes werden während der Übersetzung beibehalten.
Zeilenfortsetzung
long.message=Dies ist eine sehr lange Nachricht, die \
sich über mehrere Zeilen erstreckt für bessere \
Lesbarkeit in der Quelldatei
Escaping spezieller Zeichen
file.path=C:\\Users\\Documents\\file.txt
key.with.spaces=key\ with\ spaces=Wert mit Leerzeichen
special.chars=Enthält \= Gleichheitszeichen und \: Doppelpunkte
Erweiterte Konfiguration
Mehrere Properties-Dateien
"properties": {
"include": [
"src/main/resources/messages_[locale].properties",
"src/main/resources/validation_[locale].properties"
]
}
Konfigurationsschlüssel sperren
"properties": {
"include": ["src/main/resources/messages_[locale].properties"],
"lockedKeys": ["app.version", "build.timestamp", "api.endpoint"]
}