
O Rails é genial, pena que tudo é em inglês. Mas eu queria o que? Tudo na minha língua, de forma perfeita? É claro que sim.
Isto é possível. Existe um projeto open source para deixar todos os retornos padrões do rails em português, e mais alguns bônus…
Falo sobre isto outro dia. Hoje vou apenas postar um trechinho de código para ajudar quem tem o trabalho de traduzir tudo no Rails.
Crie um arquivo .rb na pasta lib e cole o código abaixo: [source:ruby]module ActionView module Helpers
module DateHelper
def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
from_time = from_time.to_time if from_time.respond_to?(:to_time)
to_time = to_time.to_time if to_time.respond_to?(:to_time)
distance_in_minutes = (((to_time - from_time).abs)/60).round
distance_in_seconds = ((to_time - from_time).abs).round
case distance_in_minutes
when 0..1
return (distance_in_minutes == 0) ? 'menos de um minuto' : '1 minuto' unless include_seconds
case distance_in_seconds
when 0..4 then 'menos de 5 segundos'
when 5..9 then 'menos de 10 segundos'
when 10..19 then 'menos de 20 segundos'
when 20..39 then 'meio minuto'
when 40..59 then 'menos de um minuto'
else '1 minuto'
end
when 2..44 then "#{distance_in_minutes} minutos"
when 45..89 then '1 hora'
when 90..1439 then "#{(distance_in_minutes.to_f / 60.0).round} horas"
when 1440..2879 then '1 dia'
when 2880..43199 then "#{(distance_in_minutes / 1440).round} dias"
when 43200..86399 then '1 mês'
when 86400..525959 then "#{(distance_in_minutes / 43200).round} meses"
when 525960..1051919 then '1 ano'
else "mais de #{(distance_in_minutes / 525960).round} anos"
end
end
end
end end[/source] Acrecente a seguinte linha no fim do arquivo environment.rb: [source:ruby]require “nome_do_arquivo_criado_acima”[/source] Agora basta colocar a chamada para o método distance_of_time_in_words passando a data desejada. Pronto agora você já tem datas amigáveis em português, usando o Rails e sem precisar alterar nada no seu código pronto.