Как мога да пренапиша предварително дефинирани съобщения за WelcomePage на различни езици в Inno Setup?

Имам 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 не е опция за мен. Наистина бих оценил вашата помощ. Приятен ден.


person JConstantine    schedule 13.03.2020    source източник


Отговори (1)


Стойностите по подразбиране са:

WelcomeLabel1=Welcome to the [name] Setup Wizard
WelcomeLabel2=This will install [name/ver] on your computer.%n%nIt is recommended that you close all other applications before continuing.

Така че просто следвайте това – използвайте [name] и [name/ver] контейнери във вашите преводи.


Ако имате нужда от друго персонализиране, вижте Мога ли да използвам .isl файлове за съобщенията с директиви за препроцесор в Inno Setup? или Пълна поддръжка на препроцесор в езикови файлове за настройка на Inno (isl).

person Martin Prikryl    schedule 13.03.2020