Java - Allgemein

Lokalisieren mit ResourceBundles

java.util.ResourceBundle
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, …).
Zusätzlich kann auch das Land angegeben werden (DE=Deutschland, CH=Schweiz, …). In diesem Fall würde die Property-Datei z.B. texts_de_DE.properties heißen.

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 = "texts";
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.
}

Das obere Beispiel liefert die im Betriebssystem eingestellt Sprache.

Mann kann die Sprache aber auch erzwingen:

rb = PropertyResourceBundle.getBundle(baseName, Locale.GERMAN);   // Für Deutsch

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007