aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/inflector/methods.rb
diff options
context:
space:
mode:
authorChristian Blais <christ.blais@gmail.com>2018-03-04 21:29:54 -0500
committerChristian Blais <christ.blais@gmail.com>2018-03-05 08:41:49 -0500
commitf58e2dd095e2e9e4e42e6d7af229f87e70fd5427 (patch)
tree61c87e7320bbacf98d3dc61b62dcf64e5d4faa0a /activesupport/lib/active_support/inflector/methods.rb
parentae2d36cf21281f4b720332a086b021d867e80084 (diff)
downloadrails-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/methods.rb')
-rw-r--r--activesupport/lib/active_support/inflector/methods.rb15
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