Rails y fechas en español


#1

En Rails, date_select por defecto te muestra las cadenas
correspondientes a los meses en Inglés. El caso es que he añadido a mi
aplicación el plugin simplified_localization, en concreto la última
versión 0.9

Cuando lo utilizo con el siguiente código:

<%= f.label :fecha %><br><br/>

<%= f.date_select :fecha %>

Obtengo el siguiente error:

wrong number of arguments (4 for 3)

Extracted source (around line #19):

16:
17:


18: <%= f.label :fecha %>


19: <%= f.date_select :fecha %>
20:


21:
22:

Evidentemente, si no uso el plugin, funciona correctamente. Estoy en
Rails 2.1.1 y supongo que habrá algún pufo respecto a esta versión de
Rails y el plugin.

¿Cómo pasáis por defecto al castellano, todo este tipo de cosas en
vuestras aplicaciones? He encontrado diversos links, en los que se hace
override de las clases, pero también me ha dado error en esta versión.

Saludos

Fernando González Macías

removed_email_address@domain.invalid


#2

yo lo que tengo es esto en environment.rbrequire ‘date’

class Date
MONTHNAMES = [nil] + %w(Enero Febrero Marzo Abril Mayo Junio Julio
Agosto
Septiembre Octubre Noviembre Diciembre)
DAYNAMES = %w(Domingo, Lunes, Martes, Miercoles, Jueves, Viernes,
Sabado)
module Format
MONTHS = {
‘Enero’ => 1, ‘Febrero’ => 2, ‘Marzo’ => 3, ‘Abril’ => 4,
‘Mayo’ => 5, ‘Junio’ => 6, ‘Julio’ => 7, ‘Agosto’
=> 8,
‘Septiembre’=> 9, ‘Octubre’ =>10, ‘Noviembre’ =>11, ‘Diciembre’
=>12
}

DAYS = {
  'Domingo'   => 0, 'Lunes'   => 1, 'Martes'  => 2, 'Miercoles'=> 3,
  'Jueves' => 4, 'Viernes'   => 5, 'Sabado' => 6
}

end

end

class Time
alias :strftime_nolocale :strftime

def strftime(format)
format = format.dup
format.gsub!(/%a/, Date::ABBR_DAYNAMES[self.wday])
format.gsub!(/%A/, Date::DAYNAMES[self.wday])
format.gsub!(/%b/, Date::ABBR_MONTHNAMES[self.mon])
format.gsub!(/%B/, Date::MONTHNAMES[self.mon])
self.strftime_nolocale(format)
end
end

y me funciona bien. respecto a tu error mm pues no haz probado ir a los
rb y
ver quien esta dando ese parametro de mas y porque.
sigue el trace completo de la excepcion y revisa los rb del plugin a
ver
que anda haciendo si estas usando la gema y no los rb directos en lib
pues
ve a las carpetas de ruby donde estan las gemas y por ahi debe estar el
codigo para que le heches un vistaso.

El 30 de octubre de 2008 7:43, Fernando González Macías <
removed_email_address@domain.invalid> escribió:


#3

Ok, gracias.

La solución que tú utilizas, me funciona, aunque me salen unos mensajes
de Warnings al arrancar la aplicación.

C:\Rails\pdfaccess>ruby script/server

=> Booting WEBrick…

C:/Rails/pdfaccess/config/environment.rb:14: warning: already
initialized consta

nt MONTHNAMES

C:/Rails/pdfaccess/config/environment.rb:15: warning: already
initialized consta

nt DAYNAMES

C:/Rails/pdfaccess/config/environment.rb:20: warning: already
initialized consta

nt MONTHS

C:/Rails/pdfaccess/config/environment.rb:26: warning: already
initialized consta

nt DAYS

=> Rails 2.1.1 application started on http://0.0.0.0:3000

=> Ctrl-C to shutdown server; call with --help for options

[2008-10-30 17:39:43] INFO WEBrick 1.3.1

[2008-10-30 17:39:43] INFO ruby 1.8.6 (2007-03-13) [i386-mswin32]

[2008-10-30 17:39:43] INFO WEBrick::HTTPServer#start: pid=2932
port=3000

De todas formas me gustaría saber si esta es la opción predeterminada
por el resto de programadores o bien utilizáis alguna otra cosa.

Saludos

Fernando González Macías

fgonzalez @ grupojoly.com


De: removed_email_address@domain.invalid
[mailto:removed_email_address@domain.invalid] En nombre de Omar J.
Enviado el: jueves, 30 de octubre de 2008 17:31
Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
Asunto: Re: [Ror-es] Rails y fechas en español

yo lo que tengo es esto en environment.rb

require ‘date’

class Date

MONTHNAMES = [nil] + %w(Enero Febrero Marzo Abril Mayo Junio Julio
Agosto Septiembre Octubre Noviembre Diciembre)

DAYNAMES = %w(Domingo, Lunes, Martes, Miercoles, Jueves, Viernes,
Sabado)

module Format

MONTHS = {

  'Enero'  => 1, 'Febrero' => 2, 'Marzo'    => 3, 'Abril'    => 4,

  'Mayo'      => 5, 'Junio'     => 6, 'Julio'     => 7, 'Agosto' 

=> 8,

  'Septiembre'=> 9, 'Octubre'  =>10, 'Noviembre' =>11, 'Diciembre' 

=>12

}



DAYS = {

  'Domingo'   => 0, 'Lunes'   => 1, 'Martes'  => 2, 'Miercoles'=> 3,

  'Jueves' => 4, 'Viernes'   => 5, 'Sabado' => 6

}

end

end

class Time

alias :strftime_nolocale :strftime

def strftime(format)

format = format.dup

format.gsub!(/%a/, Date::ABBR_DAYNAMES[self.wday])

format.gsub!(/%A/, Date::DAYNAMES[self.wday])

format.gsub!(/%b/, Date::ABBR_MONTHNAMES[self.mon])

format.gsub!(/%B/, Date::MONTHNAMES[self.mon])

self.strftime_nolocale(format)

end

end

y me funciona bien. respecto a tu error mm pues no haz probado ir a los
rb y ver quien esta dando ese parametro de mas y porque.

sigue el trace completo de la excepcion y revisa los rb del plugin a
ver que anda haciendo si estas usando la gema y no los rb directos en
lib pues ve a las carpetas de ruby donde estan las gemas y por ahi debe
estar el codigo para que le heches un vistaso.

El 30 de octubre de 2008 7:43, Fernando González Macías
removed_email_address@domain.invalid escribió:

En Rails, date_select por defecto te muestra las cadenas
correspondientes a los meses en Inglés. El caso es que he añadido a mi
aplicación el plugin simplified_localization, en concreto la última
versión 0.9

Cuando lo utilizo con el siguiente código:

<%= f.label :fecha %><br><br/>

<%= f.date_select :fecha %>

Obtengo el siguiente error:

wrong number of arguments (4 for 3)

Extracted source (around line #19):

16:
17:


18: <%= f.label :fecha %>

19: <%= f.date_select :fecha %>
20:


21:
22:

Evidentemente, si no uso el plugin, funciona correctamente. Estoy en
Rails 2.1.1 y supongo que habrá algún pufo respecto a esta versión de
Rails y el plugin.

¿Cómo pasáis por defecto al castellano, todo este tipo de cosas en
vuestras aplicaciones? He encontrado diversos links, en los que se hace
override de las clases, pero también me ha dado error en esta versión.

Saludos

Fernando González Macías

removed_email_address@domain.invalid


#4

2008/10/30 Omar J. removed_email_address@domain.invalid:

yo lo que tengo es esto en environment.rb

Yo probé con algo parecido hace tiempo, pero al final hay otras cosas
que te da el framework (como el distance_of_time_in_words) que
tambiénmola tener traducidas.

Para esto mismo hay un plugin, l10n_simplified [1] que está bastante
bien, aunque no estoy seguro de que funcione en versiones actuales de
Rails, puedes probar. En caso de que no te funcione puedes echarle un
vistazo al código, es muy asequible [2].

[1] http://rubyforge.org/frs/?group_id=2074
[2]
http://l10n-simplified.rubyforge.org/svn/lib/localization_simplified.rb


#5

Hola David.

Este es el que he comentado en un primer correo, que he probado y que me
ha fallado en un data_select con Rails 2.1.1

Estoy empezando, así que tengo que ir a lo seguro… ;–))))

Gracias…

Fernando González Macías
fgonzalez @ grupojoly.com

-----Mensaje original-----
De: removed_email_address@domain.invalid
[mailto:removed_email_address@domain.invalid] En nombre de David A.
Enviado el: jueves, 30 de octubre de 2008 18:18
Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
Asunto: Re: [Ror-es] Rails y fechas en
español
2008/10/30 Omar J. removed_email_address@domain.invalid:

yo lo que tengo es esto en environment.rb

Yo probé con algo parecido hace tiempo, pero al final hay otras cosas
que te da el framework (como el distance_of_time_in_words) que
tambiénmola tener traducidas.

Para esto mismo hay un plugin, l10n_simplified [1] que está bastante
bien, aunque no estoy seguro de que funcione en versiones actuales de
Rails, puedes probar. En caso de que no te funcione puedes echarle un
vistazo al código, es muy asequible [2].

[1] http://rubyforge.org/frs/?group_id=2074
[2]
http://l10n-simplified.rubyforge.org/svn/lib/localization_simplified.rb


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es