Используя очень простой пример Spring Rest HelloWorld с intelliJ, я пытаюсь добавить интернационализацию (по умолчанию Locale.US и просто альтернативный messages_es.properties для получения версии на испанском).
Этомой файл конфигурации Java:
@Bean
public LocaleResolver localeResolver(){
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.US);
return localeResolver;
}
@Bean
public ResourceBundleMessageSource messageSource(){
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
Затем у меня есть два ресурса, каждая из которых содержит только запись:
messages.properties (по умолчанию):
good.morning.message=Good morning
messages_es.properties(по умолчанию):
good.morning.message=Buenos días
Тестирование с помощью Postman с параметром заголовка «Accept-Language», независимо от того, какое значение я на нем установил, всегда возвращается версия со словами на испанском («Buenos días»)).Английская версия по умолчанию никогда не возвращается, даже задавая, среди прочего, «en», «en_GB» или «en_US».Всегда "Buenos días".
Однако, если я просто изменю испанский на французский или другие языки, т. Е. Переименую messages_es.properties в messages_fr.properties, он будет работать правильно.Он возвращает «Доброе утро» всегда, кроме случаев, когда я отправляю «fr» в параметре заголовка, в этом случае он возвращает «Добрый день» или любой другой текст, который я установил во французской версии.
Есть идеи?