inno-setupversioninfo

How do I localize VersionInfo of an Inno Setup installation file?


I am creating an application that has a different name depending on the user language. So for example the software is called "Device Emulator" in English and "Geräteemulation" in German.

I want to reflect the different names in the Version Info of the setup file (right click -> Properties -> "Details" tab). So far I have found no way in Inno Setup to specify a localized "VersionInfo", neither in the online help nor on the net.

Originally I tried to use custom messages in the setup sections of which I learned I am not allowed to. See code below.

[Setup]
AppName={cm:ApplicationName}
AppVerName={cm:ApplicationName} V{#MYVERSION}
AppCopyright=© 2018 {#MYCOMPANY}
AppPublisher={#MYCOMPANY}
AppVersion={#MYVERSION}
AppId={cm:ApplicationName}{#MYVERSION}

VersionInfoVersion={#MYVERSION}
VersionInfoCompany={#MYCOMPANY}
VersionInfoCopyRight=(C) {#MYCOMPANY}
VersionInfoDescription={cm:ApplicationName}
VersionInfoProductName={cm:ApplicationName}
VersionInfoProductVersion={#MYVERSION}

I expected this to show me a property window with localized application name and version information but unfortunately it just displays {cm:ApplicationName} for AppName, VersionInfoProductName and VersionInfoDescription.

enter image description here

So, does any of you know how to localize this in Inno Setup?


Solution

  • All Inno Setup constants are evaluated on run/install-time. While version info is a compile-time thing (it's built into a header of the installer .exe file). So you cannot use constants in any of the VersionInfo* directives.

    While technically, Windows .exe can include separate version info structures for different locales (languages), this is not supported by Inno Setup.

    Inno Setup has only a single placeholder for the version info.