# File lib/i18n/backend/chain.rb, line 39
        def translate(locale, key, default_options = {})
          namespace = nil
          options = default_options.except(: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 = translation.merge(namespace || {})
              elsif !translation.nil?
                return translation
              end
            end
          end

          return namespace if namespace
          throw(:exception, I18n::MissingTranslation.new(locale, key, options))
        end