Translate a Vue app into Italian
Upload your vue-i18n JSON locale file. Manuce returns the same file with the values in Italian and the {name} placeholders and | plural separators untouched. It comes with a report of what was translated and what was left as is. Before you start, isolate placeholders that force gender agreement and decide between formal (Lei) and informal address.
What it costs
For the language files of a Vue 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.
Plurals, gender and articles: what Italian changes in your messages
vue-i18n separates plural forms with | and picks a form by position, not by CLDR category. For Italian (categories one, many, other) this works well: the singular is used only for 1, and zero takes the plural (‘0 articoli’). A three-form string translates directly:
- source:
no items | one item | {count} items - Italian:
nessun articolo | un articolo | {count} articoli
The many category only covers large round numbers written in words (‘1 milione di utenti’, with di). If your UI shows that kind of counter, give it its own string rather than adding a form to the | list.
The real trap is elsewhere: Italian adjectives and participles agree in gender, and articles elide. With Delete the {item}, Italian needs ‘il file’, ‘l'account’ or ‘lo zaino’ depending on the inserted word. Likewise, {name} has been added becomes ‘aggiunto’ or ‘aggiunta’. A single string cannot cover all of these. Rewrite the source so the placeholder stands alone: Item deleted: {item}. For greetings, ‘Benvenuto, {name}’ assumes a man; ‘Ti diamo il benvenuto, {name}’ avoids the choice.
Accents, punctuation and register in Italian UI text
Points a reviewer should check in the Italian file:
- Accents: a capital accented E is
È, neverE'(‘È necessario effettuare l'accesso’). Words ending in ‘-ché’ take an acute accent: perché, poiché. - Punctuation: no space before colons, question marks or exclamation marks. If your source is French, ‘Attention :’ becomes
Attenzione:. - Capitals: Italian does not use title case, nor capitals for months and weekdays. ‘Account Settings’ becomes ‘Impostazioni account’, and dates read ‘lunedì 3 marzo’.
- Apostrophes: elisions are everywhere (l'utente, dell'ordine, un'email). Inside double-quoted JSON they cause no problems, but pick straight or typographic apostrophes and stay consistent.
Settle the register before translating. Formal Italian uses the third person (Lei): ‘Inserisca la password’. Many consumer apps use the informal form instead: ‘Inserisci la password’. Both are correct; mixing them is not. The free extract shows you the register you will get before you pay, so check it on a form message.
What Manuce returns, and what it does not do
You upload a vue-i18n JSON file and get the same file back, with only the values in Italian. Indentation, key order, quotes, comments, line endings, encoding and BOM are all preserved.
- Placeholders such as
{name}or{count}and the|plural separators stay in place. - Every translated value is checked against the source (placeholders, tags). If a mismatch persists, the source value is kept and the report says so. An untranslated string is better than a missing
{count}. - Not translated: keys (
cart.emptystayscart.empty), empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable.
The report lists the strings translated and those left as they were, with the reason. Pricing is based on the words in the values, excluding keys and tags. Italian is charged at the base rate (×1 coefficient).
Manuce does not touch your code. It does not register the it locale in createI18n or create date and number formats. It works on JSON files: if your messages live in <i18n> custom blocks inside .vue components, extract them to JSON first. It does not provide sworn or certified translation, which a user interface rarely needs.
Dates, numbers and string length: handled in the app
Formats do not go through translation: vue-i18n produces them from the locale. Declare it-IT in your date and number formats. You will then get 1.234,56, with a full stop for thousands and a decimal comma, and day/month/year dates (03/03/2025). A string that hard-codes a number layout around {amount} should receive a value already formatted with $n or $d.
Italian runs close to French in length but is often longer than English. ‘Settings’ becomes ‘Impostazioni’, and ‘Sign in’ becomes ‘Accedi’ or ‘Effettua l'accesso’. Watch fixed-width buttons, tabs and badges. English compound nouns turn into phrases with prepositions (‘password reset’ → ‘reimpostazione della password’), which stretches short labels.
Preparing the file and checking the result
- Start from your up-to-date reference locale file, with no orphan keys.
- Isolate placeholders that carry a name or an object, so Italian is never forced into an impossible agreement.
- Note any linked messages
@:keyand characters that vue-i18n syntax treats specially (@,{ },|): a stray@in a string can be interpreted. Check the console after integration.
Once delivered, rename the file it.json and add it to the messages in createI18n, keeping a fallbackLocale. Then test every plural with 0, 1 and 2. Finally, read the report to deal with any strings left in the source language.
In practice
- Export your reference JSON locale file, up to date and without orphan keys.
- Upload it, choose Italian and a level, then read the free extract to check the register.
- Accept the quote and download the translated file with its report.
- Rename it it.json, register it in createI18n and add it-IT formats.
- Test plurals with 0, 1 and 2 and review screens with short labels.
Frequently asked questions
Do plural forms separated by | work in Italian?
Yes. The | separators are kept, and Italian uses the singular only for 1, with the plural for 0 and everything else. A two- or three-form string keeps the same number of forms. Test 0, 1 and 2 in the app all the same.
What happens if a {name} placeholder is lost in translation?
Every translated value is compared with the source. If placeholders or tags still do not match, the source value is kept and the report flags it. You know exactly which strings to revisit.
Will dates and numbers appear in Italian format?
Date formats and numbers are not translated; vue-i18n formats them. Add the it-IT locale to your date and number formats to get 1.234,56 and day/month/year dates.
How is the price worked out for Italian?
The quote appears as soon as you upload the file and is based on the exact number of words in the values, excluding keys and tags. Italian is at the base rate, with a ×1 coefficient. Payment is taken before the work starts.
Can I translate the app into Italian and other languages at once?
Yes. From two languages upwards, a discount applies to the whole order: −20% for 2, −30% for 3, −40% for 4 and −50% from 5. Each language comes back as a file in the same format as the source.
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.