Чтобы наше приложение могло определить, какая локаль используется в данный момент, нам нужно добавить LocaleResolverbean:
`
@ Бин
публичный LocaleResolver localeResolver () {
SessionLocaleResolver slr = new SessionLocaleResolver ();
slr.setDefaultLocale (Locale.US);
return slr;
}
`
Интерфейс LocaleResolver имеет реализации, которые определяют текущий языковой стандарт на основе сеанса, файлов cookie, заголовка Accept-Language или фиксированного значения.
Далее нам нужно добавить bean-объект-перехватчик, который будет переключаться на новую локаль на основе значения параметра lang, добавленного к запросу:
`
@ Бин
публичный LocaleChangeInterceptor localeChangeInterceptor () {
LocaleChangeInterceptor lci = новый LocaleChangeInterceptor ();
lci.setParamName ( "языки");
return lci;
}
`
Для вступления в силу этот компонент должен быть добавлен в реестр перехватчиков приложения.
Для этого наш класс @Configuration должен реализовать интерфейс WebMvcConfigurer и переопределить метод addInterceptors ():
`
@ Override
public void addInterceptors (реестр InterceptorRegistry) {
registry.addInterceptor (localeChangeInterceptor ());
}
`
Если вы прочитаете документацию, вы найдете простейший пример заголовка на языке Accept, который идеально соответствует вашим потребностям