Spring Web MVC中Locale的多个默认值?

时间:2011-12-15 11:52:35

标签: java spring-mvc localization internationalization locale

我希望我的基于Spring-MVC的Web应用程序在传入CZ语言环境时默认为SK语言环境,但是任何其他语言环境都应该默认为EN。

我正在设计的网站在使用捷克语或斯洛伐克语区域设置的计算机访问时应自动以斯洛伐克语显示。否则,该网站应该默认为英语。我怎么能实现这个目标?我应该继承org.springframework.web.servlet.i18n.LocaleChangeInterceptor并编写自定义代码,还是只有配置方式来实现这一目标?我可以想象德语国家可以有同样的要求,如德国或奥地利访问时默认为DE,否则默认为EN ......

1 个答案:

答案 0 :(得分:3)

您不需要子类化LocaleChangeInterceptor。 LocaleChangeInterceptor通过请求参数“Locale”检测语言环境的变化。

您需要配置拦截器和特定于语言环境的属性文件。在此之后你可以使用

 <spring:message code="propertyVal"/>

显示它们。检查here以获取示例配置。

您还可以使用CookieLocaleResolver,它是一个“LocaleResolver实现,它使用在自定义设置的情况下发送回用户的cookie,并回退到指定的默认语言环境或请求的accept-header语言环境。”