worldwide 1.31.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +24 -1
  3. data/CHANGELOG.md +20 -0
  4. data/Gemfile.lock +1 -1
  5. data/data/cldr/likely_subtags.yml +1 -1
  6. data/data/cldr/locales/ca/subdivisions.yml +46 -46
  7. data/data/cldr/locales/sr/calendars.yml +232 -232
  8. data/data/cldr/locales/sr/characters.yml +5 -4
  9. data/data/cldr/locales/sr/currencies.yml +1134 -1134
  10. data/data/cldr/locales/sr/fields.yml +424 -426
  11. data/data/cldr/locales/sr/languages.yml +508 -508
  12. data/data/cldr/locales/sr/lists.yml +12 -12
  13. data/data/cldr/locales/sr/numbers.yml +108 -108
  14. data/data/cldr/locales/sr/rbnf.yml +123 -123
  15. data/data/cldr/locales/sr/subdivisions.yml +2478 -2478
  16. data/data/cldr/locales/sr/territories.yml +294 -294
  17. data/data/cldr/locales/sr/timezones.yml +765 -765
  18. data/data/cldr/locales/sr/units.yml +230 -230
  19. data/data/cldr/locales/sr-Cyrl/calendars.yml +375 -0
  20. data/data/cldr/locales/sr-Cyrl/characters.yml +12 -1
  21. data/data/cldr/locales/sr-Cyrl/currencies.yml +1673 -0
  22. data/data/cldr/locales/sr-Cyrl/delimiters.yml +10 -0
  23. data/data/cldr/locales/sr-Cyrl/fields.yml +669 -0
  24. data/data/cldr/locales/sr-Cyrl/languages.yml +511 -0
  25. data/data/cldr/locales/sr-Cyrl/lists.yml +33 -0
  26. data/data/cldr/locales/sr-Cyrl/numbers.yml +189 -0
  27. data/data/cldr/locales/sr-Cyrl/plurals.rb +1 -0
  28. data/data/cldr/locales/sr-Cyrl/rbnf.yml +288 -0
  29. data/data/cldr/locales/sr-Cyrl/subdivisions.yml +2481 -0
  30. data/data/cldr/locales/sr-Cyrl/territories.yml +297 -0
  31. data/data/cldr/locales/sr-Cyrl/timezones.yml +1537 -0
  32. data/data/cldr/locales/sr-Cyrl/units.yml +546 -0
  33. data/data/cldr/parent_locales.yml +2 -1
  34. data/data/cldr/paths.txt +13 -0
  35. data/data/other/generated/sr-Latn-BA.yml +17 -17
  36. data/data/other/generated/sr-Latn-ME.yml +15 -15
  37. data/data/other/generated/sr-Latn-RS.yml +15 -15
  38. data/data/other/generated/sr-Latn-XK.yml +15 -15
  39. data/data/other/generated/sr-Latn.yml +15 -15
  40. data/data/other/generated/sr.yml +73 -73
  41. data/data/other/hand_translated/sr.yml +15 -0
  42. data/data/other/paths.txt +1 -0
  43. data/lib/worldwide/locale.rb +20 -23
  44. data/lib/worldwide/version.rb +1 -1
  45. metadata +16 -2
@@ -29,13 +29,13 @@ sr-Latn-RS:
29
29
  default: "%-d.%-m.%Y."
30
30
  billing: "%-d.%-m.%Y."
31
31
  yearless_ordinal: "%{ordinalized_day} %B"
32
- today_at_time: "%02k:%M danas"
33
- yesterday_at_time: "%02k:%M juče"
34
- tomorrow_at_time: "%02k:%M sutra"
35
- on_weekday_at_time: "%02k:%M %A"
36
- on_date_time_current_year: "%02k:%M %-d. %b"
32
+ today_at_time: Danas u %02k:%M
33
+ yesterday_at_time: Juče u %02k:%M
34
+ tomorrow_at_time: Sutra u %02k:%M
35
+ on_weekday_at_time: u %A u %02k:%M
36
+ on_date_time_current_year: "%-d. %b u %02k:%M"
37
37
  on_date: "%-d. %b %Y."
38
- ago: "%{time} ago"
38
+ ago: Pre %{time}
39
39
  x_hours_ago:
40
40
  few: pre %{count} sata
41
41
  one: pre %{count} sata
@@ -130,13 +130,13 @@ sr-Latn-RS:
130
130
  short: "%-d. %b %02k:%M"
131
131
  billing: "%-d.%-m.%Y."
132
132
  yearless_ordinal: "%{ordinalized_day} %B"
133
- today_at_time: "%02k:%M danas"
134
- yesterday_at_time: "%02k:%M juče"
135
- tomorrow_at_time: "%02k:%M sutra"
136
- on_weekday_at_time: "%02k:%M %A"
137
- on_date_time_current_year: "%02k:%M %-d. %b"
133
+ today_at_time: Danas u %02k:%M
134
+ yesterday_at_time: Juče u %02k:%M
135
+ tomorrow_at_time: Sutra u %02k:%M
136
+ on_weekday_at_time: u %A u %02k:%M
137
+ on_date_time_current_year: "%-d. %b u %02k:%M"
138
138
  on_date: "%-d. %b %Y."
139
- ago: "%{time} ago"
139
+ ago: Pre %{time}
140
140
  x_hours_ago:
141
141
  few: pre %{count} sata
142
142
  one: pre %{count} sata
@@ -146,7 +146,7 @@ sr-Latn-RS:
146
146
  one: pre %{count} minuta
147
147
  other: pre %{count} minuta
148
148
  cc_expiry_date: "%m/%Y"
149
- am: am
150
- pm: pm
151
- just_now: sada
149
+ am: pre podne
150
+ pm: po podne
151
+ just_now: Upravo sada
152
152
  yesterday: juče
@@ -29,13 +29,13 @@ sr-Latn-XK:
29
29
  default: "%-d.%-m.%Y."
30
30
  billing: "%-d.%-m.%Y."
31
31
  yearless_ordinal: "%{ordinalized_day} %B"
32
- today_at_time: "%02k:%M danas"
33
- yesterday_at_time: "%02k:%M juče"
34
- tomorrow_at_time: "%02k:%M sutra"
35
- on_weekday_at_time: "%02k:%M %A"
36
- on_date_time_current_year: "%02k:%M %-d. %b"
32
+ today_at_time: Danas u %02k:%M
33
+ yesterday_at_time: Juče u %02k:%M
34
+ tomorrow_at_time: Sutra u %02k:%M
35
+ on_weekday_at_time: u %A u %02k:%M
36
+ on_date_time_current_year: "%-d. %b u %02k:%M"
37
37
  on_date: "%-d. %b %Y."
38
- ago: "%{time} ago"
38
+ ago: Pre %{time}
39
39
  x_hours_ago:
40
40
  few: pre %{count} sata
41
41
  one: pre %{count} sata
@@ -130,13 +130,13 @@ sr-Latn-XK:
130
130
  short: "%-d. %b %02k:%M"
131
131
  billing: "%-d.%-m.%Y."
132
132
  yearless_ordinal: "%{ordinalized_day} %B"
133
- today_at_time: "%02k:%M danas"
134
- yesterday_at_time: "%02k:%M juče"
135
- tomorrow_at_time: "%02k:%M sutra"
136
- on_weekday_at_time: "%02k:%M %A"
137
- on_date_time_current_year: "%02k:%M %-d. %b"
133
+ today_at_time: Danas u %02k:%M
134
+ yesterday_at_time: Juče u %02k:%M
135
+ tomorrow_at_time: Sutra u %02k:%M
136
+ on_weekday_at_time: u %A u %02k:%M
137
+ on_date_time_current_year: "%-d. %b u %02k:%M"
138
138
  on_date: "%-d. %b %Y."
139
- ago: "%{time} ago"
139
+ ago: Pre %{time}
140
140
  x_hours_ago:
141
141
  few: pre %{count} sata
142
142
  one: pre %{count} sata
@@ -146,7 +146,7 @@ sr-Latn-XK:
146
146
  one: pre %{count} minuta
147
147
  other: pre %{count} minuta
148
148
  cc_expiry_date: "%m/%Y"
149
- am: am
150
- pm: pm
151
- just_now: sada
149
+ am: pre podne
150
+ pm: po podne
151
+ just_now: Upravo sada
152
152
  yesterday: juče
@@ -29,13 +29,13 @@ sr-Latn:
29
29
  default: "%-d.%-m.%Y."
30
30
  billing: "%-d.%-m.%Y."
31
31
  yearless_ordinal: "%{ordinalized_day} %B"
32
- today_at_time: "%02k:%M danas"
33
- yesterday_at_time: "%02k:%M juče"
34
- tomorrow_at_time: "%02k:%M sutra"
35
- on_weekday_at_time: "%02k:%M %A"
36
- on_date_time_current_year: "%02k:%M %-d. %b"
32
+ today_at_time: Danas u %02k:%M
33
+ yesterday_at_time: Juče u %02k:%M
34
+ tomorrow_at_time: Sutra u %02k:%M
35
+ on_weekday_at_time: u %A u %02k:%M
36
+ on_date_time_current_year: "%-d. %b u %02k:%M"
37
37
  on_date: "%-d. %b %Y."
38
- ago: "%{time} ago"
38
+ ago: Pre %{time}
39
39
  x_hours_ago:
40
40
  few: pre %{count} sata
41
41
  one: pre %{count} sata
@@ -130,13 +130,13 @@ sr-Latn:
130
130
  short: "%-d. %b %02k:%M"
131
131
  billing: "%-d.%-m.%Y."
132
132
  yearless_ordinal: "%{ordinalized_day} %B"
133
- today_at_time: "%02k:%M danas"
134
- yesterday_at_time: "%02k:%M juče"
135
- tomorrow_at_time: "%02k:%M sutra"
136
- on_weekday_at_time: "%02k:%M %A"
137
- on_date_time_current_year: "%02k:%M %-d. %b"
133
+ today_at_time: Danas u %02k:%M
134
+ yesterday_at_time: Juče u %02k:%M
135
+ tomorrow_at_time: Sutra u %02k:%M
136
+ on_weekday_at_time: u %A u %02k:%M
137
+ on_date_time_current_year: "%-d. %b u %02k:%M"
138
138
  on_date: "%-d. %b %Y."
139
- ago: "%{time} ago"
139
+ ago: Pre %{time}
140
140
  x_hours_ago:
141
141
  few: pre %{count} sata
142
142
  one: pre %{count} sata
@@ -146,7 +146,7 @@ sr-Latn:
146
146
  one: pre %{count} minuta
147
147
  other: pre %{count} minuta
148
148
  cc_expiry_date: "%m/%Y"
149
- am: am
150
- pm: pm
151
- just_now: sada
149
+ am: pre podne
150
+ pm: po podne
151
+ just_now: Upravo sada
152
152
  yesterday: juče
@@ -29,74 +29,74 @@ sr:
29
29
  default: "%-d.%-m.%Y."
30
30
  billing: "%-d.%-m.%Y."
31
31
  yearless_ordinal: "%{ordinalized_day} %B"
32
- today_at_time: "%02k:%M данас"
33
- yesterday_at_time: "%02k:%M јуче"
34
- tomorrow_at_time: "%02k:%M сутра"
35
- on_weekday_at_time: "%02k:%M %A"
36
- on_date_time_current_year: "%02k:%M %-d. %b"
32
+ today_at_time: Danas u %02k:%M
33
+ yesterday_at_time: Juče u %02k:%M
34
+ tomorrow_at_time: Sutra u %02k:%M
35
+ on_weekday_at_time: u %A u %02k:%M
36
+ on_date_time_current_year: "%-d. %b u %02k:%M"
37
37
  on_date: "%-d. %b %Y."
38
- ago: "%{time} ago"
38
+ ago: Pre %{time}
39
39
  x_hours_ago:
40
- few: пре %{count} сата
41
- one: пре %{count} сата
42
- other: пре %{count} сати
40
+ few: pre %{count} sata
41
+ one: pre %{count} sata
42
+ other: pre %{count} sati
43
43
  x_minutes_ago:
44
- few: пре %{count} минута
45
- one: пре %{count} минута
46
- other: пре %{count} минута
44
+ few: pre %{count} minuta
45
+ one: pre %{count} minuta
46
+ other: pre %{count} minuta
47
47
  cc_expiry_date: "%m/%Y"
48
48
  abbr_day_names:
49
- - нед
50
- - пон
51
- - уто
52
- - сре
53
- - чет
54
- - пет
55
- - суб
49
+ - ned
50
+ - pon
51
+ - uto
52
+ - sre
53
+ - čet
54
+ - pet
55
+ - sub
56
56
  abbr_month_names:
57
57
  - ''
58
- - јан
59
- - феб
60
- - мар
61
- - апр
62
- - мај
63
- - јун
64
- - јул
65
- - авг
66
- - сеп
67
- - окт
68
- - нов
69
- - дец
58
+ - jan
59
+ - feb
60
+ - mar
61
+ - apr
62
+ - maj
63
+ - jun
64
+ - jul
65
+ - avg
66
+ - sep
67
+ - okt
68
+ - nov
69
+ - dec
70
70
  day_names:
71
- - недеља
72
- - понедељак
73
- - уторак
74
- - среда
75
- - четвртак
76
- - петак
77
- - субота
71
+ - nedelja
72
+ - ponedeljak
73
+ - utorak
74
+ - sreda
75
+ - četvrtak
76
+ - petak
77
+ - subota
78
78
  month_names:
79
79
  - ''
80
- - јануар
81
- - фебруар
82
- - март
83
- - април
84
- - мај
85
- - јун
86
- - јул
87
- - август
88
- - септембар
89
- - октобар
90
- - новембар
91
- - децембар
80
+ - januar
81
+ - februar
82
+ - mart
83
+ - april
84
+ - maj
85
+ - jun
86
+ - jul
87
+ - avgust
88
+ - septembar
89
+ - oktobar
90
+ - novembar
91
+ - decembar
92
92
  relative_day_names:
93
- this_week: ове недеље
94
- this_month: овог месеца
95
- day_before_yesterday: прекјуче
96
- yesterday: јуче
97
- today: данас
98
- tomorrow: сутра
99
- day_after_tomorrow: прекосутра
93
+ this_week: ove nedelje
94
+ this_month: ovog meseca
95
+ day_before_yesterday: prekjuče
96
+ yesterday: juče
97
+ today: danas
98
+ tomorrow: sutra
99
+ day_after_tomorrow: prekosutra
100
100
  order:
101
101
  - :day
102
102
  - :month
@@ -130,23 +130,23 @@ sr:
130
130
  short: "%-d. %b %02k:%M"
131
131
  billing: "%-d.%-m.%Y."
132
132
  yearless_ordinal: "%{ordinalized_day} %B"
133
- today_at_time: "%02k:%M данас"
134
- yesterday_at_time: "%02k:%M јуче"
135
- tomorrow_at_time: "%02k:%M сутра"
136
- on_weekday_at_time: "%02k:%M %A"
137
- on_date_time_current_year: "%02k:%M %-d. %b"
133
+ today_at_time: Danas u %02k:%M
134
+ yesterday_at_time: Juče u %02k:%M
135
+ tomorrow_at_time: Sutra u %02k:%M
136
+ on_weekday_at_time: u %A u %02k:%M
137
+ on_date_time_current_year: "%-d. %b u %02k:%M"
138
138
  on_date: "%-d. %b %Y."
139
- ago: "%{time} ago"
139
+ ago: Pre %{time}
140
140
  x_hours_ago:
141
- few: пре %{count} сата
142
- one: пре %{count} сата
143
- other: пре %{count} сати
141
+ few: pre %{count} sata
142
+ one: pre %{count} sata
143
+ other: pre %{count} sati
144
144
  x_minutes_ago:
145
- few: пре %{count} минута
146
- one: пре %{count} минута
147
- other: пре %{count} минута
145
+ few: pre %{count} minuta
146
+ one: pre %{count} minuta
147
+ other: pre %{count} minuta
148
148
  cc_expiry_date: "%m/%Y"
149
- am: am
150
- pm: pm
151
- just_now: сада
152
- yesterday: јуче
149
+ am: pre podne
150
+ pm: po podne
151
+ just_now: Upravo sada
152
+ yesterday: juče
@@ -0,0 +1,15 @@
1
+ ---
2
+ sr:
3
+ date_time_translation:
4
+ today_at_time: Danas u %{time}
5
+ yesterday_at_time: Juče u %{time}
6
+ tomorrow_at_time: Sutra u %{time}
7
+ on_weekday_at_time: u %{weekday_name} u %{time}
8
+ on_date_time_current_year: "%{month_and_day} u %{time}"
9
+ on_date: "%{date}"
10
+ ago: Pre %{time}
11
+ am: pre podne
12
+ pm: po podne
13
+ just_now: Upravo sada
14
+ this_week: ove nedelje
15
+ this_month: ovog meseca
data/data/other/paths.txt CHANGED
@@ -874,6 +874,7 @@
874
874
  /data/other/hand_translated/ru.yml
875
875
  /data/other/hand_translated/sk.yml
876
876
  /data/other/hand_translated/sl.yml
877
+ /data/other/hand_translated/sr.yml
877
878
  /data/other/hand_translated/sv.yml
878
879
  /data/other/hand_translated/ta.yml
879
880
  /data/other/hand_translated/te.yml
@@ -11,6 +11,7 @@ module Worldwide
11
11
 
12
12
  @code = code.to_sym
13
13
  @name_cache = {}
14
+ @endonym_cache = {}
14
15
  end
15
16
 
16
17
  # Special CLDR value
@@ -47,7 +48,8 @@ module Worldwide
47
48
  end
48
49
 
49
50
  def name(locale: I18n.locale, context: :middle_of_sentence, throw: true)
50
- @name_cache[context] ||= I18n.with_locale(locale) do
51
+ cache_key = [locale&.to_sym, context]
52
+ @name_cache[cache_key] ||= I18n.with_locale(locale) do
51
53
  # Try to find a language name as specific as possible in the locale we wanted.
52
54
  exonym(target_locale: locale, context: context) ||
53
55
 
@@ -68,48 +70,46 @@ module Worldwide
68
70
  I18n::MissingTranslation.new(locale, "languages.#{code}")
69
71
  end
70
72
 
71
- if @name_cache[context].is_a?(I18n::MissingTranslation)
72
- raise @name_cache[context] if throw
73
+ if @name_cache[cache_key].is_a?(I18n::MissingTranslation)
74
+ raise @name_cache[cache_key] if throw
73
75
 
74
76
  return
75
77
  end
76
78
 
77
- @name_cache[context]
79
+ @name_cache[cache_key]
78
80
  end
79
81
 
80
82
  # The language's name in that language ("endonym").
81
83
  def endonym(context: :middle_of_sentence, throw: true)
82
- return @endonym if defined?(@endonym)
84
+ @endonym_cache[context] ||= begin
85
+ result = begin
86
+ lookup(code, locale: code)
87
+ rescue I18n::InvalidLocale => e
88
+ raise e if throw
89
+ end
83
90
 
84
- begin
85
- @endonym = lookup(code, locale: code)
86
- rescue I18n::InvalidLocale => e
87
- raise e if throw
91
+ result = Worldwide::Cldr::ContextTransforms.transform(result, :languages, context, locale: code) unless result.nil?
92
+ result || I18n::MissingTranslation.new(code, "languages.#{code}")
88
93
  end
89
94
 
90
- @endonym = Worldwide::Cldr::ContextTransforms.transform(@endonym, :languages, context, locale: code) unless @endonym.nil?
91
- @endonym ||= I18n::MissingTranslation.new(code, "languages.#{code}")
92
-
93
- if @endonym.is_a?(I18n::MissingTranslation)
94
- raise @endonym if throw
95
+ if @endonym_cache[context].is_a?(I18n::MissingTranslation)
96
+ raise @endonym_cache[context] if throw
95
97
 
96
98
  return
97
99
  end
98
100
 
99
- @endonym
101
+ @endonym_cache[context]
100
102
  end
101
103
 
102
104
  private
103
105
 
104
106
  def exonym(target_locale:, context:)
105
- return @exonym if defined?(@exonym)
106
-
107
107
  # Try to find a language name as specific as possible in the locale we wanted.
108
108
  # We chop the hyphens to get more and more general language names
109
109
  # (e.g., "Traditional Chinese as spoken in Hong Kong" (zh-Hant-HK) -> "Traditional Chinese" (zh-Hant) -> "Chinese" (zh))
110
110
  # and rely on `territories_suffix` to add in additional details after.
111
111
  # It's just a heuristic and definitely not perfect (for the really important ones, we can manually patch the data)
112
- @exonym = chop(code.to_s, "-").each_with_index do |language, i|
112
+ chop(code.to_s, "-").each_with_index do |language, i|
113
113
  result = lookup(language, locale: target_locale)
114
114
  if result
115
115
  transformed = Worldwide::Cldr::ContextTransforms.transform(result, :languages, context, locale: target_locale)
@@ -119,11 +119,8 @@ module Worldwide
119
119
  end
120
120
 
121
121
  def name_in_default_locale(context:)
122
- return @name_in_default_locale if defined?(@name_in_default_locale)
123
-
124
- @name_in_default_locale = lookup(code, locale: I18n.default_locale)
125
- @name_in_default_locale = Worldwide::Cldr::ContextTransforms.transform(@name_in_default_locale, :languages, context, locale: I18n.default_locale) unless @name_in_default_locale.nil?
126
- @name_in_default_locale
122
+ result = lookup(code, locale: I18n.default_locale)
123
+ Worldwide::Cldr::ContextTransforms.transform(result, :languages, context, locale: I18n.default_locale) unless result.nil?
127
124
  end
128
125
 
129
126
  def lookup(key, locale:)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Worldwide
4
- VERSION = "1.31.1"
4
+ VERSION = "2.0.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: worldwide
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.31.1
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
@@ -3935,8 +3935,21 @@ files:
3935
3935
  - data/cldr/locales/sr-Cyrl-XK/languages.yml
3936
3936
  - data/cldr/locales/sr-Cyrl-XK/plural_rules.yml
3937
3937
  - data/cldr/locales/sr-Cyrl-XK/territories.yml
3938
+ - data/cldr/locales/sr-Cyrl/calendars.yml
3938
3939
  - data/cldr/locales/sr-Cyrl/characters.yml
3940
+ - data/cldr/locales/sr-Cyrl/currencies.yml
3941
+ - data/cldr/locales/sr-Cyrl/delimiters.yml
3942
+ - data/cldr/locales/sr-Cyrl/fields.yml
3943
+ - data/cldr/locales/sr-Cyrl/languages.yml
3944
+ - data/cldr/locales/sr-Cyrl/lists.yml
3945
+ - data/cldr/locales/sr-Cyrl/numbers.yml
3939
3946
  - data/cldr/locales/sr-Cyrl/plural_rules.yml
3947
+ - data/cldr/locales/sr-Cyrl/plurals.rb
3948
+ - data/cldr/locales/sr-Cyrl/rbnf.yml
3949
+ - data/cldr/locales/sr-Cyrl/subdivisions.yml
3950
+ - data/cldr/locales/sr-Cyrl/territories.yml
3951
+ - data/cldr/locales/sr-Cyrl/timezones.yml
3952
+ - data/cldr/locales/sr-Cyrl/units.yml
3940
3953
  - data/cldr/locales/sr-Latn-BA/calendars.yml
3941
3954
  - data/cldr/locales/sr-Latn-BA/characters.yml
3942
3955
  - data/cldr/locales/sr-Latn-BA/currencies.yml
@@ -5596,6 +5609,7 @@ files:
5596
5609
  - data/other/hand_translated/ru.yml
5597
5610
  - data/other/hand_translated/sk.yml
5598
5611
  - data/other/hand_translated/sl.yml
5612
+ - data/other/hand_translated/sr.yml
5599
5613
  - data/other/hand_translated/sv.yml
5600
5614
  - data/other/hand_translated/ta.yml
5601
5615
  - data/other/hand_translated/te.yml
@@ -9543,7 +9557,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
9543
9557
  - !ruby/object:Gem::Version
9544
9558
  version: '0'
9545
9559
  requirements: []
9546
- rubygems_version: 4.0.22
9560
+ rubygems_version: 4.0.23
9547
9561
  specification_version: 4
9548
9562
  summary: Internationalization and localization APIs
9549
9563
  test_files: []