The Talos Principle: Reawakened

The Talos Principle: Reawakened

Not enough ratings
Creating custom translations
By Asdolg
Guide on making custom translations - adding new languages or changing existing ones
   
Award
Favorite
Favorited
Unfavorite
What's up
Because it's not uncommon for people to want to make translations for games they like to their language, I've implemented a way to do that. This guide is about how to use the system.
Export text to modify/translate
Make sure you have developer console enabled (Settings -> Gameplay -> scroll to bottom).

First, you'll need to export the text for the language you want to modify. And if you want to add a new language, you'll likely need to export English to translate from. So select desired text language in settings.
After that, open the console (`) and enter command Polyglot.DumpCurrentLocalization.
(Note 1: it is known that this key does not actually open console on some keyboard layouts in Unreal Engine games - if you press it and nothing happens, try to change keyboard layout to UK in Windows settings. And double check that console is enabled in game's settings)
(Note 2: pay attention - the key to open console is «`» (to the left of 1 key), not «'»)

Then navigate to game folder, /Talos1/Mods/CustomTranslations/ - you will see a file named Dump_*lang*.txt, where *lang* is a code of the exported language.
Create language directory
You need to create a directory in game folder, /Talos1/Mods/CustomTranslations/. The directory must be a language code, that's how the game will recognize what language are you adding.
Language code is formed of:
  • two-letter ISO 639-1 code (for example, "zh" for Chinese) - full list here[simple.wikipedia.org]
  • optional four-letter ISO 15924 script code (for example, "Hans" for Simplified Chinese) - full list here[en.wikipedia.org]
  • optional two-letter ISO 3166-1 country code (for example, "CN" for China) - full list here[en.wikipedia.org]
For example, a code for Chinese language in Simplified script would be zh-Hans.
Code for Portuguese of Brazilian variant would be pt-BR.
Code for Croatian would be hr.
Most of the time, you only need the first mandatory part - ISO 639-1 code, and the other parts only need to be specified if you wish to translate for specific cultural subset.

Example of a correctly made directory (for Croatian language): /Talos1/Mods/CustomTranslations/hr/
Translate text
Finally, you can copy exported text into your new directory. After that, open the file with a text editor of choice, and change text to what you need it to be.
File format is very simple. Every line adds a text entry for specified identifier:
StringIdentifier=Text

For example, exported English line:
Subtitle:DH-01_HappyAccident.01=The Talos Principle is the game that we never planned to make.
Here, Subtitle:DH-01_HappyAccident.01 is an identifier of the string. It must not be changed in your translation file, if you want your text to be associated with the same line.
So if you were to translate this into Spanish, you change this line into:
Subtitle:DH-01_HappyAccident.01=The Talos Principle es el juego que nunca planeamos hacer.

If you only wish to translate a specific part, you can safely remove unnecessary lines from the file, and only leave ones you want to change.
Keep modifying the file until everything you want is translated, and nothing else is present.

This file is loaded on game startup; but you can force a reload without restarting the game, by typing Polyglot.RefreshRuntimeLocalizations command into console.
Distribution
After you've finished making your translation, naturally you'll want to share it. Unfortunately, we don't have Workshop support for this as of now (and I'm not sure we will in the future), so you'll have to share your translation via different means. For example, as a Steam Guide, like I did for dev comments.
Already included languages
These languages already have a translation (be it full or not) - I'm just listing them here so you can get a better idea of how language codes work.
  • en = English
  • cs = Czech
  • de = German
  • es-ES = Spanish (Spain)
  • fr = French
  • it = Italian
  • ja = Japanese
  • ko = Korean
  • pl = Polish
  • pt-BR = Portuguese (Brazil)
  • ru = Russian
  • tr = Turkish
  • zh-Hans = Chinese (Simplified)
  • zh-Hant = Chinese (Traditional)
Limitations
  • Not possible to add languages that are not listed in ISO 639-1[simple.wikipedia.org]
  • Not possible to add audio translations
  • Not possible to change subtitle timings
  • Some languages may not be supported in fonts, such texts won't appear in the game correctly. For example, Arabic, Georgian, Hindi (Devanagari script). In most menus we use this font[fonts.google.com], so you can refer to list of supported languages on its page. As long as you use only latin or cyrillic characters, you should be okay (Chinese, Korean and Japanese are set up with special fallback fonts for specific character ranges, so they are an exception).