Java Spring:localeChangeInterceptor和子域

时间:2012-02-22 16:39:38

标签: java spring multilingual

我有一个Spring MVC webapp并希望这样做(例子):

  • 申请子域 en.foo.com - >语言应该是英语
  • 申请子域 es.foo.com - >语言应该是西班牙语

我已根据请求使用localeChangeInterceptor按网址参数更改语言,这样做(在我的网址中添加参数,例如?lang = en)。

但是使用Spring的特定于语言的子域的最佳方法是什么?我搜索了网络和Spring文档,但还没有找到答案。

我认为它可以像这样工作:

  1. 拦截任何请求
  2. 确定使用过的子域
  3. 决定应使用哪种语言/区域设置,并将其设置为localeChangeInterceptor
  4. 如果这是可行的方法,我可以使用提示从哪里开始。

    提前致谢!

1 个答案:

答案 0 :(得分:3)

您需要实现自己的LocaleResolver

LocaleResolver.resolveLocale(HttpServletRequest)方法是Spring用来确定从MessageSource使用哪个Locale的方法。您可以从请求中提取子域并返回所需的区域设置。