Wie man die Standard-ResourceBundle-unabhängig von der derzeitigen Standard-Locale

Habe ich drei Ressource-Dateien im class-path:

labels.Eigenschaften:

language = Default

labels_en.Eigenschaften:

language = English

labels_fr.Eigenschaften:

language = French

Gibt es eine Möglichkeit, um eine ResourceBundle - Objekt, die immer zu Lasten labels.properties EGAL was meine Standard - Locale ist?

ResourceBundle.getBundle("labels") gibt die man entsprechend der derzeitigen Standard-locale (wie erwartet).

Die einzige Möglichkeit, die ich finden kann ist die Einstellung der Standard-locale zu einer nicht vorhandenen Gebietsschema, aber diese können zerbrechen, andere Module.

Danke!

Locale.setDefault( Locale.ENGLISH);
Assert.assertEquals( "English", ResourceBundle.getBundle( "labels").getString( "language"));
Locale.setDefault( Locale.FRENCH);
Assert.assertEquals( "French", ResourceBundle.getBundle( "labels").getString( "language"));
Assert.assertEquals( "French", ResourceBundle.getBundle( "labels", new Locale( "do-not-exist")).getString( "language"));
Locale.setDefault( new Locale( "do-not-exist"));
Assert.assertEquals( "Default", ResourceBundle.getBundle( "labels").getString( "language"));
Möglicherweise müssen Sie anrufen ResourceBundle.clearCache() vor dem Versuch: ResourceBundle.getBundle( "labels", new Locale( "do-not-exist")).getString( "language"));. (Von diese Frage).
Vielen Dank für Ihren Kommentar. Es hat nicht funktioniert, obwohl. Wenn new Locale("do-not-exist") (ich hätte es mit dem Namen "does-not-exist"...) nicht gefunden wird, wird ResourceBundle zu laden versucht man mit Locale.getDefault() statt, nicht die Standard-version des Bundles.

InformationsquelleAutor | 2014-06-19

Schreibe einen Kommentar