powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите разобраться с локализацией
10 сообщений из 10, страница 1 из 1
Помогите разобраться с локализацией
    #39770457
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять зачем нужно одновременно нужно реализовывать LocaleResolver и Interceptor.

Почему недостаточно например только Interceptor?


Люблю галеры - работящий коллектив, романтика мужского труда. Стоишь на мостике в пене брызг и эдак поворотясь:
- Голубчик! Утроить количество ударов - Али-паша уходит...
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770533
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уточню: имеется ввиду локализация в Spring Framework и, к примеру, вот эта статья:
https://www.mkyong.com/spring-mvc/spring-mvc-internationalization-example/
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770551
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxifly,

resolver - как-то магически определяет текущую локаль пользователя
interceptor - определеяет локаль из запроса(вконце там может быть что то типа &lang=ru или что-то такое, не помню точно).
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770605
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

Ну вот у интерсептора вот такой метод
Код: java
1.
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)



А у ресолвера интерфейс с вот такими:
Код: java
1.
2.
3.
4.
5.
6.
//Returns the locale for the given request
Locale resolveLocale(HttpServletRequest request);
 
//Method to set a locale value. Depending upon the LocaleResolver,
//  the locale can be set on the request, response or on to something else altogether.
void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale);




То бишь - они оба имеют доступ к одним и тем же данным.
Во всех туториолах по локализации используют одновременно и LocaleResolver и Interceptor и поэтому я никак не могу понять зачем?
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770613
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxifly, я чето вопроса не понял. Есть похожие интерфейсы и что? Функции у них разные. Один резолвит локаль из настроек ос\браузера, другой работает для поддержки нескольких языков, перехватывает запросы и из запроса пытается узнать язык, который запросили.
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770637
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

Есть резолверы которые получают локаль не из настроек. Вот например:

Код: plaintext
1.
2.
 AcceptHeaderLocaleResolver

It creates a locale object using the "accept-language" header of the HTTP request and returns it.
То есть - он резолвит локаль на основании запроса Так?

Интерсептор - тоже резолвит локаль на основании запроса.
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770639
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

хотя Вы навели меня на одну мысль - спасибо.
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770642
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxiflyОзверин,

Есть резолверы которые получают локаль не из настроек. Вот например:

Код: plaintext
1.
2.
 AcceptHeaderLocaleResolver

It creates a locale object using the "accept-language" header of the HTTP request and returns it.
То есть - он резолвит локаль на основании запроса Так?

Интерсептор - тоже резолвит локаль на основании запроса.

AcceptHeaderLocaleResolver - судя по названию, резолвит из хедера, а не из реквестпараметра.
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770658
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localeResolver - источник для получения локали потребителями, она сохраняет локаль в Session (там же ясно написано - SessionLocaleResolver).
А Interceptor проверяет в каждом запросе - не поменялась ли локаль, если нужно - "сохраняет" ее, но не сам а отдает той самой localeResolver.
...
Рейтинг: 0 / 0
Помогите разобраться с локализацией
    #39770731
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин
AcceptHeaderLocaleResolver - судя по названию, резолвит из хедера, а не из реквестпараметра.

Из хедера, а хедер берет из HttpServletRequest request, от туда же, откуда берет данные и Interseptor. В том-то и дело!

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    public LocaleContext resolveLocaleContext(ServerWebExchange exchange) {
        List requestLocales = null;

        try {
            requestLocales = exchange.getRequest().getHeaders().getAcceptLanguageAsLocales();
        } catch (IllegalArgumentException var4) {
            ;
        }

        return new SimpleLocaleContext(this.resolveSupportedLocale(requestLocales));
    }
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите разобраться с локализацией
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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