2

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

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

但是,当我导航到主页(当前是默认的 Welcome to Grails 页面)时,它会将语言环境切换回“en”,每当我导航到另一个页面时,它就会切换回原来的状态。

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

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

4

1 回答 1

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')
于 2013-02-14T08:27:20.287 回答