我的默认语言环境设置在environment.rb
中,设为德语(de
)。
我也看到所有的错误消息都是用德语显示的,因此服务器已经选取了这个语言环境。但是当我尝试使用strftime
打印日期时,出现了以下问题:
some_date.strftime('%B, %y')
它打印出英文日期(January, 11
),而非预期的德文日期(Januar, 11
)。
如何根据默认语言环境打印日期?
我的默认语言环境设置在environment.rb
中,设为德语(de
)。
我也看到所有的错误消息都是用德语显示的,因此服务器已经选取了这个语言环境。但是当我尝试使用strftime
打印日期时,出现了以下问题:
some_date.strftime('%B, %y')
它打印出英文日期(January, 11
),而非预期的德文日期(Januar, 11
)。
如何根据默认语言环境打印日期?
使用l
方法(别名为localize
)代替原始的strftime方法,像这样:
l(date, format: '%B %d, in the year %Y')
更多信息请点击此处。
您还可以定义“命名”格式,其中一些格式(short
、long
)已预定义。
您还可以让它更短:
l(some_date, :format => '%d %B %Y')
es:
date:
formats:
default: "%d / %m / %Y"
在 index.html.erb 文件中添加如下内容:<%= l somemodel.datefield %>
time
而不是 date
吗?实际上这取决于传递的对象的类。 - Capripot
format: short
或其他你想要引用的内容。在这里查看有关引用的示例:https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en.yml。 - bcackermanl @item.created_at, :format => "%b %e, %Y", :locale => 'en'
- bcackerman