Skip to content

Commit 84ee21a

Browse files
Merge pull request #19 from telerik/locale-currency
fix: load locale currency on demand
2 parents 5080821 + 738bcd1 commit 84ee21a

File tree

3 files changed

+80
-72
lines changed

3 files changed

+80
-72
lines changed

src/cldr/default-data.js

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ const defaultData = {
132132
"MMMd": "MMM d",
133133
"MMMEd": "E, MMM d",
134134
"MMMMd": "MMMM d",
135-
"MMMMW": "'week' W 'of' MMM",
135+
"MMMMW-count-one": "'week' W 'of' MMMM",
136+
"MMMMW-count-other": "'week' W 'of' MMMM",
136137
"ms": "mm:ss",
137138
"y": "y",
138139
"yM": "M/y",
@@ -144,7 +145,8 @@ const defaultData = {
144145
"yMMMM": "MMMM y",
145146
"yQQQ": "QQQ y",
146147
"yQQQQ": "QQQQ y",
147-
"yw": "'week' w 'of' y"
148+
"yw-count-one": "'week' w 'of' y",
149+
"yw-count-other": "'week' w 'of' y"
148150
},
149151
"appendItems": {
150152
"Day": "{0} ({2}: {1})",
@@ -582,53 +584,53 @@ const defaultData = {
582584
"wide": "era"
583585
},
584586
"year": {
585-
"wide": 'year',
586-
"short": 'yr.',
587-
"narrow": 'yr.'
587+
"wide": "year",
588+
"short": "yr.",
589+
"narrow": "yr."
588590
},
589591
"quarter": {
590-
"wide": 'quarter',
591-
"short": 'qtr.',
592-
"narrow": 'qtr.'
592+
"wide": "quarter",
593+
"short": "qtr.",
594+
"narrow": "qtr."
593595
},
594596
"month": {
595-
"wide": 'month',
596-
"short": 'mo.',
597-
"narrow": 'mo.'
597+
"wide": "month",
598+
"short": "mo.",
599+
"narrow": "mo."
598600
},
599601
"week": {
600-
"wide": 'week',
601-
"short": 'wk.',
602-
"narrow": 'wk.'
602+
"wide": "week",
603+
"short": "wk.",
604+
"narrow": "wk."
603605
},
604606
"day": {
605-
"wide": 'day',
606-
"short": 'day',
607-
"narrow": 'day'
607+
"wide": "day",
608+
"short": "day",
609+
"narrow": "day"
608610
},
609611
"weekday": {
610-
"wide": 'day of the week'
612+
"wide": "day of the week"
611613
},
612614
"dayperiod": {
613-
"wide": 'AM/PM'
615+
"wide": "AM/PM"
614616
},
615617
"hour": {
616-
"wide": 'hour',
617-
"short": 'hr.',
618-
"narrow": 'hr.'
618+
"wide": "hour",
619+
"short": "hr.",
620+
"narrow": "hr."
619621
},
620622
"minute": {
621-
"wide": 'minute',
622-
"short": 'min.',
623-
"narrow": 'min.'
623+
"wide": "minute",
624+
"short": "min.",
625+
"narrow": "min."
624626
},
625627
"second": {
626-
"wide": 'second',
627-
"short": 'sec.',
628-
"narrow": 'sec.'
628+
"wide": "second",
629+
"short": "sec.",
630+
"narrow": "sec."
629631
},
630632
"zone": {
631-
"wide": 'time zone'
633+
"wide": "time zone"
632634
}
633635
}
634636
}
@@ -655,4 +657,4 @@ const defaultData = {
655657
}
656658
}
657659
};
658-
export default defaultData;
660+
export default defaultData;

src/cldr/load-numbers.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { cldr } from './info';
2-
import { territoryCurrencyCode } from './currency';
3-
import localeTerritory from './territory';
42

53
const LATIN_NUMBER_FORMATS = "Formats-numberSystem-latn";
64
const LATIN_NUMBER_SYMBOLS = "symbols-numberSystem-latn";
@@ -59,10 +57,6 @@ export default function loadNumbersInfo(locale, info) {
5957
}
6058
} else if (field === "currencies") {
6159
numbers.currencies = info[field];
62-
const territory = localeTerritory(localeInfo);
63-
if (territory && cldr.supplemental.currencyData) {
64-
numbers.localeCurrency = territoryCurrencyCode(territory);
65-
}
6660
}
6761
}
6862
}

test/cldr.js

Lines changed: 48 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ describe('load', () => {
2929
});
3030

3131
describe('load numbers', () => {
32+
3233
it('should set symbols', () => {
3334
const symbols = cldr.bg.numbers.symbols;
3435
expect(symbols.decimal).toEqual(",");
@@ -43,34 +44,45 @@ describe('load numbers', () => {
4344
});
4445

4546
it('should set currency pattern', () => {
46-
const currency = cldr.bg.numbers.currency;
47-
expect(currency.patterns[0]).toEqual("n $");
48-
expect(currency.groupSize.length).toEqual(1);
49-
expect(currency.groupSize[0]).toEqual(3);
50-
});
51-
52-
it('should set currency unit patterns', () => {
53-
const currency = cldr.bg.numbers.currency;
54-
expect(currency["unitPattern-count-one"]).toEqual("n $");
55-
expect(currency["unitPattern-count-other"]).toEqual("n $");
56-
});
57-
58-
it('should set percent pattern', () => {
59-
const percent = cldr.bg.numbers.percent;
60-
expect(percent.patterns[0]).toEqual("n%");
61-
expect(percent.groupSize.length).toEqual(1);
62-
expect(percent.groupSize[0]).toEqual(3);
63-
});
64-
65-
it('should set currencies', () => {
66-
const currencies = cldr.bg.numbers.currencies;
67-
expect(currencies).toBeDefined();
68-
});
69-
70-
it('should set localeCurrency', () => {
71-
const localeCurrency = cldr.bg.numbers.localeCurrency;
72-
expect(localeCurrency).toEqual("BGN");
73-
});
47+
const currency = cldr.bg.numbers.currency;
48+
expect(currency.patterns[0]).toEqual("n $");
49+
expect(currency.groupSize.length).toEqual(1);
50+
expect(currency.groupSize[0]).toEqual(3);
51+
});
52+
53+
it('should set currency unit patterns', () => {
54+
const currency = cldr.bg.numbers.currency;
55+
expect(currency["unitPattern-count-one"]).toEqual("n $");
56+
expect(currency["unitPattern-count-other"]).toEqual("n $");
57+
});
58+
59+
it('should set percent pattern', () => {
60+
const percent = cldr.bg.numbers.percent;
61+
expect(percent.patterns[0]).toEqual("n%");
62+
expect(percent.groupSize.length).toEqual(1);
63+
expect(percent.groupSize[0]).toEqual(3);
64+
});
65+
66+
describe('load currencies', () => {
67+
68+
it('should set currencies', () => {
69+
const currencies = cldr.bg.numbers.currencies;
70+
expect(currencies).toBeDefined();
71+
});
72+
73+
it('should not throw error if territory currency is missing in currencyData', () => {
74+
expect(() => {
75+
const bgCurrencies = cldr.supplemental.currencyData.region.BG;
76+
try {
77+
delete cldr.supplemental.currencyData.region.BG;
78+
load(currencies);
79+
} finally {
80+
cldr.supplemental.currencyData.region.BG = bgCurrencies;
81+
}
82+
}).not.toThrow();
83+
});
84+
});
85+
7486
});
7587

7688
describe('load calendar', () => {
@@ -183,8 +195,8 @@ describe('load calendar', () => {
183195

184196
expect(dateFields.wide).toBeDefined();
185197
expect(dateFields.wide).toEqual('ера');
186-
expect(dateFields.short).not.toBeDefined();
187-
expect(dateFields.narrow).not.toBeDefined();
198+
expect(dateFields.short).toEqual('ера');
199+
expect(dateFields.narrow).toEqual('ера');
188200
});
189201

190202
it('should set year display name', () => {
@@ -231,16 +243,16 @@ describe('load calendar', () => {
231243
const dateFields = cldr.bg.calendar.dateFields.weekday;
232244

233245
expect(dateFields.wide).toBeDefined();
234-
expect(dateFields.short).not.toBeDefined();
235-
expect(dateFields.narrow).not.toBeDefined();
246+
expect(dateFields.short).toBeDefined();
247+
expect(dateFields.narrow).toBeDefined();
236248
});
237249

238250
it('should set dayperiod display name', () => {
239251
const dateFields = cldr.bg.calendar.dateFields.dayperiod;
240252

241253
expect(dateFields.wide).toBeDefined();
242-
expect(dateFields.short).not.toBeDefined();
243-
expect(dateFields.narrow).not.toBeDefined();
254+
expect(dateFields.short).toBeDefined();
255+
expect(dateFields.narrow).toBeDefined();
244256
});
245257

246258
it('should set hour display name', () => {
@@ -271,8 +283,8 @@ describe('load calendar', () => {
271283
const dateFields = cldr.bg.calendar.dateFields.zone;
272284

273285
expect(dateFields.wide).toBeDefined();
274-
expect(dateFields.short).not.toBeDefined();
275-
expect(dateFields.narrow).not.toBeDefined();
286+
expect(dateFields.short).toBeDefined();
287+
expect(dateFields.narrow).toBeDefined();
276288
});
277289
});
278290

0 commit comments

Comments
 (0)