Я не уверен, что вы создали все Бины, которые должны быть созданы для достижения этой цели, поэтому я предоставлю максимально возможную помощь, чтобы кто-то мог настроить Spring + Thymeleaf с нуля.
Первый наборbean-компонент localResolver и установить языковой стандарт по умолчанию:
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.ENGLISH);
return slr;
}
Затем в своем классе @Configuration (который должен реализовывать интерфейс WebMvcConfigurer) установите localeChangeInterceptor, чтобы он менял язык на основе параметра lang
каждогозапрос:
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
и установите перехватчик в реестре перехватчиков приложения:
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
Это все для конфигурации Spring. Теперь вам нужно добавить файлы messages.properties в вашу папку src / main / resources. Язык задается в имени файла messages.properties в следующем формате: messages _ ??. Properties, где ?? код языка, например: messages_en.properties или messages_fr.properties.
Также обратите внимание, что если код языка (параметр lang) не существует в качестве существующего языкового стандарта, то приложение будет использовать языковой стандарт по умолчанию,value.
Наконец, убедитесь, что ваши URL содержат параметр lang=<language>
т.е. http://example.com/page?lang=fr