Translate a React or Next.js App into Italian
Upload your app's JSON locale files (i18next, react-intl or next-intl) and get them back in Italian, with the same keys, the same structure and untouched placeholders. Only the values change, and a report shows what was translated and what was left as it was.
What it costs
For the language files of a React or Next.js app totalling about 2,500 words, into Italian:
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 Italian changes in your strings
Italian uses the Latin alphabet, runs left to right, and its strings are usually longer than English ones. In a React or Next.js interface, the real difficulties are grammatical, and they show up wherever strings are stitched together.
- Three plural categories: one, many and other. The many form covers large round numbers such as a million («1 milione di file»). Zero falls under other: «0 file eliminati», not «eliminato».
- Gender agreement:
Benvenuto, {{name}}assumes a man. A phrasing such asLe diamo il benvenuto, {{name}}avoids the problem without touching the placeholder. - Articles and elision: il, lo, la or l' depend on the word that follows.
Elimina il {{item}}breaks as soon asitemis «immagine» or «studente».
Many English loanwords are invariable in Italian (file, account, email). In {count, plural, one {# file eliminato} other {# file eliminati}}, only the participle takes the plural.
Register, capitals and accents
The translation uses the formal register, Lei: «Inserisca la password» rather than «Inserisci la password». Buttons stay short, in the imperative or infinitive («Salva», «Annulla», «Accedi»). If your product addresses users informally, plan to review those messages.
- No title case: «Impostazioni dell'account», not «Impostazioni Account». Days and months are lower case (lunedì, gennaio).
- Grave and acute accents: è (is), perché, più. At the start of a sentence the correct form is «È», not «E'».
- Fonts: if you load a web font with a character subset, the Latin subset covers à è é ì ò ù and È. Check this if you use an icon font or a hand-trimmed font file.
- Length: «Forgot password?» becomes «Password dimenticata?». Check the navigation bar, tabs and fixed-width buttons.
What Manuce returns, and what it does not do
Manuce handles JSON files from i18next, react-intl and next-intl. Nested keys, {{name}} interpolations and ICU messages are preserved.
- The same file: indentation, key order, quotes, comments, line endings, encoding and BOM are preserved. Only the values change, so the file can go straight back into the project, for instance as
it.json. - A check on every value: each translation is compared with the source for placeholders and tags such as
<b>{name}</b>. 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 you have marked as non-translatable.
- The report: it lists the strings that were translated and those left unchanged, with the reason.
Manuce does not add keys. If your source only has _one and _other, no _many variant will appear on its own. Strings hard-coded in your components are not covered, because only the files you upload are read. Manuce does not provide sworn or certified translation: if your Italian terms of service must be certified, you need an accredited translator. Pricing is based on the words in the values, with keys and tags excluded, and Italian is charged at the base rate (×1 coefficient).
Preparing the files and checking after import
Numbers, dates and amounts are not translated in the JSON; your code formats them. With Intl.NumberFormat('it-IT') or next-intl's formatting functions, you get «1.234,56», «12,50 €» and dates such as «12 marzo 2025» or «12/03/2025». Avoid baking formats into strings, such as "On {{date}}" with a date already formatted as month/day.
- Replace concatenations (
t('delete') + ' ' + t('file')) with complete sentences that use placeholders. - Add a
_manykey to the source if your counters can reach a million. With ICU, theotherbranch acts as the fallback. - Mark brand and plan names («Pro», «Team») as non-translatable.
- After import, test counters with 0, 1, 2 and 1000000, then go through the most text-heavy screens.
- Read the user-facing error messages to check that Lei is used consistently.
In practice
- Gather your source JSON files (such as en.json) and mark the terms that must stay as they are.
- Upload them to Manuce to get a quote and a free Italian sample.
- Choose a level, then download the Italian file and its report.
- Put the file in the project's it locale folder and declare the locale.
- Test plurals, gender agreement and text-heavy screens.
Frequently asked questions
Will {{name}} placeholders and ICU messages survive?
Yes. Every translated value is checked against the source for placeholders and tags. If a mismatch persists, the source value is kept and the report flags it.
Do I need a many plural form for Italian?
Italian uses one, many and other; many covers large round numbers such as a million. Manuce does not add keys, so if you use i18next and display such counts, create the _many key in your source before uploading.
Is the translation formal or informal?
It uses the formal Lei register, with short buttons in the imperative or infinitive. If your brand prefers the informal tu, plan to review the messages addressed to users.
Can I upload my JSX components directly?
No. Manuce works on i18next, react-intl and next-intl JSON locale files. Strings hard-coded in components must first be extracted into those files.
Will my Italian legal pages be certified?
No. Manuce does not produce sworn or certified translations. For text that must be certified, use an accredited translator.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into Italian, 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.