Translate an Android app into Simplified Chinese
Manuce translates your Android app's res/values/strings.xml into Simplified Chinese and returns the same file, structure untouched, with a string-by-string report. Plurals are written for the single Chinese category, other, and placeholders such as %1$s are checked against the source. You drop the file into the Chinese resource folder and check the layout on a device.
What it costs
For the language files of a Android app totalling about 2,000 words, into Chinese (Simplified):
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 Simplified Chinese changes in your strings
A Chinese string usually has two to three times fewer characters than its English source, but each character is much wider than a Latin letter. Notification settings becomes 通知设置: four characters, yet the button barely gains any room. Do not expect translation to fix a label that was already overflowing.
- No spaces between words. Android can break a line between almost any two characters, so a two-line
TextViewwraps differently from English, andellipsizemay cut a compound word in half. - Full-width punctuation. Comma
,, full stop。, colon:, quotation marks“ ”. An ASCII comma inside a Chinese sentence stands out immediately to a native reader. - Fonts. A Latin font bundled in
res/fonthas no hanzi, so the system falls back to its own Chinese font, whose line height and weight may not match the rest of your UI. Check bold headings and fixed-height fields first. - Large numbers. Chinese counts in units of ten thousand: 15,000 views is commonly written
1.5万. If your code formats these numbers itself, translating the surrounding string is not enough.
Plurals, measure words and placeholder order
Chinese has a single CLDR plural category, other. In a <plurals> block, the quantity="other" item carries the text: %d photos becomes %d 张照片, and the noun never changes form. The real catch is the measure word Chinese puts between number and noun: 张 for a photo, 首 for a song, 条 for a message. A generic string such as %d items has to be translated according to what it actually counts, and an XML comment above the string is the simplest way to say so.
Word order shifts too. Welcome to %1$s, %2$s reads more naturally as %2$s,欢迎使用 %1$s, with the user's name first. With numbered arguments that move is safe; with two anonymous %s it would swap the values on screen. Number them before you send the file.
Sentences stitched together in code, such as getString(R.string.hello) + name, cause the same trouble and cannot be fixed from the resource file: in Chinese the name often belongs before the greeting. A single string with a placeholder is the better pattern.
What Manuce returns, and what it does not do
You upload res/values/strings.xml; you get the same file back in Simplified Chinese, ready to put into your project.
string,string-arrayandpluralsentries are translated; anything markedtranslatable="false"is left alone.- Indentation, key order, comments, quotation marks, line endings, encoding and BOM are preserved: only the values change, so the diff stays readable.
- Apostrophes and special characters are escaped the Android way (
\',\"), which matters when a Chinese value keeps an English brand name containing an apostrophe. - Each translated value is compared with its source: if a
%1$sor a<b>tag goes missing 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 the strings translated, the strings left as they were and why. Manuce only translates this file: it does not touch text hard-coded in layouts or code, images containing text, or check how the result renders on screen. It does not produce sworn or certified translations either. Traditional Chinese (Taiwan, Hong Kong) is a separate language at Manuce; order it separately if you target those markets too.
Preparing the file and testing on a Chinese device
A little preparation saves most of the rework later.
- Mark what must not be translated. The app name if it stays in Latin script, product names, codes:
translatable="false". - Number your placeholders in every string that has more than one.
- Comment short, ambiguous strings.
Newmay be a create button (新建) or a badge on a recent item (新);Openmay be an action (打开) or a state (已打开). Without context, the choice is a guess. - Do not hard-code dates. A pattern such as
dd/MM/yyyyis not translated, whereas mainland China writes2025年3月14日. Let Android format dates from the locale.
Once delivered, place the file in res/values-zh-rCN/, or values-b+zh+Hans/ if your minimum Android version allows it. Switch a device or emulator to Simplified Chinese and walk through every screen: fixed-width buttons, truncated text, line height with the system font, full-width punctuation at the end of sentences. Finally, read the report: a string left in the source language almost always points to a placeholder or tag worth checking.
In practice
- Take res/values/strings.xml and mark translatable="false" on anything that must stay as it is.
- Number your placeholders (%1$s, %2$s) and comment ambiguous strings and counters.
- Upload the file, choose Simplified Chinese and read the free sample before paying.
- Put the returned file in res/values-zh-rCN/ and run the app in Simplified Chinese.
- Walk through every screen and check the report for strings left in the source language.
Frequently asked questions
Do I need both one and other plural items for Chinese?
Chinese only uses the other category, which Android shows whatever the number. The translated text goes there, for example %d 张照片. What deserves attention is the measure word, which depends on what is being counted.
Simplified or Traditional Chinese: which should I choose?
Simplified is used in mainland China and Singapore, Traditional in Taiwan and Hong Kong. Manuce treats them as two separate languages, ordered separately. The Traditional file goes into a different resource folder, such as values-zh-rTW.
Chinese is shorter, so will my buttons have more room?
Rarely. There are fewer characters, but each one is wider than a Latin letter, so the space taken changes little. A label that overflows in English will probably overflow in Chinese too; test on a small screen.
How is the price worked out?
You get a quote as soon as you upload the file, based on the exact word count of the values, with keys and tags excluded. Chinese carries a surcharge: a ×1.6 coefficient on the per-word rate.
What happens if a placeholder is lost in translation?
Every translated value is checked against its source, placeholders and tags included. If the mismatch persists, the source value is kept and flagged in the report, so the app does not crash on a missing format argument. You can then handle that string by hand.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into Chinese (Simplified), 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.