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.
# Spanish translation for the Novus example app.
# Copyright (C) 2026 Novus Examples (sample fixture).
# This file is distributed under the same license as the novus-example package.
#
msgid ""
msgstr ""
"Project-Id-Version: novus-example 1.0\n"
"Report-Msgid-Bugs-To: i18n@example.com\n"
"POT-Creation-Date: 2026-01-01 00:00+0000\n"
"PO-Revision-Date: 2026-01-02 12:00+0000\n"
"Last-Translator: Sample Translator <translator@example.com>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Greeting shown on the home screen
#: src/home.js:12
msgid "Hello"
msgstr "Hola"
#. Welcome message with the user's name
#: src/home.js:18
#, c-format
msgid "Welcome, %s"
msgstr "Bienvenido, %s"
#. Save button label
#: src/editor.js:40
msgid "Save"
msgstr "Guardar"
#. Cancel button label
#: src/editor.js:41
msgid "Cancel"
msgstr "Cancelar"
#. Search field placeholder
#: src/nav.js:7
msgid "Search"
msgstr "Buscar"
#. Settings menu item
#: src/nav.js:22
msgid "Settings"
msgstr "Configuración"
#. Log out menu item
#: src/nav.js:31Specifications
- Format
- gettext PO
- Language
- es
- Entries
- 8
- Plural Forms
- nplurals=2
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 Catalog — Spanish (.po)” is a deterministic Novus Examples fixture for Localization catalogs, Internationalization, Editor testing. 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.
Documented properties for this file: 8 entries · es · 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("messages.es.po")
print(len(po), "entries,", round(po.percent_translated()), "% translated")
for e in po[:3]:
print(e.msgid, "->", e.msgstr)Related files
- pogettext PO — msgctxt disambiguation and multi-line stringsThe 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.

- potgettext Template (messages.pot)A gettext .pot template extracted from source — msgid entries with empty msgstr values, source-location comments, and a plural form — the starting point for a new language translation.

- resx.NET RESX — EnglishA .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.

- resx.NET RESX — SpanishThe Spanish satellite RESX (Resources.es.resx) — for testing .NET resource parsers and culture-based resource resolution against the same keys.

- xmlAndroid strings.xml — EnglishAn 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.

- xmlAndroid strings.xml — SpanishThe Spanish Android strings.xml (as res/values-es/) — for testing Android resource parsers, plurals, and string-array localization.

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