Grails:如何在位于控制器/域/服务之外的GSP页面中获取区域设置?

时间:2015-04-16 16:04:15

标签: grails internationalization gsp

我有一个基于Grails和kickstarter插件的语言选择的internazionalised应用程序。根据UrlMappings中的配置,有些页面没有控制器。在这些上,无论用户实际选择了什么,都只应用默认语言环境。此外,在他们身上改变语言是行不通的。 g:使用默认语言环境输出消息标签;我试过了

<g:set var="locale"
   value="${session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE' ?: org.springframework.web.servlet.support.RequestContextUtils.getLocale(request)}"/>

(忘了我发现的地方)..但是之后没有任何改变。

1 个答案:

答案 0 :(得分:1)

显然这是a bug in grails versions prior to 2.4.4

我通过检索有问题的gsp顶部的区域设置来解决它:

 <g:set var="lang" value="${session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE'}"/>

(来自this blog post),然后将区域设置添加到我想要在页面中显示的邮件中,使用a solution by @ SergeiShushkevich,如下所示:

<g:message code="text.label" locale="${lang}"/>
${message([code:'text.label', locale:lang])}