2011-01-04 15 views
49

Varsayılan yerel ayarımı environment.rb'da de (Almanca) olarak ayarlamıyorum.Raylar: Tarih strftime'ın varsayılan yerel ayarın farkında olması nasıl yapılır?

Ayrıca tüm hata iletilerini Almanca olarak görüyorum, bu nedenle yerel ayar sunucu tarafından algılanır. Ama şu gibi strftime ile baskı tarihinden çalıştığınızda: Bu İngilizce (January, 11) 'de yazdırır

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

ve (Januar, 11) Alman beklenmemektedir.

Tarihi varsayılan yerel ayara göre nasıl yazdırabilirim? Böyle

cevap

85

Kullanım l (localize için takma ad) yerine çiğ strftime'a yöntem:

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

daha fazla bilgi yardımcı olur umut here bakınız.

+0

Nasıl tarihini yazdırmak için biçiminde yerelleştirilsin mi? '% B,% y' gibi herhangi bir biçimlendirme dizgisini kabul ediyor mu? – rangalo

+20

Bunu çözdüm: I18n.localize (some_date,: format => '% B,% y' Teşekkürler – rangalo

+0

Bu gemin yüklü olduğundan emin olmak istersiniz: https://github.com/svenfuchs/rails- i18n Böylelikle farklı yerel ayarlara sahip olabilirsiniz ve "format: short" veya referans almak istediğiniz her şeyi arayabilirsiniz. Referanslara örnekler için buraya bakınız: https://github.com/svenfuchs/rails-i18n/blob/master/ rails/locale/en.yml – bcackerman

28

da daha kısa yapabilir:

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

es.yml koymak ise:

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

index.html.erb koymak ise:

<%= l somemodel.datefield %> 
İlgili konular