# File lib/i18n/backend/fallbacks.rb, line 37 def translate(locale, key, options = {}) return super if options[:fallback] default = extract_string_or_lambda_default!(options) if options[:default] options[:fallback] = true I18n.fallbacks[locale].each do |fallback| catch(:exception) do result = super(fallback, key, options) return result unless result.nil? end end options.delete(:fallback) return super(locale, nil, options.merge(:default => default)) if default throw(:exception, I18n::MissingTranslation.new(locale, key, options)) end