Translate a .NET app into Simplified Chinese
Upload the neutral .resx file of your .NET application and Manuce translates its values into Simplified Chinese, returning the same XML file, ready to become <code>Strings.zh-Hans.resx</code>. Placeholders such as <code>{0}</code> or <code>{1:N2}</code> are checked string by string, and a report lists anything left untranslated.
What it costs
For the language files of a .NET 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 changes when a .NET UI goes into Chinese
Simplified Chinese is written in hanzi, with no spaces between words and full-width punctuation. A value such as File name: becomes 文件名:, the wide colon being part of the string. The ellipsis is written …… and quotation marks are “ ”.
In character count, the text is two to three times shorter. Each character is wider and taller than a Latin letter, though, so the space taken on screen changes little. A button sized for Save easily holds 保存, but a long single-line label gains almost nothing.
Plurals disappear. Chinese has a single CLDR category, other: {0} file(s) becomes {0} 个文件, with a measure word (个) between the number and the noun. If your code picks between FileCount_One and FileCount_Other, both keys get the same form, which is correct.
Word order also shifts, often moving the placeholder to the middle or end of the sentence. That is why strings should stay complete composite formats rather than fragments joined in code.
What Manuce returns, and what it does not do
In a .resx file, Manuce translates the content of the data/value elements. comment elements are not translated: they are used as context, which is where you can say whether Open is a button verb or a status. Non-text resources are left untouched.
You get the same file back: indentation, key order, quotes, comments, line endings, encoding and BOM are preserved; only the values change. Every translated value is compared with the source: if {0} days left before {1:d} loses {1:d} and the 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.
What Manuce does not do:
- rename the file or build the satellite assembly;
- touch strings hard-coded in your C# source;
- resize your forms: sizes and positions stored in a form .resx stay as they were;
- produce Traditional Chinese in the same order: for Taiwan or Hong Kong it is a separate language.
Chinese carries a language supplement (×1.6 on the per-word rate); the count covers the words in values, with keys and tags excluded.
Naming the file and picking the culture
Once delivered, rename the file with a culture suffix. The most robust choice is the neutral culture zh-Hans: Strings.zh-Hans.resx. A machine set to zh-CN or zh-SG falls back to zh-Hans through resource fallback, whereas a Strings.zh-CN.resx file would not serve Singapore.
Dates, numbers and currency should not be written into strings: keep {0:d} or {0:C} and let CultureInfo produce 2025/3/14 or ¥1,234.00. Manuce leaves these formats as they are, which is the intended behaviour.
To test, set CultureInfo.CurrentUICulture = new CultureInfo("zh-Hans") at start-up rather than switching the Windows display language.
Fonts, access keys and layout
A Latin font has no Chinese characters. If your WinForms or WPF app enforces an embedded font, labels may show as boxes or fall back to a mismatched font. Provide a font that covers Chinese, such as Microsoft YaHei on Windows, at least for this culture.
Access keys need a manual check. Chinese convention keeps the Latin letter in brackets: &File becomes 文件(&F). Review menus and buttons containing & after delivery.
For layout, watch height above all: hanzi are denser, and a fixed-height Label at a small font size can clip the bottom of characters. Chinese can break between any two characters, so word wrap works, but avoid lines that start with : or 。.
Preparing the file and checking the result
Before uploading:
- start from the neutral .resx (no culture suffix), which holds every key;
- replace concatenations like
"Hello " + namewith aHello {0}resource, as Chinese places the name differently; - add a comment to short, ambiguous strings (
Close,Clear,Run); - mark product names and technical codes as non-translatable.
After delivery, read the report: any string left in the source language comes with a reason, often a lost placeholder. Run the app in zh-Hans, go through every screen and check formatted messages with real values, for instance 1 and 25 in {0} 个文件. The free sample, one paragraph translated at your chosen level, lets you judge the tone before paying.
In practice
- Collect the neutral .resx file from your .NET project, comments included.
- Upload it to Manuce for an instant quote on the exact word count and a free sample.
- Download the translated .resx and the report on strings left as is.
- Rename it Strings.zh-Hans.resx, add it to the project and build.
- Test the UI under zh-Hans: fonts, access keys, clipped labels.
Frequently asked questions
Should the file be named zh-CN or zh-Hans?
The neutral zh-Hans culture covers mainland China and Singapore through .NET resource fallback. A zh-CN file would only serve machines set to zh-CN. Manuce returns the file under the name you uploaded, so adding the suffix is up to you.
Can Manuce also translate into Traditional Chinese?
Yes, but as a separate language with its own file. For Taiwan or Hong Kong, order Traditional Chinese as well and name that file zh-Hant. Ordering several languages together qualifies for the multi-language discount.
Are localisable WinForms form .resx files supported?
Text values are translated, and non-text resources such as sizes, positions or images are left intact. Manuce therefore does not adjust layout: if a control needs to be wider or taller, do it in the designer for the Chinese culture.
What about strings written directly in C# code?
They are not translated, since Manuce only processes the resource file. Move them into the .resx as keys first, then upload the file.
Will dates and amounts appear in Chinese format?
Date formats are not translated and placeholders such as {0:d} are preserved. The .NET zh-Hans culture produces the Chinese display at runtime, provided your strings do not contain hard-coded dates.
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.