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