我希望Rails(3.2)使用美國日期格式03/14/2012除非我另有說明。Rails i18n.default_locale和日期格式...似乎沒有像默認
我已經安裝了的I18n寶石,下載(和修改)的config/locales/en-US.yml
文件有默認的格式爲default: ! '%m/%d/%Y'
,設置我的application.rb
默認區域設置爲config.i18n.default_locale = "en-US"
,並重新啓動。
當顯示日期(例如簡單視圖)時,它們的格式仍爲2012-03-14。如果我使用I18n.l
方法,則會根據需要顯示日期,03/14/2012。所以本地化正在通過I18n課程。
我想我期待的是「默認」的含義是,「如果您不以其他方式告知本地化或翻譯,請使用」。顯然我預計錯了:-)
因此,進一步挖掘顯示我可以在初始化程序中更改日期和時間的默認值,例如config/initializers/date_formats.rb
,例如,
Date::DATE_FORMATS[:default]="%m/%d/%Y"
Time::DATE_FORMATS[:default]="%m/%d/%Y %H:%M"
這似乎是做我想做的。幾個令人震驚的帖子表明,這將搞砸日期如何存儲在數據庫中,但我的測試(使用PostgreSQL)表明這不是一個問題。
所以(咆哮)爲什麼不應該所有的應用程序都遵守默認的語言環境,而且還沒有在地球表面用l
和t
助手來包裝每一個日期?
通過在初始化程序中更改我的應用程序的默認日期和時間格式,我會對自己或他人造成永久性傷害嗎?
我有同樣的問題。幾個意見,你做了什麼,但: – Nick 2012-04-12 14:12:59
我有同樣的問題。我不認爲i18n gem在使用rails 3.2時是必需的,我相信它是烘烤的。我的en.yml如下所示:en: date: formats: #使用strftime參數格式。 #當沒有給出格式時,它使用默認值。 #如果你喜歡,你可以在這裏提供其他格式! 默認:「%m /%d /%Y」 美國:「%m /%d /%Y」 – Nick 2012-04-12 14:22:44
hm是啊 - 它看起來不適用默認本地化,除非您告訴它本地化.. 。 – Nick 2012-04-12 14:30:40