Locale Capability Manifest โ
This reference is generated from the locale configurations shipped by the package. It is checked in CI, so the documentation and runtime manifest cannot silently drift apart.
136 locales ยท 136 ordinal ยท 100 fraction style ยท 37 cardinal gender ยท 8 ordinal gender ยท 2 formal numeral locales
Programmatic Usage โ
import { getLocaleCapabilities, getLocaleMetadata, isSupportedLocale, LOCALE_MANIFEST } from 'to-words/manifest';
isSupportedLocale('fr-FR'); // true
getLocaleCapabilities('fr-FR')?.decimals.fraction; // true
getLocaleMetadata('hi-IN')?.numbering.grouping; // [3, 2]
getLocaleMetadata('en-US')?.range.largestNamedMagnitude; // exact decimal string
getLocaleMetadata('en-US')?.range.maximumSupported.cardinal; // verified inclusive ceiling
LOCALE_MANIFEST['zh-CN'].capabilities.formal; // trueto-words/manifest is an opt-in entry point containing compact generated metadata. It does not load the locale conversion tables, so importing it does not change the conversion hot path or per-locale bundles.
Locale authors can validate custom configurations without importing the locale registry:
import { assertLocaleConfig, deriveLocaleCapabilities, deriveLocaleMetadata } from 'to-words/locale-contract';
assertLocaleConfig(customLocale.config, 'my-locale');
const capabilities = deriveLocaleCapabilities(customLocale.config);
const metadata = deriveLocaleMetadata(customLocale.config);Capability Definitions โ
- Ordinal: the locale declares an ordinal mapping, suffix, or prefix.
- Gender: the locale declares explicit cardinal or ordinal gender forms. A dash means the option has no locale-specific form.
- Formal: the locale has an alternate formal/financial configuration.
- Fraction digits: supported decimal lengths for
decimalStyle: 'fraction'. Other lengths fall back to digit-style decimals. - Currency decimals: the default currency precision used for rounding and fractional units.
Cardinal, currency, and digit-style decimal conversion are part of every locale contract.
Numbering and Range Definitions โ
- Base thousand: every configured large unit is a power of 1,000. This structural family includes locales whose words are commonly described as either short scale or long scale.
- Indian: the configuration contains lakh (10^5) and crore (10^7) magnitudes; grouping proceeds 3 digits, then 2 digits.
- East Asian: the configuration contains 10^4 and 10^8 magnitudes; grouping proceeds in 4-digit units.
- Locale-specific: configured large units do not match one of the structural families above. Inspect
largeUnitExponentsfor the exact named powers of ten. - Largest named scale: the largest magnitude with an explicit word in the locale configuration.
- Maximum verified integer: the inclusive default ceiling for strict conversion. Cardinal, ordinal, and currency ceilings are exposed separately in the runtime manifest.
rangeMode: 'strict' is the v7 default and rejects values above the applicable verified ceiling with NumberOutOfRangeError. Use rangeMode: 'compose' to opt into the legacy recursive behavior, which reuses the largest configured scale without claiming that the resulting wording has been independently certified by native speakers.
All Locales โ
| Locale | Numbering system | Largest named scale | Maximum verified integer | Ordinal | Gender | Formal | Fraction digits | Currency decimals |
|---|---|---|---|---|---|---|---|---|
af-ZA | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
am-ET | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
ar-AE | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
ar-DZ | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
ar-EG | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
ar-IQ | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 3 |
ar-LB | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
ar-MA | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
ar-SA | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
ar-SD | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
ar-YE | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
as-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
az-AZ | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
be-BY | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
bg-BG | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
bn-BD | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
bn-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ca-ES | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
cs-CZ | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
da-DK | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
de-AT | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
de-CH | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
de-DE | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
el-GR | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-AE | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-AU | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-BD | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-CA | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-GB | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-GH | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-HK | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-IE | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-IQ | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 3 |
en-JM | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-KE | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-LK | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-MA | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-MM | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-MU | Indian | 10^63 | 10^65 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-MY | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-NG | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-NP | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-NZ | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-OM | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 3 |
en-PH | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-PK | Indian | 10^63 | 10^65 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-SA | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-SG | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-TT | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-TZ | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-UG | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-US | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-ZA | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
en-ZW | Base thousand | 10^63 | 10^66 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
es-AR | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
es-CL | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
es-CO | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
es-ES | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
es-MX | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
es-PE | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
es-US | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
es-VE | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal + ordinal | No | 1, 2, 3, 4, 5, 6 | 2 |
et-EE | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
fa-IR | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fi-FI | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
fil-PH | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
fr-BE | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-CA | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-CH | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-CI | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-CM | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-DZ | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-FR | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-MA | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-MG | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
fr-SA | Base thousand | 10^27 | 10^30 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
gu-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ha-NG | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
hbo-IL | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
he-IL | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
hi-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
hr-HR | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
hu-HU | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
id-ID | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ig-NG | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
is-IS | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
it-IT | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ja-JP | East Asian | 10^20 | 10^24 - 1 | Yes | โ | No | โ | 2 |
jv-ID | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
ka-GE | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
km-KH | Locale-specific | 10^12 | 10^15 - 1 | Yes | โ | No | โ | 2 |
kn-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ko-KR | East Asian | 10^20 | 10^24 - 1 | Yes | โ | No | โ | 2 |
lo-LA | Locale-specific | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
lt-LT | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | โ | 2 |
lv-LV | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
ml-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
mr-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ms-MY | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ms-SG | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
my-MM | Locale-specific | 10^12 | 10^15 - 1 | Yes | โ | No | โ | 2 |
nb-NO | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
ne-NP | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
nl-NL | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
nl-SR | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
or-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
pa-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
pl-PL | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
pt-AO | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
pt-BR | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
pt-MZ | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
pt-PT | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
ro-RO | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
ru-RU | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
si-LK | Locale-specific | 10^12 | 10^15 - 1 | Yes | โ | No | โ | 2 |
sk-SK | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
sl-SI | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
sq-AL | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
sr-RS | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
sv-SE | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
sw-KE | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
sw-TZ | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
ta-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
te-IN | Indian | 10^17 | 10^19 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
th-TH | Locale-specific | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
tr-TR | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
uk-UA | Base thousand | 10^15 | 10^18 - 1 | Yes | Cardinal | No | 1, 2, 3, 4, 5, 6 | 2 |
ur-PK | Indian | 10^7 | 98765432101234 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
uz-UZ | Base thousand | 10^12 | 10^15 - 1 | Yes | โ | No | โ | 2 |
vi-VN | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | 1, 2, 3, 4, 5, 6 | 2 |
yo-NG | Base thousand | 10^15 | 10^18 - 1 | Yes | โ | No | โ | 2 |
yue-HK | East Asian | 10^20 | 10^24 - 1 | Yes | โ | No | โ | 2 |
zh-CN | East Asian | 10^20 | 10^24 - 1 | Yes | โ | Yes | โ | 2 |
zh-TW | East Asian | 10^20 | 10^24 - 1 | Yes | โ | Yes | โ | 2 |
zu-ZA | Base thousand | 10^12 | 10^15 - 1 | Yes | โ | No | โ | 2 |