I'm trying to do a conditional install based on the chosen language in Inno Setup.
I.e. if chosen language is english, then install file en.txt, if chosen language is italian, then install file it.txt and so on.
Is it possibile to do it? I've seen that there is a {language} constant, but I don't understand how to use it to do a conditional install.
Which file are installed based on language selection is always conditional just by adding the Languages parameter to the [Files] entry.
Common Parameters from Inno Setup Help says:
Languages
A space separated list of language names, telling Setup to which languages the entry belongs. If the end user selects a language from this list, the entry is processed (for example: the file is installed).
An entry without a Languages parameter is always processed, unless other parameters say it shouldn't be.
Besides space separated lists, you may also use boolean expressions. See Components and Tasks parameters for examples of boolean expressions.
Example:
Languages: en nl
So, if you want a file installed only for english and another only for spanish, another for english and spanish (but not for french), the [Files] entry may look like this:
[Files]
Source: "MyProg-en.chm"; DestDir: "{app}"; Languages: en
Source: "MyProg-es.chm"; DestDir: "{app}"; Languages: es
Source: "x.exe"; DestDir: "{app}"; Languages: en es
Take a look at the Languages.iss script included in the inno setup examples folder.
Just one note, works allso for registry section. For example
[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "ger"; MessagesFile: "compiler:Languages\German.isl"
Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
[Registry]
Root: HKCR; Subkey: ".tes"; ValueType: string; ValueName: ""; ValueData: "Testing..."; Languages: fr
intstalls this registry key only if user choose french language for install. It is usefull when you can store language of installed program in registry.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With