Java - пример ResourceBundle
java.util.ResourceBundle - это библиотека, используемая для интернационализации (несколько языков). Он может возвращать сообщения в соответствии с локалью по умолчанию, настроенной для системы. Такая функциональность используется, когда кто-то разрабатывает системы для использования во всем мире.
1. Как это устроено?
Библиотека считывает файл свойств на основе языкового стандарта и суффикса имени, используемого при именовании свойства. Например, рассмотрим файл меток с именемMyLabels_en_US.properties. Этот файл читается утилитойResourceBundle, если для параметра Locale установлено значение en_US, что означает английский (США).
Locale представляет регион или местоположение с его атрибутами. Локаль, как правило, используется для ведения подробной информации о клиенте с помощью нашего приложения. Locale содержит атрибуты местоположения и язык, который будет использоваться для соответствующего местоположения. Таким образом, Locale помогаетResourceBundle выбрать правильный файл меток, определяя местоположение, к которому принадлежит пользователь.
2. пример
Давайте посмотрим на приведенный ниже пример для большей ясности по теме:
MyLabels_en_US.properties
how_are_you = How are you?
MyLabels_ms_MY.properties
how_are_you = apa khabar
Application.java
package com.example;
import java.util.Locale;
import java.util.ResourceBundle;
public class Application {
public static void main(String[] args) {
// en_US
System.out.println("Current Locale: " + Locale.getDefault());
ResourceBundle mybundle = ResourceBundle.getBundle("MyLabels");
// read MyLabels_en_US.properties
System.out.println("Say how are you in US English: " + mybundle.getString("how_are_you"));
Locale.setDefault(new Locale("ms", "MY"));
// read MyLabels_ms_MY.properties
System.out.println("Current Locale: " + Locale.getDefault());
mybundle = ResourceBundle.getBundle("MyLabels");
System.out.println("Say how are you in Malaysian Malaya language: " + mybundle.getString("how_are_you"));
}
}
При выполнении этого кода мы получаем следующий вывод:
Current Locale: en_US Say how are you in US English: How are you? Current Locale: ms_MY Say how are you in Malaysian Malaya language: apa khabar
Как видно из вывода, в зависимости от значения по умолчанию, установленного для набора Locale. Эта утилита в основном используется в веб-приложениях, где веб-браузер помогает узнать локаль удаленного пользователя. Это позволяет показать веб-сайт на определенном языке, насколько это возможно.
Скачать исходный код
Скачать -ResourceBundleExample.zip (8 KB)