English.dat and english2.dat is really just a big file filled with strings.
Spaces are 0x20 (or 32 in decimal) and the terminator for the string MUST be 0x00 ( 0 in decimal). You have to make sure this convention is met for every string.
I tinkered with it last night. Just loaded every individual string into an array. Then, if you look at the files like facil.dat in the savegame directories, the very first byte for each base facility entry points to a string in english.dat. The first byte for the living quarters for example has value of 73. So when I printed out the string stored at index 73 of the array, I got the name of the facility.
For fun: You can do silly things like point the name of a facility to a ufopaedia entry if you wanted.
I might be +1 or -1 on the index number for the living quarters in this example.
NKF - finally built a gaming PC in 2020 (though not any of that RGB nonsense). Can now play games up to '89!