Translating games isn't always as simple as editing some text files. The difficulty can be anywhere from editing a few XMLs to full blown binary hacking. It's important to know what you're getting into
The Actual Linguistic Translation
The actual translation of the game is a separate matter here: we're just focused on editing a game so that new sentences can be inserted.
But for the most part, if you are bilingual you are ready to start a translation, or at least proofread one.
Alternatives to Programmatic Translation
Before embarking on a possibly frustrating and time consuming journey, consider these alternatives first:
- Guidebook - For games that are heavy on action but light on dialogue/text, it might be sufficient just to put together some sort of guidebook or wiki that explains the controls and any important lines of text. This way the player can just intuitively play the game, but reference a guide whenever they reach an untranslated text.
- Subtitles over Stream - For visual novels or other games that are light on action, one person simply made a Let's Play stream of Steins;Gate 0 and put subtitles over it. This works because there isn't much interactive content to miss.
The first step in translation is to determine how the game needs to be translated. There unfortunately isn't a formula for this, or any automated methods: you just have to look at the game data and see where you can stuff text in.
Better yet, if a game that uses a similar engine was already translated, you can see how those translators did it and follow those instructions.
In general, there are three different places that translatable text could be in:
- Text Files (XML, JSON, CSV, TXT, etc.) - For the most games, the developers have anticipated a need for easy editing of game dialogue and text, especially if the game would soon be localized or a non technical team was responsible for writing the game dialogue. The text will be structured in a format that can be referenced from the source code, usually XML or JSON, though exotic file formats could be used. Unfortunately, this doesn't apply to all games.
Fixed Width Spacing
Fixed Width Spacing means that every character is the same size as another, like on a typewriter on in Notepad. In almost all alphabets, variable width spacing (where i is smaller than o) is used in display to make the text more readable and reduce the amount of space it takes up on the screen.
However, CJK (Chinese, Japanese, Korean) characters have no need for Variable-width spacing, as every character fits in a square. So don't be surprised if the alphabetical text ends up fixed width.
This isn't as big of an issue with newer games, since most modern CJK fonts and game engines make variable-width spacing possible, but if you do face this issue you face an uphill climb of editing the game or hopefully just replacing a font if you really want variable-width spacing.