Spring MVC – локализация (выбор языка)

Internationalization (i18n). – включение в приложении поддержки разных языков (закладывается при проектировании). Кстати цифра в (i18n) означает количество символов между буквами I и n
Localization (l10n) – реализация в коде.

Для начала нужно создать файлы .properties где будут находится “ключ”-“значение” на разных языках. Как создать файлы локализации на разных языках в Intelij IDEA?

Для того чтобы создать в Intellij IDEA Resource Bundle с несколькими файлами на разных языках, нужно в директории (например, ‘locale’) нажать правой кнопкой>new>file. Далее создать первый файл – “имя.properties” и второй “имя_ru.properties” (“имя_en.properties” и т.д.). После чего все файлы объединятся в специальную “Resource Bundle ‘имяФайла’ “ папку. Чтобы добавлять значения было удобнее, можно нажать на папку правой кнопкой и выбрать “Jump to Source”. Создав property вы увидите несколько полей для добавления значений на разных языках.

Resource Bundle Intelij Idea

 

Здесь созданы два набора локалей – один для смены текста на страницах, а второй для отображения ошибок при валидации (например при вводе пустого пароля).

Далее необходимо прописать бины в нашем dispatcher-servlet.xml.

Объявляем перехватчика "localeChangeInterceptor" (Он задан дальше в бине). А так же бин localeResolver, который указывает на класс SessionLocaleResolver. (локаль определяет не только язык, но и другие параметры, например как отображается дата в разных странах и этот класс помогает избавиться от многих хлопот).

После этого можем перейти к реализации контроллера.

Листинг класса User. Ещё раз обратите внимание, что при проверке @Size в сообщение используется уже другой набор из ValidationMessages.properties (см. скришот выше)

Так выглядит тестовая форма.

Пример работы локализации

Созданы два поля и кнопка. form:input path="name", "password"  связаны с User.class. При нажатии на кнопку выполняется  action="check-user"  и направляется в контроллер, где дальше идет проверка какую страницу вызвать index.jsp или main.jsp.

И теперь два представления .jsp:
index.jsp

и “main.jsp

 

Может быть интересно

На сайте добавлена еще одна статья по интернационализации – Локализация Java Spring MVC приложения. Настройка поддержки нескольких языков.

 

Исходные коды Spring MVC localization example:

SpringMVC_localization – javastudy.ru

Share Button
11
10188 Total Views 2 Views Today

Добавить комментарий