2011-01-04 11 views
49

Mam domyślny zestaw ustawień narodowych w environment.rb jako de (niemiecki).Szyny: Jak ustawić Data strftime świadomą domyślnego ustawienia narodowego?

Widzę również wszystkie komunikaty o błędach w języku niemieckim, więc ustawienia regionalne są pobierane przez serwer. Ale gdy próbuję data wydruku z strftime jak następuje:

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

Drukuje w języku angielskim (January, 11), a nie oczekiwać, niemiecki (Januar, 11).

Jak wydrukować datę zgodnie z domyślnymi ustawieniami regionalnymi?

Odpowiedz

85

Użyj l (alias localize) Metoda zamiast surowego strftime, tak:

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

Zobacz here więcej informacji, nadziei, że pomaga.

+0

Jak wydrukować datę w formacie z lokalizacją? Czy akceptuje dowolny ciąg formatowania, taki jak "% B,% y"? – rangalo

+20

Wyjaśniłem: I18n.localize (some_date,: format => '% B,% y' Thanks – rangalo

+0

Będziesz chciał się upewnić, że masz zainstalowany ten klejnot: https://github.com/svenfuchs/rails- i18n W ten sposób możesz mieć różne ustawienia narodowe i nazwać ich 'format: short' lub coś, co chciałbyś odwołać. Zobacz tutaj przykłady na odnośnikach: https://github.com/svenfuchs/rails-i18n/blob/master/ rails/locale/en.yml – bcackerman

28

można również zrobić to krótsze:

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

W es.yml put:

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

W index.html.erb put:

<%= l somemodel.datefield %> 
Powiązane problemy