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,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to Danish cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see Danish class options).
|
|
6
|
-
* @param {boolean} [options.ordFlag=false] Enable ordinal number conversion.
|
|
7
|
-
* @returns {string} The number expressed in Danish 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(25); // 'femogtyve' (five-and-twenty)
|
|
13
|
-
* convertToWords(50); // 'halvtreds' (half-third-times-twenty)
|
|
14
|
-
*/
|
|
15
|
-
export default function convertToWords(value: number | string | bigint, options?: {
|
|
16
|
-
ordFlag?: boolean;
|
|
17
|
-
}): string;
|
|
18
|
-
/**
|
|
19
|
-
* @typedef {Object} DanishOptions
|
|
20
|
-
* @property {boolean} [ordFlag=false] Enable ordinal number conversion.
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* Danish language converter.
|
|
24
|
-
*
|
|
25
|
-
* GreedyScaleLanguage with Danish-specific extensions:
|
|
26
|
-
* - Unique vigesimal (base-20) number system for 50-90
|
|
27
|
-
* - Special composition rules ("og" for "and" between units and tens)
|
|
28
|
-
* - Reverse digit order (e.g., "fem-og-tyve" = five-and-twenty = 25)
|
|
29
|
-
* - Support for ordinal numbers via ordFlag option
|
|
30
|
-
*
|
|
31
|
-
* Key Features:
|
|
32
|
-
* - Vigesimal tens: halvtreds (50), treds (60), halvfjerds (70), firs (80), halvfems (90)
|
|
33
|
-
* - Units-before-tens pattern (e.g., "tre-og-tyve" = 23)
|
|
34
|
-
* - "et" prefix for hundreds/thousands (not "en")
|
|
35
|
-
* - Optional ordinal number conversion via ordFlag option
|
|
36
|
-
* - Inline merge logic tailored for Danish ordering
|
|
37
|
-
*/
|
|
38
|
-
export class Danish extends GreedyScaleLanguage {
|
|
39
|
-
/**
|
|
40
|
-
* Initializes the Danish converter with language-specific options.
|
|
41
|
-
*
|
|
42
|
-
* @param {DanishOptions} [options={}] Configuration options.
|
|
43
|
-
*/
|
|
44
|
-
constructor({ ordFlag }?: DanishOptions);
|
|
45
|
-
ordFlag: boolean;
|
|
46
|
-
}
|
|
47
|
-
export type DanishOptions = {
|
|
48
|
-
/**
|
|
49
|
-
* Enable ordinal number conversion.
|
|
50
|
-
*/
|
|
51
|
-
ordFlag?: boolean;
|
|
52
|
-
};
|
|
53
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to German cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see German class options).
|
|
6
|
-
* @returns {string} The number expressed in German 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); // 'zweiundvierzig'
|
|
12
|
-
* convertToWords('1.5'); // 'eins komma fünf'
|
|
13
|
-
*/
|
|
14
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
15
|
-
/**
|
|
16
|
-
* German language converter.
|
|
17
|
-
*
|
|
18
|
-
* Handles German grammatical features:
|
|
19
|
-
* - "eins" vs "ein" and "eine" forms for 1
|
|
20
|
-
* - Compound words without separators (e.g., "einundzwanzig" = 21)
|
|
21
|
-
* - Million/Billion pluralization
|
|
22
|
-
* - Special characters (e.g., "ü", "ö", "ß")
|
|
23
|
-
*/
|
|
24
|
-
export class German extends GreedyScaleLanguage {
|
|
25
|
-
}
|
|
26
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to its word representation in Greek.
|
|
3
|
-
* @param {number|string|bigint} value - The number to convert
|
|
4
|
-
* @param {Object} [options={}] - Conversion options
|
|
5
|
-
* @returns {string} The word representation of the number
|
|
6
|
-
* @example
|
|
7
|
-
* convertToWords(42) // 'σαράντα δύο'
|
|
8
|
-
* convertToWords(1000) // 'χίλια'
|
|
9
|
-
* convertToWords(2000) // 'δύο χίλια'
|
|
10
|
-
*/
|
|
11
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a number to English cardinal (written) form.
|
|
3
|
-
*
|
|
4
|
-
* @param {number|string|bigint} value The number to convert.
|
|
5
|
-
* @param {Object} [options] Conversion options (see English class options).
|
|
6
|
-
* @returns {string} The number expressed in English 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); // 'forty-two'
|
|
12
|
-
* convertToWords('1.5'); // 'one point five'
|
|
13
|
-
*/
|
|
14
|
-
export default function convertToWords(value: number | string | bigint, options?: any): string;
|
|
15
|
-
/**
|
|
16
|
-
* English language converter.
|
|
17
|
-
*
|
|
18
|
-
* Converts numbers to English words, supporting:
|
|
19
|
-
* - Negative numbers (prepended with "minus")
|
|
20
|
-
* - Decimal numbers (word "point" between whole and fractional parts)
|
|
21
|
-
* - Numbers up to octillions
|
|
22
|
-
*
|
|
23
|
-
* Merge rules:
|
|
24
|
-
* - Hyphenated for compound tens (e.g., "twenty-three")
|
|
25
|
-
* - "and" after hundreds (e.g., "one hundred and one")
|
|
26
|
-
* - Space-separated for larger composites (e.g., "one thousand twenty-three")
|
|
27
|
-
*/
|
|
28
|
-
export class English extends GreedyScaleLanguage {
|
|
29
|
-
}
|
|
30
|
-
import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
|
|
@@ -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';
|