to-words
Version:
Convert numbers to words in 132 locales with currency, ordinal, and BigInt support (TypeScript, ESM/CJS/UMD).
196 lines (195 loc) • 7.82 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ToWords = void 0;
exports.toWords = toWords;
exports.toOrdinal = toOrdinal;
exports.toCurrency = toCurrency;
const ToWordsCore_js_1 = require("../ToWordsCore.js");
class Locale {
config = {
currency: {
name: 'Forint',
plural: 'Forint',
singular: 'Forint',
symbol: 'Ft',
fractionalUnit: {
name: '',
singular: '',
plural: '',
symbol: '',
},
},
texts: {
and: 'És',
minus: 'Mínusz',
only: '',
point: 'Egész',
},
numberWordsMapping: [
{ number: 1000000000000000, value: 'Billiárd' },
{ number: 1000000000000, value: 'Billió' },
{ number: 1000000000, value: 'Milliárd' },
{ number: 1000000, value: 'Millió' },
{ number: 1000, value: 'Ezer' },
{ number: 900, value: 'Kilencszáz' },
{ number: 800, value: 'Nyolcszáz' },
{ number: 700, value: 'Hétszáz' },
{ number: 600, value: 'Hatszáz' },
{ number: 500, value: 'Ötszáz' },
{ number: 400, value: 'Négyszáz' },
{ number: 300, value: 'Háromszáz' },
{ number: 200, value: 'Kétszáz' },
{ number: 100, value: 'Száz' },
{ number: 90, value: 'Kilencven' },
{ number: 80, value: 'Nyolcvan' },
{ number: 70, value: 'Hetven' },
{ number: 60, value: 'Hatvan' },
{ number: 50, value: 'Ötven' },
{ number: 40, value: 'Negyven' },
{ number: 30, value: 'Harminc' },
{ number: 29, value: 'Huszonkilenc' },
{ number: 28, value: 'Huszonnyolc' },
{ number: 27, value: 'Huszonhét' },
{ number: 26, value: 'Huszonhat' },
{ number: 25, value: 'Huszonöt' },
{ number: 24, value: 'Huszonnégy' },
{ number: 23, value: 'Huszonhárom' },
{ number: 22, value: 'Huszonkettő' },
{ number: 21, value: 'Huszonegy' },
{ number: 20, value: 'Húsz' },
{ number: 19, value: 'Tizenkilenc' },
{ number: 18, value: 'Tizennyolc' },
{ number: 17, value: 'Tizenhét' },
{ number: 16, value: 'Tizenhat' },
{ number: 15, value: 'Tizenöt' },
{ number: 14, value: 'Tizennégy' },
{ number: 13, value: 'Tizenhárom' },
{ number: 12, value: 'Tizenkettő' },
{ number: 11, value: 'Tizenegy' },
{ number: 10, value: 'Tíz' },
{ number: 9, value: 'Kilenc' },
{ number: 8, value: 'Nyolc' },
{ number: 7, value: 'Hét' },
{ number: 6, value: 'Hat' },
{ number: 5, value: 'Öt' },
{ number: 4, value: 'Négy' },
{ number: 3, value: 'Három' },
{ number: 2, value: 'Kettő' },
{ number: 1, value: 'Egy' },
{ number: 0, value: 'Nulla' },
],
exactWordsMapping: [{ number: 100, value: 'Száz' }],
ignoreOneForWords: [
'Száz',
'Kétszáz',
'Háromszáz',
'Négyszáz',
'Ötszáz',
'Hatszáz',
'Hétszáz',
'Nyolcszáz',
'Kilencszáz',
'Ezer',
],
ordinalWordsMapping: [
{ number: 1000000000000000, value: 'Billiárdodik' },
{ number: 1000000000000, value: 'Billiomodik' },
{ number: 1000000000, value: 'Milliárdodik' },
{ number: 1000000, value: 'Milliomodik' },
{ number: 1000, value: 'Ezredik' },
{ number: 900, value: 'Kilencszázadik' },
{ number: 800, value: 'Nyolcszázadik' },
{ number: 700, value: 'Hétszázadik' },
{ number: 600, value: 'Hatszázadik' },
{ number: 500, value: 'Ötszázadik' },
{ number: 400, value: 'Négyszázadik' },
{ number: 300, value: 'Háromszázadik' },
{ number: 200, value: 'Kétszázadik' },
{ number: 100, value: 'Századik' },
{ number: 90, value: 'Kilencvenedik' },
{ number: 80, value: 'Nyolcvanadik' },
{ number: 70, value: 'Hetvenedik' },
{ number: 60, value: 'Hatvanadik' },
{ number: 50, value: 'Ötvenedik' },
{ number: 40, value: 'Negyvenedik' },
{ number: 30, value: 'Harmincadik' },
{ number: 29, value: 'Huszonkilencedik' },
{ number: 28, value: 'Huszonnyolcadik' },
{ number: 27, value: 'Huszonhetedik' },
{ number: 26, value: 'Huszonhatodik' },
{ number: 25, value: 'Huszonötödik' },
{ number: 24, value: 'Huszonnegyedik' },
{ number: 23, value: 'Huszonharmadik' },
{ number: 22, value: 'Huszonkettedik' },
{ number: 21, value: 'Huszonegyedik' },
{ number: 20, value: 'Huszadik' },
{ number: 19, value: 'Tizenkilencedik' },
{ number: 18, value: 'Tizennyolcadik' },
{ number: 17, value: 'Tizenhetedik' },
{ number: 16, value: 'Tizenhatodik' },
{ number: 15, value: 'Tizenötödik' },
{ number: 14, value: 'Tizennegyedik' },
{ number: 13, value: 'Tizenharmadik' },
{ number: 12, value: 'Tizenkettedik' },
{ number: 11, value: 'Tizenegyedik' },
{ number: 10, value: 'Tizedik' },
{ number: 9, value: 'Kilencedik' },
{ number: 8, value: 'Nyolcadik' },
{ number: 7, value: 'Hetedik' },
{ number: 6, value: 'Hatodik' },
{ number: 5, value: 'Ötödik' },
{ number: 4, value: 'Negyedik' },
{ number: 3, value: 'Harmadik' },
{ number: 2, value: 'Második' },
{ number: 1, value: 'Első' },
{ number: 0, value: 'Nulladik' },
],
ordinalExactWordsMapping: [{ number: 100, value: 'Századik' }],
fractionDenominatorMapping: {
1: { singular: 'Tized', plural: 'Tized' },
2: { singular: 'Század', plural: 'Század' },
3: { singular: 'Ezred', plural: 'Ezred' },
4: { singular: 'Tízezred', plural: 'Tízezred' },
5: { singular: 'Százezred', plural: 'Százezred' },
6: { singular: 'Milliomod', plural: 'Milliomod' },
},
};
}
exports.default = Locale;
/**
* ToWords class pre-configured for this locale.
* This is a lightweight version that only bundles this specific locale.
*
* @example
* import { ToWords } from 'to-words/hu-HU';
* const tw = new ToWords();
* tw.convert(1234);
*/
class ToWords extends ToWordsCore_js_1.ToWordsCore {
constructor(options = {}) {
super(options);
this.setLocale(Locale);
}
}
exports.ToWords = ToWords;
// Module-level singleton — reused across calls to avoid per-call instance creation
const instance = new ToWords();
/**
* Convert a number to words for this locale (functional style).
*/
function toWords(number, options) {
return instance.convert(number, options);
}
/**
* Convert a number to ordinal words for this locale (functional style).
*/
function toOrdinal(number, options) {
return instance.toOrdinal(number, options);
}
/**
* Convert a number to currency words for this locale (functional style).
* Shorthand for toWords(number, { currency: true, ...options }).
*/
function toCurrency(number, options) {
return instance.convert(number, { ...options, currency: true });
}