在rails中将date_select值从英语更改为西班牙语

mar*_*maf 2 datepicker ruby-on-rails-3

我正在使用rails构建一个站点,我有一个日期选择器,其中包含一个Rails自动生成的下拉菜单.问题是我的网站是西班牙语,这几个月的下拉值都是英文的,有没有办法将语言改为西班牙语?

我尝试在config/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
Run Code Online (Sandbox Code Playgroud)

但是在我再次启动服务器后没有任何改变.我希望你能提前帮助我.

Fra*_*rto 7

文档:

: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']} %>
Run Code Online (Sandbox Code Playgroud)

或者,对于骨骼国际化点,使用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)]} %>
Run Code Online (Sandbox Code Playgroud)

config/locales/es.yml

es:
   jan: "Enero"
   feb: "Febrero"
   ...
Run Code Online (Sandbox Code Playgroud)

然后在config/application.rb集合中:

config.i18n.default_locale = :es
Run Code Online (Sandbox Code Playgroud)

答对了!:-)