ruby-cldr 0.1.0 → 0.5.0
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +53 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +56 -46
- data/README.textile +8 -0
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/cldr/download.rb +1 -1
- data/lib/cldr/export.rb +74 -16
- data/lib/cldr/export/data.rb +34 -21
- data/lib/cldr/export/data/aliases.rb +47 -0
- data/lib/cldr/export/data/base.rb +4 -0
- data/lib/cldr/export/data/characters.rb +30 -0
- data/lib/cldr/export/data/country_codes.rb +29 -0
- data/lib/cldr/export/data/currencies.rb +13 -3
- data/lib/cldr/export/data/fields.rb +60 -0
- data/lib/cldr/export/data/languages.rb +1 -1
- data/lib/cldr/export/data/likely_subtags.rb +29 -0
- data/lib/cldr/export/data/numbers.rb +48 -6
- data/lib/cldr/export/data/parent_locales.rb +23 -0
- data/lib/cldr/export/data/plural_rules.rb +70 -0
- data/lib/cldr/export/data/plurals/rules.rb +12 -1
- data/lib/cldr/export/data/rbnf.rb +12 -4
- data/lib/cldr/export/data/region_currencies.rb +45 -0
- data/lib/cldr/export/data/segments_root.rb +61 -0
- data/lib/cldr/export/data/subdivisions.rb +35 -0
- data/lib/cldr/export/data/territories.rb +1 -1
- data/lib/cldr/export/data/territories_containment.rb +30 -0
- data/lib/cldr/export/data/timezones.rb +18 -2
- data/lib/cldr/export/data/transforms.rb +76 -0
- data/lib/cldr/export/data/variables.rb +42 -0
- data/lib/cldr/export/yaml.rb +5 -21
- data/lib/cldr/thor.rb +2 -2
- data/ruby-cldr.gemspec +157 -0
- data/test/export/data/calendars_test.rb +102 -52
- data/test/export/data/country_codes_test.rb +21 -0
- data/test/export/data/currencies_test.rb +40 -26
- data/test/export/data/languages_test.rb +69 -51
- data/test/export/data/numbers_test.rb +61 -62
- data/test/export/data/plurals_test.rb +10 -3
- data/test/export/data/subdivisions_test.rb +33 -0
- data/test/export/data/territories_containment_test.rb +10 -0
- data/test/export/data/territories_test.rb +12 -5
- data/test/export/data/timezones_test.rb +5 -8
- data/test/export_test.rb +57 -5
- data/test/format/time_test.rb +5 -5
- metadata +51 -33
@@ -11,33 +11,49 @@ class TestCldrDataCalendars < Test::Unit::TestCase
|
|
11
11
|
|
12
12
|
test 'calendars months :de' do
|
13
13
|
months = {
|
14
|
-
:format
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
14
|
+
:format => {
|
15
|
+
:abbreviated => { 1 => 'Jan.', 2 => 'Feb.', 3 => 'März', 4 => 'Apr.', 5 => 'Mai', 6 => 'Juni', 7 => 'Juli', 8 => 'Aug.', 9 => 'Sept.', 10 => 'Okt.', 11 => 'Nov.', 12 => 'Dez.' },
|
16
|
+
:narrow => { 1 => 'J', 2 => 'F', 3 => 'M', 4 => 'A', 5 => 'M', 6 => 'J', 7 => 'J', 8 => 'A', 9 => 'S', 10 => 'O', 11 => 'N', 12 => 'D' },
|
17
|
+
:wide => { 1 => 'Januar', 2 => 'Februar', 3 => 'März', 4 => 'April', 5 => 'Mai', 6 => 'Juni', 7 => 'Juli', 8 => 'August', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Dezember' },
|
18
18
|
},
|
19
19
|
:'stand-alone' => {
|
20
|
-
:abbreviated => { 1 => 'Jan', 2 => 'Feb', 3 => 'Mär', 4 => 'Apr', 5 => 'Mai', 6 => 'Jun', 7 => 'Jul', 8 => 'Aug', 9 => 'Sep', 10 => 'Okt', 11 => 'Nov', 12 => 'Dez'},
|
21
|
-
:narrow
|
22
|
-
:wide
|
23
|
-
}
|
20
|
+
:abbreviated => { 1 => 'Jan', 2 => 'Feb', 3 => 'Mär', 4 => 'Apr', 5 => 'Mai', 6 => 'Jun', 7 => 'Jul', 8 => 'Aug', 9 => 'Sep', 10 => 'Okt', 11 => 'Nov', 12 => 'Dez' },
|
21
|
+
:narrow => { 1 => 'J', 2 => 'F', 3 => 'M', 4 => 'A', 5 => 'M', 6 => 'J', 7 => 'J', 8 => 'A', 9 => 'S', 10 => 'O', 11 => 'N', 12 => 'D' },
|
22
|
+
:wide => { 1 => 'Januar', 2 => 'Februar', 3 => 'März', 4 => 'April', 5 => 'Mai', 6 => 'Juni', 7 => 'Juli', 8 => 'August', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Dezember' },
|
23
|
+
},
|
24
24
|
}
|
25
25
|
assert_equal months, gregorian[:months]
|
26
26
|
end
|
27
27
|
|
28
|
+
test 'calendars months :en' do
|
29
|
+
months = {
|
30
|
+
:format => {
|
31
|
+
:abbreviated => { 1 => "Jan", 2 => "Feb", 3 => "Mar", 4 => "Apr", 5 => "May", 6 => "Jun", 7 => "Jul", 8 => "Aug", 9 => "Sep", 10 => "Oct", 11 => "Nov", 12 => "Dec" },
|
32
|
+
:narrow => :"calendars.gregorian.months.stand-alone.narrow",
|
33
|
+
:wide => { 1 => "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6 => "June", 7 => "July", 8 => "August", 9 => "September", 10 => "October", 11 => "November", 12 => "December" },
|
34
|
+
},
|
35
|
+
:"stand-alone" => {
|
36
|
+
:abbreviated => :"calendars.gregorian.months.format.abbreviated",
|
37
|
+
:narrow => { 1 => "J", 2 => "F", 3 => "M", 4 => "A", 5 => "M", 6 => "J", 7 => "J", 8 => "A", 9 => "S", 10 => "O", 11 => "N", 12 => "D" },
|
38
|
+
:wide => :"calendars.gregorian.months.format.wide",
|
39
|
+
},
|
40
|
+
}
|
41
|
+
assert_equal months, gregorian(locale: :en)[:months]
|
42
|
+
end
|
43
|
+
|
28
44
|
test 'calendars days :de' do
|
29
45
|
days = {
|
30
|
-
:format
|
31
|
-
:wide
|
46
|
+
:format => {
|
47
|
+
:wide => { :sun => 'Sonntag', :mon => 'Montag', :tue => 'Dienstag', :wed => 'Mittwoch', :thu => 'Donnerstag', :fri => 'Freitag', :sat => 'Samstag' },
|
32
48
|
:abbreviated => { :sun => 'So.', :mon => 'Mo.', :tue => 'Di.', :wed => 'Mi.', :thu => 'Do.', :fri => 'Fr.', :sat => 'Sa.' },
|
33
|
-
:narrow
|
34
|
-
:short
|
49
|
+
:narrow => { :sun => 'S', :mon => 'M', :tue => 'D', :wed => 'M', :thu => 'D', :fri => 'F', :sat => 'S' },
|
50
|
+
:short => { :sun => 'So.', :mon => 'Mo.', :tue => 'Di.', :wed => 'Mi.', :thu => 'Do.', :fri => 'Fr.', :sat => 'Sa.' }
|
35
51
|
},
|
36
52
|
:'stand-alone' => {
|
37
53
|
:abbreviated => { :sun => 'So', :mon => 'Mo', :tue => 'Di', :wed => 'Mi', :thu => 'Do', :fri => 'Fr', :sat => 'Sa' },
|
38
|
-
:narrow
|
39
|
-
:short
|
40
|
-
:wide
|
54
|
+
:narrow => { :sun => 'S', :mon => 'M', :tue => 'D', :wed => 'M', :thu => 'D', :fri => 'F', :sat => 'S' },
|
55
|
+
:short => { :sun => 'So.', :mon => 'Mo.', :tue => 'Di.', :wed => 'Mi.', :thu => 'Do.', :fri => 'Fr.', :sat => 'Sa.' },
|
56
|
+
:wide => { :sun => 'Sonntag', :mon => 'Montag', :tue => 'Dienstag', :wed => 'Mittwoch', :thu => 'Donnerstag', :fri => 'Freitag', :sat => 'Samstag' },
|
41
57
|
}
|
42
58
|
}
|
43
59
|
assert_equal days, gregorian[:days]
|
@@ -45,15 +61,15 @@ class TestCldrDataCalendars < Test::Unit::TestCase
|
|
45
61
|
|
46
62
|
test 'calendars quarters :de' do
|
47
63
|
quarters = {
|
48
|
-
:format
|
49
|
-
:wide
|
50
|
-
:narrow
|
64
|
+
:format => {
|
65
|
+
:wide => { 1 => "1. Quartal", 2 => "2. Quartal", 3 => "3. Quartal", 4 => "4. Quartal" },
|
66
|
+
:narrow => { 1 => "1", 2 => "2", 3 => "3", 4 => "4" },
|
51
67
|
:abbreviated => { 1 => "Q1", 2 => "Q2", 3 => "Q3", 4 => "Q4" }
|
52
68
|
},
|
53
69
|
:"stand-alone" => {
|
54
70
|
:abbreviated => { 1 => "Q1", 2 => "Q2", 3 => "Q3", 4 => "Q4" },
|
55
|
-
:narrow
|
56
|
-
:wide
|
71
|
+
:narrow => { 1 => "1", 2 => "2", 3 => "3", 4 => "4" },
|
72
|
+
:wide => { 1 => "1. Quartal", 2 => "2. Quartal", 3 => "3. Quartal", 4 => "4. Quartal" }
|
57
73
|
}
|
58
74
|
}
|
59
75
|
assert_equal quarters, gregorian[:quarters]
|
@@ -61,14 +77,15 @@ class TestCldrDataCalendars < Test::Unit::TestCase
|
|
61
77
|
|
62
78
|
test 'calendars periods :de' do
|
63
79
|
periods = {
|
64
|
-
:
|
65
|
-
:
|
66
|
-
:
|
67
|
-
:
|
68
|
-
:
|
69
|
-
:
|
70
|
-
:
|
71
|
-
:
|
80
|
+
:afternoon1=>"mittags",
|
81
|
+
:afternoon2=>"nachmittags",
|
82
|
+
:am=>"AM",
|
83
|
+
:evening1=>"abends",
|
84
|
+
:midnight=>"Mitternacht",
|
85
|
+
:morning1=>"morgens",
|
86
|
+
:morning2=>"vormittags",
|
87
|
+
:night1=>"nachts",
|
88
|
+
:pm=>"PM",
|
72
89
|
}
|
73
90
|
assert_equal periods, gregorian[:periods][:format][:wide]
|
74
91
|
end
|
@@ -96,51 +113,84 @@ class TestCldrDataCalendars < Test::Unit::TestCase
|
|
96
113
|
|
97
114
|
test 'calendars date formats :de' do
|
98
115
|
formats = {
|
99
|
-
:full
|
100
|
-
:long
|
101
|
-
:medium
|
102
|
-
:short
|
116
|
+
:full => { :pattern => "EEEE, d. MMMM y" },
|
117
|
+
:long => { :pattern => "d. MMMM y" },
|
118
|
+
:medium => { :pattern => "dd.MM.y" },
|
119
|
+
:short => { :pattern => "dd.MM.yy" }
|
103
120
|
}
|
104
121
|
assert_equal formats, gregorian[:formats][:date]
|
105
122
|
end
|
106
123
|
|
107
124
|
test 'calendars time formats :de' do
|
108
125
|
formats = {
|
109
|
-
:full
|
110
|
-
:long
|
111
|
-
:medium
|
112
|
-
:short
|
126
|
+
:full => { :pattern => "HH:mm:ss zzzz" },
|
127
|
+
:long => { :pattern => "HH:mm:ss z" },
|
128
|
+
:medium => { :pattern => "HH:mm:ss" },
|
129
|
+
:short => { :pattern => "HH:mm" }
|
113
130
|
}
|
114
131
|
assert_equal formats, gregorian[:formats][:time]
|
115
132
|
end
|
116
133
|
|
117
134
|
test 'calendars datetime formats :de' do
|
118
135
|
formats = {
|
119
|
-
:full
|
120
|
-
:long
|
121
|
-
:medium
|
122
|
-
:short
|
136
|
+
:full => { :pattern => "{{date}} 'um' {{time}}" },
|
137
|
+
:long => { :pattern => "{{date}} 'um' {{time}}" },
|
138
|
+
:medium => { :pattern => "{{date}}, {{time}}" },
|
139
|
+
:short => { :pattern => "{{date}}, {{time}}" }
|
123
140
|
}
|
124
141
|
assert_equal formats, gregorian[:formats][:datetime]
|
125
142
|
end
|
126
143
|
|
127
144
|
test 'calendars fields :de' do
|
128
|
-
fields = {
|
129
|
-
:
|
130
|
-
:
|
131
|
-
:
|
132
|
-
:
|
133
|
-
:
|
134
|
-
:year => "Jahr",
|
135
|
-
:week => "Woche",
|
136
|
-
:weekday => "Wochentag",
|
145
|
+
fields = { :day => "Tag",
|
146
|
+
:"day-narrow" => "Tag",
|
147
|
+
:"day-short" => "Tag",
|
148
|
+
:dayOfYear => "Tag des Jahres",
|
149
|
+
:"dayOfYear-narrow" => "T/J",
|
150
|
+
:"dayOfYear-short" => "Tag des Jahres",
|
137
151
|
:dayperiod => "Tageshälfte",
|
138
|
-
:
|
139
|
-
:
|
152
|
+
:"dayperiod-narrow" => "Tagesh.",
|
153
|
+
:"dayperiod-short" => "Tageshälfte",
|
154
|
+
:era => "Epoche",
|
155
|
+
:"era-narrow" => "E",
|
156
|
+
:"era-short" => "Epoche",
|
157
|
+
:hour => "Stunde",
|
158
|
+
:"hour-narrow" => "Std.",
|
159
|
+
:"hour-short" => "Std.",
|
160
|
+
:minute => "Minute",
|
161
|
+
:"minute-narrow" => "Min.",
|
162
|
+
:"minute-short" => "Min.",
|
163
|
+
:month => "Monat",
|
164
|
+
:"month-narrow" => "M",
|
165
|
+
:"month-short" => "Monat",
|
166
|
+
:quarter => "Quartal",
|
167
|
+
:"quarter-narrow" => "Q",
|
168
|
+
:"quarter-short" => "Quart.",
|
169
|
+
:second => "Sekunde",
|
170
|
+
:"second-narrow" => "Sek.",
|
171
|
+
:"second-short" => "Sek.",
|
172
|
+
:week => "Woche",
|
173
|
+
:"week-narrow" => "W",
|
174
|
+
:"week-short" => "Woche",
|
175
|
+
:weekOfMonth => "Woche des Monats",
|
176
|
+
:"weekOfMonth-narrow" => "Wo. des Monats",
|
177
|
+
:"weekOfMonth-short" => "W/M",
|
178
|
+
:weekday => "Wochentag",
|
179
|
+
:"weekday-narrow" => "Wochent.",
|
180
|
+
:"weekday-short" => "Wochentag",
|
181
|
+
:weekdayOfMonth => "Wochentag",
|
182
|
+
:"weekdayOfMonth-narrow" => "WT",
|
183
|
+
:"weekdayOfMonth-short" => "Wochentag",
|
184
|
+
:year => "Jahr",
|
185
|
+
:"year-narrow" => "J",
|
186
|
+
:"year-short" => "Jahr",
|
187
|
+
:zone => "Zeitzone",
|
188
|
+
:"zone-narrow" => "Zeitz.",
|
189
|
+
:"zone-short" => "Zeitzone",
|
140
190
|
}
|
141
191
|
assert_equal fields, gregorian[:fields]
|
142
192
|
end
|
143
|
-
|
193
|
+
|
144
194
|
test 'merged calendars for de-AT contains all date format and stand-alone name types' do
|
145
195
|
assert_equal %w(abbreviated narrow wide), gregorian(:merged => true)[:months][:format].keys.map { |key| key.to_s }.sort
|
146
196
|
assert_equal %w(abbreviated narrow wide), gregorian(:merged => true)[:months][:"stand-alone"].keys.map { |key| key.to_s }.sort
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'))
|
4
|
+
|
5
|
+
class TestCldrDataCountryCodes < Test::Unit::TestCase
|
6
|
+
test 'country codes' do
|
7
|
+
expected =
|
8
|
+
{
|
9
|
+
AA: {
|
10
|
+
"numeric" => "958",
|
11
|
+
"alpha3" => "AAA",
|
12
|
+
},
|
13
|
+
AC: {
|
14
|
+
"alpha3" => "ASC",
|
15
|
+
}
|
16
|
+
}
|
17
|
+
country_codes = Cldr::Export::Data::CountryCodes.new
|
18
|
+
assert_equal(country_codes[:country_codes][:AA], expected[:AA])
|
19
|
+
assert_equal(country_codes[:country_codes][:AC], expected[:AC])
|
20
|
+
end
|
21
|
+
end
|
@@ -5,34 +5,48 @@ require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'
|
|
5
5
|
class TestCldrCurrencies < Test::Unit::TestCase
|
6
6
|
test 'currencies :de' do
|
7
7
|
codes = [:ADP, :AED, :AFA, :AFN, :ALL, :AMD, :ANG, :AOA, :AOK, :AON, :AOR,
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
8
|
+
:ARA, :ARP, :ARS, :ATS, :AUD, :AWG, :AZM, :AZN, :BAD, :BAM, :BBD,
|
9
|
+
:BDT, :BEC, :BEF, :BEL, :BGL, :BGN, :BHD, :BIF, :BMD, :BND, :BOB,
|
10
|
+
:BOP, :BOV, :BRB, :BRC, :BRE, :BRL, :BRN, :BRR, :BRZ, :BSD, :BTN,
|
11
|
+
:BUK, :BWP, :BYB, :BYR, :BZD, :CAD, :CDF, :CHE, :CHF, :CHW, :CLF,
|
12
|
+
:CLP, :CNY, :COP, :CRC, :CSD, :CSK, :CUC, :CUP, :CVE, :CYP, :CZK,
|
13
|
+
:DDM, :DEM, :DJF, :DKK, :DOP, :DZD, :ECS, :ECV, :EEK, :EGP, :ERN,
|
14
|
+
:ESA, :ESB, :ESP, :ETB, :EUR, :FIM, :FJD, :FKP, :FRF, :GBP, :GEK,
|
15
|
+
:GEL, :GHC, :GHS, :GIP, :GMD, :GNF, :GNS, :GQE, :GRD, :GTQ, :GWE,
|
16
|
+
:GWP, :GYD, :HKD, :HNL, :HRD, :HRK, :HTG, :HUF, :IDR, :IEP, :ILP,
|
17
|
+
:ILS, :INR, :IQD, :IRR, :ISK, :ITL, :JMD, :JOD, :JPY, :KES, :KGS,
|
18
|
+
:KHR, :KMF, :KPW, :KRW, :KWD, :KYD, :KZT, :LAK, :LBP, :LKR, :LRD,
|
19
|
+
:LSL, :LTL, :LTT, :LUC, :LUF, :LUL, :LVL, :LVR, :LYD, :MAD, :MAF,
|
20
|
+
:MDL, :MGA, :MGF, :MKD, :MLF, :MMK, :MNT, :MOP, :MRO, :MTL, :MTP,
|
21
|
+
:MUR, :MVR, :MWK, :MXN, :MXP, :MXV, :MYR, :MZE, :MZM, :MZN, :NAD,
|
22
|
+
:NGN, :NIC, :NIO, :NLG, :NOK, :NPR, :NZD, :OMR, :PAB, :PEI, :PEN,
|
23
|
+
:PES, :PGK, :PHP, :PKR, :PLN, :PLZ, :PTE, :PYG, :QAR, :RHD, :ROL,
|
24
|
+
:RON, :RSD, :RUB, :RUR, :RWF, :SAR, :SBD, :SCR, :SDD, :SDG, :SDP,
|
25
|
+
:SEK, :SGD, :SHP, :SIT, :SKK, :SLL, :SOS, :SRD, :SRG, :SSP, :STD,
|
26
|
+
:SUR, :SVC, :SYP, :SZL, :THB, :TJR, :TJS, :TMM, :TMT, :TND, :TOP,
|
27
|
+
:TPE, :TRL, :TRY, :TTD, :TWD, :TZS, :UAH, :UAK, :UGS, :UGX, :USD,
|
28
|
+
:USN, :USS, :UYP, :UYU, :UZS, :VEB, :VEF, :VND, :VUV, :WST, :XAF,
|
29
|
+
:XAG, :XAU, :XBA, :XBB, :XBC, :XBD, :XCD, :XDR, :XEU, :XFO, :XFU,
|
30
|
+
:XOF, :XPD, :XPF, :XPT, :XRE, :XTS, :XXX, :YDD, :YER, :YUD, :YUM,
|
31
|
+
:YUN, :ZAL, :ZAR, :ZMK, :ZMW, :ZRN, :ZRZ, :ZWD, :ZWL, :ZWR, :ALK,
|
32
|
+
:ARL, :ARM, :BAN, :BGM, :BGO, :BOL, :CLE, :CNX, :COU, :ILR, :ISJ,
|
33
|
+
:KRH, :KRO, :MCF, :MDC, :MKN, :MVP, :UYI, :VNN, :XSU, :XUA, :YUR,
|
34
|
+
:BYN, :CNH, :MRU, :STN, :VES]
|
32
35
|
|
33
36
|
currencies = Cldr::Export::Data::Currencies.new('de')[:currencies]
|
34
|
-
|
35
|
-
|
37
|
+
assert_empty codes - currencies.keys, "Unexpected missing currencies"
|
38
|
+
assert_empty currencies.keys - codes, "Unexpected extra currencies"
|
39
|
+
assert_equal({ :name => 'Euro', :'narrow_symbol'=>'€', :one => 'Euro', :other => 'Euro', :symbol => '€' }, currencies[:EUR])
|
40
|
+
end
|
41
|
+
|
42
|
+
test 'currencies populates symbol-narrow when narrow symbol is not equal to the regular symbol' do
|
43
|
+
currencies = Cldr::Export::Data::Currencies.new('root')[:currencies]
|
44
|
+
assert_equal({ :symbol=>'US$', :'narrow_symbol'=>'$'}, currencies[:USD])
|
45
|
+
end
|
46
|
+
|
47
|
+
test 'currencies uses the label to populate :one when count is unavailable' do
|
48
|
+
currencies = Cldr::Export::Data::Currencies.new('ak')[:currencies]
|
49
|
+
assert_equal({ :name => 'Yuan', :one => 'Yuan' }, currencies[:CNY])
|
36
50
|
end
|
37
51
|
|
38
52
|
# Cldr::Export::Data.locales.each do |locale|
|
@@ -4,62 +4,80 @@ require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'
|
|
4
4
|
|
5
5
|
class TestCldrDataLanguages < Test::Unit::TestCase
|
6
6
|
test 'languages :de' do
|
7
|
-
codes = [:aa, :ab, :ace, :ach, :ada, :ady, :ae, :
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
7
|
+
codes = [:aa, :ab, :ace, :ach, :ada, :ady, :ae, :aeb, :af,
|
8
|
+
:afh, :agq, :ain, :ak, :akk, :akz, :ale, :aln, :alt, :am,
|
9
|
+
:an, :ang, :anp, :ar, :"ar-001", :arc, :arn, :aro, :arp,
|
10
|
+
:arq, :ars, :arw, :ary, :arz, :as, :asa, :ase, :ast, :av,
|
11
|
+
:avk, :awa, :ay, :az, :ba, :bal, :ban, :bar, :bas, :bax,
|
12
|
+
:bbc, :bbj, :be, :bej, :bem, :bew, :bez, :bfd, :bfq, :bg,
|
13
|
+
:bgn, :bho, :bi, :bik, :bin, :bjn, :bkm, :bla, :bm, :bn,
|
14
|
+
:bo, :bpy, :bqi, :br, :bra, :brh, :brx, :bs, :bss, :bua,
|
15
|
+
:bug, :bum, :byn, :byv, :ca, :cad, :car, :cay, :cch, :ce,
|
16
|
+
:ceb, :cgg, :ch, :chb, :chg, :chk, :chm, :chn, :cho, :chp,
|
17
|
+
:chr, :chy, :ckb, :co, :cop, :cps, :cr, :crh, :crs, :cs,
|
18
|
+
:csb, :cu, :cv, :cy, :da, :dak, :dar, :dav, :de, :"de-AT",
|
19
|
+
:"de-CH", :del, :den, :dgr, :din, :dje, :doi, :dsb, :dtp,
|
20
|
+
:dua, :dum, :dv, :dyo, :dyu, :dz, :dzg, :ebu, :ee, :efi,
|
21
|
+
:egl, :egy, :eka, :el, :elx, :en, :enm,
|
22
|
+
:eo, :es, :esu, :et, :eu, :ewo, :ext, :fa, :fan, :fat, :ff,
|
23
|
+
:fi, :fil, :fit, :fj, :fo, :fon, :fr, :frc, :frm, :fro,
|
24
|
+
:frp, :frr, :frs, :fur, :fy, :ga, :gaa, :gag, :gan, :gay,
|
25
|
+
:gba, :gbz, :gd, :gez, :gil, :gl, :glk, :gmh, :gn, :goh,
|
26
|
+
:gom, :gon, :gor, :got, :grb, :grc, :gsw, :gu, :guc, :gur,
|
27
|
+
:guz, :gv, :gwi, :ha, :hai, :hak, :haw, :he, :hi, :hif,
|
28
|
+
:hil, :hit, :hmn, :ho, :hr, :hsb, :hsn, :ht, :hu, :hup,
|
29
|
+
:hy, :hz, :ia, :iba, :ibb, :id, :ie, :ig, :ii, :ik, :ilo,
|
30
|
+
:inh, :io, :is, :it, :iu, :izh, :ja, :jam, :jbo, :jgo,
|
31
|
+
:jmc, :jpr, :jrb, :jut, :jv, :ka, :kaa, :kab, :kac,
|
32
|
+
:kaj, :kam, :kaw, :kbd, :kbl, :kcg, :kde, :kea, :ken,
|
33
|
+
:kfo, :kg, :kgp, :kha, :kho, :khq, :khw, :ki, :kiu, :kj,
|
34
|
+
:kk, :kkj, :kl, :kln, :km, :kmb, :kn, :ko, :koi, :kok,
|
35
|
+
:kos, :kpe, :kr, :krc, :kri, :krj, :krl, :kru, :ks, :ksb,
|
36
|
+
:ksf, :ksh, :ku, :kum, :kut, :kv, :kw, :ky, :la, :lad,
|
37
|
+
:lag, :lah, :lam, :lb, :lez, :lfn, :lg, :li, :lij, :liv,
|
38
|
+
:lkt, :lmo, :ln, :lo, :lol, :lou, :loz, :lrc, :lt, :ltg,
|
39
|
+
:lu, :lua, :lui, :lun, :luo, :lus, :luy, :lv, :lzh, :lzz,
|
40
|
+
:mad, :maf, :mag, :mai, :mak, :man, :mas, :mde, :mdf, :mdr,
|
41
|
+
:men, :mer, :mfe, :mg, :mga, :mgh, :mgo, :mh, :mi, :mic,
|
42
|
+
:min, :mk, :ml, :mn, :mnc, :mni, :moh, :mos, :mr, :mrj, :ms,
|
43
|
+
:mt, :mua, :mul, :mus, :mwl, :mwr, :mwv, :my, :mye, :myv,
|
44
|
+
:mzn, :na, :nan, :nap, :naq, :nb, :nd, :nds, :"nds-NL", :ne,
|
45
|
+
:new, :ng, :nia, :niu, :njo, :nl, :"nl-BE", :nmg, :nn, :nnh,
|
46
|
+
:no, :nog, :non, :nov, :nqo, :nr, :nso, :nus, :nv, :nwc, :ny,
|
47
|
+
:nym, :nyn, :nyo, :nzi, :oc, :oj, :om, :or, :os, :osa, :ota,
|
48
|
+
:pa, :pag, :pal, :pam, :pap, :pau, :pcd, :pcm, :pdc, :pdt,
|
49
|
+
:peo, :pfl, :phn, :pi, :pl, :pms, :pnt, :pon, :prg, :pro,
|
50
|
+
:ps, :pt, :qu, :quc, :qug, :raj, :rap, :rar, :rgn, :rif, :rm,
|
51
|
+
:rn, :ro, :"ro-MD", :rof, :rom, :root, :rtm, :ru, :rue, :rug,
|
52
|
+
:rup, :rw, :rwk, :sa, :sad, :sah, :sam, :saq, :sas, :sat, :saz,
|
53
|
+
:sba, :sbp, :sc, :scn, :sco, :sd, :sdc, :sdh, :se, :see, :seh,
|
54
|
+
:sei, :sel, :ses, :sg, :sga, :sgs, :sh, :shi, :shn, :shu, :si,
|
55
|
+
:sid, :sk, :sl, :sli, :sly, :sm, :sma, :smj, :smn, :sms, :sn,
|
56
|
+
:snk, :so, :sog, :sq, :sr, :srn, :srr, :ss, :ssy, :st, :stq,
|
57
|
+
:su, :suk, :sus, :sux, :sv, :sw, :"sw-CD", :swb, :syc, :syr,
|
58
|
+
:szl, :ta, :tcy, :te, :tem, :teo, :ter, :tet, :tg, :th, :ti,
|
59
|
+
:tig, :tiv, :tk, :tkl, :tkr, :tl, :tlh, :tli, :tly, :tmh,
|
60
|
+
:tn, :to, :tog, :tpi, :tr, :tru, :trv, :ts, :tsd, :tsi, :tt,
|
61
|
+
:ttt, :tum, :tvl, :tw, :twq, :ty, :tyv, :tzm, :udm, :ug, :uga,
|
62
|
+
:uk, :umb, :und, :ur, :uz, :vai, :ve, :vec, :vep, :vi, :vls,
|
63
|
+
:vmf, :vo, :vot, :vro, :vun, :wa, :wae, :wal, :war, :was,
|
64
|
+
:wbp, :wo, :wuu, :xal, :xh, :xmf, :xog, :yao, :yap, :yav,
|
65
|
+
:ybb, :yi, :yo, :yrl, :yue, :za, :zap, :zbl, :zea, :zen,
|
66
|
+
:zgh, :zh, :"zh-Hans", :"zh-Hant", :zu, :zun, :zxx, :zza]
|
57
67
|
|
58
68
|
languages = Cldr::Export::Data::Languages.new('de')[:languages]
|
59
|
-
|
69
|
+
|
70
|
+
assert_empty codes - languages.keys, "Unexpected missing languages"
|
71
|
+
assert_empty languages.keys - codes, "Unexpected extra languages"
|
60
72
|
assert_equal('Deutsch', languages[:de])
|
61
73
|
end
|
62
74
|
|
75
|
+
test 'languages does not overwrite long form with the short one' do
|
76
|
+
languages = Cldr::Export::Data::Languages.new(:en)[:languages]
|
77
|
+
|
78
|
+
assert_equal "American English", languages[:"en-US"]
|
79
|
+
end
|
80
|
+
|
63
81
|
# Cldr::Export::Data.locales.each do |locale|
|
64
82
|
# test "extract languages for #{locale}" do
|
65
83
|
# assert_nothing_raised do
|
@@ -5,83 +5,82 @@ require File.expand_path(File.join(File.dirname(__FILE__) + '/../../test_helper'
|
|
5
5
|
class TestCldrDataNumbers < Test::Unit::TestCase
|
6
6
|
test "number symbols :de" do
|
7
7
|
expected = {
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:superscripting_exponent => "·"
|
8
|
+
:decimal => ",",
|
9
|
+
:exponential => "E",
|
10
|
+
:group => ".",
|
11
|
+
:infinity => "∞",
|
12
|
+
:list => ";",
|
13
|
+
:minus_sign => "-",
|
14
|
+
:nan => "NaN",
|
15
|
+
:per_mille => "‰",
|
16
|
+
:percent_sign => "%",
|
17
|
+
:plus_sign => "+",
|
18
|
+
:superscripting_exponent => "·",
|
19
|
+
:time_separator => ":",
|
19
20
|
}
|
20
21
|
assert_equal expected, Cldr::Export::Data::Numbers.new('de')[:numbers][:symbols]
|
21
22
|
end
|
22
23
|
|
23
24
|
test "number formats :de" do
|
24
25
|
expected = {
|
26
|
+
:currency => {
|
27
|
+
:number_system => "latn",
|
28
|
+
:patterns => {
|
29
|
+
:default => "#,##0.00 ¤",
|
30
|
+
"short" => {
|
31
|
+
"1000" => { "one" => "0", "other" => "0" },
|
32
|
+
"10000" => { "one" => "0", "other" => "0" },
|
33
|
+
"100000" => { "one" => "0", "other" => "0" },
|
34
|
+
"1000000" => { "one" => "0 Mio'.' ¤", "other" => "0 Mio'.' ¤" },
|
35
|
+
"10000000" => { "one" => "00 Mio'.' ¤", "other" => "00 Mio'.' ¤" },
|
36
|
+
"100000000" => { "one" => "000 Mio'.' ¤", "other" => "000 Mio'.' ¤" },
|
37
|
+
"1000000000" => { "one" => "0 Mrd'.' ¤", "other" => "0 Mrd'.' ¤" },
|
38
|
+
"10000000000" => { "one" => "00 Mrd'.' ¤", "other" => "00 Mrd'.' ¤" },
|
39
|
+
"100000000000" => { "one" => "000 Mrd'.' ¤", "other" => "000 Mrd'.' ¤" },
|
40
|
+
"1000000000000" => { "one" => "0 Bio'.' ¤", "other" => "0 Bio'.' ¤" },
|
41
|
+
"10000000000000" => { "one" => "00 Bio'.' ¤", "other" => "00 Bio'.' ¤" },
|
42
|
+
"100000000000000" => { "one" => "000 Bio'.' ¤", "other" => "000 Bio'.' ¤" } } },
|
43
|
+
:unit => { "one" => "{0} {1}", "other" => "{0} {1}" } },
|
25
44
|
:decimal => {
|
26
45
|
:number_system => "latn",
|
27
46
|
:patterns => {
|
28
47
|
:default => "#,##0.###",
|
29
48
|
"long" => {
|
30
|
-
"1000" => "0 Tausend",
|
31
|
-
"10000" => "00 Tausend",
|
32
|
-
"100000" => "000 Tausend",
|
33
|
-
"1000000" => "0 Millionen",
|
34
|
-
"10000000" => "00 Millionen",
|
35
|
-
"100000000" => "000 Millionen",
|
36
|
-
"1000000000" => "0 Milliarden",
|
37
|
-
"10000000000" => "00 Milliarden",
|
38
|
-
"100000000000" => "000 Milliarden",
|
39
|
-
"1000000000000" => "0 Billionen",
|
40
|
-
"10000000000000" => "00 Billionen",
|
41
|
-
"100000000000000" => "000 Billionen"
|
42
|
-
},
|
49
|
+
"1000" => { "one" => "0 Tausend", "other" => "0 Tausend" },
|
50
|
+
"10000" => { "one" => "00 Tausend", "other" => "00 Tausend" },
|
51
|
+
"100000" => { "one" => "000 Tausend", "other" => "000 Tausend" },
|
52
|
+
"1000000" => { "one" => "0 Million", "other" => "0 Millionen" },
|
53
|
+
"10000000" => { "one" => "00 Millionen", "other" => "00 Millionen" },
|
54
|
+
"100000000" => { "one" => "000 Millionen", "other" => "000 Millionen" },
|
55
|
+
"1000000000" => { "one" => "0 Milliarde", "other" => "0 Milliarden" },
|
56
|
+
"10000000000" => { "one" => "00 Milliarden", "other" => "00 Milliarden" },
|
57
|
+
"100000000000" => { "one" => "000 Milliarden", "other" => "000 Milliarden" },
|
58
|
+
"1000000000000" => { "one" => "0 Billion", "other" => "0 Billionen" },
|
59
|
+
"10000000000000" => { "one" => "00 Billionen", "other" => "00 Billionen" },
|
60
|
+
"100000000000000" => { "one" => "000 Billionen", "other" => "000 Billionen" } },
|
43
61
|
"short" => {
|
44
|
-
"1000" => "0
|
45
|
-
"10000" => "
|
46
|
-
"100000" => "
|
47
|
-
"1000000" => "0 Mio",
|
48
|
-
"10000000" => "00 Mio",
|
49
|
-
"100000000" => "000 Mio",
|
50
|
-
"1000000000" => "0 Mrd",
|
51
|
-
"10000000000" => "00 Mrd",
|
52
|
-
"100000000000" => "000 Mrd",
|
53
|
-
"1000000000000" => "0 Bio",
|
54
|
-
"10000000000000" => "00 Bio",
|
55
|
-
"100000000000000" => "000 Bio"
|
56
|
-
|
57
|
-
|
58
|
-
},
|
59
|
-
:scientific => {
|
60
|
-
:number_system => "latn",
|
61
|
-
:patterns => {
|
62
|
-
:default => "#E0"
|
63
|
-
}
|
64
|
-
},
|
65
|
-
:percent => {
|
66
|
-
:number_system => "latn",
|
67
|
-
:patterns => {
|
68
|
-
:default => "#,##0 %" # includes a non-breaking space (\302\240)
|
69
|
-
}
|
70
|
-
},
|
71
|
-
:currency => {
|
72
|
-
:number_system => "latn",
|
73
|
-
:patterns => {
|
74
|
-
:default => "#,##0.00 ¤", # includes a non-breaking space (\302\240)
|
75
|
-
},
|
76
|
-
:unit => {
|
77
|
-
"one" => "{0} {1}",
|
78
|
-
"other" => "{0} {1}"
|
79
|
-
}
|
80
|
-
}
|
81
|
-
}
|
62
|
+
"1000" => { "one" => "0", "other" => "0" },
|
63
|
+
"10000" => { "one" => "0", "other" => "0" },
|
64
|
+
"100000" => { "one" => "0", "other" => "0" },
|
65
|
+
"1000000" => { "one" => "0 Mio'.'", "other" => "0 Mio'.'" },
|
66
|
+
"10000000" => { "one" => "00 Mio'.'", "other" => "00 Mio'.'" },
|
67
|
+
"100000000" => { "one" => "000 Mio'.'", "other" => "000 Mio'.'" },
|
68
|
+
"1000000000" => { "one" => "0 Mrd'.'", "other" => "0 Mrd'.'" },
|
69
|
+
"10000000000" => { "one" => "00 Mrd'.'", "other" => "00 Mrd'.'" },
|
70
|
+
"100000000000" => { "one" => "000 Mrd'.'", "other" => "000 Mrd'.'" },
|
71
|
+
"1000000000000" => { "one" => "0 Bio'.'", "other" => "0 Bio'.'" },
|
72
|
+
"10000000000000" => { "one" => "00 Bio'.'", "other" => "00 Bio'.'" },
|
73
|
+
"100000000000000" => { "one" => "000 Bio'.'", "other" => "000 Bio'.'" } } } },
|
74
|
+
:percent => { :number_system => "latn", :patterns => { :default => "#,##0 %" } },
|
75
|
+
:scientific => { :number_system => "latn", :patterns => { :default => "#E0" } } }
|
82
76
|
assert_equal expected, Cldr::Export::Data::Numbers.new('de')[:numbers][:formats]
|
83
77
|
end
|
84
78
|
|
79
|
+
test "redirects in root locale" do
|
80
|
+
assert_equal :"numbers.formats.decimal.patterns.short",
|
81
|
+
Cldr::Export::Data::Numbers.new('root')[:numbers][:formats][:decimal][:patterns]['long']
|
82
|
+
end
|
83
|
+
|
85
84
|
# Cldr::Export::Data.locales.each do |locale|
|
86
85
|
# test "extract number_symbols for #{locale}" do
|
87
86
|
# assert_nothing_raised do
|