Ruby on rails Rails I18n介词本地化结果不可预测

Ruby on rails Rails I18n介词本地化结果不可预测,ruby-on-rails,localization,internationalization,Ruby On Rails,Localization,Internationalization,我有一个小的本地化yaml文件,如下所示: en: preposition: with: with on: on 和类似的德国地区。当我尝试使用I18n.translate('preposition.on')时,它会产生不可预测的结果,并返回true,而不是正常的介词。根据我在实验中所理解的,Rails在上考虑值为真< /代码>,与Obj/相反,但是如果我真的需要正常的翻译,我应该如何处理这个问题?< P>解决方案在这里找到-< /P> 也就是说,像on、no、yes这样的

我有一个小的本地化yaml文件,如下所示:

en:
  preposition:
    with: with
    on: on
和类似的德国地区。当我尝试使用
I18n.translate('preposition.on')
时,它会产生不可预测的结果,并返回
true
,而不是正常的介词。根据我在实验中所理解的,Rails在上考虑值<代码>为<代码>真< /代码>,与Obj/<代码>相反,但是如果我真的需要正常的翻译,我应该如何处理这个问题?

< P>解决方案在这里找到-< /P> 也就是说,像
on
no
yes
这样的键和值实际上是YAML保留字,因此为了实现这一点,我必须将我的区域设置文件更改为:

en:
  preposition:
    with: with
    "on": 'on'

这将使键和值看起来都像字符串。

尝试添加“”:on:“on”已尝试。唯一的变化是,在这种情况下,我得到了
翻译缺失的en.介词.on
,德语也是如此。似乎在YAML中
on
有一些特定的含义。但是,该上的键
也不起作用:)try restart server可能已多次重新启动(如果添加新的i18n文件,这可能是必需的),已清除缓存,但已找到解决方案并将其写入下面。这些都是真正的保留字——值和键。