MouseOver Studio

MouseOver Studio header image 2

Rocking mit i18n em Rails en 4 pasos

July 24th, 2008 por Diego Carrion · 6 comentários

Comecei um projeto em Rails no começo da semana e a internacionalização em Rails caiu do céu. Como tenho que avançar com o projeto e não tenho muito tempo, vai sem muito papinho :D:

0. Atualizar o Rails para a versão Edge

Na pasta raiz do nosso projeto executamos:

rake rails:freeze:edge

No meu caso o comando anterior não baixo o Rails com a compatibilidade a i18n pelo que executei o comando git clone git://github.com/rails/rails.git na pasta tmp e depois copiei a pasta rails para a pasta vendor do meu projeto.

1. Criar arquivos de mensagens

Na pasta config/locales criamos nossos arquivos de mensagens, por exemplo pt-BR.rb :

{
  :'pt-BR' => {
    :hi => "Oi",
    :my_name_is_who => "Chik chik chick Slim Shady"
  }
}

2. Carregar arquivos de mensagens na inicialização do servidor

No arquivo config/environment.rb carregamos os arquivos para os diferentes locales adicionando o seguinte código no bloco do método Rails::Initializer.run:

I18n.load_path = Dir.glob("config/locales/*")

3. Selecionar o locale em cada requisição

Nesse passo podemos utilizar um filtro:

class ApplicationController < ActionController::Base
  before_filter :localizate
  def localizate
    I18n.locale = params[:locale] || 'pt-BR'
  end
end

4. Traduzir

Na nossas views chamamos o método t do módulo I18n com a chave da frase/palavra desejada:

<p>Oi <%= I18n.t :my_name_is_who %></p>

Tags: i18n · rails

6 respostas ate agora ↓

  • 1 Nome do Jogo » Artigo » Como funcionar // Jul 24, 2008 at 10:46 am

    […] encontrei este artigo escrito pelo Diego Carrion que explica um pouco sobre como colocar o translate para funcionar, e […]

  • 2 Wagner Andrade // Jul 30, 2008 at 11:59 am

    Bah, bem barbada.

  • 3 Diego Carrion // Jul 30, 2008 at 1:05 pm

    Hahaha ainda bem ne Wagner (:

  • 4 Rails i18n, populate agora é load_path // Oct 12, 2008 at 2:58 am

    […] Julho escrevi um post descrevendo como trabalhar com o novo suporte a i18n do Rails. Na oportunidade mencionei que […]

  • 5 Jairo Luiz // Oct 21, 2008 at 6:49 pm

    Cara, estava procurando como fazer isso…
    valew pela dica.

  • 6 André Moreira // Sep 13, 2009 at 9:54 pm

    Valeu pela dica!

Deixar um comentário