ruby-on-rails – 如何在Rails中显示所有要求的翻译字符串?
发布时间:2020-12-16 22:59:12 所属栏目:百科 来源:网络整理
导读:当Rails函数要求翻译(I18n.translate)时,我不想分析他们的代码以获得确切的范围等. 如何为每个要求的字符串添加调试输出到控制台? 例子: I18n.t 'errors.messages.invalid',:scope = :active_record # Translation for 'activerecord.errors.messages.inva
当Rails函数要求翻译(I18n.translate)时,我不想分析他们的代码以获得确切的范围等.
如何为每个要求的字符串添加调试输出到控制台? 例子: I18n.t 'errors.messages.invalid',:scope => :active_record # Translation for 'activerecord.errors.messages.invalid' (not) found label(:post,:title) # Translation for 'activerecord.attributes.post.title' not found # Translation for 'views.labels.post.title' not found 解决方法
这不是一个非常优雅的解决方案,但它对我有用.我创建了一个初始化器:
require 'i18n' if (Rails.env.development? || Rails.env.test?) && ENV['DEBUG_TRANSLATION'] module I18n class << self def translate_with_debug(*args) Rails.logger.debug "Translate : #{args.inspect}" translate_without_debug(*args) end alias_method_chain :translate,:debug end end end 然后,您可以运行如下命令: $DEBUG_TRANSLATION=true rake cucumber …并且您将看到所有正在尝试的翻译被转储到STDOUT.我不考虑这个生产代码,所以我把它保存在Gist中,而不是在这个阶段将它检查到我的主项目源代码控制中. Noddy,但它完成了这项工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |