PCC2's messages in foreign (non-English) languages are stored in a database file, as a mapping of the original (English) string to the translated string.
+0 8 BYTEs Signature, "CClang0",26 +8 DWORD "n" Number of entries (string pairs) +12 DWORD "inptr" Address of input pointer array +16 DWORD "outptr" Address of output pointer array +20 DWORD "inpool" Address of input text pool +24 DWORD "insize" Size of input text pool +28 DWORD "outpool" Address of output text pool +32 DWORD "outsize" Size of output text pool +36 n BYTEs Text data follows here
The input/output pointer array addresses point to tables containing "n" records of the following form each:
+0 DWORD "pos" String position, points into respective text pool +4 DWORD String length
For example, an entry with pos=17 in the input pointer array describes a string stored at address pos+inpool in the file.
To translate a string, look it up in the input pointer array. The translation can be found in the output array, at the same index.
Since PCC 1.99.12, this file is in UTF-8 encoding. In previous versions, the files had a header, obtained by translating the empty string, containing a "X-PCC-Charset" line. This line named the codepage used to encode this file.