gettext MO with Plural-Forms — Welsh (compiled)
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.
| field | value |
|---|---|
| format | GNU MO (compiled gettext catalog) |
| magic | 0x950412de (little-endian) |
| locale | cy |
| messages | 7 |
| plural entries | 4 |
| nplurals | 6 |
| Plural-Forms | nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 5); |
| paired PO | app-cy.po |
Specifications
- Locale
- cy
- Language
- Welsh
- Nplurals
- 6
- Magic
- 0x950412de (little-endian)
- Revision
- 0
- Messages
- 7
- Hash Table
- omitted (size 0) — loaders fall back to the sorted table
- Plural Encoding
- singular NUL plural in the originals table; forms NUL-joined
- Line Endings
- n/a (binary)
- Seed
- 20260807
- Wave
- p7
Testing contract
Expected to pass- Scenario
- Load with gettext.GNUTranslations (Python), libintl, or any MO reader and call ngettext on each plural msgid.
- Expected result
- The header entry (msgid "") yields the Plural-Forms line, the originals table is sorted lexicographically, and ngettext returns the correct one of 6 forms without falling back to the untranslated msgid.
What is a .mo file?
A MO file (.mo, Machine Object) is the compiled binary form of a gettext PO catalog used at runtime by gettext libraries. It stores msgid/msgstr pairs in a compact hashed table for fast lookup.
How to use this file
Use an example .mo file to test gettext runtime loaders, MO parsers, and PO↔MO conversion tooling.
How to use this file for testing
“gettext MO with Plural-Forms — Welsh (compiled)” is a deterministic Novus Examples fixture for Internationalization, Serialization testing. Parallel text and accented, multi-script content — for testing translation pipelines, Unicode handling, and localization tooling.
Documented properties for this file: seed 20260807 · 7 messages · Welsh · n/a (binary). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Translation-catalog fixtures carry the same message set across formats, each with its native placeholder syntax. Test your i18n loader, catalog converter, or translation-memory tool, and use the RTL and CJK variants to check bidirectional text and Unicode handling.
Load the catalog with your i18n framework and verify placeholder interpolation and plural handling; the RTL and CJK variants exercise bidirectional text and font fallback.
Code examples
import gettext
with open("app-cy.mo", "rb") as f:
cat = gettext.GNUTranslations(f)
print(cat.gettext("Hello")) # .mo is the compiled catalogRelated files
- pogettext 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.

- moGettext MO — FrenchCompiled gettext MO binary for French — pair with the matching PO for loader tests.

- moGettext MO — GermanCompiled gettext MO binary for German — pair with the matching PO for loader tests.

- moGettext MO — KoreanCompiled gettext MO binary for Korean — pair with the matching PO for loader tests.

- moGettext MO — Portuguese (Brazil)Compiled gettext MO binary for Portuguese (Brazil) — pair with the matching PO for loader tests.

- poGettext PO — FrenchA French (fr) gettext PO catalog with seven UI strings — for i18n toolchain tests.

Generated by generation/localization_p7.py. Free for any use, no attribution required — license.