huz*_*yfe 0 grails locale internationalization grails-2.0
我在项目中使用Grails 2.0.3。我想对我的应用程序实施国际化。据本文档了解,Grails对国际化提供了现成的支持。但是,我想覆盖浏览器Accept-Header设置,并希望设置用户的语言偏好。
首先,我创建了一个过滤器以捕获请求并检查语言首选项。但这没有帮助。在过滤器中,我可以获取本地化消息,但是在呈现页面时,我正在获取英文页面。这是我用于设置语言环境的代码。
def locale = new Locale("es", "ES")
java.util.Locale.setDefault(locale)
Run Code Online (Sandbox Code Playgroud)
然后,我创建了自定义,LocaleResolver并将其注入到spring配置中localeResolver。再次在过滤器中我可以看到本地化的消息,但是在页面中还是没有运气吗?
有没有一种方法可以覆盖或绕过Grails i18n支持中的浏览器设置?
LocaleResolverGrails 的默认值为SessionLocaleResolver。如果您想一直使用es_ES,可以将其更改为FixedLocaleResolver。
beans {
localeResolver(FixedLocaleResolver) {
locale = new Locale("es", "ES")
}
}
Run Code Online (Sandbox Code Playgroud)
如果要限制为一组语言环境,则需要一个过滤器,然后使用该SessionLocaleResolver#setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale)方法。
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |