Skip to content
Novus Examples
po537 B

Gettext PO — French

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

Preview — first 36 linespo
# French translation for the Novus example app.
msgid ""
msgstr ""
"Project-Id-Version: novus-example 1.0\n"
"Language: fr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. greeting
msgid "Hello"
msgstr "Bonjour"

#. welcome
msgid "Welcome, %s"
msgstr "Bienvenue, %s"

#. save
msgid "Save"
msgstr "Enregistrer"

#. cancel
msgid "Cancel"
msgstr "Annuler"

#. search
msgid "Search"
msgstr "Rechercher"

#. settings
msgid "Settings"
msgstr "Paramètres"

#. logout
msgid "Log out"
msgstr "Déconnexion"

Specifications

Locale
fr
Format
gettext PO
Messages
7

What is a .po file?

A PO file (.po, Portable Object) is a gettext translation catalog: a plain-text list of msgid (source string) and msgstr (translation) pairs, with a header defining the language and plural rules, source-location comments, and support for plural forms. It is the working file translators edit and is compiled to a binary .mo for runtime.

How to use this file

Use an example .po file to test gettext parsers, PO editors and CAT tools, translation-memory importers, and PO-to-JSON/XLIFF converters, or to exercise plural-form handling.

How to use this file for testing

“Gettext PO — French” is a deterministic Novus Examples fixture for Internationalization, Encoding detection. Parallel text and accented, multi-script content — for testing translation pipelines, Unicode handling, and localization tooling.

Documented properties for this file: 7 messages · gettext PO. 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 polib  # pip install polib

po = polib.pofile("app_fr.po")
print(len(po), "entries,", round(po.percent_translated()), "% translated")
for e in po[:3]:
    print(e.msgid, "->", e.msgstr)

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