n2words 1.12.2 → 1.14.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/lib/i18n/DE.mjs CHANGED
@@ -1,52 +1,51 @@
1
- import N2WordsBase from '../classes/N2WordsBase.mjs';
1
+ import BaseLanguage from '../classes/BaseLanguage.mjs';
2
2
 
3
- export class N2WordsDE extends N2WordsBase {
3
+ export class N2WordsDE extends BaseLanguage {
4
4
  constructor() {
5
- super();
6
-
7
- this.negativeWord = 'minus';
8
- this.separatorWord = 'komma';
9
- this.zero = 'null';
10
- this.cards = [
11
- { '1000000000000000000000000000': 'Quadrilliarde' },
12
- { '1000000000000000000000000': 'Quadrillion' },
13
- { '1000000000000000000000': 'Trilliarde' },
14
- { 1000000000000000000: 'Trillion' },
15
- { 1000000000000000: 'Billiarde' },
16
- { 1000000000000: 'Billion' },
17
- { 1000000000: 'Milliarde' },
18
- { 1000000: 'Million' },
19
- { 1000: 'tausend' },
20
- { 100: 'hundert' },
21
- { 90: 'neunzig' },
22
- { 80: 'achtzig' },
23
- { 70: 'siebzig' },
24
- { 60: 'sechzig' },
25
- { 50: 'fünfzig' },
26
- { 40: 'vierzig' },
27
- { 30: 'dreißig' },
28
- { 20: 'zwanzig' },
29
- { 19: 'neunzehn' },
30
- { 18: 'achtzehn' },
31
- { 17: 'siebzehn' },
32
- { 16: 'sechzehn' },
33
- { 15: 'fünfzehn' },
34
- { 14: 'vierzehn' },
35
- { 13: 'dreizehn' },
36
- { 12: 'zwölf' },
37
- { 11: 'elf' },
38
- { 10: 'zehn' },
39
- { 9: 'neun' },
40
- { 8: 'acht' },
41
- { 7: 'sieben' },
42
- { 6: 'sechs' },
43
- { 5: 'fünf' },
44
- { 4: 'vier' },
45
- { 3: 'drei' },
46
- { 2: 'zwei' },
47
- { 1: 'eins' },
48
- { 0: 'null' }
49
- ];
5
+ super({
6
+ negativeWord: 'minus',
7
+ separatorWord: 'komma',
8
+ zero: 'null'
9
+ },[
10
+ [1000000000000000000000000000n, 'Quadrilliarde'],
11
+ [1000000000000000000000000n, 'Quadrillion'],
12
+ [1000000000000000000000n, 'Trilliarde'],
13
+ [1000000000000000000n, 'Trillion'],
14
+ [1000000000000000n, 'Billiarde'],
15
+ [1000000000000n, 'Billion'],
16
+ [1000000000n, 'Milliarde'],
17
+ [1000000n, 'Million'],
18
+ [1000n, 'tausend'],
19
+ [100n, 'hundert'],
20
+ [90n, 'neunzig'],
21
+ [80n, 'achtzig'],
22
+ [70n, 'siebzig'],
23
+ [60n, 'sechzig'],
24
+ [50n, 'fünfzig'],
25
+ [40n, 'vierzig'],
26
+ [30n, 'dreißig'],
27
+ [20n, 'zwanzig'],
28
+ [19n, 'neunzehn'],
29
+ [18n, 'achtzehn'],
30
+ [17n, 'siebzehn'],
31
+ [16n, 'sechzehn'],
32
+ [15n, 'fünfzehn'],
33
+ [14n, 'vierzehn'],
34
+ [13n, 'dreizehn'],
35
+ [12n, 'zwölf'],
36
+ [11n, 'elf'],
37
+ [10n, 'zehn'],
38
+ [9n, 'neun'],
39
+ [8n, 'acht'],
40
+ [7n, 'sieben'],
41
+ [6n, 'sechs'],
42
+ [5n, 'fünf'],
43
+ [4n, 'vier'],
44
+ [3n, 'drei'],
45
+ [2n, 'zwei'],
46
+ [1n, 'eins'],
47
+ [0n, 'null']
48
+ ]);
50
49
  }
51
50
 
52
51
  merge(curr, next) {
@@ -94,6 +93,12 @@ export class N2WordsDE extends N2WordsBase {
94
93
  }
95
94
  }
96
95
 
97
- export default function(n) {
98
- return new N2WordsDE().floatToCardinal(n);
96
+ /**
97
+ * Converts a value to cardinal (written) form.
98
+ * @param {number|string} value Number to be convert.
99
+ * @throws {Error} Value cannot be invalid.
100
+ * @returns {string} Value in cardinal (written) format.
101
+ */
102
+ export default function(value) {
103
+ return new N2WordsDE().floatToCardinal(value);
99
104
  }
package/lib/i18n/DK.mjs CHANGED
@@ -1,53 +1,53 @@
1
- import N2WordsBase from '../classes/N2WordsBase.mjs';
1
+ import BaseLanguage from '../classes/BaseLanguage.mjs';
2
2
 
3
- export class N2WordsDK extends N2WordsBase {
4
- constructor() {
5
- super();
3
+ export class N2WordsDK extends BaseLanguage {
4
+ ordFlag = false;
6
5
 
7
- this.negativeWord = 'minus';
8
- this.separatorWord = 'komma';
9
- this.zero = 'nul';
10
- this.ordFlag = false;
11
- this.cards = [
12
- { '1000000000000000000000000000': 'quadrillarder' },
13
- { '1000000000000000000000000': 'quadrillioner' },
14
- { '1000000000000000000000': 'trillarder' },
15
- { '1000000000000000000': 'trillioner' },
16
- { '1000000000000000': 'billarder' },
17
- { '1000000000000': 'billioner' },
18
- { '1000000000': 'millarder' },
19
- { '1000000': 'millioner' },
20
- { '1000': 'tusind' },
21
- { '100': 'hundrede' },
22
- { '90': 'halvfems' },
23
- { '80': 'firs' },
24
- { '70': 'halvfjerds' },
25
- { '60': 'treds' },
26
- { '50': 'halvtreds' },
27
- { '40': 'fyrre' },
28
- { '30': 'tredive' },
29
- { '20': 'tyve' },
30
- { '19': 'nitten' },
31
- { '18': 'atten' },
32
- { '17': 'sytten' },
33
- { '16': 'seksten' },
34
- { '15': 'femten' },
35
- { '14': 'fjorten' },
36
- { '13': 'tretten' },
37
- { '12': 'tolv' },
38
- { '11': 'elleve' },
39
- { '10': 'ti' },
40
- { '9': 'ni' },
41
- { '8': 'otte' },
42
- { '7': 'syv' },
43
- { '6': 'seks' },
44
- { '5': 'fem' },
45
- { '4': 'fire' },
46
- { '3': 'tre' },
47
- { '2': 'to' },
48
- { '1': 'et' },
49
- { '0': 'nul' }
50
- ];
6
+ constructor() {
7
+ super({
8
+ negativeWord: 'minus',
9
+ separatorWord: 'komma',
10
+ zero: 'nul',
11
+ },[
12
+ [1000000000000000000000000000n, 'quadrillarder'],
13
+ [1000000000000000000000000n, 'quadrillioner'],
14
+ [1000000000000000000000n, 'trillarder'],
15
+ [1000000000000000000n, 'trillioner'],
16
+ [1000000000000000n, 'billarder'],
17
+ [1000000000000n, 'billioner'],
18
+ [1000000000n, 'millarder'],
19
+ [1000000n, 'millioner'],
20
+ [1000n, 'tusind'],
21
+ [100n, 'hundrede'],
22
+ [90n, 'halvfems'],
23
+ [80n, 'firs'],
24
+ [70n, 'halvfjerds'],
25
+ [60n, 'treds'],
26
+ [50n, 'halvtreds'],
27
+ [40n, 'fyrre'],
28
+ [30n, 'tredive'],
29
+ [20n, 'tyve'],
30
+ [19n, 'nitten'],
31
+ [18n, 'atten'],
32
+ [17n, 'sytten'],
33
+ [16n, 'seksten'],
34
+ [15n, 'femten'],
35
+ [14n, 'fjorten'],
36
+ [13n, 'tretten'],
37
+ [12n, 'tolv'],
38
+ [11n, 'elleve'],
39
+ [10n, 'ti'],
40
+ [9n, 'ni'],
41
+ [8n, 'otte'],
42
+ [7n, 'syv'],
43
+ [6n, 'seks'],
44
+ [5n, 'fem'],
45
+ [4n, 'fire'],
46
+ [3n, 'tre'],
47
+ [2n, 'to'],
48
+ [1n, 'et'],
49
+ [0n, 'nul']
50
+ ]);
51
51
  }
52
52
 
53
53
  merge(curr, next) {
@@ -93,6 +93,12 @@ export class N2WordsDK extends N2WordsBase {
93
93
  }
94
94
  }
95
95
 
96
- export default function(n) {
97
- return new N2WordsDK().floatToCardinal(n);
96
+ /**
97
+ * Converts a value to cardinal (written) form.
98
+ * @param {number|string} value Number to be convert.
99
+ * @throws {Error} Value cannot be invalid.
100
+ * @returns {string} Value in cardinal (written) format.
101
+ */
102
+ export default function(value) {
103
+ return new N2WordsDK().floatToCardinal(value);
98
104
  }
package/lib/i18n/EN.mjs CHANGED
@@ -1,72 +1,83 @@
1
- import N2WordsBase from '../classes/N2WordsBase.mjs';
1
+ import BaseLanguage from '../classes/BaseLanguage.mjs';
2
2
 
3
- class N2WordsEN extends N2WordsBase {
3
+ /**
4
+ * This class is for converting numbers to english words.
5
+ */
6
+ class English extends BaseLanguage {
4
7
  constructor() {
5
- super();
6
-
7
- this.negativeWord = 'minus';
8
- this.separatorWord = 'point';
9
- this.zero = 'zero';
10
- this.cards = [
11
- { '1000000000000000000000000000': 'octillion' },
12
- { '1000000000000000000000000': 'septillion' },
13
- { '1000000000000000000000': 'sextillion' },
14
- { '1000000000000000000': 'quintillion' },
15
- { '1000000000000000': 'quadrillion' },
16
- { '1000000000000': 'trillion' },
17
- { '1000000000': 'billion' },
18
- { '1000000': 'million' },
19
- { '1000': 'thousand' },
20
- { '100': 'hundred' },
21
- { '90': 'ninety' },
22
- { '80': 'eighty' },
23
- { '70': 'seventy' },
24
- { '60': 'sixty' },
25
- { '50': 'fifty' },
26
- { '40': 'forty' },
27
- { '30': 'thirty' },
28
- { '20': 'twenty' },
29
- { '19': 'nineteen' },
30
- { '18': 'eighteen' },
31
- { '17': 'seventeen' },
32
- { '16': 'sixteen' },
33
- { '15': 'fifteen' },
34
- { '14': 'fourteen' },
35
- { '13': 'thirteen' },
36
- { '12': 'twelve' },
37
- { '11': 'eleven' },
38
- { '10': 'ten' },
39
- { '9': 'nine' },
40
- { '8': 'eight' },
41
- { '7': 'seven' },
42
- { '6': 'six' },
43
- { '5': 'five' },
44
- { '4': 'four' },
45
- { '3': 'three' },
46
- { '2': 'two' },
47
- { '1': 'one' },
48
- { '0': 'zero' }
49
- ];
8
+ super({
9
+ negativeWord: 'minus',
10
+ separatorWord: 'point',
11
+ zero: 'zero'
12
+ },[
13
+ [1000000000000000000000000000n, 'octillion'],
14
+ [1000000000000000000000000n, 'septillion'],
15
+ [1000000000000000000000n, 'sextillion'],
16
+ [1000000000000000000n, 'quintillion'],
17
+ [1000000000000000n, 'quadrillion'],
18
+ [1000000000000n, 'trillion'],
19
+ [1000000000n, 'billion'],
20
+ [1000000n, 'million'],
21
+ [1000n, 'thousand'],
22
+ [100n, 'hundred'],
23
+ [90n, 'ninety'],
24
+ [80n, 'eighty'],
25
+ [70n, 'seventy'],
26
+ [60n, 'sixty'],
27
+ [50n, 'fifty'],
28
+ [40n, 'forty'],
29
+ [30n, 'thirty'],
30
+ [20n, 'twenty'],
31
+ [19n, 'nineteen'],
32
+ [18n, 'eighteen'],
33
+ [17n, 'seventeen'],
34
+ [16n, 'sixteen'],
35
+ [15n, 'fifteen'],
36
+ [14n, 'fourteen'],
37
+ [13n, 'thirteen'],
38
+ [12n, 'twelve'],
39
+ [11n, 'eleven'],
40
+ [10n, 'ten'],
41
+ [9n, 'nine'],
42
+ [8n, 'eight'],
43
+ [7n, 'seven'],
44
+ [6n, 'six'],
45
+ [5n, 'five'],
46
+ [4n, 'four'],
47
+ [3n, 'three'],
48
+ [2n, 'two'],
49
+ [1n, 'one'],
50
+ [0n, 'zero']
51
+ ]);
50
52
  }
51
53
 
52
54
  /**
53
- *
54
- *
55
+ * Merge word set pairs
55
56
  * @param {object} lPair {'one':1}
56
57
  * @param {object} rPair {'hundred':100}
57
58
  * @returns {object} {'one hundred': 100}
58
59
  */
59
60
  merge(lPair, rPair) {
60
- const lText = Object.keys(lPair)[0]; const lNum = parseInt(Object.values(lPair)[0]);
61
- const rText = Object.keys(rPair)[0]; const rNum = parseInt(Object.values(rPair)[0]);
61
+ const lText = Object.keys(lPair)[0];
62
+ const lNum = parseInt(Object.values(lPair)[0]);
63
+ const rText = Object.keys(rPair)[0];
64
+ const rNum = parseInt(Object.values(rPair)[0]);
65
+
62
66
  if (lNum == 1 && rNum < 100) return { [rText]: rNum };
63
67
  else if (100 > lNum && lNum > rNum) return { [`${lText}-${rText}`]: lNum + rNum };
64
68
  else if (lNum >= 100 && 100 > rNum) return { [`${lText} and ${rText}`]: lNum + rNum };
65
69
  else if (rNum > lNum) return { [`${lText} ${rText}`]: lNum * rNum };
70
+
66
71
  return { [`${lText} ${rText}`]: lNum + rNum };
67
72
  }
68
73
  }
69
74
 
70
- export default function(n) {
71
- return new N2WordsEN().floatToCardinal(n);
75
+ /**
76
+ * Converts a value to cardinal (written) form.
77
+ * @param {number|string} value Number to be convert.
78
+ * @throws {Error} Value cannot be invalid.
79
+ * @returns {string} Value in cardinal (written) format.
80
+ */
81
+ export default function(value) {
82
+ return new English().floatToCardinal(value);
72
83
  }
package/lib/i18n/ES.mjs CHANGED
@@ -1,58 +1,58 @@
1
- import N2WordsBase from '../classes/N2WordsBase.mjs';
1
+ import BaseLanguage from '../classes/BaseLanguage.mjs';
2
2
 
3
- export class N2WordsES extends N2WordsBase {
4
- constructor() {
5
- super();
3
+ export class N2WordsES extends BaseLanguage {
4
+ genderStem = 'o';
6
5
 
7
- this.genderStem = 'o';
8
- this.negativeWord = 'menos';
9
- this.separatorWord = 'punto';
10
- this.zero = 'cero';
11
- this.cards = [
12
- { '1000000000000000000000000': 'cuatrillón' },
13
- { '1000000000000000000': 'trillón' },
14
- { '1000000000000': 'billón' },
15
- { '1000000': 'millón' },
16
- { '1000': 'mil' },
17
- { '100': 'cien' },
18
- { '90': 'noventa' },
19
- { '80': 'ochenta' },
20
- { '70': 'setenta' },
21
- { '60': 'sesenta' },
22
- { '50': 'cincuenta' },
23
- { '40': 'cuarenta' },
24
- { '30': 'treinta' },
25
- { '29': 'veintinueve' },
26
- { '28': 'veintiocho' },
27
- { '27': 'veintisiete' },
28
- { '26': 'veintiséis' },
29
- { '25': 'veinticinco' },
30
- { '24': 'veinticuatro' },
31
- { '23': 'veintitrés' },
32
- { '22': 'veintidós' },
33
- { '21': 'veintiuno' },
34
- { '20': 'veinte' },
35
- { '19': 'diecinueve' },
36
- { '18': 'dieciocho' },
37
- { '17': 'diecisiete' },
38
- { '16': 'dieciseis' },
39
- { '15': 'quince' },
40
- { '14': 'catorce' },
41
- { '13': 'trece' },
42
- { '12': 'doce' },
43
- { '11': 'once' },
44
- { '10': 'diez' },
45
- { '9': 'nueve' },
46
- { '8': 'ocho' },
47
- { '7': 'siete' },
48
- { '6': 'seis' },
49
- { '5': 'cinco' },
50
- { '4': 'cuatro' },
51
- { '3': 'tres' },
52
- { '2': 'dos' },
53
- { '1': 'uno' },
54
- { '0': 'cero' }
55
- ];
6
+ constructor() {
7
+ super({
8
+ negativeWord: 'menos',
9
+ separatorWord: 'punto',
10
+ zero: 'cero'
11
+ },[
12
+ [1000000000000000000000000n, 'cuatrillón'],
13
+ [1000000000000000000n, 'trillón'],
14
+ [1000000000000n, 'billón'],
15
+ [1000000n, 'millón'],
16
+ [1000n, 'mil'],
17
+ [100n, 'cien'],
18
+ [90n, 'noventa'],
19
+ [80n, 'ochenta'],
20
+ [70n, 'setenta'],
21
+ [60n, 'sesenta'],
22
+ [50n, 'cincuenta'],
23
+ [40n, 'cuarenta'],
24
+ [30n, 'treinta'],
25
+ [29n, 'veintinueve'],
26
+ [28n, 'veintiocho'],
27
+ [27n, 'veintisiete'],
28
+ [26n, 'veintiséis'],
29
+ [25n, 'veinticinco'],
30
+ [24n, 'veinticuatro'],
31
+ [23n, 'veintitrés'],
32
+ [22n, 'veintidós'],
33
+ [21n, 'veintiuno'],
34
+ [20n, 'veinte'],
35
+ [19n, 'diecinueve'],
36
+ [18n, 'dieciocho'],
37
+ [17n, 'diecisiete'],
38
+ [16n, 'dieciseis'],
39
+ [15n, 'quince'],
40
+ [14n, 'catorce'],
41
+ [13n, 'trece'],
42
+ [12n, 'doce'],
43
+ [11n, 'once'],
44
+ [10n, 'diez'],
45
+ [9n, 'nueve'],
46
+ [8n, 'ocho'],
47
+ [7n, 'siete'],
48
+ [6n, 'seis'],
49
+ [5n, 'cinco'],
50
+ [4n, 'cuatro'],
51
+ [3n, 'tres'],
52
+ [2n, 'dos'],
53
+ [1n, 'uno'],
54
+ [0n, 'cero']
55
+ ]);
56
56
  }
57
57
 
58
58
  merge(curr, next) {
@@ -93,6 +93,12 @@ export class N2WordsES extends N2WordsBase {
93
93
  }
94
94
  }
95
95
 
96
- export default function(n) {
97
- return new N2WordsES().floatToCardinal(n);
96
+ /**
97
+ * Converts a value to cardinal (written) form.
98
+ * @param {number|string} value Number to be convert.
99
+ * @throws {Error} Value cannot be invalid.
100
+ * @returns {string} Value in cardinal (written) format.
101
+ */
102
+ export default function(value) {
103
+ return new N2WordsES().floatToCardinal(value);
98
104
  }