Find files, editable templates and browser test targets by what you need to make or test. The directory below is cut by format; the two collections under it cut the same library by subject and by workflow.
Welsh is the only CLDR locale that uses all six plural categories for cardinals AND all six for ordinals, which makes it the strongest single probe for a plural-rule engine. Each branch names its own category so the assertion is about selection, not wording, and the two rule sets disagree for n = 4, 5, 7, 8 and 9.
English st/nd/rd/th suffixes done properly, via ICU selectordinal rather than a hand-written switch. The case list covers the teens (11th, 12th, 13th) and the wrap-around (21st, 102nd, 111th) that a naive n % 10 lookup gets wrong.
A English Java ResourceBundle with MessageFormat patterns, a ChoiceFormat plural, positional arguments, escaped braces and apostrophes, a backslash line continuation, and non-ASCII carried as \uXXXX escapes because .properties is defined as ISO-8859-1. The bytes on disk are pure ASCII.
File
PROPERTIES · Icu · ISO-8859-1, non-ASCII written as \uXXXX escapes
A German Java ResourceBundle with MessageFormat patterns, a ChoiceFormat plural, positional arguments, escaped braces and apostrophes, a backslash line continuation, and non-ASCII carried as \uXXXX escapes because .properties is defined as ISO-8859-1. The bytes on disk are pure ASCII.
File
PROPERTIES · Icu · ISO-8859-1, non-ASCII written as \uXXXX escapes
12345.60 in each locale's own currency, with the fraction-digit count and the symbol placement that produced it. JPY takes zero decimals and rounds; six rows separate the amount from the symbol with U+00A0 rather than a plain space; and ar-EG puts the amount in Arabic-Indic digits.
The structured currency table with the three traps spelled out: minor units belong to the CURRENCY not the locale (JPY 0, USD 2, KWD/BHD/JOD 3), the gap before a trailing symbol is U+00A0 in six of these locales, and CLDR's ar-EG pattern contains an invisible U+200F that breaks naive equality assertions.
Short and medium date patterns, the short time pattern and the hour cycle for ten locales, each with the rendering of 2026-03-14T09:05. The ar-EG patterns contain U+200F between their fields and ru-RU's medium pattern ends in a quoted literal, so neither is the plain ASCII it appears to be.
The structured date table plus the four traps worth their own test: day/month ambiguity in short dates, the RLM embedded in CLDR's Arabic pattern, quoted literal text inside the Russian pattern, and the localized day-period marker that a 12-hour formatter must not drop.
The same number, 1234567.89, rendered for twelve locales, with the group and decimal separator that produced each one named by code point and present literally in the cell. Four of the separators are not ASCII (U+00A0, U+202F, U+2019 and U+066C), and ar-EG additionally switches the digits themselves.
The structured twin of the number-format table, plus four documented traps: es-ES's minimumGroupingDigits=2 (which leaves a four-digit integer ungrouped), the four non-ASCII group separators, the arab numbering system's own digits, and the seven locales here whose decimal separator is a comma.
Every separator, sign and digit set a locale-aware formatter has to survive, each present literally between ASCII guards: the no-break and narrow-no-break spaces, de-CH's U+2019 group separator, the Arabic decimal and thousands separators, the four numbering systems' digits, and CLDR's U+2212 MINUS SIGN, which is not the ASCII hyphen.
Era and era-year for one instant across five calendar systems. The three whose months and days align with the Gregorian calendar, Japanese (Reiwa 8), ROC (Minguo 115) and Thai Buddhist (2569), carry a full rendered date; the Hijri and Hebrew entries carry the year only, because their day and month depend on the calculation variant and, for Hijri, on observation. Saying so is the point of the fixture.