Translate a WordPress Site into Spanish: Themes, Plugins and WPML
Upload your theme or plugin .pot or .po file, or a WPML XLIFF export, and Manuce returns the same file with the values in Spanish, placeholders and tags checked. You then compile the .po into a .mo, name it for the right locale (es_ES or a Latin American variant) and test the display.
What it costs
For the language files of a WordPress site totalling about 6,000 words, 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.
Which file to upload for your site
A WordPress site is translated in two layers, and they live in different files.
- Interface strings (buttons, form labels, plugin notices, theme text) sit in the theme or plugin
.pottemplate, or in a.poyou have already started. Poedit or Loco Translate will get it for you. - Content (pages, posts, menus) if you use WPML: the plugin exports it as XLIFF, which Manuce accepts as it is.
Whatever your own language, most themes ship with English msgid strings, and that is the source used. A .pot comes back as a Spanish .po. Name it the WordPress way: es_ES.po for a theme, my-plugin-es_ES.po for a plugin, the prefix being the text domain. Then compile it into a .mo with Poedit or Loco Translate; the .mo is what WordPress actually loads.
Manuce does not connect to your site or write to its database: it works only on the files you upload.
What Spanish changes in WordPress strings
- Spain or Latin America. WordPress has separate locales:
es_ES,es_MX,es_AR,es_COand others. Vocabulary differs: ordenador / computadora, móvil / celular. For a single market, review those terms; for several, prefer neutral wording. - Informal or formal address. “Leave a comment” becomes Deja un comentario (tú) or Deje un comentario (usted). For the plural, Spain uses vosotros, Latin America ustedes. Community translations already installed for other plugins may have chosen differently, so check consistency across the whole site.
- Inverted punctuation. “Delete %s?” becomes
¿Eliminar %s?. The ¿ must open the sentence inside the same string: if your code builds a question from two fragments, it will land in the wrong place. - Plurals.
_n()calls provide a singular and a plural. ThePlural-Formsheader of Spanish.pofiles usually declares two forms; CLDR adds a third (many) for large round numbers such as 1 millón de visitas, rarely needed for a comment counter. Note that zero takes the plural: 0 comentarios. - Length and gender. Spanish runs longer than English: “Read more” gives Leer más, “Add to cart” Añadir al carrito. “Welcome, %s” gives Bienvenido, %s, which is masculine; Te damos la bienvenida, %s sidesteps the issue.
What Manuce returns, and what it leaves alone
You get back the same file in the same format, ready to drop into the project: headers, translator comments (#. translators:), msgctxt contexts, entry order, quotes, line endings, encoding and BOM are all preserved. Only the values change.
Every translated value is compared with the source. “Posted by %1$s on %2$s” must become Publicado por %1$s el %2$s with the same placeholders, and a link such as <a href="%s"> or a <strong> tag must stay intact. If a 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. In practice, a format string like F j, Y stays as it is. If you want the Spanish pattern j \d\e F \d\e Y (5 de marzo de 2025), enter it yourself in Poedit or Loco Translate.
The quote counts the words to translate, excluding keys and tags; Spanish is charged at the base rate (×1 coefficient). Manuce does not provide sworn or certified translation: for terms and conditions or a privacy policy, plan a legal review.
Preparing the files and checking the live site
Before uploading
- Regenerate the
.potfrom the latest theme or plugin version so no recent string is missing. - In a WPML XLIFF export, keep segments marked as non-translatable (brand or product names): they will be respected.
- Decide on register (tú or usted) and target market, then judge the free sample paragraph before paying.
After delivery
- Read the report: any strings left untranslated are listed with the reason.
- Open the
.poin Poedit, check thePlural-Formsheader, then compile the.mo. - Put the files in
wp-content/languages/themes/orwp-content/languages/plugins/, where a theme update will not overwrite them. - Switch the site language to Spanish in the general settings and test: buttons and menus on mobile, confirmation messages with ¿, date display, counters at 0, 1 and 2.
In practice
- Export the theme or plugin .pot or .po file, or a WPML XLIFF file.
- Upload it: instant quote on the exact word count and a free sample paragraph.
- After payment, download the translated file and its report from your account.
- Name the .po for the locale (es_ES, es_MX…), compile the .mo and place it in wp-content/languages.
- Switch the site to Spanish and check buttons, ¿ questions, dates and plurals.
Frequently asked questions
Should I use Spanish from Spain or Latin American Spanish?
It depends on your audience. The locale (es_ES, es_MX, es_AR…) decides which file WordPress loads, and a few everyday words differ, such as ordenador and computadora. For a mixed audience, neutral wording keeps differences small; review the sensitive terms in the returned file.
Will the returned file work on my site straight away?
The returned .po keeps the original structure, but WordPress reads the compiled .mo. Open the .po in Poedit or Loco Translate, which generate the .mo, then place both files in the languages folder under the correct locale name.
Are pages and posts translated too?
Yes, if you use WPML and its XLIFF export, which Manuce supports. .po files only cover the theme and plugin interface. Manuce does not connect to your site, so database content without an export is not handled.
What happens to %s, %1$s and HTML tags?
They are preserved, and every translated value is checked against the source to confirm all placeholders and tags are present. If a mismatch persists, the string stays in its original language and the report flags it, which avoids a PHP warning or a broken link.
Can I translate the site into Spanish and other languages at once?
Yes, and a discount applies to the whole order from two languages: −20% for two, −30% for three, −40% for four and −50% from five. Each language comes back as a separate file to name after its locale.
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.