Languages
Complete runtime registry
The generated capability matrix is maintained in language-coverage.md. The public registry accepts these base families:
Canonical code |
|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The 18 exact overlays are en_GB, en_IN, en_NG, en_US, es_CO, es_CR, es_GT, es_MX, es_NI, es_VE, fr_BE, fr_CH, fr_DZ, pt_BR, pt_PT, zh_CN, zh_HK, and zh_TW.
The 13 foundation families bg, el, et, eu, ka, ku, lb, ml, mr, ne, sq, sw, and ur provide reviewed plain-number rendering and safe Abbr2words registration. Foundation registration does not imply a bundled abbreviation lexicon or structured-number support.
Language support matrix
| ar | ara | ar_MSA | numeralform | ar | yes | reviewed | conservative | reviewed | caller-managed | fail closed for unreviewed domains |
| he | heb | he_IL | numeralform | he | yes | reviewed | conservative | reviewed | caller-managed | fail closed for unreviewed domains |
| kk | kaz | kk_KZ | numeralform | kk | yes | conservative | conservative | reviewed | caller-managed | fail closed for unreviewed domains |
This page is the canonical runtime support matrix for spokenform. It describes
implemented capabilities, not full parity with PolyNorm, benchmarks, or
kokorog2p.
Canonical code |
Accepted aliases |
Region forms |
Number renderer |
Abbreviation profile |
Plain numbers |
Decimals |
Quantities |
Currencies |
Dates and times |
Shared specialist sequences |
|---|---|---|---|---|---|---|---|---|---|---|
|
none |
none |
|
|
yes |
comma |
yes |
CZK |
reviewed, conservative time |
reviewed, conservative |
|
none |
|
|
|
yes |
comma |
yes |
EUR |
validated digital times and context-sensitive dates/ordinals |
legal, phone, percent, and other reviewed sequences |
|
none |
|
|
|
yes |
point |
yes |
reviewed |
reviewed |
reviewed, conservative |
|
none |
|
|
|
yes |
comma or point by locale |
yes |
reviewed |
reviewed |
reviewed, conservative |
|
none |
|
|
|
yes |
comma |
yes |
reviewed |
reviewed |
reviewed, conservative |
|
none |
|
|
|
yes |
comma |
yes |
reviewed |
reviewed |
reviewed, conservative |
|
|
|
|
|
yes |
reviewed |
yes |
JPY |
reviewed |
conservative |
|
none |
|
|
|
yes |
reviewed |
yes |
KRW |
reviewed |
conservative |
|
none |
|
|
|
yes |
comma |
yes |
EUR |
reviewed |
reviewed, conservative |
|
|
|
|
|
yes |
comma |
yes |
SEK / |
caller-managed dates and digital times |
fail closed for unreviewed domains |
|
none |
|
|
|
yes |
comma decimal; dot or space-family grouping |
reviewed |
VND / |
caller-managed dates and digital times |
fail closed for unreviewed domains |
|
none |
|
|
|
yes |
point decimal; comma or space-family grouping |
reviewed |
THB / |
caller-managed dates, eras, and digital times |
fail closed for unreviewed domains |
|
|
|
|
|
yes |
comma decimal; space/NBSP/NNBSP grouping |
reviewed, explicit numeral government |
caller-managed |
caller-managed dates and digital times |
fail closed for unreviewed domains |
|
none |
none |
|
|
yes |
reviewed |
yes |
conservative |
reviewed |
conservative |
German scope
German structured normalization validates Gregorian dates and digital times, including
complete-word handling for Uhr, and applies bounded contextual inflection to dates
and ordinals. German owns conservative contextual year speech through the shared
render_year() policy, reviewed Euro major/minor realization with explicit Cent
labels, and exact excess-fraction preservation. Date, text-date, hyphen-date, and
time candidates validate full lexical boundaries and reject identifier adjacency.
German § and conservative §§ paragraph references, percentages, and contextual
phone sequences are owned by typed structured recognizers and remain subject to
precedence, protection, and recognition-domain policy. Ordinary abbreviations,
including the reviewed vgl., i.d.R., o.ä., and u.U. forms, remain owned by
abbr2words; they are not duplicated in this locale. Currencies without reviewed
minor-unit grammar use a safe exact decimal fallback or fail closed.
German also recognizes reviewed source-letter technical labels such as IP, IBAN, and LTS through abbr2words. With normalize_literals=True, German URL, e-mail, and FTP promotion uses localized Doppelpunkt, Schrägstrich, and Punkt words, lexical hostname and path labels, and the reviewed de, org, net, and com TLD policy. Contextual Roman year and monarch forms, redundant century notation, explicit hour-minute durations, and semantic versions with preserved leading-zero components are handled by Spokenform’s structured recognizers.
Swedish scope
Swedish uses comma decimal punctuation and space, NBSP, or NNBSP grouping.
Plain numbers, reviewed quantities, Celsius and Fahrenheit temperatures, and
Swedish krona amounts are supported. Swedish quantity grammar uses the reviewed
abbr2words canonical unit identities and explicit singular and plural forms.
sv-SE and sv_SE normalize to the registered base key sv. swe is accepted as a compatibility alias, and
swe-SE also normalizes to sv.
Swedish digital clock bodies and numeric dates remain caller-managed in this release, although valid shapes are protected from generic number rewriting. Arbitrary initialisms and unreviewed address, legal, phone, ISBN, music, biology, chemistry, math, and range semantics fail closed. Supported languages must not borrow English fallback vocabulary solely because a shared semantic renderer lacks a locale entry.
Vietnamese scope
Vietnamese uses comma decimal punctuation. Spokenform accepts CLDR-style dot grouping and regular, non-breaking, or narrow non-breaking space grouping; fractional digits are rendered digitwise to preserve written precision. Reviewed quantities, temperatures, and VND/₫ identities come from abbr2words, while Numeralform owns non-Chinese numeric realization and Spokenform owns source mapping. vi-VN and vi_VN normalize to the regional form and resolve to the Vietnamese Numeralform base locale. Dates, digital times, ordinals, arbitrary initialisms, and unreviewed specialist sequence domains remain caller-managed or fail closed.
Thai scope
Thai accepts th, th_TH, and th-TH; regional forms route to Numeralform and abbr2words. No tha alias is claimed. The CLDR-style point decimal marker and comma, regular-space, NBSP, or NNBSP grouping are supported, with Latin digits as the default and Thai digits also accepted.
Reviewed quantities, temperatures, and THB/฿ identities come from abbr2words; Spokenform owns Thai numeric realization and source mapping. Reviewed titles, month and era abbreviations, and the น. clock marker may expand, but date and year bodies, digital times, numeric-only dates, and eras remain caller-managed. Thai ordinals, ranges, and unreviewed specialist sequences remain literal or fail closed, with no English semantic fallback.
Russian scope
Russian accepts ru, ru_RU, and ru-RU; rus, rus_RU, and rus-RU are compatibility aliases. Regional forms route to the Russian Numeralform and abbr2words locales.
Russian plain numbers use comma decimal punctuation, regular spaces, NBSP, or NNBSP grouping, with visible fractional digits spoken digitwise. Reviewed abbr2words canonical unit identities are rendered by Spokenform using explicit CLDR one, few, many, and other noun forms. Counted feminine units use gender-aware одна and две forms, and output is limited to nominative measurement phrases.
Dates, digital times, year abbreviations, phone-number speech, and specialist sequences remain caller-managed or fail closed. Currency is caller-managed, including RUB, until abbr2words provides a reviewed Russian ruble identity. Unknown future Russian canonical unit IDs are preserved until a matching Spokenform grammar entry is reviewed.
Spokenform does not use vn as a language alias.
Identifier rules
Canonical documentation and new code use the canonical codes in the first
column. Hyphenated regional forms are normalized to underscore forms. jp,
cn, swe, and rus are compatibility aliases where shown. kr is not a language
alias. Unknown language identifiers are rejected by the runtime rather than
being guessed.
Ownership and safety
abbr2words owns reviewed abbreviation, initialism, unit, currency identity,
and quantity-template recognition. spokenform owns locale semantic grammar,
numeric punctuation policies, source-aligned replacements, and protection. For
Russian specifically, abbr2words owns recognition and canonical unit identity,
while Spokenform owns numeral government and explicit noun morphology. Swedish,
Vietnamese, and Russian unsupported specialist sequence domains preserve source
text instead of emitting English connectors, nouns, or punctuation names.
Runtime support is covered by focused regression tests. It does not claim
benchmark parity, PolyNorm parity, or kokorog2p parity unless those gates are
listed separately for a language.