From 3b8d285cd8df7051fab231b72f53c72d130c828a Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Nov 2023 16:39:54 +0100 Subject: [PATCH 1/7] Simple ordinals for multiple locales --- rails/ordinals/be.yml | 6 ++++++ rails/ordinals/bs.yml | 6 ++++++ rails/ordinals/cs.yml | 6 ++++++ rails/ordinals/da.yml | 6 ++++++ rails/ordinals/de-AT.rb | 15 --------------- rails/ordinals/de-AT.yml | 6 ++++++ rails/ordinals/de-CH.rb | 15 --------------- rails/ordinals/de-CH.yml | 6 ++++++ rails/ordinals/de-DE.rb | 15 --------------- rails/ordinals/de-DE.yml | 6 ++++++ rails/ordinals/de.rb | 15 --------------- rails/ordinals/de.yml | 6 ++++++ rails/ordinals/eo.yml | 6 ++++++ rails/ordinals/et.yml | 6 ++++++ rails/ordinals/fa.yml | 6 ++++++ rails/ordinals/fi.yml | 6 ++++++ rails/ordinals/hr.yml | 6 ++++++ rails/ordinals/hu.yml | 6 ++++++ rails/ordinals/is.yml | 6 ++++++ rails/ordinals/ka.yml | 6 ++++++ rails/ordinals/lb.yml | 6 ++++++ rails/ordinals/lt.yml | 6 ++++++ rails/ordinals/lv.yml | 6 ++++++ rails/ordinals/mk.yml | 6 ++++++ rails/ordinals/nb.yml | 6 ++++++ rails/ordinals/ne.yml | 6 ++++++ rails/ordinals/nn.yml | 6 ++++++ rails/ordinals/pl.yml | 6 ++++++ rails/ordinals/sk.yml | 6 ++++++ rails/ordinals/sl.yml | 6 ++++++ rails/ordinals/sq.yml | 6 ++++++ rails/ordinals/sr.yml | 6 ++++++ rails/ordinals/sw.yml | 6 ++++++ rails/ordinals/tr.yml | 6 ++++++ 34 files changed, 180 insertions(+), 60 deletions(-) create mode 100644 rails/ordinals/be.yml create mode 100644 rails/ordinals/bs.yml create mode 100644 rails/ordinals/cs.yml create mode 100644 rails/ordinals/da.yml delete mode 100644 rails/ordinals/de-AT.rb create mode 100644 rails/ordinals/de-AT.yml delete mode 100644 rails/ordinals/de-CH.rb create mode 100644 rails/ordinals/de-CH.yml delete mode 100644 rails/ordinals/de-DE.rb create mode 100644 rails/ordinals/de-DE.yml delete mode 100644 rails/ordinals/de.rb create mode 100644 rails/ordinals/de.yml create mode 100644 rails/ordinals/eo.yml create mode 100644 rails/ordinals/et.yml create mode 100644 rails/ordinals/fa.yml create mode 100644 rails/ordinals/fi.yml create mode 100644 rails/ordinals/hr.yml create mode 100644 rails/ordinals/hu.yml create mode 100644 rails/ordinals/is.yml create mode 100644 rails/ordinals/ka.yml create mode 100644 rails/ordinals/lb.yml create mode 100644 rails/ordinals/lt.yml create mode 100644 rails/ordinals/lv.yml create mode 100644 rails/ordinals/mk.yml create mode 100644 rails/ordinals/nb.yml create mode 100644 rails/ordinals/ne.yml create mode 100644 rails/ordinals/nn.yml create mode 100644 rails/ordinals/pl.yml create mode 100644 rails/ordinals/sk.yml create mode 100644 rails/ordinals/sl.yml create mode 100644 rails/ordinals/sq.yml create mode 100644 rails/ordinals/sr.yml create mode 100644 rails/ordinals/sw.yml create mode 100644 rails/ordinals/tr.yml diff --git a/rails/ordinals/be.yml b/rails/ordinals/be.yml new file mode 100644 index 000000000..f342bde91 --- /dev/null +++ b/rails/ordinals/be.yml @@ -0,0 +1,6 @@ +--- +be: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/bs.yml b/rails/ordinals/bs.yml new file mode 100644 index 000000000..902054fed --- /dev/null +++ b/rails/ordinals/bs.yml @@ -0,0 +1,6 @@ +--- +bs: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/cs.yml b/rails/ordinals/cs.yml new file mode 100644 index 000000000..b5d380090 --- /dev/null +++ b/rails/ordinals/cs.yml @@ -0,0 +1,6 @@ +--- +cs: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/da.yml b/rails/ordinals/da.yml new file mode 100644 index 000000000..5dee8207c --- /dev/null +++ b/rails/ordinals/da.yml @@ -0,0 +1,6 @@ +--- +da: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/de-AT.rb b/rails/ordinals/de-AT.rb deleted file mode 100644 index c32493d87..000000000 --- a/rails/ordinals/de-AT.rb +++ /dev/null @@ -1,15 +0,0 @@ -{ - de: { - number: { - nth: { - ordinals: -> (_key, number:, **_options) { - '.' - }, - - ordinalized: -> (_key, number:, **_options) { - "#{number}#{ActiveSupport::Inflector.ordinal(number)}" - } - } - } - } -} diff --git a/rails/ordinals/de-AT.yml b/rails/ordinals/de-AT.yml new file mode 100644 index 000000000..52862b16d --- /dev/null +++ b/rails/ordinals/de-AT.yml @@ -0,0 +1,6 @@ +--- +de-AT: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/de-CH.rb b/rails/ordinals/de-CH.rb deleted file mode 100644 index c32493d87..000000000 --- a/rails/ordinals/de-CH.rb +++ /dev/null @@ -1,15 +0,0 @@ -{ - de: { - number: { - nth: { - ordinals: -> (_key, number:, **_options) { - '.' - }, - - ordinalized: -> (_key, number:, **_options) { - "#{number}#{ActiveSupport::Inflector.ordinal(number)}" - } - } - } - } -} diff --git a/rails/ordinals/de-CH.yml b/rails/ordinals/de-CH.yml new file mode 100644 index 000000000..b61abb321 --- /dev/null +++ b/rails/ordinals/de-CH.yml @@ -0,0 +1,6 @@ +--- +de-CH: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/de-DE.rb b/rails/ordinals/de-DE.rb deleted file mode 100644 index c32493d87..000000000 --- a/rails/ordinals/de-DE.rb +++ /dev/null @@ -1,15 +0,0 @@ -{ - de: { - number: { - nth: { - ordinals: -> (_key, number:, **_options) { - '.' - }, - - ordinalized: -> (_key, number:, **_options) { - "#{number}#{ActiveSupport::Inflector.ordinal(number)}" - } - } - } - } -} diff --git a/rails/ordinals/de-DE.yml b/rails/ordinals/de-DE.yml new file mode 100644 index 000000000..ed676a0fd --- /dev/null +++ b/rails/ordinals/de-DE.yml @@ -0,0 +1,6 @@ +--- +de-DE: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/de.rb b/rails/ordinals/de.rb deleted file mode 100644 index c32493d87..000000000 --- a/rails/ordinals/de.rb +++ /dev/null @@ -1,15 +0,0 @@ -{ - de: { - number: { - nth: { - ordinals: -> (_key, number:, **_options) { - '.' - }, - - ordinalized: -> (_key, number:, **_options) { - "#{number}#{ActiveSupport::Inflector.ordinal(number)}" - } - } - } - } -} diff --git a/rails/ordinals/de.yml b/rails/ordinals/de.yml new file mode 100644 index 000000000..f3f8bb521 --- /dev/null +++ b/rails/ordinals/de.yml @@ -0,0 +1,6 @@ +--- +de: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/eo.yml b/rails/ordinals/eo.yml new file mode 100644 index 000000000..cb8110f3b --- /dev/null +++ b/rails/ordinals/eo.yml @@ -0,0 +1,6 @@ +--- +eo: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/et.yml b/rails/ordinals/et.yml new file mode 100644 index 000000000..2b3903572 --- /dev/null +++ b/rails/ordinals/et.yml @@ -0,0 +1,6 @@ +--- +et: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/fa.yml b/rails/ordinals/fa.yml new file mode 100644 index 000000000..0a43c0ba9 --- /dev/null +++ b/rails/ordinals/fa.yml @@ -0,0 +1,6 @@ +--- +fa: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/fi.yml b/rails/ordinals/fi.yml new file mode 100644 index 000000000..0bc18abc5 --- /dev/null +++ b/rails/ordinals/fi.yml @@ -0,0 +1,6 @@ +--- +fi: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/hr.yml b/rails/ordinals/hr.yml new file mode 100644 index 000000000..d705d9541 --- /dev/null +++ b/rails/ordinals/hr.yml @@ -0,0 +1,6 @@ +--- +hr: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/hu.yml b/rails/ordinals/hu.yml new file mode 100644 index 000000000..a5bf5ec3b --- /dev/null +++ b/rails/ordinals/hu.yml @@ -0,0 +1,6 @@ +--- +hu: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/is.yml b/rails/ordinals/is.yml new file mode 100644 index 000000000..a17e2b1c3 --- /dev/null +++ b/rails/ordinals/is.yml @@ -0,0 +1,6 @@ +--- +is: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/ka.yml b/rails/ordinals/ka.yml new file mode 100644 index 000000000..7ba4867cf --- /dev/null +++ b/rails/ordinals/ka.yml @@ -0,0 +1,6 @@ +--- +ka: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/lb.yml b/rails/ordinals/lb.yml new file mode 100644 index 000000000..c478f90b9 --- /dev/null +++ b/rails/ordinals/lb.yml @@ -0,0 +1,6 @@ +--- +lb: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/lt.yml b/rails/ordinals/lt.yml new file mode 100644 index 000000000..477c20a71 --- /dev/null +++ b/rails/ordinals/lt.yml @@ -0,0 +1,6 @@ +--- +lt: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/lv.yml b/rails/ordinals/lv.yml new file mode 100644 index 000000000..89e80474c --- /dev/null +++ b/rails/ordinals/lv.yml @@ -0,0 +1,6 @@ +--- +lv: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/mk.yml b/rails/ordinals/mk.yml new file mode 100644 index 000000000..3be5de56b --- /dev/null +++ b/rails/ordinals/mk.yml @@ -0,0 +1,6 @@ +--- +mk: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/nb.yml b/rails/ordinals/nb.yml new file mode 100644 index 000000000..48fe934ca --- /dev/null +++ b/rails/ordinals/nb.yml @@ -0,0 +1,6 @@ +--- +nb: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/ne.yml b/rails/ordinals/ne.yml new file mode 100644 index 000000000..b6438bca7 --- /dev/null +++ b/rails/ordinals/ne.yml @@ -0,0 +1,6 @@ +--- +ne: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/nn.yml b/rails/ordinals/nn.yml new file mode 100644 index 000000000..22c7e0682 --- /dev/null +++ b/rails/ordinals/nn.yml @@ -0,0 +1,6 @@ +--- +nn: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/pl.yml b/rails/ordinals/pl.yml new file mode 100644 index 000000000..f40536f91 --- /dev/null +++ b/rails/ordinals/pl.yml @@ -0,0 +1,6 @@ +--- +pl: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/sk.yml b/rails/ordinals/sk.yml new file mode 100644 index 000000000..896e21e52 --- /dev/null +++ b/rails/ordinals/sk.yml @@ -0,0 +1,6 @@ +--- +sk: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/sl.yml b/rails/ordinals/sl.yml new file mode 100644 index 000000000..7c16e4323 --- /dev/null +++ b/rails/ordinals/sl.yml @@ -0,0 +1,6 @@ +--- +sl: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/sq.yml b/rails/ordinals/sq.yml new file mode 100644 index 000000000..50c20cf93 --- /dev/null +++ b/rails/ordinals/sq.yml @@ -0,0 +1,6 @@ +--- +sq: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/sr.yml b/rails/ordinals/sr.yml new file mode 100644 index 000000000..bd409ddd2 --- /dev/null +++ b/rails/ordinals/sr.yml @@ -0,0 +1,6 @@ +--- +sr: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/sw.yml b/rails/ordinals/sw.yml new file mode 100644 index 000000000..e7be06a04 --- /dev/null +++ b/rails/ordinals/sw.yml @@ -0,0 +1,6 @@ +--- +sw: + number: + nth: + ordinals: "." + ordinalized: "%{number}." diff --git a/rails/ordinals/tr.yml b/rails/ordinals/tr.yml new file mode 100644 index 000000000..d69113ca8 --- /dev/null +++ b/rails/ordinals/tr.yml @@ -0,0 +1,6 @@ +--- +tr: + number: + nth: + ordinals: "." + ordinalized: "%{number}." From 3811f34f9958590173390747f58d5f7766b5f592 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Nov 2023 17:23:44 +0100 Subject: [PATCH 2/7] Changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57b24b311..2ca9db069 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## unreleased +- Add ordinalization for many locales (be, bs, cs, da, de, eo, et, fa, fi, hr, hu, is, ka, + lb, lt, lv, mk, nb, ne, nn, pl, sk, sl, sq, sr, sw, tr) #1109 ## 7.0.8 (2023-08-15) From 1eae4e7dba2ed5c554b521135b95432946264d17 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Nov 2023 18:58:48 +0100 Subject: [PATCH 3/7] Add test --- spec/unit/ordinals_spec.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/unit/ordinals_spec.rb b/spec/unit/ordinals_spec.rb index af4669629..248b03c83 100644 --- a/spec/unit/ordinals_spec.rb +++ b/spec/unit/ordinals_spec.rb @@ -45,4 +45,15 @@ end end end + + describe 'locales with period-suffix' do + it 'uses the custom rule' do + period_locales.each do |locale| + I18n.with_locale(locale) do + ActiveSupport::Inflector.ordinalize(1).should == "1." + ActiveSupport::Inflector.ordinalize(2).should == "2." + end + end + end + end end From 9fb6e1d414fc39bf6aaac56bb5a946481dd45fb2 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Nov 2023 19:00:25 +0100 Subject: [PATCH 4/7] Test --- spec/unit/ordinals_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/unit/ordinals_spec.rb b/spec/unit/ordinals_spec.rb index 248b03c83..e26db87f8 100644 --- a/spec/unit/ordinals_spec.rb +++ b/spec/unit/ordinals_spec.rb @@ -5,9 +5,10 @@ # Mock Rails app in order to trigger the Railtie let(:app) { double :app, config: config } let(:config) { double :config, eager_load_namespaces: [], i18n: I18n, rails_i18n: RailsI18n } + let(:period_locales) { %w[be bs cs da de eo et fa fi hr hu is ka lb lt lv mk nb ne nn pl sk sl sq sr sw tr] } before do - I18n.available_locales = %w[fr en fr-CA fr-CH fr-FR gd] + I18n.available_locales = %w[fr en fr-CA fr-CH fr-FR gd]+ period_locales RailsI18n::Railtie.initializers.each { |init| init.run(app) } I18n.backend.reload! From cee5be1934c2d5bdaf7aa2bccdf8c2d05dfad7bc Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Nov 2023 19:19:46 +0100 Subject: [PATCH 5/7] lint --- spec/unit/ordinals_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/unit/ordinals_spec.rb b/spec/unit/ordinals_spec.rb index e26db87f8..031181f81 100644 --- a/spec/unit/ordinals_spec.rb +++ b/spec/unit/ordinals_spec.rb @@ -8,7 +8,7 @@ let(:period_locales) { %w[be bs cs da de eo et fa fi hr hu is ka lb lt lv mk nb ne nn pl sk sl sq sr sw tr] } before do - I18n.available_locales = %w[fr en fr-CA fr-CH fr-FR gd]+ period_locales + I18n.available_locales = %w[fr en fr-CA fr-CH fr-FR gd] + period_locales RailsI18n::Railtie.initializers.each { |init| init.run(app) } I18n.backend.reload! From 808b3d78a4d9fd7b60873ebbfb4e34ba9479217a Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Wed, 8 Nov 2023 08:08:54 +0100 Subject: [PATCH 6/7] Include regional de variants in test --- CHANGELOG.md | 2 +- spec/unit/ordinals_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ca9db069..5860430d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## unreleased -- Add ordinalization for many locales (be, bs, cs, da, de, eo, et, fa, fi, hr, hu, is, ka, +- Add ordinalization for many locales (be, bs, cs, da, eo, et, fa, fi, hr, hu, is, ka, lb, lt, lv, mk, nb, ne, nn, pl, sk, sl, sq, sr, sw, tr) #1109 ## 7.0.8 (2023-08-15) diff --git a/spec/unit/ordinals_spec.rb b/spec/unit/ordinals_spec.rb index 031181f81..4f96e7747 100644 --- a/spec/unit/ordinals_spec.rb +++ b/spec/unit/ordinals_spec.rb @@ -5,7 +5,7 @@ # Mock Rails app in order to trigger the Railtie let(:app) { double :app, config: config } let(:config) { double :config, eager_load_namespaces: [], i18n: I18n, rails_i18n: RailsI18n } - let(:period_locales) { %w[be bs cs da de eo et fa fi hr hu is ka lb lt lv mk nb ne nn pl sk sl sq sr sw tr] } + let(:period_locales) { %w[be bs cs da de de-AT de-CH de-DE eo et fa fi hr hu is ka lb lt lv mk nb ne nn pl sk sl sq sr sw tr] } before do I18n.available_locales = %w[fr en fr-CA fr-CH fr-FR gd] + period_locales From 2eed733fb6d08630946e8275fd92889d3b6a04ff Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Wed, 8 Nov 2023 15:55:58 +0100 Subject: [PATCH 7/7] Add de-AT, de-CH, de-DE to CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5860430d8..b3ae3365a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## unreleased -- Add ordinalization for many locales (be, bs, cs, da, eo, et, fa, fi, hr, hu, is, ka, +- Add ordinalization for many locales (be, bs, cs, da, de-AT, de-CH, de-DE, eo, et, fa, fi, hr, hu, is, ka, lb, lt, lv, mk, nb, ne, nn, pl, sk, sl, sq, sr, sw, tr) #1109 ## 7.0.8 (2023-08-15)