Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
А как вставить тоже сообщение, например, в описание компонента?Код:SetupMessage(msgWizardSelectComponents)
[Setup]
AppName =My appName
DefaultDirName ={pf}\My appName
ShowLanguageDialog =no
UsePreviousLanguage =no
VersionInfoVersion =1.0.0.0
[Languages]
// Подключение файлов языков установки
//=============================================================
Name: eng; MessagesFile: compiler:Languages\English.isl
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[code_]
function InitializeSetup: Boolean;
begin
// Язык системы
//=============================================================
if GetUILanguage = $0419 or GetUILanguage = $0422 or GetUILanguage = $0423 then
ActiveLanguage = 'rus' else
ActiveLanguage = 'eng';
Result:= True;
end;
type
LCID = LongInt;
var
LangFile: String;
function GetSystemDefaultLCID() : LCID; external 'GetSystemDefaultLCID@kernel32.dll stdcall';
function InitializeSetup:boolean;
var
lngF : String;
begin
if GetSystemDefaultLCID = 1049 then
lngF := 'Russian.isl'
else
lngF := 'English.isl';
LangFile:= ExpandConstant('{tmp}\'+lngF);
if not FileExists(LangFile) then ExtractTemporaryFile(lngF);
Result:=True;
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
WelcomeLabel1.Caption:= GetIniString('Messages', 'WelcomeLabel1', '', LangFile); // и так для каждого статика и лейбела инсталла
WelcomeLabel2.Caption:= GetIniString('Messages', 'WelcomeLabel2', '', LangFile); // и так для каждого статика и лейбела инсталла
end;
end;
[/SPOILER]
Данный пример имеет один недостаток - каждый раз приходится вызывать GetIniString и передавать множество параметров. Улучшить его можно так:[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.
[Files]
Source: "compiler:Languages\Russian.isl"; DestDir: {tmp}; Flags: dontcopy;
Source: "compiler:Languages\English.isl"; DestDir: {tmp}; Flags: dontcopy
Код:type LCID = LongInt; var LangFile: String; function GetSystemDefaultLCID() : LCID; external 'GetSystemDefaultLCID@kernel32.dll stdcall'; function InitializeSetup:boolean; var lngF : String; begin if GetSystemDefaultLCID = 1049 then lngF := 'Russian.isl' else lngF := 'English.isl'; LangFile:= ExpandConstant('{tmp}\'+lngF); if not FileExists(LangFile) then ExtractTemporaryFile(lngF); Result:=True; end; procedure InitializeWizard(); begin with WizardForm do begin WelcomeLabel1.Caption:= GetIniString('Messages', 'WelcomeLabel1', '', LangFile); // и так для каждого статика и лейбела инсталла WelcomeLabel2.Caption:= GetIniString('Messages', 'WelcomeLabel2', '', LangFile); // и так для каждого статика и лейбела инсталла end; end; [/SPOILER]
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.
[Files]
Source: "compiler:Languages\Russian.isl"; DestDir: {tmp}; Flags: dontcopy;
Source: "compiler:Languages\English.isl; DestDir: {tmp}; Flags: dontcopy
[code]
type
LCID = LongInt;
var
LangFile: String;
function GetSystemDefaultLCID() : LCID; external 'GetSystemDefaultLCID@kernel32.dll stdcall';
function GetMessage(Param: string): string;
begin
result:= GetIniString('Messages', Param, '', LangFile);
end;
function InitializeSetup:boolean;
var
lngF : String;
begin
if GetSystemDefaultLCID = 1049 then
lngF := 'Russian.isl'
else
lngF := 'English.isl';
LangFile:= ExpandConstant('{tmp}\'+lngF);
if not FileExists(LangFile) then ExtractTemporaryFile(lngF);
Result:=True;
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
WelcomeLabel1.Caption:= GetMessage('WelcomeLabel1'); // и так для каждого статика и лейбела инсталла
WelcomeLabel2.Caption:= ExpandConstant('{code:GetMessage|WelcomeLabel2}'); // или так
end;
end;
Это не работаетА нельзя как то так:
[Languages]
Name: eng; MessagesFile: compiler:Languages\English.isl
Name: rus; MessagesFile: compiler:Languages\Russian.isl
Name: ukr; MessagesFile: compiler:Languages\Russian.isl
........................
repeat
case ActiveLanguage of
'ukr': ChangeLanguage('Russian');
'eng': ChangeLanguage('English');
'rus': ChangeLanguage('Russian');
end;
Это тоже не работает.Код:[Setup] AppName =My appName DefaultDirName ={pf}\My appName ShowLanguageDialog =no UsePreviousLanguage =no VersionInfoVersion =1.0.0.0 [Languages] // Подключение файлов языков установки //============================================================= Name: eng; MessagesFile: compiler:Languages\English.isl Name: rus; MessagesFile: compiler:Languages\Russian.isl [code_] function InitializeSetup: Boolean; begin // Язык системы //============================================================= if GetUILanguage = $0419 or GetUILanguage = $0422 or GetUILanguage = $0423 then ActiveLanguage = 'rus' else ActiveLanguage = 'eng'; Result:= True; end;
Я не большой специалист в in no setup, и не знаю как это сделатьПривет L-e-o-n. Давно тебя не слышал. А как на счет если переделать ru.isl и en.isl в .iss CustomMessages туда же поместить и подключить как модули из [Code}
Возможно через WinApi симулировать выбор языка и нажатие кнопки OK, но это очень муторно. Если сделать всё достаточно быстро, то пользователь ничего не заметит (или его можно вообще сделать невидимым).А нельзя передать значение lngF в InitializeLanguageDialog() без показа самого окна?