With the release of v7.77, mIRC now supports loading translated resources from external language packs/DLLs as described here.

If you are interested in translating mIRC, you can create a language DLL by following these steps:

  • Extract the translatable resources from the mIRC executable using mIRC's built-in command "/langdll -m". This will create a language DLL, "mirc-en-US.dll", in the languages folder.

  • Change the language code at the end of the filename to the target language code, eg. fr-FR, es-ES, and so on. The filename must use this format: it should begin with "mirc" and end with the language code "-en-US" and ".dll".

    Alternatively, you can use "/langdll -m [code]" to specify the language code, eg. for English US you can specify: 0x0409, 1033, or en-US. This then sets the language DLL name and the language for each resource section. Note that the DLL must be a single-language DLL. mIRC loads the resources as a neutral language.

  • Set mIRC to use your language DLL in the mIRC Options/Display/Options dialog.

  • Open the language DLL with a resource editor, such as Resource Hacker.

  • Edit and translate the strings in the menus, dialogs, strings, and accelerators sections.

  • Issues to look out for:

    String specifiers, such as %s %S %d %ld %d and so on, must be present and in the same order in the translation.

    Strings that refer to commands or identifiers should not be translated, eg. "* /command:" or "* $identifier:".

    Colons ":" should not be separated by spaces, eg. "User:" should not be changed to "User :" The same applies to other types of punctuation.

    Many dialog titles begin with "mIRC". This should remain at the beginning of the title in the translation, since its purpose is to make it clear that the dialog is an "mIRC" dialog.

    When updating the version resource section, make sure that the "Translation" value in VarFileInfo matches that in StringFileInfo.

    mIRC performs several checks when loading resources from a language DLL, including checking for matching sprintf() specifiers, id numbers, number of controls, and so on. If an external resource does not match the internal resource, the internal resource is used instead.

  • You can use the command "/langdll -d oldmirc.exe newmirc.exe" to list the differences between two versions of mIRC (or even languages DLLs) so that you can see which resources have changed and need to be updated. This list will also include "warning" messages if there are any errors.

  • If you find that mIRC is not using a translated dialog, string, etc. it may be that there is an issue with your translation. You can use the command "//langdll -d $mircexe mirc-en-US.dll" to compare the mIRC executable to the language DLL you are translating to check for errors.

  • You may need to resize dialogs and/or resize/reposition controls in dialogs if a translation does not fit. If you find that you need to do this, please let us know. We may apply this change to mIRC's standard dialogs fo support longer translated text.

  • If you have translated a language DLL into a particular language, please let us know by posting on the forums. We will review your language DLL and may add it to the language page on the website with credit to you as the author.


If you have any comments or suggestions regarding mIRC's language support, please let us know by posting on the forums.

Last edited by Khaled; 21/07/24 01:35 PM.