to-words
Version:
Convert numbers to words in 132 locales with currency, ordinal, and BigInt support (TypeScript, ESM/CJS/UMD).
150 lines (149 loc) • 6.57 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");
// Biblical Hebrew (Ancient Hebrew) number words
class Locale {
config = {
currency: {
name: 'שקל',
plural: 'שקלים',
singular: 'שקל',
symbol: '',
fractionalUnit: {
name: 'גרה',
plural: 'גרות',
singular: 'גרה',
symbol: '',
},
},
texts: {
and: 'ו',
minus: 'מינוס',
only: '',
point: 'נקודה',
},
numberWordsMapping: [
{ number: 1000000000000000, value: 'קואדריליון' },
{ number: 1000000000000, value: 'טריליון' },
{ number: 1000000000, value: 'מיליארד' },
{ number: 1000000, value: 'מיליון' },
{ number: 1000, 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: 'תשע עשרה', masculineValue: 'תשעה עשר' },
{ number: 18, value: 'שמנה עשרה', masculineValue: 'שמנה עשר' },
{ number: 17, value: 'שבע עשרה', masculineValue: 'שבעה עשר' },
{ number: 16, value: 'שש עשרה', masculineValue: 'ששה עשר' },
{ number: 15, value: 'חמש עשרה', masculineValue: 'חמשה עשר' },
{ number: 14, value: 'ארבע עשרה', masculineValue: 'ארבעה עשר' },
{ number: 13, value: 'שלש עשרה', masculineValue: 'שלשה עשר' },
{ number: 12, value: 'שתים עשרה', masculineValue: 'שנים עשר' },
{ number: 11, value: 'אחת עשרה', masculineValue: 'אחד עשר' },
{ number: 10, value: 'עשר', masculineValue: 'עשרה' },
{ number: 9, value: 'תשע', masculineValue: 'תשעה' },
{ number: 8, value: 'שמנה', masculineValue: 'שמנה' },
{ number: 7, value: 'שבע', masculineValue: 'שבעה' },
{ number: 6, value: 'שש', masculineValue: 'ששה' },
{ number: 5, value: 'חמש', masculineValue: 'חמשה' },
{ number: 4, value: 'ארבע', masculineValue: 'ארבעה' },
{ number: 3, value: 'שלש', masculineValue: 'שלשה' },
{ number: 2, value: 'שתים', masculineValue: 'שנים' },
{ number: 1, value: 'אחת', masculineValue: 'אחד' },
{ number: 0, value: 'אפס' },
],
exactWordsMapping: [
{ number: 2000, value: 'אלפים' },
{ number: 200, value: 'מאתים' },
],
ignoreOneForWords: ['אלף', 'מיליון', 'מיליארד', 'טריליון', 'קואדריליון'],
ordinalWordsMapping: [
{ number: 1000000000000000, value: 'הקואדריליון' },
{ number: 1000000000000, value: 'הטריליון' },
{ number: 1000000000, value: 'המיליארד' },
{ number: 1000000, value: 'המיליון' },
{ number: 1000, 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: 'האפס' },
],
ordinalExactWordsMapping: [
{ number: 2000, value: 'האלפים' },
{ number: 200, value: 'המאתים' },
],
};
}
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/hbo-IL';
* 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 });
}