ManuceTranslate a fileTranslate an iOS app into Japanese

Translate an iOS app into Japanese

Upload your Localizable.strings files or your Xcode String Catalog (.xcstrings): Manuce translates the values into Japanese and returns the same file, ready to drop back into your project. Format specifiers such as %@, %d and %1$@ are checked, and a report lists what was translated and what was left as it was.

Upload my file See pricing

What it costs

For the language files of a iOS app totalling about 2,000 words, into Japanese:

Essentiel
€19

To understand, internal use.

Professional
€58

Ready to send, by the technical specialist.

Premium
€112

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 your iOS strings

Japanese combines three scripts: kanji for meaning (設定, ‘Settings’), hiragana for grammar and katakana for loanwords (ダウンロード, ‘Download’). It has no spaces between words and uses full-width punctuation: the comma 、 and full stop 。 each take the width of a whole character.

  • Length: a Japanese string often has fewer characters than its source, but each glyph is wider. A button label that fits in English or French may truncate once it becomes katakana.
  • Line breaks: without spaces, text can wrap between almost any two characters. Avoid hand-placed \n inside values, as they were designed for the source language.
  • Register: consumer apps usually address the user in the polite です・ます form (保存しました。, ‘Saved’), while buttons stay as short nouns: 保存, キャンセル.
  • Word order: the verb comes last. ‘%@ liked your photo’ becomes %@さんがあなたの写真に「いいね」しました: the variable moves, and so does the punctuation.

Plurals and placeholders: the ‘%d’ trap

Japanese has a single CLDR plural category: other. In a String Catalog, where English needs one and other, the Japanese target keeps just one variation. That is expected, not an omission.

Japanese does, however, count with classifiers: 件 for items, 人 for people, 枚 for photos. So "items_count" = "%d items"; becomes "items_count" = "%d件";, whereas ‘%d photos’ calls for something like %d枚の写真. If one key is reused to count different kinds of things, split it before translation.

When a sentence holds several variables, Japanese word order often swaps them. Use positional specifiers: %1$@ shared %2$@ can safely become %1$@さんが%2$@を共有しました, whereas two anonymous %@ cannot change places. Manuce checks that every %@, %d or %1$@ in the source is present in the translated value.

What Manuce returns, and what it does not do

Supported formats: Localizable.strings (UTF-8 or UTF-16) and the Xcode String Catalog .xcstrings. In a catalogue, the ja language is added, plural variations included.

  • The returned file is the same file: indentation, key order, quotation marks, comments, line endings, encoding and BOM are preserved. Only the values change.
  • Each translated value is compared with its source (placeholders, tags). If a mismatch persists, the source value is kept and the report says so, so you can see at once which string needs attention.
  • Not translated: keys, empty values, 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.

Manuce works on the file; it does not build or run your app. Checking the Japanese screens for truncation and line wrapping is still done in the simulator. Because date formats are not translated, a fixed pattern such as MM/dd/yyyy stays as it is: to get 2024年5月1日, let the system format dates for the user's locale.

Preparing your project before upload

  • Context comments: a comment such as /* Button, one word max */ above a key is preserved and helps choose between 送信 (short) and a longer phrasing.
  • Positional specifiers: replace strings containing several %@ with %1$@, %2$@ before translation, not afterwards.
  • Concatenation: a sentence built by joining two keys (‘Hello’ + name) cannot be reordered for Japanese. Merge it into one value with a placeholder: %@さん、こんにちは.
  • Non-translatable content: mark your app name, brand names and any terms that must stay in Latin script.
  • Fonts: if you use a custom font without Japanese glyphs, text will fall back to the system font; make sure your layout copes with it.

Checking the result in Xcode

Once the file is back in the project, run the app in Japanese and go through the points specific to this language:

  • katakana buttons and tab labels, which are the most likely to truncate;
  • larger Dynamic Type sizes, where Japanese lines wrap without spaces;
  • punctuation: no 。 on a button label, but one at the end of a message sentence;
  • any strings the report lists as left in the source language.

For an internal first look, the Essential level is enough; for a public release, Professional or Premium better matches the register Japanese users expect.

In practice

  1. Export your Localizable.strings or .xcstrings file from your Xcode project.
  2. Upload it to Manuce, choose Japanese and a level, then read the free sample.
  3. After payment, download the translated file and the report from your account.
  4. Put the file back in the project and check the Japanese screens in the simulator.

Frequently asked questions

Why does my ‘one’ plural variation disappear in Japanese?

Japanese has only one CLDR plural category, ‘other’. In a String Catalog the Japanese target therefore receives a single variation. This is correct behaviour: the app shows the same form whatever the number.

Will my English keys be translated?

No. Keys are never translated, only values. URLs, email addresses, numbers, identifiers and date formats are also left unchanged.

What happens if a %@ placeholder goes missing in translation?

Every translated value is compared with its source. If a placeholder or tag mismatch persists, the source value is kept and the report flags it, so you can deal with that string separately.

Will a UTF-16 file with a BOM stay that way?

Yes. Encoding, BOM, line endings, indentation, key order and comments are all preserved. The file can go straight back into the project.

Why does Japanese cost more?

Japanese is a surcharged language: a ×1.6 coefficient applies to the per-word rate. The quote appears as soon as you upload and counts only the words in the values, not keys or tags.

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