diff options
author | Christian Blais <christ.blais@gmail.com> | 2018-03-04 21:29:54 -0500 |
---|---|---|
committer | Christian Blais <christ.blais@gmail.com> | 2018-03-05 08:41:49 -0500 |
commit | f58e2dd095e2e9e4e42e6d7af229f87e70fd5427 (patch) | |
tree | 61c87e7320bbacf98d3dc61b62dcf64e5d4faa0a /activesupport/lib/active_support/inflector | |
parent | ae2d36cf21281f4b720332a086b021d867e80084 (diff) | |
download | rails-f58e2dd095e2e9e4e42e6d7af229f87e70fd5427.tar.gz rails-f58e2dd095e2e9e4e42e6d7af229f87e70fd5427.tar.bz2 rails-f58e2dd095e2e9e4e42e6d7af229f87e70fd5427.zip |
`ActiveSupport::Inflector#ordinal` and `ActiveSupport::Inflector#ordinalize`
now support translations through I18n.
{
fr: {
number: {
nth: {
ordinals: lambda do |_key, number:, **_options|
if number.to_i.abs == 1
'er'
else
'e'
end
end,
ordinalized: lambda do |_key, number:, **_options|
"#{number}#{ActiveSupport::Inflector.ordinal(number)}"
end
}
}
}
}
Diffstat (limited to 'activesupport/lib/active_support/inflector')
-rw-r--r-- | activesupport/lib/active_support/inflector/methods.rb | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/activesupport/lib/active_support/inflector/methods.rb b/activesupport/lib/active_support/inflector/methods.rb index 7e782e2a93..339b93b8da 100644 --- a/activesupport/lib/active_support/inflector/methods.rb +++ b/activesupport/lib/active_support/inflector/methods.rb @@ -341,18 +341,7 @@ module ActiveSupport # ordinal(-11) # => "th" # ordinal(-1021) # => "st" def ordinal(number) - abs_number = number.to_i.abs - - if (11..13).include?(abs_number % 100) - "th" - else - case abs_number % 10 - when 1; "st" - when 2; "nd" - when 3; "rd" - else "th" - end - end + I18n.translate("number.nth.ordinals", number: number) end # Turns a number into an ordinal string used to denote the position in an @@ -365,7 +354,7 @@ module ActiveSupport # ordinalize(-11) # => "-11th" # ordinalize(-1021) # => "-1021st" def ordinalize(number) - "#{number}#{ordinal(number)}" + I18n.translate("number.nth.ordinalized", number: number) end private |