RFC BCP47

Language tag toolkit for JavaScript — BCP 47 defines codes like en-US, zh-Hant-TW, fr-CA that identify human languages
Operators — parse stringify langtag canonicalize filter lookup extensionU extensionT acceptLanguage

Operator: parse — parse a BCP 47 tag into its subtag components

Operator: canonicalize — normalize casing, replace deprecated subtags, remove suppress-script, promote extlang, and sort extensions per RFC 5646

Input
Canonical

Operator: filter — find all matching tags with subtag-aware filtering and * wildcards (RFC 4647 §3.3.2)

Available tags (one per line)
The locales your app supports
Pattern
Results

Operators: acceptLanguagelookup — real HTTP content negotiation per RFC 9110 + RFC 4647 §3.4

Accept-Language header acceptLanguage() lookup() Best locale
1. Browser sends Accept-Language header
2. acceptLanguage() parses and sorts by quality
TagQuality
3. Your available locales
4. lookup() finds the single best match
Best match (serve this locale)

Operators: extensionU / extensionT — extract Unicode locale and transformed content data