n2words 1.9.0 → 1.11.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,90 +1,99 @@
1
1
  import N2WordsBase from '../classes/N2WordsBase.mjs';
2
2
 
3
- export default function () {
4
- N2WordsBase.call(this);
3
+ export class N2WordsDE extends N2WordsBase {
4
+ constructor() {
5
+ super();
5
6
 
6
- this.negative_word = "minus";
7
- this.separator_word = "komma";
8
- this.ZERO = 'null';
9
- this.cards = [
10
- { '1000000000000000000000000000': 'Quadrilliarde' },
11
- { '1000000000000000000000000': 'Quadrillion' },
12
- { '1000000000000000000000': 'Trilliarde' },
13
- { 1000000000000000000: 'Trillion' },
14
- { 1000000000000000: 'Billiarde' },
15
- { 1000000000000: 'Billion' },
16
- { 1000000000: 'Milliarde' },
17
- { 1000000: 'Million' },
18
- { 1000: 'tausend' },
19
- { 100: 'hundert' },
20
- { 90: 'neunzig' },
21
- { 80: 'achtzig' },
22
- { 70: 'siebzig' },
23
- { 60: 'sechzig' },
24
- { 50: 'fünfzig' },
25
- { 40: 'vierzig' },
26
- { 30: 'dreißig' },
27
- { 20: 'zwanzig' },
28
- { 19: 'neunzehn' },
29
- { 18: 'achtzehn' },
30
- { 17: 'siebzehn' },
31
- { 16: 'sechzehn' },
32
- { 15: 'fünfzehn' },
33
- { 14: 'vierzehn' },
34
- { 13: 'dreizehn' },
35
- { 12: 'zwölf' },
36
- { 11: 'elf' },
37
- { 10: 'zehn' },
38
- { 9: 'neun' },
39
- { 8: 'acht' },
40
- { 7: 'sieben' },
41
- { 6: 'sechs' },
42
- { 5: 'fünf' },
43
- { 4: 'vier' },
44
- { 3: 'drei' },
45
- { 2: 'zwei' },
46
- { 1: 'eins' },
47
- { 0: 'null' }
48
- ];
49
- this.merge = (curr, next) => {
50
- let ctext = Object.keys(curr)[0]; const cnum = parseInt(Object.values(curr)[0]);
51
- let ntext = Object.keys(next)[0]; const nnum = parseInt(Object.values(next)[0]);
52
- if (cnum == 1) {
53
- if (nnum == 100 || nnum == 1000) {
54
- return { [`ein${ntext}`]: nnum };
55
- } else if (nnum < 1000000) {
56
- return { [ntext]: nnum };
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
+ ];
50
+ }
51
+
52
+ merge(curr, next) {
53
+ let cText = Object.keys(curr)[0];
54
+ let nText = Object.keys(next)[0];
55
+ const cNum = parseInt(Object.values(curr)[0]);
56
+ const nNum = parseInt(Object.values(next)[0]);
57
+ if (cNum == 1) {
58
+ if (nNum == 100 || nNum == 1000) {
59
+ return { [`ein${nText}`]: nNum };
60
+ } else if (nNum < 1000000) {
61
+ return { [nText]: nNum };
57
62
  }
58
- ctext = 'eine';
63
+ cText = 'eine';
59
64
  }
60
65
 
61
66
  let val = 0;
62
- if (nnum > cnum) {
63
- if (nnum >= 1000000) {
64
- if (cnum > 1) {
65
- if (ntext[ntext.length - 1] == 'e') {
66
- ntext += 'n';
67
+ if (nNum > cNum) {
68
+ if (nNum >= 1000000) {
69
+ if (cNum > 1) {
70
+ if (nText[nText.length - 1] == 'e') {
71
+ nText += 'n';
67
72
  } else {
68
- ntext += 'en';
73
+ nText += 'en';
69
74
  }
70
75
  }
71
- ctext += ' ';
76
+ cText += ' ';
72
77
  }
73
- val = cnum * nnum;
78
+ val = cNum * nNum;
74
79
  } else {
75
- if (nnum < 10 && cnum > 10 && cnum < 100) {
76
- if (nnum == 1) {
77
- ntext = 'ein';
80
+ if (nNum < 10 && cNum > 10 && cNum < 100) {
81
+ if (nNum == 1) {
82
+ nText = 'ein';
78
83
  }
79
- const temp = ntext;
80
- ntext = ctext;
81
- ctext = `${temp}und`;
82
- } else if (cnum >= 1000000) {
83
- ctext += ' ';
84
+ const temp = nText;
85
+ nText = cText;
86
+ cText = `${temp}und`;
87
+ } else if (cNum >= 1000000) {
88
+ cText += ' ';
84
89
  }
85
- val = cnum + nnum;
90
+ val = cNum + nNum;
86
91
  }
87
92
 
88
- return { [`${ctext}${ntext}`]: val };
89
- };
93
+ return { [`${cText}${nText}`]: val };
94
+ }
95
+ }
96
+
97
+ export default function(n) {
98
+ return new N2WordsDE().floatToCardinal(n);
90
99
  }
package/lib/i18n/DK.mjs CHANGED
@@ -1,89 +1,98 @@
1
1
  import N2WordsBase from '../classes/N2WordsBase.mjs';
2
2
 
3
- export default function () {
4
- N2WordsBase.call(this);
3
+ export class N2WordsDK extends N2WordsBase {
4
+ constructor() {
5
+ super();
5
6
 
6
- this.negative_word = "minus";
7
- this.separator_word = "komma";
8
- this.ZERO = 'nul';
9
- this.ordflag = false;
10
- this.cards = [
11
- { '1000000000000000000000000000': 'quadrillarder' },
12
- { '1000000000000000000000000': 'quadrillioner' },
13
- { '1000000000000000000000': 'trillarder' },
14
- { '1000000000000000000': 'trillioner' },
15
- { '1000000000000000': 'billarder' },
16
- { '1000000000000': 'billioner' },
17
- { '1000000000': 'millarder' },
18
- { '1000000': 'millioner' },
19
- { '1000': 'tusind' },
20
- { '100': 'hundrede' },
21
- { '90': 'halvfems' },
22
- { '80': 'firs' },
23
- { '70': 'halvfjerds' },
24
- { '60': 'treds' },
25
- { '50': 'halvtreds' },
26
- { '40': 'fyrre' },
27
- { '30': 'tredive' },
28
- { '20': 'tyve' },
29
- { '19': 'nitten' },
30
- { '18': 'atten' },
31
- { '17': 'sytten' },
32
- { '16': 'seksten' },
33
- { '15': 'femten' },
34
- { '14': 'fjorten' },
35
- { '13': 'tretten' },
36
- { '12': 'tolv' },
37
- { '11': 'elleve' },
38
- { '10': 'ti' },
39
- { '9': 'ni' },
40
- { '8': 'otte' },
41
- { '7': 'syv' },
42
- { '6': 'seks' },
43
- { '5': 'fem' },
44
- { '4': 'fire' },
45
- { '3': 'tre' },
46
- { '2': 'to' },
47
- { '1': 'et' },
48
- { '0': 'nul' }
49
- ];
50
- this.merge = (curr, next) => {
51
- let ctext = Object.keys(curr)[0]; const cnum = parseInt(Object.values(curr)[0]);
52
- let ntext = Object.keys(next)[0]; const nnum = parseInt(Object.values(next)[0]);
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
+ ];
51
+ }
52
+
53
+ merge(curr, next) {
54
+ let cText = Object.keys(curr)[0];
55
+ let nText = Object.keys(next)[0];
56
+ const cNum = parseInt(Object.values(curr)[0]);
57
+ const nNum = parseInt(Object.values(next)[0]);
53
58
  let val = 1;
54
- if (nnum == 100 || nnum == 1000) {
55
- next = { [`et${ntext}`]: nnum };
59
+ if (nNum == 100 || nNum == 1000) {
60
+ next = { [`et${nText}`]: nNum };
56
61
  }
57
- if (cnum == 1) {
58
- if (nnum < 1000000 || this.ordflag) {
62
+ if (cNum == 1) {
63
+ if (nNum < 1000000 || this.ordFlag) {
59
64
  return next;
60
65
  }
61
- ctext = 'en';
66
+ cText = 'en';
62
67
  }
63
- if (nnum > cnum) {
64
- if (nnum >= 1000000) {
65
- ctext += ' ';
68
+ if (nNum > cNum) {
69
+ if (nNum >= 1000000) {
70
+ cText += ' ';
66
71
  }
67
- val = cnum * nnum;
72
+ val = cNum * nNum;
68
73
  } else {
69
- if (cnum >= 100 && cnum < 1000) {
70
- ctext += ' og ';
71
- } else if (cnum >= 1000 && cnum <= 100000) {
72
- ctext += 'e og ';
74
+ if (cNum >= 100 && cNum < 1000) {
75
+ cText += ' og ';
76
+ } else if (cNum >= 1000 && cNum <= 100000) {
77
+ cText += 'e og ';
73
78
  }
74
- if ((nnum < 10) && (10 < cnum) && (cnum < 100)) {
75
- if (nnum == 1) {
76
- ntext = 'en';
79
+ if ((nNum < 10) && (10 < cNum) && (cNum < 100)) {
80
+ if (nNum == 1) {
81
+ nText = 'en';
77
82
  }
78
- const temp = ntext;
79
- ntext = ctext;
80
- ctext = temp + 'og';
81
- } else if (cnum >= 1000000) {
82
- ctext += ' ';
83
+ const temp = nText;
84
+ nText = cText;
85
+ cText = temp + 'og';
86
+ } else if (cNum >= 1000000) {
87
+ cText += ' ';
83
88
  }
84
- val = cnum + nnum;
89
+ val = cNum + nNum;
85
90
  }
86
- const word = ctext + ntext;
91
+ const word = cText + nText;
87
92
  return { [`${word}`]: val };
88
- };
93
+ }
94
+ }
95
+
96
+ export default function(n) {
97
+ return new N2WordsDK().floatToCardinal(n);
89
98
  }
package/lib/i18n/EN.mjs CHANGED
@@ -1,58 +1,72 @@
1
1
  import N2WordsBase from '../classes/N2WordsBase.mjs';
2
2
 
3
- export default function () {
4
- N2WordsBase.call(this);
3
+ class N2WordsEN extends N2WordsBase {
4
+ constructor() {
5
+ super();
5
6
 
6
- this.negative_word = 'minus';
7
- this.separator_word = 'point';
8
- this.ZERO = 'zero';
9
- this.cards = [
10
- { '1000000000000000000000000000': 'octillion' },
11
- { '1000000000000000000000000': 'septillion' },
12
- { '1000000000000000000000': 'sextillion' },
13
- { '1000000000000000000': 'quintillion' },
14
- { '1000000000000000': 'quadrillion' },
15
- { '1000000000000': 'trillion' },
16
- { '1000000000': 'billion' },
17
- { '1000000': 'million' },
18
- { '1000': 'thousand' },
19
- { '100': 'hundred' },
20
- { '90': 'ninety' },
21
- { '80': 'eighty' },
22
- { '70': 'seventy' },
23
- { '60': 'sixty' },
24
- { '50': 'fifty' },
25
- { '40': 'forty' },
26
- { '30': 'thirty' },
27
- { '20': 'twenty' },
28
- { '19': 'nineteen' },
29
- { '18': 'eighteen' },
30
- { '17': 'seventeen' },
31
- { '16': 'sixteen' },
32
- { '15': 'fifteen' },
33
- { '14': 'fourteen' },
34
- { '13': 'thirteen' },
35
- { '12': 'twelve' },
36
- { '11': 'eleven' },
37
- { '10': 'ten' },
38
- { '9': 'nine' },
39
- { '8': 'eight' },
40
- { '7': 'seven' },
41
- { '6': 'six' },
42
- { '5': 'five' },
43
- { '4': 'four' },
44
- { '3': 'three' },
45
- { '2': 'two' },
46
- { '1': 'one' },
47
- { '0': 'zero' }
48
- ];
49
- this.merge = (lpair, rpair) => { // {'one':1}, {'hundred':100}
50
- const ltext = Object.keys(lpair)[0]; const lnum = parseInt(Object.values(lpair)[0]);
51
- const rtext = Object.keys(rpair)[0]; const rnum = parseInt(Object.values(rpair)[0]);
52
- if (lnum == 1 && rnum < 100) return { [rtext]: rnum };
53
- else if (100 > lnum && lnum > rnum) return { [`${ltext}-${rtext}`]: lnum + rnum };
54
- else if (lnum >= 100 && 100 > rnum) return { [`${ltext} and ${rtext}`]: lnum + rnum };
55
- else if (rnum > lnum) return { [`${ltext} ${rtext}`]: lnum * rnum };
56
- return { [`${ltext} ${rtext}`]: lnum + rnum };
57
- };
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
+ ];
50
+ }
51
+
52
+ /**
53
+ *
54
+ *
55
+ * @param {object} lPair {'one':1}
56
+ * @param {object} rPair {'hundred':100}
57
+ * @returns {object} {'one hundred': 100}
58
+ */
59
+ 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]);
62
+ if (lNum == 1 && rNum < 100) return { [rText]: rNum };
63
+ else if (100 > lNum && lNum > rNum) return { [`${lText}-${rText}`]: lNum + rNum };
64
+ else if (lNum >= 100 && 100 > rNum) return { [`${lText} and ${rText}`]: lNum + rNum };
65
+ else if (rNum > lNum) return { [`${lText} ${rText}`]: lNum * rNum };
66
+ return { [`${lText} ${rText}`]: lNum + rNum };
67
+ }
68
+ }
69
+
70
+ export default function(n) {
71
+ return new N2WordsEN().floatToCardinal(n);
58
72
  }
package/lib/i18n/ES.mjs CHANGED
@@ -1,89 +1,98 @@
1
1
  import N2WordsBase from '../classes/N2WordsBase.mjs';
2
2
 
3
- export default function () {
4
- N2WordsBase.call(this);
3
+ export class N2WordsES extends N2WordsBase {
4
+ constructor() {
5
+ super();
5
6
 
6
- this.gender_stem = 'o';
7
- this.negative_word = 'menos';
8
- this.separator_word = 'punto';
9
- this.ZERO = 'cero';
10
- this.cards = [
11
- { '1000000000000000000000000': 'cuatrillón' },
12
- { '1000000000000000000': 'trillón' },
13
- { '1000000000000': 'billón' },
14
- { '1000000': 'millón' },
15
- { '1000': 'mil' },
16
- { '100': 'cien' },
17
- { '90': 'noventa' },
18
- { '80': 'ochenta' },
19
- { '70': 'setenta' },
20
- { '60': 'sesenta' },
21
- { '50': 'cincuenta' },
22
- { '40': 'cuarenta' },
23
- { '30': 'treinta' },
24
- { '29': 'veintinueve' },
25
- { '28': 'veintiocho' },
26
- { '27': 'veintisiete' },
27
- { '26': 'veintiséis' },
28
- { '25': 'veinticinco' },
29
- { '24': 'veinticuatro' },
30
- { '23': 'veintitrés' },
31
- { '22': 'veintidós' },
32
- { '21': 'veintiuno' },
33
- { '20': 'veinte' },
34
- { '19': 'diecinueve' },
35
- { '18': 'dieciocho' },
36
- { '17': 'diecisiete' },
37
- { '16': 'dieciseis' },
38
- { '15': 'quince' },
39
- { '14': 'catorce' },
40
- { '13': 'trece' },
41
- { '12': 'doce' },
42
- { '11': 'once' },
43
- { '10': 'diez' },
44
- { '9': 'nueve' },
45
- { '8': 'ocho' },
46
- { '7': 'siete' },
47
- { '6': 'seis' },
48
- { '5': 'cinco' },
49
- { '4': 'cuatro' },
50
- { '3': 'tres' },
51
- { '2': 'dos' },
52
- { '1': 'uno' },
53
- { '0': 'cero' }
54
- ];
55
- this.merge = (curr, next) => {
56
- let ctext = Object.keys(curr)[0]; const cnum = parseInt(Object.values(curr)[0]);
57
- let ntext = Object.keys(next)[0]; const nnum = parseInt(Object.values(next)[0]);
58
- if (cnum == 1) {
59
- if (nnum < 1000000) return { [ntext]: nnum };
60
- ctext = 'un';
61
- } else if (cnum == 100 && nnum % 1000 != 0) {
62
- ctext += 't' + this.gender_stem;
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
+ ];
56
+ }
57
+
58
+ merge(curr, next) {
59
+ let cText = Object.keys(curr)[0];
60
+ let nText = Object.keys(next)[0];
61
+ const cNum = parseInt(Object.values(curr)[0]);
62
+ const nNum = parseInt(Object.values(next)[0]);
63
+ if (cNum == 1) {
64
+ if (nNum < 1000000) return { [nText]: nNum };
65
+ cText = 'un';
66
+ } else if (cNum == 100 && nNum % 1000 != 0) {
67
+ cText += 't' + this.genderStem;
63
68
  }
64
69
 
65
- if (nnum < cnum) {
66
- if (cnum < 100) {
67
- return { [`${ctext} y ${ntext}`]: cnum + nnum };
70
+ if (nNum < cNum) {
71
+ if (cNum < 100) {
72
+ return { [`${cText} y ${nText}`]: cNum + nNum };
68
73
  }
69
- return { [`${ctext} ${ntext}`]: cnum + nnum };
70
- } else if (nnum % 1000000 == 0 && cnum > 1) {
71
- ntext = ntext.slice(0, -3) + 'lones';
74
+ return { [`${cText} ${nText}`]: cNum + nNum };
75
+ } else if (nNum % 1000000 == 0 && cNum > 1) {
76
+ nText = nText.slice(0, -3) + 'lones';
72
77
  }
73
78
 
74
- if (nnum == 100) {
75
- if (cnum == 5) {
76
- ctext = 'quinien';
77
- ntext = '';
78
- } else if (cnum == 7) {
79
- ctext = 'sete';
80
- } else if (cnum == 9) {
81
- ctext = 'nove';
79
+ if (nNum == 100) {
80
+ if (cNum == 5) {
81
+ cText = 'quinien';
82
+ nText = '';
83
+ } else if (cNum == 7) {
84
+ cText = 'sete';
85
+ } else if (cNum == 9) {
86
+ cText = 'nove';
82
87
  }
83
- ntext += 't' + this.gender_stem + 's';
88
+ nText += 't' + this.genderStem + 's';
84
89
  } else {
85
- ntext = ' ' + ntext;
90
+ nText = ' ' + nText;
86
91
  }
87
- return { [`${ctext}${ntext}`]: cnum * nnum };
88
- };
92
+ return { [`${cText}${nText}`]: cNum * nNum };
93
+ }
94
+ }
95
+
96
+ export default function(n) {
97
+ return new N2WordsES().floatToCardinal(n);
89
98
  }