Локализовать имена месяцев - Календарь Railscasts # 213

Я пробовал учебный календарь из эпизода railscasts # 213. Я добавил es.yml, но не работал. Я пытаюсь локализовать имена месяцев с заменой слова на en.yml, например

en:
  date:

    month_names: [~, Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre]
    abbr_month_names: [~, Ene, Feb, Mar, Abr, May, Jun, Jul, Ago, Sep, Oct, Nov, Dic]

тоже не работает

на html.erb

<h2 id="month"><%= @date.strftime("%B %Y") %></h2>

Я хочу изменить это

enter image description here

Кто-нибудь мне поможет?

благодарственное-х

Ответ 1

Вы должны использовать метод localize для I18n (сокращенный как l):

<h2 id="month"><%= l(@date) %></h2>

Затем вы можете установить разные форматы самостоятельно: http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

# config/locales/es.yml
es:
  date:
    formats:
      short: "%B %Y"
      default: "%D %m, %Y"

И используйте его следующим образом:

<h2 id="month"><%= l(@date, format: :short) %></h2>

Ответ 2

просто хочу уточнить, что если вы используете активную запись, просто просто преобразуйте значение строки datetime в date в качестве примера ниже.

en:
  date:
    formats:
      default: "%Y-%m-%d"
      short: "%b %d"
      long: "%B %d, %Y"
    enter code here

<%= l(post.the_created_at.to_date, format: :long) %>