n2words 1.24.0 → 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/README.md +285 -156
- 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 +178 -0
- package/lib/classes/abstract-language.js +192 -185
- package/lib/classes/greedy-scale-language.d.ts +109 -0
- package/lib/classes/greedy-scale-language.js +96 -90
- package/lib/classes/slavic-language.d.ts +148 -0
- package/lib/classes/slavic-language.js +136 -106
- package/lib/classes/south-asian-language.d.ts +70 -0
- package/lib/classes/south-asian-language.js +58 -65
- package/lib/classes/turkic-language.d.ts +26 -0
- package/lib/classes/turkic-language.js +22 -26
- package/lib/languages/ar.d.ts +30 -0
- package/lib/languages/ar.js +49 -133
- package/lib/languages/az.d.ts +12 -0
- package/lib/languages/az.js +7 -23
- package/lib/languages/bn.d.ts +11 -0
- package/lib/languages/bn.js +12 -7
- package/lib/languages/cs.d.ts +88 -0
- package/lib/languages/cs.js +44 -113
- package/lib/languages/da.d.ts +15 -0
- package/lib/languages/da.js +40 -87
- package/lib/languages/de.d.ts +14 -0
- package/lib/languages/de.js +34 -68
- package/lib/languages/el.d.ts +14 -0
- package/lib/languages/el.js +22 -48
- package/lib/languages/en.d.ts +16 -0
- package/lib/languages/en.js +22 -59
- package/lib/languages/es.d.ts +15 -0
- package/lib/languages/es.js +49 -81
- package/lib/languages/fa.d.ts +47 -0
- package/lib/languages/fa.js +90 -73
- package/lib/languages/fil.d.ts +16 -0
- package/lib/languages/fil.js +35 -76
- package/lib/languages/fr-BE.d.ts +11 -0
- package/lib/languages/fr-BE.js +15 -51
- package/lib/languages/fr.d.ts +15 -0
- package/lib/languages/fr.js +33 -72
- package/lib/languages/gu.d.ts +11 -0
- package/lib/languages/gu.js +10 -34
- 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 +41 -164
- package/lib/languages/hi.d.ts +11 -0
- package/lib/languages/hi.js +12 -7
- package/lib/languages/hr.d.ts +80 -0
- package/lib/languages/hr.js +51 -95
- package/lib/languages/hu.d.ts +22 -0
- package/lib/languages/hu.js +35 -53
- package/lib/languages/id.d.ts +37 -0
- package/lib/languages/id.js +29 -44
- package/lib/languages/it.d.ts +37 -0
- package/lib/languages/it.js +36 -52
- package/lib/languages/ja.d.ts +17 -0
- package/lib/languages/ja.js +22 -75
- package/lib/languages/kn.d.ts +11 -0
- package/lib/languages/kn.js +10 -39
- package/lib/languages/ko.d.ts +14 -0
- package/lib/languages/ko.js +17 -45
- package/lib/languages/lt.d.ts +70 -0
- package/lib/languages/lt.js +28 -63
- package/lib/languages/lv.d.ts +70 -0
- package/lib/languages/lv.js +35 -58
- package/lib/languages/mr.d.ts +11 -0
- package/lib/languages/mr.js +10 -34
- package/lib/languages/ms.d.ts +31 -0
- package/lib/languages/ms.js +24 -20
- package/lib/languages/nb.d.ts +12 -0
- package/lib/languages/nb.js +36 -56
- package/lib/languages/nl.d.ts +16 -0
- package/lib/languages/nl.js +58 -109
- package/lib/languages/pa.d.ts +11 -0
- package/lib/languages/{pa-Guru.js → pa.js} +12 -7
- package/lib/languages/pl.d.ts +80 -0
- package/lib/languages/pl.js +26 -105
- package/lib/languages/pt.d.ts +29 -0
- package/lib/languages/pt.js +29 -64
- package/lib/languages/ro.d.ts +158 -0
- package/lib/languages/ro.js +60 -167
- package/lib/languages/ru.d.ts +85 -0
- package/lib/languages/ru.js +17 -37
- package/lib/languages/sr-Cyrl.d.ts +80 -0
- package/lib/languages/sr-Cyrl.js +113 -0
- package/lib/languages/sr-Latn.d.ts +80 -0
- package/lib/languages/sr-Latn.js +54 -98
- package/lib/languages/sv.d.ts +14 -0
- package/lib/languages/sv.js +26 -63
- package/lib/languages/sw.d.ts +39 -0
- package/lib/languages/sw.js +26 -21
- package/lib/languages/ta.d.ts +20 -0
- package/lib/languages/ta.js +26 -26
- package/lib/languages/te.d.ts +22 -0
- package/lib/languages/te.js +28 -38
- package/lib/languages/th.d.ts +17 -0
- package/lib/languages/th.js +25 -31
- package/lib/languages/tr.d.ts +12 -0
- package/lib/languages/tr.js +11 -38
- package/lib/languages/uk.d.ts +85 -0
- package/lib/languages/uk.js +18 -44
- package/lib/languages/ur.d.ts +11 -0
- package/lib/languages/ur.js +12 -7
- package/lib/languages/vi.d.ts +72 -0
- package/lib/languages/vi.js +25 -71
- package/lib/languages/zh-Hans.d.ts +21 -0
- package/lib/languages/zh-Hans.js +33 -87
- package/lib/languages/zh-Hant.d.ts +21 -0
- package/lib/languages/zh-Hant.js +111 -0
- package/lib/n2words.d.ts +209 -0
- package/lib/n2words.js +474 -191
- package/package.json +106 -67
- package/dist/languages/ar.js +0 -2
- package/dist/languages/ar.js.map +0 -1
- package/dist/languages/az.js +0 -2
- package/dist/languages/az.js.map +0 -1
- package/dist/languages/bn.js +0 -2
- package/dist/languages/bn.js.map +0 -1
- package/dist/languages/cs.js +0 -2
- package/dist/languages/cs.js.map +0 -1
- package/dist/languages/da.js +0 -2
- package/dist/languages/da.js.map +0 -1
- package/dist/languages/de.js +0 -2
- package/dist/languages/de.js.map +0 -1
- package/dist/languages/el.js +0 -2
- package/dist/languages/el.js.map +0 -1
- package/dist/languages/en.js +0 -2
- package/dist/languages/en.js.map +0 -1
- package/dist/languages/es.js +0 -2
- package/dist/languages/es.js.map +0 -1
- package/dist/languages/fa.js +0 -2
- package/dist/languages/fa.js.map +0 -1
- package/dist/languages/fil.js +0 -2
- package/dist/languages/fil.js.map +0 -1
- package/dist/languages/fr-BE.js +0 -2
- package/dist/languages/fr-BE.js.map +0 -1
- package/dist/languages/fr.js +0 -2
- package/dist/languages/fr.js.map +0 -1
- package/dist/languages/gu.js +0 -2
- package/dist/languages/gu.js.map +0 -1
- package/dist/languages/he.js +0 -2
- package/dist/languages/he.js.map +0 -1
- package/dist/languages/hi.js +0 -2
- package/dist/languages/hi.js.map +0 -1
- package/dist/languages/hr.js +0 -2
- package/dist/languages/hr.js.map +0 -1
- package/dist/languages/hu.js +0 -2
- package/dist/languages/hu.js.map +0 -1
- package/dist/languages/id.js +0 -2
- package/dist/languages/id.js.map +0 -1
- package/dist/languages/it.js +0 -2
- package/dist/languages/it.js.map +0 -1
- package/dist/languages/ja.js +0 -2
- package/dist/languages/ja.js.map +0 -1
- package/dist/languages/kn.js +0 -2
- package/dist/languages/kn.js.map +0 -1
- package/dist/languages/ko.js +0 -2
- package/dist/languages/ko.js.map +0 -1
- package/dist/languages/lt.js +0 -2
- package/dist/languages/lt.js.map +0 -1
- package/dist/languages/lv.js +0 -2
- package/dist/languages/lv.js.map +0 -1
- package/dist/languages/mr.js +0 -2
- package/dist/languages/mr.js.map +0 -1
- package/dist/languages/ms.js +0 -2
- package/dist/languages/ms.js.map +0 -1
- package/dist/languages/nb.js +0 -2
- package/dist/languages/nb.js.map +0 -1
- package/dist/languages/nl.js +0 -2
- package/dist/languages/nl.js.map +0 -1
- package/dist/languages/pa-Guru.js +0 -2
- package/dist/languages/pa-Guru.js.map +0 -1
- package/dist/languages/pl.js +0 -2
- package/dist/languages/pl.js.map +0 -1
- package/dist/languages/pt.js +0 -2
- package/dist/languages/pt.js.map +0 -1
- package/dist/languages/ro.js +0 -2
- package/dist/languages/ro.js.map +0 -1
- package/dist/languages/ru.js +0 -2
- package/dist/languages/ru.js.map +0 -1
- package/dist/languages/sr-Latn.js +0 -2
- package/dist/languages/sr-Latn.js.map +0 -1
- package/dist/languages/sv.js +0 -2
- package/dist/languages/sv.js.map +0 -1
- package/dist/languages/sw.js +0 -2
- package/dist/languages/sw.js.map +0 -1
- package/dist/languages/ta.js +0 -2
- package/dist/languages/ta.js.map +0 -1
- package/dist/languages/te.js +0 -2
- package/dist/languages/te.js.map +0 -1
- package/dist/languages/th.js +0 -2
- package/dist/languages/th.js.map +0 -1
- package/dist/languages/tr.js +0 -2
- package/dist/languages/tr.js.map +0 -1
- package/dist/languages/uk.js +0 -2
- package/dist/languages/uk.js.map +0 -1
- package/dist/languages/ur.js +0 -2
- package/dist/languages/ur.js.map +0 -1
- package/dist/languages/vi.js +0 -2
- package/dist/languages/vi.js.map +0 -1
- package/dist/languages/zh-Hans.js +0 -2
- package/dist/languages/zh-Hans.js.map +0 -1
- package/typings/classes/abstract-language.d.ts +0 -144
- package/typings/classes/greedy-scale-language.d.ts +0 -148
- package/typings/classes/slavic-language.d.ts +0 -145
- package/typings/classes/south-asian-language.d.ts +0 -101
- package/typings/classes/turkic-language.d.ts +0 -42
- package/typings/languages/ar.d.ts +0 -93
- package/typings/languages/az.d.ts +0 -25
- package/typings/languages/bn.d.ts +0 -1
- package/typings/languages/cs.d.ts +0 -120
- package/typings/languages/da.d.ts +0 -53
- package/typings/languages/de.d.ts +0 -26
- package/typings/languages/el.d.ts +0 -11
- package/typings/languages/en.d.ts +0 -30
- package/typings/languages/es.d.ts +0 -43
- package/typings/languages/fa.d.ts +0 -81
- package/typings/languages/fil.d.ts +0 -12
- package/typings/languages/fr-BE.d.ts +0 -41
- package/typings/languages/fr.d.ts +0 -43
- package/typings/languages/gu.d.ts +0 -12
- package/typings/languages/he.d.ts +0 -197
- package/typings/languages/hi.d.ts +0 -1
- package/typings/languages/hr.d.ts +0 -110
- package/typings/languages/hu.d.ts +0 -37
- package/typings/languages/id.d.ts +0 -69
- package/typings/languages/it.d.ts +0 -51
- package/typings/languages/ja.d.ts +0 -58
- package/typings/languages/kn.d.ts +0 -11
- package/typings/languages/ko.d.ts +0 -25
- package/typings/languages/lt.d.ts +0 -110
- package/typings/languages/lv.d.ts +0 -99
- package/typings/languages/mr.d.ts +0 -12
- package/typings/languages/ms.d.ts +0 -37
- package/typings/languages/nb.d.ts +0 -27
- package/typings/languages/nl.d.ts +0 -65
- package/typings/languages/pa-Guru.d.ts +0 -1
- package/typings/languages/pl.d.ts +0 -116
- package/typings/languages/pt.d.ts +0 -39
- package/typings/languages/ro.d.ts +0 -229
- package/typings/languages/ru.d.ts +0 -108
- package/typings/languages/sr-Latn.d.ts +0 -98
- package/typings/languages/sv.d.ts +0 -30
- package/typings/languages/sw.d.ts +0 -1
- package/typings/languages/ta.d.ts +0 -1
- package/typings/languages/te.d.ts +0 -1
- package/typings/languages/th.d.ts +0 -1
- package/typings/languages/tr.d.ts +0 -46
- package/typings/languages/uk.d.ts +0 -117
- package/typings/languages/ur.d.ts +0 -1
- package/typings/languages/vi.d.ts +0 -116
- package/typings/languages/zh-Hans.d.ts +0 -57
- package/typings/n2words.d.ts +0 -177
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Ukrainian cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options={}] Configuration options.
|
|
6
|
-
* @param {boolean} [options.feminine=false] Use feminine forms for numbers.
|
|
7
|
-
* @returns {string} The number expressed in Ukrainian words.
|
|
8
|
-
* @throws {TypeError} If value is NaN or invalid type.
|
|
9
|
-
* @throws {Error} If value is an invalid number string.
|
|
10
|
-
*/
|
|
11
|
-
export default function convertToWords(value: number | string | bigint, options?: {
|
|
12
|
-
feminine?: boolean;
|
|
13
|
-
}): string;
|
|
14
|
-
/**
|
|
15
|
-
* @typedef {Object} SlavicOptions
|
|
16
|
-
* @property {boolean} [feminine=false] Use feminine forms for numbers.
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Ukrainian language converter.
|
|
20
|
-
*
|
|
21
|
-
* Implements Ukrainian number words using the Slavic language pattern:
|
|
22
|
-
* - Ukrainian number words (один/одна, два/дві, три, чотири...)
|
|
23
|
-
* - Gender-aware forms (masculine/feminine)
|
|
24
|
-
* - Slavic three-form pluralization (тисяча/тисячі/тисяч)
|
|
25
|
-
* - Ukrainian orthography and phonology
|
|
26
|
-
*
|
|
27
|
-
* Key Features:
|
|
28
|
-
* - Three-form pluralization system shared across Slavic languages
|
|
29
|
-
* * Form 1 (singular): 1 (e.g., "тисяча")
|
|
30
|
-
* * Form 2 (few): 2-4, 22-24, 32-34... excluding teens (e.g., "тисячі")
|
|
31
|
-
* * Form 3 (many): all other numbers (e.g., "тисяч")
|
|
32
|
-
* - Chunk-based decomposition (splits into groups of 3 digits: ones, thousands, millions, etc.)
|
|
33
|
-
* - Large number handling via thousands[] array with indexed [singular, few, many] forms
|
|
34
|
-
*
|
|
35
|
-
* Features:
|
|
36
|
-
* - Ukrainian-specific letters (і, ї, ґ, є)
|
|
37
|
-
* - Apostrophe usage (п'ять, дев'ять)
|
|
38
|
-
* - Close structural similarity to Russian with distinct vocabulary
|
|
39
|
-
*
|
|
40
|
-
* Inherits from SlavicLanguage for complex pluralization algorithms.
|
|
41
|
-
*/
|
|
42
|
-
export class Ukrainian extends SlavicLanguage {
|
|
43
|
-
ones: {
|
|
44
|
-
1: string;
|
|
45
|
-
2: string;
|
|
46
|
-
3: string;
|
|
47
|
-
4: string;
|
|
48
|
-
5: string;
|
|
49
|
-
6: string;
|
|
50
|
-
7: string;
|
|
51
|
-
8: string;
|
|
52
|
-
9: string;
|
|
53
|
-
};
|
|
54
|
-
onesFeminine: {
|
|
55
|
-
1: string;
|
|
56
|
-
2: string;
|
|
57
|
-
3: string;
|
|
58
|
-
4: string;
|
|
59
|
-
5: string;
|
|
60
|
-
6: string;
|
|
61
|
-
7: string;
|
|
62
|
-
8: string;
|
|
63
|
-
9: string;
|
|
64
|
-
};
|
|
65
|
-
tens: {
|
|
66
|
-
0: string;
|
|
67
|
-
1: string;
|
|
68
|
-
2: string;
|
|
69
|
-
3: string;
|
|
70
|
-
4: string;
|
|
71
|
-
5: string;
|
|
72
|
-
6: string;
|
|
73
|
-
7: string;
|
|
74
|
-
8: string;
|
|
75
|
-
9: string;
|
|
76
|
-
};
|
|
77
|
-
twenties: {
|
|
78
|
-
2: string;
|
|
79
|
-
3: string;
|
|
80
|
-
4: string;
|
|
81
|
-
5: string;
|
|
82
|
-
6: string;
|
|
83
|
-
7: string;
|
|
84
|
-
8: string;
|
|
85
|
-
9: string;
|
|
86
|
-
};
|
|
87
|
-
hundreds: {
|
|
88
|
-
1: string;
|
|
89
|
-
2: string;
|
|
90
|
-
3: string;
|
|
91
|
-
4: string;
|
|
92
|
-
5: string;
|
|
93
|
-
6: string;
|
|
94
|
-
7: string;
|
|
95
|
-
8: string;
|
|
96
|
-
9: string;
|
|
97
|
-
};
|
|
98
|
-
thousands: {
|
|
99
|
-
1: string[];
|
|
100
|
-
2: string[];
|
|
101
|
-
3: string[];
|
|
102
|
-
4: string[];
|
|
103
|
-
5: string[];
|
|
104
|
-
6: string[];
|
|
105
|
-
7: string[];
|
|
106
|
-
8: string[];
|
|
107
|
-
9: string[];
|
|
108
|
-
10: string[];
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
export type SlavicOptions = {
|
|
112
|
-
/**
|
|
113
|
-
* Use feminine forms for numbers.
|
|
114
|
-
*/
|
|
115
|
-
feminine?: boolean;
|
|
116
|
-
};
|
|
117
|
-
import SlavicLanguage from '../classes/slavic-language.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function convertToWords(value: any, options?: {}): string;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Vietnamese cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options={}] Configuration options.
|
|
6
|
-
* @returns {string} The number expressed in Vietnamese words.
|
|
7
|
-
* @throws {TypeError} If value is NaN or invalid type.
|
|
8
|
-
* @throws {Error} If value is an invalid number string.
|
|
9
|
-
*/
|
|
10
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
11
|
-
/**
|
|
12
|
-
* Vietnamese language converter.
|
|
13
|
-
*
|
|
14
|
-
* Converts numbers to Vietnamese words following Vietnamese number naming:
|
|
15
|
-
* - Base-10 grouping system (trăm = hundred, nghìn = thousand, triệu = million, tỷ = billion)
|
|
16
|
-
* - Special pronunciation rules for 5 and 15 (lăm instead of năm)
|
|
17
|
-
* - Special pronunciation for final 1 in compound numbers (mốt instead of một)
|
|
18
|
-
* - "Lẻ" (odd/extra) used when tens place is zero but units exist
|
|
19
|
-
*
|
|
20
|
-
* Key Features:
|
|
21
|
-
* - Base number mapping for 0-19 (with special forms)
|
|
22
|
-
* - Tens mapping (hai mươi, ba mươi, etc.)
|
|
23
|
-
* - Group-based algorithm:
|
|
24
|
-
* 1. Split number into groups of 3 digits
|
|
25
|
-
* 2. For each group, build words using special pronunciation rules:
|
|
26
|
-
* - "Mốt" instead of "một" for final 1 (e.g., 21 → hai mươi mốt)
|
|
27
|
-
* - "Lăm" instead of "năm" for 15 and mid-group 5 (e.g., 15, 105)
|
|
28
|
-
* - "Lẻ" prefix when tens=0 but units>0 (e.g., 101 → một trăm lẻ một)
|
|
29
|
-
* 3. Append magnitude word (nghìn/triệu/tỷ)
|
|
30
|
-
* 4. Join all groups with spaces
|
|
31
|
-
* - Support for large numbers up to vigintillions
|
|
32
|
-
*
|
|
33
|
-
* Features:
|
|
34
|
-
* - Natural Vietnamese number flow
|
|
35
|
-
* - Proper handling of special cases (mốt, lăm)
|
|
36
|
-
* - Contextual pronunciation adjustments
|
|
37
|
-
*/
|
|
38
|
-
export class Vietnamese extends AbstractLanguage {
|
|
39
|
-
base: {
|
|
40
|
-
0: string;
|
|
41
|
-
1: string;
|
|
42
|
-
2: string;
|
|
43
|
-
3: string;
|
|
44
|
-
4: string;
|
|
45
|
-
5: string;
|
|
46
|
-
6: string;
|
|
47
|
-
7: string;
|
|
48
|
-
8: string;
|
|
49
|
-
9: string;
|
|
50
|
-
10: string;
|
|
51
|
-
11: string;
|
|
52
|
-
12: string;
|
|
53
|
-
13: string;
|
|
54
|
-
14: string;
|
|
55
|
-
15: string;
|
|
56
|
-
16: string;
|
|
57
|
-
17: string;
|
|
58
|
-
18: string;
|
|
59
|
-
19: string;
|
|
60
|
-
};
|
|
61
|
-
tens: {
|
|
62
|
-
20: string;
|
|
63
|
-
30: string;
|
|
64
|
-
40: string;
|
|
65
|
-
50: string;
|
|
66
|
-
60: string;
|
|
67
|
-
70: string;
|
|
68
|
-
80: string;
|
|
69
|
-
90: string;
|
|
70
|
-
};
|
|
71
|
-
thousands: {
|
|
72
|
-
1: string;
|
|
73
|
-
2: string;
|
|
74
|
-
3: string;
|
|
75
|
-
4: string;
|
|
76
|
-
5: string;
|
|
77
|
-
6: string;
|
|
78
|
-
7: string;
|
|
79
|
-
8: string;
|
|
80
|
-
9: string;
|
|
81
|
-
10: string;
|
|
82
|
-
11: string;
|
|
83
|
-
12: string;
|
|
84
|
-
13: string;
|
|
85
|
-
14: string;
|
|
86
|
-
15: string;
|
|
87
|
-
16: string;
|
|
88
|
-
17: string;
|
|
89
|
-
18: string;
|
|
90
|
-
19: string;
|
|
91
|
-
20: string;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Convert numbers less than 100 to Vietnamese words.
|
|
95
|
-
*
|
|
96
|
-
* @param {number} number The number to convert (0-99).
|
|
97
|
-
* @returns {string} The Vietnamese representation.
|
|
98
|
-
*/
|
|
99
|
-
convertLess100(number: number): string;
|
|
100
|
-
/**
|
|
101
|
-
* Convert numbers less than 1000 to Vietnamese words.
|
|
102
|
-
*
|
|
103
|
-
* @param {number} number The number to convert (0-999).
|
|
104
|
-
* @returns {string} The Vietnamese representation.
|
|
105
|
-
*/
|
|
106
|
-
convertLess1000(number: number): string;
|
|
107
|
-
/**
|
|
108
|
-
* Convert numbers greater than 1000 to Vietnamese words.
|
|
109
|
-
*
|
|
110
|
-
* @param {bigint} number The number to convert (>= 1000).
|
|
111
|
-
* @returns {string} The Vietnamese representation.
|
|
112
|
-
*/
|
|
113
|
-
convertMore1000(number: bigint): string;
|
|
114
|
-
convertWholePart(number: any): any;
|
|
115
|
-
}
|
|
116
|
-
import AbstractLanguage from '../classes/abstract-language.js';
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Chinese cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {ChineseOptions} [options] Conversion options.
|
|
6
|
-
* @returns {string} The number expressed in Chinese words.
|
|
7
|
-
* @throws {TypeError} If value is NaN or invalid type.
|
|
8
|
-
* @throws {Error} If value is an invalid number string.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* convertToWords(42); // '肆拾贰' (formal style)
|
|
12
|
-
* convertToWords(42, { formal: false }); // '四十二' (common style)
|
|
13
|
-
*/
|
|
14
|
-
export default function convertToWords(value: number | string | bigint, options?: ChineseOptions): string;
|
|
15
|
-
/**
|
|
16
|
-
* @typedef {Object} ChineseOptions
|
|
17
|
-
* @property {boolean} [formal=true] Use formal/financial numerals (壹贰叁) vs. common numerals (一二三).
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* Chinese language converter.
|
|
21
|
-
*
|
|
22
|
-
* Features:
|
|
23
|
-
* - Concatenated number-word format (no spaces)
|
|
24
|
-
* - Implicit zero insertion for positional values
|
|
25
|
-
* - Decimal digits pronounced individually
|
|
26
|
-
* - Supports both formal (financial) and common (everyday) styles
|
|
27
|
-
*/
|
|
28
|
-
export class Chinese extends GreedyScaleLanguage {
|
|
29
|
-
/**
|
|
30
|
-
* Initializes the Chinese converter.
|
|
31
|
-
*
|
|
32
|
-
* @param {ChineseOptions} [options={}] Configuration options.
|
|
33
|
-
*/
|
|
34
|
-
constructor({ formal }?: ChineseOptions);
|
|
35
|
-
formal: boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Get the number of digits in a number.
|
|
38
|
-
*
|
|
39
|
-
* @param {bigint|number} number_ The number to count digits for.
|
|
40
|
-
* @returns {number} The count of digits.
|
|
41
|
-
*/
|
|
42
|
-
digit(number_: bigint | number): number;
|
|
43
|
-
/**
|
|
44
|
-
* Count the number of zeros in a number.
|
|
45
|
-
*
|
|
46
|
-
* @param {bigint|number} number_ The number to count zeros in.
|
|
47
|
-
* @returns {number} The count of zero digits.
|
|
48
|
-
*/
|
|
49
|
-
zeroDigit(number_: bigint | number): number;
|
|
50
|
-
}
|
|
51
|
-
export type ChineseOptions = {
|
|
52
|
-
/**
|
|
53
|
-
* Use formal/financial numerals (壹贰叁) vs. common numerals (一二三).
|
|
54
|
-
*/
|
|
55
|
-
formal?: boolean;
|
|
56
|
-
};
|
|
57
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
package/typings/n2words.d.ts
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert a numeric value to its cardinal (written) form in the requested language.
|
|
3
|
-
*
|
|
4
|
-
* This is the main entry point. The library dispatches synchronously to the appropriate
|
|
5
|
-
* per-language converter based on the `lang` option. For browser builds, language converters
|
|
6
|
-
* are statically imported so bundlers (webpack/rollup) can include them in output; Node.js
|
|
7
|
-
* maintains identical behavior via the same static imports.
|
|
8
|
-
*
|
|
9
|
-
* @param {number|string|bigint} value The number to convert. Accepts:
|
|
10
|
-
* - `number` (integer or floating-point),
|
|
11
|
-
* - `string` (numeric string, possibly with decimal point),
|
|
12
|
-
* - `bigint` for very large integers.
|
|
13
|
-
* Decimal numbers as strings preserve precision that `number` type cannot.
|
|
14
|
-
* @param {N2WordsOptions} [options={}] Optional configuration object.
|
|
15
|
-
*
|
|
16
|
-
* @returns {string} A human-readable cardinal representation of `value` in the
|
|
17
|
-
* requested language.
|
|
18
|
-
*
|
|
19
|
-
* @throws {TypeError} If `options` is provided but is not an object.
|
|
20
|
-
* @throws {Error} If the requested language is unsupported (no match after fallback).
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* // Basic usage
|
|
24
|
-
* convertToWords(1, { lang: 'en' }) // => 'one'
|
|
25
|
-
* convertToWords('45.67', { lang: 'en' }) // => 'forty-five point six seven'
|
|
26
|
-
* convertToWords(123n, { lang: 'fr' }) // => 'cent vingt-trois'
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* // Language-specific options (see individual language implementations)
|
|
30
|
-
* convertToWords(1, { lang: 'zh-Hans', formal: true }) // Chinese formal style
|
|
31
|
-
* convertToWords(1, { lang: 'cs', feminine: true }) // Czech feminine form
|
|
32
|
-
*/
|
|
33
|
-
export default function _default(value: number | string | bigint, options?: N2WordsOptions): string;
|
|
34
|
-
export type LanguageCode = "ar" | "az" | "bn" | "cs" | "de" | "da" | "el" | "en" | "es" | "fa" | "fr" | "fr-BE" | "gu" | "he" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "kn" | "ko" | "lt" | "lv" | "mr" | "ms" | "nl" | "nb" | "pa-Guru" | "pl" | "pt" | "ro" | "ru" | "sr-Latn" | "sv" | "sw" | "ta" | "te" | "th" | "fil" | "tr" | "uk" | "ur" | "vi" | "zh-Hans";
|
|
35
|
-
export type ArabicOptions = {
|
|
36
|
-
/**
|
|
37
|
-
* - Word for negative numbers (minus).
|
|
38
|
-
*/
|
|
39
|
-
negativeWord?: string;
|
|
40
|
-
/**
|
|
41
|
-
* - Use feminine forms for numbers.
|
|
42
|
-
*/
|
|
43
|
-
feminine?: boolean;
|
|
44
|
-
};
|
|
45
|
-
export type ChineseOptions = {
|
|
46
|
-
/**
|
|
47
|
-
* - Use formal/financial numerals (壹贰叁) vs. common numerals (一二三).
|
|
48
|
-
*/
|
|
49
|
-
formal?: boolean;
|
|
50
|
-
};
|
|
51
|
-
export type HebrewOptions = {
|
|
52
|
-
/**
|
|
53
|
-
* - Conjunction character (typically 'ו' for and).
|
|
54
|
-
*/
|
|
55
|
-
and?: string;
|
|
56
|
-
/**
|
|
57
|
-
* - Use biblical scale words instead of modern ones.
|
|
58
|
-
*/
|
|
59
|
-
biblical?: boolean;
|
|
60
|
-
/**
|
|
61
|
-
* - Use feminine forms for numbers.
|
|
62
|
-
*/
|
|
63
|
-
feminine?: boolean;
|
|
64
|
-
};
|
|
65
|
-
export type SpanishOptions = {
|
|
66
|
-
/**
|
|
67
|
-
* - Masculine 'o' or feminine 'a' ending.
|
|
68
|
-
*/
|
|
69
|
-
genderStem?: ("o" | "a" | string);
|
|
70
|
-
};
|
|
71
|
-
export type DutchOptions = {
|
|
72
|
-
/**
|
|
73
|
-
* - Include optional "en" separator.
|
|
74
|
-
*/
|
|
75
|
-
includeOptionalAnd?: boolean;
|
|
76
|
-
/**
|
|
77
|
-
* - Disable comma before hundreds.
|
|
78
|
-
*/
|
|
79
|
-
noHundredPairs?: boolean;
|
|
80
|
-
/**
|
|
81
|
-
* - Use accented "één" for one.
|
|
82
|
-
*/
|
|
83
|
-
accentOne?: boolean;
|
|
84
|
-
};
|
|
85
|
-
export type FrenchOptions = {
|
|
86
|
-
/**
|
|
87
|
-
* - Use hyphens (true) instead of spaces (false) in compounds.
|
|
88
|
-
*/
|
|
89
|
-
withHyphenSeparator?: boolean;
|
|
90
|
-
};
|
|
91
|
-
export type TurkishOptions = {
|
|
92
|
-
/**
|
|
93
|
-
* - Remove spaces between words if true.
|
|
94
|
-
*/
|
|
95
|
-
dropSpaces?: boolean;
|
|
96
|
-
};
|
|
97
|
-
export type RomanianOptions = {
|
|
98
|
-
/**
|
|
99
|
-
* - Use feminine forms for numbers.
|
|
100
|
-
*/
|
|
101
|
-
feminine?: boolean;
|
|
102
|
-
};
|
|
103
|
-
export type DanishOptions = {
|
|
104
|
-
/**
|
|
105
|
-
* - Enable ordinal number conversion.
|
|
106
|
-
*/
|
|
107
|
-
ordFlag?: boolean;
|
|
108
|
-
};
|
|
109
|
-
export type SlavicOptions = {
|
|
110
|
-
/**
|
|
111
|
-
* - Use feminine forms for numbers.
|
|
112
|
-
*/
|
|
113
|
-
feminine?: boolean;
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Configuration object for number-to-words conversion with comprehensive language support.
|
|
117
|
-
*/
|
|
118
|
-
export type N2WordsOptions = {
|
|
119
|
-
/**
|
|
120
|
-
* - Target language code with full autocomplete support.
|
|
121
|
-
* Supports many languages with regional variants (e.g., 'fr-BE').
|
|
122
|
-
* Falls back progressively from most-specific to least-specific (e.g., 'fr-BE' -> 'fr').
|
|
123
|
-
* Throws an error if no match is found after fallback attempts.
|
|
124
|
-
*/
|
|
125
|
-
lang?: LanguageCode;
|
|
126
|
-
/**
|
|
127
|
-
* - (Arabic only) Word for negative numbers.
|
|
128
|
-
*/
|
|
129
|
-
negativeWord?: string;
|
|
130
|
-
/**
|
|
131
|
-
* - (Arabic, Hebrew, Romanian, Slavic languages) Use feminine forms.
|
|
132
|
-
*/
|
|
133
|
-
feminine?: boolean;
|
|
134
|
-
/**
|
|
135
|
-
* - (Chinese only) Use formal/financial numerals.
|
|
136
|
-
*/
|
|
137
|
-
formal?: boolean;
|
|
138
|
-
/**
|
|
139
|
-
* - (Hebrew only) Conjunction character.
|
|
140
|
-
*/
|
|
141
|
-
and?: string;
|
|
142
|
-
/**
|
|
143
|
-
* - (Hebrew only) Use biblical scale words.
|
|
144
|
-
*/
|
|
145
|
-
biblical?: boolean;
|
|
146
|
-
/**
|
|
147
|
-
* - (Spanish only) Gender ending.
|
|
148
|
-
*/
|
|
149
|
-
genderStem?: ("o" | "a" | string);
|
|
150
|
-
/**
|
|
151
|
-
* - (Dutch only) Include optional "en".
|
|
152
|
-
*/
|
|
153
|
-
includeOptionalAnd?: boolean;
|
|
154
|
-
/**
|
|
155
|
-
* - (Dutch only) Disable comma before hundreds.
|
|
156
|
-
*/
|
|
157
|
-
noHundredPairs?: boolean;
|
|
158
|
-
/**
|
|
159
|
-
* - (Dutch only) Use accented "één".
|
|
160
|
-
*/
|
|
161
|
-
accentOne?: boolean;
|
|
162
|
-
/**
|
|
163
|
-
* - (French, Belgian French) Use hyphens.
|
|
164
|
-
*/
|
|
165
|
-
withHyphenSeparator?: boolean;
|
|
166
|
-
/**
|
|
167
|
-
* - (Turkish, Azerbaijani) Remove spaces.
|
|
168
|
-
*/
|
|
169
|
-
dropSpaces?: boolean;
|
|
170
|
-
/**
|
|
171
|
-
* - (Danish only) Enable ordinal conversion.
|
|
172
|
-
*
|
|
173
|
-
* Language-specific options are automatically validated and forwarded to converters.
|
|
174
|
-
* See individual language implementations for detailed option descriptions.
|
|
175
|
-
*/
|
|
176
|
-
ordFlag?: boolean;
|
|
177
|
-
};
|