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,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Spanish cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see ES class).
|
|
6
|
-
* @returns {string} The number expressed in Spanish 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, { lang: 'es' }); // 'cuarenta y dos'
|
|
12
|
-
* convertToWords(100, { lang: 'es' }); // 'cien'
|
|
13
|
-
*/
|
|
14
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
15
|
-
/**
|
|
16
|
-
* @typedef {Object} SpanishOptions
|
|
17
|
-
* @property {string} [genderStem='o'] Masculine 'o' or feminine 'a' ending.
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* Spanish language converter.
|
|
21
|
-
*
|
|
22
|
-
* Handles Spanish grammatical features:
|
|
23
|
-
* - Gender agreement for numbers (masculine by default, feminine via `genderStem`)
|
|
24
|
-
* - "y" (and) between tens and units (e.g., "veinte y uno")
|
|
25
|
-
* - Special forms for hundreds (e.g., "cien", "ciento", "doscientos")
|
|
26
|
-
* - Million pluralization
|
|
27
|
-
*/
|
|
28
|
-
export class Spanish extends GreedyScaleLanguage {
|
|
29
|
-
/**
|
|
30
|
-
* Initializes the Spanish converter.
|
|
31
|
-
*
|
|
32
|
-
* @param {SpanishOptions} [options={}] Configuration options.
|
|
33
|
-
*/
|
|
34
|
-
constructor({ genderStem }?: SpanishOptions);
|
|
35
|
-
genderStem: string;
|
|
36
|
-
}
|
|
37
|
-
export type SpanishOptions = {
|
|
38
|
-
/**
|
|
39
|
-
* Masculine 'o' or feminine 'a' ending.
|
|
40
|
-
*/
|
|
41
|
-
genderStem?: string;
|
|
42
|
-
};
|
|
43
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Persian 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 Persian 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
|
-
* Persian (Farsi) language converter.
|
|
13
|
-
*
|
|
14
|
-
* Converts numbers to Persian words using Persian-Arabic numerals:
|
|
15
|
-
* - Right-to-left script orientation
|
|
16
|
-
* - Base-10 decimal system with Persian number words
|
|
17
|
-
* - Conjunction "و" (va/and) for compound numbers
|
|
18
|
-
* - Traditional Persian number naming conventions
|
|
19
|
-
*
|
|
20
|
-
* Key Features:
|
|
21
|
-
* - Named number lookup table (namedNumbers) for direct mapping 0-999
|
|
22
|
-
* - Group-based algorithm for numbers >= 1000:
|
|
23
|
-
* 1. Split into groups of 3 digits
|
|
24
|
-
* 2. Convert each group to words using named table or recursion
|
|
25
|
-
* 3. Append magnitude word (هزار/میلیون/میلیارد)
|
|
26
|
-
* 4. Join with "و" (and) conjunction
|
|
27
|
-
* - Special compound forms (دویست for 200, سیصد for 300)
|
|
28
|
-
* - Proper Persian grammatical structure
|
|
29
|
-
* - Support for large numbers (thousands, millions, billions, trillions)
|
|
30
|
-
*
|
|
31
|
-
* Features:
|
|
32
|
-
* - Native Persian digits and words
|
|
33
|
-
* - Special compound forms (e.g., دویست for 200, سیصد for 300)
|
|
34
|
-
* - Support for large numbers (thousands, millions)
|
|
35
|
-
* - Proper Persian grammatical structure
|
|
36
|
-
*/
|
|
37
|
-
export class Farsi extends AbstractLanguage {
|
|
38
|
-
namedNumbers: {
|
|
39
|
-
0: string;
|
|
40
|
-
1: string;
|
|
41
|
-
2: string;
|
|
42
|
-
3: string;
|
|
43
|
-
4: string;
|
|
44
|
-
5: string;
|
|
45
|
-
6: string;
|
|
46
|
-
7: string;
|
|
47
|
-
8: string;
|
|
48
|
-
9: string;
|
|
49
|
-
10: string;
|
|
50
|
-
11: string;
|
|
51
|
-
12: string;
|
|
52
|
-
13: string;
|
|
53
|
-
14: string;
|
|
54
|
-
15: string;
|
|
55
|
-
16: string;
|
|
56
|
-
17: string;
|
|
57
|
-
18: string;
|
|
58
|
-
19: string;
|
|
59
|
-
20: string;
|
|
60
|
-
30: string;
|
|
61
|
-
40: string;
|
|
62
|
-
50: string;
|
|
63
|
-
60: string;
|
|
64
|
-
70: string;
|
|
65
|
-
80: string;
|
|
66
|
-
90: string;
|
|
67
|
-
100: string;
|
|
68
|
-
200: string;
|
|
69
|
-
300: string;
|
|
70
|
-
400: string;
|
|
71
|
-
500: string;
|
|
72
|
-
600: string;
|
|
73
|
-
700: string;
|
|
74
|
-
800: string;
|
|
75
|
-
900: string;
|
|
76
|
-
1000: string;
|
|
77
|
-
1000000: string;
|
|
78
|
-
};
|
|
79
|
-
convertWholePart(number: any): any;
|
|
80
|
-
}
|
|
81
|
-
import AbstractLanguage from '../classes/abstract-language.js';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert a number to Filipino words
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value - The number to convert
|
|
5
|
-
* @param {Object} [options={}] - Conversion options
|
|
6
|
-
* @returns {string} The Filipino word representation
|
|
7
|
-
* @example
|
|
8
|
-
* convertToWords(42) // 'apatnapu dalawa'
|
|
9
|
-
* convertToWords(1000) // 'isang libo'
|
|
10
|
-
* convertToWords(123456) // 'isang daang dalawampung tatlong libong apat na daang limampung anim'
|
|
11
|
-
*/
|
|
12
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Belgian French cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options={}] Configuration options.
|
|
6
|
-
* @param {boolean} [options.withHyphenSeparator=false] Use hyphens (true) instead of spaces (false) in compounds.
|
|
7
|
-
* @returns {string} The number expressed in Belgian French 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
|
-
withHyphenSeparator?: boolean;
|
|
13
|
-
}): string;
|
|
14
|
-
/**
|
|
15
|
-
* @typedef {Object} BelgianFrenchOptions
|
|
16
|
-
* @property {boolean} [withHyphenSeparator=false] Use hyphens (true) instead of spaces (false) in compounds.
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Belgian French language converter.
|
|
20
|
-
*
|
|
21
|
-
* Extends the French converter with Belgian French regional variant:
|
|
22
|
-
* - Uses "septante" (70) instead of "soixante-dix"
|
|
23
|
-
* - Uses "nonante" (90) instead of "quatre-vingt-dix"
|
|
24
|
-
* - Maintains standard French "quatre-vingts" for 80
|
|
25
|
-
* - More regular and logical number system than standard French
|
|
26
|
-
*
|
|
27
|
-
* Features:
|
|
28
|
-
* - Regional number word variations (septante, nonante)
|
|
29
|
-
* - Simplified tens naming (no complex arithmetic)
|
|
30
|
-
* - Inherits all other French grammar rules from FR class
|
|
31
|
-
* - Same pluralization and hyphenation patterns as standard French
|
|
32
|
-
*/
|
|
33
|
-
export class BelgianFrench extends French {
|
|
34
|
-
}
|
|
35
|
-
export type BelgianFrenchOptions = {
|
|
36
|
-
/**
|
|
37
|
-
* Use hyphens (true) instead of spaces (false) in compounds.
|
|
38
|
-
*/
|
|
39
|
-
withHyphenSeparator?: boolean;
|
|
40
|
-
};
|
|
41
|
-
import { French } from './fr.js';
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to French cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see FR class).
|
|
6
|
-
* @returns {string} The number expressed in French 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, { lang: 'fr' }); // 'quarante-deux'
|
|
12
|
-
* convertToWords(81, { lang: 'fr' }); // 'quatre-vingt-un'
|
|
13
|
-
*/
|
|
14
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
15
|
-
/**
|
|
16
|
-
* @typedef {Object} FrenchOptions
|
|
17
|
-
* @property {boolean} [withHyphenSeparator=false] Use hyphens (true) instead of spaces (false) in compounds.
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* French language converter.
|
|
21
|
-
*
|
|
22
|
-
* Special handling:
|
|
23
|
-
* - Pluralization of "cent" (hundred) and other words
|
|
24
|
-
* - "et" (and) before odd numbers in tens place
|
|
25
|
-
* - Hyphenation for compound numbers
|
|
26
|
-
* - Regional number word variations
|
|
27
|
-
*/
|
|
28
|
-
export class French extends GreedyScaleLanguage {
|
|
29
|
-
/**
|
|
30
|
-
* Initializes the French converter with language-specific options.
|
|
31
|
-
*
|
|
32
|
-
* @param {FrenchOptions} [options={}] Configuration options.
|
|
33
|
-
*/
|
|
34
|
-
constructor({ withHyphenSeparator }?: FrenchOptions);
|
|
35
|
-
withHyphenSeparator: boolean;
|
|
36
|
-
}
|
|
37
|
-
export type FrenchOptions = {
|
|
38
|
-
/**
|
|
39
|
-
* Use hyphens (true) instead of spaces (false) in compounds.
|
|
40
|
-
*/
|
|
41
|
-
withHyphenSeparator?: boolean;
|
|
42
|
-
};
|
|
43
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert a number to Gujarati words
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value - The number to convert
|
|
5
|
-
* @param {Object} [options={}] - Conversion options
|
|
6
|
-
* @returns {string} The Gujarati word representation
|
|
7
|
-
* @example
|
|
8
|
-
* convertToWords(42) // 'બેતાળીસ'
|
|
9
|
-
* convertToWords(1000) // 'એક હજાર'
|
|
10
|
-
* convertToWords(100000) // 'એક લાખ'
|
|
11
|
-
*/
|
|
12
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Hebrew cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {HebrewOptions} [options={}] Configuration options.
|
|
6
|
-
* @returns {string} The number expressed in Hebrew 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?: HebrewOptions): string;
|
|
11
|
-
/**
|
|
12
|
-
* @typedef {Object} HebrewOptions
|
|
13
|
-
* @property {string} [and='ו'] Conjunction character (typically 'ו' for and).
|
|
14
|
-
* @property {boolean} [biblical=false] Use biblical scale words instead of modern ones.
|
|
15
|
-
* @property {boolean} [feminine=false] Use feminine forms for numbers.
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* Hebrew language converter.
|
|
19
|
-
*
|
|
20
|
-
* Implements Hebrew number words using the Slavic language pattern:
|
|
21
|
-
* - Hebrew alphabet and right-to-left text
|
|
22
|
-
* - Hebrew number words (אחת, שתים, שלוש, ארבע...)
|
|
23
|
-
* - Feminine number forms (default in Hebrew)
|
|
24
|
-
* - Optional "ve" (ו, "and") conjunction between number groups
|
|
25
|
-
*
|
|
26
|
-
* Key Features:
|
|
27
|
-
* - Three-form pluralization system shared across Slavic languages
|
|
28
|
-
* * Form 1 (singular): 1 (e.g., "אלף")
|
|
29
|
-
* * Form 2 (few): 2-4, 22-24, 32-34... excluding teens (e.g., "אלפים")
|
|
30
|
-
* * Form 3 (many): all other numbers (e.g., "אלף")
|
|
31
|
-
* - Chunk-based decomposition (splits into groups of 3 digits: ones, thousands, millions, etc.)
|
|
32
|
-
* - Large number handling via thousands[] array with indexed [singular, few, many] forms
|
|
33
|
-
*
|
|
34
|
-
* Features:
|
|
35
|
-
* - Right-to-left text orientation
|
|
36
|
-
* - Feminine grammatical gender for numbers
|
|
37
|
-
* - Three-form pluralization (similar to Slavic pattern)
|
|
38
|
-
* - Conjunction control via "and" option
|
|
39
|
-
*
|
|
40
|
-
* Inherits from SlavicLanguage for complex pluralization algorithms.
|
|
41
|
-
*/
|
|
42
|
-
export class Hebrew extends SlavicLanguage {
|
|
43
|
-
/**
|
|
44
|
-
* Initializes the Hebrew converter with language-specific options.
|
|
45
|
-
*
|
|
46
|
-
* @param {HebrewOptions} [options={}] Configuration options.
|
|
47
|
-
*/
|
|
48
|
-
constructor({ and, biblical, feminine }?: HebrewOptions);
|
|
49
|
-
ones: {
|
|
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
|
-
tens: {
|
|
61
|
-
0: string;
|
|
62
|
-
1: string;
|
|
63
|
-
2: string;
|
|
64
|
-
3: string;
|
|
65
|
-
4: string;
|
|
66
|
-
5: string;
|
|
67
|
-
6: string;
|
|
68
|
-
7: string;
|
|
69
|
-
8: string;
|
|
70
|
-
9: string;
|
|
71
|
-
};
|
|
72
|
-
twenties: {
|
|
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
|
-
};
|
|
82
|
-
hundreds: {
|
|
83
|
-
1: string;
|
|
84
|
-
2: string;
|
|
85
|
-
3: string;
|
|
86
|
-
};
|
|
87
|
-
thousands: {
|
|
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
|
-
scale: {
|
|
99
|
-
1: string;
|
|
100
|
-
2: string;
|
|
101
|
-
3: string;
|
|
102
|
-
4: string;
|
|
103
|
-
5: string;
|
|
104
|
-
6: string;
|
|
105
|
-
};
|
|
106
|
-
scalePlural: {
|
|
107
|
-
1: string;
|
|
108
|
-
2: string;
|
|
109
|
-
3: string;
|
|
110
|
-
4: string;
|
|
111
|
-
5: string;
|
|
112
|
-
6: string;
|
|
113
|
-
};
|
|
114
|
-
biblicalOnes: {
|
|
115
|
-
1: string;
|
|
116
|
-
2: string;
|
|
117
|
-
3: string;
|
|
118
|
-
4: string;
|
|
119
|
-
5: string;
|
|
120
|
-
6: string;
|
|
121
|
-
7: string;
|
|
122
|
-
8: string;
|
|
123
|
-
9: string;
|
|
124
|
-
};
|
|
125
|
-
biblicalTens: {
|
|
126
|
-
0: string;
|
|
127
|
-
1: string;
|
|
128
|
-
2: string;
|
|
129
|
-
3: string;
|
|
130
|
-
4: string;
|
|
131
|
-
5: string;
|
|
132
|
-
6: string;
|
|
133
|
-
7: string;
|
|
134
|
-
8: string;
|
|
135
|
-
9: string;
|
|
136
|
-
};
|
|
137
|
-
biblicalTwenties: {
|
|
138
|
-
2: string;
|
|
139
|
-
3: string;
|
|
140
|
-
4: string;
|
|
141
|
-
5: string;
|
|
142
|
-
6: string;
|
|
143
|
-
7: string;
|
|
144
|
-
8: string;
|
|
145
|
-
9: string;
|
|
146
|
-
};
|
|
147
|
-
biblicalHundreds: {
|
|
148
|
-
1: string;
|
|
149
|
-
2: string;
|
|
150
|
-
3: string;
|
|
151
|
-
};
|
|
152
|
-
biblicalThousands: {
|
|
153
|
-
1: string;
|
|
154
|
-
2: string;
|
|
155
|
-
3: string;
|
|
156
|
-
4: string;
|
|
157
|
-
5: string;
|
|
158
|
-
6: string;
|
|
159
|
-
7: string;
|
|
160
|
-
8: string;
|
|
161
|
-
9: string;
|
|
162
|
-
};
|
|
163
|
-
biblicalScale: {
|
|
164
|
-
1: string;
|
|
165
|
-
2: string;
|
|
166
|
-
3: string;
|
|
167
|
-
4: string;
|
|
168
|
-
5: string;
|
|
169
|
-
6: string;
|
|
170
|
-
};
|
|
171
|
-
biblicalScalePlural: {
|
|
172
|
-
1: string;
|
|
173
|
-
2: string;
|
|
174
|
-
3: string;
|
|
175
|
-
4: string;
|
|
176
|
-
5: string;
|
|
177
|
-
6: string;
|
|
178
|
-
};
|
|
179
|
-
and: string;
|
|
180
|
-
biblical: boolean;
|
|
181
|
-
convertWholePart(number: any): string;
|
|
182
|
-
}
|
|
183
|
-
export type HebrewOptions = {
|
|
184
|
-
/**
|
|
185
|
-
* Conjunction character (typically 'ו' for and).
|
|
186
|
-
*/
|
|
187
|
-
and?: string;
|
|
188
|
-
/**
|
|
189
|
-
* Use biblical scale words instead of modern ones.
|
|
190
|
-
*/
|
|
191
|
-
biblical?: boolean;
|
|
192
|
-
/**
|
|
193
|
-
* Use feminine forms for numbers.
|
|
194
|
-
*/
|
|
195
|
-
feminine?: boolean;
|
|
196
|
-
};
|
|
197
|
-
import SlavicLanguage from '../classes/slavic-language.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function convertToWords(value: any, options?: {}): string;
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Croatian 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 Croatian 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
|
-
* Croatian language converter.
|
|
20
|
-
*
|
|
21
|
-
* Implements Croatian number words using the Slavic language pattern:
|
|
22
|
-
* - Croatian number words (jedan/jedna, dva/dvije, tri, četiri...)
|
|
23
|
-
* - Gender-aware forms (masculine/feminine)
|
|
24
|
-
* - Slavic three-form pluralization (tisuća/tisuće/tisuća)
|
|
25
|
-
* - Croatian-specific declension endings
|
|
26
|
-
*
|
|
27
|
-
* Key Features:
|
|
28
|
-
* - Three-form pluralization system shared across Slavic languages
|
|
29
|
-
* * Form 1 (singular): 1 (e.g., "tisuća")
|
|
30
|
-
* * Form 2 (few): 2-4, 22-24, 32-34... excluding teens (e.g., "tisuće")
|
|
31
|
-
* * Form 3 (many): all other numbers (e.g., "tisuća")
|
|
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
|
-
* - 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/dvije)
|
|
38
|
-
* - Latin script orthography
|
|
39
|
-
* - Similar structure to Serbian
|
|
40
|
-
*
|
|
41
|
-
* Inherits from SlavicLanguage for complex pluralization algorithms.
|
|
42
|
-
*/
|
|
43
|
-
export class Croatian 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: {
|
|
89
|
-
0: (string | boolean)[];
|
|
90
|
-
1: (string | boolean)[];
|
|
91
|
-
2: (string | boolean)[];
|
|
92
|
-
3: (string | boolean)[];
|
|
93
|
-
4: (string | boolean)[];
|
|
94
|
-
5: (string | boolean)[];
|
|
95
|
-
6: (string | boolean)[];
|
|
96
|
-
7: (string | boolean)[];
|
|
97
|
-
8: (string | boolean)[];
|
|
98
|
-
9: (string | boolean)[];
|
|
99
|
-
10: (string | boolean)[];
|
|
100
|
-
};
|
|
101
|
-
pluralize(n: any, forms: any): any;
|
|
102
|
-
convertWholePart(number: any): string;
|
|
103
|
-
}
|
|
104
|
-
export type SlavicOptions = {
|
|
105
|
-
/**
|
|
106
|
-
* Use feminine forms for numbers.
|
|
107
|
-
*/
|
|
108
|
-
feminine?: boolean;
|
|
109
|
-
};
|
|
110
|
-
import SlavicLanguage from '../classes/slavic-language.js';
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Hungarian cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see Hungarian class options).
|
|
6
|
-
* @returns {string} The number expressed in Hungarian 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); // 'negyvenkettő'
|
|
12
|
-
* convertToWords(21); // 'huszonegy'
|
|
13
|
-
*/
|
|
14
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
15
|
-
/**
|
|
16
|
-
* Hungarian language converter.
|
|
17
|
-
*
|
|
18
|
-
* Converts numbers to Hungarian words following Hungarian conventions:
|
|
19
|
-
* - Agglutinative structure for compound numbers
|
|
20
|
-
* - No spaces between tens and units (e.g., "huszonegy" = twenty-one)
|
|
21
|
-
* - Special handling for "egy" (one) - often omitted as multiplier
|
|
22
|
-
* - Vowel harmony in compound words
|
|
23
|
-
*
|
|
24
|
-
* Features:
|
|
25
|
-
* - Compact number representations (húsz, harminc, negyven)
|
|
26
|
-
* - Pre-composed twenties (huszonegy through huszonkilenc)
|
|
27
|
-
* - "egész" as decimal separator (meaning "whole")
|
|
28
|
-
* - Support for very large numbers (up to quadrilliards)
|
|
29
|
-
*/
|
|
30
|
-
export class Hungarian extends GreedyScaleLanguage {
|
|
31
|
-
tensToCardinal(number: any): string;
|
|
32
|
-
hundredsToCardinal(number: any): string;
|
|
33
|
-
thousandsToCardinal(number: any): string;
|
|
34
|
-
bigNumberToCardinal(number: any): string;
|
|
35
|
-
convertWholePart(number: any, zeroWord?: string): string;
|
|
36
|
-
}
|
|
37
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Indonesian 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 Indonesian 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
|
-
* Indonesian language converter.
|
|
13
|
-
*
|
|
14
|
-
* Converts numbers to Indonesian words following Indonesian conventions:
|
|
15
|
-
* - Simple base-10 structure
|
|
16
|
-
* - "Se-" prefix for one (e.g., "seratus" = one hundred, "seribu" = one thousand)
|
|
17
|
-
* - Space-separated number components
|
|
18
|
-
* - Straightforward grouping by thousands
|
|
19
|
-
*
|
|
20
|
-
* Key Features:
|
|
21
|
-
* - Base number mapping (base) for single digits 0-9
|
|
22
|
-
* - Magnitude scale (thousands) mapping powers of 10 to Indonesian words
|
|
23
|
-
* - Group-based algorithm:
|
|
24
|
-
* 1. Split number into groups of 3 digits
|
|
25
|
-
* 2. For each group, convert ones/tens/hundreds using base and naming rules
|
|
26
|
-
* 3. Apply "se-" prefix for 1 (seratus, seribu, sejuta)
|
|
27
|
-
* 4. Combine with magnitude words
|
|
28
|
-
* 5. Join all parts with spaces
|
|
29
|
-
* - Regular patterns (puluh for tens, ratus for hundreds, ribu for thousands)
|
|
30
|
-
* - Clear grouping: ribu (10³), juta (10⁶), miliar (10⁹), triliun (10¹²)
|
|
31
|
-
*
|
|
32
|
-
* Features:
|
|
33
|
-
* - "Se-" prefix usage for singular units
|
|
34
|
-
* - Support for very large numbers (up to decillions)
|
|
35
|
-
*/
|
|
36
|
-
export class Indonesian extends AbstractLanguage {
|
|
37
|
-
base: {
|
|
38
|
-
0: any[];
|
|
39
|
-
1: string[];
|
|
40
|
-
2: string[];
|
|
41
|
-
3: string[];
|
|
42
|
-
4: string[];
|
|
43
|
-
5: string[];
|
|
44
|
-
6: string[];
|
|
45
|
-
7: string[];
|
|
46
|
-
8: string[];
|
|
47
|
-
9: string[];
|
|
48
|
-
};
|
|
49
|
-
thousands: {
|
|
50
|
-
3: string;
|
|
51
|
-
6: string;
|
|
52
|
-
9: string;
|
|
53
|
-
12: string;
|
|
54
|
-
15: string;
|
|
55
|
-
18: string;
|
|
56
|
-
21: string;
|
|
57
|
-
24: string;
|
|
58
|
-
27: string;
|
|
59
|
-
30: string;
|
|
60
|
-
33: string;
|
|
61
|
-
};
|
|
62
|
-
splitBy3(number: any): any[][];
|
|
63
|
-
spell(blocks: any): any[];
|
|
64
|
-
getHundreds(number: any): any[];
|
|
65
|
-
getTens(number: any): any;
|
|
66
|
-
join(wordBlocks: any): string;
|
|
67
|
-
convertWholePart(number: any): string;
|
|
68
|
-
}
|
|
69
|
-
import AbstractLanguage from '../classes/abstract-language.js';
|