mIRC Home    About    Download    Register    News    Help

Print Thread
Joined: Oct 2023
Posts: 16
Pikka bird
OP Offline
Pikka bird
Joined: Oct 2023
Posts: 16
My idea is a Option to Translate the menues, dialogues and all other with editable Language Files.
I am also happy to take over the German translation ;-)


Best Regards from Germany
-=[atomic10]=-
Joined: Sep 2015
Posts: 7
Nutrimatic drinks dispenser
Offline
Nutrimatic drinks dispenser
Joined: Sep 2015
Posts: 7
...and I would like to translate (localize) mIRC into Italian.

Joined: Feb 2023
Posts: 43
Ameglian cow
Offline
Ameglian cow
Joined: Feb 2023
Posts: 43
I would be very glad to translate it to Brazilian Portuguese 🇧🇷

Joined: Dec 2002
Posts: 5,431
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,431
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 :-)

Joined: Dec 2002
Posts: 5,431
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,431
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.
Joined: Dec 2002
Posts: 5,431
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,431
Following up on the latest beta:

Thanks to Wollino for reporting the issue with the language DLL not being loaded correctly after the DLL had been updated with Resource Hacker. It turns out Resource Hacker was making a changes to some resources that mIRC had to take account of.

Regarding the dialog/control resizing issue:

As I mentioned in the beta.txt, most dialogs/controls are tightly sized/fitted to English words. It will be impossible for longer translated text to fit in many cases. Because of this, I have decided to resize every dialog (about 120 of them) and their controls to cater for generically longer text. This will mean that most dialogs will be larger, more spaced out, and more consistent in design.

In some cases, eg. the Options/IRC dialog, which has no space at all to properly fit larger controls, I may have to enlarge the Options dialog significantly, or move some items into new sections/dialogs. One other option is to change the Options/IRC/Options dialog to host a listbox of settings with checkboxes, to enable/disable different settings. On the plus side, this would allow me to add new settings in future without worrying about redesigning dialogs or squeezing controls into limited space.

In any case, this next stage of adding multi-language support is going to take some time :-]

Joined: Dec 2002
Posts: 5,431
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,431
The latest beta now has a set of redesigned dialogs that should hopefully make translation a lot easier.

All controls have been sized/positioned to allow much longer text without the need for the translator to resize/reposition dialogs/controls.

The only exceptions are button sizes, which are all now a standard 50x14. However, many of the buttons have been positioned in a way that allows them to be widened with no changes to layout. On my to-do list: implement a method that, for each dialog, will determine the needed button size based on the button text and will resize/shift buttons/button groups and resize dialogs as necessary.

Regarding translations:

I mentioned in the previous beta release that I had joined Crowdin to experiment with translations/resources. Looking at the amount of text that needs to be translated, this is going to take a lot of time and work for each language. I am wondering whether the best approach might be to get the resources professionally translated as a first step, eg. by Alconost, for a base set of EFIGS language support, and users can then provide feedback and updates to the translations over time. My main concern is that much of the text is mIRC/IRC/Scripting-specific and a translator would need to be aware of context and terminology, especially since there are so many context-less short strings. These translations can then be included in the release and would need to be updated before each release. In any case, something to think about.

Joined: Jan 2012
Posts: 305
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 305
I'm glad this is finally possible and will now be officially supported.

It will be interesting for me to take part and I am ready to translate mIRC into Russian language for all Russian-speaking users and fans of this IRC client.

This will take a lot of time, so I will make a dll-file with translation gradually, as free time appears.


🌐 http://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples

Link Copied to Clipboard