UNPKG

to-words

Version:

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

208 lines (207 loc) 7.7 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: 'Eur', singular: 'Euro', symbol: '€', fractionalUnit: { name: 'Cent', singular: 'Cent', plural: 'Centov', symbol: 'c', }, }, texts: { and: 'A', minus: 'Mínus', only: 'Len', point: 'Celá', }, numberWordsMapping: [ { number: 1000000000000000, value: 'Biliarda' }, { number: 1000000000000, value: 'Bilión' }, { number: 1000000000, value: 'Miliarda' }, { number: 1000000, value: 'Milión' }, { number: 1000, value: 'Tisíc', singularValue: 'Tisíc' }, { number: 900, value: 'Deväťsto' }, { number: 800, value: 'Osemsto' }, { number: 700, value: 'Sedemsto' }, { number: 600, value: 'Šesťsto' }, { number: 500, value: 'Päťsto' }, { number: 400, value: 'Štyristo' }, { number: 300, value: 'Tristo' }, { number: 200, value: 'Dvesto' }, { number: 100, value: 'Sto' }, { number: 90, value: 'Deväťdesiat' }, { number: 80, value: 'Osemdesiat' }, { number: 70, value: 'Sedemdesiat' }, { number: 60, value: 'Šesťdesiat' }, { number: 50, value: 'Päťdesiat' }, { number: 40, value: 'Štyridsať' }, { number: 30, value: 'Tridsať' }, { number: 20, value: 'Dvadsať' }, { number: 19, value: 'Devätnásť' }, { number: 18, value: 'Osemnásť' }, { number: 17, value: 'Sedemnásť' }, { number: 16, value: 'Šestnásť' }, { number: 15, value: 'Pätnásť' }, { number: 14, value: 'Štrnásť' }, { number: 13, value: 'Trinásť' }, { number: 12, value: 'Dvanásť' }, { number: 11, value: 'Jedenásť' }, { number: 10, value: 'Desať' }, { number: 9, value: 'Deväť' }, { number: 8, value: 'Osem' }, { number: 7, value: 'Sedem' }, { number: 6, value: 'Šesť' }, { number: 5, value: 'Päť' }, { number: 4, value: 'Štyri' }, { number: 3, value: 'Tri' }, { number: 2, value: 'Dva', feminineValue: 'Dve' }, { number: 1, value: 'Jeden', feminineValue: 'Jedna' }, { number: 0, value: 'Nula' }, ], exactWordsMapping: [{ number: 100, value: 'Sto' }], pluralForms: { 1000: { paucal: 'Tisíce', plural: 'Tisíc', }, 1000000: { paucal: 'Milióny', plural: 'Miliónov', }, 1000000000: { paucal: 'Miliardy', plural: 'Miliárd', }, 1000000000000: { paucal: 'Bilióny', plural: 'Biliónov', }, 1000000000000000: { paucal: 'Biliardy', plural: 'Biliárd', }, }, paucalConfig: { min: 2, max: 4, }, ignoreOneForWords: [ 'Sto', 'Dvesto', 'Tristo', 'Štyristo', 'Päťsto', 'Šesťsto', 'Sedemsto', 'Osemsto', 'Deväťsto', 'Tisíc', 'Milión', 'Miliarda', 'Bilión', 'Biliarda', ], ordinalWordsMapping: [ { number: 1000000000000000, value: 'Biliardtý' }, { number: 1000000000000, value: 'Bilióntý' }, { number: 1000000000, value: 'Miliardtý' }, { number: 1000000, value: 'Milióntý' }, { number: 1000, value: 'Tisíci' }, { number: 900, value: 'Deväťstý' }, { number: 800, value: 'Osemstý' }, { number: 700, value: 'Sedemstý' }, { number: 600, value: 'Šesťstý' }, { number: 500, value: 'Päťstý' }, { number: 400, value: 'Štyristý' }, { number: 300, value: 'Tristý' }, { number: 200, value: 'Dvestý' }, { number: 100, value: 'Stý' }, { number: 90, value: 'Deväťdesiaty' }, { number: 80, value: 'Osemdesiaty' }, { number: 70, value: 'Sedemdesiaty' }, { number: 60, value: 'Šesťdesiaty' }, { number: 50, value: 'Päťdesiaty' }, { number: 40, value: 'Štyridsaťty' }, { number: 30, value: 'Tridsiaty' }, { number: 20, value: 'Dvadsiaty' }, { number: 19, value: 'Devätnásty' }, { number: 18, value: 'Osemnásty' }, { number: 17, value: 'Sedemnásty' }, { number: 16, value: 'Šestnásty' }, { number: 15, value: 'Pätnásty' }, { number: 14, value: 'Štrnásty' }, { number: 13, value: 'Trinásty' }, { number: 12, value: 'Dvanásty' }, { number: 11, value: 'Jedenásty' }, { number: 10, value: 'Desiaty' }, { number: 9, value: 'Deviaty' }, { number: 8, value: 'Ôsmy' }, { number: 7, value: 'Siedmy' }, { number: 6, value: 'Šiesty' }, { number: 5, value: 'Piaty' }, { number: 4, value: 'Štvrtý' }, { number: 3, value: 'Tretí' }, { number: 2, value: 'Druhý' }, { number: 1, value: 'Prvý' }, { number: 0, value: 'Nultý' }, ], ordinalExactWordsMapping: [{ number: 100, value: 'Stý' }], fractionDenominatorMapping: { 1: { singular: 'Desatina', plural: 'Desatiny' }, 2: { singular: 'Stotina', plural: 'Stotiny' }, 3: { singular: 'Tisícina', plural: 'Tisíciny' }, 4: { singular: 'Desaťtisícina', plural: 'Desaťtisíciny' }, 5: { singular: 'Stotisícina', plural: 'Stotisíciny' }, 6: { singular: 'Miliontina', plural: 'Miliontiny' }, }, }; } 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/sk-SK'; * 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 }); }