ManuceTranslate a fileTranslate a Laravel App into Italian

Translate a Laravel App into Italian

Upload your Laravel JSON language file and Manuce returns the same file with Italian values and untouched keys, ready to save as lang/it.json. Placeholders such as :name are checked string by string, and a report lists anything left untranslated and why.

Upload my file See pricing

What it costs

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

Essentiel
€15

To understand, internal use.

Professional
€45

Ready to send, by the technical specialist.

Premium
€88

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 Italian changes in a Laravel interface

Italian uses the Latin alphabet and runs left to right. It is noticeably longer than English and close to French in length, so if your source is English, allow some extra room on buttons, table headers and validation messages.

  • Register. Business software usually addresses the user with the formal Lei: “Inserisca la password” rather than the informal “Inserisci la password”. Pick one before translating; switching between tu and Lei across screens is immediately noticeable to Italian users.
  • Accents. Italian distinguishes grave and acute accents: è (is) but perché, né. At the start of a sentence or in capitals it is È, not E', a keyboard shortcut that looks careless in a heading.
  • Articles before placeholders. The Italian article depends on the word that follows (il, lo, l’, la), so it cannot sit safely in front of a variable. Put a fixed noun first: “Il campo :attribute è obbligatorio”.
  • Gender agreement. “:name has been deleted” becomes “:name è stato eliminato” or “è stata eliminata” depending on what the variable refers to. If it could be a product or an invoice, rephrase with a neutral noun: “L’elemento :name è stato eliminato”.

Plurals: Laravel syntax and Italian rules

CLDR defines three plural categories for Italian: one, many and other. Many covers very large round numbers, which take the preposition di: “un milione di utenti”. In everyday UI strings you will mostly deal with ordinary singular and plural.

Laravel handles plurals with trans_choice and pipe-separated forms. A well-built Italian value looks like this:

{0} Nessun messaggio|{1} Un messaggio|[2,*] :count messaggi

  • keep the number of | segments consistent with your trans_choice calls;
  • ranges such as {0}, {1} and [2,*] are not text and must stay identical;
  • the zero case is often written with nessun / nessuna, which agrees with the noun: “Nessuna notifica”.

Review these plural strings in the returned file: they are the ones most likely to break on screen.

What Manuce returns, and what it does not do

Manuce supports Laravel lang/<locale>.json files. You get back the same file in the same format: indentation, key order, quotes, line endings, encoding and BOM preserved. Only the values change.

  • Keys are never translated. In Laravel JSON files the key is often the source sentence itself ("Welcome, :name"); it stays as it is, because that is what your code calls.
  • Placeholders are checked. Each translated value is compared with the source. If :name, :count or a tag goes missing or changes and the mismatch persists, the source value is kept and the report says so. Laravel also distinguishes case variants (:Name, :NAME); keep them as they are.
  • Left untranslated: empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything you mark as non-translatable.
  • A report comes with the file: strings translated, strings left as they were, and why.

What Manuce does not do: PHP array files (lang/en/validation.php, auth.php, or anything under lang/vendor) are not supported and must be converted to JSON first. Text hard-coded in Blade views, outside the language file, cannot be translated. Manuce does not provide sworn or certified translation, should your Italian terms of service require it.

The quote counts only words in values, excluding keys and tags; Italian is charged at the base rate (×1 coefficient).

Preparing the file

  1. Choose your source. Start from the most complete, best-reviewed file, such as lang/en.json. The returned file keeps its name, so rename it it.json before putting it in lang/.
  2. Convert PHP arrays. If validation or auth messages live in lang/en/*.php, export them to JSON. Watch nested keys like min.string: settle on a flat key convention before converting.
  3. Protect fixed names. Brand names, plan names (“Pro”, “Team”) and product modules should be marked as non-translatable.
  4. Decide the register. Lei or tu is the first question to settle for an Italian audience.

Ask for the free sample before paying: one paragraph of your file, translated at the chosen level, is enough to judge register and placeholder handling.

Checking the Italian build

  • Switch locale with App::setLocale('it') or the locale config value, and make sure fallback_locale points to your source language so any string missing from it.json still displays.
  • Go through the report: every value left in the source language is listed with a reason, often a placeholder the Italian sentence moved awkwardly.
  • Check that accents render: a garbled è points to an encoding issue in your deployment, since the returned file keeps the original encoding.
  • Dates and numbers are not translated: their Italian form (25/03/2025, 1.250,50) comes from your code and Carbon’s locale, not from the JSON file.

In practice

  1. Convert any PHP array language files to JSON.
  2. Upload lang/en.json (or your source file) and select Italian.
  3. Read the free sample to confirm register and placeholders.
  4. Download the translated file and report, then rename it it.json.
  5. Place it in lang/, switch to the it locale and review plurals.

Frequently asked questions

Should my app use tu or Lei in Italian?

For business software or paid services, the formal Lei is the safer choice: “Inserisca”, “Confermi”. Tu appears in casual consumer apps. What matters most is not mixing the two in one interface.

My validation messages are in lang/en/validation.php. Will they be translated?

No, PHP array files are not supported. Convert them to JSON before uploading; Manuce will then translate the values while keeping :attribute, :min and :max.

What happens if a :name placeholder is lost in translation?

Every value is compared with the source. If the mismatch persists, the source value is kept in the file and flagged in the report, so you can rephrase it yourself or resubmit it.

Will the keys in my JSON file be translated?

No. In Laravel the JSON key is what your code passes to __(), so changing it would break lookups. Only values are translated, and only their words count towards the quote.

Is Italian more expensive than other languages?

Italian is charged at the base rate, with a ×1 coefficient. If you translate the same file into several languages, a discount applies to the whole order from two languages, for example −20% for Italian and Spanish together.

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