2011-01-04 18 views
49

Ho il mio locale predefinito impostato nello environment.rb come de (tedesco).Rails: Come rendere noto a strftime le impostazioni locali predefinite?

Vedo anche tutti i messaggi di errore in tedesco, quindi le impostazioni internazionali vengono rilevate dal server. Ma quando provo ad oggi di stampa con strftime come segue:

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

Esso stampa in lingua inglese (January, 11), e non il aspettavo tedesco (Januar, 11).

Come posso stampare la data in base alle impostazioni locali predefinite?

risposta

85

Utilizzare il l (alias per localize) Metodo invece di strftime cruda, in questo modo:

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

Vedi here per ulteriori informazioni, la speranza che aiuta.

+0

Come stampare la data in formato con localizzare? Accetta qualsiasi stringa di formattazione come '% B,% y'? – rangalo

+20

L'ho capito: I18n.localize (some_date,: format => '% B,% y' Grazie – rangalo

+0

Dovrai assicurarti di avere questo gioiello installato: https://github.com/svenfuchs/rails- i18n In questo modo puoi avere diverse impostazioni locali e chiamare il loro 'format: short' o qualsiasi cosa tu voglia fare riferimento Guarda qui per esempi sui riferimenti: https://github.com/svenfuchs/rails-i18n/blob/master/ rails/locale/it.yml – bcackerman

28

si può anche renderlo più breve:

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

In es.yml put:

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

a Put index.html.erb:

<%= l somemodel.datefield %> 
Problemi correlati