Add russian pluralization logic, based on description in the russion
plugin here: http://github.com/yaroslav/russian/blob/master/lib/russian/backend/advanced.rb Also simplify the other pluralizers by defaulting to :other when a specific subkey is not found. Closes #2412.
This commit is contained in:
parent
375e059df5
commit
3e8b62dbfe
1 changed files with 16 additions and 4 deletions
|
@ -7,6 +7,7 @@ module Globalize
|
|||
return entry unless entry.is_a?(Hash) and count
|
||||
key = :zero if count == 0 && entry.has_key?(:zero)
|
||||
key ||= pluralizer(locale).call(count, entry)
|
||||
key = :other unless entry.has_key?(key)
|
||||
raise InvalidPluralizationData.new(entry, count) unless entry.has_key?(key)
|
||||
translation entry[key], :plural_key => key
|
||||
end
|
||||
|
@ -28,15 +29,26 @@ module Globalize
|
|||
@pluralizers ||= {
|
||||
:en => lambda { |count, entry|
|
||||
case count
|
||||
when 1 then entry.has_key?(:one) ? :one : :other
|
||||
when 1 then :one
|
||||
else :other
|
||||
end
|
||||
},
|
||||
:ru => lambda { |count, entry|
|
||||
case count % 100
|
||||
when 11,12,13,14 then :many
|
||||
else case count % 10
|
||||
when 1 then :one
|
||||
when 2,3,4 then :few
|
||||
when 5,6,7,8,9,0 then :many
|
||||
else :other
|
||||
end
|
||||
end
|
||||
},
|
||||
:sl => lambda { |count, entry|
|
||||
case count % 100
|
||||
when 1 then entry.has_key?(:one) ? :one : :other
|
||||
when 2 then entry.has_key?(:two) ? :two : :other
|
||||
when 3,4 then entry.has_key?(:few) ? :few : :other
|
||||
when 1 then :one
|
||||
when 2 then :two
|
||||
when 3,4 then :few
|
||||
else :other
|
||||
end
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue