# 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|
            begin
              options = default_options if backend == backends.last
              translation = backend.translate(locale, key, options)
              if namespace_lookup?(translation, options)
                namespace ||= {}
                namespace.merge!(translation)
              elsif !translation.nil?
                return translation
              end
            rescue MissingTranslationData
            end
          end

          return namespace if namespace
          raise(I18n::MissingTranslationData.new(locale, key, options))
        end