num-beauty
Version:
An ultra lightweight module for formatting numbers into human-friendly strings
1 lines • 3.5 kB
JavaScript
import{commonConfig}from"./common.js";import*as enUS from"./en-US.js";const localeRegistry=new Map;import*as ptBR from"./pt-BR.js";localeRegistry.set("en-US",{masks:{...commonConfig.masks,...enUS.locale.masks},currencies:{...commonConfig.currencies,...enUS.locale.currencies},units:enUS.locale.units,speech:enUS.locale.speech}),localeRegistry.set("pt-BR",{masks:{...commonConfig.masks,...ptBR.locale.masks},currencies:{...commonConfig.currencies,...ptBR.locale.currencies},units:ptBR.locale.units,speech:ptBR.locale.speech});export function registerLocale(e,a){localeRegistry.set(e,{masks:{...commonConfig.masks,...a.masks||{}},currencies:{...commonConfig.currencies,...a.currencies||{}},units:a.units||[["",""],["k","k"],["M","M"],["B","B"],["T","T"]],speech:a.speech})}export function hasLocale(e){return localeRegistry.has(e)}export function getLocale(e){return localeRegistry.get(e)}export function getRegisteredLocales(){return Array.from(localeRegistry.keys())}export const locales=new Proxy({},{get(e,a){const n=localeRegistry.get(a);if(!n)throw new Error(`Locale '${a}' not found. Available locales: ${Array.from(localeRegistry.keys()).join(", ")}`);return n},has:(e,a)=>localeRegistry.has(a),ownKeys:()=>Array.from(localeRegistry.keys()),getOwnPropertyDescriptor(e,a){if(localeRegistry.has(a))return{enumerable:!0,configurable:!0}}});export const supportedLocales=[{code:"en-US",name:"English (US)"},{code:"pt-BR",name:"Português (Brasil)"},{code:"es-ES",name:"Español (ES)"},{code:"de-DE",name:"Deutsch (DE)"},{code:"fr-FR",name:"Français (FR)"},{code:"ja-JP",name:"日本語 (Japanese)"},{code:"zh-CN",name:"中文 (简体)"},{code:"ko-KR",name:"한국어 (Korean)"},{code:"hi-IN",name:"हिन्दी (Hindi)"},{code:"ar-SA",name:"العربية (Arabic)"},{code:"ru-RU",name:"Русский (Russian)"},{code:"it-IT",name:"Italiano (Italian)"},{code:"nl-NL",name:"Nederlands (Dutch)"},{code:"pl-PL",name:"Polski (Polish)"},{code:"tr-TR",name:"Türkçe (Turkish)"},{code:"sv-SE",name:"Svenska (Swedish)"},{code:"da-DK",name:"Dansk (Danish)"},{code:"nb-NO",name:"Norsk bokmål (Norwegian)"},{code:"fi-FI",name:"Suomi (Finnish)"},{code:"cs-CZ",name:"Čeština (Czech)"},{code:"hu-HU",name:"Magyar (Hungarian)"},{code:"ro-RO",name:"Română (Romanian)"},{code:"sk-SK",name:"Slovenčina (Slovak)"},{code:"bg-BG",name:"Български (Bulgarian)"},{code:"hr-HR",name:"Hrvatski (Croatian)"},{code:"el-GR",name:"Ελληνικά (Greek)"},{code:"uk-UA",name:"Українська (Ukrainian)"},{code:"sl-SI",name:"Slovenščina (Slovenian)"},{code:"lt-LT",name:"Lietuvių (Lithuanian)"},{code:"lv-LV",name:"Latviešu (Latvian)"},{code:"et-EE",name:"Eesti (Estonian)"},{code:"sr-RS",name:"Српски (Serbian)"},{code:"vi-VN",name:"Tiếng Việt (Vietnamese)"},{code:"th-TH",name:"ไทย (Thai)"},{code:"id-ID",name:"Bahasa Indonesia (Indonesian)"},{code:"ms-MY",name:"Bahasa Melayu (Malay)"},{code:"pt-PT",name:"Português (Portugal)"},{code:"ca-ES",name:"Català (Catalan)"},{code:"is-IS",name:"Íslenska (Icelandic)"},{code:"he-IL",name:"עברית (Hebrew)"},{code:"ga-IE",name:"Gaeilge (Irish)"},{code:"en-ZA",name:"English (South Africa)"},{code:"en-NG",name:"English (Nigeria)"},{code:"en-AU",name:"English (Australia)"},{code:"en-NZ",name:"English (New Zealand)"},{code:"mi-NZ",name:"Māori (New Zealand)"},{code:"ar-EG",name:"العربية (Egypt)"},{code:"en-KE",name:"English (Kenya)"},{code:"sw-KE",name:"Kiswahili (Kenya)"},{code:"pt-AO",name:"Português (Angola)"}];