UNPKG

to-words

Version:

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

176 lines (175 loc) 6.89 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: 'تومان', plural: '', singular: '', symbol: 'تومان', fractionalUnit: { name: '', singular: 'ریال', plural: 'تومان', symbol: '', }, }, texts: { and: 'و', minus: 'منفی', only: '', point: 'و', }, numberWordsMapping: [ { number: 1000000000000000, value: 'کوادریلیون' }, { number: 1000000000000, value: 'تیلیارد' }, { number: 1000000000, value: 'میلیارد' }, { number: 1000000, value: 'میلیون' }, { number: 1000, value: 'هزار' }, { number: 900, value: 'نهصد' }, { number: 800, value: 'هشتصد' }, { number: 700, value: 'هفتصد' }, { number: 600, value: 'ششصد' }, { number: 500, value: 'پانصد' }, { number: 400, value: 'چهارصد' }, { number: 300, value: 'سیصد' }, { number: 200, value: 'دویست' }, { number: 100, value: 'صد' }, { number: 90, value: 'نود' }, { number: 80, value: 'هشتاد' }, { number: 70, value: 'هفتاد' }, { number: 60, value: 'شصت' }, { number: 50, value: 'پنجاه' }, { number: 40, value: 'چهل' }, { number: 30, value: 'سی' }, { number: 20, value: 'بیست' }, { number: 19, value: 'نوزده' }, { number: 18, value: 'هجده' }, { number: 17, value: 'هفده' }, { number: 16, value: 'شانزده' }, { number: 15, value: 'پانزده' }, { number: 14, value: 'چهارده' }, { number: 13, value: 'سیزده' }, { number: 12, value: 'دوازده' }, { number: 11, value: 'یازده' }, { number: 10, value: 'ده' }, { number: 9, value: 'نه' }, { number: 8, value: 'هشت' }, { number: 7, value: 'هفت' }, { number: 6, value: 'شش' }, { number: 5, value: 'پنج' }, { number: 4, value: 'چهار' }, { number: 3, value: 'سه' }, { number: 2, value: 'دو' }, { number: 1, value: 'یک' }, { number: 0, value: 'صفر' }, ], ordinalWordsMapping: [ { number: 1000000000, value: 'میلیاردم' }, { number: 1000000, value: 'میلیونم' }, { number: 1000, value: 'هزارم' }, { number: 900, value: 'نهصدم' }, { number: 800, value: 'هشتصدم' }, { number: 700, value: 'هفتصدم' }, { number: 600, value: 'ششصدم' }, { number: 500, value: 'پانصدم' }, { number: 400, value: 'چهارصدم' }, { number: 300, value: 'سیصدم' }, { number: 200, value: 'دویستم' }, { number: 100, value: 'صدم' }, { number: 90, value: 'نودم' }, { number: 80, value: 'هشتادم' }, { number: 70, value: 'هفتادم' }, { number: 60, value: 'شصتم' }, { number: 50, value: 'پنجاهم' }, { number: 40, value: 'چهلم' }, { number: 30, value: 'سی‌ام' }, { number: 20, value: 'بیستم' }, { number: 19, value: 'نوزدهم' }, { number: 18, value: 'هجدهم' }, { number: 17, value: 'هفدهم' }, { number: 16, value: 'شانزدهم' }, { number: 15, value: 'پانزدهم' }, { number: 14, value: 'چهاردهم' }, { number: 13, value: 'سیزدهم' }, { number: 12, value: 'دوازدهم' }, { number: 11, value: 'یازدهم' }, { number: 10, value: 'دهم' }, { number: 9, value: 'نهم' }, { number: 8, value: 'هشتم' }, { number: 7, value: 'هفتم' }, { number: 6, value: 'ششم' }, { number: 5, value: 'پنجم' }, { number: 4, value: 'چهارم' }, { number: 3, value: 'سوم' }, { number: 2, value: 'دوم' }, { number: 1, value: 'اول' }, { number: 0, value: 'صفرم' }, ], namedLessThan1000: true, splitWord: 'و', ignoreZeroInDecimals: true, decimalLengthWordMapping: { 1: 'دهم', 2: 'صدم', 3: 'هزارم', 4: 'ده‌هزارم', 5: 'صد‌هزارم', 6: 'میلیونیوم', 7: 'ده‌میلیونیوم', 8: 'صد‌میلیونیوم', 9: 'میلیاردیوم', }, fractionDenominatorMapping: { 1: { singular: 'دهم', plural: 'دهم' }, 2: { singular: 'صدم', plural: 'صدم' }, 3: { singular: 'هزارم', plural: 'هزارم' }, 4: { singular: 'ده‌هزارم', plural: 'ده‌هزارم' }, 5: { singular: 'صدهزارم', plural: 'صدهزارم' }, 6: { singular: 'میلیونم', plural: 'میلیونم' }, }, }; } 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/fa-IR'; * 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 }); }