Grails - 区域设置回到' en'

时间:2013-01-29 10:36:45

标签: grails internationalization locale

我是Groovy / Grails的新手,目前我正在开发一个原型作为概念证明。我正在尝试使用Grails内置的i18n功能来切换语言。我在属性文件中使用Message Bundles来执行此操作。

我在messages_cy.properties目录下创建了i18n(即威尔士语),当我将?lang=cy附加到网址的末尾时,一切似乎都正常。

但是,当我导航到主页(当前是默认的欢迎使用Grails页面)时,它会将语言环境切换回'en',每当我导航到另一个页面时,它都会切换回之前的状态。

我现在使用动态脚手架为我创建控制器和视图,我们最终可能会改变。我不确定这是否导致了这个问题。主页(index.gsp)是唯一不动态搭建的页面。

任何人都可以对此有所了解吗?感谢。

1 个答案:

答案 0 :(得分:0)

我通过创建HomeController解决了这个问题,并使用UrlMapping.groovy将Home控制器映射到根URL。

HomeController.groovy

import org.springframework.web.servlet.support.RequestContextUtils as RCU

class HomeController {
def index() {
  def newLocale = RCU.getLocale(request)
  RCU.getLocaleResolver(request).setLocale(request, response, newLocale)
 }
}

UrlMappings.groovy

"/"(controller:'home',action:"index", view:'/index')