Erfahren Sie, wie Sie die Java-Internationalisierung einrichten, .properties-Dateien übersetzen und Ihren Java-Lokalisierungsworkflow automatisieren.
Wie Java-Internationalisierung funktioniert
Das i18n-System von Java basiert auf zwei Dingen:
.properties-Dateien, die Ihre übersetzten Zeichenketten speichern- Die
ResourceBundle-Klasse, die zur Laufzeit die richtige Datei basierend auf dem 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.
Der Aufruf 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 Bundle
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 bestimmtes 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 folgen 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 variablen Inhalt, 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 Wortstellung und Kongruenzregeln, 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 maskieren
Zeichen wie =, :, # und \ haben eine besondere Bedeutung in .properties-Dateien:
=oder:trennt Schlüssel von Werten#oder!beginnt einen Kommentar\leitet Escape-Sequenzen ein (wie\nfür Zeilenumbruch)
Wenn Sie diese Zeichen in einer Zeichenkette verwenden müssen, maskieren 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
Halten Sie alle benutzersichtbaren Texte aus Ihrem Code heraus
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 integrierte Klassen hierfür:
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
Wie die obigen Beispiele zeigen, erfordert die korrekte Internationalisierung einer Java-App Aufwand. Ihre Resource Bundles müssen richtig strukturiert sein, Placeholder korrekt gehandhabt und die Pluralisierung sauber umgesetzt werden – bevor die Übersetzung überhaupt beginnen kann. PTC übernimmt ab diesem Punkt.
Warum PTC?
PTC ist ein KI-Übersetzungssystem für Software-Teams. Es versteht Ihr Produkt, Ihre Terminologie und Ihre Zielgruppe. Mit PTC erhalten Sie:
- Kontextbezogene Übersetzungen — PTC liest Ihre Dateistruktur und Beschreibungen, um Strings präzise zu übersetzen, nicht wörtlich
- Erhalt von Placeholders und Formaten — Ihre
{0},{1}-Muster undChoiceFormat-Strings bleiben unverändert erhalten - Zahlung nach Bedarf — keine monatlichen Abogebühren und ein Preisrechner, damit Sie Ihre Kosten kennen, bevor Sie sich festlegen
- Git- und CI/CD-Integration — verbinden Sie Ihr Repository und halten Sie Übersetzungen automatisch synchron
- Kostenlose Testversion — 20.000 Wörter in zwei Sprachen, keine Kreditkarte erforderlich
Erste Schritte
- Registrieren Sie sich für eine kostenlose Testversion
- Laden Sie Ihre Quell-
.properties-Datei hoch und legen Sie die Pfade für die Übersetzungsausgabe fest - Wählen Sie Ihre Zielsprachen aus
- Fügen Sie eine kurze Beschreibung Ihrer Anwendung und ihrer Zielgruppe hinzu
- Laden Sie Ihre übersetzten Dateien im Tab „Ressourcendateien“ herunter und fügen Sie sie hinzu
src/main/resources
Die gesamte Einrichtung dauert etwa 5 Minuten. Eine vollständige Schritt-für-Schritt-Anleitung finden Sie im Leitfaden für die ersten Schritte.
Ein kontinuierlicher Übersetzungs-Workflow für Java-Projekte
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 versenden, zu warten und sie jedes Mal erneut 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 Zeichenfolge hinzugefügt oder aktualisiert wird, übersetzt PTC diese automatisch und liefert die aktualisierten Übersetzungsdateien per 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-Anwendung 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 Ausgangspunkt. 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