module I18n::Backend::Chain::Implementation

def translate(locale, key, default_options = EMPTY_HASH)

def translate(locale, key, default_options = EMPTY_HASH)
  namespace = nil
  options = Utils.except(default_options, :default)
  backends.each do |backend|
    catch(:exception) do
      options = default_options if backend == backends.last
      translation = backend.translate(locale, key, options)
      if namespace_lookup?(translation, options)
        namespace = _deep_merge(translation, namespace || {})
      elsif !translation.nil? || (options.key?(:default) && options[:default].nil?)
        return translation
      end
    end
  end
  return namespace if namespace
  throw(:exception, I18n::MissingTranslation.new(locale, key, options))
end