[Ror-es] Localizacion de fechas
Felipe Talavera Armero
Thu Feb 2 17:52:27 GMT 2006
Holas,
Yo hace poco me vi en tu situacion y estuve barajando algunas de las
posibildiades que has comentado, pero al final decidi que lo mejor para
mi caso era tirar de helper globales, por lo que me implemente las
versiones castellanas de algunos helper, te las pasteo.
Estos helper yo lo uso de manera global a la aplicacion, en
app/helper/application.rb
module ApplicationHelper
def distancia_post_en_palabras(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 un minuto' : '1
minuto' unless include_seconds
case distance_in_seconds
when 0..5 then 'menos de 5 segundos'
when 6..10 then 'menos de 10 segundos'
when 11..20 then 'menos de 20 segundos'
when 21..40 then 'medio minuto'
when 41..59 then 'menos de un minuto'
else '1 minuto'
end
when 2..45 then "#{distance_in_minutes} minutos"
when 46..90 then 'sobre una hora'
when 90..1440 then "sobre #{(distance_in_minutes.to_f /
60.0).round} horas"
when 1441..2880 then '1 dia'
else "#{(distance_in_minutes / 1440).round}
dias"
end
end
def precio(precio)
if precio==0
then 'A negociar'
else
precio=number_to_currency(precio,{:unit=> "", :separator =>
",", :delimiter => ".", :precision => 0 })
"#{precio} €"
end
end
def mensaje_error(object_name, options = {})
options = options.symbolize_keys
object = instance_variable_get("@#{object_name}")
unless object.errors.empty?
content_tag("div",
content_tag(
options[:header_tag] || "h2",
"Hay #{pluralize(object.errors.count, "campo")} que no
han sido completados debidamente."
) +
content_tag("p"," Hay problemas con los siguientes
campos:") +
content_tag("ul", object.errors.full_messages.collect { |
msg| content_tag("li", msg) }),
"id" => options[:id] || "errorExplanation", "class" =>
options[:class] || "errorExplanation"
)
end
end
end
El de mensaje de error lo que te modifica es la parte del cuadro que
salia en ingles diciendo cuantos errores ha habido y para modificar los
mensajes en funcion de lo que no han rellenado yo uso el
atributo :message de los validadores de los model como
validates_numericality_of :precio, :message=> "debe ser un numero."
Espero te sean de utilidad.
Un saludo
Felipe Talavera
http://n2kp3.com/blog
El jue, 02-02-2006 a las 09:47 -0600, rene escribió:
> Hola, saludos railistas, soy nuevo por aca pero estoy muy contento de
> que hay una lista para hablantes de espanol.
>
> Mis aplicaciones no demandan en estos momentos la capacidad de
> internacionalizacion, sin embargo al ser rails tan centrado en una
> base de usuarios anglos pues hay ciertas cosas que tiene uno que
> arreglar por su cuenta.
>
>
> Lo primero eran los mensajes de error para los campos con validacion.
> No habia forma de editar los mensajes, trate hasta de buscar los
> strings en la source pero eso habria sido malo. Encontre un plugin
> que me ha ayudado a ese respecto:
> http://www.railtie.net/articles/2006/01/26/enhancing_rails_errors que
> esta hecho por BobSilva y su plugin no esta pensada para eso pero se
> lo hare saber cuando le vea en #rubyonrails
>
>
> Lo segundo es un poco mas complicado y es localizar las funciones de
> fechas que te da por ejemplo date_select, las monedas y el
> time_ago_from_words, Se que globalize puede hacer esto, pero
> globalize parece ser demasiado para los requerimentos que tengo,
> aunque alguien que ya lo haya usado de esta manera pudiera
> corregirme, lo que seria bueno... Tal vez haya otras formas, Estoy
> consciente de que podria hacer arrays con meses y dias y hacer mis
> formatos de fecha yo mismo,. pero bueno DRY verdad?
>
> Saludos
> Rene Mendoza
> _______________________________________________
> Ror-es mailing list
>
>