相关,但与this answer不同。我有
@Bean
public LocaleResolver localeResolver() {
AcceptHeaderLocaleResolver ahlr = new AcceptHeaderLocaleResolver();
ahlr.setDefaultLocale(Locale.ENGLISH);
return ahlr;
}
我的浏览器正在发送Accept-Language: en-US,en;q=0.9
。我有messages_en.properties
(但没有messages.properties
)。我收到此错误
javax.servlet.jsp.JspTagException: No message found under code 'title' for locale 'en_US'.
我知道我可以通过将messages_en.properties
重命名为messages.properties
来解决它,但是当给定en
时,Spring Boot为什么没有找到en_US
的语言环境?
我希望当某人具有fr_FR
而不是fr
的语言环境时,这是一个问题。我是否必须真的为每个国家/地区复制语言环境?
如果找不到特定的国家/地区语言,如何使Spring更聪明地使用该语言?
Spring Boot 1.5.13,Spring Core 4.3.17
答案 0 :(得分:1)
要让Spring Boot自动配置MessageSource
中的<basename>.properties
和checks the existence。如果存在MessageSource
,则不进行任何配置,也不会解析任何消息。
要解决此问题,请在<basename>.properties
上添加一个空白的src/main/resource
以自动配置MessageSource
。
答案 1 :(得分:0)
添加一个空的messages.properties
可以解决above comment中给出的问题。非常奇怪和不直观的错误消息。如果您以评论为答,我会接受。