CLDR

Unicode's shared locale dataset for plural rules, date and number patterns, calendars, currencies, sorting, and localized place names.

where locale formatting data comes fromdatabase behind date and number formatswho decides that Germany writes dates with dotssource of plural ruleslist of country names in every languagecalendar data for every localeUnicode locale datacommon locale data repositoryCDLR

What it is

CLDR, the Unicode Common Locale Data Repository, is the shared dataset behind much of modern locale-aware software. It records plural rules, date and number patterns, calendars, time-zone names, currency details, collation data, and localized names for languages, scripts, regions, and more.

Reach for CLDR when Intl or an i18n library needs locale data, or when you need a dataset that the high-level API does not expose directly. Browsers, operating systems, and libraries may ship different CLDR versions, so their exact output can differ even for the same locale. CLDR 42 and ICU 72 made this famous in late 2022 by switching the space before AM and PM to U+202F, a narrow no-break space, which broke thousands of date assertions the moment Node.js picked the update up.

Gotcha: CLDR is data, not a translation service and not a rule that every person in a locale follows. Do not copy a few patterns into application code. Use a maintained runtime or packaged CLDR release, pin its version, and update it deliberately.

Ask AI for it

Add pinned Unicode CLDR data using the cldr-core, cldr-dates-full, and cldr-numbers-full packages. Load only the supported locales and required sections, preserve CLDR's locale fallback hierarchy, and expose typed lookups for plural rules, date patterns, number symbols, currency data, and localized names. Record the CLDR release version in generated output and add snapshot tests for en-US, de-DE, ar-EG, and zh-Hant-TW so a data upgrade is reviewed as an intentional change.

You might have meant

localepluralization rulesnumber formattinglocale aware date time formattingecmascript internationalization api

Go deeper