Translate an Android app into English
Upload your res/values/strings.xml and Manuce returns the same file with English values, keys, comments and attributes untouched, ready to drop into res/values-en. Plurals get the one and other quantities English needs, apostrophes are escaped the Android way, and a report lists every string left as it was.
What it costs
For the language files of a Android app totalling about 2,000 words, into English:
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 strings.xml goes into English
English is usually shorter than Romance languages such as French (around 10 to 15% shorter), so buttons and tabs tend to gain room. The real traps lie elsewhere.
- Apostrophes. English UI text is full of them:
Don’t show again,You’re offline,Can’t connect. An unescaped straight apostrophe in strings.xml breaks the resource build. Manuce writesDon\\'t show again, as Android expects. - Punctuation. No space before colons or question marks: a French
Erreur : %1$sbecomesError: %1$s. Angle quotes or German low quotes become English quotation marks. - Capitalisation.
Account settingsorAccount Settings? Pick one convention and check it holds across menus, dialogs and notifications. - Formality. English has no tu/vous or du/Sie split: both registers end up as
Check your connection.
Plurals: one, other and the zero trap
English has only two CLDR plural categories, one and other. Manuce writes the quantities the target language requires:
<item quantity=\"one\">%d file deleted</item><item quantity=\"other\">%d files deleted</item>
If your source is Polish, Russian or Czech, its few and many forms collapse into these two. If it is French, watch zero: French puts 0 in one, English puts it in other, so the output reads “0 files deleted”.
- Android only uses
quantity=\"zero\"for languages that have that category; in English it is ignored. For “No files”, use a separate string and test the 0 case in code. - Pass the count twice to
getQuantityStringwhen the string contains%d: once to pick the form, once to fill the placeholder.
British or American English: choosing the folder
Android separates variants by folder: res/values-en for English in general, res/values-en-rGB or res/values-en-rUS for a specific region. Strings missing from a regional folder fall back to values-en.
Differences are mostly spelling: Colour/Color, Cancelled/Canceled, Licence/License (noun), Personalise/Personalize. A practical set-up is a complete values-en in the spelling of your main market, plus a small regional file holding only the strings that differ.
Keep date formats out of your strings: 03/04 is 3 April in the UK and 4 March in the US. Let DateFormat follow the device locale. Manuce does not translate date formats found in the file.
What Manuce returns, and what it does not do
You get the same file in the same format: indentation, key order, quotes, comments, line endings, encoding and BOM preserved. Only the values change. string, string-array and plurals are handled.
translatable=\"false\"is respected, soapp_nameor an API key marked that way stays as it is.- Not translated: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers.
- Each translated value is checked against the source:
%1$s,%2$dor a<b>tag must survive. If a mismatch persists, the source value is kept and the report says so.
Manuce only translates what the uploaded file contains: text hard-coded in layouts or in Kotlin or Java code, your Google Play listing and text inside images are outside it. The price is based on the words in the values, with keys and tags excluded.
Preparing the file and checking the result
Before uploading:
- Run the lint check
HardcodedTextand move any labels left in layouts into strings.xml. - Mark
translatable=\"false\"on anything that must not change: brand names, URL schemes, technical values. - Replace concatenated strings (
\"Hello \" + name) with a single string and a placeholder (Hello %1$s), so word order can follow English grammar.
After delivery:
- Place the file in
res/values-en/strings.xml, build, then run lintMissingTranslation. - Read the report: every string kept in the source language is listed with the reason.
- Switch a device to English and test plurals with 0, 1 and 2, plus screens with tight buttons.
In practice
- Gather all interface text into res/values/strings.xml and mark non-translatable values.
- Upload the file to Manuce, check the quote and the free English sample.
- Download the translated strings.xml and its report from your client area.
- Put it in res/values-en, build, and test the app on a device set to English.
Frequently asked questions
Which folder does the translated file go in?
res/values-en/strings.xml, alongside your default res/values. For a specific variant use res/values-en-rGB or res/values-en-rUS; Android falls back to values-en for any string they lack.
Will my %1$s and %d placeholders survive?
Yes. Every translated value is compared with the source, placeholders and tags included. If a mismatch persists, the source value is kept and flagged in the report, so the build and the display do not break.
How are apostrophes handled?
They are escaped the Android way, for example Don\\'t or You\\'re. You do not need to fix them by hand before building.
Will the app name be translated?
Not if it carries translatable=\"false\", which Manuce respects. If you want a different English name, leave the string translatable or write it yourself in values-en.
Does Manuce translate my Google Play listing too?
Not through this file: the store description is not part of strings.xml. Only the values contained in the uploaded file are translated.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into English, 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.