Just figured out how translations work in Pangya!
Depending on region and language of the client, the game executable targets a different
.dat file in the game folder, this is baked hard into the client. These DAT files include every single translatable string seperated with a null-terminator.
Pangya is using a sort of “homebrew” version of gettext.
It works like this:
In the interface definition XML files, all strings are in korean. The game loads in those files, and then searches for that exact string in
korea.dat, which is packaged in every version of Pangya. Once the string was found, it saves the index, and then searches for the index position inside the
[language].dat specified in the client and then displays that string.
So, when you want to extend your own interface with custom text, be sure to change/add it in both the
korea.dat and the language file of your client and it should work just fine!