Disco Translator 2 is a software suite for creating language packs for Disco Elysium. It consists of a BepInEx plugin for interfacing between the game and the file system, as well as Transltool, a Python script for splitting the extracted strings into human-readable .transl
files and resource management in general.
Disco Translator 2 is currently being used to translate the game into Polish: disco-elysium-polish. Come help the effort!
Disco Translator 2 consists of two components:
- A BepInEx plugin named Disco Translator 2. This is the main component, and it does the following:
- changes how the game displays text, substituting English strings for those specified by the translation
- loads translation files and keeps track of changes to them
- dumps the translatable resources into a file named
database.json
, to be accessed by other tools - displays troubleshooting information in the game console (enabled in BepInEx config)
- A Python script named Transltool. This takes the dumped database and converts it to a human-readable file structure. It offers the following functionality:
- splits the database into multiple files grouped by theme/category
- formats dialogue files into an easy to follow, tree-like structure
BepInEx is a modding framework for Unity games, the likes of Disco Elysium. Python is a programming language that comes with an interpreter required to run it.
- Download and install BepInEx
- Run the game once so that BepInEx can set up its file structure
- Download and install Disco Translator 2 by placing it in the
plugins
directory - Run the game once again
- Place your
.transl
file inDisco Elysium\BepInEx\plugins\DiscoTranslator2
- Change the in-game language to anything other than English
- Install Python 3 if you haven't already
- Install Disco Translator 2 as described above
- Open
Disco Elysium\BepInEx\config\pl.mssnt.DiscoTranslator2.cfg
in your text editor of choice - Set the translation path to your workplace, presumably your git repo
- Set the database extraction path to somewhere you can easily access
- Run the game once to extract the database
- Use Transltool to dump the database:
python transltool.py --dump database.json mydumpdir
- Move
.transl
files from the dump output directory to your workplace and commit them to your repo once translated. - The plugin will detect file changes and update the strings as you save them. For troubleshooting, you can configure BepInEx to show you the debug console. Errors and missing translations will be displayed there.
With Disco Translator 2, all you need to create a translation is a text editor. Consider using the following tools to boost your performance:
- Notepad++, a minimalistic yet robust text editor used by thousands of programmers to manage large amounts of text
- Everything, a lightweight file search utility to help you search for context