internacionalização para pt-br no rails 3

951 views
Skip to first unread message

Carlos Eduardo Rodrigues Diógenes

unread,
Jan 21, 2012, 4:54:40 PM1/21/12
to rail...@googlegroups.com
Olá pessoal,

Procurei bastante a respeito, mas não encontrei muita coisa. Encontrei uma tradução em (https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/pt-BR.yml), porém ainda existem muitas coisas que ficam em inglês. Encontrei também o projeto https://github.com/tapajos/brazilian-rails, mas não consegui ver diferença utilizando ele ou não. Talvez fiz alguma coisa errada na configuração, mas ainda não entendi o que pode ser.

Sendo assim, gostaria de saber o que o pessoal tem utilizado para deixar seus projetos em rails traduzidos para o pt-br?

Abraços!
Carlos Eduardo Rodrigues Diógenes
http://cerdiogenes.blogspot.com

Everaldo Gomes

unread,
Jan 21, 2012, 6:09:26 PM1/21/12
to rail...@googlegroups.com
Oi!

Coloque o arquivo em config/locales

e no arquivo config/application.rb descomente as seguintes linhas

    # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
    config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
    config.i18n.default_locale = :"pt-BR"

perceba que eu troquei para :"pt-BR".

Reinicie o servidor.

2012/1/21 Carlos Eduardo Rodrigues Diógenes <cerdi...@gmail.com>
--
Você está recebendo esta mensagem porque se inscreveu no grupo "rails-br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para rail...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para rails-br+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/rails-br?hl=pt-BR.

Carlos Eduardo Rodrigues Diógenes

unread,
Jan 21, 2012, 6:44:03 PM1/21/12
to rail...@googlegroups.com
Olá Everaldo!

Esta foi uma das coisas que eu fiz. A traduação peguei daqui: https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/pt-BR.yml

Porém, olha só o que acontece nos meus testes:
Failure/Error: @corrida = Factory(:gp_australia_2012)
     ActiveRecord::RecordInvalid:
       translation missing: pt-BR.activerecord.errors.messages.record_invalid
     # ./spec/factories.rb:72:in `block (2 levels) in <top (required)>'
     # ./spec/controllers/corridas_controller_spec.rb:5:in `block (2 levels) in <top (required)>'

Pelo que pude perceber existe muita coisa acontecendo nesta área de internacionalização. Gostaria de contribuir, mas por enquanto achei as informações confusas. Tenho outras coisas para me preocupar na apliação que estou desenvolvendo, mas assim que tiver terminando uns casos de uso vou voltar a esse assunto. Se algúem tiver mais algum projeto de internacionalização pra sugerir é bem vindo!


Abraços!
Carlos Eduardo Rodrigues Diógenes
http://cerdiogenes.blogspot.com


Everaldo Gomes

unread,
Jan 21, 2012, 6:52:08 PM1/21/12
to rail...@googlegroups.com
Olá Carlos Eduardo!

Não sei o que pode ser então. :(

Já viu o guia. Talvez lá tenha alguma dica:

Ernane Sena

unread,
Jan 21, 2012, 9:16:53 PM1/21/12
to rail...@googlegroups.com
Bom Carlos eu uso dessa seguinte forma:

no arquivo application.rb

# The default locale is :en and all translations from
config/locales/*.rb,yml are auto loaded.

config.i18n.load_path += Dir[Rails.root.join('config', 'locales',
'**', '*.{rb,yml}').to_s]
config.i18n.default_locale = "pt-BR"
...

Desta forma o rails procura por arquivos yml e o " '**' " serve pra
procurar os arquivos dentro das pastas localizadas em locales.
Assim eu posso fazer o seguinte, dentro da pasta locale eu crio duas
pastas ou quantas línguas eu queira disponibilizar a minha app, no meu
caso crio as pastas:
en
pt-BR

e dentro delas eu vou colocando os meus arquivos de traduções e
organizo de acordo com as funcionalidades, por exemplo:

tenho os arquivos dentro das pastas

application.yml
devise.pt-BR.yml
rails.yml
simple_form.yml

o nome ja deixa claro qual a tradução que cada arquivo vai fazer.
O arquivo application traduz coisas referente a minha aplicação como
títulos de paginas, modelos Lins etc...
ele fica mais ou menos assim:

pt-BR":
empty: "Não temos nenhum %{model} ainda."
confirm: Tem certeza?
edit: Editar

questions:
index:
title: "Perguntas"
new:
title: "Novo"

activerecord:
models:
user:
one: Usuário
other: Usuários

attributes:
user:
email: 'E-mail'
password: 'Senha'
remember_me: 'Continuar Logado'

um exemplo de uso desses arquivos nas views fica assim:

arquivo index.html.erb do meu controlador questions

<% title t('.title') %>

Espero ter ajudado

Em 21 de janeiro de 2012 20:52, Everaldo Gomes
<everald...@gmail.com> escreveu:

Carlos Eduardo Rodrigues Diógenes

unread,
Jan 22, 2012, 7:47:23 AM1/22/12
to rail...@googlegroups.com
Olá Ernane,

Gostei desta sua abordagem. Porém, ainda não consegui localizar onde estão as mensagens utilizadas pelo core da linguagem, por exemplo, as mensagens de erro do ActiveRecord. Você sabe onde encontro tais frases e como traduzo?


Abraços!
Carlos Eduardo Rodrigues Diógenes
http://cerdiogenes.blogspot.com


Ernane Sena

unread,
Jan 22, 2012, 9:10:42 AM1/22/12
to rail...@googlegroups.com
Bom sendo mais claro, quando você cria uma app nova automaticamente
vem um arquivo de locale chamado en.yml nele tem um comentário assim:

https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale

voce acessando essa url, ira para uma serie de traduções do rails
para vários países e la encontra-se a do brasil que eh pt-BR.yml.
Repare que esse arquivo tem varias traduções comuns como datas, erros,
numeros etc..
quando voce collocar o rails pra a lingua pt-BR automaticamente ele
vai ler esse arquivo e onde ele puder traduzir coisas comuns ele vai
traduzir por exemplo mensagem de validações do Active Record.

Espero ter resolvido a duvida


Em 22 de janeiro de 2012 09:47, Carlos Eduardo Rodrigues Diógenes
<cerdi...@gmail.com> escreveu:

Reply all
Reply to author
Forward
0 new messages