使用abbr_month_names(和similars)和I18n.l()

我正在转向轨道,有时候有点奇怪。 安装es.yml文件后,我试图输出我的数据库的DATETIME列。 如果我这样做:

= l(a.created_at, :format => :short) 

没关系。 它以西class牙语格式打印出一个漂亮的日期。 但我对以这种方式使用abbr_month_names感到困惑。 我已经尝试了很多不同的方式 – 相信我,我在这个问题上大约需要四个小时 – 但我还没有找到一种方法来输出短篇小说中的月份名称“OCT。

我看了很多关于i18n和日期格式的网站,但文章总是以:format =>:short示例结束,并不关心其他显示日期的方法(好吧,有人还解释了如何使用:long格式…)

来自德语de.yml语言环境的片段:

 de: date: abbr_month_names: - - Jan - Feb - Mär 

您可以通过Rails的translate函数直接访问语言环境:

 I18n.t :abbr_month_names, :scope => :date // returns ['', 'Jan', 'Feb', 'Mär'] 

因为abbr_month_names包含多个条目(以连字符开头),所以它将返回一个数组。 例如,您可以通过以下方式获取当前缩写的月份:

 (I18n.t :abbr_month_names, :scope => :date)[Time.now.month] 

您可以使用a.created_at.strftime('%b')此链接显示所有可能的日期时间部分:

http://www.ruby-doc.org/core-1.9.3/Time.html#method-i-strftime

在您的YAML文件中输入:

 es: time: formats: abbr_month: "%b" 

然后在你的视图中你应该能够使用这个:

 = l(a.created_at, :format => :abbr_month) 

摘自此处: http : //guides.rubyonrails.org/i18n.html#adding-date-time-formats