raise original exception in i18n interpolation fallback middleware

This commit is contained in:
Jonne Haß 2013-09-21 20:18:20 +02:00
parent 21feb91d27
commit ceee5baae6

View file

@ -5,17 +5,19 @@ module I18n
default = extract_non_symbol_default!(options) if options[:default] default = extract_non_symbol_default!(options) if options[:default]
options.merge!(:default => default) if default options.merge!(:default => default) if default
original_exception = nil
I18n.fallbacks[locale].each do |fallback| I18n.fallbacks[locale].each do |fallback|
begin begin
result = super(fallback, key, options) result = super(fallback, key, options)
return result unless result.nil? return result unless result.nil?
rescue I18n::MissingInterpolationArgument rescue I18n::MissingInterpolationArgument, I18n::InvalidPluralizationData => e
rescue I18n::InvalidPluralizationData original_exception ||= e
end end
end end
return super(locale, nil, options) if default return super(locale, nil, options) if default
raise(I18n::MissingInterpolationArgument.new(key, options, locale)) raise original_exception
end end
end end
end end