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, please read the language files discussion thread first for the latest developments.

Once you are ready, 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 added/removed or 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 and should be followed by a space, like the original text. For example, "mIRC DCC Get" should not be changed to "mIRC-DCC-Get", as changing the format of text in this way can result in errors.

    Translated text should be as close to the original as possible in length, format, and meaning. For example, if the original text does not include question/exclamation marks, these should not be added.

    Capitalization of words/letters should not be changed unless necessary. For example, "A b c d e" should not be changed to "A B C D E".

    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 will also highlight any errors/warnings found in the translated text.

  • 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.

  • Please do not resize dialogs or resize/reposition controls in dialogs if a translation does not fit. If you find that this is needed, please let us know. We will make a change to mIRC's standard dialogs for support the 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; 27/09/24 04:23 PM.