Locale, Internationalisierung, Sprache, Land
java.util.Locale
Die Sprachen- und Landesinformationen werden in der Klasse Locale zusammengefasst.
Locale german = new Locale( "de", "DE" ); // deutsch, Deutschland Locale french = new Locale( "fr" ); // Französich, Land egal
Dabei wird die Sprache über eine zwei-Buchstabenkürzel nach ISO 639 definiert (Kleinbuchstaben).
Das Land wird über ein zwei-Buchstabenkürzel nach ISO 3166 definiert (Großbuchstaben).
Mit dieser Locale können unter Anderem Sprachdateien geladen werden.
Die Sprachdateien müssen nach einem bestimmten Schema benannt werden.
Der Dateiname muss auf „_de“ enden (dabei ist „de“ natürlich nur beispielhaft, es muss dass ISO 639-Kürzel sein).
Die Dateiendung lautet auf “.properties“.
Für jede unterstütze Sprache muss eine Datei erstellt werden. Eine Datei ohne ISO-Endung ist erlaubt. Dies ist dann die Default-Datei, welche verwendet wird, wenn keine eigen Datei für die Sprache gefunden wird.
Der Inhalt der Dateien besteht aus Key-Value-Paaren.
Bespiel einer deutschen properties-Datei:
HELLO = Hallo
LOGIN = Anmelden
Beispiel für die Dateinamen:
lang/myprogram.properties\\ lang/myprogram_de.properties\\ lang/myprogram_fr.properties\\
Die Datei ohne ISO-Kürzel ist im meist die englische Übersetzung. Alle Dateien müssen über den Classpath zu finden sein!
Ein komplettes Code-Beispiel:
Locale german = new Locale( "de", "DE" ); // deutsch, Deutschland ResourceBundle bundle = PropertyResourceBundle.getBundle("lang.myprogram", german); System.out.println(bundle.get("LOGIN")); // Ausgabe: "Anmelden"