I have released a new beta that adds support for language DLLs. See beta.txt Item 27 for details.
I had to make a fair number of tricky implementation decisions in this beta; how to parse resources at a low-level, how the languages are presented to the user in the Display/Options dialog listbox, how the language DLL is created and initialized, filename format/language code parsing, resource DLL validity pre-checking, version info resource re-writing, and so on. I experimented with several different approaches - there is a lot going on under the hood.
To make life a little easier for translators, I added support for /langdll -m and /langdll -d. The /langdll -d resource compare method actually takes account of minor changes that Resource Hacker/Risoh Editor make to an updated DLL.
One change I am looking at for the next beta is allowing mIRC to change language DLLs without needing to restart. After looking through the code, I think this might actually be possible.
Outstanding issues: the dialogs will need resizing/controls repositioned/sized to accommodate longer strings. At this point, I am not sure what the best approach to this would be - leave it to individual translators - or perform a full revamp of all dialogs in such a way that the longest possible strings are accommodated.
One other thing to note: I plan on not changing any of the id values for resources from this point onwards. In the past, this was something I did for various reasons. From now on, all resource ids should remain fixed. The most that can happen is that a resource will be updated, added, or removed. v7.76 will be the resource baseline from this point onwards.
As this is the first beta with language DLL support, it will likely have bugs. If you have any questions, or come across an issue, please let me know.
Last edited by Khaled; 22/03/24 09:16 PM.