powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Определение локали
8 сообщений из 8, страница 1 из 1
Определение локали
    #39181110
webrazrabchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день.
У меня вопрос по определению локали браузера пользователя.
Задача - нужно показать jsp страницу пользователю по установленному языку в браузере.
Как определяю язык в jsp( использую jQuery)
var lng = navigator.browserLanguage || navigator.language || navigator.userLanguage;
Определяет вполне точно. Меня устраивает.
Вызываю сервлет "/ChangeLngServlet?locale=" + lng,
Это я делаю в момент загрузки страницы в методе $(window).load(function(){
В сервлете делаю
Locale localeObj = new Locale(locale);
ResourceBundle rb = ResourceBundle.getBundle(Constants.BUNDLE_NAME, localeObj);
request.getSession().setAttribute(Constants.RESOURCE_BUNDLE, rb);

Всё это работает, если загузка страницы не первая.

Но если идёт первое обращение, то определять язык браузера в методе $(window).load(function() уже поздно. Потому что страница ужескомпилилась
и установилась локаль по умоляанию.
Как сказано в описании к классу HttpServletRequest
request.getLocale(); принимает значение по умолчанию по локале сервера.
Подскажите, пожалуйста, как показать страницу на языке, который установлен в браузере пользователя?
Вариант с показом выбора языка перед тем как отобразить страницу заказчика не устраивает.
...
Рейтинг: 0 / 0
Определение локали
    #39181187
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такой request header: Accept-Language

у меня например установлено: English/US, English, Ukrainian, Russian
мой браузер вместе с запросом посылает заголовок:

Код: javascript
1.
Accept-Language:"en-US,en;q=0.8,uk;q=0.5,ru;q=0.3"



остается вопрос взять первый поддерживаемый вами язык из указанного списка.

кажется надо использовать : ServletRequest.getLocales()

Returns an Enumeration of Locale objects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header.
If the client request doesn't provide an Accept-Language header, this method returns an Enumeration containing one Locale, the default locale for the server.
...
Рейтинг: 0 / 0
Определение локали
    #39181686
webrazrabchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry.,
Спасибо за ответ.
Да, я знаю, что можно получить локаль из объекта request.
Но в том-то у меня и вопрос. Как заставить сервер при первом же запросе клиента отдать страницу на языке, который установлен в браузере.
То, как я описал, это неверно. Потому что запуск сервлета смены языка запускается с уже сформированной страницы. И чтобы отобразилось нужно страницу отрефрешить.
Как мне кажется, надо как-то перехватить объект request, посмотреть в нём локаль и сформировать ResourceBundle. Потом уже будет формироваться ответ клиенту, JSP, с нужной локалью.
Вот я не могу понять, как правильно это сделать.
...
Рейтинг: 0 / 0
Определение локали
    #39181694
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrazrabchik,

У вас какой-то набор неверных предположений, из-за которых у вас возникло своё ошибочное представление о проблеме. Код в скриплетах и сервлетах не имеет отношения к процессу компиляции JSP. Но понять в чем именно проблема решительно не возможно, потому что совершенно не ясно как сервлет взаимодействует с JSP и как приведенный код вписан в JSP.
...
Рейтинг: 0 / 0
Определение локали
    #39181760
webrazrabchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Спасибо за ответ.
Ещё раз перечитаю основы JSP.
Обстрагиуясь от того, что я выше написал.
Попробую ещё раз написать, В чём собстевенно проблема

Есть страница -
http://ttttttttts.com/service_t/login.jsp
Страница содержит два заголовка
Пользователь
Пароль
Вопрос - Как сделать так, чтобы страница отображалась с тем языком, который установлен у пользователя в браузере?
...
Рейтинг: 0 / 0
Определение локали
    #39181764
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrazrabchik,

Так , так или так
...
Рейтинг: 0 / 0
Определение локали
    #39181765
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrazrabchikКак сказано в описании к классу HttpServletRequest
request.getLocale(); принимает значение по умолчанию по локале сервера.

http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getLocale() Returns the preferred Locale that the client will accept content in, based on the Accept-Language header. If the client request doesn't provide an Accept-Language header, this method returns the default locale for the server.

Помочь с переводом?
...
Рейтинг: 0 / 0
Определение локали
    #39181766
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrazrabchik,
После запроса урл быстрый редирект на нужную страничку за 0,1 сек.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Определение локали
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]