ResourceBundle.Control () управляет списком файлов для ResourceBundle. Вы можете переписать
getCandidateLocales и toBundleName. toBundleName преобразует локаль в «имя файла» и список локалей, которыми вы можете управлять в getCandidateLocales.
Например, как
final String[] variants = new String[]{"your names"};
ResourceBundle.getBundle(baseName, locale,
new ResourceBundle.Control() {
public List<Locale> getCandidateLocales(String baseName, Locale locale) {
List<Locale> out = new ArrayList<Locale>();
String language = locale.getLanguage();
String country = locale.getCountry();
for (String variant : variants) {
out.add(new Locale(language, country, variant));
}
out.addAll(super.getCandidateLocales(baseName, locale));
return out;
}
public String toBundleName(String baseName, Locale locale) {
Locale l = new Locale(locale.getLanguage(), locale.getCountry());
return locale.getVariant() + "." + super.toBundleName(baseName, l);
}
});
Работает только в Java 1.6