Translate a Ruby on Rails app into Japanese
Manuce translates the <code>config/locales/*.yml</code> files of your Rails app into Japanese and returns a <code>ja.yml</code> identical to the original except for the values. Placeholders such as <code>%{count}</code> are checked one by one, and a report lists what was translated and what was left as it was. A few Japanese-specific settings in Rails remain yours: pluralisation, date formats and the error message template.
What it costs
For the language files of a Ruby on Rails app totalling about 3,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 Japanese changes in a locale file
Moving from en.yml (or any source locale) to ja.yml is more than swapping words. Japanese puts the verb last, so interpolation placeholders move. 'Hello %{name}' becomes %{name}様、こんにちは; '%{count} comments' becomes %{count}件のコメント, with no space and a counter word (件 for items, 人 or 名 for people).
- No spaces between words: a stray space around a placeholder shows on screen.
%{count} 件is a common slip. - Full-width punctuation: comma
、, full stop。, brackets(). Exclamation marks, common in Western flash messages, are rare in professional Japanese. - Register: messages and emails use the polite です・ます form, with keigo when addressing customers; buttons stay short and noun-like:
保存(Save),削除(Delete). - Three scripts: borrowed technical terms are written in katakana (
ユーザー,パスワード), which can lengthen a label you expected to be short.
Japanese is often shorter in character count than European languages, but every glyph is full-width: a button sized to the pixel for 'Submit' may still overflow.
Plurals, dates and validation errors: Rails pitfalls in Japanese
Japanese has a single CLDR plural category: other. The pair one: '%{count} article' / other: '%{count} articles' collapses into one form, %{count}件の記事. Manuce adapts the one/other keys to the target language; you should check that your app follows the same logic. Without Japanese plural rules loaded (such as those shipped with the rails-i18n gem), the Rails I18n backend looks for one when count is 1, so test that case against your ja.yml.
- Date formats: format strings like
'%m/%d/%Y'are not translated. The Japanese convention'%Y年%m月%d日'is yours to enter, or to take from rails-i18n. - Validation messages:
errors.formatis often'%{attribute} %{message}'. Japanese drops the space to giveメールアドレスを入力してください. Placeholders are checked; the space between them is worth reviewing after delivery. - Models and attributes:
activerecord.models.userandactiverecord.attributes.user.emailfeed forms and errors, so they must match the labels in your views. _htmlkeys: the tags they contain are compared with the source, just like placeholders.
What Manuce returns, and what it does not do
You upload your locale file; you get the same file back, in Japanese, ready to drop into config/locales/.
- The source root key (
en:,fr:and so on) becomesja:. - Indentation, key order, quotes, comments, line endings, encoding and BOM are preserved; only the values change.
- Each translated value is compared with the source (
%{count},%{name}, tags). If a mismatch persists, the source value is kept and the report says so. - Left untouched: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable.
- A report comes with the file: strings translated, strings left as they were, and why.
Manuce does not touch your code: adding :ja to config.i18n.available_locales, choosing a Japanese font or extracting strings hard-coded in .erb views is down to you. Nor does Manuce produce sworn or certified translations: if your Japanese terms and conditions must be legally binding, use a sworn translator. Pricing covers the words in the values only, keys and tags excluded, with the ×1.6 coefficient that applies to Japanese.
Preparing the file and checking the result
- Gather your strings: anything still hard-coded in views or mailers should go through
t('.key')before upload, or it will not be in the file. - Replace concatenation (
t('hello') + ' ' + user.name) with a%{name}placeholder: in Japanese the name sits elsewhere and usually takes the honorific様. - Add a YAML comment to ambiguous labels ('Open' a folder or a session): comments are kept in the returned file and help pick the right term.
- After delivery, load
ja.ymland testcountat 0, 1 and 2, validation messages and email subjects (user_mailer.welcome.subject). - Check buttons and line wrapping: with no spaces, browsers may break Japanese between almost any two characters, so make sure a unit like
3件is not split.
Before paying, the free sample shows one paragraph of your file translated at the chosen level: a good moment to judge the register, polite or more neutral, on your own messages.
In practice
- Export your source locale file, e.g. config/locales/en.yml.
- Upload it to Manuce: instant quote on the words in the values, plus a free sample.
- Choose the level: Professional for an interface aimed at Japanese customers.
- Download ja.yml and the report, then place the file in config/locales/.
- Test plurals, validation messages, date formats and layout.
Frequently asked questions
Should ja.yml keep a one key?
Japanese has a single plural form, other, and Manuce adapts the one/other keys accordingly. What happens next depends on your setup: without Japanese plural rules loaded, Rails looks for one when count is 1. Test that case after delivery.
Will my date formats be converted to the Japanese style?
No. Date format strings are not translated and stay as they are. Enter '%Y年%m月%d日' yourself or reuse the values from the rails-i18n gem.
Will the text use polite Japanese (keigo)?
A professional Japanese interface is expected to use the polite form. The free sample lets you check the register on a paragraph of your own file before paying. A YAML comment can also state who a message is addressed to.
What if a %{name} placeholder gets lost?
Every translated value is compared with the source, placeholders and tags included. If the mismatch persists, the source value is kept and the report flags it, so your app does not break.
Can I order Japanese together with other languages?
Yes. From two languages, a discount applies to the whole order: 20% for two, 30% for three, 40% for four and 50% from five. The ×1.6 coefficient for Japanese still applies to its share.
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.