Translate an iOS app into Italian
Upload your Localizable.strings or .xcstrings String Catalog and Manuce adds Italian, plural variations included, returning the same file ready to drop back into Xcode. Keys, format specifiers and structure stay untouched, and a report lists what was translated and what was left as is.
What it costs
For the language files of a iOS app totalling about 2,000 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 changes when an iOS app speaks Italian
Italian uses the Latin alphabet, left to right, so there are no script or direction issues. Coming from English, though, labels usually grow, which matters in tab bars and narrow buttons. The real traps are grammatical.
- Register. By default the translation addresses the user with the formal Lei (‘Inserisca la password’). Many consumer apps use the informal tu (‘Inserisci la password’). Decide beforehand and keep it consistent across screens. Buttons normally use short forms: ‘Annulla’, ‘Salva’, ‘Elimina’.
- Accents. ‘è’ (is) is not ‘é’; ‘perché’ takes an acute accent. The capital is ‘È’, never ‘E'’: check any strings your code uppercases.
- Punctuation. Italian puts no space before ‘?’, ‘!’ or ‘:’. If your source is French, ‘Supprimer ?’ becomes
"Eliminare?". - Articles before a variable. Italian elides and varies its articles: ‘l'album’, ‘il brano’, ‘lo sfondo’. A string such as
"Delete the %@?"cannot carry a fixed article without knowing the inserted word, so the translation rephrases, for instance"Eliminare %@?". - Gender.
"%@ è stato aggiunto"is wrong if %@ is feminine (‘aggiunta’). If the inserted value can change gender, use separate keys.
Italian plurals: one, many, other
Italian has three CLDR plural categories: one, many and other. one covers 1 (‘1 messaggio’), other the everyday case (‘0 messaggi’, ‘5 messaggi’), and many rare cases with very large round numbers, where the preposition di appears (‘1 milione di messaggi’).
In a String Catalog (.xcstrings), Manuce adds the it language with its plural variations: each category gets its own form and the %d stays in place. Watch out for invariable nouns: ‘1 file’, ‘3 file’; ‘1 città’, ‘4 città’. The variation still exists, it simply holds the same text.
As in English, zero takes the plural (‘0 elementi’). If your app shows a special message for zero (‘Nessun elemento’), that is a separate key, not a plural category.
A Localizable.strings file has no plural variations: a value such as "%d photos" stays a single string. If your app displays counters, the String Catalog is the better format for Italian.
What Manuce returns, and what it does not do
You upload your Localizable.strings (UTF-8 or UTF-16) or your .xcstrings catalogue; you get back the same file, in the same format, ready to put back into the project.
- Indentation, key order, quotes, comments, line endings, encoding and BOM are preserved; only the values change.
- The specifiers
%@,%dand%1$@are checked. Italian often moves the variable:"%@'s photos"becomes"Le foto di %@", and the specifier must survive the move. - Every translated value is compared with the source (variables, tags). 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 the strings translated and those left unchanged, with the reason. Pricing is based on the words in the values, keys and tags excluded; Italian is charged at the base rate (×1 coefficient).
What Manuce does not do here: it does not edit your Swift code, touch your screenshots or test the layout inside the app. Nor does it produce sworn or certified translations, which are occasionally requested for terms and conditions aimed at Italy.
Preparing the file and checking the Italian build
- Comment ambiguous keys. ‘Open’ can be ‘Apri’ (a button) or ‘Aperto’ (a shop's status). The comment is kept in the file and steers the translation.
- Flag what must not change. App name, branded feature names, promo codes: mark them so they stay as they are.
- Avoid concatenation. A sentence assembled in code (
"You have " + count + " new") cannot follow Italian word order. A single string with%dtranslates cleanly. - Leave dates and numbers to the formatters. Italy writes 25/12/2025 and 1.234,56 €; formats hard-coded into your strings are not converted.
- Use the free sample. One paragraph translated at your chosen level, before paying, is enough to confirm the Lei or tu register.
- Check in the simulator. Run the app in Italian and look at narrow buttons, capital ‘È’, and counters at 0, 1 and 2.
In practice
- Export your Localizable.strings or .xcstrings String Catalog from the Xcode project.
- Upload the file, choose Italian and a level: the quote appears instantly, based on the exact word count.
- Read the free sample to confirm the register (Lei or tu) and the tone of buttons.
- Download the translated file and its report from your client area.
- Put the file back into the project and test the app in Italian in the simulator.
Frequently asked questions
Should an Italian app use Lei or tu?
By default the translation uses the formal Lei, common for banking, public-service or professional apps. Many consumer apps prefer tu, which feels more direct. What matters is deciding up front and not mixing the two across screens.
Does Italian really have three plural forms?
According to CLDR, yes: one, many and other. In practice many only applies to very large round numbers (‘1 milione di messaggi’). In an .xcstrings catalogue Manuce fills all three variations; a Localizable.strings file has no plural variations.
Could my %@, %d and %1$@ specifiers get broken?
Every translated value is compared with the source, variables and tags included. If a mismatch persists, the source value is kept and flagged in the report, so the app does not crash on a missing specifier.
How long does it take to translate the language files?
For a typical file, the translation is delivered within minutes. The quote is instant when you upload, and your files remain available in your client area.
Is the App Store listing translated along with the app?
This page covers the app's language files: Localizable.strings and .xcstrings catalogues. The App Store description and keywords are not stored in them, so they need to be handled separately.
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.