ruby-on-rails - Ruby i18n.translate 具有 :raise => true as default behaviour

标签 ruby-on-rails ruby rails-i18n i18n-gem

当我打电话时:

t 'to_translate'

我的模板中的方法,我希望它在不实际传递第二个参数的情况下引发错误,如下所示:

t 'to_translate', :raise => true

这将为我在每次翻译时节省大量打字时间。或者有解决方法吗?

感谢您的回答。

最佳答案

您可以在 I18n documentation 上找到答案第6.2段

“[..]默认异常处理不允许在自动化测试期间轻松捕获丢失的翻译。为此,可以指定不同的异常处理程序。指定的异常处理程序必须是 I18n 模块或类上的方法使用#call方法:

module I18n
  class JustRaiseExceptionHandler < ExceptionHandler
    def call(exception, locale, key, options)
      if exception.is_a?(MissingTranslation)
        raise exception.to_exception
      else
        super
      end
    end
  end
end

I18n.exception_handler = I18n::JustRaiseExceptionHandler.new

这只会重新引发 MissingTranslationData 异常,并将所有其他输入传递给默认异常处理程序。”

了解更多 http://guides.rubyonrails.org/i18n.html#using-different-exception-handlers

关于ruby-on-rails - Ruby i18n.translate 具有 :raise => true as default behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27697510/

相关文章:

ruby-on-rails - 非 ActiveRecord 模型的机械师

ruby-on-rails - 将带有 React 组件的 Ruby on Rails 项目部署到 Heroku

ruby-on-rails - 如何自动为 'validate' 设置错误消息?

javascript - 使用 i18n-js 插件的 Rails javascript i18n 特定 yml

ruby-on-rails-4 - React-Rails:使用具有翻译 I18n 的组件

ruby-on-rails - expect() 在 rspec/cucumber 中做了什么?

ruby-on-rails - rails erb 中的 Angular Js 花括号

ruby-on-rails - Ruby on Rails - YouTube API - 如何格式化持续时间 ISO 8601 (PT45S)

ruby - 如何在 Ruby 中正确使用 ljust 和 rjust?

ruby - 如何以安全 SSL 模式 HTTPS 启动 WEBrick Ruby 服务器