Related but not the same as this answer. I have
@Bean
public LocaleResolver localeResolver() {
AcceptHeaderLocaleResolver ahlr = new AcceptHeaderLocaleResolver();
ahlr.setDefaultLocale(Locale.ENGLISH);
return ahlr;
}
And my browser is sending Accept-Language: en-US,en;q=0.9
. I have messages_en.properties
(but not messages.properties
). I get this error
javax.servlet.jsp.JspTagException: No message found under code 'title' for locale 'en_US'.
I know I can fix it by renaming messages_en.properties
to messages.properties
, but why doesn't Spring Boot find the en
locale when given en_US
?
I expect this to be a problem when someone has fr_FR
locale instead of just fr
. Must I really duplicate the locales for every single country?
How can I make Spring smarter to use the language if the specific country locale is not found?
Spring Boot 1.5.13, Spring Core 4.3.17
For Spring Boot to auto configure a MessageSource
it checks the existence of the <basename>.properties
. If that exists a MessageSource
is configured, else nothing is configured and no messages will be resolved.
To fix add an empty <basename>.properties
to src/main/resource
to have the MessageSource
automatically configured.