Changing the default locale for your grails application

Thank god grails has a wonderful i18n native support. It’s great change all your application language just by setting one more parameter in the URL (lang). If you do not know this behaviour, check this out.

But sometimes you have to preset the default language because not all your applications will be in english, yap ? To make this you’ll have to set your localeResolver in your resources.groovy spring configuration file. just add this code to it. (note that my code is setting my language to brazilian portuguese – pt_BR)

//this is your resources.groovy file
//
beans = {
   localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
      defaultLocale = new Locale("pt","BR")
      java.util.Locale.setDefault(defaultLocale)
   }
}

6 Comments so far

  1. carlin on April 23rd, 2009

    That´s what I’m talking about!
    valeu sky, já vou testar

  2. Gustavo on May 5th, 2009

    Olá Lucas, é necessário realizar alguma outra configuração? Como você obter a mensagem localizada de uma validação por exemplo?

    Eu estou usando o seguinte código

    flash.message = aula.errors.allErrors.inject(”) { memo, erro ->
    memo += messageSource.getMessage(erro, Locale.getDefault()) + ” }

    mas as mensagens continuam vindo em inglês

  3. helder on July 31st, 2009

    Olá Lucas, eu mais uma vez.

    Esse default nao funciona pra todo request.
    Se o idioma do site estiver em ingles esse default só funciona
    para a primeira pagina.

    Queria um default na sessao.

    Se souber obrigado…

  4. lucastex on August 4th, 2009

    Desta maneira, ele assume como padrão, se vc jogar outro na URL, ele vai para a sessão :)

  5. Luis Otavio on April 3rd, 2010

    Valeu !!! Era exatamente o que estava procurando !

  6. Tuomas on February 2nd, 2011

    Thanks for showing grails locale setting. (After small corrections inot an old message_xx.properties it started to work.)

Leave a Reply

Web Analytics