ManuceTranslate a fileTranslate a Drupal site into Italian: .po files ready to import

Translate a Drupal site into Italian: .po files ready to import

To translate a Drupal site into Italian, upload the .po file exported by the Interface Translation module: Manuce returns it in the same format, with the msgstr values filled in Italian and placeholders checked. You then import it back. Here is what Italian changes in that file and what to check.

Upload my file See pricing

What it costs

For the language files of a Drupal site totalling about 5,000 words, into Italian:

Essentiel
€29

To understand, internal use.

Professional
€90

Ready to send, by the technical specialist.

Premium
€175

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 Drupal expects for Italian

Drupal translates its interface through gettext .po files, imported and exported by the Interface Translation module. The Italian file is tied to the language code it and pairs each source string (msgid, always in English) with a translation (msgstr). That is the file you upload, and the same file comes back.

Three parts of a .po file need particular care in Italian:

  • Plurals: a string with msgid "1 comment" / msgid_plural "@count comments" needs two forms, for example msgstr[0] « 1 commento » and msgstr[1] « @count commenti ».
  • Context: msgctxt separates strings that look identical in English. « May » in the month-name context becomes « maggio », not a modal verb.
  • Placeholders: @name (escaped text), %name (rendered in italics) and :url (an address inside an attribute) must come out exactly as they went in.

Italian pitfalls in a Drupal interface

  • Accents: « è » (is) and « e » (and) are different words. The capital is « È », never « E' ». « Perché », « poiché » and « affinché » take an acute accent. The file encoding is preserved, so these characters reach Drupal intact.
  • Elision before a placeholder: Italian elides articles before a vowel (« l'articolo », « un'immagine »). Before %title you cannot know the first letter of the title, so avoid the article: « Eliminare %title? » rather than « Eliminare il %title? ».
  • Gender agreement: @type %title has been created. rendered as « @type %title è stato creato. » works for « Articolo » but not for « Pagina base », which is feminine. A neutral phrasing avoids the issue: « Il contenuto %title (@type) è stato creato. »
  • Register: buttons stay short (« Salva », « Annulla », « Cerca »); full sentences addressed to visitors use the formal Lei: « Inserisca il Suo indirizzo email ».
  • Length: Italian generally runs longer than English, so check narrow menu items and buttons; « Log out » becomes « Esci », but « Create new account » becomes « Crea nuovo account ».
  • Plurals: CLDR defines one, many and other for Italian; « many » only covers phrases such as « 1 milione di visite ». The .po file keeps the number of forms declared in its Plural-Forms header, usually two for Italian.

What Manuce returns, and what it does not do

You receive the same .po file: indentation, entry order, quotation marks, comments, line endings, encoding and BOM are preserved; only the values change. It is ready to import back into Drupal.

Each translated value is compared with its source: if @count, %title, :url or a tag such as <em> is missing or altered and the discrepancy persists, the source value is kept and the report says so. A string left in English is better than a message that breaks the page.

Not translated: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable. The price is based on the words in the values, with keys and tags excluded.

The report lists the strings translated and those left as they were, with the reason.

What Manuce does not do: it does not import the file into your site, and this service does not cover content stored in the database (nodes, blocks, menus), which does not go through the interface .po file. Nor does it produce sworn or certified translations; if your Italian legal notices require one, use a sworn translator. For a public-facing site, the Professional level is usually the right choice.

Preparing the file and checking after import

Before uploading:

  • Drupal core and many contributed modules already have community Italian translations. Export, where possible, only the strings still untranslated, typically those from your custom modules and theme.
  • Check the English msgid strings: a typo or ambiguity in the source will carry into the Italian.
  • Ask for the free sample paragraph to judge the register (Lei, tone of messages) before paying.

After import:

  • Display content with 1 and then 2 comments to check msgstr[0] and msgstr[1].
  • Trigger a confirmation message (create, delete) to see %title in place and check gender agreement.
  • Search the file for « E' »: there should be none.
  • Date formats are not in the .po file: set them separately for Italian (« 15 marzo 2025 », day before month).
  • Clear the caches if a string does not appear straight away.

In practice

  1. Export the Italian .po file (code it) from the Interface Translation module, ideally limited to untranslated strings.
  2. Upload it to Manuce: the quote appears immediately, based on the exact word count of the values.
  3. Request the free sample to check the register, then choose a level and pay.
  4. Download the translated .po file and the report of strings left unchanged.
  5. Import the file back into Drupal and check plurals, placeholders and confirmation messages.

Frequently asked questions

My site is in French or German, not English. What is the source language?

In a Drupal .po file the source strings (msgid) are in English, whatever your site's default language. English is therefore the source for the Italian translation. Strings your theme defines directly in another language are translated from that language.

Are placeholders such as @count or %title protected?

Every translated value is compared with its source, placeholders and tags included. If a discrepancy persists, the source value is kept and the report flags it, so the page does not break. You should still check gender agreement in sentences that contain a placeholder.

Does the .po file include my pages and articles?

No. The interface .po file holds labels, buttons and system messages, not content stored in the database such as nodes, blocks or menus. This page covers the translation of the .po file only.

How many plural forms does Italian need?

The .po file declares the number of forms in its Plural-Forms header, usually two for Italian: singular and plural. CLDR's « many » category only applies to phrases like « 1 milione di visite ». Manuce keeps the header and fills each form.

Should an Italian site address visitors formally?

It is not mandatory, but the formal Lei is the expected register for addressing visitors politely, particularly on a business site. Short buttons (« Salva », « Annulla ») stay in the imperative. The free sample lets you check the tone before ordering.

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