我想使用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检查了它。它还表明没有级联搜索发生。它只是寻找最具体的密钥,找不到任何东西,并停止搜索。
任何想法是什么导致了这种行为?
答案 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。