Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 [88] 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

insombia
05-06-2011, 21:10
ILIA_1992 Да

lmiol
05-06-2011, 22:34
lmiol, Могу предложить вариант с задачами, а не компонентами, тогда твой вопрос решается легким движением руки - создаеш два компонента - стандарт и премиум, а то, что было в компонентах - делаеш задачами, наборы задач вешаеш на компоненты. Просто задачи создаются на странице задач, не раньше, а вот компоненты, видимо, сразу, поэтому стандартными средствами на них не повлиять никак.
Лександер, cпасибо, а можно наглядный пример?

Gnom_aka_Lexander
05-06-2011, 23:19
lmiol, Както так:

[Setup]
AppName=Quake Live
AppVerName="Quake Live"
AppPublisher=Mio Dark Project
CreateAppDir=no
AlwaysShowComponentsList=false

[Languages]
Name: ru; MessagesFile: compiler:Languages\Russian.isl;

[Types]
Name: "St"; Description: "Standart";
Name: "Pr"; Description: "Premium / Pro";

[Components]
Name: Standart; Description: Standart; Types: St; Flags: exclusive;
Name: Premium; Description: "Premium / Pro"; Types: Pr; Flags: exclusive;

[Tasks]
Name: browser2; Description: "Портативный Firefox под Quake Live Premium"; GroupDescription: "Quake Live Premium"; Components: Premium;
Name: browser; Description: "Портативный Firefox под Quake Live"; GroupDescription: "Quake Live"; Components: Standart;
Name: "plug"; Description: "Плагин Quake Live";
Name: "manual"; Description: "Руководство и Награды";
Name: "anti"; Description: "Античит PunkBuster";

Name: "desktopicon"; Description: "Создать ярлык на Рабочем Столе"; GroupDescription: "{cm:AdditionalIcons}"

[Code]
procedure InitializeWizard();
begin
with WizardForm.SelectComponentsLabel do
begin
Caption := 'Выберите тип установки';
end;
end;

pirat486
06-06-2011, 07:59
Как сделать чтоб было как на скринах? Я новичек поэтому как то так:
http://s002.radikal.ru/i197/1106/66/873a69c730e3t.jpg (http://radikal.ru/F/s002.radikal.ru/i197/1106/66/873a69c730e3.jpg.html)

http://s010.radikal.ru/i311/1106/2f/9dbd06b65957t.jpg (http://radikal.ru/F/s010.radikal.ru/i311/1106/2f/9dbd06b65957.jpg.html)

R.i.m.s.k.y.
06-06-2011, 08:24
в simplified Chinese Windows 7 x64 не выводятся надписи лицензии

http://rghost.ru/9562141/image.png (http://rghost.ru/9562141.view)

можно ли эти надписи самому назначать?

Gnom_aka_Lexander
06-06-2011, 08:49
simplified Chinese Windows 7 x64 »
- это чего такое? просто не понятно :)
И в каком месте не выводятся надписи?
Теперь понятно - у меня просто скрин не загружается почемуто.
По умолчанию - Tahoma используется, возможно его просто нет в китайской ОС

R.i.m.s.k.y.
06-06-2011, 09:00
- это чего такое? просто не понятно »
венда китайская, дистр скачал кетаес
не выводящиеся надписи на скрине красным обведены
должны быть стандартные строчки "согласен с лицензией / не согласен" и значок копирайта ©
значок копирайта © не проблема сменить на (С), а вот что делать с пустыми строчками?

вопрос на засыпку - какой шрифт использует инно по-умолчанию?

R.i.m.s.k.y.
06-06-2011, 09:52
Neutron, я б тебе ответил но не знаю как опрашивать девайсы

R.i.m.s.k.y.
06-06-2011, 12:03
c кетайсами еще вот такая трабла

http://rghost.ru/9577531/image.png (http://rghost.ru/9577531.view)

пароль пользуется для защиты дистра от потрошения инноапом и вводится еще в InitializeWizard как WizardForm.PasswordEdit.Text = '...'

AN9ROS
06-06-2011, 13:27
Извините! Как сделать оформление к примеру как у Механиков??

Gnom_aka_Lexander
06-06-2011, 14:15
R.i.m.s.k.y., Забей на китайскую винду, и жизнь наладится:) либо нужно кропотливо искать, что именно мешает жить.
AN9ROS, что именно тебя интересует?

R.i.m.s.k.y.
06-06-2011, 14:28
Забей на китайскую винду, и жизнь наладится »
хорошее решение, универсальное, но не годится

Dark_Delphin
06-06-2011, 14:39
Как сделать что-бы сначала роспаковувались просто файлы, а потом *.arc архив?

Вот скрипт.
#define GameName "Crysis Warhead"
#define NeedSize "10000000000"

#define precomp038
#define ExeName "Crysis2Launcher.exe"
#define ExeDir "bin32\"


[Setup]
AppName={#GameName}
AppVerName={#GameName}
DefaultDirName={pf}\{#GameName}
DefaultGroupName={#GameName}
OutputDir=.
OutputBaseFilename=Setup
SolidCompression=true
#ifdef NeedSize
ExtraDiskSpaceRequired={#NeedSize}
#endif
WizardImageFile=img.bmp
WizardSmallImageFile=shapka.bmp
#ifdef Components
SetupIconFile=iconset.ico
Compression=lzma2/ultra64
InternalCompressLevel=ultra64

[Types]
Name: "full"; Description: "Full installation"; Flags: iscustom


#endif

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
; лого (нижнє)
Source: "logo2.bmp"; DestDir: "{app}"; Attribs: hidden system;
; Іконка папки при виборі папки установки
Source: "DirBitmap.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: ISDone.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: records.inf; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef precomp038
Source: Include\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\RTconsole.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
#endif










[Run]
Filename: "{src}\Redist\dxwebsetup.exe"; StatusMsg: "Обновление DirectX..."; Flags: waituntilterminated
Filename: "{src}\Redist\vcredist_x86_2005_sp1.exe"; Parameters: "/q"; StatusMsg: "Установка Microsoft Visual C++ 2005 SP1 Redist..."; Flags: runhidden waituntilterminated ;







[Icons]
Name: {group}\{#GameName}; Filename: {app}\{#ExeDir}{#ExeName}; WorkingDir: {app}\{#ExeDir}; Comment: {#GameName};
Name: {group}\Удалить игру; Filename: {app}\Uninstall\unins000; WorkingDir: {app}\Uninstall\; Comment: Удалить игру;
; Іконка на роб. стіл
Name: "{commondesktop}\{#GameName}"; Filename: "{app}\{#ExeDir}{#ExeName}"; WorkingDir: "{app}\{#ExeDir}"; Comment: "{#GameName}"; Tasks: desktopicon;


[CustomMessages]
russian.ExtractedFile=Распаковывается файл:
russian.CancelButton=Отменить распаковку
russian.Error=Ошибка распаковки!

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[UninstallDelete]
Type: filesandordirs; Name: {app}

[Code]
var
LabelPct,LabelCurrFileName: TLabel;
ISDoneProgressBar: TNewProgressBar;
MyCancelButton: TButton;
OveralPct,Cancel:integer;
CallBack:longword;
MyError:boolean;
FinishedLabel: TLabel;
Text: TNewStaticText;
LogoImage: TBitmapImage;


type
TCallback = function (Pct: integer;CurrentFile:string): longword;
TMessage = record hWnd: HWND; msg, wParam: Word; lParam: LongWord; Time: TFileTime; pt: TPoint; end;

function PeekMessage(var lpMsg: TMessage; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall';
function TranslateMessage(const lpMsg: TMessage): BOOL; external 'TranslateMessage@user32.dll stdcall';
function DispatchMessage(const lpMsg: TMessage): Longint; external 'DispatchMessageA@user32.dll stdcall';

function WrapMyCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:innocallback.dll stdcall';

function ISArcExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; callback: longword; Password, CfgFile, WorkPath: AnsiString):BOOL; external 'ISArcExtract@files:ISDone.dll stdcall';
function IS7ZipExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; callback: longword; Password: AnsiString):BOOL; external 'IS7zipExtract@files:ISDone.dll stdcall';

function ISPrecompExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean; callback: longword):BOOL; external 'ISPrecompExtract@files:ISDone.dll stdcall';
function ISSRepExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutFile, IdxFile: AnsiString; DeleteInFile:boolean; callback: longword):BOOL; external 'ISSrepExtract@files:ISDone.dll stdcall';
function ShowChangeDiskWindow(Text, DefaultPath, SearchFile:AnsiString):BOOL; external 'ShowChangeDiskWindow@files:ISDone.dll stdcall';
function StartRecord(RecordFileName:AnsiString; AllComponents:longword):BOOL; external 'StartRecord@files:ISDone.dll stdcall';
function CheckPoint(CurComponent:Integer):BOOL; external 'CheckPoint@files:ISDone.dll stdcall';
function StopRecord:BOOL; external 'StopRecord@files:ISDone.dll stdcall';

function ProgressCallback(Pct: integer; CurrentFile:AnsiString): longword;
var Msg: TMessage;
begin
if Pct<=ISDoneProgressBar.Max then
ISDoneProgressBar.Position := Pct;
LabelPct.Caption := IntToStr(Pct div 10)+'.'+chr(48 + Pct mod 10)+'%';
LabelCurrFileName.Caption :=ExpandConstant('{cm:ExtractedFile} ')+CurrentFile;
while PeekMessage(Msg, 0, 0, 0, 1) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Result := Cancel;
end;

procedure CancelButtonOnClick(Sender: TObject);
begin
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:=1;
end;

procedure InitializeWizard();
begin
// розпаковка темп. іконки папки
ExtractTemporaryFile('DirBitmap.bmp');
// розпаковка темп. лого (внизу)
ExtractTemporaryFile('logo2.bmp');
/////////////////// КОД для лого (внизу)
LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
// розміри
SetBounds(ScaleX(10), ScaleY(320), ScaleX(175), ScaleY(35));
Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo2.bmp'));
Parent := WizardForm;
end;
//////////////// КІНЕЦЬ для лого (внизу)
//////////////// лого вверху
with WizardForm.WizardSmallBitmapImage do
begin
// розміри
SetBounds(ScaleX(0), ScaleY(2), ScaleX(497), ScaleY(56));
end;
///////////// іконка папки
with WizardForm.SelectDirBitmapImage do
begin
// розміри
SetBounds(ScaleX(0), ScaleY(0), ScaleX(42), ScaleY(42));
end;
///////////////////////////////////////////////////////
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\DirBitmap.bmp'));

///////////
WizardForm.MainPanel.Color := clGray;
WizardForm.WizardBitmapImage.Width := 497;
WizardForm.WizardBitmapImage2.Width := 497;
WizardForm.PageNameLabel.Width:=0;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.Font.Color:=clblack;
// background colour
WizardForm.Color:=clGray; // Цвет панелі та шо внизу
WizardForm.WelcomePage.Color:=clGray;
WizardForm.InnerPage.Color:=clGray; // цвет панели посеред инстала
WizardForm.SelectDirPage.Color:=clGray;
WizardForm.FinishedPage.Color:=clGray;
/////////////// перша сторінка
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;


with TLabel.Create(WizardForm) do begin
AutoSize:=WizardForm.WelcomeLabel1.AutoSize;
Left:=WizardForm.WelcomeLabel1.Left;
Top:=WizardForm.WelcomeLabel1.Top
Width:=WizardForm.WelcomeLabel1.Width
Height:=WizardForm.WelcomeLabel1.Height
WordWrap:=WizardForm.WelcomeLabel1.WordWrap;
Font.Name:=WizardForm.WelcomeLabel1.Font.Name;
Font.Size:=WizardForm.WelcomeLabel1.Font.Size;
Font.Color:=clblack; // text colour верхнє
Font.Style:=WizardForm.WelcomeLabel1.Font.Style;
Caption:=WizardForm.WelcomeLabel1.Caption;
Parent:=WizardForm.WelcomeLabel1.Parent
Transparent:=True
end;
with TLabel.Create(WizardForm) do begin
AutoSize:=WizardForm.WelcomeLabel2.AutoSize;
Left:=WizardForm.WelcomeLabel2.Left;
Top:=WizardForm.WelcomeLabel2.Top
Width:=WizardForm.WelcomeLabel2.Width
Height:=WizardForm.WelcomeLabel2.Height
WordWrap:=WizardForm.WelcomeLabel2.WordWrap;
Font.Name:=WizardForm.WelcomeLabel2.Font.Name;
Font.Size:=WizardForm.WelcomeLabel2.Font.Size;
Font.Color:=clblack; // text colour нижнє
Font.Style:=WizardForm.WelcomeLabel2.Font.Style;
Caption:=WizardForm.WelcomeLabel2.Caption;
Parent:=WizardForm.WelcomeLabel2.Parent
Transparent:=True
end;
/////////////////////////
///////// фініш
WizardForm.FinishedHeadingLabel.Hide;


with TLabel.Create(WizardForm) do begin
AutoSize:=WizardForm.FinishedHeadingLabel.AutoSize;
Left:=WizardForm.FinishedHeadingLabel.Left;
Top:=WizardForm.FinishedHeadingLabel.Top
Width:=WizardForm.FinishedHeadingLabel.Width
Height:=WizardForm.FinishedHeadingLabel.Height
WordWrap:=WizardForm.FinishedHeadingLabel.WordWrap;
Font.Name:=WizardForm.FinishedHeadingLabel.Font.Name;
Font.Size:=WizardForm.FinishedHeadingLabel.Font.Size;
Font.Color:=clblack; // text colour в конце инсталлятора
Font.Style:=WizardForm.FinishedHeadingLabel.Font.Style;
Caption:=WizardForm.FinishedHeadingLabel.Caption;
Parent:=WizardForm.FinishedHeadingLabel.Parent
Transparent:=True
end;

FinishedLabel:= TLabel.Create(WizardForm)
WizardForm.FinishedLabel.Hide;
with TLabel.Create(WizardForm) do begin
Font.Name:=WizardForm.FinishedLabel.Font.Name;
Font.Size:=WizardForm.FinishedLabel.Font.Size;
Font.Color:=clgreen; // text colour
Font.Style:=WizardForm.FinishedLabel.Font.Style;
Caption:=WizardForm.FinishedLabel.Caption;
Parent:=WizardForm.FinishedLabel.Parent
Transparent:=True
end;





/////////////////////////////////////////////
ISDoneProgressBar := TNewProgressBar.Create(WizardForm);
with ISDoneProgressBar do begin
Left := ScaleX(0);
Top := ScaleY(40);
Width := ScaleX(417);
Max := 1000;
Height := WizardForm.ProgressGauge.Height;
Parent := WizardForm.InstallingPage;
end;
LabelPct := TLabel.Create(WizardForm);
with LabelPct do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := WizardForm.ProgressGauge.Width;
Top := WizardForm.ProgressGauge.Top + ScaleY(40);
Alignment := taCenter;
Caption := '';
end;
LabelCurrFileName := TLabel.Create(WizardForm);
with LabelCurrFileName do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := WizardForm.ProgressGauge.Width;
Left := ScaleX(0);
Top := WizardForm.ProgressGauge.Top + ScaleY(25);
Caption := '';
end;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpFinished) and MyError then
begin
/////////
with TLabel.Create(WizardForm) do begin
WizardForm.FinishedLabel.Hide;
AutoSize:=WizardForm.FinishedHeadingLabel.AutoSize;
Left:=WizardForm.FinishedLabel.Left;
Top:=WizardForm.FinishedLabel.Top
Width:=WizardForm.FinishedLabel.Width
Height:=WizardForm.FinishedLabel.Height
WordWrap:=WizardForm.FinishedLabel.WordWrap;
Font.Name:=WizardForm.FinishedLabel.Font.Name;
Font.Size:=WizardForm.FinishedLabel.Font.Size;

//
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Font.Color:= clyellow;
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted);

Font.Color:=clwhite;
//
Font.Style:=WizardForm.FinishedLabel.Font.Style;
Caption:=WizardForm.FinishedLabel.Caption;
Parent:=WizardForm.FinishedLabel.Parent
Transparent:=True
end;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var ChComp, TmpValue:longword;
n:integer;
begin
if CurStep = ssInstall then begin //Если необходимо, можно переделать на ssPostInstall
WizardForm.ProgressGauge.Hide;
WizardForm.CancelButton.Visible:=false;
MyCancelButton:=TButton.Create(WizardForm);
with MyCancelButton do begin
Parent:=WizardForm;
Width:=ScaleX(135);
Caption:=ExpandConstant('{cm:CancelButton}');
Left:=ScaleX(360);
Top:=WizardForm.cancelbutton.top;
OnClick:=@CancelButtonOnClick;
end;
CallBack:=WrapMyCallback(@ProgressCallback,2);
Cancel:=0;
OveralPct:=0;
















// Распаковка всех необходимых файлов в папку {tmp}. Это необходимо для того, чтобы
//выполнять установку в момент ssInstall, и секция [Run] выполнялась после установки.
#ifdef records
ExtractTemporaryFile('records.inf');
#endif

#ifdef precomp038
ExtractTemporaryFile('packjpg_dll.dll');
ExtractTemporaryFile('RTconsole.exe');
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('zlib1.dll');
#endif


// Подготавливаем переменную, содержащую всю информацию о выделенных компонентах для ISDone.dll
ChComp:=0;


StartRecord(ExpandConstant('{src}\records.inf'),ChComp);
repeat
MyError:=true;

if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\muzk.arc'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
if not ISSRepExtract ( 0, OveralPct, 0, ExpandConstant('{app}\muzk.srep'), ExpandConstant('{app}\muzk.pcf'), '', true, CallBack ) then break;
if not ISPrecompExtract( 0, OveralPct, 0, ExpandConstant('{app}\muzk.pcf'), ExpandConstant('{app}\muzk.7z'), true, CallBack ) then break;
if not IS7ZipExtract ( 0, OveralPct, 0, ExpandConstant('{app}\muzk.7z'), ExpandConstant('{app}'), true, CallBack, '' ) then break;

MyError:=false;
until true;
StopRecord;

MyCancelButton.Visible:=false;
WizardForm.CancelButton.Visible:=true;
end;
if (CurStep=ssPostInstall) and MyError then
Exec(ExpandConstant('{uninstallexe}'), '/SILENT','', sw_Hide, ewWaitUntilTerminated, n);
end;


Заранее спасибо.

Habetdin
06-06-2011, 14:51
пароль пользуется для защиты дистра от потрошения инноапом »
Можно скомпиллить Inno от Restools, его и без пароля не может анпакер распотрошить... Ну, если анпакер не от Restools :biggrin:

R.i.m.s.k.y.
06-06-2011, 15:53
это решает проблему с паролем, а первую - http://forum.oszone.net/post-1689108.html#post1689108 как решить?

Gnom_aka_Lexander
06-06-2011, 16:46
R.i.m.s.k.y., Проверь, есть-ли в системе шрифт Tahoma, если нет - установи, а так вот, управление подписями к этим радиокнопкам:
[Code]
procedure InitializeWizard();
begin
with WizardForm.LicenseNotAcceptedRadio do
begin
Caption := 'Я &не принимаю условия соглашения';
Font.Color := clBlack;
Font.Name := 'Times New Roman';
ParentFont := False;
end;

with WizardForm.LicenseAcceptedRadio do
begin
Caption := 'Я &принимаю условия соглашения';
Font.Color := clBlack;
Font.Name := 'Times New Roman';
ParentFont := False;
end;
end;

El Sanchez
06-06-2011, 16:48
а первую - http://forum.oszone.net/post-1689108.html#post1689108 как решить? »
R.i.m.s.k.y.,

//вариант №1
[Messages]
LicenseAccepted=Я не прочитал, не читаю никогда, так что дальше
LicenseNotAccepted=А оно мне надо?

//вариант №2
[code]
procedure InitializeWizard();
begin
WizardForm.LicenseAcceptedRadio.Caption := 'Я не прочитал, не читаю никогда, так что дальше';
WizardForm.LicenseNotAcceptedRadio.Caption := 'А оно мне надо?';
end;

R.i.m.s.k.y.
06-06-2011, 17:04
[Messages] LicenseAccepted=Я не прочитал, не читаю никогда, так что дальше LicenseNotAccepted=А оно мне надо? »
как это привязать к разным языковым версиям инсталлера?

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl; LicenseFile: ...
Name: english; MessagesFile: compiler:Languages\English.isl; LicenseFile:...

прокатит?
[Messages]
english.LicenseAccepted=fuck everybody :)
russian.LicenseAccepted=Я не прочитал, не читаю никогда, так что дальше

El Sanchez
06-06-2011, 17:19
как это привязать к разным языковым версиям инсталлера? »
R.i.m.s.k.y., в папке Languages нет english.isl, он в корне как default.isl, т.е. должно быть так:

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl; LicenseFile: ...
Name: english; MessagesFile: compiler:Default.isl; LicenseFile:...

[Messages]
russian.LicenseAccepted=да
russian.LicenseNotAccepted=нет
english.LicenseAccepted=yes
english.LicenseNotAccepted=no

R.i.m.s.k.y.
06-06-2011, 17:20
меня интересовало сработает ли
[Messages]
russian.LicenseAccepted=да
russian.LicenseNotAccepted=нет
english.LicenseAccepted=yes
english.LicenseNotAccepted=no »
спасибо!




© OSzone.net 2001-2012