Java SE 8 Programmer II: Locale

Für die Zertifikatsprüfung sind nur Sprache und Region (=Land) relevant.

Um Locale Objekte zu erzeugen, gibt es verschiedene Möglichkeiten:

  • new Locale().Builder mit set...() ... build()
  • new Locale(...)
    variable Parameter: language, country, variant
    Im resultierenden Locale Objekt ist das Land in Kleinbuchstaben und die Sprache in Grossbuchstaben, getrennt von einem '_'. Eine Prüfung auf Gültigkeit findet nicht bei Initialisierung sondern erst beim Gebrauch statt.
  • Locale::forLanguageTag(...)   z.B. "en-US". Die Ausgabe verwendet den '_'.

Ausserdem gibt es vordefinierte Locale Konstanten in Locale. Bei vordefinierten Ländern ist die jeweilige Standard-Sprache hinterlegt.

Sprachinformationen sind in Properties-Files (ResourceBundle) abgelegt, deren Name die Sprach- und Landes-Angaben enthalten kann.
Das Properties-File wird mit getBundle() gelesen, dabei wird der Filename (ohne Endung) verwendet, um die Default-Sprache zu erhalten.
Die Properties-Files enthalten Key-Value-Paare, die mit '=', ':' oder einem Leerzeichen getrennt sind (das ist konfigurierbar).

Es gibt zwei Subklassen von ResourceBundle:

  • PropertyResourceBundle
  • ListResourceBundle: die abstrakte Klasse enthält Locale-spezifische Objekt, die mit getContents() ausgelesen werden