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