Изменить значения date_select с английского на испанский в рельсах - PullRequest
2 голосов
/ 25 июня 2011

Я строю сайт в рельсах, и у меня есть селектор дат с выпадающим меню, которое Rails генерирует автоматически.Проблема в том, что мой сайт на испанском, а значения выпадающего списка для месяцев на английском. Есть ли способ изменить язык на испанский?

Я попытался добавить несколько строк кода в конфигурацию /environment.rb, который я нашел здесь Код в основном такой:

require 'date'
class Date

MONTHNAMES = [nil] + %w(Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre)

module Format

MONTHS = {
  'Enero'  => 1, 'Febrero' => 2, 'Marzo'    => 3, 'Abril'    => 4,
  'Mayo'      => 5, 'Junio'     => 6, 'Julio'     => 7, 'Agosto' => 8,
  'Septiembre'=> 9, 'Octubre'  =>10, 'Noviembre' =>11, 'Diciembre'=>12
}
end
end

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

Ответы [ 4 ]

7 голосов
/ 26 июня 2011

Из документации :

: use_month_names - Установите массив с 12 именами месяцев, если вы хотите настроить названия месяцев.Примечание: Вы также можете использовать для этого функциональность Rails i18n.

Так что вы можете сделать это:

<%= f.date_select :date, {:use_month_names => ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre','Diciembre']} %>

Или, для точек интернационализации костей, заменить строки на t() вызывает метод и использует файлы локализации Rails I18n:

<%= f.date_select :date, {:use_month_names => [t(:jan), t(:feb), t(:mar), t(:apr), t(:may), t(:jun), t(:jul), t(:aug), t(:sep), t(:oct), t(:nov), t(:dec)]} %>

В config/locales/es.yml

es:
   jan: "Enero"
   feb: "Febrero"
   ...

А затем в config/application.rb устанавливается:

config.i18n.default_locale = :es

Бинго!: -)

1 голос
/ 31 января 2017

в рельсах 5> самый простой и лучший масштабируемый способ

на ваш взгляд:

<%= f.date_select :start_time %>

в вашем config/locales/en.yml добавить это:

en:
  date:
    order: ["day", "year",  "month"]
    month_names: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "August", "September", "Oktober", "November", "December"]

Просто изменитьназвания месяцев между строками в любом виде.

1 голос
/ 08 октября 2015

In Rails 4:
(польский случай:)

= f.datetime_select :start_time, prompt: {day: 'Dzień', month: 'Miesiąc', year: 'Rok'}

pl:
date:
    order: ["year", "month", "day"]
    month_names: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"]

это все

0 голосов
/ 31 января 2016

Для рельсов 4.2.5.1 или выше вы можете использовать t ('locale_parameter_name') вместо t (: locale_parameter_name)

Например:

:use_month_names => [t('jan'), t('feb'), t('mar'), t('apr'), t('may'), t('jun'), t('jul'), t('aug'), t('sep'), t('oct'), t('nov'), t('dec')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...