1

如陈述in ActionView's documentation,Rails中的t视图帮助程序自动纠正缺失的翻译。例如:在视图中显示缺少的I18n翻译

irb> helper.t('words.foo_bar') 
=> "<span class="translation_missing" title="translation missing: en.words.foo_bar">Foo Bar</span>" 

有没有什么办法可以全局禁用它?我宁愿看到“translation missing:en.words.asdf”。

我发现的唯一解决方法是在视图中使用I18n.t "..."而不是t "..."

谢谢!

回答

3

尝试把这个代码在你development.rb

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to 
# the I18n.default_locale when a translation can not be found) 
config.i18n.fallbacks = false 
+0

感谢您的建议,@thesis。不幸的是,这会导致ActionView的'#t'输出相同的结果。 – nickh

+0

你重新启动了你的服务器吗? – Ashitaka

+0

@Ashitaka是的,我做了改变后重新启动服务器。另外,“fallback”选项控制失败的翻译是否尝试在默认语言环境中使用相应的翻译。所以它不会阻止我试图避免的混乱。 – nickh

0

我在我的config/initializers目录这个文件,这说明我失败了,所有的翻译查找他们起源于日志输出:https://gist.github.com/1594660

也许这正是你正在寻找的。

+0

有趣。感谢Christoph的主旨。我想你必须每隔一段时间仔细阅读一下日志以查找失败的翻译。 – nickh

+0

应该将输出写入数据库并计算出现次数,而不是重新输入。我使用自己的要点在开发过程中发现失败的翻译(或者在构建语言环境文件时找到正确的键)。 –