2015-05-26 3 views
0

Я пытаюсь проверить локализацию форматов даты в веб-приложении. Я запускаю веб-сервер Tomcat 7, с аргументом JSTL <fmt:setLocale value="${pageContext.request.locale.language}_${pageContext.request.locale.country}" /> на странице, чтобы установить формат даты. Я запускаю локальный сервер из Intellij, с аргументами JVM -Duser.language=en -Duser.region=GB, но каждый раз, когда я запускаю приложение, локаль выходит как en_US. Что я могу сделать, чтобы проверить изменение формата локали?Установить локаль для JSTL в аргументах JVM Tomcat для тестирования?

EDIT: Я также попытался редактирование моего клиента локаль в хроме с помощью chrome://settings/languages и FireFox с помощью Quick Locale Switcher надстройки.

+0

Прочтите javadoc HttpServletRequest.getLocale() и поймите, что локаль JVM не имеет ничего общего с локалью запроса: http://docs.oracle.com/javaee/6/api/javax/ servlet/ServletRequest.html # getLocale% 28% 29 –

+0

@JBNizet 'Возвращает предпочтительный язык, на который клиент будет принимать контент, на основе заголовка Accept-Language. Если запрос клиента не предоставляет заголовок Accept-Language, этот метод возвращает локаль по умолчанию для сервера. «Если вы видите изменение, я изменил локаль клиента в соответствии с предложением BalusC и все еще вижу то же поведение, что заставляет меня думать, что он возвращает локаль сервера по умолчанию. Как я могу обойти это? – sparks

+0

Сделайте некоторые отладки. Добавить '$ {pageContext.request.locale}' в JSP. Проверьте, что напечатано. Если печатается правильная локаль, после этого опубликуйте полный минимальный JSP, воспроизводящий проблему, сообщите нам, что вы ожидаете от нее, и что отображает ее. –

ответ

2

Необходимо изменить локаль клиента, а не локаль сервера. Это клиент, которого интересует локализованная веб-страница, а не сервер. Сервер должен отвечать только по запросу клиента.

Как изменить языковой стандарт клиента зависит от используемого клиента. Например, в Chrome вы можете управлять им в chrome://settings/languages.

+0

Хорошо, так что, если это пока не очевидно, я дерьмова в web-dev. Я перешел на хроматические языковые настройки и добавил другие языки (британский английский, немецкий, польский) и установил их как определяющие языки. (в настоящее время красные squiglies говорят мне, что это не правильно польский, но мой язык на странице все еще говорит «ru_US». Я уже попробовал дополнение Quick Switcher Quick Locale, которое приводит к аналогичным результатам. – sparks

+1

Затем JSTL локализация выполнена неправильно. Вы можете найти мини-учебник в ответ на http://stackoverflow.com/questions/4276061/how-to-internationalize-a-java-web-application – BalusC

Смежные вопросы