Jelajahi Sumber

Merge branch 'master' of https://github.com/jrsoftware/issrc

Tichij 6 tahun lalu
induk
melakukan
74c8640c67

+ 1 - 0
.github/FUNDING.yml

@@ -0,0 +1 @@
+custom: ['http://www.jrsoftware.org/isdonate.php']

+ 52 - 0
Components/Components.dpk

@@ -0,0 +1,52 @@
+package Components;
+
+{$R *.res}
+{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION OFF}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DEFINE DEBUG}
+{$ENDIF IMPLICITBUILDING}
+{$DESCRIPTION 'Inno Setup Components'}
+{$IMPLICITBUILD ON}
+
+requires
+  rtl,
+  designide,
+  vcl,
+  vclactnband,
+  vclx,
+  xmlrtl;
+
+contains
+  BidiCtrls in 'BidiCtrls.pas',
+  BitmapImage in 'BitmapImage.pas',
+  DropListBox in 'DropListBox.pas',
+  FolderTreeView in 'FolderTreeView.pas',
+  NewCheckListBox in 'NewCheckListBox.pas',
+  NewNotebookReg in 'NewNotebookReg.pas',
+  NewProgressBar in 'NewProgressBar.pas',
+  NewStaticText in 'NewStaticText.pas',
+  NewTabSet in 'NewTabSet.pas',
+  PasswordEdit in 'PasswordEdit.pas',
+  RichEditViewer in 'RichEditViewer.pas';
+
+end.

+ 4 - 6
Components/FolderTreeView.pas

@@ -11,8 +11,6 @@ unit FolderTreeView;
 
 interface
 
-{$I VERSION.INC}
-
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, CommCtrl;
 
@@ -137,7 +135,7 @@ implementation
 }
 
 uses
-  PathFunc, ShellApi, UxThemeISX{$IFDEF IS_D12}, Types{$ENDIF};
+  PathFunc, ShellApi, UxTheme, Types;
 
 const
   SHPPFW_NONE = $00000000;
@@ -674,7 +672,7 @@ begin
             TVItem.hItem := DispItem.hItem;
             TVItem.pszText := PChar(S);
             TreeView_SetItem(Handle, TVItem);
-            TreeView_SortChildren(Handle, TreeView_GetParent(Handle, DispItem.hItem), {$IFDEF IS_DXE2}False{$ELSE}0{$ENDIF});
+            TreeView_SortChildren(Handle, TreeView_GetParent(Handle, DispItem.hItem), False);
             Change;
           end;
         end;
@@ -1031,7 +1029,7 @@ begin
     if Result then begin
       { When a text callback is used, sorting after all items are inserted is
         exponentially faster than using hInsertAfter=TVI_SORT }
-      TreeView_SortChildren(Handle, Item, {$IFDEF IS_DXE2}False{$ELSE}0{$ENDIF});
+      TreeView_SortChildren(Handle, Item, False);
     end;
   end;
 end;
@@ -1169,7 +1167,7 @@ begin
       AddSubfolders(Item, AddBackslash(FCommonPrograms) + Path, FCommonStartup);
     if FUserPrograms <> '' then
       AddSubfolders(Item, AddBackslash(FUserPrograms) + Path, FUserStartup);
-    TreeView_SortChildren(Handle, Item, {$IFDEF IS_DXE2}False{$ELSE}0{$ENDIF});
+    TreeView_SortChildren(Handle, Item, False);
   end;
 end;
 

+ 10 - 2
Components/NewCheckListBox.pas

@@ -15,7 +15,7 @@ interface
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  StdCtrls, UxThemeISX;
+  StdCtrls, UxTheme;
 
 const
   WM_UPDATEUISTATE = $0128;
@@ -198,7 +198,7 @@ procedure Register;
 implementation
 
 uses
-  TmSchemaISX, PathFunc, ActiveX, BidiUtils, Types;
+  TmSchema, PathFunc, ActiveX, BidiUtils, Types;
 
 const
   sRadioCantHaveDisabledChildren = 'Radio item cannot have disabled child items';
@@ -755,6 +755,7 @@ var
   UIState: DWORD;
   SubItemWidth: Integer;
   PartId, StateId: Integer;
+  Size: TSize;
 begin
   if FShowLines and not FThreadsUpToDate then begin
     UpdateThreads;
@@ -835,6 +836,13 @@ begin
           StateId := ButtonStateIds[ItemState.State][cb2Hot]
         else
           StateId := ButtonStateIds[ItemState.State][cb2Normal];
+        GetThemePartSize(FThemeData, Handle, PartId, StateId, @CheckRect, TS_TRUE, Size);
+        if (Size.cx <> FCheckWidth) or (Size.cy <> FCheckHeight) then begin
+          CheckRect := Bounds(Rect.Left - (Size.cx + FOffset),
+            Rect.Top + ((Rect.Bottom - Rect.Top - Size.cy) div 2),
+            Size.cx, Size.cy);
+          FlipRect(CheckRect, SavedClientRect, FUseRightToLeft);
+        end;
         //if IsThemeBackgroundPartiallyTransparent(FThemeData, PartId, StateId) then
         //  DrawThemeParentBackground(Self.Handle, Handle, @CheckRect);
         DrawThemeBackGround(FThemeData, Handle, PartId, StateId, CheckRect, @CheckRect);

+ 1 - 0
Components/ScintStylerInnoSetup.pas

@@ -215,6 +215,7 @@ type
     ssSignToolMinimumTimeBetween,
     ssSignToolRetryCount,
     ssSignToolRetryDelay,
+    ssSignToolRunMinimized,
     ssSlicesPerDisk,
     ssSolidCompression,
     ssSourceDir,

+ 1 - 1
Components/TmSchemaISX.pas → Components/TmSchema.pas

@@ -46,7 +46,7 @@
 
 { Simplified by Martijn Laan for Inno Setup and Delphi 2 }
 
-unit TmSchemaISX;
+unit TmSchema;
 
 interface
 

+ 1 - 1
Components/UxThemeISX.pas → Components/UxTheme.pas

@@ -46,7 +46,7 @@
 
 { Simplified by Martijn Laan for Inno Setup and Delphi 2 }
 
-unit UxThemeISX;
+unit UxTheme;
 
 interface
 

+ 2 - 1
Files/Default.isl

@@ -1,4 +1,4 @@
-; *** Inno Setup version 6.0.0+ English messages ***
+; *** Inno Setup version 6.0.3+ English messages ***
 ;
 ; To download user-contributed translations of this file, go to:
 ;   http://www.jrsoftware.org/files/istrans/
@@ -218,6 +218,7 @@ ApplicationsFound2=The following applications are using files that need to be up
 CloseApplications=&Automatically close the applications
 DontCloseApplications=&Do not close the applications
 ErrorCloseApplications=Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing.
+PrepareToInstallNeedsRestart=Setup must restart your computer. After restarting your computer, run Setup again to complete the installation of [name].%n%nWould you like to restart now?
 
 ; *** "Installing" wizard page
 WizardInstalling=Installing

+ 6 - 6
Files/ISPPBuiltins.iss

@@ -1,12 +1,11 @@
 ; BEGIN ISPPBUILTINS.ISS
 //
-// Inno Setup Preprocessor 5
+// Inno Setup Preprocessor
 //
 // Copyright (C) 2001-2004 Alex Yackimoff. All Rights Reserved.
 // Portions by Martijn Laan.
-// http://ispp.sourceforge.net
 //
-// Inno Setup (C) 1997-2018 Jordan Russell. All Rights Reserved.
+// Inno Setup (C) 1997-2019 Jordan Russell. All Rights Reserved.
 // Portions by Martijn Laan.
 //
 #if defined(ISPP_INVOKED) && !defined(_BUILTINS_ISS_)
@@ -51,10 +50,11 @@
 #else
 # pragma parseroption -p-
 #endif
-
-#define NewLine "\n"
+//
+#define NewLine            "\n"
+#define Tab                "\t"
+//
 #pragma parseroption -p+
-
 //
 #pragma spansymbol "\"
 //

+ 3 - 2
Files/Languages/Dutch.isl

@@ -1,4 +1,4 @@
-; *** Inno Setup version 6.0.0+ Dutch messages ***
+; *** Inno Setup version 6.0.3+ Dutch messages ***
 ;
 ; This file is based on user-contributed translations by various authors
 ;
@@ -193,13 +193,14 @@ ReadyMemoTasks=Extra taken:
 ; *** "Preparing to Install" wizard page
 WizardPreparing=Bezig met het voorbereiden van de installatie
 PreparingDesc=Setup is bezig met het voorbereiden van de installatie van [name].
-PreviousInstallNotCompleted=De installatie/verwijdering van een vorig programma is niet voltooid. U moet uw computer opnieuw opstarten om die installatie te voltooien.%n%nStart [name] Setup nogmaals als uw computer opnieuw is opgestart.
+PreviousInstallNotCompleted=De installatie/verwijdering van een vorig programma is niet voltooid. U moet uw computer opnieuw opstarten om die installatie te voltooien.%n%nStart Setup nogmaals nadat uw computer opnieuw is opgestart om de installatie van [name] te voltooien.
 CannotContinue=Setup kan niet doorgaan. Klik op annuleren om af te sluiten.
 ApplicationsFound=De volgende programma's gebruiken bestanden die moeten worden bijgewerkt door Setup. U wordt aanbevolen Setup toe te staan om automatisch deze programma's af te sluiten.
 ApplicationsFound2=De volgende programma's gebruiken bestanden die moeten worden bijgewerkt door Setup. U wordt aanbevolen Setup toe te staan om automatisch deze programma's af te sluiten. Nadat de installatie is voltooid zal Setup proberen de applicaties opnieuw op te starten.
 CloseApplications=&Programma's automatisch afsluiten
 DontCloseApplications=Programma's &niet afsluiten
 ErrorCloseApplications=Setup kon niet alle programma's automatisch afsluiten. U wordt aanbevolen alle programma's die bestanden gebruiken die moeten worden bijgewerkt door Setup af te sluiten voordat u verder gaat.
+PrepareToInstallNeedsRestart=Setup moet uw computer opnieuw opstarten. Start Setup nogmaals nadat uw computer opnieuw is opgestart om de installatie van [name] te voltooien.%n%nWilt u nu opnieuw opstarten?
 
 ; *** "Installing" wizard page
 WizardInstalling=Bezig met installeren

+ 334 - 312
Files/Languages/Unofficial/Bulgarian.isl

@@ -1,22 +1,22 @@
-; *** Inno Setup version 5.5.3+ Bulgarian messages ***
-; Mikhail Balabanov <[email protected]>
+п»ї; *** Inno Setup version 6.0.0+ Bulgarian messages ***
+; Ventsislav Dimitrov <[email protected]>
 ;
-; За да изтеглите преводи на този файл, предоставени от потребители, посетете:
+; За да изтеглите преводи на този файл, предоставени от потребители, посетете:
 ;   http://www.jrsoftware.org/files/istrans/
 ;
-; Забележка: когато превеждате, не добавяйте точка (.) в края на съобщения,
-; които нямат, защото Inno Setup им добавя автоматично (прибавянето на точка
-; ще доведе до показване на две точки).
+; Забележка: когато превеждате, не добавяйте точка (.) в края на съобщения,
+; които нямат, защото Inno Setup им добавя автоматично (прибавянето на точка
+; ще доведе до показване на две точки).
 
 [LangOptions]
-; Следните три записа са много важни. Уверете се, че сте прочел и разбирате
-; раздела "[LangOptions]" на помощния файл.
-LanguageName=<0431><044A><043B><0433><0430><0440><0441><043A><0438>
+; Следните три записа са много важни. Уверете се, че сте прочел и разбирате
+; раздела "[LangOptions]" на помощния файл.
+LanguageName=Български
 LanguageID=$0402
 LanguageCodePage=1251
-; Ако езикът, на който превеждате, изисква специална гарнитура или размер на
-; шрифта, извадете от коментар съответните записи по-долу и ги променете
-; според вашите нужди.
+; Ако езикът, на който превеждате, изисква специална гарнитура или размер на
+; шрифта, извадете от коментар съответните записи по-долу и ги променете
+; според вашите нужди.
 ;DialogFontName=
 ;DialogFontSize=8
 ;WelcomeFontName=Verdana
@@ -28,310 +28,332 @@ LanguageCodePage=1251
 
 [Messages]
 
-; *** Заглавия на приложенията
-SetupAppTitle=Инсталиране
-SetupWindowTitle=Инсталиране на %1
-UninstallAppTitle=Деинсталиране
-UninstallAppFullTitle=Деинсталиране на %1
-
-; *** Заглавия от общ тип
-InformationTitle=Информация
-ConfirmTitle=Потвърждение
-ErrorTitle=Грешка
-
-; *** Съобщения на зареждащия модул
-SetupLdrStartupMessage=Ще се инсталира %1. Желаете ли да продължите?
-LdrCannotCreateTemp=Не е възможно да се създаде временен файл. Инсталирането бе прекратено
-LdrCannotExecTemp=Не е възможно да се стартира файл от временната директория. Инсталирането бе прекратено
-
-; *** Съобщения за грешка при стартиране
-LastErrorMessage=%1.%n%nГрешка %2: %3
-SetupFileMissing=Файлът %1 липсва от инсталационната директория. Моля, отстранете проблема или се снабдете с ново копие на програмата.
-SetupFileCorrupt=Инсталационните файлове са повредени. Моля, снабдете се с ново копие на програмата.
-SetupFileCorruptOrWrongVer=Инсталационните файлове са повредени или несъвместими с тази версия на инсталатора. Моля, отстранете проблема или се снабдете с ново копие на програмата.
-InvalidParameter=В командния ред е подаден невалиден параметър:%n%n%1
-SetupAlreadyRunning=Инсталаторът вече се изпълнява.
-WindowsVersionNotSupported=Програмата не поддържа версията на Windows, с която работи компютърът ви.
-WindowsServicePackRequired=Програмата изисква %1 Service Pack %2 или по-нов.
-NotOnThisPlatform=Програмата не може да се изпълнява под %1.
-OnlyOnThisPlatform=Програмата трябва да се изпълнява под %1.
-OnlyOnTheseArchitectures=Програмата може да се инсталира само под версии на Windows за следните процесорни архитектури:%n%n%1
-MissingWOW64APIs=Използваната от вас версия на Windows не включва функционалността, необходима за 64-битово инсталиране. За да отстраните проблема, инсталирайте Service Pack %1.
-WinVersionTooLowError=Програмата изисква %1 версия %2 или по-нова.
-WinVersionTooHighError=Програмата не може да бъде инсталирана в %1 версия %2 или по-нова.
-AdminPrivilegesRequired=За да инсталирате програмата, трябва да влезете като администратор.
-PowerUserPrivilegesRequired=За да инсталирате програмата, трябва да влезете като администратор или потребител с разширени права.
-SetupAppRunningError=Инсталаторът установи, че %1 се изпълнява в момента.%n%nМоля, затворете всички копия на програмата и натиснете "OK", за да продължите, или "Cancel" за изход.
-UninstallAppRunningError=Деинсталаторът установи, че %1 се изпълнява в момента.%n%nМоля, затворете всички копия на програмата и натиснете "OK", за да продължите, или "Cancel" за изход.
-
-; *** Други грешки
-ErrorCreatingDir=Не е възможно да се създаде директория "%1"
-ErrorTooManyFilesInDir=Не е възможно да се създаде файл в директорията "%1", тъй като тя съдържа твърде много файлове
-
-; *** Съобщения от общ тип на инсталатора
-ExitSetupTitle=Затваряне на инсталатора
-ExitSetupMessage=Инсталирането не е завършено. Ако затворите сега, програмата няма да бъде инсталирана.%n%nПо-късно можете отново да стартирате инсталатора, за да завършите инсталирането.%n%nЗатваряте ли инсталатора?
-AboutSetupMenuItem=&За инсталатора...
-AboutSetupTitle=За инсталатора
-AboutSetupMessage=%1 версия %2%n%3%n%nУебстраница:%n%4
+; *** Заглавия на приложенията
+SetupAppTitle=�нсталиране
+SetupWindowTitle=�нсталиране на %1
+UninstallAppTitle=Деинсталиране
+UninstallAppFullTitle=Деинсталиране на %1
+
+; *** Заглавия от общ тип
+InformationTitle=�нформация
+ConfirmTitle=Потвърждение
+ErrorTitle=Грешка
+
+; *** Съобщения на зареждащия модул
+SetupLdrStartupMessage=Ще се инсталира %1. Желаете ли да продължите?
+LdrCannotCreateTemp=Не е възможно да се създаде временен файл. �нсталирането бе прекратено
+LdrCannotExecTemp=Не е възможно да се стартира файл от временната директория. �нсталирането бе прекратено
+
+; *** Съобщения за грешка при стартиране
+LastErrorMessage=%1.%n%nГрешка %2: %3
+SetupFileMissing=Файлът %1 липсва от инсталационната директория. Моля, отстранете проблема или се снабдете с ново копие на програмата.
+SetupFileCorrupt=�нсталационните файлове са повредени. Моля, снабдете се с ново копие на програмата.
+SetupFileCorruptOrWrongVer=�нсталационните файлове са повредени или несъвместими с тази версия на инсталатора. Моля, отстранете проблема или се снабдете с ново копие на програмата.
+InvalidParameter=В командния ред е подаден невалиден параметър:%n%n%1
+SetupAlreadyRunning=�нсталаторът вече се изпълнява.
+WindowsVersionNotSupported=Програмата не поддържа версията на Windows, с която работи компютърът ви.
+WindowsServicePackRequired=Програмата изисква %1 Service Pack %2 или по-нов.
+NotOnThisPlatform=Програмата не може да се изпълнява под %1.
+OnlyOnThisPlatform=Програмата трябва да се изпълнява под %1.
+OnlyOnTheseArchitectures=Програмата може да се инсталира само под версии на Windows за следните процесорни архитектури:%n%n%1
+WinVersionTooLowError=Програмата изисква %1 версия %2 или по-нова.
+WinVersionTooHighError=Програмата не може да бъде инсталирана в %1 версия %2 или по-нова.
+AdminPrivilegesRequired=За да инсталирате програмата, трябва да влезете като администратор.
+PowerUserPrivilegesRequired=За да инсталирате програмата, трябва да влезете като администратор или потребител с разширени права.
+SetupAppRunningError=�нсталаторът установи, че %1 се изпълнява в момента.%n%nМоля, затворете всички копия на програмата и натиснете "OK", за да продължите, или "Cancel" за изход.
+UninstallAppRunningError=Деинсталаторът установи, че %1 се изпълнява в момента.%n%nМоля, затворете всички копия на програмата и натиснете "OK", за да продължите, или "Cancel" за изход.
+
+; *** Въпроси при стартиране
+PrivilegesRequiredOverrideTitle=�збор на режим на инсталация
+PrivilegesRequiredOverrideInstruction=�зберете режим на инсталация
+PrivilegesRequiredOverrideText1=%1 може да бъде инсталирана за всички потребители (изисква администраторски привилегии) или само за Вас.
+PrivilegesRequiredOverrideText2=%1 може да бъде инсталирана само за Вас или за всички потребители (изисква администраторски привилегии).
+PrivilegesRequiredOverrideAllUsers=�нсталирай за &всички потребители
+PrivilegesRequiredOverrideAllUsersRecommended=�нсталирай за &всички потребители (препоръчва се)
+PrivilegesRequiredOverrideCurrentUser=�нсталирай само за &мен
+PrivilegesRequiredOverrideCurrentUserRecommended=�нсталирай само за &мен (препоръчва се)
+
+; *** Други грешки
+ErrorCreatingDir=Не е възможно да се създаде директория "%1"
+ErrorTooManyFilesInDir=Не е възможно да се създаде файл в директорията "%1", тъй като тя съдържа твърде много файлове
+
+; *** Съобщения от общ тип на инсталатора
+ExitSetupTitle=Затваряне на инсталатора
+ExitSetupMessage=�нсталирането не е завършено. Ако затворите сега, програмата няма да бъде инсталирана.%n%nПо-късно можете отново да стартирате инсталатора, за да завършите инсталирането.%n%nЗатваряте ли инсталатора?
+AboutSetupMenuItem=&За инсталатора...
+AboutSetupTitle=За инсталатора
+AboutSetupMessage=%1 версия %2%n%3%n%nУебстраница:%n%4
 AboutSetupNote=
-TranslatorNote=Превод на български: Михаил Балабанов
+TranslatorNote=Превод на български: Михаил Балабанов
 
-; *** Бутони
-ButtonBack=< На&зад
-ButtonNext=На&пред >
-ButtonInstall=&Инсталиране
+; *** Бутони
+ButtonBack=< На&зад
+ButtonNext=На&пред >
+ButtonInstall=&�нсталиране
 ButtonOK=OK
-ButtonCancel=Отказ
-ButtonYes=&Да
-ButtonYesToAll=Да за &всички
-ButtonNo=&Не
-ButtonNoToAll=Не за в&сички
-ButtonFinish=&Готово
-ButtonBrowse=Пре&глед...
-ButtonWizardBrowse=Пре&глед...
-ButtonNewFolder=&Нова папка
-
-; *** Съобщения в диалоговия прозорец за избор на език
-SelectLanguageTitle=Избор на език за инсталатора
-SelectLanguageLabel=Изберете кой език ще ползвате с инсталатора:
-
-; *** Текстове от общ тип на съветника
-ClickNext=Натиснете "Напред", за да продължите, или "Отказ" за затваряне на инсталатора.
+ButtonCancel=Отказ
+ButtonYes=&Да
+ButtonYesToAll=Да за &всички
+ButtonNo=&РќРµ
+ButtonNoToAll=Не за в&сички
+ButtonFinish=&Готово
+ButtonBrowse=Пре&глед...
+ButtonWizardBrowse=Пре&глед...
+ButtonNewFolder=&Нова папка
+
+; *** Съобщения в диалоговия прозорец за избор на език
+SelectLanguageTitle=�збор на език за инсталатора
+SelectLanguageLabel=�зберете кой език ще ползвате с инсталатора.
+
+; *** Текстове от общ тип на съветника
+ClickNext=Натиснете "Напред", за да продължите, или "Отказ" за затваряне на инсталатора.
 BeveledLabel=
-BrowseDialogTitle=Преглед за папка
-BrowseDialogLabel=Изберете папка от долния списък и натиснете "OK".
-NewFolderName=Нова папка
-
-; *** Страница "Добре дошли" на съветника
-WelcomeLabel1=Добре дошли при Съветника за инсталиране на [name]
-WelcomeLabel2=Съветникът ще инсталира [name/ver] във вашия компютър.%n%nПрепоръчва се да затворите всички останали приложения, преди да продължите.
-
-; *** Страница "Парола" на съветника
-WizardPassword=Парола
-PasswordLabel1=Инсталацията е защитена с парола.
-PasswordLabel3=Моля, въведете паролата и натиснете "Напред", за да продължите. Главни и малки букви са от значение.
-PasswordEditLabel=&Парола:
-IncorrectPassword=Въведената от вас парола е неправилна. Моля, опитайте отново.
-
-; *** Страница "Лицензионно споразумение" на съветника
-WizardLicense=Лицензионно споразумение
-LicenseLabel=Моля, прочетете следната важна информация, преди да продължите.
-LicenseLabel3=Моля, прочетете следното Лицензионно споразумение. Преди инсталирането да продължи, трябва да приемете условията на споразумението.
-LicenseAccepted=П&риемам споразумението
-LicenseNotAccepted=&Не приемам споразумението
-
-; *** Страници "Информация" на съветника
-WizardInfoBefore=Информация
-InfoBeforeLabel=Моля, прочетете следната важна информация, преди да продължите.
-InfoBeforeClickLabel=Когато сте готов да продължите, натиснете "Напред".
-WizardInfoAfter=Информация
-InfoAfterLabel=Моля, прочетете следната важна информация, преди да продължите.
-InfoAfterClickLabel=Когато сте готов да продължите, натиснете "Напред".
-
-; *** Страница "Данни за потребител" на съветника
-WizardUserInfo=Данни за потребител
-UserInfoDesc=Моля, въведете вашите данни.
-UserInfoName=&Име:
-UserInfoOrg=&Организация:
-UserInfoSerial=&Сериен номер:
-UserInfoNameRequired=Трябва да въведете име.
-
-; *** Страница "Избор на местоназначение" на съветника
-WizardSelectDir=Избор на местоназначение
-SelectDirDesc=Къде да се инсталира [name]?
-SelectDirLabel3=[name] ще се инсталира в следната папка.
-SelectDirBrowseLabel=Натиснете "Напред", за да продължите. За да изберете друга папка, натиснете "Преглед".
-DiskSpaceMBLabel=Изискват се поне [mb] МБ свободно дисково пространство.
-CannotInstallToNetworkDrive=Инсталаторът не може да инсталира на мрежово устройство.
-CannotInstallToUNCPath=Инсталаторът не може да инсталира в UNC път.
-InvalidPath=Трябва да въведете пълен път с буква на устройство, например:%n%nC:\APP%n%nили UNC път във вида:%n%n\\сървър\споделено място
-InvalidDrive=Избраното от вас устройство или споделено UNC място не съществува или не е достъпно. Моля, изберете друго.
-DiskSpaceWarningTitle=Недостиг на дисково пространство
-DiskSpaceWarning=Инсталирането изисква %1 кБ свободно място, но на избраното устройство има само %2 кБ.%n%nЖелаете ли все пак да продължите?
-DirNameTooLong=Твърде дълго име на папка или път.
-InvalidDirName=Името на папка е невалидно.
-BadDirName32=Имената на папки не могат да съдържат следните знаци:%n%n%1
-DirExistsTitle=Папката съществува
-DirExists=Папката:%n%n%1%n%nвече съществува. Желаете ли все пак да инсталирате в нея?
-DirDoesntExistTitle=Папката не съществува
-DirDoesntExist=Папката:%n%n%1%n%nне съществува. Желаете ли да бъде създадена?
-
-; *** Страница "Избор на компоненти" на съветника
-WizardSelectComponents=Избор на компоненти
-SelectComponentsDesc=Кои компоненти да бъдат инсталирани?
-SelectComponentsLabel2=Изберете компонентите, които желаете да инсталирате, и откажете нежеланите. Натиснете "Напред", когато сте готов да продължите.
-FullInstallation=Пълна инсталация
-; По възможност не превеждайте "Compact" като "Minimal" (има се предвид "Minimal" на вашия език)
-CompactInstallation=Компактна инсталация
-CustomInstallation=Инсталация по избор
-NoUninstallWarningTitle=Компонентите съществуват
-NoUninstallWarning=Инсталаторът установи, че следните компоненти са вече инсталирани в компютърa:%n%n%1%n%nОтказването на тези компоненти няма да ги деинсталира.%n%nЖелаете ли все пак да продължите?
-ComponentSize1=%1 кБ
-ComponentSize2=%1 МБ
-ComponentsDiskSpaceMBLabel=Направеният избор изисква поне [mb] МБ дисково пространство.
-
-; *** Страница "Избор на допълнителни задачи" на съветника
-WizardSelectTasks=Избор на допълнителни задачи
-SelectTasksDesc=Кои допълнителни задачи да бъдат изпълнени?
-SelectTasksLabel2=Изберете кои допълнителни задачи желаете да се изпълнят при инсталиране на [name], след което натиснете "Напред".
-
-; *** Страница "Избор на папка в менюто "Старт" на съветника
-WizardSelectProgramGroup=Избор на папка в менюто "Старт"
-SelectStartMenuFolderDesc=Къде да бъдат поставени преките пътища на програмата?
-SelectStartMenuFolderLabel3=Инсталаторът ще създаде преки пътища в следната папка от менюто "Старт".
-SelectStartMenuFolderBrowseLabel=Натиснете "Напред", за да продължите. За да изберете друга папка, натиснете "Преглед".
-MustEnterGroupName=Трябва да въведете име на папка.
-GroupNameTooLong=Твърде дълго име на папка или път.
-InvalidGroupName=Името на папка е невалидно.
-BadGroupName=Името на папка не може да съдържа следните знаци:%n%n%1
-NoProgramGroupCheck2=И&нсталиране без папка в менюто "Старт"
-
-; *** Страница "Готовност за инсталиране" на съветника
-WizardReady=Готовност за инсталиране
-ReadyLabel1=Инсталаторът е готов да инсталира [name] във вашия компютър.
-ReadyLabel2a=Натиснете "Инсталиране", за да продължите, или "Назад" за преглед или промяна на някои настройки.
-ReadyLabel2b=Натиснете "Инсталиране", за да продължите с инсталирането.
-ReadyMemoUserInfo=Данни за потребител:
-ReadyMemoDir=Местоназначение:
-ReadyMemoType=Тип инсталация:
-ReadyMemoComponents=Избрани компоненти:
-ReadyMemoGroup=Папка в менюто "Старт":
-ReadyMemoTasks=Допълнителни задачи:
-
-; *** Страница "Подготовка за инсталиране" на съветника
-WizardPreparing=Подготовка за инсталиране
-PreparingDesc=Инсталаторът се подготвя да инсталира [name] във вашия компютър.
-PreviousInstallNotCompleted=Инсталиране или премахване на предишна програма не е завършило. Рестартирайте компютъра, за да може процесът да завърши.%n%nСлед като рестартирате, стартирайте инсталатора отново, за да довършите инсталирането на [name].
-CannotContinue=Инсталирането не може да продължи. Моля, натиснете "Отказ" за изход.
-ApplicationsFound=Следните приложения използват файлове, които трябва да бъдат обновени от инсталатора. Препоръчва се да разрешите на инсталатора автоматично да затвори приложенията.
-ApplicationsFound2=Следните приложения използват файлове, които трябва да бъдат обновени от инсталатора. Препоръчва се да разрешите на инсталатора автоматично да затвори приложенията. След края на инсталирането ще бъде направен опит за рестартирането им.
-CloseApplications=Приложенията да се затворят &автоматично
-DontCloseApplications=Приложенията да &не се затварят
-ErrorCloseApplications=Не бе възможно да се затворят автоматично всички приложения. Препоръчва се преди да продължите, да затворите всички приложения, използващи файлове, които инсталаторът трябва да обнови.
-
-; *** Страница "Инсталиране" на съветника
-WizardInstalling=Инсталиране
-InstallingLabel=Моля, изчакайте докато [name] се инсталира във вашия компютър.
-
-; *** Страница "Инсталирането завърши" на съветника
-FinishedHeadingLabel=Съветникът за инсталиране на [name] завърши
-FinishedLabelNoIcons=Инсталирането на [name] във вашия компютър завърши.
-FinishedLabel=Инсталирането на [name] във вашия компютър завърши. Можете да стартирате приложението чрез инсталираните икони.
-ClickFinish=Натиснете "Готово", за да затворите инсталатора.
-FinishedRestartLabel=Инсталаторът трябва да рестартира компютъра, за да завърши инсталирането на [name]. Желаете ли да рестартирате сега?
-FinishedRestartMessage=Инсталаторът трябва да рестартира компютъра, за да завърши инсталирането на [name].%n%nЖелаете ли да рестартирате сега?
-ShowReadmeCheck=Да, желая да прегледам файла README
-YesRadio=&Да, нека компютърът се рестартира сега
-NoRadio=&Не, ще рестартирам компютъра по-късно
-; Използва се например в "Стартиране на MyProg.exe"
-RunEntryExec=Стартиране на %1
-; Използва се например в "Преглеждане на Readme.txt"
-RunEntryShellExec=Преглеждане на %1
-
-; *** Текстове от рода на "Инсталаторът изисква следващ носител"
-ChangeDiskTitle=Инсталаторът изисква следващ носител
-SelectDiskLabel2=Моля, поставете носител %1 и натиснете "ОК".%n%nАко файловете от носителя се намират в различна от показаната по-долу папка, въведете правилния път до тях или натиснете "Преглед".
-PathLabel=П&ът:
-FileNotInDir2=Файлът "%1" не бе намерен в "%2". Моля, поставете правилния носител или изберете друга папка.
-SelectDirectoryLabel=Моля, посочете местоположението на следващия носител.
-
-; *** Съобщения от фаза "Инсталиране"
-SetupAborted=Инсталирането не е завършено.%n%nМоля, отстранете проблема и стартирайте инсталатора отново.
-EntryAbortRetryIgnore=Натиснете "Retry" за повторен опит, "Ignore" за продължение въпреки грешката или "Abort" за прекратяване на инсталирането.
-
-; *** Съобщения за хода на инсталирането
-StatusClosingApplications=Затварят се приложения...
-StatusCreateDirs=Създават се директории...
-StatusExtractFiles=Извличат се файлове...
-StatusCreateIcons=Създават се преки пътища...
-StatusCreateIniEntries=Създават се записи в INI файл...
-StatusCreateRegistryEntries=Създават се записи в регистъра...
-StatusRegisterFiles=Регистрират се файлове...
-StatusSavingUninstall=Записват се данни за деинсталиране...
-StatusRunProgram=Инсталацията приключва...
-StatusRestartingApplications=Рестартират се приложения...
-StatusRollback=Заличават се промени...
-
-; *** Грешки от общ тип
-ErrorInternal2=Вътрешна грешка: %1
-ErrorFunctionFailedNoCode=Неуспешно изпълнение на %1
-ErrorFunctionFailed=Неуспешно изпълнение на %1; код на грешката: %2
-ErrorFunctionFailedWithMessage=Неуспешно изпълнение на %1; код на грешката: %2.%n%3
-ErrorExecutingProgram=Не е възможно да се стартира файл:%n%1
-
-; *** Грешки, свързани с регистъра
-ErrorRegOpenKey=Грешка при отваряне на ключ в регистъра:%n%1\%2
-ErrorRegCreateKey=Грешка при създаване на ключ в регистъра:%n%1\%2
-ErrorRegWriteKey=Грешка при писане в ключ от регистъра:%n%1\%2
-
-; *** Грешки, свързани с INI файлове
-ErrorIniEntry=Грешка при създаване на INI запис във файла "%1".
-
-; *** Грешки при копиране на файлове
-FileAbortRetryIgnore=Натиснете "Retry" за повторен опит, "Ignore" за пропускане на файла (не се препоръчва) или "Abort" за прекратяване на инсталирането.
-FileAbortRetryIgnore2=Натиснете "Retry" за повторен опит, "Ignore" за продължение (не се препоръчва) или "Abort" за прекратяване на инсталирането.
-SourceIsCorrupted=Файлът - източник е повреден
-SourceDoesntExist=Файлът - източник "%1" не съществува
-ExistingFileReadOnly=Съществуващият файл има атрибут "само за четене".%n%nНатиснете "Retry" за премахване на атрибута и повторен опит, "Ignore" за пропускане на файла или "Abort" за прекратяване на инсталирането.
-ErrorReadingExistingDest=Грешка при опит за четене на съществуващ файл:
-FileExists=Файлът вече съществува.%n%nЖелаете ли инсталаторът да го презапише?
-ExistingFileNewer=Съществуващият файл е по-нов от този, който инсталаторът се опитва да инсталира. Препоръчва се да го запазите.%n%nЖелаете ли да запазите съществуващия файл?
-ErrorChangingAttr=Грешка при опит за смяна на атрибути на съществуващ файл:
-ErrorCreatingTemp=Грешка при опит за създаване на файл в целевата директория:
-ErrorReadingSource=Грешка при опит за четене на файл - източник:
-ErrorCopying=Грешка при опит за копиране на файл:
-ErrorReplacingExistingFile=Грешка при опит за заместване на съществуващ файл:
-ErrorRestartReplace=Неуспешно отложено заместване:
-ErrorRenamingTemp=Грешка при опит за преименуване на файл в целевата директория:
-ErrorRegisterServer=Не е възможно да се регистрира библиотека от тип DLL/OCX: %1
-ErrorRegSvr32Failed=Неуспешно изпълнение на RegSvr32 с код на изход %1
-ErrorRegisterTypeLib=Не е възможно да се регистрира библиотека от типове: %1
-
-; *** Грешки след инсталиране
-ErrorOpeningReadme=Възникна грешка при опит за отваряне на файла README.
-ErrorRestartingComputer=Инсталаторът не е в състояние да рестартира компютъра. Моля, направете го ръчно.
-
-; *** Съобщения на деинсталатора
-UninstallNotFound=Файлът "%1" не съществува. Деинсталирането е невъзможно.
-UninstallOpenError=Файлът "%1" не може да се отвори. Деинсталирането е невъзможно
-UninstallUnsupportedVer=Форматът на регистрационния файл за деинсталиране "%1" не се разпознава от тази версия на деинсталатора. Деинсталирането е невъзможно
-UninstallUnknownEntry=Открит бе непознат запис (%1) в регистрационния файл за деинсталиране
-ConfirmUninstall=Наистина ли желаете да премахнете напълно %1 и всички прилежащи компоненти?
-UninstallOnlyOnWin64=Програмата може да бъде деинсталирана само под 64-битов Windows.
-OnlyAdminCanUninstall=Програмата може да бъде премахната само от потребител с администраторски права.
-UninstallStatusLabel=Моля, изчакайте премахването на %1 от вашия компютър да приключи.
-UninstalledAll=%1 беше премахната успешно от вашия компютър.
-UninstalledMost=Деинсталирането на %1 завърши.%n%nПремахването на някои елементи не бе възможно. Можете да ги отстраните ръчно.
-UninstalledAndNeedsRestart=За да приключи деинсталирането на %1, трябва да рестартирате вашия компютър.%n%nЖелаете ли да рестартирате сега?
-UninstallDataCorrupted=Файлът "%1" е повреден. Деинсталирането е невъзможно
-
-; *** Съобщения от фаза "Деинсталиране"
-ConfirmDeleteSharedFileTitle=Премахване на споделен файл?
-ConfirmDeleteSharedFile2=Системата отчита, че следният споделен файл вече не се ползва от никоя програма. Желаете ли деинсталаторът да го премахне?%n%nАко някоя програма все пак ползва файла и той бъде изтрит, програмата може да спре да работи правилно. Ако се колебаете, изберете "Не". Оставянето на файла в системата е безвредно.
-SharedFileNameLabel=Име на файла:
-SharedFileLocationLabel=Местоположение:
-WizardUninstalling=Ход на деинсталирането
-StatusUninstalling=%1 се деинсталира...
-
-; *** Обяснения за блокирано спиране на системата
-ShutdownBlockReasonInstallingApp=Инсталира се %1.
-ShutdownBlockReasonUninstallingApp=Деинсталира се %1.
-
-; Потребителските съобщения по-долу не се ползват от самия инсталатор, но
-; ако ползвате такива в скриптовете си, вероятно бихте искали да ги преведете.
+BrowseDialogTitle=Преглед за папка
+BrowseDialogLabel=�зберете папка от долния списък и натиснете "OK".
+NewFolderName=Нова папка
+
+; *** Страница "Добре дошли" на съветника
+WelcomeLabel1=Добре дошли при Съветника за инсталиране на [name]
+WelcomeLabel2=Съветникът ще инсталира [name/ver] във вашия компютър.%n%nПрепоръчва се да затворите всички останали приложения, преди да продължите.
+
+; *** Страница "Парола" на съветника
+WizardPassword=Парола
+PasswordLabel1=�нсталацията е защитена с парола.
+PasswordLabel3=Моля, въведете паролата и натиснете "Напред", за да продължите. Главни и малки букви са от значение.
+PasswordEditLabel=&Парола:
+IncorrectPassword=Въведената от вас парола е неправилна. Моля, опитайте отново.
+
+; *** Страница "Лицензионно споразумение" на съветника
+WizardLicense=Лицензионно споразумение
+LicenseLabel=Моля, прочетете следната важна информация, преди да продължите.
+LicenseLabel3=Моля, прочетете следното Лицензионно споразумение. Преди инсталирането да продължи, трябва да приемете условията на споразумението.
+LicenseAccepted=П&риемам споразумението
+LicenseNotAccepted=&Не приемам споразумението
+
+; *** Страници "�нформация" на съветника
+WizardInfoBefore=�нформация
+InfoBeforeLabel=Моля, прочетете следната важна информация, преди да продължите.
+InfoBeforeClickLabel=Когато сте готов да продължите, натиснете "Напред".
+WizardInfoAfter=�нформация
+InfoAfterLabel=Моля, прочетете следната важна информация, преди да продължите.
+InfoAfterClickLabel=Когато сте готов да продължите, натиснете "Напред".
+
+; *** Страница "Данни за потребител" на съветника
+WizardUserInfo=Данни за потребител
+UserInfoDesc=Моля, въведете вашите данни.
+UserInfoName=&�ме:
+UserInfoOrg=&Организация:
+UserInfoSerial=&Сериен номер:
+UserInfoNameRequired=Трябва да въведете име.
+
+; *** Страница "�збор на местоназначение" на съветника
+WizardSelectDir=�збор на местоназначение
+SelectDirDesc=Къде да се инсталира [name]?
+SelectDirLabel3=[name] ще се инсталира в следната папка.
+SelectDirBrowseLabel=Натиснете "Напред", за да продължите. За да изберете друга папка, натиснете "Преглед".
+DiskSpaceMBLabel=�зискват се поне [mb] МБ свободно дисково пространство.
+CannotInstallToNetworkDrive=�нсталаторът не може да инсталира на мрежово устройство.
+CannotInstallToUNCPath=�нсталаторът не може да инсталира в UNC път.
+InvalidPath=Трябва да въведете пълен път с буква на устройство, например:%n%nC:\APP%n%nили UNC път във вида:%n%n\\сървър\споделено място
+InvalidDrive=�збраното от вас устройство или споделено UNC място не съществува или не е достъпно. Моля, изберете друго.
+DiskSpaceWarningTitle=Недостиг на дисково пространство
+DiskSpaceWarning=�нсталирането изисква %1 кБ свободно място, но на избраното устройство има само %2 кБ.%n%nЖелаете ли все пак да продължите?
+DirNameTooLong=Твърде дълго име на папка или път.
+InvalidDirName=�мето на папка е невалидно.
+BadDirName32=�мената на папки не могат да съдържат следните знаци:%n%n%1
+DirExistsTitle=Папката съществува
+DirExists=Папката:%n%n%1%n%nвече съществува. Желаете ли все пак да инсталирате в нея?
+DirDoesntExistTitle=Папката не съществува
+DirDoesntExist=Папката:%n%n%1%n%nне съществува. Желаете ли да бъде създадена?
+
+; *** Страница "�збор на компоненти" на съветника
+WizardSelectComponents=�збор на компоненти
+SelectComponentsDesc=Кои компоненти да бъдат инсталирани?
+SelectComponentsLabel2=�зберете компонентите, които желаете да инсталирате, и откажете нежеланите. Натиснете "Напред", когато сте готов да продължите.
+FullInstallation=Пълна инсталация
+; По възможност не превеждайте "Compact" като "Minimal" (има се предвид "Minimal" на вашия език)
+CompactInstallation=Компактна инсталация
+CustomInstallation=�нсталация по избор
+NoUninstallWarningTitle=Компонентите съществуват
+NoUninstallWarning=�нсталаторът установи, че следните компоненти са вече инсталирани в компютърa:%n%n%1%n%nОтказването на тези компоненти няма да ги деинсталира.%n%nЖелаете ли все пак да продължите?
+ComponentSize1=%1 РєР‘
+ComponentSize2=%1 РњР‘
+ComponentsDiskSpaceMBLabel=Направеният избор изисква поне [mb] МБ дисково пространство.
+
+; *** Страница "�збор на допълнителни задачи" на съветника
+WizardSelectTasks=�збор на допълнителни задачи
+SelectTasksDesc=Кои допълнителни задачи да бъдат изпълнени?
+SelectTasksLabel2=�зберете кои допълнителни задачи желаете да се изпълнят при инсталиране на [name], след което натиснете "Напред".
+
+; *** Страница "�збор на папка в менюто "Старт" на съветника
+WizardSelectProgramGroup=�збор на папка в менюто "Старт"
+SelectStartMenuFolderDesc=Къде да бъдат поставени преките пътища на програмата?
+SelectStartMenuFolderLabel3=�нсталаторът ще създаде преки пътища в следната папка от менюто "Старт".
+SelectStartMenuFolderBrowseLabel=Натиснете "Напред", за да продължите. За да изберете друга папка, натиснете "Преглед".
+MustEnterGroupName=Трябва да въведете име на папка.
+GroupNameTooLong=Твърде дълго име на папка или път.
+InvalidGroupName=�мето на папка е невалидно.
+BadGroupName=�мето на папка не може да съдържа следните знаци:%n%n%1
+NoProgramGroupCheck2=�&нсталиране без папка в менюто "Старт"
+
+; *** Страница "Готовност за инсталиране" на съветника
+WizardReady=Готовност за инсталиране
+ReadyLabel1=�нсталаторът е готов да инсталира [name] във вашия компютър.
+ReadyLabel2a=Натиснете "�нсталиране", за да продължите, или "Назад" за преглед или промяна на някои настройки.
+ReadyLabel2b=Натиснете "�нсталиране", за да продължите с инсталирането.
+ReadyMemoUserInfo=Данни за потребител:
+ReadyMemoDir=Местоназначение:
+ReadyMemoType=Тип инсталация:
+ReadyMemoComponents=�збрани компоненти:
+ReadyMemoGroup=Папка в менюто "Старт":
+ReadyMemoTasks=Допълнителни задачи:
+
+; *** Страница "Подготовка за инсталиране" на съветника
+WizardPreparing=Подготовка за инсталиране
+PreparingDesc=�нсталаторът се подготвя да инсталира [name] във вашия компютър.
+PreviousInstallNotCompleted=�нсталиране или премахване на предишна програма не е завършило. Рестартирайте компютъра, за да може процесът да завърши.%n%nСлед като рестартирате, стартирайте инсталатора отново, за да довършите инсталирането на [name].
+CannotContinue=�нсталирането не може да продължи. Моля, натиснете "Отказ" за изход.
+ApplicationsFound=Следните приложения използват файлове, които трябва да бъдат обновени от инсталатора. Препоръчва се да разрешите на инсталатора автоматично да затвори приложенията.
+ApplicationsFound2=Следните приложения използват файлове, които трябва да бъдат обновени от инсталатора. Препоръчва се да разрешите на инсталатора автоматично да затвори приложенията. След края на инсталирането ще бъде направен опит за рестартирането им.
+CloseApplications=Приложенията да се затворят &автоматично
+DontCloseApplications=Приложенията да &не се затварят
+ErrorCloseApplications=Не бе възможно да се затворят автоматично всички приложения. Препоръчва се преди да продължите, да затворите всички приложения, използващи файлове, които инсталаторът трябва да обнови.
+
+; *** Страница "�нсталиране" на съветника
+WizardInstalling=�нсталиране
+InstallingLabel=Моля, изчакайте докато [name] се инсталира във вашия компютър.
+
+; *** Страница "�нсталирането завърши" на съветника
+FinishedHeadingLabel=Съветникът за инсталиране на [name] завърши
+FinishedLabelNoIcons=�нсталирането на [name] във вашия компютър завърши.
+FinishedLabel=�нсталирането на [name] във вашия компютър завърши. Можете да стартирате приложението чрез инсталираните икони.
+ClickFinish=Натиснете "Готово", за да затворите инсталатора.
+FinishedRestartLabel=�нсталаторът трябва да рестартира компютъра, за да завърши инсталирането на [name]. Желаете ли да рестартирате сега?
+FinishedRestartMessage=�нсталаторът трябва да рестартира компютъра, за да завърши инсталирането на [name].%n%nЖелаете ли да рестартирате сега?
+ShowReadmeCheck=Да, желая да прегледам файла README
+YesRadio=&Да, нека компютърът се рестартира сега
+NoRadio=&Не, ще рестартирам компютъра по-късно
+; �зползва се например в "Стартиране на MyProg.exe"
+RunEntryExec=Стартиране на %1
+; �зползва се например в "Преглеждане на Readme.txt"
+RunEntryShellExec=Преглеждане на %1
+
+; *** Текстове от рода на "�нсталаторът изисква следващ носител"
+ChangeDiskTitle=�нсталаторът изисква следващ носител
+SelectDiskLabel2=Моля, поставете носител %1 и натиснете "ОК".%n%nАко файловете от носителя се намират в различна от показаната по-долу папка, въведете правилния път до тях или натиснете "Преглед".
+PathLabel=Рџ&СЉС‚:
+FileNotInDir2=Файлът "%1" не бе намерен в "%2". Моля, поставете правилния носител или изберете друга папка.
+SelectDirectoryLabel=Моля, посочете местоположението на следващия носител.
+
+; *** Съобщения от фаза "�нсталиране"
+SetupAborted=�нсталирането не е завършено.%n%nМоля, отстранете проблема и стартирайте инсталатора отново.
+AbortRetryIgnoreSelectAction=�зберете действие
+AbortRetryIgnoreRetry=Повторен &опит
+AbortRetryIgnoreIgnore=&Пренебрегни грешката и продължи
+AbortRetryIgnoreCancel=Прекрати инсталацията
+
+; *** Съобщения за хода на инсталирането
+StatusClosingApplications=Затварят се приложения...
+StatusCreateDirs=Създават се директории...
+StatusExtractFiles=�звличат се файлове...
+StatusCreateIcons=Създават се преки пътища...
+StatusCreateIniEntries=Създават се записи в INI файл...
+StatusCreateRegistryEntries=Създават се записи в регистъра...
+StatusRegisterFiles=Регистрират се файлове...
+StatusSavingUninstall=Записват се данни за деинсталиране...
+StatusRunProgram=�нсталацията приключва...
+StatusRestartingApplications=Рестартират се приложения...
+StatusRollback=Заличават се промени...
+
+; *** Грешки от общ тип
+ErrorInternal2=Вътрешна грешка: %1
+ErrorFunctionFailedNoCode=Неуспешно изпълнение на %1
+ErrorFunctionFailed=Неуспешно изпълнение на %1; код на грешката: %2
+ErrorFunctionFailedWithMessage=Неуспешно изпълнение на %1; код на грешката: %2.%n%3
+ErrorExecutingProgram=Не е възможно да се стартира файл:%n%1
+
+; *** Грешки, свързани с регистъра
+ErrorRegOpenKey=Грешка при отваряне на ключ в регистъра:%n%1\%2
+ErrorRegCreateKey=Грешка при създаване на ключ в регистъра:%n%1\%2
+ErrorRegWriteKey=Грешка при писане в ключ от регистъра:%n%1\%2
+
+; *** Грешки, свързани с INI файлове
+ErrorIniEntry=Грешка при създаване на INI запис във файла "%1".
+
+; *** Грешки при копиране на файлове
+FileAbortRetryIgnoreSkipNotRecommended=Прескочи този &файл (не се препоръчва)
+FileAbortRetryIgnoreIgnoreNotRecommended=&Пренебрегни грешката и продължи (не се препоръчва)
+SourceIsCorrupted=Файлът - източник е повреден
+SourceDoesntExist=Файлът - източник "%1" не съществува
+ExistingFileReadOnly2=Съществуващият файл не беше заменен, защото е маркиран само за четене.
+ExistingFileReadOnlyRetry=&Премахни атрибута „само за четене“ и опитай отново
+ExistingFileReadOnlyKeepExisting=&Запази съществуващия файл
+ErrorReadingExistingDest=Грешка при опит за четене на съществуващ файл:
+FileExists=Файлът вече съществува.%n%nЖелаете ли инсталаторът да го презапише?
+ExistingFileNewer=Съществуващият файл е по-нов от този, който инсталаторът се опитва да инсталира. Препоръчва се да го запазите.%n%nЖелаете ли да запазите съществуващия файл?
+ErrorChangingAttr=Грешка при опит за смяна на атрибути на съществуващ файл:
+ErrorCreatingTemp=Грешка при опит за създаване на файл в целевата директория:
+ErrorReadingSource=Грешка при опит за четене на файл - източник:
+ErrorCopying=Грешка при опит за копиране на файл:
+ErrorReplacingExistingFile=Грешка при опит за заместване на съществуващ файл:
+ErrorRestartReplace=Неуспешно отложено заместване:
+ErrorRenamingTemp=Грешка при опит за преименуване на файл в целевата директория:
+ErrorRegisterServer=Не е възможно да се регистрира библиотека от тип DLL/OCX: %1
+ErrorRegSvr32Failed=Неуспешно изпълнение на RegSvr32 с код на изход %1
+ErrorRegisterTypeLib=Не е възможно да се регистрира библиотека от типове: %1
+
+; *** Обозначаване на показваните имена на програми за деинсталиране
+UninstallDisplayNameMark=%1 (%2)
+UninstallDisplayNameMarks=%1 (%2, %3)
+UninstallDisplayNameMark32Bit=32-битова
+UninstallDisplayNameMark64Bit=64-битова
+UninstallDisplayNameMarkAllUsers=Всички потребители
+UninstallDisplayNameMarkCurrentUser=Текущ потребител
+
+; *** Грешки след инсталиране
+ErrorOpeningReadme=Възникна грешка при опит за отваряне на файла README.
+ErrorRestartingComputer=�нсталаторът не е в състояние да рестартира компютъра. Моля, направете го ръчно.
+
+; *** Съобщения на деинсталатора
+UninstallNotFound=Файлът "%1" не съществува. Деинсталирането е невъзможно.
+UninstallOpenError=Файлът "%1" не може да се отвори. Деинсталирането е невъзможно
+UninstallUnsupportedVer=Форматът на регистрационния файл за деинсталиране "%1" не се разпознава от тази версия на деинсталатора. Деинсталирането е невъзможно
+UninstallUnknownEntry=Открит бе непознат запис (%1) в регистрационния файл за деинсталиране
+ConfirmUninstall=Наистина ли желаете да премахнете напълно %1 и всички прилежащи компоненти?
+UninstallOnlyOnWin64=Програмата може да бъде деинсталирана само под 64-битов Windows.
+OnlyAdminCanUninstall=Програмата може да бъде премахната само от потребител с администраторски права.
+UninstallStatusLabel=Моля, изчакайте премахването на %1 от вашия компютър да приключи.
+UninstalledAll=%1 беше премахната успешно от вашия компютър.
+UninstalledMost=Деинсталирането на %1 завърши.%n%nПремахването на някои елементи не бе възможно. Можете да ги отстраните ръчно.
+UninstalledAndNeedsRestart=За да приключи деинсталирането на %1, трябва да рестартирате вашия компютър.%n%nЖелаете ли да рестартирате сега?
+UninstallDataCorrupted=Файлът "%1" е повреден. Деинсталирането е невъзможно
+
+; *** Съобщения от фаза "Деинсталиране"
+ConfirmDeleteSharedFileTitle=Премахване на споделен файл?
+ConfirmDeleteSharedFile2=Системата отчита, че следният споделен файл вече не се ползва от никоя програма. Желаете ли деинсталаторът да го премахне?%n%nАко някоя програма все пак ползва файла и той бъде изтрит, програмата може да спре да работи правилно. Ако се колебаете, изберете "Не". Оставянето на файла в системата е безвредно.
+SharedFileNameLabel=�ме на файла:
+SharedFileLocationLabel=Местоположение:
+WizardUninstalling=Ход на деинсталирането
+StatusUninstalling=%1 се деинсталира...
+
+; *** Обяснения за блокирано спиране на системата
+ShutdownBlockReasonInstallingApp=�нсталира се %1.
+ShutdownBlockReasonUninstallingApp=Деинсталира се %1.
+
+; Потребителските съобщения по-долу не се ползват от самия инсталатор, но
+; ако ползвате такива в скриптовете си, вероятно бихте искали да ги преведете.
 
 [CustomMessages]
 
-NameAndVersion=%1, версия %2
-AdditionalIcons=Допълнителни икони:
-CreateDesktopIcon=Икона на &работния плот
-CreateQuickLaunchIcon=Икона в лентата "&Бързо стартиране"
-ProgramOnTheWeb=%1 в Интернет
-UninstallProgram=Деинсталиране на %1
-LaunchProgram=Стартиране на %1
-AssocFileExtension=&Свързване на %1 с файловото разширение %2
-AssocingFileExtension=%1 се свързва с файловото разширение %2...
-AutoStartProgramGroupDescription=Стартиране:
-AutoStartProgram=Автоматично стартиране на %1
-AddonHostProgramNotFound=%1 не бе намерена в избраната от вас папка.%n%nЖелаете ли все пак да продължите?
+NameAndVersion=%1, версия %2
+AdditionalIcons=Допълнителни икони:
+CreateDesktopIcon=�кона на &работния плот
+CreateQuickLaunchIcon=�кона в лентата "&Бързо стартиране"
+ProgramOnTheWeb=%1 в �нтернет
+UninstallProgram=Деинсталиране на %1
+LaunchProgram=Стартиране на %1
+AssocFileExtension=&Свързване на %1 с файловото разширение %2
+AssocingFileExtension=%1 се свързва с файловото разширение %2...
+AutoStartProgramGroupDescription=Стартиране:
+AutoStartProgram=Автоматично стартиране на %1
+AddonHostProgramNotFound=%1 не бе намерена в избраната от вас папка.%n%nЖелаете ли все пак да продължите?

+ 19 - 4
ISHelp/isetup.xml

@@ -100,7 +100,7 @@ Inno Setup is a <i>free</i> installer for Windows programs by Jordan Russell and
 
 <ul>
 
-<li>Support for every Windows release since 2006, including: Windows 10, Windows 10 on ARM, Windows 8.1, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, and Windows Vista. (No service packs are required.)</li>
+<li>Support for every Windows release since 2006, including: Windows 10, Windows 10 on ARM, Windows Server 2019, Windows Server 2016, Windows 8.1, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, and Windows Vista. (No service packs are required.)</li>
 
 <li>Extensive support for installation of <link topic="32vs64bitinstalls">64-bit</link> applications on the 64-bit editions of Windows. The x64, ARM64 and Itanium architectures are all supported.</li>
 
@@ -985,6 +985,7 @@ DefaultGroupName=My Program
 <li><link topic="setup_signtoolminimumtimebetween">SignToolMinimumTimeBetween</link></li>
 <li><link topic="setup_signtoolretrycount">SignToolRetryCount</link></li>
 <li><link topic="setup_signtoolretrydelay">SignToolRetryDelay</link></li>
+<li><link topic="setup_signtoolrunminimized">SignToolRunMinimized</link></li>
 <li><link topic="setup_slicesperdisk">SlicesPerDisk</link></li>
 <li><link topic="setup_solidcompression">SolidCompression</link></li>
 <li><link topic="setup_sourcedir">SourceDir</link></li>
@@ -5209,7 +5210,8 @@ SignTool=byparam format c:
 <p><i>Note:</i> If you use a Sign Tool and your Setup contains a large amount of data, it is recommended that you enable <link topic="setup_diskspanning">Disk spanning</link> with <link topic="setup_diskslicesize">DiskSliceSize</link> set to <tt>max</tt>. If you don't do this, the user might experience a long delay after starting Setup caused by Windows verifying the digital signature against all your data. There should be no security reduction from using disk spanning in practice: all files extracted from the unsigned .bin files undergo SHA-1 verification (provided <tt>dontverifychecksum</tt> isn't used). The SHA-1 hashes for this (along with all other metadata) are kept inside Setup's EXE, which is protected by the digital signature.</p>
 <p><b>See also:</b><br/>
 <link topic="setup_signtoolminimumtimebetween">SignToolMinimumTimeBetween</link><br/>
-<link topic="setup_signtoolretrycount">SignToolRetryCount</link></p>
+<link topic="setup_signtoolretrycount">SignToolRetryCount</link><br/>
+<link topic="setup_signtoolrunminimized">SignToolRunMinimized</link></p>
 </body>
 </setuptopic>
 
@@ -5251,6 +5253,19 @@ SignTool=byparam format c:
 </body>
 </setuptopic>
 
+<setuptopic directive="SignToolRunMinimized">
+<keyword value="signature" />
+<keyword value="digital signature" />
+<keyword value="code signing" />
+<setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
+<setupdefault><tt>no</tt></setupdefault>
+<body>
+<p>When set to <tt>yes</tt>, the Setup Compiler will run Sign Tools in a minimized window.</p>
+<p><b>See also:</b><br/>
+<link topic="setup_signtool">SignTool</link></p>
+</body>
+</setuptopic>
+
 <setuptopic directive="LZMAAlgorithm">
 <setupvalid><tt>0</tt> or <tt>1</tt></setupvalid>
 <setupdefault><tt>0</tt> if the <link topic="setup_compression">LZMA compression level</link> is set to <tt>fast</tt><br />
@@ -5454,11 +5469,11 @@ SignTool=byparam format c:
 <tr><td>6.3.9600</td><td>Windows 8.1 with Update 1</td></tr>
 <tr><td>10.0.10240</td><td>Windows 10 Version 1507</td></tr>
 <tr><td>10.0.10586</td><td>Windows 10 Version 1511 (November Update)</td></tr>
-<tr><td>10.0.14393</td><td>Windows 10 Version 1607 (Anniversary Update)</td></tr>
+<tr><td>10.0.14393</td><td>Windows 10 Version 1607 (Anniversary Update)<br/>or Windows Server 2016</td></tr>
 <tr><td>10.0.15063</td><td>Windows 10 Version 1703 (Creators Update)</td></tr>
 <tr><td>10.0.16299</td><td>Windows 10 Version 1709 (Fall Creators Update)</td></tr>
 <tr><td>10.0.17134</td><td>Windows 10 Version 1803 (April 2018 Update)</td></tr>
-<tr><td>10.0.17763</td><td>Windows 10 Version 1809 (October 2018 Update)</td></tr>
+<tr><td>10.0.17763</td><td>Windows 10 Version 1809 (October 2018 Update)<br/>or Windows Server 2019</td></tr>
 <tr><td>10.0.18362</td><td>Windows 10 Version 1903 (May 2019 Update)</td></tr>
 </table>
 <p>Note that there is normally no need to specify the build numbers (i.e., you may simply use "6.2" for Windows 8).</p>

+ 8 - 0
Projects/CompForm.dfm

@@ -69,6 +69,7 @@ object CompileForm: TCompileForm
         Align = alClient
         BorderStyle = bsNone
         ItemHeight = 13
+        MultiSelect = True
         PopupMenu = ListPopupMenu
         TabOrder = 1
         Visible = False
@@ -83,6 +84,7 @@ object CompileForm: TCompileForm
         Align = alClient
         BorderStyle = bsNone
         ItemHeight = 13
+        MultiSelect = True
         PopupMenu = ListPopupMenu
         TabOrder = 0
         OnDrawItem = CompilerOutputListDrawItem
@@ -643,8 +645,14 @@ object CompileForm: TCompileForm
     Top = 168
     object PListCopy: TMenuItem
       Caption = '&Copy'
+      ShortCut = 16451
       OnClick = PListCopyClick
     end
+    object PListSelectAll: TMenuItem
+      Caption = 'Select &All'
+      ShortCut = 16449
+      OnClick = PListSelectAllClick
+    end
   end
   object BuildImageList: TImageList
     ColorDepth = cd32Bit

+ 42 - 4
Projects/CompForm.pas

@@ -25,7 +25,7 @@ uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   UIStateForm, StdCtrls, ExtCtrls, Menus, Buttons, ComCtrls, CommCtrl,
   ScintInt, ScintEdit, ScintStylerInnoSetup, NewTabSet, ModernColors,
-  DebugStruct, CompInt, UxThemeISX, System.ImageList, ImgList, ToolWin,
+  DebugStruct, CompInt, UxTheme, System.ImageList, ImgList, ToolWin,
   VirtualImageList, BaseImageCollection, ImageCollection;
 
 const
@@ -173,6 +173,7 @@ type
     TerminateButton: TToolButton;
     ToolBarImageCollection: TImageCollection;
     ToolBarVirtualImageList: TVirtualImageList;
+    PListSelectAll: TMenuItem;
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     procedure FExitClick(Sender: TObject);
     procedure FOpenClick(Sender: TObject);
@@ -253,6 +254,7 @@ type
       Rect: TRect; State: TOwnerDrawState);
     procedure FormAfterMonitorDpiChanged(Sender: TObject; OldDPI,
       NewDPI: Integer);
+    procedure PListSelectAllClick(Sender: TObject);
   private
     { Private declarations }
     FCompilerVersion: PCompilerVersionInfo;
@@ -452,7 +454,7 @@ implementation
 
 uses
   ActiveX, Clipbrd, ShellApi, ShlObj, IniFiles, Registry, CommDlg, Consts, Types,
-  PathFunc, CmnFunc, CmnFunc2, FileClass, CompMsgs, TmSchemaISX, BrowseFunc,
+  PathFunc, CmnFunc, CmnFunc2, FileClass, CompMsgs, TmSchema, BrowseFunc,
   HtmlHelpFunc, TaskbarProgressFunc,
   {$IFDEF STATICCOMPILER} Compile, {$ENDIF}
   CompOptions, CompStartup, CompWizard, CompSignTools, CompTypes;
@@ -896,7 +898,7 @@ begin
   SetFakeShortCutText(VZoomOut, SmkcCtrl + 'Num -');
   SetFakeShortCutText(VZoomReset, SmkcCtrl + 'Num /');
   { Use fake Esc shortcut for Stop Compile so it doesn't conflict with the
-    editor's autocompletion list } 
+    editor's autocompletion list }
   SetFakeShortCut(BStopCompile, VK_ESCAPE, []);
 
 {$IFNDEF IS_D103RIO}
@@ -3874,8 +3876,44 @@ begin
 end;
 
 procedure TCompileForm.PListCopyClick(Sender: TObject);
+var
+  ListBox: TListBox;
+  Text: String;
+  I: Integer;
 begin
-  Clipboard.AsText := (ListPopupMenu.PopupComponent as TListBox).Items.Text;
+  if CompilerOutputList.Visible then
+    ListBox := CompilerOutputList
+  else
+    ListBox := DebugOutputList;
+  Text := '';
+  if ListBox.SelCount > 0 then begin
+    for I := 0 to ListBox.Items.Count-1 do begin
+      if ListBox.Selected[I] then begin
+        if Text <> '' then
+          Text := Text + SNewLine;
+        Text := Text + ListBox.Items[I];
+      end;
+    end;
+  end;
+  Clipboard.AsText := Text;
+end;
+
+procedure TCompileForm.PListSelectAllClick(Sender: TObject);
+var
+  ListBox: TListBox;
+  I: Integer;
+begin
+  if CompilerOutputList.Visible then
+    ListBox := CompilerOutputList
+  else
+    ListBox := DebugOutputList;
+  ListBox.Items.BeginUpdate;
+  try
+    for I := 0 to ListBox.Items.Count-1 do
+      ListBox.Selected[I] := True;
+  finally
+    ListBox.Items.EndUpdate;
+  end;
 end;
 
 procedure TCompileForm.AppOnIdle(Sender: TObject; var Done: Boolean);

+ 2 - 2
Projects/Compil32.dpr

@@ -30,8 +30,8 @@ uses
   CompWizard in 'CompWizard.pas' {WizardForm},
   CompWizardFile in 'CompWizardFile.pas' {WizardFileForm},
   CompFileAssoc in 'CompFileAssoc.pas',
-  TmSchemaISX in '..\Components\TmSchemaISX.pas',
-  UxThemeISX in '..\Components\UxThemeISX.pas',
+  TmSchema in '..\Components\TmSchema.pas',
+  UxTheme in '..\Components\UxTheme.pas',
   DebugStruct in 'DebugStruct.pas',
   BrowseFunc in 'BrowseFunc.pas',
   CompSignTools in 'CompSignTools.pas' {SignToolsForm},

+ 11 - 6
Projects/Compile.pas

@@ -34,7 +34,7 @@ type
 implementation
 
 uses
-  CompPreprocInt, Commctrl, {$IFDEF IS_DXE2}Vcl.Consts{$ELSE}Consts{$ENDIF}, Classes, IniFiles, TypInfo, AnsiStrings,
+  CompPreprocInt, Commctrl, {$IFDEF IS_DXE2}Vcl.Consts{$ELSE}Consts{$ENDIF}, Classes, IniFiles, TypInfo, AnsiStrings, Math,
   PathFunc, CmnFunc2, Struct, Int64Em, CompMsgs, SetupEnt,
   FileClass, Compress, CompressZlib, bzlib, LZMA, ArcFour, SHA1,
   MsgIDs, DebugStruct, VerInfo, ResUpdate, CompResUpdate,
@@ -160,6 +160,7 @@ type
     ssSignToolMinimumTimeBetween,
     ssSignToolRetryCount,
     ssSignToolRetryDelay,
+    ssSignToolRunMinimized,
     ssSlicesPerDisk,
     ssSolidCompression,
     ssSourceDir,
@@ -364,6 +365,7 @@ type
     SignToolList: TList;
     SignTools, SignToolsParams: TStringList;
     SignToolRetryCount, SignToolRetryDelay, SignToolMinimumTimeBetween: Integer;
+    SignToolRunMinimized: Boolean;
     LastSignCommandStartTick: DWORD;
 
     OutputDir, OutputBaseFilename, OutputManifestFile, SignedUninstallerDir,
@@ -517,7 +519,7 @@ type
     procedure SeparateDirective(const Line: PChar; var Key, Value: String);
     procedure ShiftDebugEntryIndexes(AKind: TDebugEntryKind);
     procedure Sign(AExeFilename: String);
-    procedure SignCommand(const AName, ACommand, AParams, AExeFilename: String; const RetryCount, RetryDelay, MinimumTimeBetween: Integer);
+    procedure SignCommand(const AName, ACommand, AParams, AExeFilename: String; const RetryCount, RetryDelay, MinimumTimeBetween: Integer; const RunMinimized: Boolean);
     procedure WriteDebugEntry(Kind: TDebugEntryKind; Index: Integer);
     procedure WriteCompiledCodeText(const CompiledCodeText: Ansistring);
     procedure WriteCompiledCodeDebugInfo(const CompiledCodeDebugInfo: AnsiString);
@@ -4268,6 +4270,9 @@ begin
           Invalid;
         SignToolRetryDelay := I;
       end;
+    ssSignToolRunMinimized: begin
+        SignToolRunMinimized := StrToBool(Value);
+      end;
     ssSlicesPerDisk: begin
         I := StrToIntDef(Value, -1);
         if (I < 1) or (I > 26) then
@@ -7382,7 +7387,7 @@ begin
   for I := 0 to LanguageEntries.Count-1 do begin
     LangData := LangDataList[I];
     for J := Low(LangData.Messages) to High(LangData.Messages) do
-      if not LangData.MessagesDefined[J] then begin
+      if not LangData.MessagesDefined[J] and (J <> msgPrepareToInstallNeedsRestart) then begin
         { Use the message from Default.isl }
         if not (J in [msgHelpTextNote, msgTranslatorNote]) then
           WarningsList.Add(Format(SCompilerMessagesMissingMessageWarning,
@@ -7589,11 +7594,11 @@ begin
   for I := 0 to SignTools.Count - 1 do begin
     SignToolIndex := FindSignToolIndexByName(SignTools[I]); //can't fail, already checked
     SignTool := TSignTool(SignToolList[SignToolIndex]);
-    SignCommand(SignTool.Name, SignTool.Command, SignToolsParams[I], AExeFilename, SignToolRetryCount, SignToolRetryDelay, SignToolMinimumTimeBetween);
+    SignCommand(SignTool.Name, SignTool.Command, SignToolsParams[I], AExeFilename, SignToolRetryCount, SignToolRetryDelay, SignToolMinimumTimeBetween, SignToolRunMinimized);
   end;
 end;
 
-procedure TSetupCompiler.SignCommand(const AName, ACommand, AParams, AExeFilename: String; const RetryCount, RetryDelay, MinimumTimeBetween: Integer);
+procedure TSetupCompiler.SignCommand(const AName, ACommand, AParams, AExeFilename: String; const RetryCount, RetryDelay, MinimumTimeBetween: Integer; const RunMinimized: Boolean);
 
   function FmtCommand(S: PChar; const AParams, AFileName: String; var AFileNameSequenceFound: Boolean): String;
   var
@@ -7655,7 +7660,7 @@ procedure TSetupCompiler.SignCommand(const AName, ACommand, AParams, AExeFilenam
     FillChar(StartupInfo, SizeOf(StartupInfo), 0);
     StartupInfo.cb := SizeOf(StartupInfo);
     StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
-    StartupInfo.wShowWindow := SW_SHOW;
+    StartupInfo.wShowWindow := IfThen(RunMinimized, SW_SHOWMINNOACTIVE, SW_SHOW);
     
     if not CreateProcess(nil, PChar(AFormattedCommand), nil, nil, False,
        CREATE_DEFAULT_ERROR_MODE, nil, PChar(CompilerDir), StartupInfo, ProcessInfo) then begin

+ 23 - 2
Projects/ISPP/Help/ispp.xml

@@ -1672,6 +1672,26 @@ The list of options is provided at the end of this topic.</para>
 			</section>
 		</topic>
 		<topic id="predefinedvars">
+				<keywords>
+					<kwd>__COUNTER__</kwd>
+					<kwd>__FILE__</kwd>
+					<kwd>__INCLUDE__</kwd>
+					<kwd>__LINE__</kwd>
+					<kwd>__OPT_X__</kwd>
+					<kwd>__PATHFILENAME__</kwd>
+					<kwd>__POPT_X__</kwd>
+					<kwd>__WIN32__</kwd>
+					<kwd>ISPP_INVOKED</kwd>
+					<kwd>ISPPCC_INVOKED</kwd>
+					<kwd>PREPROCVER</kwd>
+					<kwd>WINDOWS</kwd>
+					<kwd>UNICODE</kwd>
+					<kwd>CompilerPath</kwd>
+					<kwd>SourcePath</kwd>
+					<kwd>Ver</kwd>
+					<kwd>NewLine</kwd>
+					<kwd>Tab</kwd>
+        </keywords>
 			<title>Predefined Variables</title>
 			<description header="no">
 				<para>There are a number of predefined variables provided ISPP:</para>
@@ -1688,11 +1708,12 @@ The list of options is provided at the end of this topic.</para>
 					<tr><td><code>ISPPCC_INVOKED</code></td><td><code><b>void</b></code>. Defined if compilation was invoked using the console-mode compiler, ISCC.exe.</td></tr>
 					<tr><td><code>PREPROCVER</code></td><td><code><b>int</b></code>. Returns the 32-bit encoded version of ISPP. Highest byte holds the major version, lowest byte holds the build number.</td></tr>
 					<tr><td><code>WINDOWS</code></td><td><code><b>void</b></code>. Always defined.</td></tr>
-					<tr><td><code>UNICODE</code></td><td><code><b>void</b></code>. Always defined for Unicode ISPP. Use <link href="defined">Defined</link> function to test whether the variable is defined.</td></tr>
+					<tr><td><code>UNICODE</code></td><td><code><b>void</b></code>. Always defined.</td></tr>
 					<tr><td><code>CompilerPath</code></td><td><code><b>str</b></code>. Points to the directory where the compiler is located.</td></tr>
 					<tr><td><code>SourcePath</code></td><td><code><b>str</b></code>. Points to the directory where the current script is located, or the My Documents directory if the script has not yet been saved.</td></tr>
-					<tr><td><code>Ver</code></td><td><code><b>int</b></code>. Returns the 32-bit encoded version of Inno Setup compiler. Highest byte holds the major version, lowest byte usually holds zero.</td></tr>
+					<tr><td><code>Ver</code></td><td><code><b>int</b></code>. Returns the 32-bit encoded version of Inno Setup compiler. Highest byte holds the major version, lowest byte the minor version.</td></tr>
 					<tr><td><code>NewLine</code></td><td><code><b>str</b></code>. Returns the newline character. Declared in &builtins;.</td></tr>
+					<tr><td><code>Tab</code></td><td><code><b>str</b></code>. Returns the tab character. Declared in &builtins;.</td></tr>
 				</table>
 			</description>
 		</topic>

+ 16 - 3
Projects/Main.pas

@@ -2278,6 +2278,15 @@ begin
   end;
 end;
 
+procedure LogCompatibilityMode;
+var
+  S: String;
+begin
+  S := GetEnv('__COMPAT_LAYER');
+  if S <> '' then
+    LogFmt('Compatibility mode: %s (%s)', [SYesNo[True], S]);
+end;
+
 procedure LogWindowsVersion;
 var
   SP: String;
@@ -3138,6 +3147,7 @@ begin
         Log('Setup version: ' + SetupTitle + ' version ' + SetupVersion);
         Log('Original Setup EXE: ' + SetupLdrOriginalFilename);
         Log('Setup command line: ' + GetCmdTail);
+        LogCompatibilityMode;
         LogWindowsVersion;
 
         NeedPassword := shPassword in SetupHeader.Options;
@@ -4222,10 +4232,13 @@ begin
               RestartSystem := WizardForm.YesRadio.Checked;
           imSilent:
             begin
-              if FromPreparingPage then
+              if FromPreparingPage then begin
+                S := ExpandSetupMessage(msgPrepareToInstallNeedsRestart);
+                if S = '' then
+                  S := ExpandSetupMessage(msgFinishedRestartMessage);
                 S := WizardForm.PrepareToInstallFailureMessage + SNewLine +
-                  SNewLine + SNewLine + ExpandSetupMessage(msgFinishedRestartMessage)
-              else
+                  SNewLine + SNewLine + S
+              end else
                 S := ExpandSetupMessage(msgFinishedRestartMessage);
               RestartSystem :=
                 LoggedMsgBox(S, '', mbConfirmation, MB_YESNO, True, IDYES) = IDYES;

+ 1 - 0
Projects/MsgIDs.pas

@@ -148,6 +148,7 @@ type
     msgPasswordLabel3,
     msgPathLabel,
     msgPowerUserPrivilegesRequired,
+    msgPrepareToInstallNeedsRestart,
     msgPreparingDesc,
     msgPreviousInstallNotCompleted,
     msgPrivilegesRequiredOverrideTitle,

+ 9 - 5
Projects/Wizard.pas

@@ -1278,13 +1278,13 @@ procedure TWizardForm.FormResize(Sender: TObject);
     { BitmapImage's size is already corrected by the Anchors property but this
       doesn't keep the aspect ratio. Calculate and set new width to restore the
       aspect ratio and update all the other controls in the page for this. Don't
-      do this if [Code] made any change to BitmapImage's Align or Anchors
+      do this if [Code] made any change to BitmapImage's Visible, Align or Anchors
       signalling that it wants a custom layout. }
     if ControlsFlipped then
       ExpectedAnchors := [akTop, akRight, akBottom]
     else
       ExpectedAnchors := [akLeft, akTop, akBottom];
-    if (BitmapImage.Align = alNone) and (BitmapImage.Anchors = ExpectedAnchors) then begin
+    if BitmapImage.Visible and (BitmapImage.Align = alNone) and (BitmapImage.Anchors = ExpectedAnchors) then begin
       if BaseUnitX = 0 then
         InternalError('AnchorOuterPage: BaseUnitX = 0');
       NewWidth := MulDiv(BitmapImage.Height, ScalePixelsX(164), ScalePixelsY(314)); //164x314 is the original bitmapimage size
@@ -1822,6 +1822,7 @@ var
   WindowDisabler: TWindowDisabler;
   CodeNeedsRestart: Boolean;
   Y: Integer;
+  S: String;
 begin
   Result := '';
   PrepareToInstallNeedsRestart := False;
@@ -1854,10 +1855,13 @@ begin
     Application.BringToFront;
   end;
   if Result <> '' then begin
-    if PrepareToInstallNeedsRestart then
+    if PrepareToInstallNeedsRestart then begin
+      S := ExpandSetupMessage(msgPrepareToInstallNeedsRestart);
+      if S = '' then
+        S := ExpandSetupMessage(msgFinishedRestartLabel);
       PreparingLabel.Caption := Result +
-        SNewLine + SNewLine + SNewLine + ExpandSetupMessage(msgFinishedRestartLabel) + SNewLine
-    else
+        SNewLine + SNewLine + SNewLine + S + SNewLine
+    end else
       PreparingLabel.Caption := Result +
         SNewLine + SNewLine + SNewLine + SetupMessages[msgCannotContinue];
     AdjustLabelHeight(PreparingLabel);

+ 1 - 1
README.md

@@ -38,7 +38,7 @@ Getting Started
 
 2. **Install Embarcadero Delphi**
 
-   We compile all of Inno Setup's projects under Delphi 10.2 Tokyo Release 2.
+   We compile all of Inno Setup's projects under Delphi 10.3 Rio.
 
    If you do not have access to this version of Delphi, you should be
    able to compile the projects on later versions, however complete

+ 8 - 2
whatsnew.htm

@@ -26,8 +26,14 @@ Portions Copyright &copy; 2000-2019 Martijn Laan. All rights reserved.<br />
 For conditions of distribution and use, see <a href="http://www.jrsoftware.org/files/is/license.txt">LICENSE.TXT</a>.
 </p>
 
-<p><a name="6.0.3"></a><span class="ver">6.0.3-dev </span><span class="date">?</span></p>
-<ul>
+<p><a name="6.0.3"></a><span class="ver">6.0.3-dev </span><span class="date">(?)</span></p>
+<ul>
+  <li>/LOG: Now logs Windows compatibility mode when this is activated by the user.</li>
+  <li>Added new [Setup] section directive: <tt>SignToolRunMinimized</tt>.</li>
+  <li>Checkboxes displayed by lists now look better on high DPI systems.</li>
+  <li>Compiler IDE change: The "Compiler Output" and "Debug Output" views now support multi selection, an extra <i>Select All</i> popup menu item and <i>Ctrl+C</i> and </i>Ctrl+A</i> keyboard shortcuts. The <i>Copy</i> action now only copies the selected lines instead of all lines.</li>
+  <li>Inno Setup Preprocessor (ISPP) change: Added new predefined variable <tt>Tab</tt>.</li>
+  <li>A message has been added in this version: PrepareToInstallNeedsRestart. This message is used by the <i>Preparing to Install</i> wizard page if a restart is needed. If this message is not set by a translation, Setup will instead use FinishedRestartLabel and FinishedRestartMessage as before. (<a href="https://github.com/jrsoftware/issrc/commit/bee9623f6680662ae280a7a38919b1f913f23834">View difference in Default.isl</a>.)</li>
   <li>Added official Slovak translation.</li>
   <li>Minor tweaks.</li>
 </ul>