How to translate the MU Online client into a new language
A step-by-step guide to translating the MU Online client into a new language: string localization, client text files, accented fonts, layout-break testing, and distributing the translation through the launcher.
Bringing your MU Online server to a new audience often starts with translating the client: without it, players who don't speak the original language face a huge barrier to entry, even with a technically excellent server. The good news is that most of MU Online's text lives in files external to the e
Bringing your MU Online server to a new audience often starts with translating the client: without it, players who don't speak the original language face a huge barrier to entry, even with a technically excellent server. The good news is that most of MU Online's text lives in files external to the executable, which makes translation a content localization job, not heavy programming. This tutorial covers the full process: locating the right files, translating consistently, handling fonts and accents, testing layout breaks, and distributing the translation through the launcher.
Where the client's text lives
Before translating anything, map out where each text category is stored — file names vary by version/season, but the general structure repeats:
| Text category | Typical location | Format |
|---|---|---|
| Item names and descriptions | Data/Local/Item.txt or encoded .bmd | Tab-delimited text or BMD |
| Skill names and descriptions | Data/Local/Skill.txt | Tab-delimited text |
| NPC dialogue | Data/Local/NpcTalk.txt | Tab-delimited text |
| Interface (menus, buttons, tooltips) | Data/Local/Interface.txt or internal resources | Text or compiled resource |
| Map and zone names | Data/Local/MapName.txt | Tab-delimited text |
| System/error messages | Data/Local/MsgBox.txt | Tab-delimited text |
Some older clients embed part of the interface in compiled resources (encrypted .bmd files). In those cases, you'll need a BMD editor to unpack, edit, and re-encrypt the content.
Tools you'll need
- BMD/text editor compatible with your client version (for encrypted files).
- Text editor with encoding support (to avoid corrupting accents).
- A spreadsheet or simple database to track translation progress (what's already translated, reviewed, and tested).
- A test client environment already set up, pointing to a test server.
Step 1 — Extract and inventory the text files
Unpack (if needed) the files in Data/Local/ and list all of them that contain player-visible text. A simple inventory prevents forgetting entire categories, like error messages or quest text, which often hide in less obvious files.
Data/Local/Item.txt -> 100% mapped
Data/Local/Skill.txt -> 100% mapped
Data/Local/NpcTalk.txt -> 100% mapped
Data/Local/Interface.txt -> 100% mapped
Data/Local/MsgBox.txt -> 100% mapped
Data/Local/QuestText.txt -> check if it exists in this version
Step 2 — Define the correct character encoding
Old MU clients typically use regional encodings (Windows-1252 for Western Latin languages, EUC-KR for Korean, etc.), not UTF-8. Before translating any file, confirm the expected encoding by opening an original file in an editor that shows the current encoding, and always save in the same encoding. Accidentally saving in UTF-8 for a client that expects ANSI is the most common cause of broken characters (shown as odd symbols) after translation.
Step 3 — Translate by category, keeping terminology consistent
Translate in blocks by category (all items, then all skills, etc.), without mixing them, to keep terminology consistent. Keep a fixed glossary from the start:
| Original term | Chosen translation | Note |
|---|---|---|
| Excellent | Excellent | Decide whether to keep or translate, and apply it everywhere |
| Ancient | Ancient | Same consistency decision |
| Wing | Wing | — |
| Guardian Angel | Guardian Angel | Avoid variations like "Guardian Angel of Mercy" |
Terminology inconsistency between items and NPC dialogue is one of the errors players notice most, and it gives an impression of amateur translation even when the rest of the text is correct.
Step 4 — Handle character limits per field
Many MU client text files have a hard character limit per field (item names, for example, usually have a strict cap). Translations tend to run longer than the original in Portuguese — plan consistent abbreviations ahead of time instead of cutting randomly during translation.
| Field | Typical limit | Strategy if exceeded |
|---|---|---|
| Item name | 30-32 characters | Abbreviate common words (e.g., "Armor" → "Arm.") |
| Skill name | 20-24 characters | Use a shorter synonym |
| Interface tooltip | Varies per UI element | Test visually and adjust |
Step 5 — Adjust fonts for accents and special characters
If the client's default font doesn't correctly render accents (ç, ã, é) or characters from another alphabet, you'll need to swap the font file used by the interface (usually referenced in a client font config file) for a version that covers the needed character set. Test thoroughly: numbers, symbols, and punctuation, in addition to accented letters, to make sure nothing breaks.
Step 6 — Test at multiple resolutions
After translating, text can break the layout — overflow a window's border, overlap an icon, cut off a button. Test the full interface (inventory, shop, chat, character creation screen, settings menus) at least at two or three resolutions most used by your player base, since longer text tends to overflow boxes sized for the original language.
Step 7 — Review by a native speaker in game context
Literal translation of game terms often sounds wrong even when grammatically correct. A review by a native speaker who also plays MU Online (or similar games) catches these cases — terms like "Critical Damage Rate" translated too literally sound odd compared to terms already established in the MU community in that language.
Step 8 — Package and distribute through the launcher
Once validated, package the translated files and distribute them via a launcher update, the same way as any other content patch. If you plan to maintain multiple languages simultaneously, structure separate folders per language and add a selector in the launcher that chooses which file set to load before starting the client.
[Launcher]
DefaultLanguage = pt-BR
AvailableLanguages = pt-BR,en-US,es-ES
LanguageFolder = Data/Local/%LANG%/
Common errors and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Accented characters show as symbols | Wrong encoding when saving the file | Save in the original encoding expected by the client |
| Item name cut off or truncated | Field character limit exceeded | Abbreviate consistently or revise the translation |
| Button or tooltip with overlapping text | Layout not tested at the resolution used | Test at multiple resolutions and adjust text |
| Inconsistent terms between items and NPCs | No fixed glossary from the start | Create and follow a glossary of terms throughout the process |
| Players complain the translation feels "off" | Literal translation without context review | Review by a native speaker with game experience |
Client translation checklist
- Complete inventory of the client's text files.
- Character encoding confirmed and kept consistent across all files.
- Glossary of terms defined and consistently applied.
- Character limits per field respected or handled with abbreviation.
- Font adjusted to support accents/special characters.
- Interface tested at multiple resolutions.
- Review by a native speaker with game context completed.
- Translation packaged and distributed through the launcher.
A well-made translation directly widens your server's reach and lowers the barrier to entry for new players, but it only delivers full value when the infrastructure behind the client and launcher is already solid — check the MU Online server creation guide if you're still building that foundation.
Frequently asked questions
Do I need to recompile the client to translate the text?
In most cases, no. Interface, item, skill, and NPC text lives in external text/data files (not embedded in the executable), so you just need to edit those files and repackage/distribute them. Recompiling is only necessary if you want to change fonts embedded in the code or text rendering behavior.
How do I handle accents and special characters the old client doesn't support?
Clients based on old encodings (ANSI/Windows-1252) may not correctly display certain accents or characters from languages with different alphabets. You need to confirm the encoding required by each text file and, for non-Latin languages, swap the font used by the interface for one that supports the needed character set.
Can I have two languages at once in the same client?
Yes, with a language selector in the launcher that swaps the loaded text file set before starting the client, or with a more robust i18n system that loads the correct file based on config. The simplest approach is to keep separate folders per language and have the launcher choose which one to use.
How long does it take to translate a full client?
It depends on the volume: a full translation of items, skills, NPCs, quests, and interface for a Season 6 client usually takes 40 to 80 hours of manual work, or much less with assisted translation tools and human review focused on game context.
Do I need to test the translation at every resolution?
It's highly recommended to test at least the resolutions most used by your player base, because translated text tends to be longer or shorter than the original and can break the layout of windows, buttons, and tooltips depending on the resolution.