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