只是想知道在正常(非常简单)的形式中使用复选框时我应该如何在rails中进行国际化; 这就是我试过的:
view/form
档案:
<%= f.check_box :do_you_agree, {}, t('submissions.yes'), t('submissions.no') %>
<%= f.check_box :do_you_agree, {}, I18n.t('submissions.yes'), I18n.t('submissions.no') %>
<%= f.check_box :do_you_agree, {}, "#{t('submissions.yes')}", "#{t('submissions.no')}" %>
......所有人都回来了:
HTML中的translation_missing
。
当我使用时:
<%= f.check_box :do_you_agree, {}, 'NO', 'YES' %>
......一切都好!
YML文件没问题。非常感谢。
答案 0 :(得分:0)
在您的config/application.rb
中,您必须拥有config.i18n.default_locale = :es
行(例如西班牙语的es)
yml必须是这样的:
es:
submissions:
'yes': Si
'no': No
编辑:将yes / no键设为显式字符串。它会起作用。
为什么呢?因为Rails使用psych gem进行yaml转换。心理返回true和false所有这些值(参见链接)。
然后,如果您以这种方式定义语言环境:
es:
submissions:
yes: Si
no: No
在rails控制台上你得到:
irb> I18n.t('submissions')
=> {true=>"Si",false=>"No"}
irb> I18n.t('submissions')[true]
=> "Si"
irb> I18n.t('submissions.true')
=> "translation missing: es.submissions.true"