У нас есть приложение, использующее базовый JSP / сервлет, в котором весь текст на английском языке жестко закодирован на страницах JSP. Мы рассматриваем возможность интернационализации нашего приложения, поэтому нам нужны какие-то способы извлечения текста в файл свойств.
Вот что я сделал до сих пор:
1) Создайте файл с именем XXXXX-messages_en.properties
, добавьте пару ключ / значение в файл свойств, например AAAAA = Hello World
2) Загрузите соответствующие библиотеки тегов JSTL на страницу JSP.
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
3) Заменить предыдущий текст на
<fmt:message key="AAAAA" bundle="${XXXXX}"/>
4) Добавьте тег setBundle на страницу JSP:
<fmt:setBundle basename="XXXXX-messages" var="XXXXX"/>
И перезагрузите сервер, все правильно отображается.
Однако мой вопрос относительно использования библиотеки интернационализации JSTL:
ВОПРОС 1) Похоже, мне нужно добавить тег <fmt:setBundle>
на каждую из отдельных страниц JSP, что немного некрасиво, и если что-то нужно изменить в будущем (изменение имени?), Это усложнит жизнь.
Я подумал, может быть, я могу создать отдельную страницу и поместить в нее этот <fmt:setBundle>
, а затем включить эту страницу с помощью <jsp:include>
. Или я могу ввести это через фильтр сервлетов? Я бы сказал, что я не совсем доволен обоими вариантами.
Есть какой-нибудь рекомендуемый способ сделать это?
ВОПРОС 2) Как указать язык по умолчанию, если там нет файла свойств соответствия? Я тестировал в моем случае: если я помещаю <fmt:setLocale>
на страницу JSP с французским языком, страница все равно может загружаться правильно. Означает ли это, что по умолчанию всегда используется английская версия, или это просто потому, что моя операционная система / браузер английский?
Что произойдет, если пользователь из Китая / Японии откроет мою страницу и у меня есть файл свойств на английском и французском языках?