2012-03-13 43 views
4

我希望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)表明這不是一個問題。

所以(咆哮)爲什麼不應該所有的應用程序都遵守默認的語言環境,而且還沒有在地球表面用lt助手來包裝每一個日期?

通過在初始化程序中更改我的應用程序的默認日期和時間格式,我會對自己或他人造成永久性傷害嗎?

+0

我有同樣的問題。幾個意見,你做了什麼,但: – Nick 2012-04-12 14:12:59

+0

我有同樣的問題。我不認爲i18n gem在使用rails 3.2時是必需的,我相信它是烘烤的。我的en.yml如下所示:en: date: formats: #使用strftime參數格式。 #當沒有給出格式時,它使用默認值。 #如果你喜歡,你可以在這裏提供其他格式! 默認:「%m /%d /%Y」 美國:「%m /%d /%Y」 – Nick 2012-04-12 14:22:44

+0

hm是啊 - 它看起來不適用默認本地化,除非您告訴它本地化.. 。 – Nick 2012-04-12 14:30:40

回答