web-dev-qa-db-ja.com

Rails:Date strftimeにデフォルトロケールを認識させる方法は?

environment.rbにデフォルトのロケールがde(ドイツ語)として設定されています。

また、すべてのエラーメッセージがドイツ語で表示されるため、サーバーがロケールを取得します。しかし、次のようにstrftimeで日付を印刷しようとすると:

some_date.strftime('%B, %y')

予想されるドイツ語(January, 11)ではなく、英語(Januar, 11)で印刷されます。

デフォルトのロケールに従って日付を印刷するにはどうすればよいですか?

58
rangalo

次のように、生のstrftimeの代わりにllocalizeのエイリアス)メソッドを使用します。

l(date, format: '%B %d, in the year %Y')

詳細については here を参照してください。

「名前付き」フォーマットを定義することもできます。それらのいくつか(shortlong)はすでに事前定義されています。

106
Milan Novota

短くすることもできます:

l(some_date, :format => '%d %B %Y')
28
kstarski

Es.ymlに以下を置きます:

es:
  date:
    formats:
      default: "%d / %m / %Y"

Index.html.erbに以下を入力します。

<%= l somemodel.datefield %>
8
Daniel