2012-03-13 42 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

回答