Я исправил это, используя AcceptHeaderLocaleResolver
.
@Bean
public LocaleResolver localeResolver() {
AcceptHeaderLocaleResolver ahlr = new AcceptHeaderLocaleResolver();
ahlr.setDefaultLocale(Locale.ENGLISH);
return ahlr;
}
Я думал, что руководство говорит, что будет искать локаль в сеансе, cookie или заголовке, но они только говорили, что разные подклассы реализуют эти функции отдельно.
Интерфейс LocaleResolver имеет реализации, которые определяют текущую локаль на основе сеанса, файлов cookie, заголовка Accept-Language или фиксированного значения.
Я исправил проблему оперативной перезагрузки, установив это свойство приложения , по крайней мере для отладки:
spring.messages.cache-seconds=1
Я также установил это свойство, чтобы не загромождать мою папку src/main/resources
, чтобы я мог переместить все файлы сообщений в подкаталог locales/
.
spring.messages.basename=locales/messages