Skip to content
Novus Examples
mo1.1 KB

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.

Preview — schema + first 8 rowsmo
fieldvalue
formatGNU MO (compiled gettext catalog)
magic0x950412de (little-endian)
localecy
messages7
plural entries4
nplurals6
Plural-Formsnplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 5);
paired POapp-cy.po
Compiled binary — metadata sample only

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 catalog

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