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.
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.
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.
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.
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.
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.
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.
The compiled Arabic MO twin. Plural entries are encoded the way msgfmt does it (the original is 'singular\\0plural' and the translation is the 6 forms joined by NUL), and the header entry carries the Plural-Forms expression, so ngettext resolves without the .po file present.
The compiled Polish MO twin. Plural entries are encoded the way msgfmt does it (the original is 'singular\\0plural' and the translation is the 3 forms joined by NUL), and the header entry carries the Plural-Forms expression, so ngettext resolves without the .po file present.
The compiled Russian MO twin. Plural entries are encoded the way msgfmt does it (the original is 'singular\\0plural' and the translation is the 3 forms joined by NUL), and the header entry carries the Plural-Forms expression, so ngettext resolves without the .po file present.
The compiled Welsh MO twin. Plural entries are encoded the way msgfmt does it (the original is 'singular\\0plural' and the translation is the 6 forms joined by NUL), and the header entry carries the Plural-Forms expression, so ngettext resolves without the .po file present.
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.
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.
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.
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.
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.
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.