Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
ResourceBundle myResources =
ResourceBundle.getBundlef'MyResources", someLocale);
На основе указанного базового имени (первый параметр), указанной Локали (второй параметр) и локали по умолчанию (задается настройками ОС или JVM) генерируется список возможных имен ресура. Причем, указанная локаль имеет более высокий приоритет, чем локаль по умолчанию. Если обозначить составляющие указанной локали (язык, страна, вариант) как 1, а локали по умолчанию — 2, то список примет следующий вид:
baseclass + "_" + languagel + "_" + countryl + "_" + varianti
baseclass + "_" + language 1 + "_" + country 1 + "_" + variantl +
".properties" baseclass + "_" + languagel + "_" + countryl baseclass + "_" + languagel + "_" + countryl + ".properties" baseclass + "_" + languagel baseclass + "_" + languagel + ".properties" baseclass + "_" + Ianguage2 + "_" + country2 + "_" + variant2 baseclass + "_" + Ianguage2 + "_" + country2 + "_" + variant2 +
".properties" baseclass + "_" + Ianguage2 + "_" + country2 baseclass + "_" + Ianguage2 + "_" + country2 + ".properties" baseclass + "_" + Ianguage2 baseclass + "_" + Ianguage2 + ".properties" baseclass
baseclass + ".properties"
Например, если необходимо найти ResourceBundle для локали fr_CH (Швейцарский французский), а локаль по умолчанию en_US, при этом название базового класса ResourceBundle MyResources, то порядок поиска подходящего ResourceBundle будет таков.
MyResources_fr_CH
MyResources_fr
MyResources_en_US
MyResourcesen
MyResources
Результатом работы getBundle будет загрузка необходимого класса ресурсов в память, однако данные этого класса могут быть сохранены на диске. Таким образом, если нужный класс не будет найден, то к требуемому имени класса будет добавлено расширение ".properties" и будет предпринята попытка найти файл с данными на диске.
Следует помнить, что необходимо указывать полностью квалифицированное имя класса ресурсов, т.е. имя пакета, имя класса. Кроме того, класс ресурсов должен быть доступен в контексте его вызова (там, где вызывается getResourceBundle), то есть не быть private и т.д.