n2words 1.14.0 → 1.16.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.
- package/LICENSE +1 -1
- package/README.md +13 -29
- package/lib/classes/{AbstractLanguage.mjs → AbstractLanguage.js} +2 -2
- package/lib/classes/{BaseLanguage.mjs → BaseLanguage.js} +3 -3
- package/lib/i18n/{AR.mjs → AR.js} +47 -33
- package/lib/i18n/{AZ.mjs → AZ.js} +7 -6
- package/lib/i18n/{CZ.mjs → CZ.js} +7 -6
- package/lib/i18n/{DE.mjs → DE.js} +7 -6
- package/lib/i18n/{DK.mjs → DK.js} +13 -7
- package/lib/i18n/{EN.mjs → EN.js} +7 -6
- package/lib/i18n/{ES.mjs → ES.js} +14 -8
- package/lib/i18n/{FA.mjs → FA.js} +7 -6
- package/lib/i18n/{FR.mjs → FR.js} +7 -6
- package/lib/i18n/{HE.mjs → HE.js} +14 -8
- package/lib/i18n/{HR.mjs → HR.js} +7 -8
- package/lib/i18n/{HU.mjs → HU.js} +7 -6
- package/lib/i18n/{ID.mjs → ID.js} +34 -32
- package/lib/i18n/{IT.mjs → IT.js} +17 -14
- package/lib/i18n/{KO.mjs → KO.js} +7 -6
- package/lib/i18n/{LT.mjs → LT.js} +7 -8
- package/lib/i18n/{LV.mjs → LV.js} +7 -6
- package/lib/i18n/{NL.mjs → NL.js} +13 -14
- package/lib/i18n/{NO.mjs → NO.js} +7 -6
- package/lib/i18n/{PL.mjs → PL.js} +7 -8
- package/lib/i18n/{PT.mjs → PT.js} +19 -18
- package/lib/i18n/{RU.mjs → RU.js} +12 -5
- package/lib/i18n/{SR.mjs → SR.js} +7 -8
- package/lib/i18n/{TR.mjs → TR.js} +5 -5
- package/lib/i18n/UK.js +95 -0
- package/lib/i18n/{VI.mjs → VI.js} +64 -61
- package/lib/i18n/{ZH.mjs → ZH.js} +7 -6
- package/lib/n2words.js +67 -0
- package/package.json +44 -36
- package/.editorconfig +0 -13
- package/.eslintrc.json +0 -105
- package/.gitattributes +0 -5
- package/bench.mjs +0 -94
- package/dist/n2words.js +0 -1
- package/examples/node.mjs +0 -10
- package/lib/i18n/UK.mjs +0 -90
- package/lib/n2words.mjs +0 -67
- package/webpack.config.js +0 -31
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
import AbstractLanguage from '../classes/AbstractLanguage.
|
|
1
|
+
import AbstractLanguage from '../classes/AbstractLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsID extends AbstractLanguage {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
base = {
|
|
5
|
+
0: [],
|
|
6
|
+
1: ['satu'],
|
|
7
|
+
2: ['dua'],
|
|
8
|
+
3: ['tiga'],
|
|
9
|
+
4: ['empat'],
|
|
10
|
+
5: ['lima'],
|
|
11
|
+
6: ['enam'],
|
|
12
|
+
7: ['tujuh'],
|
|
13
|
+
8: ['delapan'],
|
|
14
|
+
9: ['sembilan'],
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
thousands = {
|
|
18
|
+
3: 'ribu', // 10^3
|
|
19
|
+
6: 'juta', // 10^6
|
|
20
|
+
9: 'miliar', // 10^9
|
|
21
|
+
12: 'triliun',
|
|
22
|
+
15: 'kuadriliun',
|
|
23
|
+
18: 'kuantiliun',
|
|
24
|
+
21: 'sekstiliun',
|
|
25
|
+
24: 'septiliun',
|
|
26
|
+
27: 'oktiliun',
|
|
27
|
+
30: 'noniliun',
|
|
28
|
+
33: 'desiliun',
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
constructor(options) {
|
|
32
|
+
super(Object.assign({
|
|
6
33
|
negativeWord: 'min',
|
|
7
34
|
separatorWord: 'koma',
|
|
8
35
|
zero: 'nol'
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
this.base = {
|
|
12
|
-
0: [],
|
|
13
|
-
1: ['satu'],
|
|
14
|
-
2: ['dua'],
|
|
15
|
-
3: ['tiga'],
|
|
16
|
-
4: ['empat'],
|
|
17
|
-
5: ['lima'],
|
|
18
|
-
6: ['enam'],
|
|
19
|
-
7: ['tujuh'],
|
|
20
|
-
8: ['delapan'],
|
|
21
|
-
9: ['sembilan'],
|
|
22
|
-
};
|
|
23
|
-
this.thousands = {
|
|
24
|
-
3: 'ribu', // 10^3
|
|
25
|
-
6: 'juta', // 10^6
|
|
26
|
-
9: 'miliar', // 10^9
|
|
27
|
-
12: 'triliun',
|
|
28
|
-
15: 'kuadriliun',
|
|
29
|
-
18: 'kuantiliun',
|
|
30
|
-
21: 'sekstiliun',
|
|
31
|
-
24: 'septiliun',
|
|
32
|
-
27: 'oktiliun',
|
|
33
|
-
30: 'noniliun',
|
|
34
|
-
33: 'desiliun',
|
|
35
|
-
};
|
|
36
|
+
}, options));
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
splitBy3(number) {
|
|
@@ -154,9 +155,10 @@ export class N2WordsID extends AbstractLanguage {
|
|
|
154
155
|
/**
|
|
155
156
|
* Converts a value to cardinal (written) form.
|
|
156
157
|
* @param {number|string} value Number to be convert.
|
|
158
|
+
* @param {object} options Options for class.
|
|
157
159
|
* @throws {Error} Value cannot be invalid.
|
|
158
160
|
* @returns {string} Value in cardinal (written) format.
|
|
159
161
|
*/
|
|
160
|
-
export default function (value) {
|
|
161
|
-
return new N2WordsID().floatToCardinal(value);
|
|
162
|
+
export default function (value, options) {
|
|
163
|
+
return new N2WordsID(options).floatToCardinal(value);
|
|
162
164
|
}
|
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/BaseLanguage.
|
|
1
|
+
import BaseLanguage from '../classes/BaseLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsIT extends BaseLanguage {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
cardinalWords = [
|
|
5
|
+
this.zero, 'uno', 'due', 'tre', 'quattro', 'cinque', 'sei', 'sette', 'otto',
|
|
6
|
+
'nove', 'dieci', 'undici', 'dodici', 'tredici', 'quattordici', 'quindici',
|
|
7
|
+
'sedici', 'diciassette', 'diciotto', 'diciannove',
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
strTens = {'2': 'venti', '3': 'trenta', '4': 'quaranta', '6': 'sessanta'};
|
|
11
|
+
|
|
12
|
+
exponentPrefixes = [this.zero, 'm', 'b', 'tr', 'quadr', 'quint', 'sest', 'sett', 'ott', 'nov', 'dec'];
|
|
13
|
+
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(Object.assign({
|
|
6
16
|
negativeWord: 'meno',
|
|
7
17
|
separatorWord: 'virgola',
|
|
8
18
|
zero: 'zero'
|
|
9
|
-
},[]);
|
|
19
|
+
}, options), []);
|
|
10
20
|
|
|
11
21
|
/** @todo Adapt language to work with {@link BaseLanguage} better */
|
|
12
|
-
|
|
13
|
-
this.cardinalWords = [
|
|
14
|
-
this.zero, 'uno', 'due', 'tre', 'quattro', 'cinque', 'sei', 'sette', 'otto',
|
|
15
|
-
'nove', 'dieci', 'undici', 'dodici', 'tredici', 'quattordici', 'quindici',
|
|
16
|
-
'sedici', 'diciassette', 'diciotto', 'diciannove',
|
|
17
|
-
];
|
|
18
|
-
this.strTens = {'2': 'venti', '3': 'trenta', '4': 'quaranta', '6': 'sessanta'};
|
|
19
|
-
this.exponentPrefixes = [this.zero, 'm', 'b', 'tr', 'quadr', 'quint', 'sest', 'sett', 'ott', 'nov', 'dec'];
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
accentuate(string) {
|
|
@@ -134,9 +136,10 @@ export class N2WordsIT extends BaseLanguage {
|
|
|
134
136
|
/**
|
|
135
137
|
* Converts a value to cardinal (written) form.
|
|
136
138
|
* @param {number|string} value Number to be convert.
|
|
139
|
+
* @param {object} options Options for class.
|
|
137
140
|
* @throws {Error} Value cannot be invalid.
|
|
138
141
|
* @returns {string} Value in cardinal (written) format.
|
|
139
142
|
*/
|
|
140
|
-
export default function(value) {
|
|
141
|
-
return new N2WordsIT().floatToCardinal(value);
|
|
143
|
+
export default function(value, options) {
|
|
144
|
+
return new N2WordsIT(options).floatToCardinal(value);
|
|
142
145
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/BaseLanguage.
|
|
1
|
+
import BaseLanguage from '../classes/BaseLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsKO extends BaseLanguage {
|
|
4
|
-
constructor() {
|
|
5
|
-
super({
|
|
4
|
+
constructor(options) {
|
|
5
|
+
super(Object.assign({
|
|
6
6
|
negativeWord: '마이너스',
|
|
7
7
|
separatorWord: '점',
|
|
8
8
|
zero: '영'
|
|
9
|
-
},[
|
|
9
|
+
}, options), [
|
|
10
10
|
[10000000000000000000000000000n, '양'],
|
|
11
11
|
[1000000000000000000000000n, '자'],
|
|
12
12
|
[100000000000000000000n, '해'],
|
|
@@ -45,9 +45,10 @@ export class N2WordsKO extends BaseLanguage {
|
|
|
45
45
|
/**
|
|
46
46
|
* Converts a value to cardinal (written) form.
|
|
47
47
|
* @param {number|string} value Number to be convert.
|
|
48
|
+
* @param {object} options Options for class.
|
|
48
49
|
* @throws {Error} Value cannot be invalid.
|
|
49
50
|
* @returns {string} Value in cardinal (written) format.
|
|
50
51
|
*/
|
|
51
|
-
export default function(value) {
|
|
52
|
-
return new N2WordsKO().floatToCardinal(value);
|
|
52
|
+
export default function(value, options) {
|
|
53
|
+
return new N2WordsKO(options).floatToCardinal(value);
|
|
53
54
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {N2WordsRU} from './RU.
|
|
1
|
+
import {N2WordsRU} from './RU.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsLT extends N2WordsRU {
|
|
4
|
-
feminine = false;
|
|
5
|
-
|
|
6
4
|
ones = {
|
|
7
5
|
1: 'vienas',
|
|
8
6
|
2: 'du',
|
|
@@ -66,12 +64,12 @@ export class N2WordsLT extends N2WordsRU {
|
|
|
66
64
|
10: ['naintilijonas', 'naintilijonai', 'naintilijonų'],
|
|
67
65
|
};
|
|
68
66
|
|
|
69
|
-
constructor() {
|
|
70
|
-
super({
|
|
67
|
+
constructor(options) {
|
|
68
|
+
super(Object.assign({
|
|
71
69
|
negativeWord: 'minus',
|
|
72
70
|
separatorWord: 'kablelis',
|
|
73
71
|
zero: 'nulis'
|
|
74
|
-
});
|
|
72
|
+
}, options));
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
pluralize(n, forms) {
|
|
@@ -130,9 +128,10 @@ export class N2WordsLT extends N2WordsRU {
|
|
|
130
128
|
/**
|
|
131
129
|
* Converts a value to cardinal (written) form.
|
|
132
130
|
* @param {number|string} value Number to be convert.
|
|
131
|
+
* @param {object} options Options for class.
|
|
133
132
|
* @throws {Error} Value cannot be invalid.
|
|
134
133
|
* @returns {string} Value in cardinal (written) format.
|
|
135
134
|
*/
|
|
136
|
-
export default function(value) {
|
|
137
|
-
return new N2WordsLT().floatToCardinal(value);
|
|
135
|
+
export default function(value, options) {
|
|
136
|
+
return new N2WordsLT(options).floatToCardinal(value);
|
|
138
137
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {N2WordsRU} from './RU.
|
|
1
|
+
import {N2WordsRU} from './RU.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsLV extends N2WordsRU{
|
|
4
4
|
ones = {
|
|
@@ -52,12 +52,12 @@ export class N2WordsLV extends N2WordsRU{
|
|
|
52
52
|
10: ['nontiljons', 'nontiljoni', 'nontiljonu'],
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
constructor() {
|
|
56
|
-
super({
|
|
55
|
+
constructor(options) {
|
|
56
|
+
super(Object.assign({
|
|
57
57
|
negativeWord: 'mīnus',
|
|
58
58
|
separatorWord: 'komats',
|
|
59
59
|
zero: 'nulle'
|
|
60
|
-
});
|
|
60
|
+
}, options));
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
pluralize(n, forms) {
|
|
@@ -115,9 +115,10 @@ export class N2WordsLV extends N2WordsRU{
|
|
|
115
115
|
/**
|
|
116
116
|
* Converts a value to cardinal (written) form.
|
|
117
117
|
* @param {number|string} value Number to be convert.
|
|
118
|
+
* @param {object} options Options for class.
|
|
118
119
|
* @throws {Error} Value cannot be invalid.
|
|
119
120
|
* @returns {string} Value in cardinal (written) format.
|
|
120
121
|
*/
|
|
121
|
-
export default function(value) {
|
|
122
|
-
return new N2WordsLV().floatToCardinal(value);
|
|
122
|
+
export default function(value, options) {
|
|
123
|
+
return new N2WordsLV(options).floatToCardinal(value);
|
|
123
124
|
}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/BaseLanguage.
|
|
1
|
+
import BaseLanguage from '../classes/BaseLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsNL extends BaseLanguage {
|
|
4
|
-
includeOptionalAnd
|
|
5
|
-
noHundredPairs
|
|
4
|
+
includeOptionalAnd;
|
|
5
|
+
noHundredPairs;
|
|
6
6
|
|
|
7
7
|
constructor(options) {
|
|
8
|
-
|
|
8
|
+
options = Object.assign({
|
|
9
9
|
negativeWord: 'min',
|
|
10
10
|
separatorWord: 'komma',
|
|
11
|
-
zero: 'nul'
|
|
12
|
-
|
|
11
|
+
zero: 'nul',
|
|
12
|
+
includeOptionalAnd: false,
|
|
13
|
+
noHundredPairs: false
|
|
14
|
+
}, options);
|
|
15
|
+
|
|
16
|
+
super(options, [
|
|
13
17
|
[1000000000000000000000000000n, 'quadriljard'],
|
|
14
18
|
[1000000000000000000000000n, 'quadriljoen'],
|
|
15
19
|
[1000000000000000000000n, 'triljard'],
|
|
@@ -50,13 +54,8 @@ export class N2WordsNL extends BaseLanguage {
|
|
|
50
54
|
[0n, 'nul'],
|
|
51
55
|
]);
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (options.noHundredPairs === true) {
|
|
58
|
-
this.noHundredPairs = true;
|
|
59
|
-
}
|
|
57
|
+
this.includeOptionalAnd = options.includeOptionalAnd;
|
|
58
|
+
this.noHundredPairs = options.noHundredPairs;
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
merge(curr, next) {
|
|
@@ -121,6 +120,6 @@ export class N2WordsNL extends BaseLanguage {
|
|
|
121
120
|
* @throws {Error} Value cannot be invalid.
|
|
122
121
|
* @returns {string} Value in cardinal (written) format.
|
|
123
122
|
*/
|
|
124
|
-
export default function(value, options
|
|
123
|
+
export default function(value, options) {
|
|
125
124
|
return new N2WordsNL(options).floatToCardinal(value);
|
|
126
125
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/BaseLanguage.
|
|
1
|
+
import BaseLanguage from '../classes/BaseLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsNO extends BaseLanguage {
|
|
4
|
-
constructor() {
|
|
5
|
-
super({
|
|
4
|
+
constructor(options) {
|
|
5
|
+
super(Object.assign({
|
|
6
6
|
negativeWord: 'minus',
|
|
7
7
|
separatorWord: 'komma',
|
|
8
8
|
zero: 'null'
|
|
9
|
-
},[
|
|
9
|
+
}, options), [
|
|
10
10
|
[1000000000000000000000000000000000n, 'quintillard'],
|
|
11
11
|
[1000000000000000000000000000000n, 'quintillion'],
|
|
12
12
|
[1000000000000000000000000000n, 'quadrillard'],
|
|
@@ -66,9 +66,10 @@ export class N2WordsNO extends BaseLanguage {
|
|
|
66
66
|
/**
|
|
67
67
|
* Converts a value to cardinal (written) form.
|
|
68
68
|
* @param {number|string} value Number to be convert.
|
|
69
|
+
* @param {object} options Options for class.
|
|
69
70
|
* @throws {Error} Value cannot be invalid.
|
|
70
71
|
* @returns {string} Value in cardinal (written) format.
|
|
71
72
|
*/
|
|
72
|
-
export default function(value) {
|
|
73
|
-
return new N2WordsNO().floatToCardinal(value);
|
|
73
|
+
export default function(value, options) {
|
|
74
|
+
return new N2WordsNO(options).floatToCardinal(value);
|
|
74
75
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {N2WordsRU} from './RU.
|
|
1
|
+
import {N2WordsRU} from './RU.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsPL extends N2WordsRU {
|
|
4
|
-
feminine = false;
|
|
5
|
-
|
|
6
4
|
ones = {
|
|
7
5
|
1: 'jeden',
|
|
8
6
|
2: 'dwa',
|
|
@@ -64,12 +62,12 @@ export class N2WordsPL extends N2WordsRU {
|
|
|
64
62
|
10: ['kwintylion', 'kwintyliony', 'kwintylionów'], // 10^ 30
|
|
65
63
|
};
|
|
66
64
|
|
|
67
|
-
constructor() {
|
|
68
|
-
super({
|
|
65
|
+
constructor(options) {
|
|
66
|
+
super(Object.assign({
|
|
69
67
|
negativeWord: 'minus',
|
|
70
68
|
separatorWord: 'przecinek',
|
|
71
69
|
zero: 'zero'
|
|
72
|
-
});
|
|
70
|
+
}, options));
|
|
73
71
|
}
|
|
74
72
|
|
|
75
73
|
pluralize(n, forms) {
|
|
@@ -118,9 +116,10 @@ export class N2WordsPL extends N2WordsRU {
|
|
|
118
116
|
/**
|
|
119
117
|
* Converts a value to cardinal (written) form.
|
|
120
118
|
* @param {number|string} value Number to be convert.
|
|
119
|
+
* @param {object} options Options for class.
|
|
121
120
|
* @throws {Error} Value cannot be invalid.
|
|
122
121
|
* @returns {string} Value in cardinal (written) format.
|
|
123
122
|
*/
|
|
124
|
-
export default function(value) {
|
|
125
|
-
return new N2WordsPL().floatToCardinal(value);
|
|
123
|
+
export default function(value, options) {
|
|
124
|
+
return new N2WordsPL(options).floatToCardinal(value);
|
|
126
125
|
}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/BaseLanguage.
|
|
1
|
+
import BaseLanguage from '../classes/BaseLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsPT extends BaseLanguage {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
hundreds = {
|
|
5
|
+
1: 'cento',
|
|
6
|
+
2: 'duzentos',
|
|
7
|
+
3: 'trezentos',
|
|
8
|
+
4: 'quatrocentos',
|
|
9
|
+
5: 'quinhentos',
|
|
10
|
+
6: 'seiscentos',
|
|
11
|
+
7: 'setecentos',
|
|
12
|
+
8: 'oitocentos',
|
|
13
|
+
9: 'novecentos'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(Object.assign({
|
|
6
18
|
negativeWord: 'menos',
|
|
7
19
|
separatorWord: 'vírgula',
|
|
8
20
|
zero: 'zero'
|
|
9
|
-
},[
|
|
21
|
+
}, options), [
|
|
10
22
|
[1000000000000000000000000n, 'quatrilião'],
|
|
11
23
|
[1000000000000000000n, 'trilião'],
|
|
12
24
|
[1000000000000n, 'bilião'],
|
|
@@ -42,18 +54,6 @@ export class N2WordsPT extends BaseLanguage {
|
|
|
42
54
|
[1n, 'um'],
|
|
43
55
|
[0n, 'zero']
|
|
44
56
|
]);
|
|
45
|
-
|
|
46
|
-
this.hundreds = {
|
|
47
|
-
1: 'cento',
|
|
48
|
-
2: 'duzentos',
|
|
49
|
-
3: 'trezentos',
|
|
50
|
-
4: 'quatrocentos',
|
|
51
|
-
5: 'quinhentos',
|
|
52
|
-
6: 'seiscentos',
|
|
53
|
-
7: 'setecentos',
|
|
54
|
-
8: 'oitocentos',
|
|
55
|
-
9: 'novecentos'
|
|
56
|
-
};
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
postClean(words) {
|
|
@@ -105,9 +105,10 @@ export class N2WordsPT extends BaseLanguage {
|
|
|
105
105
|
/**
|
|
106
106
|
* Converts a value to cardinal (written) form.
|
|
107
107
|
* @param {number|string} value Number to be convert.
|
|
108
|
+
* @param {object} options Options for class.
|
|
108
109
|
* @throws {Error} Value cannot be invalid.
|
|
109
110
|
* @returns {string} Value in cardinal (written) format.
|
|
110
111
|
*/
|
|
111
|
-
export default function(value) {
|
|
112
|
-
return new N2WordsPT().floatToCardinal(value);
|
|
112
|
+
export default function(value, options) {
|
|
113
|
+
return new N2WordsPT(options).floatToCardinal(value);
|
|
113
114
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import AbstractLanguage from '../classes/AbstractLanguage.
|
|
1
|
+
import AbstractLanguage from '../classes/AbstractLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsRU extends AbstractLanguage {
|
|
4
|
-
feminine
|
|
4
|
+
feminine;
|
|
5
5
|
|
|
6
6
|
ones = {
|
|
7
7
|
1: 'один',
|
|
@@ -76,12 +76,18 @@ export class N2WordsRU extends AbstractLanguage {
|
|
|
76
76
|
10: ['нониллион', 'нониллиона', 'нониллионов'], // 10^ 30
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
constructor(options
|
|
79
|
+
constructor(options) {
|
|
80
80
|
super(Object.assign({
|
|
81
81
|
negativeWord: 'минус',
|
|
82
82
|
separatorWord: 'запятая',
|
|
83
83
|
zero: 'ноль'
|
|
84
84
|
}, options));
|
|
85
|
+
|
|
86
|
+
options = Object.assign({
|
|
87
|
+
feminine: false,
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
this.feminine = options.feminine;
|
|
85
91
|
}
|
|
86
92
|
|
|
87
93
|
toCardinal(number) {
|
|
@@ -188,9 +194,10 @@ export class N2WordsRU extends AbstractLanguage {
|
|
|
188
194
|
/**
|
|
189
195
|
* Converts a value to cardinal (written) form.
|
|
190
196
|
* @param {number|string} value Number to be convert.
|
|
197
|
+
* @param {object} options Options for class.
|
|
191
198
|
* @throws {Error} Value cannot be invalid.
|
|
192
199
|
* @returns {string} Value in cardinal (written) format.
|
|
193
200
|
*/
|
|
194
|
-
export default function(value) {
|
|
195
|
-
return new N2WordsRU().floatToCardinal(value);
|
|
201
|
+
export default function(value, options) {
|
|
202
|
+
return new N2WordsRU(options).floatToCardinal(value);
|
|
196
203
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {N2WordsRU} from './RU.
|
|
1
|
+
import {N2WordsRU} from './RU.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsSR extends N2WordsRU {
|
|
4
4
|
ones = {
|
|
@@ -63,14 +63,12 @@ export class N2WordsSR extends N2WordsRU {
|
|
|
63
63
|
10: ['kvintilion', 'kvintiliona', 'kvintiliona', false], // 10 ^ 30
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
constructor() {
|
|
69
|
-
super({
|
|
66
|
+
constructor(options) {
|
|
67
|
+
super(Object.assign({
|
|
70
68
|
negativeWord: 'minus',
|
|
71
69
|
separatorWord: 'zapeta',
|
|
72
70
|
zero: 'nula'
|
|
73
|
-
});
|
|
71
|
+
}, options));
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
pluralize(n, forms) {
|
|
@@ -121,9 +119,10 @@ export class N2WordsSR extends N2WordsRU {
|
|
|
121
119
|
/**
|
|
122
120
|
* Converts a value to cardinal (written) form.
|
|
123
121
|
* @param {number|string} value Number to be convert.
|
|
122
|
+
* @param {object} options Options for class.
|
|
124
123
|
* @throws {Error} Value cannot be invalid.
|
|
125
124
|
* @returns {string} Value in cardinal (written) format.
|
|
126
125
|
*/
|
|
127
|
-
export default function(value) {
|
|
128
|
-
return new N2WordsSR().floatToCardinal(value);
|
|
126
|
+
export default function(value, options) {
|
|
127
|
+
return new N2WordsSR(options).floatToCardinal(value);
|
|
129
128
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/BaseLanguage.
|
|
1
|
+
import BaseLanguage from '../classes/BaseLanguage.js';
|
|
2
2
|
|
|
3
3
|
export class N2WordsTR extends BaseLanguage {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
super({
|
|
4
|
+
constructor(options = {}) {
|
|
5
|
+
super(Object.assign({
|
|
6
6
|
negativeWord: 'eksi',
|
|
7
7
|
separatorWord: 'virgül',
|
|
8
8
|
zero: 'sıfır',
|
|
9
9
|
spaceSeparator: (options.dropSpaces === true ? '' : ' '),
|
|
10
|
-
},[
|
|
10
|
+
}, options), [
|
|
11
11
|
[1000000000000000000n, 'kentilyon'],
|
|
12
12
|
[1000000000000000n, 'katrilyon'],
|
|
13
13
|
[1000000000000n, 'trilyon'],
|
|
@@ -59,6 +59,6 @@ export class N2WordsTR extends BaseLanguage {
|
|
|
59
59
|
* @throws {Error} Value cannot be invalid.
|
|
60
60
|
* @returns {string} Value in cardinal (written) format.
|
|
61
61
|
*/
|
|
62
|
-
export default function(value, options
|
|
62
|
+
export default function(value, options) {
|
|
63
63
|
return new N2WordsTR(options).floatToCardinal(value);
|
|
64
64
|
}
|
package/lib/i18n/UK.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import {N2WordsRU} from './RU.js';
|
|
2
|
+
|
|
3
|
+
export class N2WordsUK extends N2WordsRU {
|
|
4
|
+
ones = {
|
|
5
|
+
1: 'один',
|
|
6
|
+
2: 'два',
|
|
7
|
+
3: 'три',
|
|
8
|
+
4: 'чотири',
|
|
9
|
+
5: 'п\'ять',
|
|
10
|
+
6: 'шiсть',
|
|
11
|
+
7: 'сiм',
|
|
12
|
+
8: 'вiсiм',
|
|
13
|
+
9: 'дев\'ять'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
onesFeminine = {
|
|
17
|
+
1: 'одна',
|
|
18
|
+
2: 'двi',
|
|
19
|
+
3: 'три',
|
|
20
|
+
4: 'чотири',
|
|
21
|
+
5: 'п\'ять',
|
|
22
|
+
6: 'шiсть',
|
|
23
|
+
7: 'сiм',
|
|
24
|
+
8: 'вiсiм',
|
|
25
|
+
9: 'дев\'ять'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
tens = {
|
|
29
|
+
0: 'десять',
|
|
30
|
+
1: 'одинадцять',
|
|
31
|
+
2: 'дванадцять',
|
|
32
|
+
3: 'тринадцять',
|
|
33
|
+
4: 'чотирнадцять',
|
|
34
|
+
5: 'п\'ятнадцять',
|
|
35
|
+
6: 'шiстнадцять',
|
|
36
|
+
7: 'сiмнадцять',
|
|
37
|
+
8: 'вiсiмнадцять',
|
|
38
|
+
9: 'дев\'ятнадцять'
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
twenties = {
|
|
42
|
+
2: 'двадцять',
|
|
43
|
+
3: 'тридцять',
|
|
44
|
+
4: 'сорок',
|
|
45
|
+
5: 'п\'ятдесят',
|
|
46
|
+
6: 'шiстдесят',
|
|
47
|
+
7: 'сiмдесят',
|
|
48
|
+
8: 'вiсiмдесят',
|
|
49
|
+
9: 'дев\'яносто'
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
hundreds = {
|
|
53
|
+
1: 'сто',
|
|
54
|
+
2: 'двiстi',
|
|
55
|
+
3: 'триста',
|
|
56
|
+
4: 'чотириста',
|
|
57
|
+
5: 'п\'ятсот',
|
|
58
|
+
6: 'шiстсот',
|
|
59
|
+
7: 'сiмсот',
|
|
60
|
+
8: 'вiсiмсот',
|
|
61
|
+
9: 'дев\'ятсот'
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
thousands = {
|
|
65
|
+
1: ['тисяча', 'тисячi', 'тисяч'], // 10^ 3
|
|
66
|
+
2: ['мiльйон', 'мiльйони', 'мiльйонiв'], // 10^ 6
|
|
67
|
+
3: ['мiльярд', 'мiльярди', 'мiльярдiв'], // 10^ 9
|
|
68
|
+
4: ['трильйон', 'трильйони', 'трильйонiв'], // 10^ 12
|
|
69
|
+
5: ['квадрильйон', 'квадрильйони', 'квадрильйонiв'], // 10^ 15
|
|
70
|
+
6: ['квiнтильйон', 'квiнтильйони', 'квiнтильйонiв'], // 10^ 18
|
|
71
|
+
7: ['секстильйон', 'секстильйони', 'секстильйонiв'], // 10^ 21
|
|
72
|
+
8: ['септильйон', 'септильйони', 'септильйонiв'], // 10^ 24
|
|
73
|
+
9: ['октильйон', 'октильйони', 'октильйонiв'], // 10^ 27
|
|
74
|
+
10: ['нонiльйон', 'нонiльйони', 'нонiльйонiв'], // 10^ 30
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
constructor(options) {
|
|
78
|
+
super(Object.assign({
|
|
79
|
+
negativeWord: 'мiнус',
|
|
80
|
+
separatorWord: 'кома',
|
|
81
|
+
zero: 'нуль'
|
|
82
|
+
}, options));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Converts a value to cardinal (written) form.
|
|
88
|
+
* @param {number|string} value Number to be convert.
|
|
89
|
+
* @param {object} options Options for class.
|
|
90
|
+
* @throws {Error} Value cannot be invalid.
|
|
91
|
+
* @returns {string} Value in cardinal (written) format.
|
|
92
|
+
*/
|
|
93
|
+
export default function(value, options) {
|
|
94
|
+
return new N2WordsUK(options).floatToCardinal(value);
|
|
95
|
+
}
|