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