Rails:如何让Date strftime知道默认的语言环境?

ran*_*alo 59 ruby localization ruby-on-rails strftime rails-i18n

我将默认语言环境设置为environment.rbas de(德语).

我还看到德语中的所有错误消息,因此服务器会选择语言环境.但是当我尝试用strftime以下内容打印日期时:

some_date.strftime('%B, %y')
Run Code Online (Sandbox Code Playgroud)

它以英语(January, 11)打印,而不是预期的德语(Januar, 11).

如何根据默认区域设置打印日期?

Mil*_*ota 109

使用l(alias for localize)方法而不是raw strftime,如下所示:

l(date, format: '%B %d, in the year %Y')
Run Code Online (Sandbox Code Playgroud)

请参阅此处了解更多信息,希望有所帮助.

  • 我想通了:I18n.localize(some_date,:format =>'%B,%y'谢谢 (21认同)

小智 28

你也可以缩短它:

l(some_date, :format => '%d %B %Y')
Run Code Online (Sandbox Code Playgroud)


小智 9

在es.yml中:

es:
  date:
    formats:
      default: "%d / %m / %Y"
Run Code Online (Sandbox Code Playgroud)

在index.html.erb中放:

<%= l somemodel.datefield %>
Run Code Online (Sandbox Code Playgroud)