Translate a Drupal site into Japanese: the interface .po files
Manuce translates the .po file Drupal exports for its interface into Japanese and returns the same file, ready to import again. Placeholders such as <code>@count</code> and <code>%title</code> are checked string by string, and a report lists what was translated and what was left as it was.
What it costs
For the language files of a Drupal site totalling about 5,000 words, into Japanese:
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 export actually contains
Drupal's Interface Translation module imports and exports the site interface as gettext .po files: button labels, form messages, strings from modules and the theme. Each entry pairs a source string (msgid) with its translation (msgstr). That file is what Manuce translates into Japanese, and what you import back into Drupal afterwards.
Three things in those strings need care:
- Placeholders:
@name(escaped text),%name(escaped and emphasised),:url(a URL). They must come out intact, even when Japanese grammar moves them elsewhere in the sentence. - HTML tags inside some strings, such as
<a href=":url">: they wrap a word that will sit in a different position in Japanese. - Plurals: entries with
msgid_pluraland numbered valuesmsgstr[0],msgstr[1]and so on.
Editorial content (articles, basic pages, custom blocks) lives in the database, not in this file. The .po covers the interface only; page content has to be handled separately.
How Japanese changes your Drupal strings
Word order often flips. The verb comes last and modifiers come first. Submitted by @username on @date might become @usernameが@dateに投稿しました. Drupal's named placeholders allow this: what matters is that every one is present, in whatever order.
No spaces, full-width punctuation. Japanese does not separate words, and the comma and full stop become 、 and 。. A status message like The configuration options have been saved. ends with 。, not a Latin full stop. Spaces are usually not added around placeholders either.
Politeness register. Messages addressed to visitors use the polite です・ます form: ログインしてください。 rather than a blunt imperative. Button labels, by contrast, stay very short, often a bare noun: 保存 for Save, 削除 for Delete.
One plural form. Japanese has only the CLDR category other. The .po header should read nplurals=1; plural=0; and each plural entry has a single value, msgstr[0]. There is a Drupal-specific trap: the singular source is often written with a hard-coded 1 (1 comment). The single Japanese form must therefore use the placeholder, @count件のコメント, or every counter would read 1.
The % placeholders. Drupal wraps %name in an <em> tag, which most themes render in italics. Slanted kanji read poorly; that is a theme setting to plan for, not a translation issue.
What Manuce returns, and what it does not do
You get back the same .po file in the same format: indentation, entry order, quotation marks, comments (including the #: references to modules), line endings, encoding and BOM are all preserved. Only the values change.
Each translated value is compared with its source: same placeholders (@count, %title, :url), same tags. If a mismatch persists, the source value is kept and the report says so. A label left in English is better than a Japanese string that breaks a page or drops a link.
Not translated: the msgid keys, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable. Pricing is based on the words in the values, excluding keys and tags; Japanese carries a ×1.6 coefficient on the per-word rate.
What Manuce does not do:
- it does not touch your site: importing into Drupal, adding the language and configuring it remain your job;
- it does not translate content stored in the database, which is not in the .po;
- it does not change your theme (fonts, italics, line breaking);
- it does not provide certified or sworn translation, irrelevant for an interface but worth knowing if your legal notices require it.
Preparing the export and checking after import
Before uploading:
- Add Japanese (
ja) as a site language, then export the interface .po file. Make sure it is UTF-8. - Open the header and check the
Plural-Formsline: for Japanese it should benplurals=1; plural=0;. A header inherited from another language (nplurals=2) would throw counters off. - List the brand names and product terms that must stay in Latin script, then see how they come out in the free sample: one paragraph of your file translated at the level you choose, before you pay.
After importing into Drupal:
- Read the report: any strings kept in the source language are listed with the reason.
- Check that your theme's font stack includes a Japanese font; otherwise browsers will fall back to whatever system font they find.
- Look at line breaks in menus and buttons: with no spaces, browsers break between characters, which can split a katakana word such as
ダッシュボードacross two lines. - Set Drupal's date formats yourself, as they are not translated: Japanese usage looks like
2024年5月3日. - Walk through the pages dense with placeholders and plurals: login, password reset, form validation errors, pagination, comment counters.
For a public-facing interface aimed at Japanese customers, the Professional level is the sensible choice; Essential is enough for an internal back office.
In practice
- Export the interface .po file from Drupal's Interface Translation module, in UTF-8.
- Check the Plural-Forms header (nplurals=1; plural=0;) and upload the file to Manuce for an instant quote and a free sample.
- Choose a level, pay, and download the same file translated, with its report.
- Import the .po back into Drupal for Japanese and check fonts, line breaks, date formats and counters.
Frequently asked questions
Are @ and % placeholders kept when Japanese word order changes?
Yes, that is checked on every value. Placeholders like @username or @date often move in a Japanese sentence, which is expected; the check is that none is missing or added. If a mismatch persists, the source string is kept and flagged in the report.
How are Japanese plurals handled in the .po file?
Japanese has a single form, so each plural entry gets one msgstr[0]. That form must contain @count, because Drupal's singular source often hard-codes the number 1. Also check that the file header reads nplurals=1; plural=0;.
Will my pages and articles be translated too?
Not through this file. The .po exported by Interface Translation contains only the site interface; articles and pages are stored in the database and need to be handled separately.
Why does translation into Japanese cost more?
Japanese is a surcharged language, with a ×1.6 coefficient on the per-word rate. Only the words in the values are counted, not keys or tags, and the quote appears as soon as you upload the file.
Do I need to change my Drupal theme for Japanese?
Often, and Manuce does not do it for you. Add a Japanese font to the font stack, check how menu labels wrap, and consider removing the italics applied to % placeholders, which make kanji harder to read.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into Japanese, 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.