我是Groovy / Grails的新手,目前我正在开发一个原型作为概念证明。我正在尝试使用Grails内置的i18n功能来切换语言。我在属性文件中使用Message Bundles来执行此操作。
我在messages_cy.properties
目录下创建了i18n
(即威尔士语),当我将?lang=cy
附加到网址的末尾时,一切似乎都正常。
但是,当我导航到主页(当前是默认的欢迎使用Grails页面)时,它会将语言环境切换回'en',每当我导航到另一个页面时,它都会切换回之前的状态。
我现在使用动态脚手架为我创建控制器和视图,我们最终可能会改变。我不确定这是否导致了这个问题。主页(index.gsp)是唯一不动态搭建的页面。
任何人都可以对此有所了解吗?感谢。
答案 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')