# File lib/i18n/backend/fallbacks.rb, line 37
      def translate(locale, key, options = {})
        return super if options[:fallback]
        default = extract_non_symbol_default!(options) if options[:default]

        options[:fallback] = true
        I18n.fallbacks[locale].each do |fallback|
          begin
            catch(:exception) do
              result = super(fallback, key, options)
              return result unless result.nil?
            end
          rescue I18n::InvalidLocale
            # we do nothing when the locale is invalid, as this is a fallback anyways.
          end
        end
        options.delete(:fallback)

        return super(locale, nil, options.merge(:default => default)) if default
        throw(:exception, I18n::MissingTranslation.new(locale, key, options))
      end