create a language folder for your country (appropriate folder names are in the format of: en_US, nl_NL, ru_RU, etc...) copy the .po files to the appropriate folder and then start editing Order of picking: if there is a cheatengine.po it will pick that, else cheatengine-x86_64.po and if that fails cheatengine-i386.po the 32-bit version can work perfectly fine with the 64-bit po Same for the tutorial By default it picks the system language, but you can overide this by adding --LANG langstr or -l langstr to the parameters of Cheat Engine editing po files. There are some po editing tools but you can also do it by hand msgid contains the original string and msgstr contains the translated string. If msgstr is empty the original string will be shown Certain strings are not present in the cheatengine.po file, but are present in lclstrconsts.po The lclstrconsts.po file belongs to the LCL that the Cheat Engine GUI is build upon Custom name for your translation: place a name.txt file in your translation folder and name it anything you like instead of the language code Custom lua script for your translation: place an init.lua file in the translation folder and the code in there will be executed when CE starts. You can use this to shift objects around or adjust anchors to make space for your text ---- example for dutch create the languages\nl_NL folder and move the .po files to there then translate the .po files e.g: before: #: mainunit.rscheatengine msgid "Cheat Engine" msgstr "" after: #: mainunit.rscheatengine msgid "Cheat Engine" msgstr "Valsspeel motor" (This is just an example, please don't translate blindly like this...) to test you would run cheat engine with --LANG nl_NL