-
Notifications
You must be signed in to change notification settings - Fork 17
Localization
GK3 was officially translated into several languages:
| Language | Type |
|---|---|
| English | Text & Voices |
| French | Text & Voices |
| Italian | Text & Voices |
| German | Text & Voices |
| Spanish | Text Only |
| Portuguese | Text Only |
| Russian | Text Only |
It's also possible to add additional translations by modifying various assets.
This page explains how localization works in GEngine, and what would be involved in localizing the game to support a new language.
Most assets that are localized has a single letter prefixed to the asset to identify the language. For example "ESTRINGS.TXT" is the English localization of that asset.
Here are known/suspected prefixes for official translations:
| Language | Prefix |
|---|---|
| English | E |
| French | F |
| Italian | I |
| German | G |
| Spanish | S |
| Portuguese | P (unverified) |
| Russian | R (unverified) |
When adding a new language, a new prefix would have to be allocated that doesn't clash with an existing one. In theory, multi-letter prefixes could also be used.
The game ships with a number of "barn archives" (with a .brn extension) that contain a variety of assets used by the game - textures, 3D models, audio files, subtitles, etc. To localize the game, Sierra made one version of these barn archives per supported language. For example, the English "core.brn" contains English VO/subtitles/etc, whereas the Spanish "core.brn" contains Spanish VO/subtitles/etc.
Additionally, for non-English languages, an archive called "override.brn" is included. If an asset exists in this archive, it is loaded instead of one that might exist in the other barn archives. As a result, the developers could selectively override certain assets for non-English localizations.
To localize the game, you would need to add variants of localized assets for the desired locale. For example, if there is an "ESTRINGS.TXT", and you want to make a French localization, you would need to create an "FSTRINGS.TXT" file that is modified to have French translations in it.
There are also some assets that should be localized that don't use this prefix approach (e.g. KEYBOARD.TXT). These files can still be localized, and they will override pre-existing assets with the same name if you follow the instructions below.
There are two ways to get the game to find the new files:
- Put the files in the
Assetsfolder, which has the highest built-in priority for searching for assets. - Put the files in a folder called
DataX, where X is the language prefix used. For example, French isDataF.
Long-term, to support distribution of fan translations, using option 2 is probably the preferred approach.
At runtime, the game needs to know which localization to use. One way to do this is to modify the GK3.ini file. In the future, an in-game options dropdown may be added.
One way to go about localizing the game is to extract the English versions of these assets (using the Extract console command in either G-Engine or the original GK3), modify them to be localized, and then put copies in the Assets folder.
G-Engine also has a helpful command to extract all assets with a given extension, which may be helpful to get loose files to translate. For example, to extract all YAK files to a subfolder, you can add this bit of code to the end of GEngine::Initialize:
gAssetManager.WriteAllBarnAssetsToFile(".YAK", "YAK");Here is a list of known assets that would require localization.
- ESTRINGS.TXT
- ESIDNEY.TXT
- ESIDNEYEMAIL.TXT
- All *.YAK files (this is the big one that would take a lot of time).
- KEYBOARD.TXT
- SIDSEARCH.TXT
- All *.HTML files
For one, official translations are copyrighted material, so they can't be shared by us or hosted as part of this project. If you do acquire an officially translated version of the game, you can use those translations in one of these ways:
- Just copy those assets into the existing
Datafolder, as you would with the official English assets. Change the locale inGK3.inias well. - Create a folder called
DataX, where X is the locale prefix. Change the locale inGK3.inias well.
For unofficial translations, it seems possible to distribute legally, though there is an argument that data like subtitle timings or modified textures would still be under copyright. Translated files can be distributed as loose files. Alternatively, packing the files into a Barn could be possible, but not yet implemented.