ResourceBundle понимает только язык "en" - PullRequest
0 голосов
/ 15 августа 2011

Я создаю локаль и пытаюсь создать ResourceBundle, используя указанную локаль. Если я использую финский язык, ResourceBundle, похоже, не принимает и не понимает его - вместо этого он получает пустой язык. При использовании английской локали он работает нормально.

Locale obj = new Locale("en");
ResourceBundle resource = ResourceBundle.getBundle("web_resources", obj);
log.debug(resource.getLocale());
log.debug(obj);

Журналы "en", "en".

Locale obj = new Locale("fi");
ResourceBundle resource = ResourceBundle.getBundle("web_resources", obj);
log.debug(resource.getLocale());
log.debug(obj);

Журналы "", "фи".

Я также тестировал fr (французский) и немецкий (de) языки - они тоже не работают. Добавление кодов стран, похоже, не помогло. Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Есть ли у вас web_resources_fi.class web_resources_fi.properties в корне вашего пути к классам? Если нет, то ResourceBundle.getBundle ищет web_resources.class или web_resources.properties (после поиска таких файлов со стандартным языковым стандартом, добавленным к базовому имени).

Подробнее о том, как работает этот метод, см. http://download.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle%28java.lang.String,%20java.util.Locale,%20java.lang.ClassLoader%29.

0 голосов
/ 23 июля 2012

Я нашел проблему месяц или около того назад.Файл ресурса имел неправильную кодировку символов.Если я правильно помню, файл должен быть в UTF-8, но в какой-то момент кодировка изменилась на ISO 8859-4.

Глупая ошибка, но тем не менее ценный урок.

...