Translate an Android app into Spanish
Upload your app's res/values/strings.xml and Manuce translates the string, string-array and plurals values into Spanish, returning the same file ready to drop into res/values-es/. Keys, placeholders and entries marked translatable="false" stay untouched, and a report lists what was translated and what was left as it was.
What it costs
For the language files of a Android app totalling about 2,000 words, into Spanish:
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 Spanish changes in your strings
Spanish text usually runs longer than English. "Save" becomes Guardar, "Settings" becomes Configuración or Ajustes: narrow buttons, tabs and toolbar actions are where labels start to truncate.
- Inverted punctuation: questions open with ¿ and exclamations with ¡, even around a placeholder:
¿Eliminar %1$s?,¡Listo!. Both characters are written as-is in UTF-8, with no escaping. - Capitalisation: Spanish does not use Title Case. "Account Settings" becomes
Configuración de la cuenta; days and months are lower case (lunes,enero). - Gender: participles agree with the noun. A single "%1$s saved" string reused for a file and a photo needs
guardadoin one case andguardadain the other. Split it into two strings. - Register: informal
Toca para continuaror formalToque para continuar. Informal tú is common in consumer apps in Spain; in Latin America usage varies by country and audience.
Spain or Latin America: Android reads generic Spanish from res/values-es/ and, from Android 7.0, accepts a Latin American variant in res/values-b+es+419/ (or per country, such as values-es-rMX). Vocabulary differs: ordenador / computadora, móvil / celular.
Spanish plurals: one, many, other
CLDR gives Spanish three plural categories: one, many and other. one covers 1 and other covers most numbers, including zero: 0 archivos is plural. many is used for large round numbers such as a million, where Spanish inserts "de": un millón de descargas.
A translated block therefore looks like this:
<item quantity="one">%d archivo</item><item quantity="many">%d de archivos</item><item quantity="other">%d archivos</item>
If your source only has one and other, as English does, Manuce also writes the many item Spanish requires. In your code, avoid two traps: a plain string such as %d file(s), which cannot agree in Spanish, and a number concatenated to a word in Kotlin or Java. Use getQuantityString() so Android picks the right form.
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 are preserved; only the values change. In practice:
string,string-arrayandpluralsare translated;translatable="false"entries are respected;- apostrophes and special characters are escaped the Android way: a name such as O'Brien stays
O\'Brienin the Spanish value; - every translated value is checked against the source: if
%1$s,%2$dor a<b>tag goes missing or changes and the mismatch persists, the source value is kept and the report says so; - keys, empty values, URLs, email addresses, numbers, colours, date formats and identifiers are not translated.
The report lists translated strings and those left unchanged, with the reason. Pricing counts only the words in the values, excluding keys and tags; for language files of around 2,000 words the quote appears as soon as you upload.
What Manuce does not do: build or test the app, translate text hard-coded in layouts or code, or translate your Google Play listing, which is not part of strings.xml. Nor does it provide certified (sworn) translation, should legal text inside the app require one.
Preparing the file and checking the result
Before uploading:
- mark
translatable="false"on anything that must stay identical: brand name, API keys, technical channel IDs; - use positional placeholders. "Page %1$d of %2$d" becomes
Página %1$d de %2$d, but a sentence where Spanish reverses the order only works with%1$sand%2$s, not two bare%s; - split strings reused in different contexts (gender, singular and plural);
- decide on the variant (Spain or Latin America) and the register, then check both on the free extract before paying.
After delivery:
- place the file in
res/values-es/strings.xml(or the folder for your chosen variant); - build, switch a device to Spanish and walk through the screens: truncated buttons, titles wrapping onto two lines, missing ¿ or ¡ in strings you add later;
- read the report: every string left in the source language is explained;
- make sure dates and numbers are formatted by locale (
DateFormat,NumberFormat) rather than hard-coded: Spain writes1.250,50, Mexico1,250.50.
In practice
- Export res/values/strings.xml and mark translatable="false" on anything that must not change.
- Upload the file, choose Spanish and review the quote based on the words in the values.
- Check the free extract: variant, tú or usted register, ¿ and ¡ punctuation.
- Drop the delivered file into res/values-es/, build and walk through the app in Spanish.
- Read the report for any strings kept in the source language.
Frequently asked questions
Do I need separate files for Spain and Latin America?
Not necessarily: many apps ship a single res/values-es/. If most of your users are in Latin America, a variant in values-b+es+419 lets you adapt vocabulary such as computadora or celular. Each variant is then a separately translated file.
Will the extra many plural item cause problems?
No. It is a category CLDR defines for Spanish, used for large round numbers such as a million. Android selects the form according to the language's plural rules, and having many written means the form is there when the system asks for it.
Could my %1$s placeholders or tags get broken?
Every translated value is checked against the source, placeholders and tags included. If a mismatch persists, Manuce keeps the source value for that string and flags it in the report, so the app does not crash at runtime.
Can I choose between informal tú and formal usted?
Decide beforehand and check it on the free extract, which shows a passage of your file translated at the level you picked. Tú is common in consumer apps in Spain; usted suits some services in Latin America or a professional audience.
Is my Google Play listing translated as well?
No: the store description is not part of strings.xml, and Manuce translates the file you upload. Text hard-coded in layouts or code is not translated either, so move it into strings.xml first.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into Spanish, 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.