АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Text_bel_BY.properties

Читайте также:

    В файлах свойств информация должна быть организована по принципу:

    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"));

    с конкретными региональными установками или с установленными по умолчанию для приложения:

    NumberFormat.getInstance();

    Далее для преобразования строки в число и обратно используются методы Number parse(String source) и String format(double number) соответственно.

    В предлагаемом примере производится преобразование строки, содержащей число, в три различных региональных стандарта, а затем одно из чисел преобразуется из одного стандарта в два других.

    // пример # 17: региональные представления чисел: DemoNumberFormat.java

    package chapt07;

    import java.text.*;

    import java.util.Locale;

     

    public class DemoNumberFormat {

    public static void main(String args[]) {

    NumberFormat nfGe =

    NumberFormat. getInstance (Locale.GERMAN);

    NumberFormat nfUs =

    NumberFormat. getInstance (Locale.US);

    NumberFormat nfFr =

    NumberFormat. getInstance (Locale.FRANCE);

     

    double iGe=0, iUs=0, iFr =0;

    String str = "1.234,567"; //строка, представляющая число

    try {

    //преобразование строки в германский стандарт

    iGe = nfGe.parse(str).doubleValue();

    //преобразование строки в американский стандарт

    iUs = nfUs.parse(str).doubleValue();

    //преобразование строки во французский стандарт

    iFr = nfFr.parse(str).doubleValue();

    } catch (ParseException e) {

    e.printStackTrace();

    }

    System. out. printf("iGe = %f\niUs = %f\niFr = %f",

    iGe, iUs, iFr);

     

    //преобразование числа из германского в американский стандарт

    String sUs = nfUs.format(iGe);

    //преобразование числа из германского во французский стандарт

    String sFr = nfFr.format(iGe);

    System. out. println("\n" + sUs + "\n" + sFr);

    }

    }

    Результат работы программы:

    iGe = 1234,567000

    iUs = 1,234000

    iFr = 1,000000

    1,234.567

    1 234,567

    Аналогично выполняются переходы от одного регионального стандарта
    к другому при отображении денежных сумм.

    Интернационализация дат

    Учитывая исторически сложившиеся способы отображения даты и времени в различных странах и регионах мира, в языке создан механизм поддержки всех национальных особенностей. Эту задачу решает класс java.text.DateFormat. С его помощью учтены: необходимость представления месяцев и дней недели на национальном языке; специфические последовательности в записи даты и часовых поясов; возможности использования различных календарей.

    Процесс получения объекта, отвечающего за обработку регионального стандарта даты, похож на создание объекта, отвечающего за национальные представления чисел, а именно:

    DateFormat df = DateFormat.getDateInstance(

    DateFormat.MEDIUM, new Locale("BY"));

    или по умолчанию:

    DateFormat.getDateInstance();

    Константа DateFormat.MEDIUM указывает на то, что будут представлены только дата и время без указания часового пояса. Для указания часового пояса используются константы класса DateFormat со значением LONG и FULL. Константа SHORT применяется для сокращенной записи даты, где месяц представлен в виде своего порядкового номера.

    Для получения даты в виде строки для заданного региона используется метод String format(Date date) в виде:

    String dat = df.format(new Date());

    С помощью метода Date parse(String source) можно преобразовать переданную в виде строки дату в объектное представление конкретного регионального формата, например:

    String str = "April 3, 2006";

    Date d = df.parse(str);

    Класс содержит большое количество методов, позволяющих выполнять разнообразные манипуляции с датой и временем.

    В качестве примера рассмотрено преобразование заданной даты в различные региональные форматы.

    // пример # 18: региональные представления дат: DemoDateFormat.java

    package chapt07;

    import java.text.DateFormat;

    import java.text.ParseException;

    import java.util.*;

     

    public class DemoDateFormat {

    public static void main(String[] args) {

    DateFormat df =

    DateFormat. getDateInstance (DateFormat.MEDIUM, Locale.US);

    Date d = null;

    String str = "April 3, 2006";

    try {

    d = df.parse(str);

    System. out. println(d);

    } catch (ParseException e) {

    e.printStackTrace();

    }

    df =

    DateFormat.getDateInstance(DateFormat.FULL,

    new Locale("ru","RU"));

    System. out. println(df.format(d));

     

    df =

    DateFormat.getDateInstance(DateFormat.FULL,Locale.GERMAN);

    System. out. println(df.format(d));

     

    d = new Date();

    //загрузка в объект df текущего времени

    df = DateFormat. getTimeInstance ();

    //представление и вывод времени в текущем формате дат

    System. out. println(df.format(d));

    }

    }

    Результат работы программы:


    1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

    Поиск по сайту:



    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.013 сек.)