Welcome to mirror list, hosted at ThFree Co, Russian Federation.

i18n_interpolation_fallbacks.rb « lib - github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0cfbf6bfa38bcaf7d05e3de66cb33c342ad55fb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true

module I18n
  module Backend
    module InterpolationFallbacks
      def translate(locale, key, options = {})
        default = extract_non_symbol_default!(options) if options[:default]
        options.merge!(:default => default) if default

        original_exception = nil

        I18n.fallbacks[locale].each do |fallback|
          begin
            result = super(fallback, key, options)
            return result unless result.nil?
          rescue I18n::MissingInterpolationArgument, I18n::InvalidPluralizationData => e
            original_exception ||= e
          end
        end

        return super(locale, nil, options) if default
        raise original_exception
      end
    end
  end
end