почему моя интернационализация не работает (SpringBoot Application)
Вот как я добавлял интернационализацию в моем приложении Spring.
Для начала я добавил в класс
@Configuration
public class SpringSecurityConfig {
// ...
}
метод (здесь я по дефолту ставлю русский язык):
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(new Locale("ru"));
return slr;
}
Дальше в класс который реализует интерфейс WebMvcConfigurer
я добавил два следующих метода:
@Component
public class WebMvcConfigurerImpl implements WebMvcConfigurer {
// ...
// Конфигурация компонента, поддерживающего изменение настроек языка
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
// Регистрация компонента, поддерживающего изменение языка
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
После добавления кода, который указан выше я создал два файла labels.properties
и labels_en.properties
в папочке resources
.
В этих файлах я в буду формате key=value
записыть текст, который будет показыватся на страницах (я использую Thymeleaf).
Дальше нужно зарегистрировать эти файлы в приложении, для этого в файле application.properties
я добавил название labels
к spring.messages.basename
, вот как это выглядит:
spring.messages.basename=errors-messages,labels
Теперь когда страница в запросе получает ...?lang=en
(параметр lang
со значением en
) то значение этикет на странице должно было бы сменится, но этого не происходит.
Что я сделал не так?