Data i i18n a polskie nazwy miesiąca

Próbuję wyświetlić datę poniższymi sposabami:

date.strftime("%d %B %Y o %H:%M") date.to_formatted_s(:long)
Ale za każdym razem dostaję angielskie nazwy miesięcy. Plik pl.yml mam ściągnięty z GitHuba, wszystko ładnie z nim działa i żadnych błędów nie zwraca - więc z nim jest raczej okej.
Dlaczego więc wyświetla angielskie nazwy miesiąca zamiast polskich, jak to ma w pl.yml zapisane?

Zapomniałem o czymś?

[quote=Kayne]Próbuję wyświetlić datę poniższymi sposabami:

date.strftime("%d %B %Y o %H:%M") date.to_formatted_s(:long)
Ale za każdym razem dostaję angielskie nazwy miesięcy. Plik pl.yml mam ściągnięty z GitHuba, wszystko ładnie z nim działa i żadnych błędów nie zwraca - więc z nim jest raczej okej.
Dlaczego więc wyświetla angielskie nazwy miesiąca zamiast polskich, jak to ma w pl.yml zapisane?

Zapomniałem o czymś?[/quote]
Wydaje mi się że musisz użyć metody “localize” przy wyświetlaniu daty, oraz sprecyzować format daty w pliku pl.yml. Instrukcje znajdziesz w Rails Guides -> I18n.

A konkretnie tu: http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

To się nazywa szybka odpowiedź :slight_smile:

Dziwne, że wcześniej nie znalazłem tej metody. Faktycznie, załatwiła sprawę.

Dzięki :slight_smile:

I przydatna ciekawostka:

#application.rb
Date::DATE_FORMATS[:year_month] = Time::DATE_FORMATS[:year_month] = Proc.new do |date|
  date.strftime("#{I18n.t('date.month_names')[date.month]} %Y")
end
# somewhere.rb
date.to_s(:year_month) # to_s == to_formatted_s in Rails