I have 3 languages and I need to change the AppName
according to the language I've chosen.
I wrote this:
[Setup]
AppName={code:GetMyAppName}
[Code]
function GetMyAppName(param : String) : String;
begin
case ActiveLanguage of
'en': Result := 'AB Office Client';
'ru': Result := 'Клиент АБ Офис';
'ua': Result := 'Клієнт АБ Офіс';
end;
end;
And here I have my language-dependent [Messages]
section:
[Messages]
en.WelcomeLabel1=Welcome to [APPNAME] Setup program. This program will install [APPNAME] on your computer.
ru.WelcomeLabel1=Вас приветствует программа установки [APPNAME] Эта программа установит [APPNAME] на Ваш компьютер.
ua.WelcomeLabel1=Вас вітає програма встановлення [APPNAME]. Ця програма встановить [APPNAME] на Ваш комп'ютер.
My question is: how can I transfer the result of the function GetMyAppName
to the [APPNAME]
? I could have done that by inserting a previously defined constant like {#AppName}
, but I cannot use functions from the [Code]
section with preprocessor's directives.
The same question is when I use [CustomeMessages]
instead. Like this:
[Setup]
AppName={cm:AppName}
[CustomMessages]
en.AppName=AB Office Client
ru.AppName=Клиент АБ Офис
ua.AppName=Клієнт АБ Офіс
Also, I know that there are some arguments %1
and %2
in [Messages]
section, but i have no idea how to use them. For me %1
and %2
argument just won't transfer to the AppName
and AppVersion
accordingly. They just stay as %1
and %2
.
And finally, changing the .isl
file manually is not an option for me.
Would really appreciate your help. Have a nice day.