2011-01-04 18 views
49

Tengo mi configuración regional predeterminada establecida en environment.rb como de (alemán).Rieles: ¿Cómo hacer que Date strftime tenga en cuenta la configuración regional predeterminada?

También veo todos los mensajes de error en alemán, por lo que el servidor recoge la configuración regional. Pero cuando intento hasta la fecha de impresión con strftime como siguiente:

some_date.strftime('%B, %y') 

Imprime en Inglés (January, 11), y no esperaba Alemán (Januar, 11).

¿Cómo puedo imprimir la fecha de acuerdo con la configuración regional predeterminada?

Respuesta

85

Uso del l (alias para localize) método en lugar de strftime prima, así:

l(date, format: '%B %d, in the year %Y') 

Ver here para obtener más información, espero que ayude.

+0

cómo imprimir la fecha en formato con localizar? ¿Acepta cualquier cadena de formato como '% B,% y'? – rangalo

+20

Lo descubrí: I18n.localize (some_date,: format => '% B,% y' Gracias – rangalo

+0

Querrá asegurarse de tener esta joya instalada: https://github.com/svenfuchs/rails- i18n De esta forma puede tener diferentes locale's y llamar a su 'format: short' o lo que quiera referenciar. Mire aquí ejemplos de referencias: https://github.com/svenfuchs/rails-i18n/blob/master/ rails/locale/en.yml – bcackerman

28

también puede hacer que sea más corto:

l(some_date, :format => '%d %B %Y') 
8

En es.yml puesto:

es: 
    date: 
    formats: 
     default: "%d/%m/%Y" 

en Put index.html.erb:

<%= l somemodel.datefield %> 
Cuestiones relacionadas