I have just released a beta with changes related to preparing mIRC for translation. Translating mIRC into different languages has been discussed more recently here and here. See my post in the last thread where it describes the last set of changes and potential issues.

I mention in the latest beta that:

Quote
A translator will need to be aware of a string's context,
format, and word order and the need to keep it as close as possible
to the original.

This actually applies to a very small subset of strings. Most strings can just be translated as required. However, with code spanning several decades, and across several hundred thousand lines, it is possible that some code will be looking for a specific format, word order, and/or spacing. This is something that we can only find out at a later time once a translation is completed.

To handle different languages, I have had to make changes to how certain types of strings are handled in an attempt to maintain script/ini/backward compatibility. For example:

In the Colors dialog, the color names are used by scripts, so they need to remain in English for internal use. But they also have translatable resource versions that are displayed in the GUI.

In the Windows/Order dialog, window descriptions in the listbox are stored as-is in the mirc.ini file, so must remain in English for backward compatibility and consistency across different languages. However, there are translatable resource versions of these strings which are converted to/from the English language versions in the GUI.

For window names, such as "Status Window", "Notify List", "Chat nick (address)", and so on, for internal use, these need to remain in English using that word order/spacing format. The latest beta separates these internal window name strings from window titlebar strings, so that the titlebar names are now translatable.

And so on.

My aim with the recent beta was to make as few changes to code logic as possible - to maintain backward compatibility - to move strings to resources where necessary - and to make the trickier internal/visible GUI/window strings translatable.

At some point, commands/identifiers will likely need to be extended and/or added to enable scripts to display/parse information using the chosen language.

I am currently performing tests on resource files/dlls, so mIRC is now pretty close to being translatable :-)