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
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Russian language converter.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Gender agreement (masculine/feminine forms)
|
|
6
|
+
* - Three-form pluralization (one/few/many)
|
|
7
|
+
* - Large numbers up to nonillions
|
|
8
|
+
*/
|
|
9
|
+
export class Russian extends SlavicLanguage {
|
|
10
|
+
onesWords: {
|
|
11
|
+
1: string;
|
|
12
|
+
2: string;
|
|
13
|
+
3: string;
|
|
14
|
+
4: string;
|
|
15
|
+
5: string;
|
|
16
|
+
6: string;
|
|
17
|
+
7: string;
|
|
18
|
+
8: string;
|
|
19
|
+
9: string;
|
|
20
|
+
};
|
|
21
|
+
onesFeminineWords: {
|
|
22
|
+
1: string;
|
|
23
|
+
2: string;
|
|
24
|
+
3: string;
|
|
25
|
+
4: string;
|
|
26
|
+
5: string;
|
|
27
|
+
6: string;
|
|
28
|
+
7: string;
|
|
29
|
+
8: string;
|
|
30
|
+
9: string;
|
|
31
|
+
};
|
|
32
|
+
teensWords: {
|
|
33
|
+
0: string;
|
|
34
|
+
1: string;
|
|
35
|
+
2: string;
|
|
36
|
+
3: string;
|
|
37
|
+
4: string;
|
|
38
|
+
5: string;
|
|
39
|
+
6: string;
|
|
40
|
+
7: string;
|
|
41
|
+
8: string;
|
|
42
|
+
9: string;
|
|
43
|
+
};
|
|
44
|
+
twentiesWords: {
|
|
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
|
+
hundredsWords: {
|
|
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
|
+
pluralForms: {
|
|
66
|
+
1: string[];
|
|
67
|
+
2: string[];
|
|
68
|
+
3: string[];
|
|
69
|
+
4: string[];
|
|
70
|
+
5: string[];
|
|
71
|
+
6: string[];
|
|
72
|
+
7: string[];
|
|
73
|
+
8: string[];
|
|
74
|
+
9: string[];
|
|
75
|
+
10: string[];
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Russian thousands (тысяча) are feminine, requiring одна/две forms.
|
|
79
|
+
* Other scales (million, billion, etc.) are masculine.
|
|
80
|
+
*/
|
|
81
|
+
scaleGenders: {
|
|
82
|
+
1: boolean;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
import { SlavicLanguage } from '../classes/slavic-language.js';
|
package/lib/languages/ru.js
CHANGED
|
@@ -1,34 +1,19 @@
|
|
|
1
|
-
import SlavicLanguage from '../classes/slavic-language.js'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @typedef {Object} SlavicOptions
|
|
5
|
-
* @property {boolean} [feminine=false] Use feminine forms for numbers.
|
|
6
|
-
*/
|
|
1
|
+
import { SlavicLanguage } from '../classes/slavic-language.js'
|
|
7
2
|
|
|
8
3
|
/**
|
|
9
4
|
* Russian language converter.
|
|
10
5
|
*
|
|
11
|
-
*
|
|
6
|
+
* Supports:
|
|
12
7
|
* - Gender agreement (masculine/feminine forms)
|
|
13
|
-
* -
|
|
14
|
-
* -
|
|
15
|
-
* - Proper case endings for number words
|
|
16
|
-
*
|
|
17
|
-
* Features:
|
|
18
|
-
* - Gender-aware forms (один/одна, два/две)
|
|
19
|
-
* - Three-form pluralization (тысяча/тысячи/тысяч)
|
|
20
|
-
* - Support for very large numbers (up to nonillions)
|
|
21
|
-
* - Proper spacing and conjunction rules
|
|
22
|
-
*
|
|
23
|
-
* This class extends SlavicLanguage, which provides the conversion algorithm
|
|
24
|
-
* shared by Czech, Polish, Ukrainian, Serbian, Croatian, Hebrew, Lithuanian, Latvian.
|
|
8
|
+
* - Three-form pluralization (one/few/many)
|
|
9
|
+
* - Large numbers up to nonillions
|
|
25
10
|
*/
|
|
26
11
|
export class Russian extends SlavicLanguage {
|
|
27
12
|
negativeWord = 'минус'
|
|
28
13
|
decimalSeparatorWord = 'запятая'
|
|
29
14
|
zeroWord = 'ноль'
|
|
30
15
|
|
|
31
|
-
|
|
16
|
+
onesWords = {
|
|
32
17
|
1: 'один',
|
|
33
18
|
2: 'два',
|
|
34
19
|
3: 'три',
|
|
@@ -40,7 +25,7 @@ export class Russian extends SlavicLanguage {
|
|
|
40
25
|
9: 'девять'
|
|
41
26
|
}
|
|
42
27
|
|
|
43
|
-
|
|
28
|
+
onesFeminineWords = {
|
|
44
29
|
1: 'одна',
|
|
45
30
|
2: 'две',
|
|
46
31
|
3: 'три',
|
|
@@ -52,7 +37,7 @@ export class Russian extends SlavicLanguage {
|
|
|
52
37
|
9: 'девять'
|
|
53
38
|
}
|
|
54
39
|
|
|
55
|
-
|
|
40
|
+
teensWords = {
|
|
56
41
|
0: 'десять',
|
|
57
42
|
1: 'одиннадцать',
|
|
58
43
|
2: 'двенадцать',
|
|
@@ -65,7 +50,7 @@ export class Russian extends SlavicLanguage {
|
|
|
65
50
|
9: 'девятнадцать'
|
|
66
51
|
}
|
|
67
52
|
|
|
68
|
-
|
|
53
|
+
twentiesWords = {
|
|
69
54
|
2: 'двадцать',
|
|
70
55
|
3: 'тридцать',
|
|
71
56
|
4: 'сорок',
|
|
@@ -76,7 +61,7 @@ export class Russian extends SlavicLanguage {
|
|
|
76
61
|
9: 'девяносто'
|
|
77
62
|
}
|
|
78
63
|
|
|
79
|
-
|
|
64
|
+
hundredsWords = {
|
|
80
65
|
1: 'сто',
|
|
81
66
|
2: 'двести',
|
|
82
67
|
3: 'триста',
|
|
@@ -88,7 +73,7 @@ export class Russian extends SlavicLanguage {
|
|
|
88
73
|
9: 'девятьсот'
|
|
89
74
|
}
|
|
90
75
|
|
|
91
|
-
|
|
76
|
+
pluralForms = {
|
|
92
77
|
1: ['тысяча', 'тысячи', 'тысяч'], // 10^ 3
|
|
93
78
|
2: ['миллион', 'миллиона', 'миллионов'], // 10^ 6
|
|
94
79
|
3: ['миллиард', 'миллиарда', 'миллиардов'], // 10^ 9
|
|
@@ -100,17 +85,12 @@ export class Russian extends SlavicLanguage {
|
|
|
100
85
|
9: ['октиллион', 'октиллиона', 'октиллионов'], // 10^ 27
|
|
101
86
|
10: ['нониллион', 'нониллиона', 'нониллионов'] // 10^ 30
|
|
102
87
|
}
|
|
103
|
-
}
|
|
104
88
|
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
* @throws {Error} If value is an invalid number string.
|
|
113
|
-
*/
|
|
114
|
-
export default function convertToWords (value, options = {}) {
|
|
115
|
-
return new Russian(options).convertToWords(value)
|
|
89
|
+
/**
|
|
90
|
+
* Russian thousands (тысяча) are feminine, requiring одна/две forms.
|
|
91
|
+
* Other scales (million, billion, etc.) are masculine.
|
|
92
|
+
*/
|
|
93
|
+
scaleGenders = {
|
|
94
|
+
1: true // thousands are feminine
|
|
95
|
+
}
|
|
116
96
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serbian language converter (Cyrillic script).
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Three-form pluralization (one/few/many)
|
|
6
|
+
* - Gender agreement (један/једна, два/две)
|
|
7
|
+
* - Cyrillic script representation
|
|
8
|
+
*/
|
|
9
|
+
export class SerbianCyrillic extends SlavicLanguage {
|
|
10
|
+
onesWords: {
|
|
11
|
+
1: string;
|
|
12
|
+
2: string;
|
|
13
|
+
3: string;
|
|
14
|
+
4: string;
|
|
15
|
+
5: string;
|
|
16
|
+
6: string;
|
|
17
|
+
7: string;
|
|
18
|
+
8: string;
|
|
19
|
+
9: string;
|
|
20
|
+
};
|
|
21
|
+
onesFeminineWords: {
|
|
22
|
+
1: string;
|
|
23
|
+
2: string;
|
|
24
|
+
3: string;
|
|
25
|
+
4: string;
|
|
26
|
+
5: string;
|
|
27
|
+
6: string;
|
|
28
|
+
7: string;
|
|
29
|
+
8: string;
|
|
30
|
+
9: string;
|
|
31
|
+
};
|
|
32
|
+
teensWords: {
|
|
33
|
+
0: string;
|
|
34
|
+
1: string;
|
|
35
|
+
2: string;
|
|
36
|
+
3: string;
|
|
37
|
+
4: string;
|
|
38
|
+
5: string;
|
|
39
|
+
6: string;
|
|
40
|
+
7: string;
|
|
41
|
+
8: string;
|
|
42
|
+
9: string;
|
|
43
|
+
};
|
|
44
|
+
twentiesWords: {
|
|
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
|
+
hundredsWords: {
|
|
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
|
+
pluralForms: {
|
|
66
|
+
1: string[];
|
|
67
|
+
2: string[];
|
|
68
|
+
3: string[];
|
|
69
|
+
4: string[];
|
|
70
|
+
5: string[];
|
|
71
|
+
6: string[];
|
|
72
|
+
7: string[];
|
|
73
|
+
8: string[];
|
|
74
|
+
9: string[];
|
|
75
|
+
10: string[];
|
|
76
|
+
};
|
|
77
|
+
/** Selects Serbian plural form: 1 = singular, 2-4 = few, else = many. */
|
|
78
|
+
pluralize(n: any, forms: any): any;
|
|
79
|
+
}
|
|
80
|
+
import { SlavicLanguage } from '../classes/slavic-language.js';
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { SlavicLanguage } from '../classes/slavic-language.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Serbian language converter (Cyrillic script).
|
|
5
|
+
*
|
|
6
|
+
* Supports:
|
|
7
|
+
* - Three-form pluralization (one/few/many)
|
|
8
|
+
* - Gender agreement (један/једна, два/две)
|
|
9
|
+
* - Cyrillic script representation
|
|
10
|
+
*/
|
|
11
|
+
export class SerbianCyrillic extends SlavicLanguage {
|
|
12
|
+
negativeWord = 'минус'
|
|
13
|
+
decimalSeparatorWord = 'запета'
|
|
14
|
+
zeroWord = 'нула'
|
|
15
|
+
|
|
16
|
+
onesWords = {
|
|
17
|
+
1: 'један',
|
|
18
|
+
2: 'два',
|
|
19
|
+
3: 'три',
|
|
20
|
+
4: 'четири',
|
|
21
|
+
5: 'пет',
|
|
22
|
+
6: 'шест',
|
|
23
|
+
7: 'седам',
|
|
24
|
+
8: 'осам',
|
|
25
|
+
9: 'девет'
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
onesFeminineWords = {
|
|
29
|
+
1: 'једна',
|
|
30
|
+
2: 'две',
|
|
31
|
+
3: 'три',
|
|
32
|
+
4: 'четири',
|
|
33
|
+
5: 'пет',
|
|
34
|
+
6: 'шест',
|
|
35
|
+
7: 'седам',
|
|
36
|
+
8: 'осам',
|
|
37
|
+
9: 'девет'
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
teensWords = {
|
|
41
|
+
0: 'десет',
|
|
42
|
+
1: 'једанаест',
|
|
43
|
+
2: 'дванаест',
|
|
44
|
+
3: 'тринаест',
|
|
45
|
+
4: 'четрнаест',
|
|
46
|
+
5: 'петнаест',
|
|
47
|
+
6: 'шеснаест',
|
|
48
|
+
7: 'седамнаест',
|
|
49
|
+
8: 'осамнаест',
|
|
50
|
+
9: 'деветнаест'
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
twentiesWords = {
|
|
54
|
+
2: 'двадесет',
|
|
55
|
+
3: 'тридесет',
|
|
56
|
+
4: 'четрдесет',
|
|
57
|
+
5: 'педесет',
|
|
58
|
+
6: 'шездесет',
|
|
59
|
+
7: 'седамдесет',
|
|
60
|
+
8: 'осамдесет',
|
|
61
|
+
9: 'деведесет'
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
hundredsWords = {
|
|
65
|
+
1: 'сто',
|
|
66
|
+
2: 'двеста',
|
|
67
|
+
3: 'триста',
|
|
68
|
+
4: 'четиристо',
|
|
69
|
+
5: 'петсто',
|
|
70
|
+
6: 'шесто',
|
|
71
|
+
7: 'седамсто',
|
|
72
|
+
8: 'осамсто',
|
|
73
|
+
9: 'девестo'
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
pluralForms = {
|
|
77
|
+
1: ['хиљада', 'хиљаде', 'хиљада'], // 10 ^ 3
|
|
78
|
+
2: ['милион', 'милиона', 'милиона'], // 10 ^ 6
|
|
79
|
+
3: ['милијарда', 'милијарде', 'милијарда'], // 10 ^ 9
|
|
80
|
+
4: ['билион', 'билиона', 'билиона'], // 10 ^ 12
|
|
81
|
+
5: ['билијарда', 'билијарде', 'билијарда'], // 10 ^ 15
|
|
82
|
+
6: ['трилион', 'трилиона', 'трилиона'], // 10 ^ 18
|
|
83
|
+
7: ['трилијарда', 'трилијарде', 'трилијарда'], // 10 ^ 21
|
|
84
|
+
8: ['квадрилион', 'квадрилиона', 'квадрилиона'], // 10 ^ 24
|
|
85
|
+
9: ['квадрилијарда', 'квадрилијарде', 'квадрилијарда'], // 10 ^ 27
|
|
86
|
+
10: ['квинтилион', 'квинтилиона', 'квинтилиона'] // 10 ^ 30
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Maps segment indices to whether they are grammatically feminine.
|
|
91
|
+
* In Serbian, thousands (index 1) are feminine, others are masculine.
|
|
92
|
+
* @type {Object.<number, boolean>}
|
|
93
|
+
*/
|
|
94
|
+
scaleGenders = {
|
|
95
|
+
1: true // thousands are feminine (others default to false)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Selects Serbian plural form: 1 = singular, 2-4 = few, else = many. */
|
|
99
|
+
pluralize (n, forms) {
|
|
100
|
+
const lastDigit = n % 10n
|
|
101
|
+
const lastTwoDigits = n % 100n
|
|
102
|
+
|
|
103
|
+
if ((lastTwoDigits < 10n || lastTwoDigits > 20n) && lastDigit === 1n) {
|
|
104
|
+
return forms[0]
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if ((lastTwoDigits < 10n || lastTwoDigits > 20n) && lastDigit > 1n && lastDigit < 5n) {
|
|
108
|
+
return forms[1]
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return forms[2]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serbian Latin language converter.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Three-form pluralization (one/few/many)
|
|
6
|
+
* - Gender agreement (jedan/jedna, dva/dve)
|
|
7
|
+
* - Latin script representation
|
|
8
|
+
*/
|
|
9
|
+
export class SerbianLatin extends SlavicLanguage {
|
|
10
|
+
onesWords: {
|
|
11
|
+
1: string;
|
|
12
|
+
2: string;
|
|
13
|
+
3: string;
|
|
14
|
+
4: string;
|
|
15
|
+
5: string;
|
|
16
|
+
6: string;
|
|
17
|
+
7: string;
|
|
18
|
+
8: string;
|
|
19
|
+
9: string;
|
|
20
|
+
};
|
|
21
|
+
onesFeminineWords: {
|
|
22
|
+
1: string;
|
|
23
|
+
2: string;
|
|
24
|
+
3: string;
|
|
25
|
+
4: string;
|
|
26
|
+
5: string;
|
|
27
|
+
6: string;
|
|
28
|
+
7: string;
|
|
29
|
+
8: string;
|
|
30
|
+
9: string;
|
|
31
|
+
};
|
|
32
|
+
teensWords: {
|
|
33
|
+
0: string;
|
|
34
|
+
1: string;
|
|
35
|
+
2: string;
|
|
36
|
+
3: string;
|
|
37
|
+
4: string;
|
|
38
|
+
5: string;
|
|
39
|
+
6: string;
|
|
40
|
+
7: string;
|
|
41
|
+
8: string;
|
|
42
|
+
9: string;
|
|
43
|
+
};
|
|
44
|
+
twentiesWords: {
|
|
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
|
+
hundredsWords: {
|
|
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
|
+
pluralForms: {
|
|
66
|
+
1: string[];
|
|
67
|
+
2: string[];
|
|
68
|
+
3: string[];
|
|
69
|
+
4: string[];
|
|
70
|
+
5: string[];
|
|
71
|
+
6: string[];
|
|
72
|
+
7: string[];
|
|
73
|
+
8: string[];
|
|
74
|
+
9: string[];
|
|
75
|
+
10: string[];
|
|
76
|
+
};
|
|
77
|
+
/** Selects Serbian plural form: 1 = singular, 2-4 = few, else = many. */
|
|
78
|
+
pluralize(n: any, forms: any): any;
|
|
79
|
+
}
|
|
80
|
+
import { SlavicLanguage } from '../classes/slavic-language.js';
|
package/lib/languages/sr-Latn.js
CHANGED
|
@@ -1,52 +1,43 @@
|
|
|
1
|
-
import SlavicLanguage from '../classes/slavic-language.js'
|
|
1
|
+
import { SlavicLanguage } from '../classes/slavic-language.js'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* @property {boolean} [feminine=false] Use feminine forms for numbers.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Serbian language converter.
|
|
4
|
+
* Serbian Latin language converter.
|
|
10
5
|
*
|
|
11
|
-
*
|
|
12
|
-
* -
|
|
13
|
-
* - Gender
|
|
14
|
-
* - Slavic three-form pluralization (hiljada/hiljade/hiljada)
|
|
6
|
+
* Supports:
|
|
7
|
+
* - Three-form pluralization (one/few/many)
|
|
8
|
+
* - Gender agreement (jedan/jedna, dva/dve)
|
|
15
9
|
* - Latin script representation
|
|
16
|
-
*
|
|
17
|
-
* Key Features:
|
|
18
|
-
* - Three-form pluralization system shared across Slavic languages
|
|
19
|
-
* * Form 1 (singular): 1 (e.g., "hiljada")
|
|
20
|
-
* * Form 2 (few): 2-4, 22-24, 32-34... excluding teens (e.g., "hiljade")
|
|
21
|
-
* * Form 3 (many): all other numbers (e.g., "hiljada")
|
|
22
|
-
* - Chunk-based decomposition (splits into groups of 3 digits: ones, thousands, millions, etc.)
|
|
23
|
-
* - Large number handling via SCALE[] array with indexed [singular, few, many] forms
|
|
24
|
-
* - Gender-specific number forms for 1 and 2 (masculine/feminine dual forms)
|
|
25
|
-
*
|
|
26
|
-
* Features:
|
|
27
|
-
* - Dual gender forms for 1 and 2 (jedan/jedna, dva/dve)
|
|
28
|
-
* - Similar structure to Croatian with different orthography
|
|
29
|
-
* - Latin script (Serbian can use both Latin and Cyrillic)
|
|
30
|
-
*
|
|
31
|
-
* Inherits from SlavicLanguage for complex pluralization algorithms.
|
|
32
10
|
*/
|
|
33
|
-
export class
|
|
11
|
+
export class SerbianLatin extends SlavicLanguage {
|
|
34
12
|
negativeWord = 'minus'
|
|
35
13
|
decimalSeparatorWord = 'zapeta'
|
|
36
14
|
zeroWord = 'nula'
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
15
|
+
|
|
16
|
+
onesWords = {
|
|
17
|
+
1: 'jedan',
|
|
18
|
+
2: 'dva',
|
|
19
|
+
3: 'tri',
|
|
20
|
+
4: 'četiri',
|
|
21
|
+
5: 'pet',
|
|
22
|
+
6: 'šest',
|
|
23
|
+
7: 'sedam',
|
|
24
|
+
8: 'osam',
|
|
25
|
+
9: 'devet'
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
onesFeminineWords = {
|
|
29
|
+
1: 'jedna',
|
|
30
|
+
2: 'dve',
|
|
31
|
+
3: 'tri',
|
|
32
|
+
4: 'četiri',
|
|
33
|
+
5: 'pet',
|
|
34
|
+
6: 'šest',
|
|
35
|
+
7: 'sedam',
|
|
36
|
+
8: 'osam',
|
|
37
|
+
9: 'devet'
|
|
47
38
|
}
|
|
48
39
|
|
|
49
|
-
|
|
40
|
+
teensWords = {
|
|
50
41
|
0: 'deset',
|
|
51
42
|
1: 'jedanaest',
|
|
52
43
|
2: 'dvanaest',
|
|
@@ -59,7 +50,7 @@ export class Serbian extends SlavicLanguage {
|
|
|
59
50
|
9: 'devetnaest'
|
|
60
51
|
}
|
|
61
52
|
|
|
62
|
-
|
|
53
|
+
twentiesWords = {
|
|
63
54
|
2: 'dvadeset',
|
|
64
55
|
3: 'trideset',
|
|
65
56
|
4: 'četrdeset',
|
|
@@ -70,7 +61,7 @@ export class Serbian extends SlavicLanguage {
|
|
|
70
61
|
9: 'devedeset'
|
|
71
62
|
}
|
|
72
63
|
|
|
73
|
-
|
|
64
|
+
hundredsWords = {
|
|
74
65
|
1: 'sto',
|
|
75
66
|
2: 'dvesta',
|
|
76
67
|
3: 'trista',
|
|
@@ -82,20 +73,29 @@ export class Serbian extends SlavicLanguage {
|
|
|
82
73
|
9: 'devetsto'
|
|
83
74
|
}
|
|
84
75
|
|
|
85
|
-
|
|
86
|
-
['', '', '',
|
|
87
|
-
['
|
|
88
|
-
['
|
|
89
|
-
['
|
|
90
|
-
['
|
|
91
|
-
['
|
|
92
|
-
['
|
|
93
|
-
['
|
|
94
|
-
['
|
|
95
|
-
['
|
|
96
|
-
|
|
97
|
-
]
|
|
76
|
+
pluralForms = {
|
|
77
|
+
1: ['hiljada', 'hiljade', 'hiljada'], // 10 ^ 3
|
|
78
|
+
2: ['milion', 'miliona', 'miliona'], // 10 ^ 6
|
|
79
|
+
3: ['milijarda', 'milijarde', 'milijarda'], // 10 ^ 9
|
|
80
|
+
4: ['bilion', 'biliona', 'biliona'], // 10 ^ 12
|
|
81
|
+
5: ['bilijarda', 'bilijarde', 'bilijarda'], // 10 ^ 15
|
|
82
|
+
6: ['trilion', 'triliona', 'triliona'], // 10 ^ 18
|
|
83
|
+
7: ['trilijarda', 'trilijarde', 'trilijarda'], // 10 ^ 21
|
|
84
|
+
8: ['kvadrilion', 'kvadriliona', 'kvadriliona'], // 10 ^ 24
|
|
85
|
+
9: ['kvadrilijarda', 'kvadrilijarde', 'kvadrilijarda'], // 10 ^ 27
|
|
86
|
+
10: ['kvintilion', 'kvintiliona', 'kvintiliona'] // 10 ^ 30
|
|
87
|
+
}
|
|
98
88
|
|
|
89
|
+
/**
|
|
90
|
+
* Maps segment indices to whether they are grammatically feminine.
|
|
91
|
+
* In Serbian, thousands (index 1) are feminine, others are masculine.
|
|
92
|
+
* @type {Object.<number, boolean>}
|
|
93
|
+
*/
|
|
94
|
+
scaleGenders = {
|
|
95
|
+
1: true // thousands are feminine (others default to false)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Selects Serbian plural form: 1 = singular, 2-4 = few, else = many. */
|
|
99
99
|
pluralize (n, forms) {
|
|
100
100
|
const lastDigit = n % 10n
|
|
101
101
|
const lastTwoDigits = n % 100n
|
|
@@ -110,48 +110,4 @@ export class Serbian extends SlavicLanguage {
|
|
|
110
110
|
|
|
111
111
|
return forms[2]
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
convertWholePart (number) {
|
|
115
|
-
if (number === 0n) {
|
|
116
|
-
return this.zeroWord
|
|
117
|
-
}
|
|
118
|
-
const words = []
|
|
119
|
-
const chunks = this.splitByX(number.toString(), 3)
|
|
120
|
-
let index = chunks.length
|
|
121
|
-
for (const x of chunks) {
|
|
122
|
-
index = index - 1
|
|
123
|
-
const [n1, n2, n3] = this.getDigits(x)
|
|
124
|
-
if (n3 > 0) {
|
|
125
|
-
words.push(this.hundreds[n3])
|
|
126
|
-
}
|
|
127
|
-
if (n2 > 1) {
|
|
128
|
-
words.push(this.twenties[n2])
|
|
129
|
-
}
|
|
130
|
-
if (n2 === 1n) {
|
|
131
|
-
words.push(this.tens[n1])
|
|
132
|
-
} else if (n1 > 0) {
|
|
133
|
-
const isFeminine = (this.feminine || this.SCALE[index][3])
|
|
134
|
-
const genderIndex = isFeminine ? 1 : 0
|
|
135
|
-
words.push(this.ones[n1][genderIndex])
|
|
136
|
-
}
|
|
137
|
-
if ((index > 0) && (x !== 0n)) {
|
|
138
|
-
words.push(this.pluralize(x, this.SCALE[index]))
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return words.join(' ')
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Converts a number to Serbian cardinal (written) form.
|
|
147
|
-
*
|
|
148
|
-
* @param {number|string|bigint} value The number to convert.
|
|
149
|
-
* @param {Object} [options={}] Configuration options.
|
|
150
|
-
* @param {boolean} [options.feminine=false] Use feminine forms for numbers.
|
|
151
|
-
* @returns {string} The number expressed in Serbian words.
|
|
152
|
-
* @throws {TypeError} If value is NaN or invalid type.
|
|
153
|
-
* @throws {Error} If value is an invalid number string.
|
|
154
|
-
*/
|
|
155
|
-
export default function convertToWords (value, options = {}) {
|
|
156
|
-
return new Serbian(options).convertToWords(value)
|
|
157
113
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swedish language converter.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Hyphenation for compound tens (tjugo-tre)
|
|
6
|
+
* - "och" (and) after hundreds
|
|
7
|
+
* - Space-separated larger composites
|
|
8
|
+
*/
|
|
9
|
+
export class Swedish extends GreedyScaleLanguage {
|
|
10
|
+
scaleWords: (string | bigint)[][];
|
|
11
|
+
/** Combines two word-sets according to Swedish grammar rules. */
|
|
12
|
+
combineWordSets(preceding: any, following: any): any;
|
|
13
|
+
}
|
|
14
|
+
import { GreedyScaleLanguage } from '../classes/greedy-scale-language.js';
|