Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
web-programmirovanie_uchebnoe_posobie.pdf
Скачиваний:
95
Добавлен:
09.02.2015
Размер:
4.9 Mб
Скачать

Учебное пособие по web-программированию (2013)

Рисунок 11.2.

Рисунок 11.3.

Дополнительную информацию можно найти по адресу: http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm

Тема 12. Локализация веб-приложений

Возможности локализации JSP страниц и сервлетов, в том числе вывод

-54-

Учебное пособие по web-программированию (2013)

локализованных сообщений, чисел, валюты, дат и времени. Возможности локализации сервлетов и JSTL-приложений.

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

Для локализации используется класс java.util.Locale.

Ресурсы локализации имеют постфикс:

Формат xx_YY

xx — код языка

YY — код страны

Примеры

zh_CN — Шанхай, Китай

ko_KR — Сеул, Корея

en_US — Английский, США

ru_RU — Русский, Россия

Витоге файлы локализации переводов с языка на язык могут храниться в файлах ресурсов: имя_xx_YY.properties и имя_xx.properties.

Предположим, имя файла с ресурсами (описывается в формате файла свойств, в котором в отдельных строках записываются «имя=значение») — myres.properties (рисунок 12.1).

Рисунок 12.1.

Соответственно, название ресурса — myres.

Последовательность поиска локализации (при запрошенных _fr_CA_UNIX и локализации по умолчанию _ru_RU) сверху вниз:

1.myres_fr_CA_UNIX

2.myres_fr_CA

3.myres_fr

4.myres_ru_RU

5.myres_ru

6.myres

Для обращения к файлу ресурсов используется класс java.util.ResourceBundle, его ключевые методы:

-55-

Учебное пособие по web-программированию (2013)

ResourceBundle getBundle(String name)

-получение ресурса с заданным именем

Enumeration getKeys()

-получение всех имён ресурсов

Locale getLocale()

-получение локализации файла ресурсов

Object getObject(String key)

-получение объекта (в случае локализации с использованием java-класса — данный способ выходит за рамких нашего курса)

String getString(String key)

-получение строкового значения (читается из файла ресурсов)

Пример реализации:

Locale locale = Locale.ENGLISH;

ResourceBundle myres = ResourceBundle.getBundle("myres", locale); String helloValue = myres.getString("hello");

Локализация даты и времени выполняется с использованенм java.text.DateFormat.

Методы:

DateFormat getDateInstance(int style, java.util.Locale locale)

String format(java.util.Date date)

Константы:

Форматирование валюты осуществляется с использованием java.util.Currency.

Форматирование чисел — java.text.NumberFormat. Основные методы:

static NumberFormat getInstance()

-получение класса форматирования

String format(double number)

-выполнение форматирования

Currency getCurrency()

-получение объекта валюты

Number parse(String value)

-парсинг числа из строки

void setCurrency(Currency currency)

-установка валюты

Работа с процентами:

NumberFormat getPercentInstance()

-получение числа-процента

NumberFormat getPercentInstance(Locale loc)

-получение числа-процента для заданной локализации

-56-

Учебное пособие по web-программированию (2013)

В JSTL локализация осуществляется с использованием

<%@ taglib uri='http://java.sun.com/jsp/jstl/fmt' prefix='fmt'%>

Ключевые теги:

formatDate

<c:set var="now" value="<%=new Date()%>" /> <fmt:formatDate value="${now}" />

formatNumber

<c:set var="balance" value="120000.2309" /> <fmt:formatNumber value="${balance}" type="currency"/>

message

<c:set var="now" value="<%=new Date()%>" /> <fmt:formatDate value="${now}" />

Пример локализации сервлета приведён на рисунке 12.2, JSP-страницы с использованием JSTL — на рисунке 12.3.

Рисунок 12.2.

-57-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]