如何在Inno Setup中以不同的语言重写WelcomePage的预定义消息?

问题描述 投票:1回答:1

我有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参数不会相应地传递到AppNameAppVersion。它们只是保持为%1%2。最后,对我来说,手动更改.isl文件不是一个选择。非常感谢您的帮助。祝你有美好的一天。

inno-setup message language
1个回答
0
投票

默认值为:

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]占位符。

© www.soinside.com 2019 - 2024. All rights reserved.