Search code examples
installationtranslationinno-setuppascalscript

How to Translate texts contained in MsgBox in Inno Setup?


I have got a [code] section contained within my inno setup script which displays some information for the user during install. I would like to be able to translate these in the same language the user selected during install. They texts are currently in English and for example want to translate it in Russian, etc. I know I have to do something in the Language.isl file. Below is a example of such text.

if MsgBox('Previous program found. It is recommendeded to uninstall it and install a fresh program. Please note that your data will not be deleted during the uninstallation. Do you want to continue?', mbConfirmation, MB_YESNO) = IDYES then
      begin etc

Solution

  • [Languages]
    Name: "english"; MessagesFile: "compiler:Default.isl"
    Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
    Name: "german"; MessagesFile: "compiler:Languages\German.isl"
    
    [CustomMessages]
    CustomMessage=Undefined //just in case (should be equal to English)
    english.CustomMessage=English Selected
    german.CustomMessage=German Selected
    polish.CustomMessage=Polish Selected
    
    [Code]
    function InitializeSetup: Boolean;
    begin
      Result := True;  
      MsgBox(ExpandConstant('{cm:CustomMessage}'), mbInformation, MB_OK);
    end;