![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В файлах свойств информация должна быть организована по принципу:
key1 = value1
key2 = value2
…
Например: str1 = To be or not to be?
Перечисление всех ключей в виде Enumeration<String> можно получить вызовом метода getKeys(). Конкретное значение по ключу извлекается методом String getString(String key).
В следующем примере в зависимости от выбора пользователя известная фраза будет выведена на одном из трех языков.
// пример # 16: поддержка различных языков: HamletInternational.java
package chapt8;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Locale;
import java.util.ResourceBundle;
public class HamletInternational {
public static void main(String[] args) {
String country = "", language = "";
System. out. println("1 - Английский");
System. out. println("2 - Белорусский");
System. out. println("Любой символ - Русский");
char i = 0;
try {
i = (char) System. in. read();
} catch (IOException e1) {
e1.printStackTrace();
}
switch (i) {
case '1':
country = "US";
language = "EN";
break;
case '2':
country = "BY";
language = "BEL";
}
Locale current = new Locale(language, country);
ResourceBundle rb =
ResourceBundle. getBundle ("text", current);
try {
String st = rb.getString("str1");
String s1 =
new String(st.getBytes("ISO-8859-1"), "UTF-8");
System. out. println(s1);
st = rb.getString("str2");
String s2 =
new String(st.getBytes("ISO-8859-1"), "UTF-8");
System. out. println(s2);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
Файл text_en_US.properties содержит следующую информацию:
str1 = To be or not to be?
str2 = This is a question.
Файл text_bel_BY.properties:
str1 = Быць або не быць?
str2 = Вось у чым пытанне.
Файл text.properties:
str1 = Быть или не быть?
str2 = Вот в чём вопрос.
Интернационализация чисел
Стандарты представления дат и чисел в различных странах могут существенно отличаться. Например, в Германии строка "1.234,567" воспринимается как «одна тысяча двести тридцать четыре целых пятьсот шестьдесят семь тысячных», для русских и французов данная строка просто непонятна и не может представлять число.
Чтобы сделать такую информацию конвертируемой в различные региональные стандарты, применяются возможности класса java.text.NumberFormat. Первым делом следует задать или получить текущий объект Locale с шаблонами регионального стандарта и создать с его помощью объект форматирования NumberFormat. Например:
NumberFormat nf =
NumberFormat.getInstance(new Locale("RU"));
с конкретными региональными установками или с установленными по умолчанию для приложения:
Дата публикования: 2015-01-23; Прочитано: 193 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!