ruby-on-rails – 如何在Rails中显示所有要求的翻译字符串?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在Rails中显示所有要求的翻译字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当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,但它完成了这项工作.

原文链接:https://www.f2er.com/ruby/265362.html

猜你在找的Ruby相关文章