Имам 3 езика и трябва да сменя AppName
според езика, който съм избрал. Написах това:
[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;
И тук имам моя зависещ от езика [Messages]
раздел:
[Messages]
en.WelcomeLabel1=Welcome to [APPNAME] Setup program. This program will install [APPNAME] on your computer.
ru.WelcomeLabel1=Вас приветствует программа установки [APPNAME] Эта программа установит [APPNAME] на Ваш компьютер.
ua.WelcomeLabel1=Вас вітає програма встановлення [APPNAME]. Ця програма встановить [APPNAME] на Ваш комп'ютер.
Въпросът ми е: как мога да прехвърля резултата от функцията GetMyAppName
към [APPNAME]
? Можех да направя това, като вмъкна предварително дефинирана константа като {#AppName}
, но не мога да използвам функции от раздела [Code]
с директивите на препроцесора. Същият въпрос е, когато използвам [CustomeMessages]
вместо това. Като този:
[Setup]
AppName={cm:AppName}
[CustomMessages]
en.AppName=AB Office Client
ru.AppName=Клиент АБ Офис
ua.AppName=Клієнт АБ Офіс
Освен това знам, че има някои аргументи %1
и %2
в раздела [Messages]
, но нямам представа как да ги използвам. За мен аргументите %1
и %2
просто няма да се прехвърлят съответно към AppName
и AppVersion
. Те просто остават като %1
и %2
. И накрая, ръчната промяна на файла .isl
не е опция за мен. Наистина бих оценил вашата помощ. Приятен ден.