如何更改默认的message.properties

时间:2013-09-04 15:08:32

标签: grails internationalization

我们说我们有以下代码行:

<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)
    }   
}

3 个答案:

答案 0 :(得分:4)

只需将默认语言的代码(例如messages_es.properties)复制到默认的messages.properties文件中。

如果您想保留英语,则必须创建一个名为messages_en.properties的新文件。将messages.properties的代码移到那里。

答案 1 :(得分:0)

如果要修复区域设置,请将以下几行放入BootStrap.groovy的初始化闭包中:

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

Locale.setDefault(new Locale("es"));

答案 2 :(得分: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,因此基于访问应用程序的区域设置,其他语言环境也是如此。