Rails I18n локаль установить формат даты в Rails - PullRequest
1 голос
/ 05 июня 2011

Мое окружение: rails => 3.0.6, ruby ​​=> 1.9.2 Я установил итальянский язык.Фактически, внутри консоли

I18n.locale # =>: it

Мой файл локали работает нормально, но я не могу сделать так, чтобы мои даты отображались правильно.Напримерв моей консоли

Date.current => Вс, 05 июня 2011

вместо

05 Giugno 2011

Но если я попробую другие методы, он вернет правильный переведенный результаттолько с датами.Почему?

Ответы [ 2 ]

4 голосов
/ 05 июня 2011
Date.current => Sun, 05 Jun 2011

Не будет запускать ваш код через localizer, вы должны использовать

I18n.localize(Date.current)
I18n.l(Date.current)

В Rails также есть вспомогательные методы, которые будут уважать локаль, но доступны только (как правило) в представлении, документация для этих жизней здесь: http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html

Вот краткая выдержка из сеанса IRB в приложении Rails 3.0.7 (у меня нет других доступных локалей)

ruby-1.9.2-p180 :001 > Date.current
 => Sun, 05 Jun 2011 
ruby-1.9.2-p180 :002 > I18n.locale
 => :en 
ruby-1.9.2-p180 :003 > I18n.l(Date.current)
 => "2011-06-05" 
ruby-1.9.2-p180 :004 > I18n.locale = :ru
 => :ru 
ruby-1.9.2-p180 :005 > I18n.l(Date.current)
 => I18n::MissingTranslationData: translation missing: ru.date.formats.default
2 голосов
/ 05 июня 2011

Попробуйте

I18n.localize(Date.today)

или в виде просто

l(Date.today)

Источник: http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

...