ManuceTranslate a fileTranslate a Laravel app into Japanese

Translate a Laravel app into Japanese

Manuce translates your Laravel JSON language file into Japanese: only the values change, while keys, indentation and placeholders such as <code>:name</code> stay exactly as they were. PHP array files in <code>lang/en/*.php</code> must be converted to JSON first. You get back a file ready to drop in as <code>lang/ja.json</code>, with a report of every string left untouched.

Upload my file See pricing

What it costs

For the language files of a Laravel app totalling about 2,500 words, into Japanese:

Essentiel
€24

To understand, internal use.

Professional
€72

Ready to send, by the technical specialist.

Premium
€140

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 Laravel strings

Japanese puts the verb at the end and writes words without spaces, so Laravel placeholders move and attach directly to the text: "Welcome back, :name!" becomes something like "おかえりなさい、:nameさん。". The placeholder must stay exactly as in the source, including :Name or :NAME. Capitals mean nothing in Japanese, but Laravel uses them to format the inserted value.

  • Plurals: Japanese has a single CLDR category, other. For this locale Laravel always picks the first segment of a trans_choice string. If "one item|:count items" keeps two segments, the first one is shown whatever the number, so it must contain :count. Explicit ranges such as {0} remain useful for an empty state.
  • Counters: numbers take a counter word that depends on what is counted: :count件 for results, :count人 for people, :count個 for objects.
  • Punctuation: full-width comma 、 and full stop 。 in sentences, often full-width ? and ! too; no full stop on a button label such as 保存 (Save).

Register, terminology and on-screen display

A professional Japanese interface uses two registers. Buttons and menu items are short nouns (ログイン, 削除); messages addressed to the user use the polite です・ます form: "パスワードが変更されました。". Laravel's notification emails (password reset, email verification) call for more formal keigo; a closing such as "Regards" typically becomes よろしくお願いいたします。.

  • Consistent terms: decide between a katakana loanword and a native term, for instance ダッシュボード or 管理画面 for "dashboard", and use it throughout.
  • Concatenation: Blade such as {{ __('Delete') }} {{ $item }} locks in the source word order. Japanese puts the object before the verb, so use one string with a placeholder: __('Delete :item', ['item' => $item]).
  • Display: with no spaces, browsers may break lines between any two characters. Check your CSS line-breaking rules and load a font that covers kanji, or some characters will fall back to a different typeface.

What Manuce delivers, and what it does not do

Manuce handles Laravel lang/<locale>.json files. You receive the same file: indentation, key order, quotes, comments, line endings, encoding and BOM are preserved; only the values are translated into Japanese.

  • Each translated value is compared with its source: placeholders like :name, :count and :attribute, and any tags, must still be there. If a mismatch persists, the source value is kept and the report says so.
  • Not translated: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable.
  • The report lists translated strings and strings left as they were, with the reason.

Manuce does not read PHP array files (lang/en/validation.php, auth.php and so on): convert them to JSON first. It does not edit your Blade views or configuration either. Pricing is based on the words in the values, keys and tags excluded, with a ×1.6 coefficient for Japanese.

Preparing the project before upload

  • Filled values: empty values are not translated. If your keys are the sentences themselves, as is common with English-source Laravel apps, make sure each value repeats its key, e.g. "Forgot your password?": "Forgot your password?".
  • PHP arrays: convert validation.php to JSON, for example by flattening keys ("required": "The :attribute field is required."), then convert back if you keep PHP arrays in production. In Japanese :attribute moves to the front: ":attributeは必須です。". Translate the field names in the attributes array too, or users will see emailは必須です。.
  • Encoding: UTF-8 without a BOM avoids JSON decoding surprises; Manuce keeps a BOM as it is if one exists.
  • Context: a key like "Order" could mean a purchase (注文) or a sort order (並び順). A more explicit key removes the ambiguity.

Checking the app after delivery

Save the file as lang/ja.json, switch the locale to ja (App::setLocale('ja') or your app configuration) and walk through the screens.

  1. Read the report: strings kept in the source language because of a placeholder mismatch need a manual fix.
  2. Test counters with 0, 1 and 2 items to confirm the first segment of each plural string reads correctly.
  3. Date formats are not translated: set Carbon's locale to ja and adapt your formats, for example to Y年n月j日.
  4. Check narrow buttons and email notifications, where the polite register matters most.

In practice

  1. Convert PHP array files to JSON and fill any empty values.
  2. Upload the JSON file and choose Japanese as the target language.
  3. Review the free excerpt, then accept the quote based on the words in the values.
  4. Save the returned file as lang/ja.json, read the report and test the app in the ja locale.

Frequently asked questions

My keys are already English sentences. Do I still need a source JSON file?

Yes. Manuce translates values, not keys, and leaves empty values alone. Create a file in which each value repeats its key; you get the same file back with Japanese values, ready to save as lang/ja.json.

Are validation messages in lang/en/validation.php supported?

Not as a PHP array. Convert them to JSON before uploading, and back again if you want to keep the PHP format. Placeholders such as :attribute, :min and :max are checked like any other.

How are plurals handled in Japanese?

Japanese has one plural form, and Laravel always uses the first segment of a plural string for this locale. After delivery, check that this first segment contains :count and the right counter word, such as 件 or 人.

What happens if a placeholder gets lost in translation?

Every translated value is compared with its source. If the mismatch persists, the source value is kept and flagged in the report, so your app shows the original text rather than a broken string.

Can I have my terms and conditions translated for Japan?

Manuce can translate them, but it does not produce sworn or certified translations. If you sell online in Japan, the disclosure page required under the Act on Specified Commercial Transactions (特定商取引法に基づく表記) is something to draft with local advice, not just translate.

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