Label I18n
Publicado por Bruno Siqueira em 19 maio, 2009
Deve fazer uns quatro meses que migrei os meus sistemas para o Rails 2.2.2. Antes eu utlilizava o 2.1.1. E confesso que sentia muita falta de um sistema de internacionalização. Todos os meus models e seus atributos são nomeados em inglês, o que deixava as mensagens de erro horríveis. Até que finalmente surgiu a internacionalização pra salvar o dia. As mensagens de erro ficaram muito melhores. Mas percebi que nos meus formulários gerados pelo scaffold generator continuavam com os labels em inglês. Quando fui olhar o código, percebi que o label não consultava a internacionalização, só “humaniza” a palavra.
Criei então uma classe bem simples no lib chamada label_i18n.rb com o seguinte código:
module ActionView
module Helpers
module FormHelper
alias_method
ld_label, :label
def label(object_name, method, text = nil, options = {})
text ||= I18n.t("activerecord.attributes.#{object_name}.#{method}")
old_label object_name, method, text, options
end
end
end
end
O que eu faço é extender o método label, puxando o termo correto da internacionalização, caso não tenho um texto já definido.
Espero que ajude!