Sha256: 6e25d2fc54198b213a07cc8c5c9b473787028f7546a35137d4ecd36a93a8a869

Contents?: true

Size: 1.06 KB

Versions: 58

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Worldwide
  module PluralizationHelper
    # Translates pluralization string, returning the first
    # translation found in the `Worldwide::Cldr.fallbacks` chain.
    # Raises I18n::InvalidPluralizationData exception if
    # pluralization data is invalid for all fallbacks.
    def translate_plural(key, locale: I18n.locale, count:)
      Worldwide::Cldr.fallbacks[locale].find.with_index do |fallback_locale, index|
        raise = index == Worldwide::Cldr.fallbacks[locale].size - 1 # raise on last fallback
        value = try_translate_plural(key, locale: fallback_locale, count: count, raise: raise)
        break value if value
      end
    end

    private

    # Translates pluralization string.
    # Raises I18n::InvalidPluralizationData exception if `raise` is true
    # and pluralization data is invalid.
    def try_translate_plural(key, locale:, count:, raise: true)
      Worldwide::Cldr.t(key, locale: locale, count: count)
    rescue I18n::InvalidPluralizationData => exception
      raise exception if raise
    end
  end
end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
worldwide-1.15.2 lib/worldwide/pluralization_helper.rb
worldwide-1.15.1 lib/worldwide/pluralization_helper.rb
worldwide-1.15.0 lib/worldwide/pluralization_helper.rb
worldwide-1.14.4 lib/worldwide/pluralization_helper.rb
worldwide-1.14.3 lib/worldwide/pluralization_helper.rb
worldwide-1.14.1 lib/worldwide/pluralization_helper.rb
worldwide-1.14.0 lib/worldwide/pluralization_helper.rb
worldwide-1.13.0 lib/worldwide/pluralization_helper.rb
worldwide-1.12.0 lib/worldwide/pluralization_helper.rb
worldwide-1.11.1 lib/worldwide/pluralization_helper.rb
worldwide-1.11.0 lib/worldwide/pluralization_helper.rb
worldwide-1.10.0 lib/worldwide/pluralization_helper.rb
worldwide-1.9.0 lib/worldwide/pluralization_helper.rb
worldwide-1.8.0 lib/worldwide/pluralization_helper.rb
worldwide-1.7.5 lib/worldwide/pluralization_helper.rb
worldwide-1.7.4 lib/worldwide/pluralization_helper.rb
worldwide-1.7.3 lib/worldwide/pluralization_helper.rb
worldwide-1.7.2 lib/worldwide/pluralization_helper.rb
worldwide-1.7.1 lib/worldwide/pluralization_helper.rb
worldwide-1.7.0 lib/worldwide/pluralization_helper.rb