Erfahren Sie, wie Sie die Java-Internationalisierung einrichten, .properties-Dateien übersetzen und Ihren Java-Lokalisierungsworkflow automatisieren.
Wie die Java-Internationalisierung funktioniert
Javas i18n-System basiert auf zwei Dingen:
.propertiesDateien, die Ihre übersetzten Zeichenketten speichern- Die
ResourceBundle-Klasse, die zur Laufzeit die richtige Datei basierend auf der Locale des Benutzers lädt
Wenn Ihre App ausgeführt wird, prüft ResourceBundle die Locale des Benutzers und lädt automatisch die passende Datei. Fehlt eine Übersetzung, wird auf die Standarddatei zurückgegriffen, damit nichts kaputtgeht.
Das Aufrufen einer Zeichenkette im Code ist unkompliziert:
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.FRENCH);
String greeting = bundle.getString("welcome.message");Das ist der gesamte Mechanismus. Der Rest der Lokalisierungsarbeit findet in den .properties-Dateien selbst statt, weshalb deren korrekte Strukturierung wichtig ist.
Einrichten Ihres Resource Bundles
Ein Resource Bundle ist eine Sammlung von .properties-Dateien, die einen gemeinsamen Basisnamen teilen. Der Basisname ist der Teil des Dateinamens vor dem Locale-Suffix, und er wird von ResourceBundle.getBundle() verwendet, um zur Laufzeit die richtige Datei zu finden.
messages.properties # default (usually English)
messages_fr.properties # French
messages_de.properties # German
messages_es.properties # Spanish
Hier ist messages der Basisname. Sie können ihn beliebig benennen, aber er sollte widerspiegeln, was die Datei enthält. Größere Anwendungen verwenden oft mehrere Resource Bundles, um die Organisation zu gewährleisten:
src/main/resources/
messages.properties
errors.properties
emails.propertiesJava erwartet ein spezifisches Benennungsmuster: basename_language.properties oder basename_language_COUNTRY.properties für regionale Varianten.
messages_fr.properties # French
messages_fr_CA.properties # French (Canada)
messages_pt_BR.properties # Portuguese (Brazil)Sprachcodes folgen ISO 639-1 und Ländercodes ISO 3166-1. Die Verwendung des falschen Formats bedeutet, dass ResourceBundle die Datei zur Laufzeit nicht finden wird.
Strukturierung von Java .properties-Dateien
Jede Zeile in einer .properties-Datei ist ein Schlüssel-Wert-Paar, getrennt durch =.
welcome.message = Welcome to our application
error.login.invalid_credentials = Invalid username or password
form.submit.button = SubmitNeben der Verwendung von Schlüssel-Wert-Paaren ist es wichtig zu wissen, dass die Art und Weise, wie Sie Ihre Quelldatei schreiben, die Qualität Ihrer Übersetzungen direkt beeinflusst. Bestimmte Best Practices gelten immer, egal ob Sie manuell oder mit einem KI-Übersetzungstool wie PTC übersetzen.
1
Klare, beschreibende Schlüssel verwenden
Schlüssel sollten eindeutig machen, wo und wie eine Zeichenkette verwendet wird. Dies ist wichtig, wenn Sie Hunderte von Zeichenketten über mehrere Dateien hinweg verwalten.
Falsche Verwendung von Schlüsseln:
btn1 = Submit
msg2 = ErrorKorrekte Verwendung von Schlüsseln:
form.submit.button = Submit
error.login.invalid_credentials = Invalid username or password2
Placeholder für dynamische Inhalte verwenden
Schreiben Sie den vollständigen Satz in Ihre .properties-Datei und verwenden Sie nummerierte Platzhalter für variable Inhalte, anstatt Zeichenketten im Code zu verketten.
Falsch (im Code):
"Hello, " + username + "! You have " + count + " new messages."
Korrekt (in .properties-Datei):
dashboard.greeting = Hello, {0}! You have {1} new messages.Viele Sprachen ändern die Wortstellung und die Regeln der Übereinstimmung, sodass das Aufteilen von Sätzen in Fragmente eine korrekte Übersetzung unmöglich macht.
3
Pluralisierung mit ChoiceFormat handhaben
Einige Zeichenketten ändern sich abhängig von einem numerischen Wert. Anstatt separate Schlüssel für Singular und Plural zu schreiben, verwenden Sie ein ChoiceFormat-Muster direkt in Ihrer .properties-Datei:
messages.count = {0,choice,0#no messages|1#one message|1<{0} messages}
Java verarbeitet dieses Muster zur Laufzeit und gibt die richtige Form basierend auf dem übergebenen Wert zurück.
4
Sonderzeichen escapen
Zeichen wie =, :, # und \ haben in .properties-Dateien eine besondere Bedeutung:
=oder:trennt Schlüssel von Werten#oder!leitet einen Kommentar ein\leitet Escape-Sequenzen ein (wie\nfür einen Zeilenumbruch)
Wenn Sie diese Zeichen in einer Zeichenkette verwenden müssen, escapen Sie sie mit einem Backslash.
support.link = Visit us at https\://support.example.com5
Dateien in UTF-8 speichern
Speichern Sie .properties-Dateien immer in UTF-8. Ohne dieses Format werden Nicht-ASCII-Zeichen beschädigt und Übersetzungen unlesbar.
6
Alle benutzerseitigen Texte aus Ihrem Code entfernen
Wenn eine Zeichenkette für Benutzer sichtbar ist, gehört sie in eine .properties Datei. Fest codierte Zeichenketten werden nicht übersetzt, und Ihre App wird am Ende eine Mischung von Sprachen anzeigen.
Weitere Überlegungen zur Java-Lokalisierung
Nicht alles, was lokalisiert werden muss, befindet sich in einer .properties-Datei. Datums-, Zeit-, Zahlen- und Währungswerte werden zur Laufzeit im Code formatiert, und deren korrekte Darstellung ist genauso wichtig wie Ihre übersetzten Zeichenketten.
Java bietet dafür integrierte Klassen:
DateTimeFormatterfür Locale-bewusste Datums- und ZeitformatierungNumberFormatfür Zahlen, Prozentsätze und Währungswerte
Da sich dieser Leitfaden auf .properties-Dateien und deren Übersetzung konzentriert, werden wir diese hier nicht im Detail behandeln. Die offizielle Java-Dokumentation für DateTimeFormatter und NumberFormat ist ein guter Ausgangspunkt.
Übersetzen von Java .properties-Dateien
Sobald Ihre Quelldatei fertig ist, haben Sie mehrere Optionen, um sie übersetzen zu lassen. Die richtige Wahl hängt von Ihrem Budget, Zeitplan und dem Grad der benötigten Automatisierung ab.
| Option | Bearbeitungszeit | Kosten | Wartungsaufwand |
| Professionelle Übersetzer | Tage bis Wochen | Hoch | Manueller Export, Senden, Empfangen und erneute Integration bei jeder Aktualisierung |
| Übersetzungsskripte | Minuten | Niedrig | Erfordert Überprüfung – Platzhalter können fehlerhaft sein, Kontext für Übersetzungen kann falsch sein |
| KI-Übersetzung (wie PTC) | Minuten | Niedrig | Kontextbezogene Übersetzungen werden automatisch über Git oder CI/CD synchronisiert |
Mit PTC sind Übersetzungen in menschlicher Qualität in wenigen Minuten fertig, und es gibt kein Abonnement – Sie zahlen nur für das, was Sie übersetzen. Zu Beginn erhalten Sie 20.000 Wörter kostenlos in zwei Sprachen übersetzt, ohne dass eine Kreditkarte erforderlich ist.
Nach der Anmeldung führt Sie ein Einrichtungs-Assistent durch die Grundlagen: eine kurze Beschreibung Ihrer Anwendung, Ihre Zielsprachen und Ihre .properties-Datei. Der gesamte Vorgang dauert etwa 5 Minuten. Eine vollständige Anleitung finden Sie in unserem Leitfaden für die ersten Schritte.
Nachdem PTC die Übersetzung abgeschlossen hat, gehen Sie zum Tab Ressourcendateien und laden Sie eine ZIP-Datei mit den übersetzten .properties -Dateien herunter.
Fügen Sie diese Dateien wieder in den src/main/resources-Ordner Ihres Projekts ein, neben Ihrer ursprünglichen Quelldatei. Zur Laufzeit wählt ResourceBundle automatisch die richtige Datei basierend auf der Locale des Benutzers aus. Sie müssen Ihren Code nicht ändern.
Java .properties-Übersetzungen synchron halten
Ihre .properties-Datei einmal zu übersetzen ist unkompliziert. Aber wie halten Sie Übersetzungen auf dem neuesten Stand, während sich Ihre Anwendung weiterentwickelt? Jedes Mal, wenn Sie eine neue Zeichenkette hinzufügen, bestehende Texte aktualisieren oder einen Schlüssel entfernen, müssen Ihre übersetzten Dateien diese Änderung widerspiegeln.
Dies manuell zu tun bedeutet, Dateien zu exportieren, zur Übersetzung zu senden, zu warten und sie jedes Mal neu zu integrieren, weshalb die meisten Teams dies schließlich automatisieren.
PTC bietet zwei Möglichkeiten, den Übersetzungsprozess zu automatisieren:
Git-Integration
Verbinden Sie Ihr GitHub-, GitLab– oder Bitbucket-Repository mit PTC, und es überwacht Ihre Quell-.properties-Datei auf Änderungen. Wenn eine Zeichenkette hinzugefügt oder aktualisiert wird, übersetzt PTC sie automatisch und liefert die aktualisierten Übersetzungsdateien über einen Pull-Request zurück. Ihre Übersetzungen bleiben ohne manuelle Schritte synchron.
CI/CD-Integration
Wenn Sie es vorziehen, alles in Ihrem bestehenden Build-Prozess zu halten, können Sie mit der PTC-API Ihre Quelldatei hochladen und Übersetzungen als Teil Ihres CI-Jobs abrufen. Jeder Build erstellt automatisch aktuelle Übersetzungen.
Beide Ansätze bedeuten, dass das Hinzufügen einer neuen Sprache später nur eine Konfigurationsänderung ist, kein neuer manueller Prozess.

Bereit, Ihre Java-App zu lokalisieren?
Ihre .properties-Dateien sind die Grundlage Ihres Java-Lokalisierungsworkflows. Strukturieren Sie sie richtig, halten Sie Ihre Übersetzungen synchron, und Ihre App kann neue Sprachen unterstützen, ohne Ihren Release-Zyklus zu verlangsamen.
Wenn Sie PTC noch nicht ausprobiert haben, ist die kostenlose Testversion ein guter Anfang. 20.000 Wörter, zwei Sprachen, keine Kreditkarte erforderlich.


Java-Übersetzung mit KI
Erhalten Sie kontextbezogene Übersetzungen in Minuten
Laden Sie Dateien hoch oder automatisieren Sie über API- oder Git-Integration