我正在使用rails构建一个站点,并且我有一个日期选择器,其中包含一个Rails自动生成的下拉菜单。问题是我的网站是西班牙语,这几个月的下拉值都是英文的,有没有办法将语言改为西班牙语?
我尝试在config / environment.rb中添加一些代码行,我发现here 代码基本上是这样的:
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
但是在我再次启动服务器之后没有任何改变。 我希望你能提前帮助我。
答案 0 :(得分: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']} %>
或者,对于骨骼国际化点,用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 :(得分:1)
在Rails 4中:
(波兰案例:)
operator[]
全部
答案 2 :(得分:1)
in rails 5&gt;最简单,最具可扩展性的方式
在您看来:
<%= 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"]
只需更改字符串之间的月份名称即可。
答案 3 :(得分:0)
对于rails 4.2.5.1或更高版本,您可以使用t('locale_parameter_name')代替t(:locale_parameter_name)
<强> E.g:强>
: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')]