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.
Files changed (280) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +183 -156
  3. package/dist/languages/am-Latn.js +3 -0
  4. package/dist/languages/am-Latn.js.map +1 -0
  5. package/dist/languages/am.js +3 -0
  6. package/dist/languages/am.js.map +1 -0
  7. package/dist/languages/ar.js +3 -2
  8. package/dist/languages/ar.js.map +1 -1
  9. package/dist/languages/az.js +3 -2
  10. package/dist/languages/az.js.map +1 -1
  11. package/dist/languages/bn.js +3 -2
  12. package/dist/languages/bn.js.map +1 -1
  13. package/dist/languages/cs.js +3 -2
  14. package/dist/languages/cs.js.map +1 -1
  15. package/dist/languages/da.js +3 -2
  16. package/dist/languages/da.js.map +1 -1
  17. package/dist/languages/de.js +3 -2
  18. package/dist/languages/de.js.map +1 -1
  19. package/dist/languages/el.js +3 -2
  20. package/dist/languages/el.js.map +1 -1
  21. package/dist/languages/en.js +3 -2
  22. package/dist/languages/en.js.map +1 -1
  23. package/dist/languages/es.js +3 -2
  24. package/dist/languages/es.js.map +1 -1
  25. package/dist/languages/fa.js +3 -2
  26. package/dist/languages/fa.js.map +1 -1
  27. package/dist/languages/fi.js +3 -0
  28. package/dist/languages/fi.js.map +1 -0
  29. package/dist/languages/fil.js +3 -2
  30. package/dist/languages/fil.js.map +1 -1
  31. package/dist/languages/fr-BE.js +3 -2
  32. package/dist/languages/fr-BE.js.map +1 -1
  33. package/dist/languages/fr.js +3 -2
  34. package/dist/languages/fr.js.map +1 -1
  35. package/dist/languages/gu.js +3 -2
  36. package/dist/languages/gu.js.map +1 -1
  37. package/dist/languages/ha.js +3 -0
  38. package/dist/languages/ha.js.map +1 -0
  39. package/dist/languages/hbo.js +3 -0
  40. package/dist/languages/hbo.js.map +1 -0
  41. package/dist/languages/he.js +3 -2
  42. package/dist/languages/he.js.map +1 -1
  43. package/dist/languages/hi.js +3 -2
  44. package/dist/languages/hi.js.map +1 -1
  45. package/dist/languages/hr.js +3 -2
  46. package/dist/languages/hr.js.map +1 -1
  47. package/dist/languages/hu.js +3 -2
  48. package/dist/languages/hu.js.map +1 -1
  49. package/dist/languages/id.js +3 -2
  50. package/dist/languages/id.js.map +1 -1
  51. package/dist/languages/it.js +3 -2
  52. package/dist/languages/it.js.map +1 -1
  53. package/dist/languages/ja.js +3 -2
  54. package/dist/languages/ja.js.map +1 -1
  55. package/dist/languages/kn.js +3 -2
  56. package/dist/languages/kn.js.map +1 -1
  57. package/dist/languages/ko.js +3 -2
  58. package/dist/languages/ko.js.map +1 -1
  59. package/dist/languages/lt.js +3 -2
  60. package/dist/languages/lt.js.map +1 -1
  61. package/dist/languages/lv.js +3 -2
  62. package/dist/languages/lv.js.map +1 -1
  63. package/dist/languages/mr.js +3 -2
  64. package/dist/languages/mr.js.map +1 -1
  65. package/dist/languages/ms.js +3 -2
  66. package/dist/languages/ms.js.map +1 -1
  67. package/dist/languages/nb.js +3 -2
  68. package/dist/languages/nb.js.map +1 -1
  69. package/dist/languages/nl.js +3 -2
  70. package/dist/languages/nl.js.map +1 -1
  71. package/dist/languages/pa.js +3 -0
  72. package/dist/languages/pa.js.map +1 -0
  73. package/dist/languages/pl.js +3 -2
  74. package/dist/languages/pl.js.map +1 -1
  75. package/dist/languages/pt.js +3 -2
  76. package/dist/languages/pt.js.map +1 -1
  77. package/dist/languages/ro.js +3 -2
  78. package/dist/languages/ro.js.map +1 -1
  79. package/dist/languages/ru.js +3 -2
  80. package/dist/languages/ru.js.map +1 -1
  81. package/dist/languages/sr-Cyrl.js +3 -0
  82. package/dist/languages/sr-Cyrl.js.map +1 -0
  83. package/dist/languages/sr-Latn.js +3 -2
  84. package/dist/languages/sr-Latn.js.map +1 -1
  85. package/dist/languages/sv.js +3 -2
  86. package/dist/languages/sv.js.map +1 -1
  87. package/dist/languages/sw.js +3 -2
  88. package/dist/languages/sw.js.map +1 -1
  89. package/dist/languages/ta.js +3 -2
  90. package/dist/languages/ta.js.map +1 -1
  91. package/dist/languages/te.js +3 -2
  92. package/dist/languages/te.js.map +1 -1
  93. package/dist/languages/th.js +3 -2
  94. package/dist/languages/th.js.map +1 -1
  95. package/dist/languages/tr.js +3 -2
  96. package/dist/languages/tr.js.map +1 -1
  97. package/dist/languages/uk.js +3 -2
  98. package/dist/languages/uk.js.map +1 -1
  99. package/dist/languages/ur.js +3 -2
  100. package/dist/languages/ur.js.map +1 -1
  101. package/dist/languages/vi.js +3 -2
  102. package/dist/languages/vi.js.map +1 -1
  103. package/dist/languages/zh-Hans.js +3 -2
  104. package/dist/languages/zh-Hans.js.map +1 -1
  105. package/dist/languages/zh-Hant.js +3 -0
  106. package/dist/languages/zh-Hant.js.map +1 -0
  107. package/dist/n2words.js +3 -2
  108. package/dist/n2words.js.map +1 -1
  109. package/lib/languages/am-Latn.d.ts +7 -0
  110. package/lib/languages/am-Latn.js +164 -0
  111. package/lib/languages/am.d.ts +7 -0
  112. package/lib/languages/am.js +164 -0
  113. package/lib/languages/ar.d.ts +17 -0
  114. package/lib/languages/ar.js +171 -209
  115. package/lib/languages/az.d.ts +7 -0
  116. package/lib/languages/az.js +167 -49
  117. package/lib/languages/bn.d.ts +7 -0
  118. package/lib/languages/bn.js +142 -123
  119. package/lib/languages/cs.d.ts +18 -0
  120. package/lib/languages/cs.js +303 -176
  121. package/lib/languages/da.d.ts +14 -0
  122. package/lib/languages/da.js +267 -139
  123. package/lib/languages/de.d.ts +17 -0
  124. package/lib/languages/de.js +310 -113
  125. package/lib/languages/el.d.ts +14 -0
  126. package/lib/languages/el.js +225 -98
  127. package/lib/languages/en.d.ts +17 -0
  128. package/lib/languages/en.js +235 -102
  129. package/lib/languages/es.d.ts +21 -0
  130. package/lib/languages/es.js +307 -125
  131. package/lib/languages/fa.d.ts +7 -0
  132. package/lib/languages/fa.js +115 -108
  133. package/lib/languages/fi.d.ts +14 -0
  134. package/lib/languages/fi.js +245 -0
  135. package/lib/languages/fil.d.ts +7 -0
  136. package/lib/languages/fil.js +199 -139
  137. package/lib/languages/fr-BE.d.ts +11 -0
  138. package/lib/languages/fr-BE.js +287 -48
  139. package/lib/languages/fr.d.ts +21 -0
  140. package/lib/languages/fr.js +343 -119
  141. package/lib/languages/gu.d.ts +7 -0
  142. package/lib/languages/gu.js +125 -144
  143. package/lib/languages/ha.d.ts +7 -0
  144. package/lib/languages/ha.js +230 -0
  145. package/lib/languages/hbo.d.ts +13 -0
  146. package/lib/languages/hbo.js +300 -0
  147. package/lib/languages/he.d.ts +13 -0
  148. package/lib/languages/he.js +230 -283
  149. package/lib/languages/hi.d.ts +7 -0
  150. package/lib/languages/hi.js +142 -123
  151. package/lib/languages/hr.d.ts +11 -0
  152. package/lib/languages/hr.js +190 -129
  153. package/lib/languages/hu.d.ts +7 -0
  154. package/lib/languages/hu.js +194 -133
  155. package/lib/languages/id.d.ts +7 -0
  156. package/lib/languages/id.js +167 -140
  157. package/lib/languages/it.d.ts +19 -0
  158. package/lib/languages/it.js +337 -108
  159. package/lib/languages/ja.d.ts +17 -0
  160. package/lib/languages/ja.js +224 -155
  161. package/lib/languages/kn.d.ts +7 -0
  162. package/lib/languages/kn.js +128 -62
  163. package/lib/languages/ko.d.ts +14 -0
  164. package/lib/languages/ko.js +250 -70
  165. package/lib/languages/lt.d.ts +18 -0
  166. package/lib/languages/lt.js +287 -148
  167. package/lib/languages/lv.d.ts +18 -0
  168. package/lib/languages/lv.js +291 -123
  169. package/lib/languages/mr.d.ts +7 -0
  170. package/lib/languages/mr.js +125 -144
  171. package/lib/languages/ms.d.ts +7 -0
  172. package/lib/languages/ms.js +171 -112
  173. package/lib/languages/nb.d.ts +14 -0
  174. package/lib/languages/nb.js +275 -100
  175. package/lib/languages/nl.d.ts +26 -0
  176. package/lib/languages/nl.js +307 -174
  177. package/lib/languages/pa.d.ts +7 -0
  178. package/lib/languages/pa.js +163 -0
  179. package/lib/languages/pl.d.ts +22 -0
  180. package/lib/languages/pl.js +299 -158
  181. package/lib/languages/pt.d.ts +17 -0
  182. package/lib/languages/pt.js +279 -120
  183. package/lib/languages/ro.d.ts +18 -0
  184. package/lib/languages/ro.js +214 -337
  185. package/lib/languages/ru.d.ts +11 -0
  186. package/lib/languages/ru.js +219 -95
  187. package/lib/languages/sr-Cyrl.d.ts +11 -0
  188. package/lib/languages/sr-Cyrl.js +215 -0
  189. package/lib/languages/sr-Latn.d.ts +11 -0
  190. package/lib/languages/sr-Latn.js +190 -132
  191. package/lib/languages/sv.d.ts +14 -0
  192. package/lib/languages/sv.js +280 -103
  193. package/lib/languages/sw.d.ts +7 -0
  194. package/lib/languages/sw.js +135 -103
  195. package/lib/languages/ta.d.ts +7 -0
  196. package/lib/languages/ta.js +133 -205
  197. package/lib/languages/te.d.ts +7 -0
  198. package/lib/languages/te.js +148 -213
  199. package/lib/languages/th.d.ts +7 -0
  200. package/lib/languages/th.js +139 -101
  201. package/lib/languages/tr.d.ts +18 -0
  202. package/lib/languages/tr.js +246 -66
  203. package/lib/languages/uk.d.ts +11 -0
  204. package/lib/languages/uk.js +197 -101
  205. package/lib/languages/ur.d.ts +7 -0
  206. package/lib/languages/ur.js +160 -123
  207. package/lib/languages/vi.d.ts +17 -0
  208. package/lib/languages/vi.js +287 -164
  209. package/lib/languages/zh-Hans.d.ts +11 -0
  210. package/lib/languages/zh-Hans.js +159 -142
  211. package/lib/languages/zh-Hant.d.ts +11 -0
  212. package/lib/languages/zh-Hant.js +202 -0
  213. package/lib/n2words.d.ts +53 -0
  214. package/lib/n2words.js +91 -227
  215. package/lib/utils/is-plain-object.d.ts +13 -0
  216. package/lib/utils/is-plain-object.js +17 -0
  217. package/lib/utils/parse-numeric.d.ts +17 -0
  218. package/lib/utils/parse-numeric.js +108 -0
  219. package/lib/utils/validate-options.d.ts +8 -0
  220. package/lib/utils/validate-options.js +16 -0
  221. package/package.json +118 -67
  222. package/dist/languages/pa-Guru.js +0 -2
  223. package/dist/languages/pa-Guru.js.map +0 -1
  224. package/lib/classes/abstract-language.js +0 -261
  225. package/lib/classes/greedy-scale-language.js +0 -195
  226. package/lib/classes/slavic-language.js +0 -251
  227. package/lib/classes/south-asian-language.js +0 -161
  228. package/lib/classes/turkic-language.js +0 -63
  229. package/lib/languages/pa-Guru.js +0 -126
  230. package/typings/classes/abstract-language.d.ts +0 -144
  231. package/typings/classes/greedy-scale-language.d.ts +0 -148
  232. package/typings/classes/slavic-language.d.ts +0 -145
  233. package/typings/classes/south-asian-language.d.ts +0 -101
  234. package/typings/classes/turkic-language.d.ts +0 -42
  235. package/typings/languages/ar.d.ts +0 -93
  236. package/typings/languages/az.d.ts +0 -25
  237. package/typings/languages/bn.d.ts +0 -1
  238. package/typings/languages/cs.d.ts +0 -120
  239. package/typings/languages/da.d.ts +0 -53
  240. package/typings/languages/de.d.ts +0 -26
  241. package/typings/languages/el.d.ts +0 -11
  242. package/typings/languages/en.d.ts +0 -30
  243. package/typings/languages/es.d.ts +0 -43
  244. package/typings/languages/fa.d.ts +0 -81
  245. package/typings/languages/fil.d.ts +0 -12
  246. package/typings/languages/fr-BE.d.ts +0 -41
  247. package/typings/languages/fr.d.ts +0 -43
  248. package/typings/languages/gu.d.ts +0 -12
  249. package/typings/languages/he.d.ts +0 -197
  250. package/typings/languages/hi.d.ts +0 -1
  251. package/typings/languages/hr.d.ts +0 -110
  252. package/typings/languages/hu.d.ts +0 -37
  253. package/typings/languages/id.d.ts +0 -69
  254. package/typings/languages/it.d.ts +0 -51
  255. package/typings/languages/ja.d.ts +0 -58
  256. package/typings/languages/kn.d.ts +0 -11
  257. package/typings/languages/ko.d.ts +0 -25
  258. package/typings/languages/lt.d.ts +0 -110
  259. package/typings/languages/lv.d.ts +0 -99
  260. package/typings/languages/mr.d.ts +0 -12
  261. package/typings/languages/ms.d.ts +0 -37
  262. package/typings/languages/nb.d.ts +0 -27
  263. package/typings/languages/nl.d.ts +0 -65
  264. package/typings/languages/pa-Guru.d.ts +0 -1
  265. package/typings/languages/pl.d.ts +0 -116
  266. package/typings/languages/pt.d.ts +0 -39
  267. package/typings/languages/ro.d.ts +0 -229
  268. package/typings/languages/ru.d.ts +0 -108
  269. package/typings/languages/sr-Latn.d.ts +0 -98
  270. package/typings/languages/sv.d.ts +0 -30
  271. package/typings/languages/sw.d.ts +0 -1
  272. package/typings/languages/ta.d.ts +0 -1
  273. package/typings/languages/te.d.ts +0 -1
  274. package/typings/languages/th.d.ts +0 -1
  275. package/typings/languages/tr.d.ts +0 -46
  276. package/typings/languages/uk.d.ts +0 -117
  277. package/typings/languages/ur.d.ts +0 -1
  278. package/typings/languages/vi.d.ts +0 -116
  279. package/typings/languages/zh-Hans.d.ts +0 -57
  280. package/typings/n2words.d.ts +0 -177
@@ -1,116 +0,0 @@
1
- /**
2
- * Converts a number to Vietnamese cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options={}] Configuration options.
6
- * @returns {string} The number expressed in Vietnamese words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- */
10
- export default function convertToWords(value: number | string | bigint, options?: any): string;
11
- /**
12
- * Vietnamese language converter.
13
- *
14
- * Converts numbers to Vietnamese words following Vietnamese number naming:
15
- * - Base-10 grouping system (trăm = hundred, nghìn = thousand, triệu = million, tỷ = billion)
16
- * - Special pronunciation rules for 5 and 15 (lăm instead of năm)
17
- * - Special pronunciation for final 1 in compound numbers (mốt instead of một)
18
- * - "Lẻ" (odd/extra) used when tens place is zero but units exist
19
- *
20
- * Key Features:
21
- * - Base number mapping for 0-19 (with special forms)
22
- * - Tens mapping (hai mươi, ba mươi, etc.)
23
- * - Group-based algorithm:
24
- * 1. Split number into groups of 3 digits
25
- * 2. For each group, build words using special pronunciation rules:
26
- * - "Mốt" instead of "một" for final 1 (e.g., 21 → hai mươi mốt)
27
- * - "Lăm" instead of "năm" for 15 and mid-group 5 (e.g., 15, 105)
28
- * - "Lẻ" prefix when tens=0 but units>0 (e.g., 101 → một trăm lẻ một)
29
- * 3. Append magnitude word (nghìn/triệu/tỷ)
30
- * 4. Join all groups with spaces
31
- * - Support for large numbers up to vigintillions
32
- *
33
- * Features:
34
- * - Natural Vietnamese number flow
35
- * - Proper handling of special cases (mốt, lăm)
36
- * - Contextual pronunciation adjustments
37
- */
38
- export class Vietnamese extends AbstractLanguage {
39
- base: {
40
- 0: string;
41
- 1: string;
42
- 2: string;
43
- 3: string;
44
- 4: string;
45
- 5: string;
46
- 6: string;
47
- 7: string;
48
- 8: string;
49
- 9: string;
50
- 10: string;
51
- 11: string;
52
- 12: string;
53
- 13: string;
54
- 14: string;
55
- 15: string;
56
- 16: string;
57
- 17: string;
58
- 18: string;
59
- 19: string;
60
- };
61
- tens: {
62
- 20: string;
63
- 30: string;
64
- 40: string;
65
- 50: string;
66
- 60: string;
67
- 70: string;
68
- 80: string;
69
- 90: string;
70
- };
71
- thousands: {
72
- 1: string;
73
- 2: string;
74
- 3: string;
75
- 4: string;
76
- 5: string;
77
- 6: string;
78
- 7: string;
79
- 8: string;
80
- 9: string;
81
- 10: string;
82
- 11: string;
83
- 12: string;
84
- 13: string;
85
- 14: string;
86
- 15: string;
87
- 16: string;
88
- 17: string;
89
- 18: string;
90
- 19: string;
91
- 20: string;
92
- };
93
- /**
94
- * Convert numbers less than 100 to Vietnamese words.
95
- *
96
- * @param {number} number The number to convert (0-99).
97
- * @returns {string} The Vietnamese representation.
98
- */
99
- convertLess100(number: number): string;
100
- /**
101
- * Convert numbers less than 1000 to Vietnamese words.
102
- *
103
- * @param {number} number The number to convert (0-999).
104
- * @returns {string} The Vietnamese representation.
105
- */
106
- convertLess1000(number: number): string;
107
- /**
108
- * Convert numbers greater than 1000 to Vietnamese words.
109
- *
110
- * @param {bigint} number The number to convert (>= 1000).
111
- * @returns {string} The Vietnamese representation.
112
- */
113
- convertMore1000(number: bigint): string;
114
- convertWholePart(number: any): any;
115
- }
116
- import AbstractLanguage from '../classes/abstract-language.js';
@@ -1,57 +0,0 @@
1
- /**
2
- * Converts a number to Chinese cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {ChineseOptions} [options] Conversion options.
6
- * @returns {string} The number expressed in Chinese words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- *
10
- * @example
11
- * convertToWords(42); // '肆拾贰' (formal style)
12
- * convertToWords(42, { formal: false }); // '四十二' (common style)
13
- */
14
- export default function convertToWords(value: number | string | bigint, options?: ChineseOptions): string;
15
- /**
16
- * @typedef {Object} ChineseOptions
17
- * @property {boolean} [formal=true] Use formal/financial numerals (壹贰叁) vs. common numerals (一二三).
18
- */
19
- /**
20
- * Chinese language converter.
21
- *
22
- * Features:
23
- * - Concatenated number-word format (no spaces)
24
- * - Implicit zero insertion for positional values
25
- * - Decimal digits pronounced individually
26
- * - Supports both formal (financial) and common (everyday) styles
27
- */
28
- export class Chinese extends GreedyScaleLanguage {
29
- /**
30
- * Initializes the Chinese converter.
31
- *
32
- * @param {ChineseOptions} [options={}] Configuration options.
33
- */
34
- constructor({ formal }?: ChineseOptions);
35
- formal: boolean;
36
- /**
37
- * Get the number of digits in a number.
38
- *
39
- * @param {bigint|number} number_ The number to count digits for.
40
- * @returns {number} The count of digits.
41
- */
42
- digit(number_: bigint | number): number;
43
- /**
44
- * Count the number of zeros in a number.
45
- *
46
- * @param {bigint|number} number_ The number to count zeros in.
47
- * @returns {number} The count of zero digits.
48
- */
49
- zeroDigit(number_: bigint | number): number;
50
- }
51
- export type ChineseOptions = {
52
- /**
53
- * Use formal/financial numerals (壹贰叁) vs. common numerals (一二三).
54
- */
55
- formal?: boolean;
56
- };
57
- import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
@@ -1,177 +0,0 @@
1
- /**
2
- * Convert a numeric value to its cardinal (written) form in the requested language.
3
- *
4
- * This is the main entry point. The library dispatches synchronously to the appropriate
5
- * per-language converter based on the `lang` option. For browser builds, language converters
6
- * are statically imported so bundlers (webpack/rollup) can include them in output; Node.js
7
- * maintains identical behavior via the same static imports.
8
- *
9
- * @param {number|string|bigint} value The number to convert. Accepts:
10
- * - `number` (integer or floating-point),
11
- * - `string` (numeric string, possibly with decimal point),
12
- * - `bigint` for very large integers.
13
- * Decimal numbers as strings preserve precision that `number` type cannot.
14
- * @param {N2WordsOptions} [options={}] Optional configuration object.
15
- *
16
- * @returns {string} A human-readable cardinal representation of `value` in the
17
- * requested language.
18
- *
19
- * @throws {TypeError} If `options` is provided but is not an object.
20
- * @throws {Error} If the requested language is unsupported (no match after fallback).
21
- *
22
- * @example
23
- * // Basic usage
24
- * convertToWords(1, { lang: 'en' }) // => 'one'
25
- * convertToWords('45.67', { lang: 'en' }) // => 'forty-five point six seven'
26
- * convertToWords(123n, { lang: 'fr' }) // => 'cent vingt-trois'
27
- *
28
- * @example
29
- * // Language-specific options (see individual language implementations)
30
- * convertToWords(1, { lang: 'zh-Hans', formal: true }) // Chinese formal style
31
- * convertToWords(1, { lang: 'cs', feminine: true }) // Czech feminine form
32
- */
33
- export default function _default(value: number | string | bigint, options?: N2WordsOptions): string;
34
- export type LanguageCode = "ar" | "az" | "bn" | "cs" | "de" | "da" | "el" | "en" | "es" | "fa" | "fr" | "fr-BE" | "gu" | "he" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "kn" | "ko" | "lt" | "lv" | "mr" | "ms" | "nl" | "nb" | "pa-Guru" | "pl" | "pt" | "ro" | "ru" | "sr-Latn" | "sv" | "sw" | "ta" | "te" | "th" | "fil" | "tr" | "uk" | "ur" | "vi" | "zh-Hans";
35
- export type ArabicOptions = {
36
- /**
37
- * - Word for negative numbers (minus).
38
- */
39
- negativeWord?: string;
40
- /**
41
- * - Use feminine forms for numbers.
42
- */
43
- feminine?: boolean;
44
- };
45
- export type ChineseOptions = {
46
- /**
47
- * - Use formal/financial numerals (壹贰叁) vs. common numerals (一二三).
48
- */
49
- formal?: boolean;
50
- };
51
- export type HebrewOptions = {
52
- /**
53
- * - Conjunction character (typically 'ו' for and).
54
- */
55
- and?: string;
56
- /**
57
- * - Use biblical scale words instead of modern ones.
58
- */
59
- biblical?: boolean;
60
- /**
61
- * - Use feminine forms for numbers.
62
- */
63
- feminine?: boolean;
64
- };
65
- export type SpanishOptions = {
66
- /**
67
- * - Masculine 'o' or feminine 'a' ending.
68
- */
69
- genderStem?: ("o" | "a" | string);
70
- };
71
- export type DutchOptions = {
72
- /**
73
- * - Include optional "en" separator.
74
- */
75
- includeOptionalAnd?: boolean;
76
- /**
77
- * - Disable comma before hundreds.
78
- */
79
- noHundredPairs?: boolean;
80
- /**
81
- * - Use accented "één" for one.
82
- */
83
- accentOne?: boolean;
84
- };
85
- export type FrenchOptions = {
86
- /**
87
- * - Use hyphens (true) instead of spaces (false) in compounds.
88
- */
89
- withHyphenSeparator?: boolean;
90
- };
91
- export type TurkishOptions = {
92
- /**
93
- * - Remove spaces between words if true.
94
- */
95
- dropSpaces?: boolean;
96
- };
97
- export type RomanianOptions = {
98
- /**
99
- * - Use feminine forms for numbers.
100
- */
101
- feminine?: boolean;
102
- };
103
- export type DanishOptions = {
104
- /**
105
- * - Enable ordinal number conversion.
106
- */
107
- ordFlag?: boolean;
108
- };
109
- export type SlavicOptions = {
110
- /**
111
- * - Use feminine forms for numbers.
112
- */
113
- feminine?: boolean;
114
- };
115
- /**
116
- * Configuration object for number-to-words conversion with comprehensive language support.
117
- */
118
- export type N2WordsOptions = {
119
- /**
120
- * - Target language code with full autocomplete support.
121
- * Supports many languages with regional variants (e.g., 'fr-BE').
122
- * Falls back progressively from most-specific to least-specific (e.g., 'fr-BE' -> 'fr').
123
- * Throws an error if no match is found after fallback attempts.
124
- */
125
- lang?: LanguageCode;
126
- /**
127
- * - (Arabic only) Word for negative numbers.
128
- */
129
- negativeWord?: string;
130
- /**
131
- * - (Arabic, Hebrew, Romanian, Slavic languages) Use feminine forms.
132
- */
133
- feminine?: boolean;
134
- /**
135
- * - (Chinese only) Use formal/financial numerals.
136
- */
137
- formal?: boolean;
138
- /**
139
- * - (Hebrew only) Conjunction character.
140
- */
141
- and?: string;
142
- /**
143
- * - (Hebrew only) Use biblical scale words.
144
- */
145
- biblical?: boolean;
146
- /**
147
- * - (Spanish only) Gender ending.
148
- */
149
- genderStem?: ("o" | "a" | string);
150
- /**
151
- * - (Dutch only) Include optional "en".
152
- */
153
- includeOptionalAnd?: boolean;
154
- /**
155
- * - (Dutch only) Disable comma before hundreds.
156
- */
157
- noHundredPairs?: boolean;
158
- /**
159
- * - (Dutch only) Use accented "één".
160
- */
161
- accentOne?: boolean;
162
- /**
163
- * - (French, Belgian French) Use hyphens.
164
- */
165
- withHyphenSeparator?: boolean;
166
- /**
167
- * - (Turkish, Azerbaijani) Remove spaces.
168
- */
169
- dropSpaces?: boolean;
170
- /**
171
- * - (Danish only) Enable ordinal conversion.
172
- *
173
- * Language-specific options are automatically validated and forwarded to converters.
174
- * See individual language implementations for detailed option descriptions.
175
- */
176
- ordFlag?: boolean;
177
- };