Подтвердить что ты не робот

Rails: Как сделать Date strftime осведомленным о локали по умолчанию?

У меня есть локаль по умолчанию, установленная в environment.rb как de (немецкий).

Я также вижу все сообщения об ошибках на немецком языке, поэтому локаль воспринимается сервером. Но когда я пытаюсь напечатать дату с strftime следующим образом:

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

Он печатает на английском языке (January, 11), а не ожидаемый немецкий (Januar, 11).

Как распечатать дату в соответствии со стандартом по умолчанию?

4b9b3361

Ответ 1

Используйте метод l (псевдоним для localize) вместо raw strftime, например так:

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

Смотрите здесь для получения дополнительной информации, надеюсь, это поможет.

Вы также можете определить "именованные" форматы, пара из них (short, long) уже предопределены.

Ответ 2

вы также можете сделать его короче:

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

Ответ 3

В es.yml put:

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

В index.html.erb put:

<%= l somemodel.datefield %>