-
Notifications
You must be signed in to change notification settings - Fork 13
/
Localization.ts
114 lines (110 loc) · 2.56 KB
/
Localization.ts
1
2
3
4
5
6
7
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
export class Localizations {
private static _uniqueSymbols: Record<string, string>;
static get uniqueSymbols() {
if (this._uniqueSymbols) return this._uniqueSymbols;
const result: Record<string, string> = {};
const unique = Localizations.unique;
Object.entries(unique).forEach(([key, value]) =>
value.forEach((symbol) => (result[symbol] = key))
);
const shared = Localizations.shared;
Object.entries(shared).forEach(([key, value]) => (result[key] = value[0]));
return (this._uniqueSymbols = result);
}
static get shared() {
return {
// Usa, Canada, Australia, Mexico, New Zealand, Singapore, Hong kong, Argentine peso
$: ['USD', 'CAD', 'AUD', 'MXN', 'NZD', 'SGP', 'HKD', 'ARS'],
dollar: ['USD', 'CAD', 'AUD', 'MXN', 'NZD', 'SGP', 'HKD'],
dollars: ['USD', 'CAD', 'AUD', 'MXN', 'NZD', 'SGP', 'HKD'],
// Denmark, Sweden, Norway, Island, Czechia
'kr.': ['SEK', 'DKK', 'NOK', 'ISK', 'CZK'],
kr: ['SEK', 'DKK', 'NOK', 'ISK', 'CZK'],
',-': ['SEK', 'DKK', 'NOK', 'ISK'],
',--': ['SEK', 'DKK', 'NOK', 'ISK'],
// China, Japan
'¥': ['CNY', 'JPY'],
};
}
static get unique() {
return {
// Australia
AUD: ['AUD$'],
// Brazil
BRL: ['R$'],
// New Zealand
NZD: ['NZD$'],
// USA
USD: ['USD$', 'US$', 'US $'],
// Canada
CAD: ['CDN$'],
// Mexico
MXN: ['MXN$'],
// EU
EUR: ['€'],
// UK
GBP: ['£'],
// Japan
JPY: ['JP¥', '円'],
// China
CNY: ['CN¥', '元'],
// India
INR: ['₹'],
// Russia
RUB: ['₽'],
// Kazakhstan
KZT: ['₸'],
// Turkey
TRY: ['₺', 'TL'],
// Ukraine
UAH: ['₴'],
// Thailand
THB: ['฿'],
// Poland
PLN: ['zł'],
// South Korea
KRW: ['₩'],
// Bulgaria
BGN: ['лв'],
// Czechia
CZK: ['Kč'],
// South Africa
ZAR: ['R'],
// Bitcoin
BTC: ['₿'],
// Monero
XMR: ['ɱ'],
// Ethereum
ETH: ['Ξ'],
// Litecoin
LTC: ['Ł'],
};
}
static get hostCurrency() {
return {
com: 'USD',
cn: 'CNY',
jp: 'JPY',
in: 'INR',
ru: 'RUB',
tr: 'TRY',
ua: 'UAH',
th: 'THB',
pl: 'PLN',
kr: 'KRW',
bg: 'BGN',
dk: 'DKK',
se: 'SEK',
no: 'NOK',
is: 'ISK',
cz: 'CZK',
ca: 'CAD',
au: 'AUD',
mx: 'MXN',
nz: 'NZD',
sg: 'SGP',
hk: 'HKD',
uk: 'GBP',
};
}
}