Mittwoch, 11. März 2009
Internationalisierung in Java
Im Beispiel Internationalisierung.zip wird demonstriert, wie man die Ein-/Ausgabe sowie eigene Texte internationalisiert.
private String resource = "international.texte"; // Package + Prefix
private ResourceBundle bundle;
private Locale locale = Locale.getDefault();
public International() {
this.bundle = ResourceBundle.getBundle(this.resource);
System.out.println(this.locale.getDisplayName());
}
public International(Locale locale) {
this.bundle = ResourceBundle.getBundle(this.resource, locale);
this.locale = locale;
System.out.println(this.locale.getDisplayName());
}
public void sayHello() {
System.out.println(this.bundle.getString("hallo"));
}
Dieses Code-Fragment zeigt einen Ausschnitt aus der Beipielklasse International
. Beim Defaultkonstruktor wird als Sprache die Systemeinstellung verwendet, der zweite Konstruktor wird mit einer Locale
aufgerufen:
International i = new International(new Locale("de", "AT"));
i.sayHello();
ResourceBundle.getBundle(this.resource, locale)
versucht eine Datei international.texte_locale.properties
zu lesen (international
ist hier das Package). locale
setzt sich in obigem Beispiel aus de_AT
zusammen.sayHello()
gibt dann die Übersetzung zum String
aus, falls diese Property existiert.hallo
Eine solche Property-Datei enthält Zeilen der Art
msg = Übersetzung
Z.B. international.texte_de_AT.properties
enthält:
# österreichische Texte
hallo = Servus
fehler = Des is foisch
zahl = Zoi
parse = des kaunst net umwaundln
io = des geht net eine oder aussi
null = Nix geht mehr (null pointer exception)
Die Methoden readNumber()
bzw. printNumber()
zeigen, wie man Zahlen lokalisiert einliest bzw. ausgibt.
Siehe auch Internationalisierung (Softwareentwicklung)
Abonnieren Posts [Atom]
Kommentar veröffentlichen