- •Тема 1. Разработка простейших веб-приложений
- •Тема 2. Взаимодействие с сервлетом
- •Тема 3. Контекст сервлета
- •Тема 4. Веб-сессия
- •Тема 5. Фильтры и взаимодействие сервлетов
- •Тема 6. Безопасность веб-приложений
- •Тема 7. Введение в JSP
- •Тема 8. Встроенные объекты JSP
- •Тема 9. Стандартные действия и JavaBeans
- •Тема 10. Выражения JSP Expression Language
- •Тема 11. JSP Standard Tag Library
- •Тема 12. Локализация веб-приложений
- •Тема 13. Настраиваемые теги JSP
- •Тема 14. Взаимодействие с БД в веб-приложениях
- •Тема 15. Запросы к БД
Учебное пособие по 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-