Rails: Как сделать Date strftime осведомленным о локали по умолчанию? - PullRequest
57 голосов
/ 04 января 2011

Мой языковой стандарт по умолчанию установлен в environment.rb как de (немецкий).

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

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

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

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

Ответы [ 3 ]

105 голосов
/ 04 января 2011

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

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

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

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

28 голосов
/ 07 марта 2011

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

l(some_date, :format => '%d %B %Y')
8 голосов
/ 21 сентября 2012

В es.yml положить:

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

В index.html.erb положить:

<%= l somemodel.datefield %>
...