1

假设我们有以下代码行:

<p>    <g:message code="nav.usuario.show"  />    </p>

如果我们使用的是意大利计算机,Grails 将messages_it.properties首先查看。如果 grails 在nav.usuario.show=textLabel那里找不到,将尝试在messages.properties. 我想更改此行为以查看 message_es.properties 默认值 messages.properties(但前提是标签不在当前语言环境中

我尝试了以下代码,但没有看到任何变化。resources.groovy

beans = {   
    localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
        defaultLocale = new Locale("it","")
        java.util.Locale.setDefault(defaultLocale)
    }   
}
4

3 回答 3

5

只需将默认情况下所需语言的代码(例如messages_es.properties)复制到默认messages.properties文件即可。

如果要保留英语,则必须创建一个名称为messages_en.properties. 移动messages.properties那里的代码。

于 2013-09-04T22:25:01.210 回答
0
beans = {   
    localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver)   
}

然后设置一个过滤器以根据请求更改默认语言环境。

//Filter
class LocaleFilters {
    def localeResolver

    def filters = {
        localize(controller: '*') {
            before = {
                 Locale.setDefault(localeResolver.resolveLocale(request))
                 return true
            }
        }
    }
}

如果本地上下文是Spanish,则默认设置为_es,依此类推,其他语言环境基于访问应用程序的语言环境。

于 2013-09-04T15:36:07.073 回答
0

如果您想修复语言环境,请将以下几行放入您的 init 闭包中BootStrap.groovy

TimeZone.setDefault(TimeZone.getTimeZone("CET"))
Locale.setDefault(new Locale("it"));

或者

Locale.setDefault(new Locale("es"));
于 2013-09-04T15:14:31.420 回答