n2words 1.24.0 → 3.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/CHANGELOG.md +49 -0
- package/README.md +183 -156
- package/dist/languages/am-Latn.js +3 -0
- package/dist/languages/am-Latn.js.map +1 -0
- package/dist/languages/am.js +3 -0
- package/dist/languages/am.js.map +1 -0
- package/dist/languages/ar.js +3 -2
- package/dist/languages/ar.js.map +1 -1
- package/dist/languages/az.js +3 -2
- package/dist/languages/az.js.map +1 -1
- package/dist/languages/bn.js +3 -2
- package/dist/languages/bn.js.map +1 -1
- package/dist/languages/cs.js +3 -2
- package/dist/languages/cs.js.map +1 -1
- package/dist/languages/da.js +3 -2
- package/dist/languages/da.js.map +1 -1
- package/dist/languages/de.js +3 -2
- package/dist/languages/de.js.map +1 -1
- package/dist/languages/el.js +3 -2
- package/dist/languages/el.js.map +1 -1
- package/dist/languages/en.js +3 -2
- package/dist/languages/en.js.map +1 -1
- package/dist/languages/es.js +3 -2
- package/dist/languages/es.js.map +1 -1
- package/dist/languages/fa.js +3 -2
- package/dist/languages/fa.js.map +1 -1
- package/dist/languages/fi.js +3 -0
- package/dist/languages/fi.js.map +1 -0
- package/dist/languages/fil.js +3 -2
- package/dist/languages/fil.js.map +1 -1
- package/dist/languages/fr-BE.js +3 -2
- package/dist/languages/fr-BE.js.map +1 -1
- package/dist/languages/fr.js +3 -2
- package/dist/languages/fr.js.map +1 -1
- package/dist/languages/gu.js +3 -2
- package/dist/languages/gu.js.map +1 -1
- package/dist/languages/ha.js +3 -0
- package/dist/languages/ha.js.map +1 -0
- package/dist/languages/hbo.js +3 -0
- package/dist/languages/hbo.js.map +1 -0
- package/dist/languages/he.js +3 -2
- package/dist/languages/he.js.map +1 -1
- package/dist/languages/hi.js +3 -2
- package/dist/languages/hi.js.map +1 -1
- package/dist/languages/hr.js +3 -2
- package/dist/languages/hr.js.map +1 -1
- package/dist/languages/hu.js +3 -2
- package/dist/languages/hu.js.map +1 -1
- package/dist/languages/id.js +3 -2
- package/dist/languages/id.js.map +1 -1
- package/dist/languages/it.js +3 -2
- package/dist/languages/it.js.map +1 -1
- package/dist/languages/ja.js +3 -2
- package/dist/languages/ja.js.map +1 -1
- package/dist/languages/kn.js +3 -2
- package/dist/languages/kn.js.map +1 -1
- package/dist/languages/ko.js +3 -2
- package/dist/languages/ko.js.map +1 -1
- package/dist/languages/lt.js +3 -2
- package/dist/languages/lt.js.map +1 -1
- package/dist/languages/lv.js +3 -2
- package/dist/languages/lv.js.map +1 -1
- package/dist/languages/mr.js +3 -2
- package/dist/languages/mr.js.map +1 -1
- package/dist/languages/ms.js +3 -2
- package/dist/languages/ms.js.map +1 -1
- package/dist/languages/nb.js +3 -2
- package/dist/languages/nb.js.map +1 -1
- package/dist/languages/nl.js +3 -2
- package/dist/languages/nl.js.map +1 -1
- package/dist/languages/pa.js +3 -0
- package/dist/languages/pa.js.map +1 -0
- package/dist/languages/pl.js +3 -2
- package/dist/languages/pl.js.map +1 -1
- package/dist/languages/pt.js +3 -2
- package/dist/languages/pt.js.map +1 -1
- package/dist/languages/ro.js +3 -2
- package/dist/languages/ro.js.map +1 -1
- package/dist/languages/ru.js +3 -2
- package/dist/languages/ru.js.map +1 -1
- package/dist/languages/sr-Cyrl.js +3 -0
- package/dist/languages/sr-Cyrl.js.map +1 -0
- package/dist/languages/sr-Latn.js +3 -2
- package/dist/languages/sr-Latn.js.map +1 -1
- package/dist/languages/sv.js +3 -2
- package/dist/languages/sv.js.map +1 -1
- package/dist/languages/sw.js +3 -2
- package/dist/languages/sw.js.map +1 -1
- package/dist/languages/ta.js +3 -2
- package/dist/languages/ta.js.map +1 -1
- package/dist/languages/te.js +3 -2
- package/dist/languages/te.js.map +1 -1
- package/dist/languages/th.js +3 -2
- package/dist/languages/th.js.map +1 -1
- package/dist/languages/tr.js +3 -2
- package/dist/languages/tr.js.map +1 -1
- package/dist/languages/uk.js +3 -2
- package/dist/languages/uk.js.map +1 -1
- package/dist/languages/ur.js +3 -2
- package/dist/languages/ur.js.map +1 -1
- package/dist/languages/vi.js +3 -2
- package/dist/languages/vi.js.map +1 -1
- package/dist/languages/zh-Hans.js +3 -2
- package/dist/languages/zh-Hans.js.map +1 -1
- package/dist/languages/zh-Hant.js +3 -0
- package/dist/languages/zh-Hant.js.map +1 -0
- package/dist/n2words.js +3 -2
- package/dist/n2words.js.map +1 -1
- package/lib/languages/am-Latn.d.ts +7 -0
- package/lib/languages/am-Latn.js +164 -0
- package/lib/languages/am.d.ts +7 -0
- package/lib/languages/am.js +164 -0
- package/lib/languages/ar.d.ts +17 -0
- package/lib/languages/ar.js +171 -209
- package/lib/languages/az.d.ts +7 -0
- package/lib/languages/az.js +167 -49
- package/lib/languages/bn.d.ts +7 -0
- package/lib/languages/bn.js +142 -123
- package/lib/languages/cs.d.ts +18 -0
- package/lib/languages/cs.js +303 -176
- package/lib/languages/da.d.ts +14 -0
- package/lib/languages/da.js +267 -139
- package/lib/languages/de.d.ts +17 -0
- package/lib/languages/de.js +310 -113
- package/lib/languages/el.d.ts +14 -0
- package/lib/languages/el.js +225 -98
- package/lib/languages/en.d.ts +17 -0
- package/lib/languages/en.js +235 -102
- package/lib/languages/es.d.ts +21 -0
- package/lib/languages/es.js +307 -125
- package/lib/languages/fa.d.ts +7 -0
- package/lib/languages/fa.js +115 -108
- package/lib/languages/fi.d.ts +14 -0
- package/lib/languages/fi.js +245 -0
- package/lib/languages/fil.d.ts +7 -0
- package/lib/languages/fil.js +199 -139
- package/lib/languages/fr-BE.d.ts +11 -0
- package/lib/languages/fr-BE.js +287 -48
- package/lib/languages/fr.d.ts +21 -0
- package/lib/languages/fr.js +343 -119
- package/lib/languages/gu.d.ts +7 -0
- package/lib/languages/gu.js +125 -144
- package/lib/languages/ha.d.ts +7 -0
- package/lib/languages/ha.js +230 -0
- package/lib/languages/hbo.d.ts +13 -0
- package/lib/languages/hbo.js +300 -0
- package/lib/languages/he.d.ts +13 -0
- package/lib/languages/he.js +230 -283
- package/lib/languages/hi.d.ts +7 -0
- package/lib/languages/hi.js +142 -123
- package/lib/languages/hr.d.ts +11 -0
- package/lib/languages/hr.js +190 -129
- package/lib/languages/hu.d.ts +7 -0
- package/lib/languages/hu.js +194 -133
- package/lib/languages/id.d.ts +7 -0
- package/lib/languages/id.js +167 -140
- package/lib/languages/it.d.ts +19 -0
- package/lib/languages/it.js +337 -108
- package/lib/languages/ja.d.ts +17 -0
- package/lib/languages/ja.js +224 -155
- package/lib/languages/kn.d.ts +7 -0
- package/lib/languages/kn.js +128 -62
- package/lib/languages/ko.d.ts +14 -0
- package/lib/languages/ko.js +250 -70
- package/lib/languages/lt.d.ts +18 -0
- package/lib/languages/lt.js +287 -148
- package/lib/languages/lv.d.ts +18 -0
- package/lib/languages/lv.js +291 -123
- package/lib/languages/mr.d.ts +7 -0
- package/lib/languages/mr.js +125 -144
- package/lib/languages/ms.d.ts +7 -0
- package/lib/languages/ms.js +171 -112
- package/lib/languages/nb.d.ts +14 -0
- package/lib/languages/nb.js +275 -100
- package/lib/languages/nl.d.ts +26 -0
- package/lib/languages/nl.js +307 -174
- package/lib/languages/pa.d.ts +7 -0
- package/lib/languages/pa.js +163 -0
- package/lib/languages/pl.d.ts +22 -0
- package/lib/languages/pl.js +299 -158
- package/lib/languages/pt.d.ts +17 -0
- package/lib/languages/pt.js +279 -120
- package/lib/languages/ro.d.ts +18 -0
- package/lib/languages/ro.js +214 -337
- package/lib/languages/ru.d.ts +11 -0
- package/lib/languages/ru.js +219 -95
- package/lib/languages/sr-Cyrl.d.ts +11 -0
- package/lib/languages/sr-Cyrl.js +215 -0
- package/lib/languages/sr-Latn.d.ts +11 -0
- package/lib/languages/sr-Latn.js +190 -132
- package/lib/languages/sv.d.ts +14 -0
- package/lib/languages/sv.js +280 -103
- package/lib/languages/sw.d.ts +7 -0
- package/lib/languages/sw.js +135 -103
- package/lib/languages/ta.d.ts +7 -0
- package/lib/languages/ta.js +133 -205
- package/lib/languages/te.d.ts +7 -0
- package/lib/languages/te.js +148 -213
- package/lib/languages/th.d.ts +7 -0
- package/lib/languages/th.js +139 -101
- package/lib/languages/tr.d.ts +18 -0
- package/lib/languages/tr.js +246 -66
- package/lib/languages/uk.d.ts +11 -0
- package/lib/languages/uk.js +197 -101
- package/lib/languages/ur.d.ts +7 -0
- package/lib/languages/ur.js +160 -123
- package/lib/languages/vi.d.ts +17 -0
- package/lib/languages/vi.js +287 -164
- package/lib/languages/zh-Hans.d.ts +11 -0
- package/lib/languages/zh-Hans.js +159 -142
- package/lib/languages/zh-Hant.d.ts +11 -0
- package/lib/languages/zh-Hant.js +202 -0
- package/lib/n2words.d.ts +53 -0
- package/lib/n2words.js +91 -227
- package/lib/utils/is-plain-object.d.ts +13 -0
- package/lib/utils/is-plain-object.js +17 -0
- package/lib/utils/parse-numeric.d.ts +17 -0
- package/lib/utils/parse-numeric.js +108 -0
- package/lib/utils/validate-options.d.ts +8 -0
- package/lib/utils/validate-options.js +16 -0
- package/package.json +118 -67
- package/dist/languages/pa-Guru.js +0 -2
- package/dist/languages/pa-Guru.js.map +0 -1
- package/lib/classes/abstract-language.js +0 -261
- package/lib/classes/greedy-scale-language.js +0 -195
- package/lib/classes/slavic-language.js +0 -251
- package/lib/classes/south-asian-language.js +0 -161
- package/lib/classes/turkic-language.js +0 -63
- package/lib/languages/pa-Guru.js +0 -126
- 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,229 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Romanian 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 Romanian 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} RomanianOptions
|
|
16
|
-
* @property {boolean} [feminine=false] Use feminine forms for numbers.
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Romanian language converter.
|
|
20
|
-
*
|
|
21
|
-
* Converts numbers to Romanian words with full grammatical support:
|
|
22
|
-
* - Gender agreement (masculine/feminine forms)
|
|
23
|
-
* - Complex pluralization (singular/plural forms)
|
|
24
|
-
* - "De" preposition insertion for groups >= 20
|
|
25
|
-
* - Special feminine handling for thousands
|
|
26
|
-
* - Proper case and agreement patterns
|
|
27
|
-
*
|
|
28
|
-
* Key Features:
|
|
29
|
-
* - Gender-aware number forms (unu/una, doi/două, doisprezece/douăsprezece)
|
|
30
|
-
* - Group-based algorithm:
|
|
31
|
-
* 1. Split number into groups of 3 digits
|
|
32
|
-
* 2. Convert each group using gender rules and special forms
|
|
33
|
-
* 3. Insert "de" preposition for groups >= 20 (e.g., "douăzeci de mii")
|
|
34
|
-
* 4. Append magnitude word with proper singular/plural form (mie/mii, milion/milioane)
|
|
35
|
-
* 5. Join with spaces
|
|
36
|
-
* - Special feminine units for thousands group
|
|
37
|
-
* - Automatic "de" insertion rules (nouăsprezece mii vs douăzeci de mii)
|
|
38
|
-
* - Proper singular/plural forms (mie/mii, milion/milioane)
|
|
39
|
-
* - Support for very large numbers (up to decillions)
|
|
40
|
-
*
|
|
41
|
-
* Features:
|
|
42
|
-
* - Feminine units for thousands group
|
|
43
|
-
* - Support for very large numbers (up to decillions)
|
|
44
|
-
*/
|
|
45
|
-
export class Romanian extends AbstractLanguage {
|
|
46
|
-
/**
|
|
47
|
-
* Initializes the Romanian converter with language-specific options.
|
|
48
|
-
*
|
|
49
|
-
* @param {RomanianOptions} [options={}] Configuration options.
|
|
50
|
-
*/
|
|
51
|
-
constructor({ feminine }?: RomanianOptions);
|
|
52
|
-
ones: {
|
|
53
|
-
1: string;
|
|
54
|
-
2: string;
|
|
55
|
-
3: string;
|
|
56
|
-
4: string;
|
|
57
|
-
5: string;
|
|
58
|
-
6: string;
|
|
59
|
-
7: string;
|
|
60
|
-
8: string;
|
|
61
|
-
9: string;
|
|
62
|
-
};
|
|
63
|
-
onesFeminine: {
|
|
64
|
-
1: string;
|
|
65
|
-
2: string;
|
|
66
|
-
3: string;
|
|
67
|
-
4: string;
|
|
68
|
-
5: string;
|
|
69
|
-
6: string;
|
|
70
|
-
7: string;
|
|
71
|
-
8: string;
|
|
72
|
-
9: string;
|
|
73
|
-
};
|
|
74
|
-
tens: {
|
|
75
|
-
0: string;
|
|
76
|
-
1: string;
|
|
77
|
-
2: string;
|
|
78
|
-
3: string;
|
|
79
|
-
4: string;
|
|
80
|
-
5: string;
|
|
81
|
-
6: string;
|
|
82
|
-
7: string;
|
|
83
|
-
8: string;
|
|
84
|
-
9: string;
|
|
85
|
-
};
|
|
86
|
-
tensMasculine: {
|
|
87
|
-
0: string;
|
|
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
|
-
twenties: {
|
|
99
|
-
2: string;
|
|
100
|
-
3: string;
|
|
101
|
-
4: string;
|
|
102
|
-
5: string;
|
|
103
|
-
6: string;
|
|
104
|
-
7: string;
|
|
105
|
-
8: string;
|
|
106
|
-
9: string;
|
|
107
|
-
};
|
|
108
|
-
hundreds: {
|
|
109
|
-
1: string;
|
|
110
|
-
2: string;
|
|
111
|
-
3: string;
|
|
112
|
-
4: string;
|
|
113
|
-
5: string;
|
|
114
|
-
6: string;
|
|
115
|
-
7: string;
|
|
116
|
-
8: string;
|
|
117
|
-
9: string;
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* Romanian big units.
|
|
121
|
-
* For each power group we keep: singular, plural, feminineUnits?, needsDe?
|
|
122
|
-
* - 10^3: mie/mii (feminine units in chunk; "de" for chunk >= 20)
|
|
123
|
-
* - 10^6: milion/milioane ("de" for chunk >= 20)
|
|
124
|
-
* - 10^9: miliard/miliarde ("de" for chunk >= 20)
|
|
125
|
-
*/
|
|
126
|
-
thousands: {
|
|
127
|
-
1: {
|
|
128
|
-
singular: string;
|
|
129
|
-
plural: string;
|
|
130
|
-
feminine: boolean;
|
|
131
|
-
needsDe: boolean;
|
|
132
|
-
};
|
|
133
|
-
2: {
|
|
134
|
-
singular: string;
|
|
135
|
-
plural: string;
|
|
136
|
-
feminine: boolean;
|
|
137
|
-
needsDe: boolean;
|
|
138
|
-
};
|
|
139
|
-
3: {
|
|
140
|
-
singular: string;
|
|
141
|
-
plural: string;
|
|
142
|
-
feminine: boolean;
|
|
143
|
-
needsDe: boolean;
|
|
144
|
-
};
|
|
145
|
-
4: {
|
|
146
|
-
singular: string;
|
|
147
|
-
plural: string;
|
|
148
|
-
feminine: boolean;
|
|
149
|
-
needsDe: boolean;
|
|
150
|
-
};
|
|
151
|
-
5: {
|
|
152
|
-
singular: string;
|
|
153
|
-
plural: string;
|
|
154
|
-
feminine: boolean;
|
|
155
|
-
needsDe: boolean;
|
|
156
|
-
};
|
|
157
|
-
6: {
|
|
158
|
-
singular: string;
|
|
159
|
-
plural: string;
|
|
160
|
-
feminine: boolean;
|
|
161
|
-
needsDe: boolean;
|
|
162
|
-
};
|
|
163
|
-
7: {
|
|
164
|
-
singular: string;
|
|
165
|
-
plural: string;
|
|
166
|
-
feminine: boolean;
|
|
167
|
-
needsDe: boolean;
|
|
168
|
-
};
|
|
169
|
-
8: {
|
|
170
|
-
singular: string;
|
|
171
|
-
plural: string;
|
|
172
|
-
feminine: boolean;
|
|
173
|
-
needsDe: boolean;
|
|
174
|
-
};
|
|
175
|
-
9: {
|
|
176
|
-
singular: string;
|
|
177
|
-
plural: string;
|
|
178
|
-
feminine: boolean;
|
|
179
|
-
needsDe: boolean;
|
|
180
|
-
};
|
|
181
|
-
10: {
|
|
182
|
-
singular: string;
|
|
183
|
-
plural: string;
|
|
184
|
-
feminine: boolean;
|
|
185
|
-
needsDe: boolean;
|
|
186
|
-
};
|
|
187
|
-
};
|
|
188
|
-
feminine: boolean;
|
|
189
|
-
/**
|
|
190
|
-
* Split numeric string into BigInt groups of size x from left to right.
|
|
191
|
-
* @param {string} n - The numeric string to split
|
|
192
|
-
* @param {number} x - The size of each group
|
|
193
|
-
* @returns {bigint[]} Array of BigInt groups
|
|
194
|
-
*/
|
|
195
|
-
splitByX(n: string, x: number): bigint[];
|
|
196
|
-
getDigits(value: any): bigint[];
|
|
197
|
-
/**
|
|
198
|
-
* Romanian pluralization & "de" rule for big units.
|
|
199
|
-
* - 1 → singular with article ("o mie", "un milion", "un miliard", …)
|
|
200
|
-
* - otherwise → spell chunk + (optional "de") + plural
|
|
201
|
-
* "de" is inserted when chunk >= 20 (e.g., "douăzeci de mii/milioane/miliarde").
|
|
202
|
-
* @param {bigint} chunk - The chunk value
|
|
203
|
-
* @param {object} form - The form object with singular, plural, feminine, needsDe properties
|
|
204
|
-
* @returns {string} The pluralized form
|
|
205
|
-
*/
|
|
206
|
-
romanianPluralize(chunk: bigint, form: object): string;
|
|
207
|
-
spellUnder100(n: any, feminineUnits?: boolean): any;
|
|
208
|
-
spellUnder1000(n: any, feminineUnits?: boolean): any;
|
|
209
|
-
/**
|
|
210
|
-
* Override decimalDigitsToWords to use masculine forms for decimal places
|
|
211
|
-
* @param {string} decimal Decimal string to convert
|
|
212
|
-
* @returns {string} Value in written format
|
|
213
|
-
*/
|
|
214
|
-
decimalDigitsToWords(decimal: string): string;
|
|
215
|
-
/**
|
|
216
|
-
* Convert number to cardinal form using masculine units
|
|
217
|
-
* @param {bigint} number Number to convert
|
|
218
|
-
* @returns {string} Value in written format
|
|
219
|
-
*/
|
|
220
|
-
toCardinalWithMasculine(number: bigint): string;
|
|
221
|
-
convertWholePart(number: any): string;
|
|
222
|
-
}
|
|
223
|
-
export type RomanianOptions = {
|
|
224
|
-
/**
|
|
225
|
-
* Use feminine forms for numbers.
|
|
226
|
-
*/
|
|
227
|
-
feminine?: boolean;
|
|
228
|
-
};
|
|
229
|
-
import AbstractLanguage from '../classes/abstract-language.js';
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Russian cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {SlavicOptions} [options={}] Configuration options.
|
|
6
|
-
* @returns {string} The number expressed in Russian 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?: SlavicOptions): string;
|
|
11
|
-
/**
|
|
12
|
-
* @typedef {Object} SlavicOptions
|
|
13
|
-
* @property {boolean} [feminine=false] Use feminine forms for numbers.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Russian language converter.
|
|
17
|
-
*
|
|
18
|
-
* Converts numbers to Russian words with full grammatical support:
|
|
19
|
-
* - Gender agreement (masculine/feminine forms)
|
|
20
|
-
* - Complex pluralization rules (one/few/many forms)
|
|
21
|
-
* - Declension patterns for thousands, millions, billions, etc.
|
|
22
|
-
* - Proper case endings for number words
|
|
23
|
-
*
|
|
24
|
-
* Features:
|
|
25
|
-
* - Gender-aware forms (один/одна, два/две)
|
|
26
|
-
* - Three-form pluralization (тысяча/тысячи/тысяч)
|
|
27
|
-
* - Support for very large numbers (up to nonillions)
|
|
28
|
-
* - Proper spacing and conjunction rules
|
|
29
|
-
*
|
|
30
|
-
* This class extends SlavicLanguage, which provides the conversion algorithm
|
|
31
|
-
* shared by Czech, Polish, Ukrainian, Serbian, Croatian, Hebrew, Lithuanian, Latvian.
|
|
32
|
-
*/
|
|
33
|
-
export class Russian extends SlavicLanguage {
|
|
34
|
-
ones: {
|
|
35
|
-
1: string;
|
|
36
|
-
2: string;
|
|
37
|
-
3: string;
|
|
38
|
-
4: string;
|
|
39
|
-
5: string;
|
|
40
|
-
6: string;
|
|
41
|
-
7: string;
|
|
42
|
-
8: string;
|
|
43
|
-
9: string;
|
|
44
|
-
};
|
|
45
|
-
onesFeminine: {
|
|
46
|
-
1: string;
|
|
47
|
-
2: string;
|
|
48
|
-
3: string;
|
|
49
|
-
4: string;
|
|
50
|
-
5: string;
|
|
51
|
-
6: string;
|
|
52
|
-
7: string;
|
|
53
|
-
8: string;
|
|
54
|
-
9: string;
|
|
55
|
-
};
|
|
56
|
-
tens: {
|
|
57
|
-
0: string;
|
|
58
|
-
1: string;
|
|
59
|
-
2: string;
|
|
60
|
-
3: string;
|
|
61
|
-
4: string;
|
|
62
|
-
5: string;
|
|
63
|
-
6: string;
|
|
64
|
-
7: string;
|
|
65
|
-
8: string;
|
|
66
|
-
9: string;
|
|
67
|
-
};
|
|
68
|
-
twenties: {
|
|
69
|
-
2: string;
|
|
70
|
-
3: string;
|
|
71
|
-
4: string;
|
|
72
|
-
5: string;
|
|
73
|
-
6: string;
|
|
74
|
-
7: string;
|
|
75
|
-
8: string;
|
|
76
|
-
9: string;
|
|
77
|
-
};
|
|
78
|
-
hundreds: {
|
|
79
|
-
1: string;
|
|
80
|
-
2: string;
|
|
81
|
-
3: string;
|
|
82
|
-
4: string;
|
|
83
|
-
5: string;
|
|
84
|
-
6: string;
|
|
85
|
-
7: string;
|
|
86
|
-
8: string;
|
|
87
|
-
9: string;
|
|
88
|
-
};
|
|
89
|
-
thousands: {
|
|
90
|
-
1: string[];
|
|
91
|
-
2: string[];
|
|
92
|
-
3: string[];
|
|
93
|
-
4: string[];
|
|
94
|
-
5: string[];
|
|
95
|
-
6: string[];
|
|
96
|
-
7: string[];
|
|
97
|
-
8: string[];
|
|
98
|
-
9: string[];
|
|
99
|
-
10: string[];
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
export type SlavicOptions = {
|
|
103
|
-
/**
|
|
104
|
-
* Use feminine forms for numbers.
|
|
105
|
-
*/
|
|
106
|
-
feminine?: boolean;
|
|
107
|
-
};
|
|
108
|
-
import SlavicLanguage from '../classes/slavic-language.js';
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Serbian 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 Serbian 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
|
-
* Serbian language converter.
|
|
20
|
-
*
|
|
21
|
-
* Implements Serbian number words using the Slavic language pattern:
|
|
22
|
-
* - Serbian number words (jedan/jedna, dva/dve, tri, četiri...)
|
|
23
|
-
* - Gender-aware forms (masculine/feminine)
|
|
24
|
-
* - Slavic three-form pluralization (hiljada/hiljade/hiljada)
|
|
25
|
-
* - Latin script representation
|
|
26
|
-
*
|
|
27
|
-
* Key Features:
|
|
28
|
-
* - Three-form pluralization system shared across Slavic languages
|
|
29
|
-
* * Form 1 (singular): 1 (e.g., "hiljada")
|
|
30
|
-
* * Form 2 (few): 2-4, 22-24, 32-34... excluding teens (e.g., "hiljade")
|
|
31
|
-
* * Form 3 (many): all other numbers (e.g., "hiljada")
|
|
32
|
-
* - Chunk-based decomposition (splits into groups of 3 digits: ones, thousands, millions, etc.)
|
|
33
|
-
* - Large number handling via SCALE[] array with indexed [singular, few, many] forms
|
|
34
|
-
* - Gender-specific number forms for 1 and 2 (masculine/feminine dual forms)
|
|
35
|
-
*
|
|
36
|
-
* Features:
|
|
37
|
-
* - Dual gender forms for 1 and 2 (jedan/jedna, dva/dve)
|
|
38
|
-
* - Similar structure to Croatian with different orthography
|
|
39
|
-
* - Latin script (Serbian can use both Latin and Cyrillic)
|
|
40
|
-
*
|
|
41
|
-
* Inherits from SlavicLanguage for complex pluralization algorithms.
|
|
42
|
-
*/
|
|
43
|
-
export class Serbian extends SlavicLanguage {
|
|
44
|
-
ones: {
|
|
45
|
-
1: string[];
|
|
46
|
-
2: string[];
|
|
47
|
-
3: string[];
|
|
48
|
-
4: string[];
|
|
49
|
-
5: string[];
|
|
50
|
-
6: string[];
|
|
51
|
-
7: string[];
|
|
52
|
-
8: string[];
|
|
53
|
-
9: string[];
|
|
54
|
-
};
|
|
55
|
-
tens: {
|
|
56
|
-
0: string;
|
|
57
|
-
1: string;
|
|
58
|
-
2: string;
|
|
59
|
-
3: string;
|
|
60
|
-
4: string;
|
|
61
|
-
5: string;
|
|
62
|
-
6: string;
|
|
63
|
-
7: string;
|
|
64
|
-
8: string;
|
|
65
|
-
9: string;
|
|
66
|
-
};
|
|
67
|
-
twenties: {
|
|
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
|
-
hundreds: {
|
|
78
|
-
1: string;
|
|
79
|
-
2: string;
|
|
80
|
-
3: string;
|
|
81
|
-
4: string;
|
|
82
|
-
5: string;
|
|
83
|
-
6: string;
|
|
84
|
-
7: string;
|
|
85
|
-
8: string;
|
|
86
|
-
9: string;
|
|
87
|
-
};
|
|
88
|
-
SCALE: (string | boolean)[][];
|
|
89
|
-
pluralize(n: any, forms: any): any;
|
|
90
|
-
convertWholePart(number: any): string;
|
|
91
|
-
}
|
|
92
|
-
export type SlavicOptions = {
|
|
93
|
-
/**
|
|
94
|
-
* Use feminine forms for numbers.
|
|
95
|
-
*/
|
|
96
|
-
feminine?: boolean;
|
|
97
|
-
};
|
|
98
|
-
import SlavicLanguage from '../classes/slavic-language.js';
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Swedish cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see Swedish class options).
|
|
6
|
-
* @returns {string} The number expressed in Swedish 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); // 'fyrtio-två'
|
|
12
|
-
* convertToWords('1.5'); // 'ett komma fem'
|
|
13
|
-
*/
|
|
14
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
15
|
-
/**
|
|
16
|
-
* Swedish language converter.
|
|
17
|
-
*
|
|
18
|
-
* Converts numbers to Swedish words, supporting:
|
|
19
|
-
* - Negative numbers (prepended with "minus")
|
|
20
|
-
* - Decimal numbers (word "komma" between whole and fractional parts)
|
|
21
|
-
* - Numbers up to quadrillions
|
|
22
|
-
*
|
|
23
|
-
* Merge rules:
|
|
24
|
-
* - Hyphenated for compound tens (e.g., "tjugo-tre")
|
|
25
|
-
* - "och" (and) after hundreds (e.g., "hundra och ett")
|
|
26
|
-
* - Space-separated for larger composites (e.g., "en miljon")
|
|
27
|
-
*/
|
|
28
|
-
export class Swedish extends GreedyScaleLanguage {
|
|
29
|
-
}
|
|
30
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function convertToWords(value: any, options?: {}): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function convertToWords(value: any, options?: {}): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function convertToWords(value: any, options?: {}): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function convertToWords(value: any, options?: {}): string;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Turkish cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see TR class).
|
|
6
|
-
* @param {boolean} [options.dropSpaces=false] Remove spaces between words if true.
|
|
7
|
-
* @returns {string} The number expressed in Turkish words.
|
|
8
|
-
* @throws {TypeError} If value is NaN or invalid type.
|
|
9
|
-
* @throws {Error} If value is an invalid number string.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* convertToWords(42, { lang: 'tr' }); // 'kırk iki'
|
|
13
|
-
* convertToWords(42, { lang: 'tr', dropSpaces: true }); // 'kırkiki'
|
|
14
|
-
*/
|
|
15
|
-
export default function convertToWords(value: number | string | bigint, options?: {
|
|
16
|
-
dropSpaces?: boolean;
|
|
17
|
-
}): string;
|
|
18
|
-
/**
|
|
19
|
-
* @typedef {Object} TurkishOptions
|
|
20
|
-
* @property {boolean} [dropSpaces=false] Remove spaces between words if true.
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* Turkish language converter.
|
|
24
|
-
*
|
|
25
|
-
* Inherits from TurkicLanguage shared patterns:
|
|
26
|
-
* - Space-separated number combinations
|
|
27
|
-
* - Omits '1' before hundreds and thousands
|
|
28
|
-
* - Optional word spacing (dropSpaces option)
|
|
29
|
-
* - Supports 'ş', 'ç', 'ğ', 'ı', 'ü', 'ö' characters
|
|
30
|
-
*/
|
|
31
|
-
export class Turkish extends TurkicLanguage {
|
|
32
|
-
/**
|
|
33
|
-
* Initializes the Turkish converter with language-specific options.
|
|
34
|
-
*
|
|
35
|
-
* @param {TurkishOptions} [options={}] Configuration options.
|
|
36
|
-
*/
|
|
37
|
-
constructor({ dropSpaces }?: TurkishOptions);
|
|
38
|
-
dropSpaces: boolean;
|
|
39
|
-
}
|
|
40
|
-
export type TurkishOptions = {
|
|
41
|
-
/**
|
|
42
|
-
* Remove spaces between words if true.
|
|
43
|
-
*/
|
|
44
|
-
dropSpaces?: boolean;
|
|
45
|
-
};
|
|
46
|
-
import TurkicLanguage from '../classes/turkic-language.js';
|
|
@@ -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;
|