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