понеділок, 29 жовтня 2012 р.

Spring 3: Интернационализации и Локализации

В этом уроке мы поговорим о интернационализации и локализации в Spring 3.0 MVC. Мы добавим поддержку i18n с l10n для приложения Spring.

Что такое i18n и l10n?

В программировании, интернационализации и локализации являются средством адаптации компьютерных программ на различные языки и региональные различия. Интернационализация представляет собой процесс проектирования программного приложения таким образом, что оно может быть адаптировано к различным языкам и регионам без технических изменений. Локализация это процесс адаптации разного программного обеспечение для конкретного региона или языка, добавив локали компонентов и их перевод.

В английском языке для слова «internationalization» принято сокращение «i18n». При этом число 18 означает количество пропущенных между «i» и «n» букв. Для Локализации «Localization» применяют сокращение «L10n». Заглавная буква «L» используется чтобы не путать с «i» в «i18n», число 10 — количество букв между «L» и «n».

Цель:

Наша цель заключается в добавлении интернационализации и локализации для нашего приложения Spring MVC. После завершения нашего приложения будет выглядеть.

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

Resouces File

Создадим два propperty файла, который будет содержать все сообщения, которое будет отображаться в приложении.

Эти файлы хранятся в исходной папке под названием «resources».

Создадим два файла lable_en.properties and lable_ru.properties в папке resources.

language = en
label.registration = Registration
label.login = Log In
language = ru
label.registration = Регистрация
label.login = Войти на сайт

Настройка интернационализации (i18n) / локализации (l10n) в Spring MVC

Мы создали resource properties для нашего приложения. Теперь мы должны объявить эти файлы в конфигурационом файле spring *-servlet.xml.

Будем использовать класс org.springframework.context.support.ReloadableResourceBundleMessageSource для определения resource properties.

Кроме того, обратите внимание, что мы будем предоставлять функцию, где пользователь сможет выбрать язык для приложения в виде влагов. Это реализуется с помощью org.springframework.web.servlet.i18n.LocaleChangeInterceptor класс.

LocaleChangeInterceptor будет перехватывать любые изменения в локали. Эти изменения будут сохранены в cookies для будущего запроса.

org.springframework.web.servlet.i18n.CookieLocaleResolver класс будет использоваться для хранения локализации изменений в cookies.

Добавить следующий код в *-servlet.xml файл.


    
    

 

    

 

    

 

    
        
    

 

    
        
    

Отметим, что в вышеуказанной конфигурации мы определили базовое свойство в MessageSource classpath:messages. По этому spring будет определить, что label_  ресурс и будет использоваться в этом приложении.

Изменить вид — JSP

Теперь, когда мы создали два message resources фала и настроить его в Spring MVC, мы будем использовать эти сообщения в файлах JSP. Откройте все файлы JSP вашего приложения и добавьте в начало каждого файла следующую строку:

<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>

эта библиотека которую мы подключили выше даст нам возможность использовать теги spring.

Для переключение локали добавьте следующий код:


    en
    |
    ru

В *-servlet.xml мы указали <property name="paramName" value="lang" /> это значит что параметр передаваемый GET lang методом будет определять локаль.

И последний шаг, это вывод сообщений:

Отметим, что в JSP выше, мы использовали <spring:message> теги для отображения сообщения от ресурсов.

Многоязычное приложение готово!

Ресурс: www.devcolibri.com

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments