UNPKG

to-words

Version:

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

166 lines (165 loc) 6.62 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: 'eiro', plural: 'eiro', symbol: '€', fractionalUnit: { name: 'cents', plural: 'centi', symbol: '', }, }, texts: { and: 'un', minus: 'mīnus', only: '', point: 'komats', }, numberWordsMapping: [ { number: 1000000000000000, value: 'kvadriljon' }, { number: 1000000000000, value: 'triljon' }, { number: 1000000000, value: 'miljard' }, { number: 1000000, value: 'miljoni', singularValue: 'miljons' }, { number: 1000, value: 'tūkstoši', singularValue: 'tūkstotis' }, { number: 900, value: 'deviņi simti' }, { number: 800, value: 'astoņi simti' }, { number: 700, value: 'septiņi simti' }, { number: 600, value: 'seši simti' }, { number: 500, value: 'pieci simti' }, { number: 400, value: 'četri simti' }, { number: 300, value: 'trīs simti' }, { number: 200, value: 'divi simti' }, { number: 100, value: 'simtu' }, { number: 90, value: 'deviņdesmit' }, { number: 80, value: 'astoņdesmit' }, { number: 70, value: 'septiņdesmit' }, { number: 60, value: 'sešdesmit' }, { number: 50, value: 'piecdesmit' }, { number: 40, value: 'četrdesmit' }, { number: 30, value: 'trīsdesmit' }, { number: 20, value: 'divdesmit' }, { number: 19, value: 'deviņpadsmit' }, { number: 18, value: 'astoņpadsmit' }, { number: 17, value: 'septiņpadsmit' }, { number: 16, value: 'sešpadsmit' }, { number: 15, value: 'piecpadsmit' }, { number: 14, value: 'četrpadsmit' }, { number: 13, value: 'trīspadsmit' }, { number: 12, value: 'divpadsmit' }, { number: 11, value: 'vienpadsmit' }, { number: 10, value: 'desmit' }, { number: 9, value: 'deviņi' }, { number: 8, value: 'astoņi' }, { number: 7, value: 'septiņi' }, { number: 6, value: 'seši' }, { number: 5, value: 'pieci' }, { number: 4, value: 'četri' }, { number: 3, value: 'trīs' }, { number: 2, value: 'divi', feminineValue: 'divas' }, { number: 1, value: 'viens', feminineValue: 'viena' }, { number: 0, value: 'nulle' }, ], ordinalWordsMapping: [ { number: 1000000000, value: 'miljardais' }, { number: 1000000, value: 'miljonais' }, { number: 1000, value: 'tūkstošais' }, { number: 100, value: 'simtais' }, { number: 90, value: 'deviņdesmitais' }, { number: 80, value: 'astoņdesmitais' }, { number: 70, value: 'septiņdesmitais' }, { number: 60, value: 'sešdesmitais' }, { number: 50, value: 'piecdesmitais' }, { number: 40, value: 'četrdesmitais' }, { number: 30, value: 'trīsdesmitais' }, { number: 20, value: 'divdesmitais' }, { number: 19, value: 'deviņpadsmitais' }, { number: 18, value: 'astoņpadsmitais' }, { number: 17, value: 'septiņpadsmitais' }, { number: 16, value: 'sešpadsmitais' }, { number: 15, value: 'piecpadsmitais' }, { number: 14, value: 'četrpadsmitais' }, { number: 13, value: 'trīspadsmitais' }, { number: 12, value: 'divpadsmitais' }, { number: 11, value: 'vienpadsmitais' }, { number: 10, value: 'desmitais' }, { number: 9, value: 'devītais' }, { number: 8, value: 'astotais' }, { number: 7, value: 'septītais' }, { number: 6, value: 'sestais' }, { number: 5, value: 'piektais' }, { number: 4, value: 'ceturtais' }, { number: 3, value: 'trešais' }, { number: 2, value: 'otrais' }, { number: 1, value: 'pirmais' }, { number: 0, value: 'nulltais' }, ], ignoreOneForWords: [ 'simtu', 'divi simti', 'trīs simti', 'četri simti', 'pieci simti', 'seši simti', 'septiņi simti', 'astoņi simti', 'deviņi simti', ], exactWordsMapping: [{ number: 100, value: 'Simtu' }], pluralMark: 'i', pluralWords: ['kvadriljon', 'triljon', 'miljard'], fractionDenominatorMapping: { 1: { singular: 'Desmitdaļa', plural: 'Desmitdaļas' }, 2: { singular: 'Simtdaļa', plural: 'Simtdaļas' }, 3: { singular: 'Tūkstošdaļa', plural: 'Tūkstošdaļas' }, 4: { singular: 'Desmittūkstošdaļa', plural: 'Desmittūkstošdaļas' }, 5: { singular: 'Simttūkstošdaļa', plural: 'Simttūkstošdaļas' }, 6: { singular: 'Miljonsdaļa', plural: 'Miljonsdaļas' }, }, }; } 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/lv-LV'; * 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 }); }