n2words 1.23.1 → 2.0.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 +317 -59
- package/dist/ArabicConverter.js +3 -0
- package/dist/ArabicConverter.js.map +1 -0
- package/dist/AzerbaijaniConverter.js +3 -0
- package/dist/AzerbaijaniConverter.js.map +1 -0
- package/dist/BanglaConverter.js +3 -0
- package/dist/BanglaConverter.js.map +1 -0
- package/dist/BiblicalHebrewConverter.js +3 -0
- package/dist/BiblicalHebrewConverter.js.map +1 -0
- package/dist/CroatianConverter.js +3 -0
- package/dist/CroatianConverter.js.map +1 -0
- package/dist/CzechConverter.js +3 -0
- package/dist/CzechConverter.js.map +1 -0
- package/dist/DanishConverter.js +3 -0
- package/dist/DanishConverter.js.map +1 -0
- package/dist/DutchConverter.js +3 -0
- package/dist/DutchConverter.js.map +1 -0
- package/dist/EnglishConverter.js +3 -0
- package/dist/EnglishConverter.js.map +1 -0
- package/dist/FilipinoConverter.js +3 -0
- package/dist/FilipinoConverter.js.map +1 -0
- package/dist/FrenchBelgiumConverter.js +3 -0
- package/dist/FrenchBelgiumConverter.js.map +1 -0
- package/dist/FrenchConverter.js +3 -0
- package/dist/FrenchConverter.js.map +1 -0
- package/dist/GermanConverter.js +3 -0
- package/dist/GermanConverter.js.map +1 -0
- package/dist/GreekConverter.js +3 -0
- package/dist/GreekConverter.js.map +1 -0
- package/dist/GujaratiConverter.js +3 -0
- package/dist/GujaratiConverter.js.map +1 -0
- package/dist/HebrewConverter.js +3 -0
- package/dist/HebrewConverter.js.map +1 -0
- package/dist/HindiConverter.js +3 -0
- package/dist/HindiConverter.js.map +1 -0
- package/dist/HungarianConverter.js +3 -0
- package/dist/HungarianConverter.js.map +1 -0
- package/dist/IndonesianConverter.js +3 -0
- package/dist/IndonesianConverter.js.map +1 -0
- package/dist/ItalianConverter.js +3 -0
- package/dist/ItalianConverter.js.map +1 -0
- package/dist/JapaneseConverter.js +3 -0
- package/dist/JapaneseConverter.js.map +1 -0
- package/dist/KannadaConverter.js +3 -0
- package/dist/KannadaConverter.js.map +1 -0
- package/dist/KoreanConverter.js +3 -0
- package/dist/KoreanConverter.js.map +1 -0
- package/dist/LatvianConverter.js +3 -0
- package/dist/LatvianConverter.js.map +1 -0
- package/dist/LithuanianConverter.js +3 -0
- package/dist/LithuanianConverter.js.map +1 -0
- package/dist/MalayConverter.js +3 -0
- package/dist/MalayConverter.js.map +1 -0
- package/dist/MarathiConverter.js +3 -0
- package/dist/MarathiConverter.js.map +1 -0
- package/dist/NorwegianBokmalConverter.js +3 -0
- package/dist/NorwegianBokmalConverter.js.map +1 -0
- package/dist/PersianConverter.js +3 -0
- package/dist/PersianConverter.js.map +1 -0
- package/dist/PolishConverter.js +3 -0
- package/dist/PolishConverter.js.map +1 -0
- package/dist/PortugueseConverter.js +3 -0
- package/dist/PortugueseConverter.js.map +1 -0
- package/dist/PunjabiConverter.js +3 -0
- package/dist/PunjabiConverter.js.map +1 -0
- package/dist/RomanianConverter.js +3 -0
- package/dist/RomanianConverter.js.map +1 -0
- package/dist/RussianConverter.js +3 -0
- package/dist/RussianConverter.js.map +1 -0
- package/dist/SerbianCyrillicConverter.js +3 -0
- package/dist/SerbianCyrillicConverter.js.map +1 -0
- package/dist/SerbianLatinConverter.js +3 -0
- package/dist/SerbianLatinConverter.js.map +1 -0
- package/dist/SimplifiedChineseConverter.js +3 -0
- package/dist/SimplifiedChineseConverter.js.map +1 -0
- package/dist/SpanishConverter.js +3 -0
- package/dist/SpanishConverter.js.map +1 -0
- package/dist/SwahiliConverter.js +3 -0
- package/dist/SwahiliConverter.js.map +1 -0
- package/dist/SwedishConverter.js +3 -0
- package/dist/SwedishConverter.js.map +1 -0
- package/dist/TamilConverter.js +3 -0
- package/dist/TamilConverter.js.map +1 -0
- package/dist/TeluguConverter.js +3 -0
- package/dist/TeluguConverter.js.map +1 -0
- package/dist/ThaiConverter.js +3 -0
- package/dist/ThaiConverter.js.map +1 -0
- package/dist/TraditionalChineseConverter.js +3 -0
- package/dist/TraditionalChineseConverter.js.map +1 -0
- package/dist/TurkishConverter.js +3 -0
- package/dist/TurkishConverter.js.map +1 -0
- package/dist/UkrainianConverter.js +3 -0
- package/dist/UkrainianConverter.js.map +1 -0
- package/dist/UrduConverter.js +3 -0
- package/dist/UrduConverter.js.map +1 -0
- package/dist/VietnameseConverter.js +3 -0
- package/dist/VietnameseConverter.js.map +1 -0
- package/dist/n2words.js +3 -2
- package/dist/n2words.js.map +1 -1
- package/lib/classes/abstract-language.d.ts +158 -34
- package/lib/classes/abstract-language.js +223 -115
- package/lib/classes/greedy-scale-language.d.ts +109 -0
- package/lib/classes/greedy-scale-language.js +201 -0
- package/lib/classes/slavic-language.d.ts +148 -0
- package/lib/classes/slavic-language.js +281 -0
- package/lib/classes/south-asian-language.d.ts +70 -0
- package/lib/classes/south-asian-language.js +154 -0
- package/lib/classes/turkic-language.d.ts +26 -0
- package/lib/classes/turkic-language.js +59 -0
- package/lib/languages/ar.d.ts +30 -0
- package/lib/languages/ar.js +159 -0
- package/lib/languages/az.d.ts +12 -0
- package/lib/languages/az.js +42 -0
- package/lib/languages/bn.d.ts +11 -0
- package/lib/languages/bn.js +131 -0
- package/lib/languages/cs.d.ts +88 -0
- package/lib/languages/cs.js +143 -0
- package/lib/languages/da.d.ts +15 -0
- package/lib/languages/da.js +120 -0
- package/lib/languages/de.d.ts +14 -0
- package/lib/languages/de.js +101 -0
- package/lib/languages/el.d.ts +14 -0
- package/lib/languages/el.js +90 -0
- package/lib/languages/en.d.ts +16 -0
- package/lib/languages/en.js +86 -0
- package/lib/languages/es.d.ts +15 -0
- package/lib/languages/es.js +121 -0
- package/lib/languages/fa.d.ts +47 -0
- package/lib/languages/fa.js +144 -0
- package/lib/languages/fil.d.ts +16 -0
- package/lib/languages/fil.js +121 -0
- package/lib/languages/fr-BE.d.ts +11 -0
- package/lib/languages/fr-BE.js +25 -0
- package/lib/languages/fr.d.ts +15 -0
- package/lib/languages/fr.js +106 -0
- package/lib/languages/gu.d.ts +11 -0
- package/lib/languages/gu.js +132 -0
- package/lib/languages/hbo.d.ts +113 -0
- package/lib/languages/hbo.js +251 -0
- package/lib/languages/he.d.ts +80 -0
- package/lib/languages/he.js +206 -0
- package/lib/languages/hi.d.ts +11 -0
- package/lib/languages/hi.js +131 -0
- package/lib/languages/hr.d.ts +80 -0
- package/lib/languages/hr.js +113 -0
- package/lib/languages/hu.d.ts +22 -0
- package/lib/languages/hu.js +137 -0
- package/lib/languages/id.d.ts +37 -0
- package/lib/languages/id.js +159 -0
- package/lib/languages/it.d.ts +37 -0
- package/lib/languages/it.js +132 -0
- package/lib/languages/ja.d.ts +17 -0
- package/lib/languages/ja.js +137 -0
- package/lib/languages/kn.d.ts +11 -0
- package/lib/languages/kn.js +42 -0
- package/lib/languages/ko.d.ts +14 -0
- package/lib/languages/ko.js +55 -0
- package/lib/{i18n/pl.d.ts → languages/lt.d.ts} +18 -15
- package/lib/languages/lt.js +136 -0
- package/lib/{i18n/lt.d.ts → languages/lv.d.ts} +16 -14
- package/lib/languages/lv.js +130 -0
- package/lib/languages/mr.d.ts +11 -0
- package/lib/languages/mr.js +132 -0
- package/lib/languages/ms.d.ts +31 -0
- package/lib/languages/ms.js +150 -0
- package/lib/languages/nb.d.ts +12 -0
- package/lib/languages/nb.js +100 -0
- package/lib/languages/nl.d.ts +16 -0
- package/lib/languages/nl.js +155 -0
- package/lib/languages/pa.d.ts +11 -0
- package/lib/languages/pa.js +131 -0
- package/lib/{i18n/uk.d.ts → languages/pl.d.ts} +16 -14
- package/lib/languages/pl.js +110 -0
- package/lib/languages/pt.d.ts +29 -0
- package/lib/languages/pt.js +112 -0
- package/lib/languages/ro.d.ts +158 -0
- package/lib/languages/ro.js +273 -0
- package/lib/languages/ru.d.ts +85 -0
- package/lib/languages/ru.js +96 -0
- package/lib/languages/sr-Cyrl.d.ts +80 -0
- package/lib/languages/sr-Cyrl.js +113 -0
- package/lib/{i18n/cz.d.ts → languages/sr-Latn.d.ts} +26 -14
- package/lib/languages/sr-Latn.js +113 -0
- package/lib/languages/sv.d.ts +14 -0
- package/lib/languages/sv.js +90 -0
- package/lib/languages/sw.d.ts +39 -0
- package/lib/languages/sw.js +126 -0
- package/lib/languages/ta.d.ts +20 -0
- package/lib/languages/ta.js +226 -0
- package/lib/languages/te.d.ts +22 -0
- package/lib/languages/te.js +219 -0
- package/lib/languages/th.d.ts +17 -0
- package/lib/languages/th.js +117 -0
- package/lib/languages/tr.d.ts +12 -0
- package/lib/languages/tr.js +56 -0
- package/lib/languages/uk.d.ts +85 -0
- package/lib/{i18n → languages}/uk.js +33 -32
- package/lib/languages/ur.d.ts +11 -0
- package/lib/languages/ur.js +131 -0
- package/lib/{i18n → languages}/vi.d.ts +15 -13
- package/lib/languages/vi.js +147 -0
- package/lib/languages/zh-Hans.d.ts +21 -0
- package/lib/languages/zh-Hans.js +111 -0
- package/lib/languages/zh-Hant.d.ts +21 -0
- package/lib/languages/zh-Hant.js +111 -0
- package/lib/n2words.d.ts +207 -7
- package/lib/n2words.js +535 -81
- package/package.json +126 -79
- package/dist/ar.js +0 -2
- package/dist/ar.js.map +0 -1
- package/dist/az.js +0 -2
- package/dist/az.js.map +0 -1
- package/dist/cz.js +0 -2
- package/dist/cz.js.map +0 -1
- package/dist/de.js +0 -2
- package/dist/de.js.map +0 -1
- package/dist/dk.js +0 -2
- package/dist/dk.js.map +0 -1
- package/dist/en.js +0 -2
- package/dist/en.js.map +0 -1
- package/dist/es.js +0 -2
- package/dist/es.js.map +0 -1
- package/dist/fa.js +0 -2
- package/dist/fa.js.map +0 -1
- package/dist/fr-BE.js +0 -2
- package/dist/fr-BE.js.map +0 -1
- package/dist/fr.js +0 -2
- package/dist/fr.js.map +0 -1
- package/dist/he.js +0 -2
- package/dist/he.js.map +0 -1
- package/dist/hr.js +0 -2
- package/dist/hr.js.map +0 -1
- package/dist/hu.js +0 -2
- package/dist/hu.js.map +0 -1
- package/dist/id.js +0 -2
- package/dist/id.js.map +0 -1
- package/dist/it.js +0 -2
- package/dist/it.js.map +0 -1
- package/dist/ko.js +0 -2
- package/dist/ko.js.map +0 -1
- package/dist/lt.js +0 -2
- package/dist/lt.js.map +0 -1
- package/dist/lv.js +0 -2
- package/dist/lv.js.map +0 -1
- package/dist/n2words.d.ts +0 -2
- package/dist/nl.js +0 -2
- package/dist/nl.js.map +0 -1
- package/dist/no.js +0 -2
- package/dist/no.js.map +0 -1
- package/dist/pl.js +0 -2
- package/dist/pl.js.map +0 -1
- package/dist/pt.js +0 -2
- package/dist/pt.js.map +0 -1
- package/dist/ro.js +0 -2
- package/dist/ro.js.map +0 -1
- package/dist/ru.js +0 -2
- package/dist/ru.js.map +0 -1
- package/dist/sr.js +0 -2
- package/dist/sr.js.map +0 -1
- package/dist/tr.js +0 -2
- package/dist/tr.js.map +0 -1
- package/dist/uk.js +0 -2
- package/dist/uk.js.map +0 -1
- package/dist/vi.js +0 -2
- package/dist/vi.js.map +0 -1
- package/dist/zh.js +0 -2
- package/dist/zh.js.map +0 -1
- package/lib/classes/base-language.d.ts +0 -58
- package/lib/classes/base-language.js +0 -172
- package/lib/i18n/ar.d.ts +0 -41
- package/lib/i18n/ar.js +0 -209
- package/lib/i18n/az.d.ts +0 -15
- package/lib/i18n/az.js +0 -66
- package/lib/i18n/cz.js +0 -135
- package/lib/i18n/de.d.ts +0 -17
- package/lib/i18n/de.js +0 -103
- package/lib/i18n/dk.d.ts +0 -14
- package/lib/i18n/dk.js +0 -110
- package/lib/i18n/en.d.ts +0 -22
- package/lib/i18n/en.js +0 -86
- package/lib/i18n/es.d.ts +0 -16
- package/lib/i18n/es.js +0 -110
- package/lib/i18n/fa.d.ts +0 -54
- package/lib/i18n/fa.js +0 -106
- package/lib/i18n/fr-BE.d.ts +0 -11
- package/lib/i18n/fr-BE.js +0 -20
- package/lib/i18n/fr.d.ts +0 -15
- package/lib/i18n/fr.js +0 -99
- package/lib/i18n/he.d.ts +0 -61
- package/lib/i18n/he.js +0 -132
- package/lib/i18n/hr.d.ts +0 -68
- package/lib/i18n/hr.js +0 -129
- package/lib/i18n/hu.d.ts +0 -17
- package/lib/i18n/hu.js +0 -135
- package/lib/i18n/id.d.ts +0 -43
- package/lib/i18n/id.js +0 -156
- package/lib/i18n/it.d.ts +0 -29
- package/lib/i18n/it.js +0 -137
- package/lib/i18n/ko.d.ts +0 -15
- package/lib/i18n/ko.js +0 -56
- package/lib/i18n/lt.js +0 -138
- package/lib/i18n/lv.d.ts +0 -57
- package/lib/i18n/lv.js +0 -120
- package/lib/i18n/nl.d.ts +0 -20
- package/lib/i18n/nl.js +0 -125
- package/lib/i18n/no.d.ts +0 -15
- package/lib/i18n/no.js +0 -77
- package/lib/i18n/pl.js +0 -126
- package/lib/i18n/pt.d.ts +0 -26
- package/lib/i18n/pt.js +0 -118
- package/lib/i18n/ro.d.ts +0 -109
- package/lib/i18n/ro.js +0 -360
- package/lib/i18n/ru.d.ts +0 -30
- package/lib/i18n/ru.js +0 -198
- package/lib/i18n/sr.d.ts +0 -56
- package/lib/i18n/sr.js +0 -127
- package/lib/i18n/tr.d.ts +0 -15
- package/lib/i18n/tr.js +0 -64
- package/lib/i18n/vi.js +0 -151
- package/lib/i18n/zh.d.ts +0 -18
- package/lib/i18n/zh.js +0 -78
package/lib/i18n/en.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/base-language.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* This class is for converting numbers to english words.
|
|
5
|
-
*/
|
|
6
|
-
export class English extends BaseLanguage {
|
|
7
|
-
constructor(options) {
|
|
8
|
-
options = Object.assign({
|
|
9
|
-
negativeWord: 'minus',
|
|
10
|
-
separatorWord: 'point',
|
|
11
|
-
zero: 'zero'
|
|
12
|
-
}, options);
|
|
13
|
-
|
|
14
|
-
super(options, [
|
|
15
|
-
[1_000_000_000_000_000_000_000_000_000n, 'octillion'],
|
|
16
|
-
[1_000_000_000_000_000_000_000_000n, 'septillion'],
|
|
17
|
-
[1_000_000_000_000_000_000_000n, 'sextillion'],
|
|
18
|
-
[1_000_000_000_000_000_000n, 'quintillion'],
|
|
19
|
-
[1_000_000_000_000_000n, 'quadrillion'],
|
|
20
|
-
[1_000_000_000_000n, 'trillion'],
|
|
21
|
-
[1_000_000_000n, 'billion'],
|
|
22
|
-
[1_000_000n, 'million'],
|
|
23
|
-
[1000n, 'thousand'],
|
|
24
|
-
[100n, 'hundred'],
|
|
25
|
-
[90n, 'ninety'],
|
|
26
|
-
[80n, 'eighty'],
|
|
27
|
-
[70n, 'seventy'],
|
|
28
|
-
[60n, 'sixty'],
|
|
29
|
-
[50n, 'fifty'],
|
|
30
|
-
[40n, 'forty'],
|
|
31
|
-
[30n, 'thirty'],
|
|
32
|
-
[20n, 'twenty'],
|
|
33
|
-
[19n, 'nineteen'],
|
|
34
|
-
[18n, 'eighteen'],
|
|
35
|
-
[17n, 'seventeen'],
|
|
36
|
-
[16n, 'sixteen'],
|
|
37
|
-
[15n, 'fifteen'],
|
|
38
|
-
[14n, 'fourteen'],
|
|
39
|
-
[13n, 'thirteen'],
|
|
40
|
-
[12n, 'twelve'],
|
|
41
|
-
[11n, 'eleven'],
|
|
42
|
-
[10n, 'ten'],
|
|
43
|
-
[9n, 'nine'],
|
|
44
|
-
[8n, 'eight'],
|
|
45
|
-
[7n, 'seven'],
|
|
46
|
-
[6n, 'six'],
|
|
47
|
-
[5n, 'five'],
|
|
48
|
-
[4n, 'four'],
|
|
49
|
-
[3n, 'three'],
|
|
50
|
-
[2n, 'two'],
|
|
51
|
-
[1n, 'one'],
|
|
52
|
-
[0n, 'zero']
|
|
53
|
-
]);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Merge word set pairs
|
|
58
|
-
* @param {object} lPair {'one':1}
|
|
59
|
-
* @param {object} rPair {'hundred':100}
|
|
60
|
-
* @returns {object} {'one hundred': 100}
|
|
61
|
-
*/
|
|
62
|
-
merge(lPair, rPair) {
|
|
63
|
-
const lText = Object.keys(lPair)[0];
|
|
64
|
-
const lNumber = BigInt(Object.values(lPair)[0]);
|
|
65
|
-
const rText = Object.keys(rPair)[0];
|
|
66
|
-
const rNumber = BigInt(Object.values(rPair)[0]);
|
|
67
|
-
|
|
68
|
-
if (lNumber == 1 && rNumber < 100) return { [rText]: rNumber };
|
|
69
|
-
else if (100 > lNumber && lNumber > rNumber) return { [`${lText}-${rText}`]: lNumber + rNumber };
|
|
70
|
-
else if (lNumber >= 100 && 100 > rNumber) return { [`${lText} and ${rText}`]: lNumber + rNumber };
|
|
71
|
-
else if (rNumber > lNumber) return { [`${lText} ${rText}`]: lNumber * rNumber };
|
|
72
|
-
|
|
73
|
-
return { [`${lText} ${rText}`]: lNumber + rNumber };
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Converts a value to cardinal (written) form.
|
|
79
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
80
|
-
* @param {object} [options] Options for class.
|
|
81
|
-
* @returns {string} Value in cardinal (written) format.
|
|
82
|
-
* @throws {Error} Value cannot be invalid.
|
|
83
|
-
*/
|
|
84
|
-
export default function floatToCardinal (value, options = {}) {
|
|
85
|
-
return new English(options).floatToCardinal(value);
|
|
86
|
-
}
|
package/lib/i18n/es.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a value to cardinal (written) form.
|
|
3
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
4
|
-
* @param {object} [options] Options for class.
|
|
5
|
-
* @returns {string} Value in cardinal (written) format.
|
|
6
|
-
* @throws {Error} Value cannot be invalid.
|
|
7
|
-
*/
|
|
8
|
-
export default function floatToCardinal(value: number | string | bigint, options?: object): string;
|
|
9
|
-
export class N2WordsES extends BaseLanguage {
|
|
10
|
-
constructor(options: any);
|
|
11
|
-
genderStem: any;
|
|
12
|
-
merge(current: any, next: any): {
|
|
13
|
-
[x: string]: bigint;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
import BaseLanguage from '../classes/base-language.js';
|
package/lib/i18n/es.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/base-language.js';
|
|
2
|
-
|
|
3
|
-
export class N2WordsES extends BaseLanguage {
|
|
4
|
-
genderStem;
|
|
5
|
-
|
|
6
|
-
constructor(options) {
|
|
7
|
-
options = Object.assign({
|
|
8
|
-
negativeWord: 'menos',
|
|
9
|
-
separatorWord: 'punto',
|
|
10
|
-
zero: 'cero',
|
|
11
|
-
genderStem: 'o'
|
|
12
|
-
}, options);
|
|
13
|
-
|
|
14
|
-
super(options, [
|
|
15
|
-
[1_000_000_000_000_000_000_000_000n, 'cuatrillón'],
|
|
16
|
-
[1_000_000_000_000_000_000n, 'trillón'],
|
|
17
|
-
[1_000_000_000_000n, 'billón'],
|
|
18
|
-
[1_000_000n, 'millón'],
|
|
19
|
-
[1000n, 'mil'],
|
|
20
|
-
[100n, 'cien'],
|
|
21
|
-
[90n, 'noventa'],
|
|
22
|
-
[80n, 'ochenta'],
|
|
23
|
-
[70n, 'setenta'],
|
|
24
|
-
[60n, 'sesenta'],
|
|
25
|
-
[50n, 'cincuenta'],
|
|
26
|
-
[40n, 'cuarenta'],
|
|
27
|
-
[30n, 'treinta'],
|
|
28
|
-
[29n, 'veintinueve'],
|
|
29
|
-
[28n, 'veintiocho'],
|
|
30
|
-
[27n, 'veintisiete'],
|
|
31
|
-
[26n, 'veintiséis'],
|
|
32
|
-
[25n, 'veinticinco'],
|
|
33
|
-
[24n, 'veinticuatro'],
|
|
34
|
-
[23n, 'veintitrés'],
|
|
35
|
-
[22n, 'veintidós'],
|
|
36
|
-
[21n, 'veintiuno'],
|
|
37
|
-
[20n, 'veinte'],
|
|
38
|
-
[19n, 'diecinueve'],
|
|
39
|
-
[18n, 'dieciocho'],
|
|
40
|
-
[17n, 'diecisiete'],
|
|
41
|
-
[16n, 'dieciseis'],
|
|
42
|
-
[15n, 'quince'],
|
|
43
|
-
[14n, 'catorce'],
|
|
44
|
-
[13n, 'trece'],
|
|
45
|
-
[12n, 'doce'],
|
|
46
|
-
[11n, 'once'],
|
|
47
|
-
[10n, 'diez'],
|
|
48
|
-
[9n, 'nueve'],
|
|
49
|
-
[8n, 'ocho'],
|
|
50
|
-
[7n, 'siete'],
|
|
51
|
-
[6n, 'seis'],
|
|
52
|
-
[5n, 'cinco'],
|
|
53
|
-
[4n, 'cuatro'],
|
|
54
|
-
[3n, 'tres'],
|
|
55
|
-
[2n, 'dos'],
|
|
56
|
-
[1n, 'uno'],
|
|
57
|
-
[0n, 'cero']
|
|
58
|
-
]);
|
|
59
|
-
|
|
60
|
-
this.genderStem = options.genderStem;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
merge(current, next) {
|
|
64
|
-
let cText = Object.keys(current)[0];
|
|
65
|
-
let nText = Object.keys(next)[0];
|
|
66
|
-
const cNumber = BigInt(Object.values(current)[0]);
|
|
67
|
-
const nNumber = BigInt(Object.values(next)[0]);
|
|
68
|
-
if (cNumber == 1) {
|
|
69
|
-
if (nNumber < 1_000_000) return { [nText]: nNumber };
|
|
70
|
-
cText = 'un';
|
|
71
|
-
} else if (cNumber == 100 && nNumber % 1000n != 0) {
|
|
72
|
-
cText += 't' + this.genderStem;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (nNumber < cNumber) {
|
|
76
|
-
if (cNumber < 100) {
|
|
77
|
-
return { [`${cText} y ${nText}`]: cNumber + nNumber };
|
|
78
|
-
}
|
|
79
|
-
return { [`${cText} ${nText}`]: cNumber + nNumber };
|
|
80
|
-
} else if (nNumber % 1_000_000n == 0 && cNumber > 1) {
|
|
81
|
-
nText = nText.slice(0, -3) + 'lones';
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (nNumber == 100) {
|
|
85
|
-
if (cNumber == 5) {
|
|
86
|
-
cText = 'quinien';
|
|
87
|
-
nText = '';
|
|
88
|
-
} else if (cNumber == 7) {
|
|
89
|
-
cText = 'sete';
|
|
90
|
-
} else if (cNumber == 9) {
|
|
91
|
-
cText = 'nove';
|
|
92
|
-
}
|
|
93
|
-
nText += 't' + this.genderStem + 's';
|
|
94
|
-
} else {
|
|
95
|
-
nText = ' ' + nText;
|
|
96
|
-
}
|
|
97
|
-
return { [`${cText}${nText}`]: cNumber * nNumber };
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Converts a value to cardinal (written) form.
|
|
103
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
104
|
-
* @param {object} [options] Options for class.
|
|
105
|
-
* @returns {string} Value in cardinal (written) format.
|
|
106
|
-
* @throws {Error} Value cannot be invalid.
|
|
107
|
-
*/
|
|
108
|
-
export default function floatToCardinal (value, options = {}) {
|
|
109
|
-
return new N2WordsES(options).floatToCardinal(value);
|
|
110
|
-
}
|
package/lib/i18n/fa.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a value to cardinal (written) form.
|
|
3
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
4
|
-
* @param {object} [options] Options for class.
|
|
5
|
-
* @returns {string} Value in cardinal (written) format.
|
|
6
|
-
* @throws {Error} Value cannot be invalid.
|
|
7
|
-
*/
|
|
8
|
-
export default function floatToCardinal(value: number | string | bigint, options?: object): string;
|
|
9
|
-
export class N2WordsFA extends AbstractLanguage {
|
|
10
|
-
constructor(options: any);
|
|
11
|
-
namedNumbers: {
|
|
12
|
-
0: string;
|
|
13
|
-
1: string;
|
|
14
|
-
2: string;
|
|
15
|
-
3: string;
|
|
16
|
-
4: string;
|
|
17
|
-
5: string;
|
|
18
|
-
6: string;
|
|
19
|
-
7: string;
|
|
20
|
-
8: string;
|
|
21
|
-
9: string;
|
|
22
|
-
10: string;
|
|
23
|
-
11: string;
|
|
24
|
-
12: string;
|
|
25
|
-
13: string;
|
|
26
|
-
14: string;
|
|
27
|
-
15: string;
|
|
28
|
-
16: string;
|
|
29
|
-
17: string;
|
|
30
|
-
18: string;
|
|
31
|
-
19: string;
|
|
32
|
-
20: string;
|
|
33
|
-
30: string;
|
|
34
|
-
40: string;
|
|
35
|
-
50: string;
|
|
36
|
-
60: string;
|
|
37
|
-
70: string;
|
|
38
|
-
80: string;
|
|
39
|
-
90: string;
|
|
40
|
-
100: string;
|
|
41
|
-
200: string;
|
|
42
|
-
300: string;
|
|
43
|
-
400: string;
|
|
44
|
-
500: string;
|
|
45
|
-
600: string;
|
|
46
|
-
700: string;
|
|
47
|
-
800: string;
|
|
48
|
-
900: string;
|
|
49
|
-
1000: string;
|
|
50
|
-
1000000: string;
|
|
51
|
-
};
|
|
52
|
-
toCardinal(number: any): any;
|
|
53
|
-
}
|
|
54
|
-
import AbstractLanguage from '../classes/abstract-language.js';
|
package/lib/i18n/fa.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import AbstractLanguage from '../classes/abstract-language.js';
|
|
2
|
-
|
|
3
|
-
export class N2WordsFA extends AbstractLanguage {
|
|
4
|
-
namedNumbers = {
|
|
5
|
-
0: 'صفر',
|
|
6
|
-
1: 'یک',
|
|
7
|
-
2: 'دو',
|
|
8
|
-
3: 'سه',
|
|
9
|
-
4: 'چهار',
|
|
10
|
-
5: 'پنج',
|
|
11
|
-
6: 'شش',
|
|
12
|
-
7: 'هفت',
|
|
13
|
-
8: 'هشت',
|
|
14
|
-
9: 'نه',
|
|
15
|
-
10: 'ده',
|
|
16
|
-
11: 'یازده',
|
|
17
|
-
12: 'دوازده',
|
|
18
|
-
13: 'سیزده',
|
|
19
|
-
14: 'چهارده',
|
|
20
|
-
15: 'پانزده',
|
|
21
|
-
16: 'شانزده',
|
|
22
|
-
17: 'هفده',
|
|
23
|
-
18: 'هجده',
|
|
24
|
-
19: 'نوزده',
|
|
25
|
-
20: 'بیست',
|
|
26
|
-
30: 'سی',
|
|
27
|
-
40: 'چهل',
|
|
28
|
-
50: 'پنجاه',
|
|
29
|
-
60: 'شصت',
|
|
30
|
-
70: 'هفتاد',
|
|
31
|
-
80: 'هشتاد',
|
|
32
|
-
90: 'نود',
|
|
33
|
-
100: 'صد',
|
|
34
|
-
200: 'دویست',
|
|
35
|
-
300: 'سيصد',
|
|
36
|
-
400: 'چهار صد',
|
|
37
|
-
500: 'پانصد',
|
|
38
|
-
600: 'ششصد',
|
|
39
|
-
700: 'هفتصد',
|
|
40
|
-
800: 'هشتصد',
|
|
41
|
-
900: 'نهصد',
|
|
42
|
-
1000: 'هزار',
|
|
43
|
-
1_000_000: 'میلیون',
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
constructor(options) {
|
|
47
|
-
options = Object.assign({
|
|
48
|
-
negativeWord: 'منفى',
|
|
49
|
-
separatorWord: 'ممیّز',
|
|
50
|
-
zero: 'صفر'
|
|
51
|
-
}, options);
|
|
52
|
-
|
|
53
|
-
super(options);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
toCardinal(number) {
|
|
57
|
-
if (this.namedNumbers[number] && number !== 1_000_000n) {
|
|
58
|
-
return this.namedNumbers[number];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (number > 20n && number < 100n) {
|
|
62
|
-
let xone = number % 10n;
|
|
63
|
-
let xten = number - xone;
|
|
64
|
-
return `${this.namedNumbers[xten]} و ${this.namedNumbers[xone]}`;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (number > 100n && number < 1000n) {
|
|
68
|
-
let xhundred = 100n * (number / 100n);
|
|
69
|
-
let tail = this.toCardinal(number - xhundred);
|
|
70
|
-
return `${this.namedNumbers[xhundred]} و ${tail}`;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (number > 1000n && number < 1_000_000n) {
|
|
74
|
-
let thousandMultiplier = number / 1000n;
|
|
75
|
-
let namedThousandMultiplier =
|
|
76
|
-
(thousandMultiplier == 1n
|
|
77
|
-
? ''
|
|
78
|
-
: this.toCardinal(thousandMultiplier)) +
|
|
79
|
-
' ' +
|
|
80
|
-
this.namedNumbers[1000];
|
|
81
|
-
let tailNumber = number - thousandMultiplier * 1000n;
|
|
82
|
-
let tail = tailNumber == 0n ? '' : ' ' + this.toCardinal(tailNumber);
|
|
83
|
-
return `${namedThousandMultiplier}${tail}`;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (number >= 1_000_000n) {
|
|
87
|
-
let millionMultiplier = number / 1_000_000n;
|
|
88
|
-
let namedMillion =
|
|
89
|
-
this.toCardinal(millionMultiplier) + ' ' + this.namedNumbers[1_000_000];
|
|
90
|
-
let tailNumber = number - millionMultiplier * 1_000_000n;
|
|
91
|
-
let tail = tailNumber == 0n ? '' : ' و ' + this.toCardinal(tailNumber);
|
|
92
|
-
return `${namedMillion}${tail}`;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Converts a value to cardinal (written) form.
|
|
99
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
100
|
-
* @param {object} [options] Options for class.
|
|
101
|
-
* @returns {string} Value in cardinal (written) format.
|
|
102
|
-
* @throws {Error} Value cannot be invalid.
|
|
103
|
-
*/
|
|
104
|
-
export default function floatToCardinal (value, options = {}) {
|
|
105
|
-
return new N2WordsFA(options).floatToCardinal(value);
|
|
106
|
-
}
|
package/lib/i18n/fr-BE.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a value to cardinal (written) form.
|
|
3
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
4
|
-
* @param {object} [options] Options for class.
|
|
5
|
-
* @returns {string} Value in cardinal (written) format.
|
|
6
|
-
* @throws {Error} Value cannot be invalid.
|
|
7
|
-
*/
|
|
8
|
-
export default function floatToCardinal(value: number | string | bigint, options?: object): string;
|
|
9
|
-
export class N2WordsFRBE extends N2WordsFR {
|
|
10
|
-
}
|
|
11
|
-
import { N2WordsFR } from './fr.js';
|
package/lib/i18n/fr-BE.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { N2WordsFR } from './fr.js';
|
|
2
|
-
|
|
3
|
-
export class N2WordsFRBE extends N2WordsFR {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
options = Object.assign({}, options, { _region: 'BE' });
|
|
6
|
-
|
|
7
|
-
super(options);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Converts a value to cardinal (written) form.
|
|
13
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
14
|
-
* @param {object} [options] Options for class.
|
|
15
|
-
* @returns {string} Value in cardinal (written) format.
|
|
16
|
-
* @throws {Error} Value cannot be invalid.
|
|
17
|
-
*/
|
|
18
|
-
export default function floatToCardinal (value, options = {}) {
|
|
19
|
-
return new N2WordsFRBE(options).floatToCardinal(value);
|
|
20
|
-
}
|
package/lib/i18n/fr.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a value to cardinal (written) form.
|
|
3
|
-
* @param {number|string|bigint} value Number to be converted.
|
|
4
|
-
* @param {object} [options] Options for class.
|
|
5
|
-
* @returns {string} Value in cardinal (written) format.
|
|
6
|
-
* @throws {Error} Value cannot be invalid.
|
|
7
|
-
*/
|
|
8
|
-
export default function floatToCardinal(value: number | string | bigint, options?: object): string;
|
|
9
|
-
export class N2WordsFR extends BaseLanguage {
|
|
10
|
-
constructor(options: any);
|
|
11
|
-
merge(current: any, next: any): {
|
|
12
|
-
[x: string]: bigint;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
import BaseLanguage from '../classes/base-language.js';
|
package/lib/i18n/fr.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import BaseLanguage from '../classes/base-language.js';
|
|
2
|
-
|
|
3
|
-
export class N2WordsFR extends BaseLanguage {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
options = Object.assign({
|
|
6
|
-
negativeWord: 'moins',
|
|
7
|
-
separatorWord: 'virgule',
|
|
8
|
-
zero: 'zéro',
|
|
9
|
-
_region: 'FR',
|
|
10
|
-
withHyphenSeparator: false,
|
|
11
|
-
spaceSeparator: (options.withHyphenSeparator === true ? '-' : ' '),
|
|
12
|
-
}, options);
|
|
13
|
-
|
|
14
|
-
super(options, [
|
|
15
|
-
[1_000_000_000_000_000_000_000_000_000n, 'quadrilliard'],
|
|
16
|
-
[1_000_000_000_000_000_000_000_000n, 'quadrillion'],
|
|
17
|
-
[1_000_000_000_000_000_000_000n, 'trilliard'],
|
|
18
|
-
[1_000_000_000_000_000_000n, 'trillion'],
|
|
19
|
-
[1_000_000_000_000_000n, 'billiard'],
|
|
20
|
-
[1_000_000_000_000n, 'billion'],
|
|
21
|
-
[1_000_000_000n, 'milliard'],
|
|
22
|
-
[1_000_000n, 'million'],
|
|
23
|
-
[1000n, 'mille'],
|
|
24
|
-
[100n, 'cent'],
|
|
25
|
-
...(['BE'].includes(options._region) ? [[90n, 'nonante']] : []),
|
|
26
|
-
[80n, 'quatre-vingts'],
|
|
27
|
-
...(['BE'].includes(options._region) ? [[70n, 'septante']] : []),
|
|
28
|
-
[60n, 'soixante'],
|
|
29
|
-
[50n, 'cinquante'],
|
|
30
|
-
[40n, 'quarante'],
|
|
31
|
-
[30n, 'trente'],
|
|
32
|
-
[20n, 'vingt'],
|
|
33
|
-
[19n, 'dix-neuf'],
|
|
34
|
-
[18n, 'dix-huit'],
|
|
35
|
-
[17n, 'dix-sept'],
|
|
36
|
-
[16n, 'seize'],
|
|
37
|
-
[15n, 'quinze'],
|
|
38
|
-
[14n, 'quatorze'],
|
|
39
|
-
[13n, 'treize'],
|
|
40
|
-
[12n, 'douze'],
|
|
41
|
-
[11n, 'onze'],
|
|
42
|
-
[10n, 'dix'],
|
|
43
|
-
[9n, 'neuf'],
|
|
44
|
-
[8n, 'huit'],
|
|
45
|
-
[7n, 'sept'],
|
|
46
|
-
[6n, 'six'],
|
|
47
|
-
[5n, 'cinq'],
|
|
48
|
-
[4n, 'quatre'],
|
|
49
|
-
[3n, 'trois'],
|
|
50
|
-
[2n, 'deux'],
|
|
51
|
-
[1n, 'un'],
|
|
52
|
-
[0n, 'zéro']
|
|
53
|
-
]);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
merge(current, next) { // {'cent':100}, {'vingt-cinq':25}
|
|
57
|
-
let cText = Object.keys(current)[0];
|
|
58
|
-
let nText = Object.keys(next)[0];
|
|
59
|
-
const cNumber = BigInt(Object.values(current)[0]);
|
|
60
|
-
const nNumber = BigInt(Object.values(next)[0]);
|
|
61
|
-
if (cNumber == 1) {
|
|
62
|
-
if (nNumber < 1_000_000) {
|
|
63
|
-
return { [nText]: nNumber };
|
|
64
|
-
}
|
|
65
|
-
} else {
|
|
66
|
-
if (
|
|
67
|
-
((cNumber - 80n) % 100n == 0 || (cNumber % 100n == 0 && cNumber < 1000)) &&
|
|
68
|
-
nNumber < 1_000_000 &&
|
|
69
|
-
cText.at(-1) == 's'
|
|
70
|
-
) {
|
|
71
|
-
cText = cText.slice(0, -1); // without last elem
|
|
72
|
-
}
|
|
73
|
-
if (
|
|
74
|
-
cNumber < 1000 && nNumber != 1000 &&
|
|
75
|
-
nText.at(-1) != 's' &&
|
|
76
|
-
nNumber % 100n == 0
|
|
77
|
-
) {
|
|
78
|
-
nText += 's';
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
if (nNumber < cNumber && cNumber < 100) {
|
|
82
|
-
if (nNumber % 10n == 1 && cNumber != 80) return { [`${cText}${this.spaceSeparator}et${this.spaceSeparator}${nText}`]: cNumber + nNumber };
|
|
83
|
-
return { [`${cText}-${nText}`]: cNumber + nNumber };
|
|
84
|
-
}
|
|
85
|
-
if (nNumber > cNumber) return { [`${cText}${this.spaceSeparator}${nText}`]: cNumber * nNumber };
|
|
86
|
-
return { [`${cText}${this.spaceSeparator}${nText}`]: cNumber + nNumber };
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Converts a value to cardinal (written) form.
|
|
92
|
-
* @param {number|string|bigint} value Number to be converted.
|
|
93
|
-
* @param {object} [options] Options for class.
|
|
94
|
-
* @returns {string} Value in cardinal (written) format.
|
|
95
|
-
* @throws {Error} Value cannot be invalid.
|
|
96
|
-
*/
|
|
97
|
-
export default function floatToCardinal (value, options = {}) {
|
|
98
|
-
return new N2WordsFR(options).floatToCardinal(value);
|
|
99
|
-
}
|
package/lib/i18n/he.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a value to cardinal (written) form.
|
|
3
|
-
* @param {number|string|bigint} value Number to be convert.
|
|
4
|
-
* @param {object} [options] Options for class.
|
|
5
|
-
* @returns {string} Value in cardinal (written) format.
|
|
6
|
-
* @throws {Error} Value cannot be invalid.
|
|
7
|
-
*/
|
|
8
|
-
export default function floatToCardinal(value: number | string | bigint, options?: object): string;
|
|
9
|
-
export class N2WordsHE extends N2WordsRU {
|
|
10
|
-
and: any;
|
|
11
|
-
ones: {
|
|
12
|
-
1: string;
|
|
13
|
-
2: string;
|
|
14
|
-
3: string;
|
|
15
|
-
4: string;
|
|
16
|
-
5: string;
|
|
17
|
-
6: string;
|
|
18
|
-
7: string;
|
|
19
|
-
8: string;
|
|
20
|
-
9: string;
|
|
21
|
-
};
|
|
22
|
-
tens: {
|
|
23
|
-
0: string;
|
|
24
|
-
1: string;
|
|
25
|
-
2: string;
|
|
26
|
-
3: string;
|
|
27
|
-
4: string;
|
|
28
|
-
5: string;
|
|
29
|
-
6: string;
|
|
30
|
-
7: string;
|
|
31
|
-
8: string;
|
|
32
|
-
9: string;
|
|
33
|
-
};
|
|
34
|
-
twenties: {
|
|
35
|
-
2: string;
|
|
36
|
-
3: string;
|
|
37
|
-
4: string;
|
|
38
|
-
5: string;
|
|
39
|
-
6: string;
|
|
40
|
-
7: string;
|
|
41
|
-
8: string;
|
|
42
|
-
9: string;
|
|
43
|
-
};
|
|
44
|
-
hundreds: {
|
|
45
|
-
1: string;
|
|
46
|
-
2: string;
|
|
47
|
-
3: string;
|
|
48
|
-
};
|
|
49
|
-
thousands: {
|
|
50
|
-
1: string;
|
|
51
|
-
2: string;
|
|
52
|
-
3: string;
|
|
53
|
-
4: string;
|
|
54
|
-
5: string;
|
|
55
|
-
6: string;
|
|
56
|
-
7: string;
|
|
57
|
-
8: string;
|
|
58
|
-
9: string;
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
import { N2WordsRU } from './ru.js';
|