Skip to content
Novus Examples

Translation catalog fixtures

Gettext PO/POT, XLIFF, Apple .strings, Flutter .arb, Android strings.xml, .NET .resx, and i18next JSON — with RTL and CJK variants — for testing localization pipelines, translation-memory tools, and catalog converters.

137 of 137 files
Preview of gettext Catalog — Spanish (.po)
po
1.3 KB
Actual file preview for gettext Catalog — Spanish (.po)

gettext Catalog — Spanish (.po)

A translated gettext .po catalog (Spanish) with a full header, source-location and translator comments, c-format flags, and a plural-form entry — for testing PO parsers and translation-memory tools.

File
PO · Gettext · es
Preview of XLIFF 1.2 (en → es)
xlf
1.4 KB
Actual file preview for XLIFF 1.2 (en → es)

XLIFF 1.2 (en → es)

An OASIS XLIFF 1.2 file with English source and Spanish target trans-units and notes — the classic interchange format between authoring tools and translation-management systems.

File
XLF · Xliff
Use case
Localization catalogsInternationalization+1· Conversion set
Preview of XLIFF 2.0 (en → es)
xliff
1.5 KB
Actual file preview for XLIFF 2.0 (en → es)

XLIFF 2.0 (en → es)

An OASIS XLIFF 2.0 file with the same content as its 1.2 twin, using the modern unit/segment structure — for testing XLIFF 2.0 parsers and 1.2-to-2.0 converters.

File
XLIFF · Xliff
Use case
Localization catalogsInternationalization+1· Conversion set
Preview of Apple .strings — English
strings
427 B
Actual file preview for Apple .strings — English

Apple .strings — English

An Apple Localizable.strings file (English) — quoted key = value pairs with comments and %@ placeholders, as iOS/macOS apps use per-locale in .lproj folders.

File
STRINGS · Apple · en
Use case
Localization catalogsInternationalization+1· Conversion set
Preview of Flutter ARB — English
arb
754 B
Actual file preview for Flutter ARB — English

Flutter ARB — English

A Flutter Application Resource Bundle (English) — JSON messages with matching @key metadata (descriptions and typed placeholders) using ICU {name} syntax, as Flutter's gen-l10n consumes.

File
ARB · Flutter
Use case
Localization catalogsInternationalization+1· Conversion set
Preview of Android strings.xml — English
xml
960 B
Actual file preview for Android strings.xml — English

Android strings.xml — English

An Android values/strings.xml (English) with string resources, a <plurals> block, and a <string-array>, using positional %1$s placeholders — the res/values/ default catalog.

File
XML · Android · en (values/)
Use case
Localization catalogsInternationalization+1· Conversion set
Preview of .NET RESX — English
resx
1.6 KB
Actual file preview for .NET RESX — English

.NET RESX — English

A .NET Resources.resx file (English) with the standard ResX schema and resheader block plus name/value string data and comments, using {0} composite-format placeholders.

File
RESX · Dotnet
Use case
Localization catalogsInternationalization+1· Conversion set
Preview of i18next JSON — English
json
249 B
Actual file preview for i18next JSON — English

i18next JSON — English

An i18next translation JSON (English) with {{name}} interpolation and an object-form plural (one/other) — the common React/Node i18n catalog shape.

File
JSON · I18next · en
Use case
Localization catalogsInternationalization+1· Conversion set
Preview of ICU MessageFormat — Nested select/plural (English)
json
2.6 KB
Actual file preview for ICU MessageFormat — Nested select/plural (English)

ICU MessageFormat — Nested select/plural (English)

English ICU MessageFormat catalog whose messages nest a select inside a plural branch and a plural inside a select branch, shipped with the argument bindings and the exact output each one must produce. Includes the '#' binding trap: inside a nested plural, '#' refers to the inner argument, so the outer count is written explicitly.

File
JSON · Icu
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of ICU MessageFormat — Nested select/plural (Arabic)
json
2.1 KB
Actual file preview for ICU MessageFormat — Nested select/plural (Arabic)

ICU MessageFormat — Nested select/plural (Arabic)

Arabic ICU MessageFormat catalog whose messages nest a select inside a plural branch and a plural inside a select branch, shipped with the argument bindings and the exact output each one must produce. Includes the '#' binding trap: inside a nested plural, '#' refers to the inner argument, so the outer count is written explicitly.

File
JSON · Icu
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of ICU MessageFormat — Nested select/plural (Polish)
json
1.8 KB
Actual file preview for ICU MessageFormat — Nested select/plural (Polish)

ICU MessageFormat — Nested select/plural (Polish)

Polish ICU MessageFormat catalog whose messages nest a select inside a plural branch and a plural inside a select branch, shipped with the argument bindings and the exact output each one must produce. Includes the '#' binding trap: inside a nested plural, '#' refers to the inner argument, so the outer count is written explicitly.

File
JSON · Icu
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of ICU MessageFormat — Plural offset (English)
json
1.9 KB
Actual file preview for ICU MessageFormat — Plural offset (English)

ICU MessageFormat — Plural offset (English)

The 'Rana and 5 others like this' pattern: ICU plural arguments with offset:1 and offset:2, where the explicit =0/=1/=2 selectors match the RAW value but '#' prints the value MINUS the offset. Ships every boundary case with its expected output.

File
JSON · Icu
Preview of ICU Plural-Category Probe — Welsh (six categories, both kinds)
json
1.6 KB
Actual file preview for ICU Plural-Category Probe — Welsh (six categories, both kinds)

ICU Plural-Category Probe — Welsh (six categories, both kinds)

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.

File
JSON · Icu · Welsh
Preview of ICU MessageFormat — Apostrophe and brace quoting
json
1.4 KB
Actual file preview for ICU MessageFormat — Apostrophe and brace quoting

ICU MessageFormat — Apostrophe and brace quoting

The quoting rules that make ICU messages surprising: a single quote starts a literal section only when the next character is one ICU cares about, a doubled '' is always one apostrophe, and '#' inside a plural branch is a literal hash. Every message is paired with the exact string it must produce.

File
JSON · Icu
Preview of Java ResourceBundle .properties — English
properties
1.1 KB
Actual file preview for Java ResourceBundle .properties — English

Java ResourceBundle .properties — English

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
Use case
InternationalizationLocalization catalogs+2· Conversion set
Preview of Java ResourceBundle .properties — German
properties
934 B
Actual file preview for Java ResourceBundle .properties — German

Java ResourceBundle .properties — German

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
Use case
InternationalizationLocalization catalogs+2· Conversion set
Preview of CLDR Plural Rules — Arabic (6 categories)
json
1.5 KB
Actual file preview for CLDR Plural Rules — Arabic (6 categories)

CLDR Plural Rules — Arabic (6 categories)

Arabic CLDR cardinal and ordinal plural rules with the exact integer samples that select each category, the equivalent gettext Plural-Forms expression, and a note on the trap the language exposes: a catalog written with only one/other silently renders 'many' counts (11-99) with the singular noun form.

File
JSON · Cldr · Arabic
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of CLDR Plural Rules — Welsh (6 categories)
json
1.7 KB
Actual file preview for CLDR Plural Rules — Welsh (6 categories)

CLDR Plural Rules — Welsh (6 categories)

Welsh CLDR cardinal and ordinal plural rules with the exact integer samples that select each category, the equivalent gettext Plural-Forms expression, and a note on the trap the language exposes: welsh is the only cldr locale using all six categories for both cardinals and ordinals, and its categories are enumerations (3, 6) rather than modulo ranges — a rule engine that assumes 'few' means a range fails here.

File
JSON · Cldr · Welsh
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of CLDR Plural Rules — Polish (4 categories)
json
1.7 KB
Actual file preview for CLDR Plural Rules — Polish (4 categories)

CLDR Plural Rules — Polish (4 categories)

Polish CLDR cardinal and ordinal plural rules with the exact integer samples that select each category, the equivalent gettext Plural-Forms expression, and a note on the trap the language exposes: cldr gives polish four categories but the traditional gettext header gives it three — gettext folds cldr 'many' and 'other' together because its rule takes an integer n and never sees v.

File
JSON · Cldr · Polish
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of CLDR Plural Rules — Russian (4 categories)
json
1.5 KB
Actual file preview for CLDR Plural Rules — Russian (4 categories)

CLDR Plural Rules — Russian (4 categories)

Russian CLDR cardinal and ordinal plural rules with the exact integer samples that select each category, the equivalent gettext Plural-Forms expression, and a note on the trap the language exposes: 1 and 21 take the same form but 11 does not; a naive n==1 check gets 21 wrong.

File
JSON · Cldr · Russian
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of CLDR Plural Rules — Japanese (1 category)
json
969 B
Actual file preview for CLDR Plural Rules — Japanese (1 category)

CLDR Plural Rules — Japanese (1 category)

Japanese CLDR cardinal and ordinal plural rules with the exact integer samples that select each category, the equivalent gettext Plural-Forms expression, and a note on the trap the language exposes: japanese needs exactly one form; a pipeline that requires a 'one' key produces a catalog no japanese translator can fill in meaningfully.

File
JSON · Cldr · Japanese
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of CLDR Plural-Category Matrix — six languages
csv
512 B
Actual file preview for CLDR Plural-Category Matrix — six languages

CLDR Plural-Category Matrix — six languages

One row per language, one column per CLDR plural category, filled with the smallest integers that select it — the sheet to hand a translator or a PM when explaining why 'one' and 'other' is not enough. Japanese needs one form and Welsh needs six.

File
CSV · Cldr · 6 rows
Preview of gettext PO with Plural-Forms — Polish (nplurals=3)
po
1.8 KB
Actual file preview for gettext PO with Plural-Forms — Polish (nplurals=3)

gettext PO with Plural-Forms — Polish (nplurals=3)

A Polish gettext catalog with a real Plural-Forms header and 3 msgstr[] forms per plural entry, source-location and extracted comments, and c-format flags. Pairs with the compiled .mo of the same content, so a loader can be tested end to end rather than on the text format alone.

File
PO · Gettext · Polish
Preview of gettext PO with Plural-Forms — Russian (nplurals=3)
po
1.9 KB
Actual file preview for gettext PO with Plural-Forms — Russian (nplurals=3)

gettext PO with Plural-Forms — Russian (nplurals=3)

A Russian gettext catalog with a real Plural-Forms header and 3 msgstr[] forms per plural entry, source-location and extracted comments, and c-format flags. Pairs with the compiled .mo of the same content, so a loader can be tested end to end rather than on the text format alone.

File
PO · Gettext · Russian
Preview of gettext PO with Plural-Forms — Arabic (nplurals=6)
po
2.3 KB
Actual file preview for gettext PO with Plural-Forms — Arabic (nplurals=6)

gettext PO with Plural-Forms — Arabic (nplurals=6)

A Arabic gettext catalog with a real Plural-Forms header and 6 msgstr[] forms per plural entry, source-location and extracted comments, and c-format flags. Pairs with the compiled .mo of the same content, so a loader can be tested end to end rather than on the text format alone.

File
PO · Gettext · Arabic
Preview of gettext PO with Plural-Forms — Welsh (nplurals=6)
po
2 KB
Actual file preview for gettext PO with Plural-Forms — Welsh (nplurals=6)

gettext PO with Plural-Forms — Welsh (nplurals=6)

A Welsh gettext catalog with a real Plural-Forms header and 6 msgstr[] forms per plural entry, source-location and extracted comments, and c-format flags. Pairs with the compiled .mo of the same content, so a loader can be tested end to end rather than on the text format alone.

File
PO · Gettext · Welsh
Preview of gettext PO — fuzzy, obsolete and untranslated entries
po
2 KB
Actual file preview for gettext PO — fuzzy, obsolete and untranslated entries

gettext PO — fuzzy, obsolete and untranslated entries

A German catalog carrying every state a PO entry can be in but the happy one: two fuzzy entries (one of them a plural) with #| previous-msgid comments, an entry that is present but untranslated, three obsolete #~ entries including an obsolete plural and an obsolete msgctxt entry, and two complete entries as the control.

File
PO · Gettext · German
Preview of gettext PO — msgctxt disambiguation and multi-line strings
po
2.1 KB
Actual file preview for gettext PO — msgctxt disambiguation and multi-line strings

gettext PO — msgctxt disambiguation and multi-line strings

The English word "Open" translated four different ways in one file — three msgctxt variants plus the context-free entry — alongside a multi-line msgid that must be concatenated with no separator, a no-c-format entry whose %% is literal text, and explicit tab and quote escapes with a significant trailing space.

File
PO · Gettext · French
Preview of XLIFF 1.2 — Plurals (en to pl)
xlf
1.5 KB
Actual file preview for XLIFF 1.2 — Plurals (en to pl)

XLIFF 1.2 — Plurals (en to pl)

The XLIFF 1.2 half of a version twin covering how each version expresses a plural group. XLIFF 1.2 uses a <group restype="x-gettext-plurals"> whose trans-units are ordered by gettext form index; XLIFF 2.0 dropped restype, so the same content becomes one <unit> per CLDR category, named by category rather than by index.

File
XLF · Xliff
Preview of XLIFF 2.0 — Plurals (en to pl)
xliff
1.9 KB
Actual file preview for XLIFF 2.0 — Plurals (en to pl)

XLIFF 2.0 — Plurals (en to pl)

The XLIFF 2.0 half of a version twin covering how each version expresses a plural group. XLIFF 1.2 uses a <group restype="x-gettext-plurals"> whose trans-units are ordered by gettext form index; XLIFF 2.0 dropped restype, so the same content becomes one <unit> per CLDR category, named by category rather than by index.

File
XLIFF · Xliff
Preview of XLIFF 1.2 — Inline codes (en to de)
xlf
1.7 KB
Actual file preview for XLIFF 1.2 — Inline codes (en to de)

XLIFF 1.2 — Inline codes (en to de)

The XLIFF 1.2 half of a version twin covering how each version represents inline markup and placeholders. XLIFF 1.2 keeps the original markup inline in <bpt>/<ept> and uses <g>, <x/> and <ph>; XLIFF 2.0 replaced all of them with <pc>, <ph/>, <sc/>/<ec/> and moved the markup into an <originalData> block referenced by id.

File
XLF · Xliff
Preview of XLIFF 2.0 — Inline codes (en to de)
xliff
2.4 KB
Actual file preview for XLIFF 2.0 — Inline codes (en to de)

XLIFF 2.0 — Inline codes (en to de)

The XLIFF 2.0 half of a version twin covering how each version represents inline markup and placeholders. XLIFF 1.2 keeps the original markup inline in <bpt>/<ept> and uses <g>, <x/> and <ph>; XLIFF 2.0 replaced all of them with <pc>, <ph/>, <sc/>/<ec/> and moved the markup into an <originalData> block referenced by id.

File
XLIFF · Xliff
Preview of XLIFF 1.2 — Translation state (en to es)
xlf
1.7 KB
Actual file preview for XLIFF 1.2 — Translation state (en to es)

XLIFF 1.2 — Translation state (en to es)

The XLIFF 1.2 half of a version twin covering how each version records translation progress. XLIFF 1.2 has approved="yes|no" plus a ten-value target state; XLIFF 2.0 removed approved and cut the vocabulary to four ordered values (initial, translated, reviewed, final) with everything else pushed into a namespaced subState.

File
XLF · Xliff
Preview of XLIFF 2.0 — Translation state (en to es)
xliff
1.8 KB
Actual file preview for XLIFF 2.0 — Translation state (en to es)

XLIFF 2.0 — Translation state (en to es)

The XLIFF 2.0 half of a version twin covering how each version records translation progress. XLIFF 1.2 has approved="yes|no" plus a ten-value target state; XLIFF 2.0 removed approved and cut the vocabulary to four ordered values (initial, translated, reviewed, final) with everything else pushed into a namespaced subState.

File
XLIFF · Xliff
Preview of Android strings.xml — escaping, xliff:g and markup rules
xml
2.9 KB
Actual file preview for Android strings.xml — escaping, xliff:g and markup rules

Android strings.xml — escaping, xliff:g and markup rules

Every escaping rule aapt2 enforces on a strings.xml, in one file: backslash-escaped apostrophes and quotes, quoted values that preserve leading whitespace, an escaped @ and ?, CDATA-wrapped inline HTML, <xliff:g> placeholder protection with examples, formatted="false", translatable="false" and a scoped tools:ignore.

File
XML · Android
Preview of Apple .stringsdict — English (2 rules)
xml
1.9 KB
Actual file preview for Apple .stringsdict — English (2 rules)

Apple .stringsdict — English (2 rules)

English Apple plural rules as a .stringsdict property list — the only place iOS and macOS accept plural variants, since a plain .strings file has no plural concept at all. Ships as .xml because the bytes are an XML plist; rename to Localizable.stringsdict to use it.

File
XML · Apple
Preview of Apple .stringsdict — Arabic (6 rules)
xml
3 KB
Actual file preview for Apple .stringsdict — Arabic (6 rules)

Apple .stringsdict — Arabic (6 rules)

Arabic Apple plural rules as a .stringsdict property list — the only place iOS and macOS accept plural variants, since a plain .strings file has no plural concept at all. Ships as .xml because the bytes are an XML plist; rename to Localizable.stringsdict to use it.

File
XML · Apple
Preview of Apple .stringsdict — Polish (4 rules)
xml
2.4 KB
Actual file preview for Apple .stringsdict — Polish (4 rules)

Apple .stringsdict — Polish (4 rules)

Polish Apple plural rules as a .stringsdict property list — the only place iOS and macOS accept plural variants, since a plain .strings file has no plural concept at all. Ships as .xml because the bytes are an XML plist; rename to Localizable.stringsdict to use it.

File
XML · Apple
Preview of Apple .stringsdict — Welsh (6 rules)
xml
2.8 KB
Actual file preview for Apple .stringsdict — Welsh (6 rules)

Apple .stringsdict — Welsh (6 rules)

Welsh Apple plural rules as a .stringsdict property list — the only place iOS and macOS accept plural variants, since a plain .strings file has no plural concept at all. Ships as .xml because the bytes are an XML plist; rename to Localizable.stringsdict to use it.

File
XML · Apple
Preview of Apple .stringsdict — Russian (4 rules)
xml
2.5 KB
Actual file preview for Apple .stringsdict — Russian (4 rules)

Apple .stringsdict — Russian (4 rules)

Russian Apple plural rules as a .stringsdict property list — the only place iOS and macOS accept plural variants, since a plain .strings file has no plural concept at all. Ships as .xml because the bytes are an XML plist; rename to Localizable.stringsdict to use it.

File
XML · Apple
Preview of Apple .strings — positional arguments that reorder (German)
strings
1.1 KB
Actual file preview for Apple .strings — positional arguments that reorder (German)

Apple .strings — positional arguments that reorder (German)

A German .strings file whose replace_confirm value puts %2$@ before %1$@, because German inverts the pair English uses. Also covers %% as a literal percent, an escaped double quote, a doubled-backslash UNC path and an escaped newline inside a value.

File
STRINGS · Apple · UTF-8
Preview of Apple .strings — UTF-16 LE with BOM (Japanese)
strings
1.5 KB
Actual file preview for Apple .strings — UTF-16 LE with BOM (Japanese)

Apple .strings — UTF-16 LE with BOM (Japanese)

The encoding fixture the .strings format needs: a Japanese catalog written as UTF-16 Little Endian with a byte-order mark, which is what Xcode has historically produced and what a UTF-8-only reader turns into mojibake or a decode error. Also carries full-width punctuation and an ideographic space for width and line-breaking tests.

File
STRINGS · Apple · UTF-16 LE
Use case
InternationalizationEncoding detection+1· Conversion set
Preview of Flutter ARB — ICU plurals and typed placeholders (English)
arb
1.9 KB
Actual file preview for Flutter ARB — ICU plurals and typed placeholders (English)

Flutter ARB — ICU plurals and typed placeholders (English)

A English ARB whose plural messages carry an ICU branch for each of the 2 categories en selects, plus a select message and a summary line with typed placeholders — int with compactLong, and a DateTime with a yMMMd format — which is what makes gen_l10n emit a typed Dart method rather than a plain string.

File
ARB · Flutter
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of Flutter ARB — ICU plurals and typed placeholders (Arabic)
arb
2.4 KB
Actual file preview for Flutter ARB — ICU plurals and typed placeholders (Arabic)

Flutter ARB — ICU plurals and typed placeholders (Arabic)

A Arabic ARB whose plural messages carry an ICU branch for each of the 6 categories ar selects, plus a select message and a summary line with typed placeholders — int with compactLong, and a DateTime with a yMMMd format — which is what makes gen_l10n emit a typed Dart method rather than a plain string.

File
ARB · Flutter
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of Flutter ARB — ICU plurals and typed placeholders (Polish)
arb
2.1 KB
Actual file preview for Flutter ARB — ICU plurals and typed placeholders (Polish)

Flutter ARB — ICU plurals and typed placeholders (Polish)

A Polish ARB whose plural messages carry an ICU branch for each of the 4 categories pl selects, plus a select message and a summary line with typed placeholders — int with compactLong, and a DateTime with a yMMMd format — which is what makes gen_l10n emit a typed Dart method rather than a plain string.

File
ARB · Flutter
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of Flutter ARB — ICU plurals and typed placeholders (Welsh)
arb
2.3 KB
Actual file preview for Flutter ARB — ICU plurals and typed placeholders (Welsh)

Flutter ARB — ICU plurals and typed placeholders (Welsh)

A Welsh ARB whose plural messages carry an ICU branch for each of the 6 categories cy selects, plus a select message and a summary line with typed placeholders — int with compactLong, and a DateTime with a yMMMd format — which is what makes gen_l10n emit a typed Dart method rather than a plain string.

File
ARB · Flutter
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of .NET RESX — composite format strings (English (United States))
resx
2.7 KB
Actual file preview for .NET RESX — composite format strings (English (United States))

.NET RESX — composite format strings (English (United States))

A English (United States) resource file built around composite format strings — {0:N2}, {2:P1}, {0:C}, {0:d} and {0:t} — whose rendered output depends entirely on CultureInfo. Includes a whitespace-significant resource guarded by xml:space, and documents the suffixed-key convention .NET falls back on because String.Format has no plural selector.

File
RESX · Dotnet
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of .NET RESX — composite format strings (German (Germany))
resx
2.7 KB
Actual file preview for .NET RESX — composite format strings (German (Germany))

.NET RESX — composite format strings (German (Germany))

A German (Germany) resource file built around composite format strings — {0:N2}, {2:P1}, {0:C}, {0:d} and {0:t} — whose rendered output depends entirely on CultureInfo. Includes a whitespace-significant resource guarded by xml:space, and documents the suffixed-key convention .NET falls back on because String.Format has no plural selector.

File
RESX · Dotnet
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of .NET RESX — composite format strings (Arabic (Egypt))
resx
2.8 KB
Actual file preview for .NET RESX — composite format strings (Arabic (Egypt))

.NET RESX — composite format strings (Arabic (Egypt))

A Arabic (Egypt) resource file built around composite format strings — {0:N2}, {2:P1}, {0:C}, {0:d} and {0:t} — whose rendered output depends entirely on CultureInfo. Includes a whitespace-significant resource guarded by xml:space, and documents the suffixed-key convention .NET falls back on because String.Format has no plural selector.

File
RESX · Dotnet
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of .NET RESX — composite format strings (Polish (Poland))
resx
2.7 KB
Actual file preview for .NET RESX — composite format strings (Polish (Poland))

.NET RESX — composite format strings (Polish (Poland))

A Polish (Poland) resource file built around composite format strings — {0:N2}, {2:P1}, {0:C}, {0:d} and {0:t} — whose rendered output depends entirely on CultureInfo. Includes a whitespace-significant resource guarded by xml:space, and documents the suffixed-key convention .NET falls back on because String.Format has no plural selector.

File
RESX · Dotnet
Use case
InternationalizationLocalization catalogs+1· Conversion set
Preview of Unicode Bidi Controls — LRM, RLM, ALM, isolates and embeddings
txt
3.5 KB
Actual file preview for Unicode Bidi Controls — LRM, RLM, ALM, isolates and embeddings

Unicode Bidi Controls — LRM, RLM, ALM, isolates and embeddings

A reference sheet in which each of the ten shipped bidi control characters appears literally between ASCII guards, with its code point, UTF-8 bytes and the job it does. The two override characters are named but deliberately absent: a bidi rendering fixture does not need to ship the Trojan Source vector.

File
TXT · Bidi · UTF-8
Use case
InternationalizationEncoding detection+1· Conversion set
Preview of Bidi — where a mark is actually required (Arabic)
txt
2.6 KB
Actual file preview for Bidi — where a mark is actually required (Arabic)

Bidi — where a mark is actually required (Arabic)

Six Arabic sentences containing a Latin filename, a phone number, a version range, a mixed-script path, a percentage and a bracketed insertion — each shown first as a translator usually delivers it and then with the one invisible character that makes it render correctly. The two forms differ by exactly one code point.

File
TXT · Bidi · UTF-8
Use case
InternationalizationEncoding detection+1· Conversion set
Preview of Bidi — bracket mirroring in RTL paragraphs (Hebrew and Arabic)
txt
1.4 KB
Actual file preview for Bidi — bracket mirroring in RTL paragraphs (Hebrew and Arabic)

Bidi — bracket mirroring in RTL paragraphs (Hebrew and Arabic)

Mirroring is a rendering property of the bidi algorithm, not a transformation of the text: a U+0028 LEFT PARENTHESIS inside an RTL run is DRAWN as ')' while the stored byte never changes. These Hebrew and Arabic lines make that testable, and list the neutral characters that look like they should mirror but do not.

File
TXT · Bidi · UTF-8
Use case
InternationalizationEncoding detection+1· Conversion set
Preview of HTML Bidi — dir=auto, <bdi> and a scoped <bdo>
html
2.4 KB
Actual file preview for HTML Bidi — dir=auto, <bdi> and a scoped <bdo>

HTML Bidi — dir=auto, <bdi> and a scoped <bdo>

The HTML half of bidi handling: paragraphs with dir=ltr, dir=rtl and dir=auto, the same user-supplied string with and without a <bdi> wrapper, one balanced <bdo> showing display override scoped to a single element, and explicit RLM/FSI marks inside markup. No scripts and no external resources.

File
HTML · Bidi · UTF-8
Preview of Bidi Isolates — UI templates for user-supplied names
json
2.6 KB
Actual file preview for Bidi Isolates — UI templates for user-supplied names

Bidi Isolates — UI templates for user-supplied names

Three notification templates in English, Arabic and Hebrew, each given raw and with every interpolation slot wrapped in FSI…PDI, plus four argument sets covering an LTR name in an RTL sentence, an RTL name in an LTR sentence and a name beginning with a neutral character. This is the fixture for the bug where a display name reorders the sentence around it.

File
JSON · Bidi · UTF-8
Preview of Bidi Test-Case Matrix — eight rendering cases
csv
1.3 KB
Actual file preview for Bidi Test-Case Matrix — eight rendering cases

Bidi Test-Case Matrix — eight rendering cases

A flat index of the bidi cases in this wave — which mark each one uses, what it should render as, and why the neutral characters involved need help. Row b8 is the control case with no marks, against which the other seven are compared.

File
CSV · Bidi · 8 rows
Preview of Locale Date and Time Patterns — ten locales (CSV)
csv
792 B
Actual file preview for Locale Date and Time Patterns — ten locales (CSV)

Locale Date and Time Patterns — ten locales (CSV)

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.

File
CSV · Formatting · 10 rows
Use case
InternationalizationCSV parsing+1· Conversion set
Preview of Locale Date and Time Patterns — with the four classic traps (JSON)
json
4.8 KB
Actual file preview for Locale Date and Time Patterns — with the four classic traps (JSON)

Locale Date and Time Patterns — with the four classic traps (JSON)

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.

File
JSON · Formatting
Use case
InternationalizationJSON parsing+1· Conversion set
Preview of Locale Separator and Digit Characters — literal specimens
txt
2.3 KB
Actual file preview for Locale Separator and Digit Characters — literal specimens

Locale Separator and Digit Characters — literal specimens

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.

File
TXT · Formatting · UTF-8
Preview of Non-Gregorian Calendar Eras — Japanese, ROC, Buddhist, Hijri, Hebrew
json
2 KB
Actual file preview for Non-Gregorian Calendar Eras — Japanese, ROC, Buddhist, Hijri, Hebrew

Non-Gregorian Calendar Eras — Japanese, ROC, Buddhist, Hijri, Hebrew

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.

File
JSON · Formatting