In Delphi, the entries in the STRINGTABLE
resource in the .exe
file are created automatically. The numbering (resource-id) of the entries is managed by Delphi itself, and this cannot be changed.
Is there a possibility to influence this numbering in Delphi, so that it is changed in the STRINGTABLE
of the .exe
? This could be e.g. a compiler setting.
The question has the following background:
we use Sisulizer for translating our Delphi applications, and this has worked fine for years.
Sisulizer accesses this
STRINGTABLE
in the translation process, and changes the value with the text of the corresponding language. As key, this number is used (simplified).for reasons unknown to me, Delphi changed this numbering in the
.exe
, and now Sisulizer puts the wrong texts into theSTRINGTABLE
, and the translated application contains completely wrong texts and is therefore unusable.
We have changed neither the Delphi version nor the Sisulizer version, and this problem happened out of the blue.
Environment:
- Delphi 10.3
- Sisulizer 4.0 (Build 374)
- Windows 10
I have been using older codestands and have always encountered the same problem with the numbering changing after compiling. The numbers in the .exe
no longer match the numbers in the Sisulizer project.
The image shows the part in Sisulizer and the part of the STRINGTABLE
that has different texts. The corresponding text in German is now at position 3870.61907
.