Класс ResourceBundle используется для хранения текста и объектов, которые чувствительны к локали. Обычно мы используем файлы свойств для хранения текста, определенного для локали, а затем представляем их с помощью объекта ResourceBundle. Ниже приведены инструкции по использованию файла свойств, специфичного для локали, в приложении на основе Java.
Шаг 1: Создайте файлы свойств.
Предположим, нам нужен файл свойств для английской локали. Затем создайте имя файла свойств XXX_en_US.properties, где XXX — это имя файла, а en_US — языковой стандарт для английского языка (США).
Messages_en_US.properties
message=Welcome to TutorialsPoint.COM!
Давайте теперь создадим файл свойств для французской локали. Затем создайте имя файла свойств XXX_fr_FR.properties, где XXX — это имя файла, а fr_FR — языковой стандарт для французского (Франция).
Messages_fr_FR.properties
message=Bienvenue sur TutorialsPoint.COM!
Здесь вы можете выяснить, что ключ один и тот же, но значение зависит от локали в файле свойств.
Шаг 2. Создание объекта ResourceBundle
Создайте объект ResourceBundle с именем файла свойств и языковым стандартом, используя следующий синтаксис.
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
Шаг 3: Получить значение из объекта ResourceBundle.
Получить значение из объекта ResourceBundle, передав ключ.
String value = bundle.getString("message");
пример
Следующий пример иллюстрирует использование объектов ResourceBundle для отображения определенных значений локали из файлов свойств.
IOTester.java
import java.util.Locale; import java.util.ResourceBundle; public class I18NTester { public static void main(String[] args) { ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US); System.out.println("Message in "+Locale.US +": "+bundle.getString("message")); bundle = ResourceBundle.getBundle("Messages", Locale.FRANCE); System.out.println("Message in "+Locale.FRANCE +": "+bundle.getString("message")); } }
Выход
Будет напечатан следующий результат.
Сообщение в en_US: Добро пожаловать в TutorialsPoint.COM! Сообщение в fr_FR: Bienvenue sur TutorialsPoint.COM!
Примечания для соглашений об именах
Ниже приведены соглашения об именах для файла свойств.
Для файла свойств, сопоставленного с локалью по умолчанию, префикс не является обязательным. message_en_US.properties эквивалентно message.properties.
Для файла свойств, сопоставленного с локалью, префикс можно прикрепить двумя способами. message_fr.properties эквивалентно message_fr_FR.properties.