Dies ist eine alte Version des Dokuments!
Lokalisieren mit ResourceBundles
In vielen Anwendungen sollen alle Texte für verschiedene Sprachen verfügbar sein.
Diese Texte lassen sich in sogenannte ResourceBundles auslagern. Dies wird hier in Form zweier einfacher Properties-Dateien gezeigt. Dabei definieren die beiden Buchstaben nach dem „_“ die Sprache (de=deutsch, en=englisch, fr=französisch, …).
Property-Datei für die deutschen Texte (texts_de.properties):
name=Name street=Straße city=Ort
Property-Datei für die englischen Texte (texts_en.properties):
name=name street=street city=city
Die Verwendung erfolgt dann so:
String baseName = "text"; try { ResourceBundle rb = ResourceBundle.getBundle(baseName); System.out.println(rb.getString("name")); // "Name" oder "name" System.out.println(rb.getString("street")); // "Straße" oder "street" System.out.println(rb.getString("city")); // "Ort" oder "city" } catch (MissingResourceException e) { // Die Property-Datei konnte nicht gefunden werden // oder der Key ist nicht vorhanden. } </code Das obere Beispiel liefert die im Betriebssystem eingestellt Sprache.\\ \\ Mann kann die Sprache aber auch erzwingen: <code java> rb = ResourceBundle.getBundle(baseName, Locale.GERMAN); // Für Deutsch