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
@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
}