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
MessageSourceit checks the existence of the<basename>.properties. If that exists aMessageSourceis configured, else nothing is configured and no messages will be resolved.To fix add an empty
<basename>.propertiestosrc/main/resourceto have theMessageSourceautomatically configured.