UNPKG

to-words

Version:

Convert numbers to words in 132 locales with currency, ordinal, and BigInt support (TypeScript, ESM/CJS/UMD).

247 lines (246 loc) 10.1 kB
"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: 'Euro', plural: 'Euro', singular: 'Euro', symbol: '€', fractionalUnit: { name: 'Centesimo', plural: 'Centesimi', singular: 'Centesimo', symbol: 'c', }, }, texts: { and: 'E', minus: 'Meno', only: '', point: 'Virgola', }, numberWordsMapping: [ { number: 1000000000000000, value: 'Biliardo' }, { number: 1000000000000, value: 'Bilione' }, { number: 1000000000, value: 'Miliardo' }, { number: 1000000, value: 'Milione' }, { number: 1000, value: 'Mila' }, { number: 100, value: 'Cento' }, { number: 99, value: 'Novantanove' }, { number: 98, value: 'Novantotto' }, { number: 97, value: 'Novantasette' }, { number: 96, value: 'Novantasei' }, { number: 95, value: 'Novantacinque' }, { number: 94, value: 'Novantaquattro' }, { number: 93, value: 'Novantatré' }, { number: 92, value: 'Novantadue' }, { number: 91, value: 'Novantuno' }, { number: 90, value: 'Novanta' }, { number: 89, value: 'Ottantanove' }, { number: 88, value: 'Ottantotto' }, { number: 87, value: 'Ottantasette' }, { number: 86, value: 'Ottantasei' }, { number: 85, value: 'Ottantacinque' }, { number: 84, value: 'Ottantaquattro' }, { number: 83, value: 'Ottantatré' }, { number: 82, value: 'Ottantadue' }, { number: 81, value: 'Ottantuno' }, { number: 80, value: 'Ottanta' }, { number: 79, value: 'Settantanove' }, { number: 78, value: 'Settantotto' }, { number: 77, value: 'Settantasette' }, { number: 76, value: 'Settantasei' }, { number: 75, value: 'Settantacinque' }, { number: 74, value: 'Settantaquattro' }, { number: 73, value: 'Settantatré' }, { number: 72, value: 'Settantadue' }, { number: 71, value: 'Settantuno' }, { number: 70, value: 'Settanta' }, { number: 69, value: 'Sessantanove' }, { number: 68, value: 'Sessantotto' }, { number: 67, value: 'Sessantasette' }, { number: 66, value: 'Sessantasei' }, { number: 65, value: 'Sessantacinque' }, { number: 64, value: 'Sessantaquattro' }, { number: 63, value: 'Sessantatré' }, { number: 62, value: 'Sessantadue' }, { number: 61, value: 'Sessantuno' }, { number: 60, value: 'Sessanta' }, { number: 59, value: 'Cinquantanove' }, { number: 58, value: 'Cinquantotto' }, { number: 57, value: 'Cinquantasette' }, { number: 56, value: 'Cinquantasei' }, { number: 55, value: 'Cinquantacinque' }, { number: 54, value: 'Cinquantaquattro' }, { number: 53, value: 'Cinquantatré' }, { number: 52, value: 'Cinquantadue' }, { number: 51, value: 'Cinquantuno' }, { number: 50, value: 'Cinquanta' }, { number: 49, value: 'Quarantanove' }, { number: 48, value: 'Quarantotto' }, { number: 47, value: 'Quarantasette' }, { number: 46, value: 'Quarantasei' }, { number: 45, value: 'Quarantacinque' }, { number: 44, value: 'Quarantaquattro' }, { number: 43, value: 'Quarantatré' }, { number: 42, value: 'Quarantadue' }, { number: 41, value: 'Quarantuno' }, { number: 40, value: 'Quaranta' }, { number: 39, value: 'Trentanove' }, { number: 38, value: 'Trentotto' }, { number: 37, value: 'Trentasette' }, { number: 36, value: 'Trentasei' }, { number: 35, value: 'Trentacinque' }, { number: 34, value: 'Trentaquattro' }, { number: 33, value: 'Trentatré' }, { number: 32, value: 'Trentadue' }, { number: 31, value: 'Trentuno' }, { number: 30, value: 'Trenta' }, { number: 29, value: 'Ventinove' }, { number: 28, value: 'Ventotto' }, { number: 27, value: 'Ventisette' }, { number: 26, value: 'Ventisei' }, { number: 25, value: 'Venticinque' }, { number: 24, value: 'Ventiquattro' }, { number: 23, value: 'Ventitré' }, { number: 22, value: 'Ventidue' }, { number: 21, value: 'Ventuno' }, { number: 20, value: 'Venti' }, { number: 19, value: 'Diciannove' }, { number: 18, value: 'Diciotto' }, { number: 17, value: 'Diciassette' }, { number: 16, value: 'Sedici' }, { number: 15, value: 'Quindici' }, { number: 14, value: 'Quattordici' }, { number: 13, value: 'Tredici' }, { number: 12, value: 'Dodici' }, { number: 11, value: 'Undici' }, { number: 10, value: 'Dieci' }, { number: 9, value: 'Nove' }, { number: 8, value: 'Otto' }, { number: 7, value: 'Sette' }, { number: 6, value: 'Sei' }, { number: 5, value: 'Cinque' }, { number: 4, value: 'Quattro' }, { number: 3, value: 'Tre' }, { number: 2, value: 'Due' }, { number: 1, value: 'Uno' }, { number: 0, value: 'Zero' }, ], exactWordsMapping: [ { number: 1000, value: 'Mille' }, { number: 100, value: 'Cento' }, { number: 1, value: ['Un', 'Uno'] }, ], ignoreOneForWords: ['Cento', 'Mila'], pluralForms: { 1000000: { dual: 'Milioni', paucal: 'Milioni', plural: 'Milioni', }, 1000000000: { dual: 'Miliardi', paucal: 'Miliardi', plural: 'Miliardi', }, 1000000000000: { dual: 'Bilioni', paucal: 'Bilioni', plural: 'Bilioni', }, 1000000000000000: { dual: 'Biliardi', paucal: 'Biliardi', plural: 'Biliardi', }, }, ordinalWordsMapping: [ { number: 1000000000000, value: 'Bilionesimo' }, { number: 1000000000, value: 'Miliardesimo' }, { number: 1000000, value: 'Milionesimo' }, { number: 1000, value: 'Millesimo' }, { number: 100, value: 'Centesimo' }, { number: 90, value: 'Novantesimo' }, { number: 80, value: 'Ottantesimo' }, { number: 70, value: 'Settantesimo' }, { number: 60, value: 'Sessantesimo' }, { number: 50, value: 'Cinquantesimo' }, { number: 40, value: 'Quarantesimo' }, { number: 30, value: 'Trentesimo' }, { number: 20, value: 'Ventesimo' }, { number: 19, value: 'Diciannovesimo' }, { number: 18, value: 'Diciottesimo' }, { number: 17, value: 'Diciassettesimo' }, { number: 16, value: 'Sedicesimo' }, { number: 15, value: 'Quindicesimo' }, { number: 14, value: 'Quattordicesimo' }, { number: 13, value: 'Tredicesimo' }, { number: 12, value: 'Dodicesimo' }, { number: 11, value: 'Undicesimo' }, { number: 10, value: 'Decimo' }, { number: 9, value: 'Nono' }, { number: 8, value: 'Ottavo' }, { number: 7, value: 'Settimo' }, { number: 6, value: 'Sesto' }, { number: 5, value: 'Quinto' }, { number: 4, value: 'Quarto' }, { number: 3, value: 'Terzo' }, { number: 2, value: 'Secondo' }, { number: 1, value: 'Primo' }, { number: 0, value: 'Zero' }, ], fractionDenominatorMapping: { 1: { singular: 'Decimo', plural: 'Decimi' }, 2: { singular: 'Centesimo', plural: 'Centesimi' }, 3: { singular: 'Millesimo', plural: 'Millesimi' }, 4: { singular: 'Diecimillesimo', plural: 'Diecimillesimi' }, 5: { singular: 'Centomillesimo', plural: 'Centomillesimi' }, 6: { singular: 'Milionesimo', plural: 'Milionesimi' }, }, }; } 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/it-IT'; * 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 }); }