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)