Translate a Drupal site into English from its .po file
To put a Drupal interface into English, you export a gettext .po file, translate it and import it again with the Interface Translation module. Manuce translates that file and returns the same .po, structure untouched, with every Drupal placeholder checked and a report of anything left unchanged.
What it costs
For the language files of a Drupal site totalling about 5,000 words, into English:
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 a Drupal .po file actually holds
Drupal keeps its interface text in gettext entries: a msgid (source text), a msgstr (its translation) and sometimes a msgctxt that separates two meanings of one word, such as May the month and May the verb. Interface Translation exports and imports these files.
One twist when English is the target: Drupal core and contributed modules are already written in English. What needs translating is mostly:
- strings in your custom modules and theme written in your source language, for instance
t('Ajouter au panier')ort('In den Warenkorb'); - custom labels entered in that language.
For those strings to receive an English translation, English itself must be translatable in your installation. Drupal has a setting that allows interface translation into English, off by default. Check it before exporting, or the file will come out empty or incomplete.
Content (nodes, taxonomy terms, menus, blocks) does not travel through this file; it belongs to Content Translation and Configuration Translation.
What changes when the interface moves to English
- British or American. Decide before ordering: colour or color, organise or organize, and shop vocabulary such as basket (UK) or cart (US). Drupal core is in American English, so a British site will mix both unless you override a few core strings.
- Punctuation. Spaces before colons and question marks, common in French, disappear:
Nom d'utilisateur :becomesUsername:. Angled quotes « » or „ “ become “ ” or ‘ ’. - Capitalisation. Drupal's English interface uses sentence case: Save configuration, not Save Configuration. Match it in your own strings.
- Plurals. English has two forms, one and other, and zero takes the plural: 0 comments, whereas French says « 0 commentaire ». In the file,
msgstr[0]gets1 commentandmsgstr[1]gets@count comments, with the headernplurals=2; plural=(n != 1);. - Length and word order. English is often shorter than Romance languages (around 10 to 15% shorter than French), so buttons rarely overflow. Word order is the real trap: a sentence split into pieces,
Publié par+ name +le+ date, translates badly; a single string,Published by @name on @date, translates cleanly.
What Manuce returns, and what it does not do
You get the same .po file back: header, #: reference comments, msgid, msgctxt, entry order, quotation marks, line endings, encoding and BOM are preserved. Only the translations change.
Each translated value is compared with the source. Every Drupal placeholder must survive intact: @name (escaped text), %title (emphasised text), :url (a URL), and !variable in Drupal 7 files. Markup is checked too, for example <a href=":url">. If a mismatch persists, the source value is kept and the report says so: an untranslated string is better than a broken link.
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 to translate, keys and tags excluded. The report lists translated strings and those left as they were, with the reason.
Manuce works on the file you upload: it does not log into your admin, translate nodes missing from the file or change the site's date formats, which you set yourself to d/m/Y or m/d/Y. It does not produce certified translations either, which an interface does not need. Professional suits a public site; Essential is enough for an intranet.
Preparing the export, checking after import
Before exporting:
- limit the file to what needs translating, using the export options available; there is no point paying for strings already in English;
- review custom modules: a string passed to
t()with concatenation, such ast('Bonjour ') . $name, will not come through properly; rewrite it ast('Bonjour @name', ['@name' => $name]); - write down your choices: British or American, basket or cart, log in or sign in.
After importing the translated file:
- clear Drupal's caches, or old strings will keep showing;
- test plurals with 0, 1 and 2 items;
- trigger a message containing
%titleto check the emphasis; - review the strings the report lists as left in the source language and fix them by hand if needed.
In practice
- Allow interface translation into English and export the .po file of strings to translate.
- Upload it to Manuce, state British or American English and read the free sample.
- Download the translated .po and its report from your account.
- Import it with Interface Translation, clear caches and test plurals and placeholders.
Frequently asked questions
Drupal is already in English, so what is there to translate?
Core and contributed modules are in English, but the strings you wrote in your own language in custom modules and themes are not. Those are what you export to a .po file and give an English translation. The setting allowing interface translation into English must be switched on.
Does this file translate my pages and articles?
No. The .po file only covers the interface: buttons, messages, labels. Nodes, menus and taxonomy terms belong to Content Translation and Configuration Translation and are not part of this export.
What happens if a placeholder like @count or :url goes missing?
Every translation is compared with the source. If a placeholder or tag is missing and the mismatch persists, the source string is kept and the report flags it, so your site never receives a broken link or counter.
Do I need to choose between British and American English?
Yes, ideally before ordering. It affects spelling (colour, color), some vocabulary (basket, cart) and the date format you set in Drupal. Manuce does not alter date formats in the file.
Are Drupal 7 .po files accepted?
The gettext format is the same. Drupal 7 placeholders such as !variable are checked like the others, and the file comes back with the same structure.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into English, 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.