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