Skip to content

Localization

Clark edited this page Jun 9, 2025 · 4 revisions

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.

Locale Prefixes

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.

How Do Official Localizations Work?

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.

How to Add a New Localization

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:

  1. Put the files in the Assets folder, which has the highest built-in priority for searching for assets.
  2. Put the files in a folder called DataX, where X is the language prefix used. For example, French is DataF.

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.

Assets to Localize

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

Distributing Translations

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:

  1. Just copy those assets into the existing Data folder, as you would with the official English assets. Change the locale in GK3.ini as well.
  2. Create a folder called DataX, where X is the locale prefix. Change the locale in GK3.ini as 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.

Clone this wiki locally