ManuceTranslate a fileTranslate a WordPress site into Italian: themes, plugins and WPML

Translate a WordPress site into Italian: themes, plugins and WPML

Translating a WordPress site into Italian means translating the language files of your themes and plugins (.pot/.po) and, for pages and posts, the XLIFF export from WPML. Manuce returns the same file in Italian, with placeholders and tags checked, ready to compile or re-import.

Upload my file See pricing

What it costs

For the language files of a WordPress site totalling about 6,000 words, into Italian:

Essentiel
€35

To understand, internal use.

Professional
€107

Ready to send, by the technical specialist.

Premium
€207

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 files to send for an Italian WordPress site

A WordPress site is translated in two layers, each with its own file.

  • Theme and plugin strings (buttons, labels, notices): the .pot template shipped with the theme, or an existing .po, as used in Poedit or Loco Translate. A .pot comes back as an Italian .po.
  • Content (pages, posts, menus): if you use WPML, its XLIFF export. These files are handled as they are.

File naming matters to WordPress: a theme with the text domain mytheme expects mytheme-it_IT.po and mytheme-it_IT.mo. Use it_IT for Italy rather than it_CH unless you are targeting Italian-speaking Switzerland. Month and day names come from WordPress's own language files, not from your theme, so set Italian as the site language to get them.

What Italian changes in WordPress strings

Italian usually runs longer than English, so check narrow menus and buttons. Beyond length, several rules affect .po files directly.

  • Plurals. CLDR defines one, many and other for Italian; many covers large round numbers (“un milione di visite”). In a WordPress .po, Italian uses two forms: msgstr[0] “%d commento”, msgstr[1] “%d commenti”. Check that the header reads Plural-Forms: nplurals=2; plural=(n != 1);. “No comments” is often a separate string: “Nessun commento”.
  • Accents. Grave on è, più, città; acute on perché, né. The capital is È, not E'. Keep the file in UTF-8.
  • Punctuation. No space before colons or question marks, which matters if your source is French: “Rechercher :” becomes Cerca:, “Search results for: %s” becomes Risultati della ricerca per: %s.
  • Agreement and elision around placeholders. “%s updated” is aggiornato or aggiornata depending on what %s stands for, and a contracted article (del, dell', della) cannot sit before a placeholder of unknown gender. Translations often switch to a neutral pattern such as Recensioni per: %s.
  • Register. Formal Italian uses Lei: “Leave a comment” is Lasci un commento, whereas informal tu gives Lascia un commento. Many buttons sidestep this with an infinitive or noun: Invia, Leggi tutto.

What Manuce returns, and what it does not do

You get the same file, in the same format: indentation, entry order, quotes, comments, line endings, encoding and BOM are preserved. Only the values change; in a .po, every msgid stays intact and the msgstr lines are filled in Italian.

Each translated value is compared with its source. If Pubblicato il %1$s da %2$s lost its %2$s, or an <a> tag went missing, the value is redone; if the mismatch persists, the source value is kept and the report says so. The report lists translated strings and those left unchanged, with the reason.

Not translated: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable. In practice, a F j, Y format stays as it is; to display “5 marzo 2025”, change it to j F Y yourself. Page links do not get Italian slugs: that is set in WordPress.

Manuce does not compile the .mo (Poedit or Loco Translate do) and does not produce sworn or certified translations, should terms and conditions for the Italian market need one. Pricing counts the words in values only, excluding keys and tags; Italian is charged at the base rate.

Preparing and checking before going live

Before sending:

  • Regenerate the .pot if the theme has changed, so you neither pay for removed strings nor miss new ones.
  • Look for strings with two unnumbered placeholders (%s ... %s): switching them to %1$s and %2$s in the source lets Italian reorder the sentence.
  • In WPML, export only the content you want in Italian, so the word count reflects the actual job.

After delivery:

  1. Open the .po in Poedit or Loco Translate, check the header (Language: it_IT, plural forms) and save to produce the .mo.
  2. Read the report: a string left in the source language often points to a malformed placeholder in the original.
  3. On the site, test screens where agreement matters: comment counters at 0, 1 and 2, cart, forms, error messages.
  4. Check that the register is consistent across theme, plugins and WPML content: a form in Lei next to a button in tu stands out.

In practice

  1. Export the .pot or .po files of your themes and plugins, plus the WPML XLIFF for content.
  2. Upload them to Manuce: instant quote on the exact word count and a free one-paragraph Italian sample.
  3. Download the translated files and the report of strings left unchanged.
  4. Compile the .po into a .mo with Poedit or Loco Translate, named it_IT, and re-import the XLIFF into WPML.
  5. Test the Italian site: plurals, accents, date formats, forms.

Frequently asked questions

Should I send the .pot or a .po?

Either works. A theme's .pot comes back as an Italian .po, with msgid lines unchanged and msgstr lines filled. If a partial Italian .po already exists, send that to keep its structure.

Do I get the .mo file?

No, you receive the .po. Open and save it in Poedit or Loco Translate to generate the .mo that WordPress reads. Name both files with it_IT.

Are pages and posts translated too?

Yes, if they go through WPML's XLIFF export, which Manuce handles. The .po files only hold theme and plugin strings, not your editorial content.

How are Italian plurals handled?

In a WordPress .po, Italian uses two forms, msgstr[0] for singular and msgstr[1] for plural, with Plural-Forms: nplurals=2; plural=(n != 1);. The CLDR many category mainly concerns large round numbers and does not appear as a separate form in these files. Check the header after delivery.

Will dates display the Italian way?

Date formats are not translated, so F j, Y stays as it is in the file. Change it to j F Y to get “5 marzo 2025”. Italian month names come from the language installed for WordPress itself.

The specialist in charge

This subject goes to Dédale, the technical specialist. See how it works.

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.

Upload my file