加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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,但它完成了这项工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读