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
10
3373 Total Views 1 Views Today

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