Translate a PO (gettext) file into Spanish
Upload your .po catalogue or .pot template and Manuce translates the msgstr values into Spanish, returning the same file with contexts, comments and printf variables untouched, ready to compile. A report lists the strings translated and those left as they were, with the reason.
What it costs
For a PO file (gettext) with about 2,500 words of values, into Spanish:
To understand, internal use.
Ready to send, by the technical specialist.
Cross-checked. For documents that commit you.
Price for one language, original layout included. VAT not applicable — article 293 B of the French General Tax Code (CGI). The exact quote, based on your file's word count, is shown before you pay.
What changes when a gettext catalogue goes into Spanish
Spanish raises issues in a PO file that other languages do not, and most of them only show once the interface is compiled and running.
- Inverted punctuation. Questions and exclamations open with
¿or¡:msgid "Delete %s?"becomesmsgstr "¿Eliminar %s?". If your code builds a sentence from several msgids ("Are you sure" then "?"), the opening mark has nowhere to go. Merge the sentence into one string before translating. - Grammatical gender.
"%s deleted"is"%s eliminado"for an archivo but"%s eliminada"for a página. Without a clue, the translation falls back on the masculine. Amsgctxtor a#.comment naming the object resolves it. - Length. Spanish runs longer than English, close to French. "Save changes" becomes "Guardar cambios", "Settings" becomes "Configuración": leave room in buttons and tabs.
- Register and variety. Informal tú or formal usted, "ordenador" in Spain or "computadora" in Latin America: check these choices on the free sample before you pay.
Plurals: msgstr[0], msgstr[1] and the Plural-Forms header
A plural entry such as msgid "%d file" / msgid_plural "%d files" receives msgstr[0] "%d archivo" and msgstr[1] "%d archivos" in Spanish. The number of msgstr[n] forms returned matches Spanish, and the Plural-Forms header is set accordingly.
A Spanish-specific trap: the long-standing gettext convention declares two forms (nplurals=2; plural=(n != 1);), whereas the CLDR rules count three: one, many and other. The many category covers large round numbers, where Spanish inserts "de": "un millón de archivos". Make sure the header in the returned file agrees with your other es catalogues and with your build tooling; mixing a three-form catalogue with a two-form one can display the wrong variant.
What Manuce returns, and what it does not do
You get back the same PO file: entry order, quotes, line breaks, comments, line endings, encoding and BOM are preserved; only the values change. A .pot comes back as a Spanish .po, with the Language and Plural-Forms headers set.
msgctxt,msgid_pluraland the#.,#:,#,comments are kept, and context steers the translation:msgctxt "verb""Open" gives "Abrir",msgctxt "status"gives "Abierto".- printf variables (
%s,%d,%1$s) are checked. Every translated value is compared with the source; if a variable or tag mismatch persists, the source value is kept and the report says so. - Not translated: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable.
Manuce does not compile the .mo file, does not clear fuzzy flags for you and does not take glossaries or terminology instructions. For a product name that must stay in English, check the free sample and then the delivered file.
Preparing the file before upload
- Merge split sentences. Spanish word order often differs: "%s's profile" becomes "el perfil de %s". A sentence broken into pieces cannot be reordered.
- Use positional variables when a string holds more than one:
"%1$s invited %2$s"lets the translation move the names without breaking the call. - Add
#.comments where gender or the meaning of a lone word is unclear ("New" for a file or a carpeta?). They are preserved and help the translation. - Check the declared encoding in
Content-Type: it must coverñ,áand¿. UTF-8 and ISO-8859-1 both do; the original encoding is kept.
The quote counts the words in the values, keys and tags excluded; Spanish is charged at the base rate (×1 coefficient).
Checking the Spanish catalogue after delivery
- Read the report: each string left untranslated comes with its reason (mismatched variable, empty value, non-translatable item).
- Compile with
msgfmt --check: it flags an inconsistent number ofmsgstr[n]orc-formatstrings that do not match. - Check the
Languageheader value and adapt it to the catalogue name your project expects (es,es_ES,es_MX). - Run the interface in Spanish and look for clipped buttons, missing
¿at the start of questions and gender agreement slips.
In practice
- Merge split sentences and add #. comments to ambiguous words.
- Upload the .po or .pot file and get the instant quote.
- Check register (tú or usted) and vocabulary on the free sample.
- Download the translated file and its report, then run msgfmt --check.
- Test the Spanish interface: lengths, ¿ ¡ punctuation, agreement.
Frequently asked questions
How many plural forms will the Spanish file have?
The number of msgstr[n] forms matches Spanish and the Plural-Forms header is set to agree. Depending on the tooling, Spanish catalogues declare two forms (the traditional gettext convention) or three (CLDR: one, many, other). Check that the returned header matches your other catalogues.
Can I upload a .pot template instead of a .po?
Yes. A .pot template comes back as a Spanish .po file with the Language and Plural-Forms headers set. You only need to drop it into your project's locale folder.
Will the translation be European or Latin American Spanish?
Vocabulary and register can be judged on the free sample, translated at your chosen level before you pay. Manuce does not take variety instructions, so if the sample does not suit your audience you will see it before ordering.
What happens if a %s variable goes missing in translation?
Each translated value is compared with the source, variables and tags included. If the mismatch persists, the source value is kept and the report flags it, so your application does not fail on an invalid format string.
Does Manuce return a compiled .mo file?
No. You receive the same .po file, in the same format, ready to put back into the project. Compiling it to .mo is done on your side, for example with msgfmt.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into Spanish, other files
See also
Try it on your own file, free
A sample of your file translated at the level you choose, before any payment. You judge, then you decide.