Merge pull request #13543 from Homebrew/dependabot/bundler/Library/Homebrew/i18n-1.11.0

build(deps): bump i18n from 1.10.0 to 1.11.0 in /Library/Homebrew
This commit is contained in:
Mike McQuaid 2022-07-12 09:55:47 +01:00 committed by GitHub
commit de915906cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 120 additions and 74 deletions

View File

@ -33,7 +33,7 @@ GEM
hpricot (0.8.6) hpricot (0.8.6)
http-cookie (1.0.5) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
i18n (1.10.0) i18n (1.11.0)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
json (2.6.2) json (2.6.2)
json_schemer (0.2.21) json_schemer (0.2.21)

View File

@ -154,7 +154,7 @@ module I18n::Backend::Fallbacks
private private
def on_fallback(_original_locale, _fallback_locale, _key, _optoins); end def on_fallback(_original_locale, _fallback_locale, _key, _options); end
end end
module I18n::Backend::Flatten module I18n::Backend::Flatten
@ -333,6 +333,10 @@ module I18n::Backend::Pluralization
def pluralizer(locale); end def pluralizer(locale); end
def pluralizers; end def pluralizers; end
private
def symbolic_count(count); end
end end
class I18n::Backend::Simple class I18n::Backend::Simple
@ -427,6 +431,7 @@ module I18n::Base
def handle_exception(handling, exception, locale, key, options); end def handle_exception(handling, exception, locale, key, options); end
def normalize_key(key, separator); end def normalize_key(key, separator); end
def translate_key(key, throw, raise, locale, backend, options); end
end end
class I18n::Config class I18n::Config

View File

@ -4,7 +4,7 @@ ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
ruby_version = RbConfig::CONFIG["ruby_version"] ruby_version = RbConfig::CONFIG["ruby_version"]
path = File.expand_path('..', __FILE__) path = File.expand_path('..', __FILE__)
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/i18n-1.10.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/i18n-1.11.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/minitest-5.16.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/minitest-5.16.2/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-2.0.4/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-2.0.4/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.6.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.6.0/lib"

View File

@ -1,55 +0,0 @@
# frozen_string_literal: true
# I18n Pluralization are useful when you want your application to
# customize pluralization rules.
#
# To enable locale specific pluralizations you can simply include the
# Pluralization module to the Simple backend - or whatever other backend you
# are using.
#
# I18n::Backend::Simple.include(I18n::Backend::Pluralization)
#
# You also need to make sure to provide pluralization algorithms to the
# backend, i.e. include them to your I18n.load_path accordingly.
module I18n
module Backend
module Pluralization
# Overwrites the Base backend translate method so that it will check the
# translation meta data space (:i18n) for a locale specific pluralization
# rule and use it to pluralize the given entry. I.e. the library expects
# pluralization rules to be stored at I18n.t(:'i18n.plural.rule')
#
# Pluralization rules are expected to respond to #call(count) and
# return a pluralization key. Valid keys depend on the translation data
# hash (entry) but it is generally recommended to follow CLDR's style,
# i.e., return one of the keys :zero, :one, :few, :many, :other.
#
# The :zero key is always picked directly when count equals 0 AND the
# translation data has the key :zero. This way translators are free to
# either pick a special :zero translation even for languages where the
# pluralizer does not return a :zero key.
def pluralize(locale, entry, count)
return entry unless entry.is_a?(Hash) && count
pluralizer = pluralizer(locale)
if pluralizer.respond_to?(:call)
key = count == 0 && entry.has_key?(:zero) ? :zero : pluralizer.call(count)
raise InvalidPluralizationData.new(entry, count, key) unless entry.has_key?(key)
entry[key]
else
super
end
end
protected
def pluralizers
@pluralizers ||= {}
end
def pluralizer(locale)
pluralizers[locale] ||= I18n.t(:'i18n.plural.rule', :locale => locale, :resolve => false)
end
end
end
end

View File

@ -214,18 +214,12 @@ module I18n
backend = config.backend backend = config.backend
result = catch(:exception) do if key.is_a?(Array)
if key.is_a?(Array) key.map do |k|
key.map { |k| backend.translate(locale, k, options) } translate_key(k, throw, raise, locale, backend, options)
else
backend.translate(locale, key, options)
end end
end
if result.is_a?(MissingTranslation)
handle_exception((throw && :throw || raise && :raise), result, locale, key, options)
else else
result translate_key(key, throw, raise, locale, backend, options)
end end
end end
alias :t :translate alias :t :translate
@ -364,6 +358,18 @@ module I18n
private private
def translate_key(key, throw, raise, locale, backend, options)
result = catch(:exception) do
backend.translate(locale, key, options)
end
if result.is_a?(MissingTranslation)
handle_exception((throw && :throw || raise && :raise), result, locale, key, options)
else
result
end
end
# Any exceptions thrown in translate will be sent to the @@exception_handler # Any exceptions thrown in translate will be sent to the @@exception_handler
# which can be a Symbol, a Proc or any other Object unless they're forced to # which can be a Symbol, a Proc or any other Object unless they're forced to
# be raised or thrown (MissingTranslation). # be raised or thrown (MissingTranslation).

View File

@ -107,7 +107,7 @@ module I18n
private private
# Overwrite on_fallback to add specified logic when the fallback succeeds. # Overwrite on_fallback to add specified logic when the fallback succeeds.
def on_fallback(_original_locale, _fallback_locale, _key, _optoins) def on_fallback(_original_locale, _fallback_locale, _key, _options)
nil nil
end end
end end

View File

@ -0,0 +1,90 @@
# frozen_string_literal: true
# I18n Pluralization are useful when you want your application to
# customize pluralization rules.
#
# To enable locale specific pluralizations you can simply include the
# Pluralization module to the Simple backend - or whatever other backend you
# are using.
#
# I18n::Backend::Simple.include(I18n::Backend::Pluralization)
#
# You also need to make sure to provide pluralization algorithms to the
# backend, i.e. include them to your I18n.load_path accordingly.
module I18n
module Backend
module Pluralization
# Overwrites the Base backend translate method so that it will check the
# translation meta data space (:i18n) for a locale specific pluralization
# rule and use it to pluralize the given entry. I.e., the library expects
# pluralization rules to be stored at I18n.t(:'i18n.plural.rule')
#
# Pluralization rules are expected to respond to #call(count) and
# return a pluralization key. Valid keys depend on the pluralization
# rules for the locale, as defined in the CLDR.
# As of v41, 6 locale-specific plural categories are defined:
# :few, :many, :one, :other, :two, :zero
#
# n.b., The :one plural category does not imply the number 1.
# Instead, :one is a category for any number that behaves like 1 in
# that locale. For example, in some locales, :one is used for numbers
# that end in "1" (like 1, 21, 151) but that don't end in
# 11 (like 11, 111, 10311).
# Similar notes apply to the :two, and :zero plural categories.
#
# If you want to have different strings for the categories of count == 0
# (e.g. "I don't have any cars") or count == 1 (e.g. "I have a single car")
# use the explicit `"0"` and `"1"` keys.
# https://unicode-org.github.io/cldr/ldml/tr35-numbers.html#Explicit_0_1_rules
def pluralize(locale, entry, count)
return entry unless entry.is_a?(Hash) && count
pluralizer = pluralizer(locale)
if pluralizer.respond_to?(:call)
# "0" and "1" are special cases
# https://unicode-org.github.io/cldr/ldml/tr35-numbers.html#Explicit_0_1_rules
if count == 0 || count == 1
value = entry[symbolic_count(count)]
return value if value
end
# Lateral Inheritance of "count" attribute (http://www.unicode.org/reports/tr35/#Lateral_Inheritance):
# > If there is no value for a path, and that path has a [@count="x"] attribute and value, then:
# > 1. If "x" is numeric, the path falls back to the path with [@count=«the plural rules category for x for that locale»], within that the same locale.
# > 2. If "x" is anything but "other", it falls back to a path [@count="other"], within that the same locale.
# > 3. If "x" is "other", it falls back to the path that is completely missing the count item, within that the same locale.
# Note: We don't yet implement #3 above, since we haven't decided how lateral inheritance attributes should be represented.
plural_rule_category = pluralizer.call(count)
value = if entry.has_key?(plural_rule_category) || entry.has_key?(:other)
entry[plural_rule_category] || entry[:other]
else
raise InvalidPluralizationData.new(entry, count, plural_rule_category)
end
else
super
end
end
protected
def pluralizers
@pluralizers ||= {}
end
def pluralizer(locale)
pluralizers[locale] ||= I18n.t(:'i18n.plural.rule', :locale => locale, :resolve => false)
end
private
# Normalizes categories of 0.0 and 1.0
# and returns the symbolic version
def symbolic_count(count)
count = 0 if count == 0
count = 1 if count == 1
count.to_s.to_sym
end
end
end
end

View File

@ -38,7 +38,7 @@ module I18n
end end
# Returns an array of locales for which translations are available. # Returns an array of locales for which translations are available.
# Unless you explicitely set these through I18n.available_locales= # Unless you explicitly set these through I18n.available_locales=
# the call will be delegated to the backend. # the call will be delegated to the backend.
def available_locales def available_locales
@@available_locales ||= nil @@available_locales ||= nil
@ -106,7 +106,7 @@ module I18n
# if you don't care about arity. # if you don't care about arity.
# #
# == Example: # == Example:
# You can supress raising an exception and return string instead: # You can suppress raising an exception and return string instead:
# #
# I18n.config.missing_interpolation_argument_handler = Proc.new do |key| # I18n.config.missing_interpolation_argument_handler = Proc.new do |key|
# "#{key} is missing" # "#{key} is missing"

View File

@ -24,7 +24,7 @@ module I18n
been set is likely to display text from the wrong locale to some users. been set is likely to display text from the wrong locale to some users.
If you have a legitimate reason to access i18n data outside of the user flow, you can do so by passing If you have a legitimate reason to access i18n data outside of the user flow, you can do so by passing
the desired locale explictly with the `locale` argument, e.g. `I18n.#{method}(..., locale: :en)` the desired locale explicitly with the `locale` argument, e.g. `I18n.#{method}(..., locale: :en)`
MESSAGE MESSAGE
end end
end end

View File

@ -1,5 +1,5 @@
# Simple Locale tag implementation that computes subtags by simply splitting # Simple Locale tag implementation that computes subtags by simply splitting
# the locale tag at '-' occurences. # the locale tag at '-' occurrences.
module I18n module I18n
module Locale module Locale
module Tag module Tag

View File

@ -1,5 +1,5 @@
# frozen_string_literal: true # frozen_string_literal: true
module I18n module I18n
VERSION = "1.10.0" VERSION = "1.11.0"
end end