Locale Converter
Convert locale formats online between BCP 47, POSIX, HTML lang, and Accept-Language styles while previewing real Intl output
Popular Locales
Try Common Inputs
Invalid locale identifier. Please enter a valid BCP 47 locale tag.
Browser Support
Parsed Locale Info
Format Alternatives
Resolved Locales
Fallback Chain
Display Names
Data Preview
Number Formatting
Currency Formatting
Date & Time
Relative Time
List Formatting
Collation
Compare how two different locales format the same data side by side.
How to Use
-
1
Paste Any Locale String
Start with browser locales, POSIX values like en_US.UTF-8, script tags like zh_Hans_CN, or an Accept-Language header.
-
2
Normalize The Tag
The tool canonicalizes the value into a BCP 47 locale and shows matching POSIX, HTML lang, and Intl snippets.
-
3
Copy The Right Format
Use the output block that fits your use case: web markup, JavaScript Intl, environment variables, or QA docs.
-
4
Compare Output Differences
Switch to compare mode to inspect how two locales differ for numbers, currency, dates, and collation behavior.
Why Use Be Converter?
Browser Native
Powered by built-in Intl APIs. No server calls, no external dependencies. Works offline and respects your privacy.
Real-time Preview
Instantly see how numbers, dates, currencies, and lists are formatted in any locale as you type.
Normalize Real Inputs
Paste POSIX locales, ICU-style underscores, or Accept-Language headers and turn them into clean BCP 47 and HTML-ready locale strings.
Comprehensive Analysis
Parse locale components, show display names in multiple languages, and compare two locales side by side.
Perfect For
Frequently Asked Questions
What is a locale identifier?
What is the difference between BCP 47 and POSIX locale formats?
How does this tool work without a server?
Why do some locales show different results across browsers?
What does "resolved locale" mean?
Common Locale Conversion Examples
These are the most common locale-string cleanup tasks developers and localization teams search for when they need a locale converter online.
en_US.UTF-8
en-US
Convert Unix-style locale environment values into a BCP 47 tag you can use in frontend code.
zh_Hans_CN
zh-Hans-CN
Normalize script subtags with the casing web platforms expect.
sr_RS@latin
sr-Latn-RS
Translate a POSIX modifier into a script-aware locale tag for product localization.
Accept-Language: fr-CA,fr;q=0.9
fr-CA
Extract the preferred locale from a browser header before routing or formatting content.
Understanding Locale Identifiers
BCP 47 Structure
A BCP 47 language tag consists of subtags separated by hyphens: language (required, 2-3 letters), script (optional, 4 letters), region (optional, 2 letters or 3 digits), and variants (optional). Examples:
- • Language only
en, zh, ar - • Language + Region
en-US, zh-CN, pt-BR - • Language + Script
zh-Hans, sr-Latn - • Full tag
zh-Hans-CN, en-Latn-US
Intl API in Practice
The JavaScript Intl API family provides locale-aware formatting for numbers, dates, lists, relative time, and more. Use Intl.Locale to parse identifiers, Intl.DisplayNames to get human-readable names, and Intl.NumberFormat/DateTimeFormat for formatting.
- •
Intl.getCanonicalLocales(["pt-br"])- canonicalize - •
new Intl.Locale("zh-Hans-CN")— parse - •
Intl.DisplayNames— display names - •
Intl.NumberFormat— numbers - •
Intl.DateTimeFormat— dates
Best Practice: Always use the most specific locale tag that fits your needs. For web applications, use the user's preferred language from navigator.language and fall back gracefully. Test with multiple locales early in development.