Tuesday, 15 September 2015

java - How to get the default ResourceBundle regardless of current default Locale -



java - How to get the default ResourceBundle regardless of current default Locale -

i have 3 resource files in class path:

labels.properties:

language = default

labels_en.properties:

language = english language

labels_fr.properties:

language = french

is there way resourcebundle object loads labels.properties no matter default locale is?

resourcebundle.getbundle("labels") returns 1 corresponding current default locale (as expected).

the way can find set default locale non-existing locale, may break other modules.

thank you!

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"));

you can pass in resourcebundle.control which, regardless of requested locale, searches root resourcebundle:

resourcebundle rootonly = resourcebundle.getbundle("labels", new resourcebundle.control() { @override public list<locale> getcandidatelocales(string name, locale locale) { homecoming collections.singletonlist(locale.root); } });

java internationalization locale resourcebundle

No comments:

Post a Comment