为什么 Spring 在给定 `en_US` 时不使用区域设置 `en`?
Why doesn't Spring use locale `en` when given `en_US`?
与相关但不相同。我有
@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
来修复它,但是为什么 Spring Boot 在给定 [=20= 时找不到 en
语言环境]?
我预计当有人使用 fr_FR
而不是只有 fr
语言环境时,这会成为一个问题。我真的必须为每个国家复制语言环境吗?
如果找不到特定国家/地区的区域设置,我如何才能 Spring 更智能地使用该语言?
Spring 引导 1.5.13,Spring 核心 4.3.17
添加一个空 messages.properties
解决了 中给出的这个问题。非常奇怪且不直观的错误消息。如果给出评论作为答案,我会接受。
为Spring开机自动配置一个MessageSource
它checks the existence的<basename>.properties
。如果存在,则配置 MessageSource
,否则不配置任何消息,也不会解析任何消息。
修复添加空 <basename>.properties
到 src/main/resource
以自动配置 MessageSource
。
与
@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
来修复它,但是为什么 Spring Boot 在给定 [=20= 时找不到 en
语言环境]?
我预计当有人使用 fr_FR
而不是只有 fr
语言环境时,这会成为一个问题。我真的必须为每个国家复制语言环境吗?
如果找不到特定国家/地区的区域设置,我如何才能 Spring 更智能地使用该语言?
Spring 引导 1.5.13,Spring 核心 4.3.17
添加一个空 messages.properties
解决了
为Spring开机自动配置一个MessageSource
它checks the existence的<basename>.properties
。如果存在,则配置 MessageSource
,否则不配置任何消息,也不会解析任何消息。
修复添加空 <basename>.properties
到 src/main/resource
以自动配置 MessageSource
。