R18 I18n没有级联

时间:2013-09-20 08:47:51

标签: ruby-on-rails cascade rails-i18n

我想使用here描述的I18n级联模块,但我不能让级联工作。

我的YAML文件如下:

follows:
  every_x_day: "value here"
  ...
  main:
    ...

在以下/主视图中,我正在为密钥' .every_x_day'调用t帮助程序,这只是' follow.main.every_x_day'的缩写。当然没有找到这样的密钥,所以我希望下一步的级联可以跟随' follow.every_x_day',但这不会发生。

我已经看到了问题和答案here:我已经添加了

I18n.backend.class.send(:include, I18n::Backend::Cascade)

到application.rb。但是当我用cascade:true调用翻译助手时,它根本就不会级联。页面只显示缺少翻译(洋红色背景上的键名)。

我还用i18n patch检查了它。它还表明没有级联搜索发生。它只是寻找最具体的密钥,找不到任何东西,并停止搜索。

任何想法是什么导致了这种行为?

2 个答案:

答案 0 :(得分:0)

好的,所以我假设你的代码中有这样的东西:

<%= t('.every_x_day', cascade: true) %>

你是否完全确定,'.every_x_day'开始在'follows.main.every_x_day'中寻找密钥我在original question的答案中描述的方式是I18n和懒惰的正常行为 - 查看视图。所以,我要尝试的第一件事就是将完整的密钥传递给帮助者:

<%= t('follows.main.every_x_day', cascade: true) %>

然后你至少可以确定你的原始查找路径是正确的。 如果这不起作用,则不会加载级联模块。 你把代码放在config-options中了吗? (见我的updated_answer)。

如果它仍然不起作用,请回到我身边,我们会一起尝试解决这个问题。

答案 1 :(得分:0)

原来这个问题是由I18n-monkeypatch引起的(参见原始问题)。在禁用monkeypatch之后,级联发生了它应该发生的。这对我来说是粗心大意,显然我从未测试过没有monkeypatch的应用程序。

无论如何,感谢您花时间帮助klaffenboeck。