Kaynağa Gözat

Merge remote-tracking branch 'refs/remotes/jrsoftware/master'

Łukasz Abramczuk 9 yıl önce
ebeveyn
işleme
64728be8ef
65 değiştirilmiş dosya ile 2217 ekleme ve 1038 silme
  1. 2 2
      CONTRIBUTING.md
  2. 208 25
      Components/BitmapImage.pas
  3. 6 10
      Components/FolderTreeView.pas
  4. 1 4
      Components/NewCheckListBox.pas
  5. 4 0
      Components/ScintStylerInnoSetup.pas
  6. 1 3
      Components/TmSchemaISX.pas
  7. 1 1
      Components/UniPs
  8. 1 3
      Components/UxThemeISX.pas
  9. 25 0
      Examples/Mydll/C#/Mydll.cs
  10. 63 0
      Examples/Mydll/C#/Mydll.csproj
  11. 22 0
      Examples/Mydll/C#/Mydll.sln
  12. 36 0
      Examples/Mydll/C#/Properties/AssemblyInfo.cs
  13. 4 0
      Examples/Mydll/C#/packages.config
  14. 4 4
      Files/Default.isl
  15. 151 152
      Files/Languages/Danish.isl
  16. 2 2
      Files/Languages/Dutch.isl
  17. 1 1
      Files/Languages/German.isl
  18. 142 143
      Files/Languages/Unofficial/Armenian.islu
  19. 6 6
      Files/Languages/Unofficial/Bengali.islu
  20. 237 207
      Files/Languages/Unofficial/Esperanto.isl
  21. 206 187
      Files/Languages/Unofficial/Farsi.isl
  22. 39 23
      Files/Languages/Unofficial/Thai.isl
  23. 325 0
      Files/Languages/Unofficial/Uzbek.isl
  24. 2 1
      Projects/CmnFunc.pas
  25. 20 0
      Projects/CmnFunc2.pas
  26. 3 3
      Projects/CompForm.pas
  27. 2 2
      Projects/CompMsgs.pas
  28. BIN
      Projects/CompWizard.dfm
  29. 36 23
      Projects/CompWizard.dfm.txt
  30. 57 20
      Projects/CompWizard.pas
  31. 2 15
      Projects/Compil32.dpr
  32. 1 1
      Projects/Compil32.dproj
  33. BIN
      Projects/Compil32.res
  34. 107 45
      Projects/Compile.pas
  35. 42 26
      Projects/ISCC.dpr
  36. 11 0
      Projects/ISPP/Help/ispp.xml
  37. BIN
      Projects/ISPP/ISPP.res
  38. 16 0
      Projects/ISPP/IsppFuncs.pas
  39. 23 8
      Projects/InstFunc.pas
  40. 14 8
      Projects/Install.pas
  41. BIN
      Projects/Iscc.res
  42. BIN
      Projects/Iscmplr.res
  43. 25 7
      Projects/Main.pas
  44. 1 1
      Projects/Regsvr.pas
  45. 6 1
      Projects/ScriptClasses_C.pas
  46. 7 0
      Projects/ScriptClasses_R.pas
  47. 11 3
      Projects/ScriptFunc.pas
  48. 1 0
      Projects/ScriptFunc_C.pas
  49. 36 10
      Projects/ScriptFunc_R.pas
  50. 12 10
      Projects/Struct.pas
  51. 1 1
      Projects/Uninstall.pas
  52. 12 0
      Projects/Version.inc
  53. BIN
      Projects/Wizard.dfm
  54. 3 0
      Projects/Wizard.dfm.txt
  55. 0 2
      Projects/Wizard.pas
  56. 10 8
      README.md
  57. 3 10
      build.bat
  58. 36 3
      compile-unicode.bat
  59. 110 34
      ishelp/isetup.xml
  60. 21 7
      ishelp/isx.xml
  61. 7 1
      ishelp/isxclasses.pas
  62. 40 6
      ishelp/isxfunc.xml
  63. 2 2
      license.txt
  64. 8 1
      setup.iss
  65. 42 6
      whatsnew.htm

+ 2 - 2
CONTRIBUTING.md

@@ -1,8 +1,8 @@
 Inno Setup
 ==========
 
-Copyright (C) 1997-2014 Jordan Russell. All rights reserved.  
-Portions Copyright (C) 2000-2014 Martijn Laan. All rights reserved.  
+Copyright (C) 1997-2016 Jordan Russell. All rights reserved.  
+Portions Copyright (C) 2000-2016 Martijn Laan. All rights reserved.  
 For conditions of distribution and use, see LICENSE.TXT.
 
 Contributing issues

+ 208 - 25
Components/BitmapImage.pas

@@ -7,21 +7,47 @@ unit BitmapImage;
   For conditions of distribution and use, see LICENSE.TXT.
 
   A TImage-like component for bitmaps without the TPicture bloat
-
-  $jrsoftware: issrc/Components/BitmapImage.pas,v 1.6 2009/03/23 14:57:40 mlaan Exp $
 }
 
 interface
 
+{$I ..\Projects\VERSION.INC}
+
 uses
   Windows, Controls, Graphics, Classes;
 
 type
+{$IFNDEF IS_D3}
+  {$DEFINE CUSTOM_PIXELFORMAT_D2}
+{$ENDIF}
+
+{$IFDEF CUSTOM_PIXELFORMAT_D2}
+  TPixelFormat = (pfUndefined, pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom);
+{$ENDIF}
+  TAlphaFormat = (afIgnored, afDefined, afPremultiplied);
+  TAlphaBitmap = class(TBitmap)
+  private
+    FAlphaFormat: TAlphaFormat;
+    procedure PreMultiplyAlpha;
+{$IFDEF CUSTOM_PIXELFORMAT_D2}
+  private
+    FPixelFormat: TPixelFormat;
+    function GetPixelFormat: TPixelFormat;
+{$ENDIF}
+  public
+    procedure Assign(Source: TPersistent); override;
+    procedure LoadFromStream(Stream: TStream); override;
+    property AlphaFormat: TAlphaFormat read FAlphaFormat write FAlphaFormat;
+{$IFDEF CUSTOM_PIXELFORMAT_D2}
+    property PixelFormat: TPixelFormat read GetPixelFormat;
+{$ENDIF}
+  end;
+
   TBitmapImage = class(TGraphicControl)
   private
     FAutoSize: Boolean;
     FBackColor: TColor;
-    FBitmap: TBitmap;
+    FBitmap: TAlphaBitmap;
     FCenter: Boolean;
     FReplaceColor: TColor;
     FReplaceWithColor: TColor;
@@ -35,6 +61,7 @@ type
     procedure SetReplaceColor(Value: TColor);
     procedure SetReplaceWithColor(Value: TColor);
     procedure SetStretch(Value: Boolean);
+    function GetBitmap: TBitmap;
   protected
     function GetPalette: HPALETTE; override;
     procedure Paint; override;
@@ -51,7 +78,7 @@ type
     property DragMode;
     property Enabled;
     property ParentShowHint;
-    property Bitmap: TBitmap read FBitmap write SetBitmap;
+    property Bitmap: TBitmap read GetBitmap write SetBitmap;
     property PopupMenu;
     property ShowHint;
     property Stretch: Boolean read FStretch write SetStretch default False;
@@ -73,6 +100,23 @@ procedure Register;
 
 implementation
 
+{$IFNDEF IS_D6}
+type
+  TBlendFunction = record
+    BlendOp: BYTE;
+    BlendFlags: BYTE;
+    SourceConstantAlpha: BYTE;
+    AlphaFormat: BYTE;
+  end;
+
+const
+  AC_SRC_OVER = $00;
+  AC_SRC_ALPHA = $01;
+
+function AlphaBlend(DC: HDC; p2, p3, p4, p5: Integer; DC6: HDC; p7, p8, p9,
+  p10: Integer; p11: TBlendFunction): BOOL; stdcall; external 'msimg32.dll' name 'AlphaBlend';
+{$ENDIF}
+
 procedure Register;
 begin
   RegisterComponents('JR', [TBitmapImage]);
@@ -83,7 +127,7 @@ begin
   inherited Create(AOwner);
   ControlStyle := ControlStyle + [csReplicatable];
   FBackColor := clBtnFace;
-  FBitmap := TBitmap.Create;
+  FBitmap := TAlphaBitmap.Create;
   FBitmap.OnChange := BitmapChanged;
   FReplaceColor := clNone;
   FReplaceWithColor := clNone;
@@ -163,40 +207,63 @@ begin
   end;
 end;
 
+function TBitmapImage.GetBitmap: TBitmap;
+begin
+  Result := FBitmap;
+end;
+
 function TBitmapImage.GetPalette: HPALETTE;
 begin
   Result := FBitmap.Palette;
 end;
 
 procedure TBitmapImage.Paint;
+const
+  Bf: TBlendFunction =(
+    BlendOp: AC_SRC_OVER;
+    BlendFlags: 0;
+    SourceConstantAlpha: 255;
+    AlphaFormat: AC_SRC_ALPHA);
+
 var
   R: TRect;
   Bmp: TBitmap;
-  X, Y: Integer;
+  X, Y, W, H: Integer;
+  Is32bit: Boolean;
 begin
   with Canvas do begin
     R := ClientRect;
+    Is32bit := (FBitmap.PixelFormat = pf32bit) and
+      (FBitmap.AlphaFormat in [afDefined, afPremultiplied]);
 
     if Stretch then begin
-      if not FStretchedBitmapValid or (FStretchedBitmap.Width <> R.Right) or
-         (FStretchedBitmap.Height <> R.Bottom) then begin
-        FStretchedBitmapValid := True;
-        if (FBitmap.Width = R.Right) and (FBitmap.Height = R.Bottom) then
-          FStretchedBitmap.Assign(FBitmap)
-        else begin
-          FStretchedBitmap.Assign(nil);
-          FStretchedBitmap.Palette := CopyPalette(FBitmap.Palette);
-          FStretchedBitmap.Width := R.Right;
-          FStretchedBitmap.Height := R.Bottom;
-          FStretchedBitmap.Canvas.StretchDraw(R, FBitmap);
+      W := R.Right;
+      H := R.Bottom;
+      if not Is32bit then begin
+        if not FStretchedBitmapValid or (FStretchedBitmap.Width <> W) or
+           (FStretchedBitmap.Height <> H) then begin
+          FStretchedBitmapValid := True;
+          if (FBitmap.Width = W) and (FBitmap.Height = H) then
+            FStretchedBitmap.Assign(FBitmap)
+          else begin
+            FStretchedBitmap.Assign(nil);
+            FStretchedBitmap.Palette := CopyPalette(FBitmap.Palette);
+            FStretchedBitmap.Width := W;
+            FStretchedBitmap.Height := H;
+            FStretchedBitmap.Canvas.StretchDraw(R, FBitmap);
+          end;
         end;
-      end;
-      Bmp := FStretchedBitmap;
-    end
-    else
+        Bmp := FStretchedBitmap;
+      end
+      else
+        Bmp := FBitmap;
+    end else begin
       Bmp := FBitmap;
+      W := Bmp.Width;
+      H := Bmp.Height;
+    end;
 
-    if (FBackColor <> clNone) and (Bmp.Width < Width) or (Bmp.Height < Height) then begin
+    if (FBackColor <> clNone) and (Is32Bit or (Bmp.Width < Width) or (Bmp.Height < Height)) then begin
       Brush.Style := bsSolid;
       Brush.Color := FBackColor;
       FillRect(R);
@@ -209,10 +276,10 @@ begin
     end;
 
     if Center then begin
-      X := R.Left + ((R.Right - R.Left) - Bmp.Width) div 2;
+      X := R.Left + ((R.Right - R.Left) - W) div 2;
       if X < 0 then
         X := 0;
-      Y := R.Top + ((R.Bottom - R.Top) - Bmp.Height) div 2;
+      Y := R.Top + ((R.Bottom - R.Top) - H) div 2;
       if Y < 0 then
         Y := 0;
     end else begin
@@ -220,12 +287,128 @@ begin
       Y := 0;
     end;
 
+    if Is32bit then begin
+      if AlphaBlend(Handle, X, Y, W, H, Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Bf) then
+        Exit;
+    end;
     if (FReplaceColor <> clNone) and (FReplaceWithColor <> clNone) then begin
       Brush.Color := FReplaceWithColor;
-      BrushCopy(Rect(X, Y, X + Bmp.Width, Y + Bmp.Height), Bmp, Rect(0, 0, Bmp.Width, Bmp.Height), FReplaceColor);
+      BrushCopy(Rect(X, Y, X + W, Y + H), Bmp, Rect(0, 0, Bmp.Width, Bmp.Height), FReplaceColor);
     end else
       Draw(X, Y, Bmp);
   end;
 end;
 
+{$IFDEF CUSTOM_PIXELFORMAT_D2}
+// Types defined to access internal private fields, must match exactly the
+// implementation of both types from Graphics.
+type
+  TBitmapImageAccess = class(TObject)
+  private
+    // TInternalImage
+    FRefCount: Integer;
+    FMemoryManager: Pointer;
+    // TBitmapImage
+    FHandle, FPalette: THandle;
+    FWidth, FHeight: LongInt;
+    FDIBHeader: ^TBitmapInfoHeader;
+    FDIBBits: Pointer;
+  end;
+
+  TBitmapAccess = class(TGraphic)
+  private
+    FImage: TBitmapImageAccess;
+  end;
+{$ENDIF}
+
+{ TAlphaBitmap }
+
+type
+  // Some type that we know all Delphi supports and has correct width on all
+  // platforms.
+  NativeUInt = WPARAM;
+
+procedure TAlphaBitmap.Assign(Source: TPersistent);
+begin
+  inherited;
+  if Source is TAlphaBitmap then
+    FAlphaFormat := TAlphaBitmap(Source).AlphaFormat;
+end;
+
+{$IFDEF CUSTOM_PIXELFORMAT_D2}
+function TAlphaBitmap.GetPixelFormat: TPixelFormat;
+begin
+  // We use cached value as default since after the canvas handle has been
+  // created the DIB section is no longer valid and the painting must remember
+  // whether the bitmap has alpha or not.
+  Result := FPixelFormat;
+  if TBitmapAccess(Self).FImage = nil then
+    Exit;
+  with TBitmapAccess(Self).FImage do
+  begin
+    if (FDIBHeader = nil) or (FDIBBits = nil) then
+      Exit;
+    Result := pfCustom;
+    case FDIBHeader^.biBitCount of
+      1: Result := pf1Bit;
+      4: Result := pf4Bit;
+      8: Result := pf8Bit;
+     16: case FDIBHeader^.biCompression of
+           BI_RGB : Result := pf15Bit;
+           // BI_BITFIELDS: if FDIBHeader^.dsBitFields[1] = $7E0 then Result := pf16Bit;
+         end;
+     24: Result := pf24Bit;
+     32: if FDIBHeader^.biCompression = BI_RGB then Result := pf32Bit;
+    end;
+  end;
+  FPixelFormat := Result;
+end;
+{$ENDIF}
+
+procedure TAlphaBitmap.LoadFromStream(Stream: TStream);
+begin
+  inherited;
+  if (PixelFormat = pf32bit) and (FAlphaFormat = afDefined) then
+    PreMultiplyAlpha;
+end;
+
+function BytesPerScanline(PixelsPerScanline, BitsPerPixel, Alignment: Longint): Longint;
+begin
+  Dec(Alignment);
+  Result := ((PixelsPerScanline * BitsPerPixel) + Alignment) and not Alignment;
+  Result := Result div 8;
+end;
+
+procedure TAlphaBitmap.PreMultiplyAlpha;
+var
+  Alpha: Word;
+  ImageData, Limit: NativeUInt;
+begin
+  if (PixelFormat = pf32bit) then //Premultiply the alpha into the color
+  begin
+{$IFNDEF CUSTOM_PIXELFORMAT_D2}
+    Pointer(ImageData) := ScanLine[0];
+    if ImageData = NativeUInt(nil) then
+      Exit;
+    Pointer(Limit) := ScanLine[Height - 1];
+    // Is bottom up? (this can be distinguished by biHeight being positive but
+    // since we don't have direct access to the headers we need to work around
+    // that.
+    if Limit < ImageData then
+      ImageData := Limit;
+{$ELSE}
+    Pointer(ImageData) := TBitmapAccess(Self).FImage.FDIBBits;
+{$ENDIF}
+    Limit := ImageData + NativeUInt(BytesPerScanline(Width, 32, 32) * Height);
+    while ImageData < Limit do
+    begin
+      Alpha := PByte(ImageData + 3)^;
+      PByte(ImageData)^ := MulDiv(PByte(ImageData)^, Alpha, 255);
+      PByte(ImageData + 1)^ := MulDiv(PByte(ImageData + 1)^, Alpha, 255);
+      PByte(ImageData + 2)^ := MulDiv(PByte(ImageData + 2)^, Alpha, 255);
+      Inc(ImageData, 4);
+    end;
+  end;
+end;
+
 end.

+ 6 - 10
Components/FolderTreeView.pas

@@ -2,20 +2,16 @@ unit FolderTreeView;
 
 {
   Inno Setup
-  Copyright (C) 1997-2008 Jordan Russell
+  Copyright (C) 1997-2015 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
   TFolderTreeView component
-
-  $jrsoftware: issrc/Components/FolderTreeView.pas,v 1.42 2009/03/25 11:47:32 mlaan Exp $
 }
 
 interface
 
-{$IFDEF VER200}
-  {$DEFINE DELPHI2009}
-{$ENDIF}
+{$I VERSION.INC}
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, CommCtrl;
@@ -139,7 +135,7 @@ implementation
 }
 
 uses
-  PathFunc, ShellApi, UxThemeISX{$IFDEF DELPHI2009}, Types{$ENDIF};
+  PathFunc, ShellApi, UxThemeISX{$IFDEF IS_D12}, Types{$ENDIF};
 
 const
   SHPPFW_NONE = $00000000;
@@ -676,7 +672,7 @@ begin
             TVItem.hItem := DispItem.hItem;
             TVItem.pszText := PChar(S);
             TreeView_SetItem(Handle, TVItem);
-            TreeView_SortChildren(Handle, TreeView_GetParent(Handle, DispItem.hItem), 0);
+            TreeView_SortChildren(Handle, TreeView_GetParent(Handle, DispItem.hItem), {$IFDEF IS_DXE}False{$ELSE}0{$ENDIF});
             Change;
           end;
         end;
@@ -1033,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, 0);
+      TreeView_SortChildren(Handle, Item, {$IFDEF IS_DXE}False{$ELSE}0{$ENDIF});
     end;
   end;
 end;
@@ -1171,7 +1167,7 @@ begin
       AddSubfolders(Item, AddBackslash(FCommonPrograms) + Path, FCommonStartup);
     if FUserPrograms <> '' then
       AddSubfolders(Item, AddBackslash(FUserPrograms) + Path, FUserStartup);
-    TreeView_SortChildren(Handle, Item, 0);
+    TreeView_SortChildren(Handle, Item, {$IFDEF IS_DXE}False{$ELSE}0{$ENDIF});
   end;
 end;
 

+ 1 - 4
Components/NewCheckListBox.pas

@@ -1,7 +1,6 @@
 unit NewCheckListBox;
 
-{ TNewCheckListBox by Martijn Laan for My Inno Setup Extensions
-  See http://isx.wintax.nl/ for more information
+{ TNewCheckListBox by Martijn Laan for Inno Setup
 
   Based on TPBCheckListBox by Patrick Brisacier and TCheckListBox by Borland
 
@@ -10,8 +9,6 @@ unit NewCheckListBox;
 
   Note: TNewCheckListBox uses Items.Objects to store the item state. Don't use
   Item.Objects yourself, use ItemObject instead.
-
-  $jrsoftware: issrc/Components/NewCheckListBox.pas,v 1.57 2009/03/25 11:47:32 mlaan Exp $
 }
 
 {$IFDEF VER90}

+ 4 - 0
Components/ScintStylerInnoSetup.pas

@@ -126,6 +126,7 @@ type
     ssAppVersion,
     ssArchitecturesAllowed,
     ssArchitecturesInstallIn64BitMode,
+    ssASLRCompatible,
     ssBackColor,
     ssBackColor2,
     ssBackColorDirection,
@@ -144,6 +145,7 @@ type
     ssDefaultUserInfoName,
     ssDefaultUserInfoOrg,
     ssDefaultUserInfoSerial,
+    ssDEPCompatible,
     ssDirExistsWarning,
     ssDisableDirPage,
     ssDisableFinishedPage,
@@ -187,6 +189,7 @@ type
     ssRestartIfNeededByRun,
     ssSetupIconFile,
     ssSetupLogging,
+    ssSetupMutex,
     ssShowComponentSizes,
     ssShowLanguageDialog,
     ssShowTasksTreeLines,
@@ -233,6 +236,7 @@ type
     ssWindowShowCaption,
     ssWindowStartMaximized,
     ssWindowVisible,
+    ssWizardImageAlphaFormat,
     ssWizardImageBackColor,
     ssWizardImageFile,
     ssWizardImageStretch,

+ 1 - 3
Components/TmSchemaISX.pas

@@ -44,9 +44,7 @@
 {                                                                              }
 {******************************************************************************}
 
-{ Simplified by Martijn Laan for My Inno Setup Extensions and Delphi 2
-  See http://isx.wintax.nl/ for more information
-}
+{ Simplified by Martijn Laan for Inno Setup and Delphi 2 }
 
 unit TmSchemaISX;
 

+ 1 - 1
Components/UniPs

@@ -1 +1 @@
-Subproject commit db0d6f521113a31b34a76aeefd79fb148a9c4bfd
+Subproject commit bfc1255636eb959f102d0279721b05ba85fbe7da

+ 1 - 3
Components/UxThemeISX.pas

@@ -44,9 +44,7 @@
 {                                                                              }
 {******************************************************************************}
 
-{ Simplified by Martijn Laan for My Inno Setup Extensions and Delphi 2
-  See http://isx.wintax.nl/ for more information
-}
+{ Simplified by Martijn Laan for Inno Setup and Delphi 2 }
 
 unit UxThemeISX;
 

+ 25 - 0
Examples/Mydll/C#/Mydll.cs

@@ -0,0 +1,25 @@
+using System;
+
+using System.Runtime.InteropServices;
+using RGiesecke.DllExport;
+
+namespace Mydll
+{
+    public class Mydll
+    {
+      [DllExport("MyDllFunc", CallingConvention=CallingConvention.StdCall)]
+      public static void MyDllFunc(IntPtr hWnd, [MarshalAs(UnmanagedType.LPStr)] string text, [MarshalAs(UnmanagedType.LPStr)] string caption, int options)
+      {
+        MessageBox(hWnd, text, caption, options);
+      }
+
+      [DllExport("MyDllFuncW", CallingConvention=CallingConvention.StdCall)]
+      public static void MyDllFuncW(IntPtr hWnd, string text, string caption, int options)
+      {
+        MessageBox(hWnd, text, caption, options);
+      }
+
+      [DllImport("user32.dll", CharSet=CharSet.Auto)]
+      static extern int MessageBox(IntPtr hWnd, String text, String caption, int options);
+    }
+}

+ 63 - 0
Examples/Mydll/C#/Mydll.csproj

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{79237A5C-6C62-400A-BBDD-3DA1CA327973}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Mydll</RootNamespace>
+    <AssemblyName>Mydll</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="RGiesecke.DllExport.Metadata, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f52d83c1a22df51, processorArchitecture=MSIL">
+      <HintPath>packages\UnmanagedExports.1.2.7\lib\net\RGiesecke.DllExport.Metadata.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Mydll.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="packages/UnmanagedExports.1.2.7/tools/RGiesecke.DllExport.targets" Condition="Exists('packages/UnmanagedExports.1.2.7/tools/RGiesecke.DllExport.targets')" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 22 - 0
Examples/Mydll/C#/Mydll.sln

@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mydll", "Mydll.csproj", "{79237A5C-6C62-400A-BBDD-3DA1CA327973}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{79237A5C-6C62-400A-BBDD-3DA1CA327973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{79237A5C-6C62-400A-BBDD-3DA1CA327973}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{79237A5C-6C62-400A-BBDD-3DA1CA327973}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{79237A5C-6C62-400A-BBDD-3DA1CA327973}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 36 - 0
Examples/Mydll/C#/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Mydll")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Mydll")]
+[assembly: AssemblyCopyright("Copyright ©  2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("711cc3c2-07db-46ca-b34b-ba06f4edcbcd")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 4 - 0
Examples/Mydll/C#/packages.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="UnmanagedExports" version="1.2.7" targetFramework="net45" />
+</packages>

+ 4 - 4
Files/Default.isl

@@ -216,7 +216,7 @@ InstallingLabel=Please wait while Setup installs [name] on your computer.
 ; *** "Setup Completed" wizard page
 FinishedHeadingLabel=Completing the [name] Setup Wizard
 FinishedLabelNoIcons=Setup has finished installing [name] on your computer.
-FinishedLabel=Setup has finished installing [name] on your computer. The application may be launched by selecting the installed icons.
+FinishedLabel=Setup has finished installing [name] on your computer. The application may be launched by selecting the installed shortcuts.
 ClickFinish=Click Finish to exit Setup.
 FinishedRestartLabel=To complete the installation of [name], Setup must restart your computer. Would you like to restart now?
 FinishedRestartMessage=To complete the installation of [name], Setup must restart your computer.%n%nWould you like to restart now?
@@ -323,9 +323,9 @@ ShutdownBlockReasonUninstallingApp=Uninstalling %1.
 [CustomMessages]
 
 NameAndVersion=%1 version %2
-AdditionalIcons=Additional icons:
-CreateDesktopIcon=Create a &desktop icon
-CreateQuickLaunchIcon=Create a &Quick Launch icon
+AdditionalIcons=Additional shortcuts:
+CreateDesktopIcon=Create a &desktop shortcut
+CreateQuickLaunchIcon=Create a &Quick Launch shortcut
 ProgramOnTheWeb=%1 on the Web
 UninstallProgram=Uninstall %1
 LaunchProgram=Launch %1

+ 151 - 152
Files/Languages/Danish.isl

@@ -1,5 +1,4 @@
-; Translation made with Translator 1.32 (http://www2.arnes.si/~sopjsimo/translator.html)
-; $Translator:NL=%n:TB=%t
+; *** Inno Setup version 5.5.3+ Danish messages ***
 ;
 ; To download user-contributed translations of this file, go to:
 ;   http://www.jrsoftware.org/files/istrans/
@@ -9,7 +8,8 @@
 ; Setup adds the periods automatically (appending a period would result in
 ; two periods being displayed).
 ;
-; ID: Danish.isl,v 5.5.3+ 2012/12/14 Thomas Vedel, [email protected]
+; ID: Danish.isl,v 5.5.3+ 2015/07/20 Thomas Vedel, [email protected]
+; Parts by scootergrisen, 2015
 
 [LangOptions]
 LanguageName=Dansk
@@ -18,13 +18,12 @@ LanguageCodePage=1252
 
 ; If the language you are translating to requires special font faces or
 ; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=MS Shell Dlg
+;DialogFontName=
 ;DialogFontSize=8
-;DialogFontStandardHeight=13
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
 ;TitleFontName=Arial
 ;TitleFontSize=29
-;WelcomeFontName=Arial
-;WelcomeFontSize=12
 ;CopyrightFontName=Arial
 ;CopyrightFontSize=8
 
@@ -32,7 +31,7 @@ LanguageCodePage=1252
 ; *** Application titles
 SetupAppTitle=Installationsguide
 SetupWindowTitle=Installationsguide - %1
-UninstallAppTitle=Afinstaller
+UninstallAppTitle=Afinstallér
 UninstallAppFullTitle=Afinstallerer %1
 
 ; *** Misc. common
@@ -41,98 +40,98 @@ ConfirmTitle=Bekr
 ErrorTitle=Fejl
 
 ; *** SetupLdr messages
-SetupLdrStartupMessage=Denne guide installerer %1. Fortsæt?
-LdrCannotCreateTemp=Kan ikke danne en midlertidig fil. Installationen afbrydes
-LdrCannotExecTemp=Kan ikke udføre et program i mappen til opbevaring af midlertidige filer. Installationen afbrydes
+SetupLdrStartupMessage=Denne guide installerer %1. Vil du fortsætte?
+LdrCannotCreateTemp=Kan ikke oprette en midlertidig fil. Installationen afbrydes
+LdrCannotExecTemp=Kan ikke køre et program i den midlertidige mappe. Installationen afbrydes
 
 ; *** Startup error messages
 LastErrorMessage=%1.%n%nFejl %2: %3
-SetupFileMissing=Filen %1 mangler i installations-mappen. Ret fejlen eller skaf en ny kopi af programmet.
-SetupFileCorrupt=Installationsfilerne er ødelagt. Skaf en ny kopi af installationsprogrammet.
-SetupFileCorruptOrWrongVer=Installationsfilerne er ødelagt, eller også passer de ikke til denne version af installationen. Ret fejlen eller skaf en ny kopi af installationsprogrammet.
+SetupFileMissing=Filen %1 mangler i installationsmappen. Ret venligst problemet eller få en ny kopi af programmet.
+SetupFileCorrupt=Installationsfilerne er beskadiget. Få venligst en ny kopi af installationsprogrammet.
+SetupFileCorruptOrWrongVer=Installationsfilerne er beskadiget, eller også er de ikke kompatible med denne version af installationsprogrammet. Ret venligst problemet eller få en ny kopi af installationsprogrammet.
 InvalidParameter=En ugyldig parameter blev angivet på kommandolinjen:%n%n%1
 SetupAlreadyRunning=Installationsprogrammet kører allerede.
-WindowsVersionNotSupported=Programmet kan ikke anvendes på den version af Windows som denne computer kører.
-WindowsServicePackRequired=Dette program kræver %1 med Service Pack %2 eller senere.
+WindowsVersionNotSupported=Programmet understøtter ikke den version af Windows, som denne computer kører.
+WindowsServicePackRequired=Programmet kræver %1 med Service Pack %2 eller senere.
 NotOnThisPlatform=Programmet kan ikke anvendes på %1.
 OnlyOnThisPlatform=Programmet kan kun anvendes på %1.
-OnlyOnTheseArchitectures=Dette program kan kun installeres på Windows-versioner som er designet til denne processortype:%n%n%1
-MissingWOW64APIs=Den anvendte Windows-version indeholder ikke funktioner som er nødvendige for at foretage en 64-bit installation. Du kan afhjælpe problemet ved at installere Service Pack %1.
-WinVersionTooLowError=Programmet kræver %1 version %2 eller nyere.
-WinVersionTooHighError=Programmet kan ikke installeres på %1 version %2 eller nyere.
-AdminPrivilegesRequired=Du skal være logget på som administrator for at kunne installere dette program.
-PowerUserPrivilegesRequired=Du skal være logget på som administrator eller være medlem af superbruger-gruppen for at kunne installere dette program.
-SetupAppRunningError=Programmet %1 er aktivt.%n%nAfslut venligst først programmet, og klik dernæst OK for at fortsætte, eller Annuller for at afbryde.
-UninstallAppRunningError=Programmet %1 er aktivt.%n%nAfslut venligst først programmet, og klik dernæst OK for at fortsætte, eller Annuller for at afbryde.
+OnlyOnTheseArchitectures=Programmet kan kun installeres på versioner af Windows der anvender disse processor-arkitekturer:%n%n%1
+MissingWOW64APIs=Den version af Windows du anvender indeholder ikke funktioner som er nødvendige for at foretage en 64-bit installation. Du kan afhjælpe problemet ved at installere Service Pack %1.
+WinVersionTooLowError=Programmet kræver %1 version %2 eller senere.
+WinVersionTooHighError=Programmet kan ikke installeres på %1 version %2 eller senere.
+AdminPrivilegesRequired=Du skal være logget på som administrator imens programmet installeres.
+PowerUserPrivilegesRequired=Du skal være logget på som administrator eller være medlem af gruppen Superbrugere imens programmet installeres.
+SetupAppRunningError=Installationsprogrammet har registreret at %1 kører.%n%nLuk venligst alle forekomster af programmet, og klik så OK for at fortsætte, eller Annuller for at afbryde.
+UninstallAppRunningError=Afinstallationsprogrammet har registreret at %1 kører.%n%nLuk venligst alle forekomster af programmet, og klik så OK for at fortsætte, eller Annuller for at afbryde.
 
 ; *** Misc. errors
-ErrorCreatingDir=Installationen kunne ikke oprette mappen "%1"
-ErrorTooManyFilesInDir=Det kan ikke lade sig gøre at oprette en fil i mappen "%1" fordi mappen indeholder for mange filer
+ErrorCreatingDir=Installationsprogrammet kan ikke oprette mappen "%1"
+ErrorTooManyFilesInDir=Kan ikke oprette en fil i mappen "%1". Mappen indeholder for mange filer
 
 ; *** Setup common messages
 ExitSetupTitle=Afbryd installationen
-ExitSetupMessage=Installationen er ikke færdiggjort. Hvis der afbrydes nu, vil programmet ikke blive installeret.%n%nInstallationsguiden skal køres igen for at færdiggøre installationen.%n%nAfbryd installationen?
-AboutSetupMenuItem=&Om installationsguiden...
-AboutSetupTitle=Om installationsguiden
+ExitSetupMessage=Installationen er ikke fuldført. Programmet installeres ikke, hvis du afbryder nu.%n%nDu kan køre installationsprogrammet igen på et andet tidspunkt for at udføre installationen.%n%nSkal installationen afbrydes?
+AboutSetupMenuItem=&Om installationsprogrammet...
+AboutSetupTitle=Om installationsprogrammet
 AboutSetupMessage=%1 version %2%n%3%n%n%1 hjemmeside:%n%4
 AboutSetupNote=
+TranslatorNote=Danish translation maintained by Thomas Vedel ([email protected]). Parts by scootergrisen.
 
 ; *** Buttons
-TranslatorNote=
 ButtonBack=< &Tilbage
 ButtonNext=Næ&ste >
 ButtonInstall=&Installer
 ButtonOK=&OK
-ButtonCancel=&Afbryd
+ButtonCancel=&Annuller
 ButtonYes=&Ja
-ButtonYesToAll=Ja til A&lle
+ButtonYesToAll=Ja til a&lle
 ButtonNo=&Nej
-ButtonNoToAll=Nej t&il Alle
+ButtonNoToAll=Nej t&il alle
 ButtonFinish=&Færdig
 ButtonBrowse=&Gennemse...
 ButtonWizardBrowse=G&ennemse...
-ButtonNewFolder=&Opret Ny Mappe
+ButtonNewFolder=&Opret ny mappe
 
 ; *** "Select Language" dialog messages
 SelectLanguageTitle=Vælg installationssprog
-SelectLanguageLabel=Vælg hvilket sprog der skal anvendes under installationen:
+SelectLanguageLabel=Vælg det sprog der skal vises under installationen:
 
 ; *** Common wizard text
-ClickNext=Klik Næste for at fortsætte, eller Afbryd for at afslutte.
+ClickNext=Klik på Næste for at fortsætte, eller Annuller for at afbryde installationen.
 BeveledLabel=
-BrowseDialogTitle=Udvælg mappe
-BrowseDialogLabel=Vælg en mappe fra nedenstående liste. Klik dernæst OK.
-NewFolderName=Ny Mappe
+BrowseDialogTitle=Vælg mappe
+BrowseDialogLabel=Vælg en mappe fra nedenstående liste og klik på OK.
+NewFolderName=Ny mappe
 
 ; *** "Welcome" wizard page
-WelcomeLabel1=Velkommen til [name] installationsguiden
-WelcomeLabel2=Denne guide installerer [name/ver] på computeren.%n%nDet anbefales at alle andre programmer afsluttes før der fortsættes.
+WelcomeLabel1=Velkommen til installationsguiden for [name]
+WelcomeLabel2=Guiden installerer [name/ver] på computeren.%n%nDet anbefales at lukke alle andre programmer inden du fortsætter.
 
 ; *** "Password" wizard page
 WizardPassword=Adgangskode
 PasswordLabel1=Installationen er beskyttet med adgangskode.
-PasswordLabel3=Indtast adgangskoden og klik Næste for at fortsætte. Der skelnes mellem store og små bogstaver.
+PasswordLabel3=Indtast venligst adgangskoden og klik Næste for at fortsætte. Der skelnes mellem store og små bogstaver.
 PasswordEditLabel=&Adgangskode:
-IncorrectPassword=Adgangskoden er ikke korrekt. Prøv igen, og husk at der skelnes mellem store og små bogstaver.
+IncorrectPassword=Den indtastede kode er forkert. Prøv venligst igen.
 
 ; *** "License Agreement" wizard page
 WizardLicense=Licensaftale
-LicenseLabel=Læs venligst den følgende information, som er vigtig, inden du fortsætter.
+LicenseLabel=Læs venligst følgende vigtige oplysninger inden du fortsætter.
 LicenseLabel3=Læs venligst licensaftalen. Du skal acceptere betingelserne i aftalen for at fortsætte installationen.
 LicenseAccepted=Jeg &accepterer aftalen
 LicenseNotAccepted=Jeg accepterer &ikke aftalen
 
 ; *** "Information" wizard pages
 WizardInfoBefore=Information
-InfoBeforeLabel=Læs følgende information inden du fortsætter.
-InfoBeforeClickLabel=Tryk på Næste, når du er klar til at fortsætte installationen.
+InfoBeforeLabel=Læs venligst følgende information inden du fortsætter.
+InfoBeforeClickLabel=Klik på Næste, når du er klar til at fortsætte installationen.
 WizardInfoAfter=Information
-InfoAfterLabel=Læs følgende information inden du fortsætter.
-InfoAfterClickLabel=Tryk på Næste, når du er klar til at fortsætte installationen.
+InfoAfterLabel=Læs venligst følgende information inden du fortsætter.
+InfoAfterClickLabel=Klik på Næste, når du er klar til at fortsætte installationen.
 
 ; *** "User Information" wizard page
 WizardUserInfo=Brugerinformation
-UserInfoDesc=Indtast dine oplysninger.
+UserInfoDesc=Indtast venligst dine oplysninger.
 UserInfoName=&Brugernavn:
 UserInfoOrg=&Organisation:
 UserInfoSerial=&Serienummer:
@@ -141,175 +140,175 @@ UserInfoNameRequired=Du skal indtaste et navn.
 ; *** "Select Destination Directory" wizard page
 WizardSelectDir=Vælg installationsmappe
 SelectDirDesc=Hvor skal [name] installeres?
-SelectDirLabel3=Guiden installerer [name] i følgende mappe.
-SelectDirBrowseLabel=Klik Næste for at fortsætte. Hvis du vil vælge en anden mappe skal du klikke Gennemse.
+SelectDirLabel3=Installationsprogrammet installerer [name] i følgende mappe.
+SelectDirBrowseLabel=Klik på Næste for at fortsætte. Klik på Gennemse, hvis du vil vælge en anden mappe.
 DiskSpaceMBLabel=Der skal være mindst [mb] MB fri diskplads.
-CannotInstallToNetworkDrive=Programmet kan ikke installeres på et netværksdrev.
-CannotInstallToUNCPath=Programmet kan ikke installeres til en UNC-sti.
-InvalidPath=Du skal indtaste den komplette sti med drevangivelse; for eksempel:%n%nC:\APP%n%neller et UNC-stinavn på formen:%n%n\\server\share
-InvalidDrive=Drevet eller UNC-stien du valgte eksisterer ikke. Vælg venligst noget andet.
-DiskSpaceWarningTitle=Ikke nok fri diskplads.
-DiskSpaceWarning=Guiden kræver mindst %1 KB fri diskplads for at kunne foretage installationen, men det valgte drev har kun %2 KB diskplads tilgængelig.%n%nVil du installere alligevel?
-DirNameTooLong=Mappens eller stiens navn er for langt.
-InvalidDirName=Mappenavnet er ikke gyldigt.
-BadDirName32=Navne på mapper må ikke indeholde nogen af følgende tegn:%n%n%1
-DirExistsTitle=Mappen eksisterer
-DirExists=Mappen:%n%n%1%n%neksisterer allerede. Ønsker du at installere i denne mappe alligevel?
-DirDoesntExistTitle=Mappen eksisterer ikke.
-DirDoesntExist=Mappen:%n%n%1%n%neksisterer ikke. Ønsker du at oprette denne mappe?
+CannotInstallToNetworkDrive=Guiden kan ikke installere programmet på et netværksdrev.
+CannotInstallToUNCPath=Guiden kan ikke installere programmet til en UNC-sti.
+InvalidPath=Du skal indtaste en komplet sti med drevbogstav, f.eks.:%n%nC:\Program%n%neller et UNC-stinavn i formatet:%n%n\\server\share
+InvalidDrive=Drevet eller UNC-stien du valgte findes ikke, eller der er ikke adgang til det lige nu. Vælg venligst en anden placering.
+DiskSpaceWarningTitle=Ikke nok ledig diskplads.
+DiskSpaceWarning=Guiden kræver mindst %1 KB ledig diskplads for at kunne installere programmet, men det valgte drev har kun %2 KB ledig diskplads.%n%nVil du alligevel fortsætte installationen?
+DirNameTooLong=Navnet på mappen eller stien er for langt.
+InvalidDirName=Navnet på mappen er ikke tilladt.
+BadDirName32=Mappenavne må ikke indeholde følgende tegn:%n%n%1
+DirExistsTitle=Mappen findes
+DirExists=Mappen:%n%n%1%n%nfindes allerede. Vil du alligevel installere i denne mappe?
+DirDoesntExistTitle=Mappen findes ikke.
+DirDoesntExist=Mappen:%n%n%1%n%nfindes ikke. Vil du oprette mappen?
 
 ; *** "Select Components" wizard page
 WizardSelectComponents=Vælg Komponenter
 SelectComponentsDesc=Hvilke komponenter skal installeres?
-SelectComponentsLabel2=Vælg de komponenter der skal installeres, og fjern markering fra dem der ikke skal installeres. Klik Næste for at fortsætte.
-FullInstallation=Komplet installation
+SelectComponentsLabel2=Vælg de komponenter der skal installeres, og fjern markering fra dem der ikke skal installeres. Klik så på Næste for at fortsætte.
+FullInstallation=Fuld installation
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
 CompactInstallation=Kompakt installation
 CustomInstallation=Tilpasset installation
 NoUninstallWarningTitle=Komponenterne er installeret
-NoUninstallWarning=Installationen har konstateret at følgende komponenter allerede er installeret på computeren:%n%n%1%n%nAt fravælge komponenterne vil ikke fjerne dem.%n%nFortsæt alligevel?
+NoUninstallWarning=Installationsprogrammet har registreret at følgende komponenter allerede er installeret på computeren:%n%n%1%n%nKomponenterne bliver ikke afinstalleret hvis de fravælges.%n%nFortsæt alligevel?
 ComponentSize1=%1 KB
 ComponentSize2=%1 MB
-ComponentsDiskSpaceMBLabel=Det valgte kræver mindst [mb] MB fri plads på harddisken.
+ComponentsDiskSpaceMBLabel=De nuværende valg kræver mindst [mb] MB ledig diskplads.
 
 ; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=Vælg ekstra opgaver
-SelectTasksDesc=Hvilke andre opgaver skal udføres?
-SelectTasksLabel2=Vælg hvilke ekstraopgaver der skal udføres under installationen af [name] og klik på Næste.
+WizardSelectTasks=Vælg supplerende opgaver
+SelectTasksDesc=Hvilke supplerende opgaver skal udføres?
+SelectTasksLabel2=Vælg de supplerende opgaver du vil have guiden til at udføre under installationen af [name] og klik på Næste.
 
 ; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Vælg Start-menu mappe
-SelectStartMenuFolderDesc=Hvor skal installationen oprette genveje til programmet?
-SelectStartMenuFolderLabel3=Installationsguiden opretter genveje (ikoner) til programmet i følgende mappe i Start-menuen.
-SelectStartMenuFolderBrowseLabel=Klik Næste for at fortsætte. Hvis du vil vælge en anden mappe skal du klikke Gennemse.
-MustEnterGroupName=Du skal angive et mappenavn.
+WizardSelectProgramGroup=Vælg mappe i menuen Start
+SelectStartMenuFolderDesc=Hvor skal installationsprogrammet oprette genveje til programmet?
+SelectStartMenuFolderLabel3=Installationsprogrammet opretter genveje til programmet i følgende mappe i menuen Start.
+SelectStartMenuFolderBrowseLabel=Klik på Næste for at fortsætte. Klik på Gennemse, hvis du vil vælge en anden mappe.
+MustEnterGroupName=Du skal indtaste et mappenavn.
 GroupNameTooLong=Mappens eller stiens navn er for langt.
-InvalidGroupName=Mappenavnet er ikke gyldigt.
-BadGroupName=Tegnene %1 må ikke anvendes i navnet på en programgruppe. Angiv andet navn.
-NoProgramGroupCheck2=Opret &ingen programgruppe i Start-menuen
+InvalidGroupName=Mappenavnet er ugyldigt.
+BadGroupName=Navnet på en programgruppe må ikke indeholde følgende tegn: %1. Angiv andet navn.
+NoProgramGroupCheck2=Opret &ingen programgruppe i menuen Start
 
 ; *** "Ready to Install" wizard page
 WizardReady=Klar til at installere
-ReadyLabel1=Installationsguiden er nu klar til at installere [name] på computeren.
-ReadyLabel2a=Tryk på Installer for at fortsætte med installationen, eller tryk på Tilbage hvis du ønsker at se eller ændre dine indstillinger.
-ReadyLabel2b=Tryk på Installer for at fortsætte med installationen.
-ReadyMemoUserInfo=Oplysninger om brugeren:
-ReadyMemoDir=Installationsmappe :
+ReadyLabel1=Installationsprogrammet er nu klar til at installere [name] på computeren.
+ReadyLabel2a=Klik på Installer for at fortsætte med installationen, eller klik på Tilbage hvis du vil se eller ændre indstillingerne.
+ReadyLabel2b=Klik på Installer for at fortsætte med installationen.
+ReadyMemoUserInfo=Brugerinformation:
+ReadyMemoDir=Installationsmappe:
 ReadyMemoType=Installationstype:
 ReadyMemoComponents=Valgte komponenter:
-ReadyMemoGroup=Start-menu mappe:
-ReadyMemoTasks=Valgte ekstraopgaver:
+ReadyMemoGroup=Mappe i menuen Start:
+ReadyMemoTasks=Valgte supplerende opgaver:
 
 ; *** "Preparing to Install" wizard page
-WizardPreparing=Klargør installationen
-PreparingDesc=Installationsguiden klargør installationen af [name] på din computer.
-PreviousInstallNotCompleted=Den foregående installation eller fjernelse af et program er ikke afsluttet. Du skal genstarte computeren for at afslutte den foregående installation.%n%nEfter genstarten skal du køre installationsguiden igen for at fuldføre installationen af [name].
-CannotContinue=Installationsguiden kan ikke fortsætte. Klik på Fortryd for at afslutte.
-ApplicationsFound=Følgende programmer bruger filer som skal opdateres. Det anbefales at du giver installationsguiden lov til automatisk at lukke programmerne.
-ApplicationsFound2=Følgende programmer bruger filer som skal opdateres. Det anbefales at du giver installationsguiden lov til automatisk at lukke programmerne. Installationsguiden vil forsøge at genstarte programmerne når installationen er afsluttet.
+WizardPreparing=Klargøring af installationen
+PreparingDesc=Installationsprogrammet gør klar til at installere [name] på din computer.
+PreviousInstallNotCompleted=Installation eller afinstallation af et program er ikke afsluttet. Du skal genstarte computeren for at afslutte den foregående installation.%n%nNår computeren er genstartet skal du køre installationsprogrammet til [name] igen.
+CannotContinue=Installationsprogrammet kan ikke fortsætte. Klik venligst på Fortryd for at afslutte.
+ApplicationsFound=Følgende programmer bruger filer som skal opdateres. Det anbefales at du giver installationsprogrammet tilladelse til automatisk at lukke programmerne.
+ApplicationsFound2=Følgende programmer bruger filer som skal opdateres. Det anbefales at du giver installationsprogrammet tilladelse til automatisk at lukke programmerne. Installationsguiden vil forsøge at genstarte programmerne når installationen er fuldført.
 CloseApplications=&Luk programmerne automatisk
 DontCloseApplications=Luk &ikke programmerne
-ErrorCloseApplications=Installationsguiden kan ikke automatisk lukke alle programmerne. Det anbefales at du lukker alle programmer som bruger filer der skal opdateres, inden installationsguiden fortsætter.
+ErrorCloseApplications=Installationsprogrammet kunne ikke lukke alle programmerne automatisk. Det anbefales at du lukker alle programmer som bruger filer der skal opdateres, inden installationsprogrammet fortsætter.
 
 ; *** "Installing" wizard page
 WizardInstalling=Installerer
-InstallingLabel=Vent mens installationsguiden installerer [name] på din computer.
+InstallingLabel=Vent venligst mens installationsprogrammet installerer [name] på computeren.
 
 ; *** "Setup Completed" wizard page
-FinishedHeadingLabel=Afslutter installation af [name]
-FinishedLabelNoIcons=Installationsguiden har installeret [name] på din computer.
-FinishedLabel=Installationsguiden har installeret [name] på din computer. Programmet kan startes ved at vælge de oprettede genveje.
+FinishedHeadingLabel=Fuldfører installation af [name]
+FinishedLabelNoIcons=Installationsguiden har fuldført installation af [name] på computeren.
+FinishedLabel=Installationsguiden har fuldført installation af [name] på computeren. Programmet kan startes ved at vælge de oprettede ikoner.
 ClickFinish=Klik på Færdig for at afslutte installationsprogrammet.
-FinishedRestartLabel=For at fuldføre installationen af [name], skal din computer genstartes. Vil du genstarte computeren nu?
-FinishedRestartMessage=For at fuldføre installationen af [name], skal din computer genstartes.%n%nVil du genstarte computeren nu?
-ShowReadmeCheck=Ja, jeg vil gerne læse README filen
+FinishedRestartLabel=Computeren skal genstartes for at fuldføre installation af [name]. Vil du genstarte computeren nu?
+FinishedRestartMessage=Computeren skal genstartes for at fuldføre installation af [name].%n%nVil du genstarte computeren nu?
+ShowReadmeCheck=Ja, jeg vil gerne se README-filen
 YesRadio=&Ja, genstart computeren nu
-NoRadio=&Nej, jeg genstarter selv computeren senere
+NoRadio=&Nej, jeg genstarter computeren senere
 ; used for example as 'Run MyProg.exe'
 RunEntryExec=Kør %1
 ; used for example as 'View Readme.txt'
-RunEntryShellExec=s %1
+RunEntryShellExec=Vis %1
 
 ; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=Installationsprogrammet skal bruge den næste disk(ette)
-SelectDiskLabel2=Indsæt disk nr. %1 og klik OK.%n%nHvis filerne findes i en anden mappe så indtast stien eller klik Gennemse.
-PathLabel=&Stinavn:
-FileNotInDir2=Filen "%1" findes ikke i "%2". Indsæt den rigtige disk eller vælg en anden mappe.
-SelectDirectoryLabel=Angiv placeringen af den næste disk.
+ChangeDiskTitle=Installationsprogrammet skal bruge den næste disk
+SelectDiskLabel2=Indsæt disk %1 og klik OK.%n%nHvis filerne findes i en anden mappe end den viste, så indtast stien eller klik Gennemse.
+PathLabel=&Sti:
+FileNotInDir2=Filen "%1" blev ikke fundet i "%2". Indsæt venligst den korrekte disk, eller vælg en anden mappe.
+SelectDirectoryLabel=Angiv venligst placeringen af den næste disk.
 
 ; *** Installation phase messages
-SetupAborted=Installationen blev ikke gennemført.%n%nInstaller igen, hent programmet på ny, eller kontakt producenten for hjælp.
-EntryAbortRetryIgnore=Klik Gentag for at forsøge igen, Ignorer for at fortsætte alligevel, eller Afbryd for at annullere installationen.
+SetupAborted=Installationen blev ikke fuldført.%n%nRet venligst de fundne problemer og kør installationsprogrammet igen.
+EntryAbortRetryIgnore=Klik på Forsøg igen for at prøve igen, Ignorer for at fortsætte alligevel, eller Afbryd for at annullere installationen.
 
 ; *** Installation status messages
 StatusClosingApplications=Lukker programmer...
 StatusCreateDirs=Opretter mapper...
 StatusExtractFiles=Udpakker filer...
-StatusCreateIcons=Opretter program-genveje...
-StatusCreateIniEntries=Opretter INI-filer...
-StatusCreateRegistryEntries=Opdaterer registrerings-databasen...
+StatusCreateIcons=Opretter genveje...
+StatusCreateIniEntries=Opretter poster i INI-filer...
+StatusCreateRegistryEntries=Opretter poster i registreringsdatabasen...
 StatusRegisterFiles=Registrerer filer...
 StatusSavingUninstall=Gemmer information om afinstallation...
-StatusRunProgram=Færdiggør installation...
+StatusRunProgram=Fuldfører installation...
 StatusRestartingApplications=Genstarter programmer...
-StatusRollback=Fjerner programmet igen...
+StatusRollback=Fjerner ændringer...
 
 ; *** Misc. errors
 ErrorInternal2=Intern fejl: %1
 ErrorFunctionFailedNoCode=%1 fejlede
 ErrorFunctionFailed=%1 fejlede; kode %2
 ErrorFunctionFailedWithMessage=%1 fejlede; kode %2.%n%3
-ErrorExecutingProgram=Kan ikke udføre filen:%n%1
+ErrorExecutingProgram=Kan ikke køre programfilen:%n%1
 
 ; *** Registry errors
-ErrorRegOpenKey=Fejl ved åbning af  registreringsnøgle:%n%1\%2
-ErrorRegCreateKey=Fejl ved oprettelse af registreringsnøgle:%n%1\%2
-ErrorRegWriteKey=Fejl ved skrivning til registreringsnøgle:%n%1\%2
+ErrorRegOpenKey=Fejl ved åbning af nøgle i registreringsdatabase:%n%1\%2
+ErrorRegCreateKey=Fejl ved oprettelse af nøgle i registreringsdatabase:%n%1\%2
+ErrorRegWriteKey=Fejl ved skrivning til nøgle i registreringsdatabase:%n%1\%2
 
 ; *** INI errors
-ErrorIniEntry=Fejl ved oprettelse af variabel i INI-filen "%1".
+ErrorIniEntry=Fejl ved oprettelse af post i INI-filen "%1".
 
 ; *** File copying errors
-FileAbortRetryIgnore=Klik Gentag for at prøve igen, Ignorer for at springe filen over (kan normalt ikke anbefales) eller Afbryd for at afslutte installationen.
-FileAbortRetryIgnore2=Klik Gentag for at prøve igen, Ignorer for at fortsætte alligevel (kan normalt ikke anbefales) eller Afbryd for at afslutte installationen.
+FileAbortRetryIgnore=Klik på Forsøg igen for at prøve igen, Ignorer for at springe filen over (anbefales ikke) eller Afbryd for at afbryde installationen.
+FileAbortRetryIgnore2=Klik på Forsøg igen for at prøve igen, Ignorer for at fortsætte alligevel (anbefales ikke) eller Afbryd for at afbryde installationen.
 SourceIsCorrupted=Kildefilen er beskadiget
 SourceDoesntExist=Kildefilen "%1" findes ikke
-ExistingFileReadOnly=Den eksisterende fil er markeret som skrivebeskyttet.%n%nKlik Gentag for at prøve igen (efter at du har fjernet skrivebeskyttelsen), Ignorer for at springe filen over eller Afbryd for at afslutte installationen.
-ErrorReadingExistingDest=Der opsted en fejl ved forsøg på at læse den eksisterende fil:
-FileExists=Filen eksisterer allerede.%n%nSkal Installationsguiden overskrive den?
-ExistingFileNewer=Den eksisterende fil er nyere end den installation forsøger at skrive. Det anbefales at beholde den eksisterende fil.%n%n Skal den eksisterende fil beholdes?
-ErrorChangingAttr=Der opstod en fejl ved forsøg på at ændre attributter for den eksisterende fil:
-ErrorCreatingTemp=En fejl opstod ved forsøg på at oprette en fil i mappen:
-ErrorReadingSource=En fejl opstod ved forsøg på at læse kildefilen:
-ErrorCopying=En fejl opstod ved forsøg på at kopiere en fil:
-ErrorReplacingExistingFile=En fejl opstod ved forsøg på at overskrive den eksisterende fil:
-ErrorRestartReplace=Genstart/Erstat fejlede:
-ErrorRenamingTemp=En fejl opstod ved forsøg på at omdøbe en fil i modtagemappen:
+ExistingFileReadOnly=Den eksisterende fil er skrivebeskyttet.%n%nKlik Forsøg igen for at prøve igen (efter fjernelse af skrivebeskyttelsen), Ignorer for at springe filen over eller Afbryd for at afbryde installationen.
+ErrorReadingExistingDest=Der opstod en fejl ved læsning af den eksisterende fil:
+FileExists=Filen findes allerede.%n%nSkal installationsprogrammet overskrive den?
+ExistingFileNewer=Den eksisterende fil er nyere end den installationsprogrammet forsøger at installere. Det anbefales at beholde den eksisterende fil.%n%n Skal den eksisterende fil beholdes?
+ErrorChangingAttr=Der opstod en fejl ved ændring af attributter for den eksisterende fil:
+ErrorCreatingTemp=Der opstod en fejl ved oprettelse af en fil i mappen:
+ErrorReadingSource=Der opstod en fejl ved læsning af kildefilen:
+ErrorCopying=Der opstod en fejl ved kopiering af en fil:
+ErrorReplacingExistingFile=Der opstod en fejl ved forsøg på at erstatte den eksisterende fil:
+ErrorRestartReplace=Erstatning af fil ved genstart mislykkedes:
+ErrorRenamingTemp=Der opstod en fejl ved forsøg på at omdøbe en fil i installationsmappen:
 ErrorRegisterServer=Kan ikke registrere DLL/OCX: %1
 ErrorRegSvr32Failed=RegSvr32 fejlede med exit kode %1
 ErrorRegisterTypeLib=Kan ikke registrere typebiblioteket: %1
 
 ; *** Post-installation errors
-ErrorOpeningReadme=Der opstod en fejl ved forsøg på at åbne README filen.
-ErrorRestartingComputer=Installationen kunne ikke genstarte computeren. Genstart venligst computeren manuelt.
+ErrorOpeningReadme=Der opstod en fejl ved forsøg på at åbne README-filen.
+ErrorRestartingComputer=Installationsprogrammet kunne ikke genstarte computeren. Genstart venligst computeren manuelt.
 
 ; *** Uninstaller messages
-UninstallNotFound=Filen "%1" eksisterer ikke. Afinstallationen kan ikke fortsætte.
-UninstallOpenError=Filen "%1" kunne ikke åbnes. Kan ikke afinstallere
-UninstallUnsupportedVer=Afinstallations-logfilen "%1" er i et format der ikke kan genkendes af denne version af afinstallations-programmet. Afinstallationen afbrydes
-UninstallUnknownEntry=Der er en ukendt kommando (%1) i afinstallings-logfilen.
-ConfirmUninstall=Er du sikker på at %1 og alle tilhørende komponenter skal fjernes fra computeren?
-UninstallOnlyOnWin64=Denne installation kan kun fjernes på 64-bit Windows-versioner
-OnlyAdminCanUninstall=Programmet kan kun fjernes af en bruger med administrator-rettigheder.
-UninstallStatusLabel=Vent venligst imens %1 fjernes.
-UninstalledAll=%1 er fjernet uden fejl.
-UninstalledMost=%1 Afinstallation er afsluttet.%n%nNogle filer kunne ikke fjernes. Fjern dem manuelt, hvis du ikke ønsker de skal blive liggende.
-UninstalledAndNeedsRestart=For at afslutte afinstallation af %1 skal computeren genstartes.%n%nVil du genstarte nu?
-UninstallDataCorrupted="%1" er beskadiget. Afinstallation kan ikke foretages
+UninstallNotFound=Filen "%1" findes ikke. Kan ikke afinstalleres.
+UninstallOpenError=Filen "%1" kunne ikke åbnes. Kan ikke afinstalleres
+UninstallUnsupportedVer=Afinstallations-logfilen "%1" er i et format der ikke  genkendes af denne version af afinstallations-guiden. Afinstallationen afbrydes
+UninstallUnknownEntry=Der er en ukendt post (%1) i afinstallerings-logfilen.
+ConfirmUninstall=Er du sikker på at du vil fjerne %1 og alle tilhørende komponenter?
+UninstallOnlyOnWin64=Denne installation kan kun afinstalleres på 64-bit Windows-versioner
+OnlyAdminCanUninstall=Programmet kan kun afinstalleres af en bruger med administratorrettigheder.
+UninstallStatusLabel=Vent venligst imens %1 afinstalleres fra computeren.
+UninstalledAll=%1 er nu fjernet fra computeren.
+UninstalledMost=%1 afinstallation er fuldført.%n%nNogle elementer kunne ikke fjernes. De kan fjernes manuelt.
+UninstalledAndNeedsRestart=Computeren skal genstartes for at fuldføre afinstallation af %1.%n%nVil du genstarte nu?
+UninstallDataCorrupted=Filen "%1" er beskadiget. Kan ikke afinstallere
 
 ; *** Uninstallation phase messages
 ConfirmDeleteSharedFileTitle=Fjern delt fil?
-ConfirmDeleteSharedFile2=Systemet mener ikke længere at følgende delte fil(er) benyttes. Skal den/de delte fil(er) fjernes under afinstallationen?%n%nHvis du er usikker så vælg Nej. Beholdes filen på maskinen, vil den ikke gøre nogen skade, men hvis filen fjernes, selv om den stadig anvendes, bliver de programmer, der anvender filen, ustabile
+ConfirmDeleteSharedFile2=Systemet indikerer at følgende delte fil ikke længere er i brug. Skal den/de delte fil(er) fjernes af guiden?%n%nHvis du er usikker så vælg Nej. Beholdes filen på maskinen, vil den ikke gøre nogen skade, men hvis filen fjernes, selv om den stadig anvendes, bliver de programmer, der anvender filen, ustabile
 SharedFileNameLabel=Filnavn:
 SharedFileLocationLabel=Placering:
 WizardUninstalling=Status for afinstallation
@@ -321,14 +320,14 @@ ShutdownBlockReasonUninstallingApp=Afinstallerer %1.
 
 [CustomMessages]
 NameAndVersion=%1 version %2
-AdditionalIcons=Ekstra ikoner:
-CreateDesktopIcon=Lav ikon på skrive&bordet
-CreateQuickLaunchIcon=Lav &hurtigstart-ikon
+AdditionalIcons=Supplerende ikoner:
+CreateDesktopIcon=Opret ikon på skrive&bordet
+CreateQuickLaunchIcon=Opret &hurtigstart-ikon
 ProgramOnTheWeb=%1 på internettet
 UninstallProgram=Afinstaller (fjern) %1
-LaunchProgram=&Kør %1
+LaunchProgram=&Start %1
 AssocFileExtension=Sammen&kæd %1 med filtypen %2
 AssocingFileExtension=Sammenkæder %1 med filtypen %2...
 AutoStartProgramGroupDescription=Start:
 AutoStartProgram=Start automatisk %1
-AddonHostProgramNotFound=%1 blev ikke fundet i den mappe du angav.%n%nØnsker du alligevel at fortsætte?
+AddonHostProgramNotFound=%1 blev ikke fundet i den valgte mappe.%n%nVil du alligevel fortsætte?

+ 2 - 2
Files/Languages/Dutch.isl

@@ -44,8 +44,8 @@ WinVersionTooLowError=Dit programma vereist %1 versie %2 of hoger.
 WinVersionTooHighError=Dit programma kan niet worden geïnstalleerd onder %1 versie %2 of hoger.
 AdminPrivilegesRequired=U moet aangemeld zijn als een systeembeheerder om dit programma te kunnen installeren.
 PowerUserPrivilegesRequired=U moet ingelogd zijn als systeembeheerder of als gebruiker met systeembeheerders rechten om dit programma te kunnen installeren.
-SetupAppRunningError=Setup heeft vastgesteld dat %1 op dit moment actief is.%n%nSluit alle vensters van dit programma, en klik daarna op OK om verder te gaan, of op Annuleren om Setup af te sluiten.
-UninstallAppRunningError=Het verwijderprogramma heeft vastgesteld dat %1 op dit moment actief is.%n%nSluit alle vensters van dit programma, en klik daarna op OK om verder te gaan, of op Annuleren om het verwijderen af te breken.
+SetupAppRunningError=Setup heeft vastgesteld dat %1 op dit moment actief is.%n%nSluit alle vensters hiervan, en klik daarna op OK om verder te gaan, of op Annuleren om Setup af te sluiten.
+UninstallAppRunningError=Het verwijderprogramma heeft vastgesteld dat %1 op dit moment actief is.%n%nSluit alle vensters hiervan, en klik daarna op OK om verder te gaan, of op Annuleren om het verwijderen af te breken.
 
 ; *** Misc. errors
 ErrorCreatingDir=Setup kan de map "%1" niet maken

+ 1 - 1
Files/Languages/German.isl

@@ -342,5 +342,5 @@ AssocFileExtension=&Registriere %1 mit der %2-Dateierweiterung
 AssocingFileExtension=%1 wird mit der %2-Dateierweiterung registriert...
 AutoStartProgramGroupDescription=Beginn des Setups:
 AutoStartProgram=Starte automatisch%1
-AddonHostProgramNotFound=%1 konnte im ausgwählten Ordner nicht gefunden werden.%n%nMöchten Sie dennoch fortfahren?
+AddonHostProgramNotFound=%1 konnte im ausgewählten Ordner nicht gefunden werden.%n%nMöchten Sie dennoch fortfahren?
 

+ 142 - 143
Files/Languages/Unofficial/Armenian.islu

@@ -1,9 +1,9 @@
 ; *** Inno Setup version 5.5.3+ Armenian messages ***
 ;
 ; Armenian translation by Hrant Ohanyan
-; E-mail: h[email protected]
+; E-mail: h[email protected]
 ; Translation home page: http://www.haysoft.org
-; Last modification date: 2013-02-01
+; Last modification date: 2015-10-19
 ;
 [LangOptions]
 LanguageName=Armenian
@@ -30,53 +30,53 @@ UninstallAppFullTitle=%1-ի ջնջում
 
 ; *** Misc. common
 InformationTitle=Տեղեկություն
-ConfirmTitle=Հաստատեք
+ConfirmTitle=Հաստատել
 ErrorTitle=Սխալ
 
 ; *** SetupLdr messages
-SetupLdrStartupMessage=Այս ծրագիրը կտեղակայի %1-ը Ձեր համակարգչում։ Շարունակե՞լ։
-LdrCannotCreateTemp=Հնարավոր չէ ստեղծել ժամանակավոր ֆայլ։ Տեղակայումը ընդհատվել է
-LdrCannotExecTemp=Հնարավոր չէ ֆայլ բացել ժամանակավոր թղթապանակից։ Տեղակայումը ընդհատվել է
+SetupLdrStartupMessage=Այս ծրագիրը կտեղադրի %1-ը Ձեր համակարգչում։ Շարունակե՞լ։
+LdrCannotCreateTemp=Հնարավոր չէ ստեղծել ժամանակավոր ֆայլ։ Տեղակայումը կասեցված է
+LdrCannotExecTemp=Հնարավոր չէ կատարել ֆայլը ժամանակավոր թղթապանակից։ Տեղակայումը կասեցված է
 
 ; *** Startup error messages
 LastErrorMessage=%1.%n%nՍխալ %2: %3
-SetupFileMissing=%1 ֆայլը բացակայում է տեղակայման թղթապանակից։ Վերացրեք խնդիրը կամ բեռնեք ծրագրի նոր տարբերակը։
+SetupFileMissing=%1 ֆայլը բացակայում է տեղադրման թղթապանակից։ Ուղղեք խնդիրը կամ ստացեք ծրագրի նոր տարբերակը։
 SetupFileCorrupt=Տեղակայման ֆայլերը վնասված են։
-SetupFileCorruptOrWrongVer=Տեղակայման այս ֆայլերը վնասված են կամ անհամատեղելի են տեղակայիչի այս տարբերակի հետ։
-InvalidParameter=Հրամանի տողում նշված է սխալ հրաման.%n%n%1
+SetupFileCorruptOrWrongVer=Տեղակայման ֆայլերը վնասված են կամ անհամատեղելի են տեղակայիչի այս տարբերակի հետ։ Ուղղեք խնդիրը կամ ստացեք ծրագրի նոր տարբերակը։
+InvalidParameter=Հրամանատողում նշված է սխալ հրաման.%n%n%1
 SetupAlreadyRunning=Տեղակայիչը արդեն աշխատում է։
-WindowsVersionNotSupported=Ծրագիրը չի աջակցում այս համակարգչում տեղակայված Windows-ի տարբերակը։
-WindowsServicePackRequired=Ծրագիրը պահանջում է %1 Service Pack %2 կամ ավելի բարձր։
+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=Այս ծրագիրը տեղակայելու համար պետք է մուտք գործել համակարգ որպես Ադմին կամ «Փորձառու օգտագործող» (Power Users).
-SetupAppRunningError=Նկատվել է %1-ի բացված օրինակ։ %n%nԽնդրում ենք փակել և սեղմել «ԼԱՎ»՝ շարունակելու համար, կամ «Մերժել»՝ փակելու համար։
-UninstallAppRunningError=Ջնջող ծրագիրը գտել է %1-ի բաց օրինակ։%n%nՓակեք այն և սեղմեք «ԼԱՎ»՝ շարունակելու համար, կամ «Մերժել»՝ փակելու համար։
+OnlyOnThisPlatform=Այս ծրագիրը հնարավոր է բացել միայն %1-ում։
+OnlyOnTheseArchitectures=Այս ծրագրի տեղակյաումը հնարավոր է միայն Windows-ի մշակիչի հետևյալ կառուցվածքներում՝ %n%n%1
+MissingWOW64APIs=Windows Ձեր տարբերակում բացակայում է 64 բիթանոց տեղակայման համար պահանջվող ֆունկցիաները։ Դրա համար Դուք պետք է տեղակայեք թարմացումների հետևյալ փաթեթը (Service Pack)՝ %1։
+WinVersionTooLowError=Այս ծրագիրը պահանջում է %1-ի տարբերակ %2 կամ ավելի նոր։
+WinVersionTooHighError=Ծրագիրը չի կարող տեղակայվել %1-ի տարբերակ %2 կամ ավելի նորում
+AdminPrivilegesRequired=Ծրագիրը տեղակայելու համար պահանջվում են Ադմինի իրավունքներ։
+PowerUserPrivilegesRequired=Ծրագիրը տեղակայելու համար պետք է մուտք գործել համակարգ որպես Ադմին կամ «Փորձառու օգտագործող» (Power Users).
+SetupAppRunningError=Տեղակայիչը հայտնաբերել է, որ %1-ը աշխատում է։%n%nՓակեք այն և սեղմեք «ԼԱՎ»՝ շարունակելու համար կամ «Չեղարկել»՝ փակելու համար։
+UninstallAppRunningError=Ջնջող ծրագիրը հայտնաբերել է, որ %1-ը աշխատում է։%n%nՓակեք այն և սեղմեք «ԼԱՎ»՝ շարունակելու համար կամ «Չեղարկել»՝ փակելու համար։
 
 ; *** Misc. errors
 ErrorCreatingDir=Հնարավոր չէ ստեղծել "%1" թղթապանակը
-ErrorTooManyFilesInDir=Հնարավոր չէ ստեղծել ֆայլ "%1" թղթապանակում, նրանում կան չափից ավելի շատ ֆայլեր
+ErrorTooManyFilesInDir=Հնարավոր չէ ստեղծել ֆայլ "%1" թղթապանակում, որովհետև նրանում կան չափից ավելի շատ ֆայլեր
 
 ; *** Setup common messages
 ExitSetupTitle=Տեղակայման ընդհատում
 ExitSetupMessage=Տեղակայումը չի ավարատվել։ Եթե ընդհատեք, ապա ծրագիրը չի տեղակայվի։%n%nԱվարտե՞լ։
 AboutSetupMenuItem=&Ծրագրի մասին...
 AboutSetupTitle=Ծրագրի մասին
-AboutSetupMessage=%1, տարբերակը %2%n%3%n%nՎեբ կայքը %1:%n%4
+AboutSetupMessage=%1, տարբերակ՝ %2%n%3%n%nՎեբ կայքը %1:%n%4
 AboutSetupNote=
 TranslatorNote=Armenian translation by Hrant Ohanyan »»» http://www.haysoft.org
 
 ; *** Buttons
-ButtonBack=« &Նախորդը
-ButtonNext=&Հաջորդը »
-ButtonInstall=&Տեղակայել
+ButtonBack=« &Նախորդ
+ButtonNext=&Հաջորդ »
+ButtonInstall=&Տեղադրել
 ButtonOK=ԼԱՎ
-ButtonCancel=Մերժել
+ButtonCancel=Չեղարկել
 ButtonYes=&Այո
 ButtonYesToAll=Այո բոլորի &համար
 ButtonNo=&Ոչ
@@ -87,171 +87,170 @@ ButtonWizardBrowse=&Ընտրել...
 ButtonNewFolder=&Ստեղծել թղթապանակ
 
 ; *** "Select Language" dialog messages
-SelectLanguageTitle=Ընտրեք տեղակայիչի լեզուն
+SelectLanguageTitle=Ընտրել տեղակայիչի լեզուն
 SelectLanguageLabel=Ընտրեք այն լեզուն, որը օգտագործվելու է տեղակայման ընթացքում.
 
 ; *** Common wizard text
-ClickNext=Սեղմեք «Հաջորդը»՝ շարունակելու համար կամ «Մերժել»՝ տեղակայիչ ծրագրիը փակելու համար։
+ClickNext=Սեղմեք «Հաջորդ»՝ շարունակելու համար կամ «Չեղարկել»՝ տեղակայիչը փակելու համար։
 BeveledLabel=
-BrowseDialogTitle=Ընտրեք թղթապանակը
+BrowseDialogTitle=Ընտրել թղթապանակ
 BrowseDialogLabel=Ընտրեք թղթապանակը ցանկից և սեղմեք «ԼԱՎ»։
 NewFolderName=Նոր թղթապանակ
 
 ; *** "Welcome" wizard page
-WelcomeLabel1=Ձեզ ողջունում է [name]-ի տեղակայման վարպետը
+WelcomeLabel1=Ձեզ ողջունում է [name]-ի տեղակայման օգնականը
 WelcomeLabel2=Ծրագիրը կտեղակայի [name/ver]-ը Ձեր համակարգչում։%n%nՇարունակելուց առաջ խորհուրդ ենք տալիս փակել բոլոր աշխատող ծրագրերը։ 
 
 ; *** "Password" wizard page
-WizardPassword=Գաղտնաբառը
+WizardPassword=Գաղտնաբառ
 PasswordLabel1=Ծրագիրը պաշտպանված է գաղտնաբառով։
-PasswordLabel3=Մուտքագրեք գաղտնաբառը և սեղմեք «Հաջորդը»։
+PasswordLabel3=Մուտքագրեք գաղտնաբառը և սեղմեք «Հաջորդ»։
 PasswordEditLabel=&Գաղտնաբառը.
 IncorrectPassword=Մուտքագրված գաղտնաբառը սխալ է, կրկին փորձեք։
 
 ; *** "License Agreement" wizard page
 WizardLicense=Արտոնագրային համաձայնություն
 LicenseLabel=Խնդրում ենք շարունակելուց առաջ կարդալ հետևյալ տեղեկությունը։
-LicenseLabel3=Կարդացեք այս արտոնագրային համաձայնությունը։ Շարունակելուց առաջ Դուք պետք է ընդունեք նշված պայմանները։
-LicenseAccepted=Ես &ընդունում եմ արտոնագրային համաձայնությունը
-LicenseNotAccepted=Ես &չեմ ընդունում արտոնագրային համաձայնությունը
+LicenseLabel3=Կարդացեք արտոնագրային համաձայնությունը։ Շարունակելուց առաջ Դուք պետք է ընդունեք նշված պայմանները։
+LicenseAccepted=նդունում եմ արտոնագրային համաձայնությունը
+LicenseNotAccepted=եմ ընդունում արտոնագրային համաձայնությունը
 
 ; *** "Information" wizard pages
 WizardInfoBefore=Տեղեկություն
 InfoBeforeLabel=Շարունակելուց առաջ կարդացեք այս տեղեկությունը։
-InfoBeforeClickLabel=Եթե պատրաստ եք սեղմեք «Հաջորդը»։
+InfoBeforeClickLabel=Եթե պատրաստ եք սեղմեք «Հաջորդ»։
 WizardInfoAfter=Տեղեկություն
 InfoAfterLabel=Շարունակելուց առաջ կարդացեք այս տեղեկությունը։
-InfoAfterClickLabel=Երբ պատրաստ լինեք շարունակելու սեղմեք «Հաջորդը»։
+InfoAfterClickLabel=Երբ պատրաստ լինեք շարունակելու՝ սեղմեք «Հաջորդ»։
 
 ; *** "User Information" wizard page
 WizardUserInfo=Տեղեկություն օգտվողի մասին
 UserInfoDesc=Գրեք տվյալներ Ձեր մասին
-UserInfoName=&Օօգտվողի անունը և ազգանունը.
-UserInfoOrg=&Կազմակերպությունը.
-UserInfoSerial=&Հերթական համարը.
+UserInfoName=&Օօգտվողի անուն և ազգանուն.
+UserInfoOrg=&Կազմակերպություն.
+UserInfoSerial=&Հերթական համար.
 UserInfoNameRequired=Պետք է գրեք Ձեր անունը։
 
 ; *** "Select Destination Location" wizard page
 WizardSelectDir=Ընտրեք տեղակայման թղթապանակը
-SelectDirDesc=Ո՞ր թղթապանակում տեղակայել [name]-ը։
-SelectDirLabel3=Ծրագիրը կտեղակայի [name]-ը հետևյալ թղթապանակում։
-SelectDirBrowseLabel=Սեղմեք «Հաջորդը»՝ շարունակելու համար։ Եթե ցանկանում եք ընտրել այլ թղթապանակ սեղմեք «Ընտրել»։
+SelectDirDesc=Ո՞ր թղթապանակում տեղադրել [name]-ը։
+SelectDirLabel3=Ծրագիրը կտեղադրի [name]-ը հետևյալ թղթապանակում։
+SelectDirBrowseLabel=Սեղմեք «Հաջորդ»՝ շարունակելու համար։ Եթե ցանկանում եք ընտրել այլ թղթապանակ՝ սեղմեք «Ընտրել»։
 DiskSpaceMBLabel=Պահանջվում է առնվազն [mb] ՄԲ ազատ տեղ։
-CannotInstallToNetworkDrive=Հնարավոր չէ տեղակայել Ցանցային պնակում։
-CannotInstallToUNCPath=Հնարավոր չէ տեղակայել UNC տեղում։
-InvalidPath=Պետք է նշեք ամբողջական ճանապարհը պնակի տառով, օրինակ՝%n%nC:\APP%n%nկամ UNC ձևով՝ %n%n\\սպասարկիչի_անունը\ռեսուրսի_անունը
-InvalidDrive=Ընտրված պնակը կամ ցանցային ճանապարհը գոյություն չունի կամ անհասանելի է։ Ընտրեք այլ ճանապարհ։
-DiskSpaceWarningTitle=Չկա պահանջվող ծավալի ազատ տեղ
-DiskSpaceWarning=Պահանջվում է ոչ քիչ քան %1 ԿԲ ազատ տեղ, մինչդեռ հասանելի է ընդամենը %2 ԿԲ։%n%nԱյնուհանդերձ, շարունակե՞լ։
-DirNameTooLong=Թղթապանակի անունը կամ ճանապարհը գերազանցում են հասանելի երկարությունը։
+CannotInstallToNetworkDrive=Հնարավոր չէ տեղադրել Ցանցային սկավառակում։
+CannotInstallToUNCPath=Հնարավոր չէ տեղադրել UNC ուղիում։
+InvalidPath=Պետք է նշեք ամբողջական ուղին՝ սկավառակի տառով, օրինակ՝%n%nC:\APP%n%nկամ UNC ուղի՝ %n%n\\սպասարկիչի_անունը\ռեսուրսի_անունը
+InvalidDrive=Ընտրված սկավառակը կամ ցանցային ուղին գոյություն չունեն կամ անհասանելի են։ Ընտրեք այլ ուղի։
+DiskSpaceWarningTitle=Չկա պահանջվող չափով ազատ տեղ
+DiskSpaceWarning=Պահանջվում է առնվազն %1 ԿԲ ազատ տեղ, մինչդեռ հասանելի է ընդամենը %2 ԿԲ։%n%nԱյնուհանդերձ, շարունակե՞լ։
+DirNameTooLong=Թղթապանակի անունը կամ ուղին երկար են:
 InvalidDirName=Թղթապանակի նշված անունը անընդունելի է։
-BadDirName32=Անվան մեջ չպետք է լինեն նշաններ՝ %n%n%1
+BadDirName32=Անվան մեջ չպետք է լինեն հետևյալ գրանշանները՝ %n%n%1
 DirExistsTitle=Թղթապանակը գոյություն ունի
-DirExists=Հետևյալ թղթապանակը՝ %n%n%1%n%n արդեն գոյություն ունի։ Այնուհանդերձ, տեղակայե՞լ այստեղ։
+DirExists=%n%n%1%n%n թղթապանակը արդեն գոյություն ունի։ Այնուհանդերձ, տեղադրե՞լ այստեղ։
 DirDoesntExistTitle=Թղթապանակ գոյություն չունի
-DirDoesntExist=Հետևյալ թղթապանակը՝ %n%n%1%n%n, գոյություն չունի։ Ստեղծե՞լ այն։
+DirDoesntExist=%n%n%1%n%n թղթապանակը գոյություն չունի։ Ստեղծե՞լ այն։
 
 ; *** "Select Components" wizard page
-WizardSelectComponents=Ընտրեք բաղադրիչները
-SelectComponentsDesc=Ո՞ր ֆայլերը պետք է տեղակայվեն։
-SelectComponentsLabel2=Ընտրեք այն ֆայլերը, որոնք պետք է տեղակայվեն, հանեք ընտրության նշանը այն ֆայլերից, որոնք չպետք է տեղակայվեն։ Սեղմեք «Հաջորդը»՝ շարունակելու համար։
-FullInstallation=Ամբողջական տեղակայում
+WizardSelectComponents=Ընտրել բաղադրիչներ
+SelectComponentsDesc=Ո՞ր ֆայլերը պետք է տեղադրվեն։
+SelectComponentsLabel2=Ընտրեք այն ֆայլերը, որոնք պետք է տեղադրվեն, հանեք ընտրության նշանը այն ֆայլերից, որոնք չպետք է տեղադրվեն։ Սեղմեք «Հաջորդ»՝ շարունակելու համար։
+FullInstallation=Լրիվ տեղադրում
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=Ընդհանուր տեղակայում
-CustomInstallation=Ընտրովի տեղակայում
+CompactInstallation=Սեղմված տեղադրում
+CustomInstallation=Ընտրովի տեղադրում
 NoUninstallWarningTitle=Տեղակայվող ֆայլերը
-NoUninstallWarning=Տեղակայիչ ծրագիրը հայտնաբերել է, որ հետևյալ բաղադրիչները արդեն տեղակայված են Ձեր համակարգչում։ %n%n%1%n%nԱյս բաղադրիչների ընտրության ետարկումը չի ջնջի դրանք։%n%nՇարունակե՞լ։
+NoUninstallWarning=Տեղակայիչ ծրագիրը հայտնաբերել է, որ հետևյալ բաղադրիչները արդեն տեղադրված են Ձեր համակարգչում։ %n%n%1%n%nԱյս բաղադրիչների ընտրության վերակայումը չի ջնջի դրանք։%n%nՇարունակե՞լ։
 ComponentSize1=%1 ԿԲ
 ComponentSize2=%1 ՄԲ
-ComponentsDiskSpaceMBLabel=Տվյալ ընտրությունը պահանջում է ամենաքիչը [mb] ՄԲ տեղ պնակի վրա։
+ComponentsDiskSpaceMBLabel=Տվյալ ընտրությունը պահանջում է ամենաքիչը [mb] ՄԲ տեղ սկավառակում:
 
 ; *** "Select Additional Tasks" wizard page
 WizardSelectTasks=Լրացուցիչ առաջադրանքներ
 SelectTasksDesc=Ի՞նչ լրացուցիչ առաջադրանքներ պետք է կատարվեն։
-SelectTasksLabel2=Ընտրեք լրացուցիչ առաջադրանքները, որոնք պետք է կատարվեն [name]-ի տեղակայման ընթացքում, ապա սեղմեք «Առաջ».
+SelectTasksLabel2=Ընտրեք լրացուցիչ առաջադրանքներ, որոնք պետք է կատարվեն [name]-ի տեղակայման ընթացքում, ապա սեղմեք «Հաջորդ».
 
 ; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Ընտրեք «Start» ընտրացանկի թղթապանակը
-SelectStartMenuFolderDesc=Որտե՞ղ ստեղծել պիտակներ.
-SelectStartMenuFolderLabel3=Ծրագիրը կստեղծի պիտակներ «Start» ընտրացանկի հետևյալ թղթապանակում։
-SelectStartMenuFolderBrowseLabel=Սեղմեք «Հաջորդը»՝ շարունակելու համար։ Եթե ցանկանում եք ընտրեք այլ թղթապանակ սեղմեք «Ընտրել»։
+WizardSelectProgramGroup=Ընտրել «Start» ընտրացանկի թղթապանակը
+SelectStartMenuFolderDesc=Որտե՞ղ ստեղծել դյուրանցումներ.
+SelectStartMenuFolderLabel3=Ծրագիրը կստեղծի դյուրանցումներ «Start» ընտրացանկի հետևյալ թղթապանակում։
+SelectStartMenuFolderBrowseLabel=Սեղմեք «Հաջորդ»՝ շարունակելու համար։ Եթե ցանկանում եք ընտրեք այլ թղթապանակ՝ սեղմեք «Ընտրել»։
 MustEnterGroupName=Պետք է գրեք թղթապանակի անունը։
-GroupNameTooLong=Անունը շատ է երկար։
+GroupNameTooLong=Թղթապանակի անունը կամ ուղին շատ երկար են։
 InvalidGroupName=Նշված անունը անընդունելի է։
-BadGroupName=Անվան մեջ չպետք է լինեն նշաններ՝ %n%n%1
+BadGroupName=Անվան մեջ չպետք է լինեն հետևյալ գրանշանները՝ %n%n%1
 NoProgramGroupCheck2=&Չստեղծել թղթապանակ «Start» ընտրացանկում
 
 ; *** "Ready to Install" wizard page
-WizardReady=Պատրաստ է տեղակայման
-ReadyLabel1=Տեղակայիչ ծրագիրը պատրաստ է սկսելու [name]-ի տեղակայումը։
-ReadyLabel2a=Սեղմեք «Տեղակայել»՝ շարունակելու համար կամ «Նախորդը»՝ եթե ցանկանում եք դիտել կամ փոփոխել տեղակայման ընտրանքները։
-ReadyLabel2b=Սեղմեք «Տեղակայել»՝ շարունակելու համար։
+WizardReady=Պատրաստ է տեղադրելուն
+ReadyLabel1=Տեղակայիչը պատրաստ է սկսել [name]-ի տեղադրումը։
+ReadyLabel2a=Սեղմեք «Տեղադրել»՝ շարունակելու համար կամ «Նախորդ»՝ եթե ցանկանում եք դիտել կամ փոփոխել տեղադրելու կարգավորումները։
+ReadyLabel2b=Սեղմեք «Տեղադրել»՝ շարունակելու համար։
 ReadyMemoUserInfo=Տեղեկություն օգվողի մասին.
-ReadyMemoDir=Տեղակայման թղթապանակը.
-ReadyMemoType=Տեղակայման ձևը.
-ReadyMemoComponents=Ընտրեք բաղադրիչները.
+ReadyMemoDir=Տեղադրելու թղթապանակ.
+ReadyMemoType=Տեղադրման ձև.
+ReadyMemoComponents=Ընտրել բաղադրիչներ.
 ReadyMemoGroup=Թղթապանակ «Start» ընտրացանկում.
-ReadyMemoTasks=Լրացուցիչ պիտակներ.
+ReadyMemoTasks=Լրացուցիչ առաջադրանքներ.
 
 ; *** "Preparing to Install" wizard page
-WizardPreparing=Պատրաստվում է տեղակայման
-PreparingDesc=Տեղակայման ծրագիրը պատրաստվում է [name]-ի տեղակայմանը։
-PreviousInstallNotCompleted=Նախորդ տեղակայումը կամ ջնջումը չեն ավարտվել։ Այն ավարտելու համար պետք է վերագործարկեք համակարգիչը։%n%nՎերագործարկումից հետո կրկին բացեք տեղակայման փաթեթը՝ [name]-ի տեղակայումը ավարտելու համար։
-CannotContinue=Հնարավոր չէ շարունակել։ Սեղմեք «Մերժել»՝ ծրագրիը փակելու համար։
-ApplicationsFound=Հետևյալ ծրագրերը օգտագործում են ֆայլեր, որոնք պետք է թարմացվեն տեղակայիչի կողմից։ Թույլատրեք տեղակայիչին փակելու այս ծրագրերը։
-ApplicationsFound2=Հետևյալ ծրագրերը օգտագործում են ֆայլեր, որոնք պետք է թարմացվեն տեղակայիչի կողմից։ Թույլատրեք տեղակայիչին փակելու այս ծրագրերը։ Տեղակայումը ավարտելուց հետո տեղակայիչը կփորձի վերամեկնարկել այս ծրագրերը։
-CloseApplications=&Միանգամից փակել ծրագրերը
+WizardPreparing=Նախատրաստում է տեղադրումը
+PreparingDesc=Տեղակայիչը նախպատրաստվում է տեղադրել [name]-ը ձեր համակարգչում։
+PreviousInstallNotCompleted=Այլ ծրագրի տեղադրումը կամ ջնջումը չի ավարտվել։ Այն ավարտելու համար պետք է վերագործարկեք համակարգիչը։%n%nՎերագործարկելուց հետո կրկին բացեք տեղակայման փաթեթը՝ [name]-ի տեղադրումը ավարտելու համար։
+CannotContinue=Հնարավոր չէ շարունակել։ Սեղմեք «Չեղարկել»՝ ծրագիրը փակելու համար։
+ApplicationsFound=Հետևյալ ծրագրերը օգտագործում են ֆայլեր, որոնք պետք է թարմացվեն տեղակայիչի կողմից։ Թույլատրեք տեղակայիչին ինքնաբար փակելու այդ ծրագրերը։
+ApplicationsFound2=Հետևյալ ծրագրերը օգտագործում են ֆայլեր, որոնք պետք է թարմացվեն տեղակայիչի կողմից։ Թույլատրեք տեղակայիչին ինքնաբար փակելու այդ ծրագրերը։ Տեղադրումը ավարտելուց հետո տեղակայիչը կփորձի վերագործարկել այդ ծրագրերը։
+CloseApplications=&Ինքնավար փակել ծրագրերը
 DontCloseApplications=&Չփակել ծրագրերը
-ErrorCloseApplications=Տեղակայիչը չի կարողանում փակել բոլոր ծրագրերը։ Փակեք բոլոր ֆայլերը, որոնք կարող են օգտագործել այն ֆայլերը, որոնք թարմացվելու են տեղակայիչի կողմից։
 
 ; *** "Installing" wizard page
-WizardInstalling=Տեղակայվում է...
-InstallingLabel=Խնդրում ենք սպասել մինչ [name]-ը կտեղակայվի Ձեր համակարգչում։
+WizardInstalling=Տեղադրում
+InstallingLabel=Խնդրում ենք սպասել մինչ [name]-ը կտեղադրվի Ձեր համակարգչում։
 
 ; *** "Setup Completed" wizard page
-FinishedHeadingLabel=[name]-ի տեղակայման ավարտը
-FinishedLabelNoIcons=[name] ծրագիրը տեղակայվել է Ձեր համակարգչում։
-FinishedLabel=[name] ծրագիրը տեղակայվել է Ձեր համակարգչում։
-ClickFinish=Սեղմեք «Ավարտել»՝ տեղակայիչ ծրագիրը փակելու համար։
-FinishedRestartLabel=[name]-ի տեղակայումը ավարտելու համար վերագործարկեք համակարգիչը։ Վերագործարկե՞լ։
-FinishedRestartMessage=[name]-ի տեղակայումը ավարտելու համար վերագործարկեք համակարգիչը։ %n%nՎերագործարկե՞լ։
-ShowReadmeCheck=Դիտել README ֆայլը։
+FinishedHeadingLabel=[name]-ի տեղադրման ավարտ
+FinishedLabelNoIcons=[name] ծրագիրը տեղադրվել է Ձեր համակարգչում։
+FinishedLabel=[name] ծրագիրը տեղադրվել է Ձեր համակարգչում։
+ClickFinish=Սեղմեք «Ավարտել»՝ տեղակայիչը փակելու համար։
+FinishedRestartLabel=[name]-ի տեղադրումը ավարտելու համար պետք է վերագործարկել համակարգիչը։ Վերագործարկե՞լ հիմա։
+FinishedRestartMessage=[name]-ի տեղադրումը ավարտելու համար պետք է վերագործարկել համակարգիչը։ %n%nՎերագործարկե՞լ հիմա։
+ShowReadmeCheck=Նայել README ֆայլը։
 YesRadio=&Այո, վերագործարկել
 NoRadio=&Ոչ, ես հետո վերագործարկեմ
 ; used for example as 'Run MyProg.exe'
-RunEntryExec=Բացել %1-ը
+RunEntryExec=Աշխատեցնել %1-ը
 ; used for example as 'View Readme.txt'
-RunEntryShellExec=Կարդալ %1-ը
+RunEntryShellExec=Նայել %1-ը
 
 ; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=Անհրաժեշտ է տեղադրել հաջորդ պնակը
-SelectDiskLabel2=Տեղադրեք %1 պնակը և սեղմեք «ԼԱՎ»։ %n%nԵթե ֆայլերի ճանապարհը այլ է, ընտրեք ճիշտ ճանապարհը և սեղմեք «Ընտրել»։
-PathLabel=&Ճանապարհը.
-FileNotInDir2="%1" ֆայլը չի գտնվել "%2"-ում։ Տեղադրեք պնակը կամ ընտրեք թղթապանակը։
-SelectDirectoryLabel=Խնդրում ենք նշել ճանապարհը։
+ChangeDiskTitle=Տեղակայիչը պահանջում է հաջորդ սկավառակը
+SelectDiskLabel2=Զետեղեք %1 սկավառակը և սեղմեք «ԼԱՎ»։ %n%nԵթե ֆայլերի թղթապանակը գտնվում է այլ տեղ, ապա ընտրեք ճիշտ ուղին կամ սեղմեք «Ընտրել»։
+PathLabel=&Ուղին.
+FileNotInDir2="%1" ֆայլը չի գտնվել "%2"-ում։ Զետեղեք ճիշտ սկավառակ կամ ընտրեք այլ թղթապանակ։
+SelectDirectoryLabel=Խնդրում ենք նշել հաջորդ սկավառակի տեղադրույթունը։
 
 ; *** Installation phase messages
-SetupAborted=Տեղակայումը չի ավարտվել։ %n%nԼուծեք խնդիրը և նորից փորձեք։
-EntryAbortRetryIgnore=Սեղմեք «Կրկնել»՝ նորից փորձելու համար, «Բաց թողնել»՝ ֆայլը բաց թողնելու համար, կամ «Հրաժարվել»՝ տեղակայումը կանգնեցնելու համար։
+SetupAborted=Տեղակայումը չի ավարտվել։ %n%nՈւղղեք խնդիրը և կրկին փորձեք։
+EntryAbortRetryIgnore=Սեղմեք «Կրկնել»՝ կրկին փորձելու համար, «Անտեսել»՝ ֆայլը բաց թողնելու համար, կամ «Ընդհատել»՝ տեղակայումը չեղարկելու համար։
 
 ; *** Installation status messages
-StatusClosingApplications=Ծրագրերի փակում...
-StatusCreateDirs=Ստեղծվում են թղթապանակներ...
-StatusExtractFiles=Ֆայլերը բացվում են...
-StatusCreateIcons=Ստեղծվում են թղթապանակի պիտակները...
+StatusClosingApplications=Փակում է ծրագրերը...
+StatusCreateDirs=Թղթապանակների ստեղծում...
+StatusExtractFiles=Ֆայլերի դուրս բերում...
+StatusCreateIcons=Դյուրանցումների ստեղծում...
 StatusCreateIniEntries=INI ֆայլերի ստեղծում...
 StatusCreateRegistryEntries=Գրանցատեղի գրանցումների ստեղծում...
 StatusRegisterFiles=Ֆայլերի գրանցում...
-StatusSavingUninstall=Պահպանվում է ջնջման համար տեղեկությունը...
-StatusRunProgram=Տեղակայումը ավարտվում է...
-StatusRestartingApplications=Ծրագրի վերամեկնարկում...
-StatusRollback=Փոփոխությունները ետարկվում են...
+StatusSavingUninstall=Ջնջելու տեղեկության պահում...
+StatusRunProgram=Տեղադրման ավարտ...
+StatusRestartingApplications=Ծրագրերի վերագործարկում...
+StatusRollback=Փոփոխությունների ետ բերում...
 
 ; *** Misc. errors
 ErrorInternal2=Ներքին սխալ %1
 ErrorFunctionFailedNoCode=%1. վթար
-ErrorFunctionFailed=%1. վթար, կոդը %2
-ErrorFunctionFailedWithMessage=%1. վթար, կոդը %2.%n%3
+ErrorFunctionFailed=%1. վթար, կոդը՝ %2
+ErrorFunctionFailedWithMessage=%1. վթար, կոդը՝ %2.%n%3
 ErrorExecutingProgram=Հնարավոր չէ կատարել %n%1 ֆայլը
 
 ; *** Registry errors
@@ -263,24 +262,24 @@ ErrorRegWriteKey=Գրանցատեղի բանալում գրանցում անել
 ErrorIniEntry=Սխալ՝ "%1" INI ֆայլում գրառում կատարելիս։
 
 ; *** File copying errors
-FileAbortRetryIgnore=Սեղմեք «Կրկնել»՝ կրկնելու համար, «Բաց թողնել»՝ ֆայլը բաց թողնելու համար (խորհուրդ չի տրվում) կամ «Հրաժարվել»՝ փակելու համար։
-FileAbortRetryIgnore2=Սեղմեք «Կրկնել»՝ կրկնելու համար, «Բաց թողնել»՝ սխալը անտեսելու համար (խորհուրդ չի տրվում) կամ «Հրաժարվել»՝ փակելու համար։
-SourceIsCorrupted=Գործող ֆայլը վնասված է։
-SourceDoesntExist=Գործող "%1" ֆայլը գոյություն չունի
-ExistingFileReadOnly=Գոյություն ունեցող ֆայլը նշված է «միայն կարդալու համար»։%n%nՍեղմեք «Կրկնել»՝ ջնջելու համար «միայն կարդալու համար» հատկանիշը, «Բաց թողնել»՝ ֆայլը բաց թողնելու համար «Հրաժարվել»՝ փակելու համար։
+FileAbortRetryIgnore=Սեղմեք «Կրկնել»՝ կրկնելու համար, «Անտեսել»՝ ֆայլը բաց թողնելու համար (խորհուրդ չի տրվում) կամ «Ընդհատել»՝ փակելու համար։
+FileAbortRetryIgnore2=Սեղմեք «Կրկնել»՝ կրկնելու համար, «Անտեսել»՝ շաունակելու համար (խորհուրդ չի տրվում) կամ «Ընդհատել»՝ փակելու համար։
+SourceIsCorrupted=Նախնական ֆայլը վնասված է։
+SourceDoesntExist=Նախնական "%1" ֆայլը գոյություն չունի
+ExistingFileReadOnly=Գոյություն ունեցող ֆայլը նշված է միայն կարդալու համար է:%n%nՍեղմեք «Կրկնել»՝ ջնջելու համար միայն կարդալու համար հատկանիշը, «Անտեսել»՝ ֆայլը բաց թողնելու համար «Ընդհատել»՝ փակելու համար։
 ErrorReadingExistingDest=Սխալ՝ ֆայլը կարդալիս.
 FileExists=Ֆայլը գոյություն չունի։%n%nՎերագրե՞լ։
-ExistingFileNewer=Առկա ֆայլը ավելի նոր է, քան տեղակայվողը։ Խորհուրդ ենք տալիս պահպանել գործողը։ %n%nՊահպանե՞լ գործող ֆայլը։
+ExistingFileNewer=Առկա ֆայլը ավելի նոր է, քան տեղադրվողը։ Խորհուրդ ենք տալիս պահել առկա ֆայլը։ %n%nՊահե՞լ առկա ֆայլը։
 ErrorChangingAttr=Սխալ՝ ընթացիկ ֆայլի հատկանիշները փոխելիս.
 ErrorCreatingTemp=Սխալ՝ նշված թղթապանակում ֆայլ ստեղծելիս.
-ErrorReadingSource=Սխալ ֆայլը կարդալիս.
-ErrorCopying=Սխալ ֆայլը պատճենելիս.
-ErrorReplacingExistingFile=Սխալ՝ գոյություն ունեցող ֆայլը փոխելիս.
-ErrorRestartReplace=RestartReplace սխալ.
-ErrorRenamingTemp=Սխալ նշանակման թղթապանակում՝ ֆայլը անվանափոխելիս.
+ErrorReadingSource=Սխալ՝ ֆայլը կարդալիս.
+ErrorCopying=Սխալ՝ ֆայլը պատճենելիս.
+ErrorReplacingExistingFile=Սխալ՝ գոյություն ունեցող ֆայլը փոխարինելիս.
+ErrorRestartReplace=RestartReplace ձախողում.
+ErrorRenamingTemp=Սխալ՝ նպատակակետ թղթապանակում՝ ֆայլը վերանվանելիս.
 ErrorRegisterServer=Հնարավոր չէ գրանցել DLL/OCX-ը. %1
-ErrorRegSvr32Failed=Սխալ՝ RegSvr32-ը կատարելիս, կոդը՝ %1
-ErrorRegisterTypeLib=Հնարավոր չէ գրանցել գրադարանները (Type Library)՝ %1
+ErrorRegSvr32Failed=RegSvr32-ի ձախողում, կոդ՝ %1
+ErrorRegisterTypeLib=Հնարավոր չէ գրանցել շտեմարանները՝ %1
 
 ; *** Post-installation errors
 ErrorOpeningReadme=Սխալ՝ README ֆայլը բացելիս։
@@ -288,14 +287,14 @@ ErrorRestartingComputer=Հնարավոր չեղավ վերագործարկել 
 
 ; *** Uninstaller messages
 UninstallNotFound="%1" ֆայլը գոյություն չունի։ Հնարավոր չէ ջնջել։
-UninstallOpenError=Հնարավոր չէ բացել "%1" ֆայլը։ Հնարավոր չէ ջնջել
-UninstallUnsupportedVer="%1"-ի ջնջման գրառումները չեն ճանաչվել ջնջող ծրագրի կողմից։ Հնարավոր չէ ջնջել
-UninstallUnknownEntry=Անհայտ կետ(%1)՝ ջնջման ֆայլի գրառումներում
+UninstallOpenError="%1" ֆայլը հնարավոր չէ բացել: Հնարավոր չէ ջնջել
+UninstallUnsupportedVer="%1"-ը ջնջելու մատյանի ֆայլը անճանաչելի է ջնջող ծրագրի այս տարբերակի համար։ Հնարավոր չէ ջնջել
+UninstallUnknownEntry=Անհայտ գրառում է (%1)՝ հայնաբերվել ջնջելու մատյանում
 ConfirmUninstall=Ջնջե՞լ %1-ը և նրա բոլոր բաղադրիչները։
-UninstallOnlyOnWin64=Այս ծրագիրը կարելի է ջնջել միայն 64 բիթանոց Windows-ում։
-OnlyAdminCanUninstall=Այս ծրագիրը կարող է ջնջվել միայն Ադմինի իրավունքներով։
-UninstallStatusLabel=Խնդրում ենք սպասել մինչ %1-ը ջնջվում է Ձեր համակարգչից։
-UninstalledAll=%1 ծրագիրը ամբողջությամբ ջնջվել է համակարգչից։
+UninstallOnlyOnWin64=Հնարավոր է ջնջել միայն 64 բիթանոց Windows-ում։
+OnlyAdminCanUninstall=Հնարավոր է ջնջվել միայն Ադմինի իրավունքներով։
+UninstallStatusLabel=Խնդրում ենք սպասել, մինչև %1-ը ջնջվում է Ձեր համակարգչից։
+UninstalledAll=%1 ծրագիրը ջնջվել է համակարգչից։
 UninstalledMost=%1-ը ջնջվեց Ձեր համակարգչից։%n%nՈրոշ ֆայլեր հնարավոր չեղավ ջնջել։ Ինքներդ ջնջեք դրանք։
 UninstalledAndNeedsRestart=%1-ի ջնջումը ավարտելու համար պետք է վերագործարկել համակարգիչը։%n%nՎերագործարկե՞լ։
 UninstallDataCorrupted="%1" ֆայլը վնասված է։ Հնարավոր չէ ջնջել
@@ -303,13 +302,13 @@ UninstallDataCorrupted="%1" ֆայլը վնասված է։ Հնարավոր չէ
 ; *** Uninstallation phase messages
 ConfirmDeleteSharedFileTitle=Ջնջե՞լ համատեղ օգտագործվող ֆայլը։
 ConfirmDeleteSharedFile2=Համակարգը նշում է, որ  հետևյալ համատեղ օգտագործվող ֆայլը այլևս չի օգտագործվում այլ ծրագրի կողմից։ Ջնջե՞լ այն։ %n%nԵթե համոզված չեք սեղմեք «Ոչ»։
-SharedFileNameLabel=Ֆայլի անունը.
-SharedFileLocationLabel=Տեղը.
-WizardUninstalling=Ջնջման դրությունը
+SharedFileNameLabel=Ֆայլի անուն.
+SharedFileLocationLabel=Տեղադրություն.
+WizardUninstalling=Ջնջելու վիճակ
 StatusUninstalling=%1-ի ջնջում...
 
 ; *** Shutdown block reasons
-ShutdownBlockReasonInstallingApp=%1-ի տեղակայում։
+ShutdownBlockReasonInstallingApp=%1-ի տեղադրում։
 ShutdownBlockReasonUninstallingApp=%1-ի ջնջում։
 
 ; The custom messages below aren't used by Setup itself, but if you make
@@ -317,16 +316,16 @@ ShutdownBlockReasonUninstallingApp=%1-ի ջնջում։
 
 [CustomMessages]
 
-NameAndVersion=%1, տարբերակը %2
-AdditionalIcons=Լրացուցիչ պիտակներ
-CreateDesktopIcon=Ստեղծել պիտակը &Աշխատաշրջանում
-CreateQuickLaunchIcon=Ստեղծել պիտակը &Արագ բացման վահանակում
+NameAndVersion=%1 տարբերակ՝ %2
+AdditionalIcons=Լրացուցիչ դյուրանցումներ
+CreateDesktopIcon=Ստեղծել դյուրանցումը &Աշխատասեղանին
+CreateQuickLaunchIcon=Ստեղծել դյուրանցումը &Արագ թողարկման գոտում
 ProgramOnTheWeb=%1-ի վեբ կայքը
 UninstallProgram=Ջնջել %1-ը
 LaunchProgram=Բացել %1-ը
 AssocFileExtension=Ասո&ցիացնել %1-ը %2 ֆայլերի հետ։
-AssocingFileExtension=Ասոցիացվում են %1-երը %2 ֆայլերի հետ...
-AutoStartProgramGroupDescription=Բացումը.
-AutoStartProgram=Միանգամից բացել %1
+AssocingFileExtension=%1-ը ասոցիացվում է ֆայլերի %2 ընդլայնումների հետ...
+AutoStartProgramGroupDescription=Ինքնամեկնարկ.
+AutoStartProgram=Ինքնաբար մեկնարկել %1-ը
 AddonHostProgramNotFound=%1 չի կարող տեղադրվել Ձեր ընտրած թղթապանակում։%n%nՇարունակե՞լ։
 

+ 6 - 6
Files/Languages/Unofficial/Bengali.islu

@@ -1,5 +1,5 @@
-; *** Inno Setup version 5.5.3+ Bangla messages ***
-;; Translated by Mehedi Shanto [ [email protected] ]
+; *** Inno Setup version 5.5.3+ Bengali messages ***
+; Translated by Mehedi Shanto [ [email protected] ]
 ; To download user-contributed translations of this file, go to:
 ;   http://www.jrsoftware.org/files/istrans/
 ;
@@ -74,7 +74,7 @@ AboutSetupMenuItem=সেটআপ বিষয়ক...(&A)
 AboutSetupTitle=সেটআপ বিষয়ক
 AboutSetupMessage=%1এর সংস্করণ %2%n%3%n%n%1 হোম পেইজ:%n%4
 AboutSetupNote=
-TranslatorNote=বাংলা অনুবাদ সম্পাদিত করেছে মেহেদী শান্ত
+TranslatorNote=বাংলা অনুবাদটি সম্পাদনা করেছে মেহেদী শান্ত
 
 ; *** Buttons
 ButtonBack=< পূর্ববর্তী(&B)
@@ -149,7 +149,7 @@ InvalidDrive=আপনি যে ড্রাইভ বা UNC shareটি ন
 DiskSpaceWarningTitle=নির্ধারিত ড্রাইভে পর্যাপ্ত জায়গা নেই
 DiskSpaceWarning=ইনস্টল করতে সেটআপের কমপক্ষে %1 KB খালি জায়গা থাকতে হবে, কিন্তু নির্ধারিত ড্রাইভে রয়েছে মাত্র %2 KB।%n%nআপনি কি যাই হোক প্রক্রিয়াটি চলমান রাখতে চান?
 DirNameTooLong=নির্ধারিত ফোল্ডারটির নাম অথবা অবস্থান অত্যন্ত দীর্ঘ।
-InvalidDirName=নির্ধারিত ফোল্ডারের নামটি সঠিক নয়
+InvalidDirName=নির্ধারিত ফোল্ডারের নামটি অগ্রহণযোগ্য
 BadDirName32=ফোল্ডারের নামে নিম্নোক্ত ক্যারেক্টারসমূহ ব্যবহার করা যাবে না:%n%n%1
 DirExistsTitle=ফোল্ডারটি বিদ্যমান রয়েছে
 DirExists=নিম্নোক্ত ফোল্ডার:%n%n%1%n%nইতিমধ্যে বিদ্যমান রয়েছে। আপনি কি যাই হোক এই ফোল্ডারটিতেই ইনস্টল করতে চান?
@@ -163,7 +163,7 @@ SelectComponentsLabel2=যে সকল উপাদানসমূহ আপন
 FullInstallation=সম্পূর্ণ ইনস্টল প্রক্রিয়া
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
 CompactInstallation=ঘনবিন্যস্ত ইনস্টল প্রক্রিয়া
-CustomInstallation=নির্ধারণযোগ্য ইনস্টল প্রক্রিয়া
+CustomInstallation=ব্যক্তি-নির্ধারিত ইনস্টল প্রক্রিয়া
 NoUninstallWarningTitle=উপাদানসমূহ বিদ্যমান রয়েছে
 NoUninstallWarning=সেটআপ সনাক্ত করেছে যে নিম্নোক্ত উপাদানসমূহ ইতিমধ্যে আপনার কম্পিউটারে ইনস্টল করা রয়েছে:%n%n%1%n%nএই উপাদানসমূহ অনির্ধারণ করে দিলে তা আনইনস্টল হবে না।%n%nআপনি কি যাই হোক প্রক্রিয়াটি চলমান রাখতে চান?
 ComponentSize1=%1 KB
@@ -182,7 +182,7 @@ SelectStartMenuFolderLabel3=সেটআপ প্রোগ্রামটির
 SelectStartMenuFolderBrowseLabel=প্রক্রিয়াটি চলমান রাখতে, "পরবর্তী" ক্লিক করুন। ভিন্ন ফোল্ডার নির্ধারণ করতে চাইলে "ব্রাউজ করি" ক্লিক করুন।
 MustEnterGroupName=আপনাকে অবশ্যই একটি ফোল্ডারের নাম প্রবেশ করতে হবে।
 GroupNameTooLong=নির্ধারিত ফোল্ডারটির নাম অথবা অবস্থান অত্যন্ত দীর্ঘ।
-InvalidGroupName=নির্ধারিত ফোল্ডারের নামটি সঠিক নয়
+InvalidGroupName=নির্ধারিত ফোল্ডারের নামটি অগ্রহণযোগ্য
 BadGroupName=ফোল্ডারের নামে নিম্নোক্ত ক্যারেক্টারসমূহ ব্যবহার করা যাবে না:%n%n%1
 NoProgramGroupCheck2=স্টার্ট মেন্যুতে ফোল্ডার তৈরি করা হবে না(&D)
 

+ 237 - 207
Files/Languages/Unofficial/Esperanto.isl

@@ -1,7 +1,16 @@
-; *** Inno Setup version 5.1.11+ Esperanto messages ***
-; Language: Esperanto
-; Name: Hans Engel
-; Email: [email protected]
+; *** Inno Setup version 5.5.3+ Esperanto messages ***
+;       
+;       Author: Alexander Gritchin   (E-mail - [email protected])
+;
+;       Au`toro: Alexander Gritc`in  (E-mail - [email protected])
+;       Versio del traduko -  15.06.08
+; 
+;  
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
 
 [LangOptions]
 ; The following three entries are very important. Be sure to read and 
@@ -20,293 +29,314 @@ LanguageCodePage=0
 ;CopyrightFontName=Arial
 ;CopyrightFontSize=8
 
+  
+
 [Messages]
 
 ; *** Application titles
-SetupAppTitle=Instalajxo
-SetupWindowTitle=Instalajxo - %1
-UninstallAppTitle=Malinstalajxo
-UninstallAppFullTitle=%1 Malinstalajxo
+SetupAppTitle=Instalado
+SetupWindowTitle=Instalado de - %1
+UninstallAppTitle=Forigado
+UninstallAppFullTitle=Forigado de %1 
 
 ; *** Misc. common
-InformationTitle=Informajxo
-ConfirmTitle=Konfirmas
+InformationTitle=Informacio
+ConfirmTitle=Konfirmado
 ErrorTitle=Eraro
 
 ; *** SetupLdr messages
-SetupLdrStartupMessage=Tiu instalos %1. Volas al kontinuigi?
-LdrCannotCreateTemp=Malpovas al kreas malpermanenta dosiero. Instalajxo cxesigis.
-LdrCannotExecTemp=Malpovas al iniciatas dosiero en la malpermanenta dosierujo. Instalajxo cxesigis.
+SetupLdrStartupMessage=Nun estos instalado de %1. C`u vi volas kontinui?
+LdrCannotCreateTemp=Nepoveble estas krei tempan dosieron. La Majstro estas s`topita
+LdrCannotExecTemp=Nepoveble estas plenumi la dosieron en tempa dosierujo. La Majstro estas s`topita
 
 ; *** Startup error messages
 LastErrorMessage=%1.%n%nEraro %2: %3
-SetupFileMissing=La dosiero %1 malaperinta de la instalajxo dosierujo. Bonvolu korektas la problemo aux akiras nova kopiajxo de la programo.
-SetupFileCorrupt=La instalaxjo-dosieroj estas korupta. Bonvolu akiras nova kopiajxo de la programo.
-SetupFileCorruptOrWrongVer=La instalaxjo-dosieroj estas korupta, aux estas malakorda kun tiu versio de Instaligxis. Bonvolu korektas la problemo aux akiras nova kopiajxo de la programo.
-NotOnThisPlatform=Tiu programo malfunkcios en %1.
-OnlyOnThisPlatform=Tiu programo devi iniciatigxas en %1.
-OnlyOnTheseArchitectures=Tiu programo nurpovas instaligxis en versioj de Vindozo desegnis por la sekvonta arkitekturoj:%n%n%1
-MissingWOW64APIs=La versio de Vindozo vi estas funkciadas malinkluzivas funkciado devigis de Instalo al faras 64-bito instalajxo. Al korektas tiu problemo, bonvolu instalas Servicopako %1.
-WinVersionTooLowError=Tiu programo bezonas %1 versio %2 aux pli malfrua.
-WinVersionTooHighError=Tiu programo malpovas instaligxis de %1 versio %2 aux pli malfrua.
-AdminPrivilegesRequired=Vi devi ensaluta kiel administranto dum instaligxantas tiu programo.
-PowerUserPrivilegesRequired=Vi devi ensaluta kiel administranto aux kiel membro de la Power Users grupo dum instaligxantas tiu programo.
-SetupAppRunningError=Instalajxo detektis ke %1 esta aktuale eksekuciantas.%n%nBonvolu fermas cxia okazoj de gxi nun, do klakas OK al kontinuigas, aux Cancel al eliras.
-UninstallAppRunningError=Malinstalajxo detektis ke %1 esta aktuale eksekuciantas.%n%nBonvolu fermas cxia okazoj de gxi nun, do klakas OK al kontinuigas, aux Cancel al eliras.
+SetupFileMissing=La dosiero %1 estas preterpasita el instala dosierujo.Bonvolu korekti problemon au` ricevu novan kopion de programo.
+SetupFileCorrupt=Instalaj dosieroj estas kriplitaj. Bonvolu ricevu novan kopion de programo.
+SetupFileCorruptOrWrongVer=Instalaj dosieroj estas kriplitaj, au` ne komparablaj kun tia versio del Majstro. Bonvolu korekti problemon au` ricevu novan kopion de programo.
+InvalidParameter=Malg`usta parametro estis en komandlinio:%n%n%1
+SetupAlreadyRunning=La Majstro jam funkcias.
+WindowsVersionNotSupported=C`i tia programo ne povas subteni la version de Vindoso en via komputilo.
+WindowsServicePackRequired=Por c`i tia programo bezonas %1 Service Pack %2 au` pli olda.
+NotOnThisPlatform=C`i tia programo ne funkcios en %1.
+OnlyOnThisPlatform=C`i tia programo devas funkcii en %1.
+OnlyOnTheseArchitectures=C`i tia programo nur povas esti instalita en version de Vindoso por sekvaj procesoraj arkitekturoj:%n%n%1
+MissingWOW64APIs=La versio de Vindoso kian vi lanc`is, ne havas posedon bezonatan por ke Majstro plenumis 64-bit instaladon. Por korekti tian problemon bonvolu instali Service Pack %1.
+WinVersionTooLowError=Por c`i tia programo bezonas %1 version %2 au` pli olda.
+WinVersionTooHighError=C`i tia programo ne povas esti instalita en %1 versio %2 au` pli olda.
+AdminPrivilegesRequired=Vi devas eniri kiel administranto kiam instalas c`i tian programon.
+PowerUserPrivilegesRequired=Vi devas eniri kiel administranto au` kiel membro de grupo de Posedaj Uzantoj kiam instalas c`i tia programo.
+SetupAppRunningError=La Majstro difinis ke %1 nun funkcias.%n%nBonvolu s`topi g`in, kaj poste kliku Jes por kontinui, au` S`topi por eliri.
+UninstallAppRunningError=Forigados difinis ke %1 nun funkcias.%n%nBonvolu s`topi g`in, kaj poste kliku Jes por kontinui, au` S`topi por eliri.
 
 ; *** Misc. errors
-ErrorCreatingDir=Instalajxo estis malpovas al kreas la dosierujo "%1"
-ErrorTooManyFilesInDir=Malpovas al kreas dosiero en la doserujo "%1" cxar gxi enhavas pli multaj dosieroj
+ErrorCreatingDir=La Majstro ne povas krei dosierujon "%1"
+ErrorTooManyFilesInDir=Estas nepoveble krei dosieron en dosierujo "%1" pro tio ke g`i havas tro multe da dosierojn
 
 ; *** Setup common messages
-ExitSetupTitle=Eliras Instalajxo
-ExitSetupMessage=Instalajxo estas malcompleta. Cxi vi eliras kun, la programo malestos instalis.%n%nVi havas permeson al iniciatas Instalajxo ankorauxfoje al alia fojo al kompletigas la instalajxo.%n%nExit Setup?
-AboutSetupMenuItem=&Informado...
-AboutSetupTitle=Instalajxo Informado
-AboutSetupMessage=%1 versio %2%n%3%n%n%1 pagxaro:%n%4
+ExitSetupTitle=S`topo Majstron 
+ExitSetupMessage=La instalado ne estas plena. Se vi eliros nun, la programo ne estos instalita.%n%nPor vi bezonas s`alti Majstron denove en alia tempo por plenumi instaladon.%n%nC`u fini la Majstron?
+AboutSetupMenuItem=&Pri instalo...
+AboutSetupTitle=Pri instalo
+AboutSetupMessage=%1 version %2%n%3%n%n%1 hejma pag`o:%n%4
 AboutSetupNote=
-TranslatorNote=Tradukis de [email protected].
+TranslatorNote=
 
 ; *** Buttons
-ButtonBack=< &Malprogresas
-ButtonNext=&Progresas >
-ButtonInstall=&Instalas
-ButtonOK=OK
-ButtonCancel=Malmendas
+ButtonBack=< &Reen
+ButtonNext=&Antau`en >
+ButtonInstall=&Instali
+ButtonOK=Jes
+ButtonCancel=S`topi
 ButtonYes=&Jes
-ButtonYesToAll=Jes al &Cxia
+ButtonYesToAll=Jes por &c`iaj
 ButtonNo=&Ne
-ButtonNoToAll=N&e al Cxia
-ButtonFinish=&Elfinas
-ButtonBrowse=&Pagxumi...
-ButtonWizardBrowse=P&agxumi...
-ButtonNewFolder=&Faras Nova Dosierujo
+ButtonNoToAll=Ne por c`iaj
+ButtonFinish=&Fino
+ButtonBrowse=&Elekto...
+ButtonWizardBrowse=Elekto...
+ButtonNewFolder=&Fari la novan dosierujon
 
 ; *** "Select Language" dialog messages
-SelectLanguageTitle=Elektas Instalajxo Lingvo
-SelectLanguageLabel=Elekti la lingvo al uzas dum la instalajxo:
+SelectLanguageTitle=Elektu la lingvon
+SelectLanguageLabel=Elektu la lingvon por uzo dum instalado:
 
 ; *** Common wizard text
-ClickNext=Klakas Progresas al kontinuas, aux Malmendas al eliras Instalajxo.
+ClickNext=Kliku Antau`en por kontinui, au` S`topi por eliri Instaladon.
 BeveledLabel=
-BrowseDialogTitle=Pagxumi Por Dosierujo
-BrowseDialogLabel=Elekti dosierujo en la listo sub, do klakas OK.
-NewFolderName=Nova Dosierujo
+BrowseDialogTitle=Elekto de dosierujo
+BrowseDialogLabel=Elektu la dosierujon en listo malalte, kaj kliku Jes.
+NewFolderName=Nova dosierujo
 
 ; *** "Welcome" wizard page
-WelcomeLabel1=Bonveno al la [name] Instalajxo
-WelcomeLabel2=Tiu instalos [name/ver] en via komputilo.%n%nEstas rekomendita ke vi fermas cxia alia fenestroj antaux kontinuantas.
+WelcomeLabel1=Bonvenon al Majstro de instalado de [name] 
+WelcomeLabel2=Nun komencos instalado de [name/ver] en via komputilo.%n%nEstas rekomendite ke vi s`topu c`iajn viajn programojn antau` komenco.
 
 ; *** "Password" wizard page
 WizardPassword=Pasvorto
-PasswordLabel1=Tiu instalajxo estas protektis per pasvorto.
-PasswordLabel3=Bonvolu tajpas la pasvorto, do klakas Progresas al kontinuas. Pasvortoj estas sentema al kazo.
+PasswordLabel1=C`i tia instalado postulas pasvorton.
+PasswordLabel3=Bonvolu tajpi pasvorton kaj poste kliku Antau`en por kontinui. La pasvortoj estas tajp sentemaj.
 PasswordEditLabel=&Pasvorto:
-IncorrectPassword=La pasvorto vi tajpis estas nekorekte. Bonvolu provu denove.
+IncorrectPassword=La pasvorto, kian vi tajpis estas malg`usta. Bonvolu provi denove.
 
 ; *** "License Agreement" wizard page
-WizardLicense=Licenco de Interkonsento
-LicenseLabel=Bonvolu legas la sekvonta grava informado antaux kontinuantas.
-LicenseLabel3=Bonvolu legas la sekvanto Licenco de Interkonsento. Vi devi akceptas la kondicxoj de tio interkonsento antaux kontinuantas kun la instalajxo.
-LicenseAccepted=Mi &akceptas la interkonsento
-LicenseNotAccepted=Mi &malakceptas la interkonsento
+WizardLicense=Licenza konvenio
+LicenseLabel=Bonvolu legi sekvan gravan informacion antau` komenci.
+LicenseLabel3=Bonvolu legi sekvan Licenzan Konvenion. Vi devas akcepti dotaj`oj de tia konvenio antau` ke kontinui instaladon.
+LicenseAccepted=Mi akceptas konvenion
+LicenseNotAccepted=Mi ne akceptas konvenion
 
 ; *** "Information" wizard pages
-WizardInfoBefore=Informado
-InfoBeforeLabel=Bonvolu legas la sekvonta grava informado antaux kontinuantas.
-InfoBeforeClickLabel=Kiam vi estas servopreta al kontinuas kun Instalajxo, klakas Progresa.
-WizardInfoAfter=Informado
-InfoAfterLabel=Bonvolu legas la sekvonta grava informado antaux kontinuantas.
-InfoAfterClickLabel=Kiam vi estas servopreta al kontinuas kun Instalajxo, klakas Progresa.
+WizardInfoBefore=Informacio
+InfoBeforeLabel=Bonvolu legi sekvan gravan informacion antau` komenci.
+InfoBeforeClickLabel=Kiam vi estas preta por kontinui per instalo, kliku Antau`en.
+WizardInfoAfter=Informacio
+InfoAfterLabel=Bonvolu legi sekvan gravan informacion antau` komenci.
+InfoAfterClickLabel=Kiam vi estas preta por kontinui per instalo, kliku Antau`en.
 
 ; *** "User Information" wizard page
-WizardUserInfo=Uzanto Informado
-UserInfoDesc=Bonvolu tajpas via informado.
-UserInfoName=&Uzanto Nomo:
+WizardUserInfo= Informacio pri uzanto
+UserInfoDesc=Bonvolu skribi vian informacion.
+UserInfoName=Nomo de uzanto:
 UserInfoOrg=&Organizacio:
-UserInfoSerial=&Sekreta Numero:
-UserInfoNameRequired=Vi devi tajpas nomo.
+UserInfoSerial=&Seria Numero:
+UserInfoNameRequired=Vi devas skribi nomon de uzanto.
 
 ; *** "Select Destination Location" wizard page
-WizardSelectDir=Elektas Deziris Loko
-SelectDirDesc=Kie [name] instalas?
-SelectDirLabel3=Instalajxo instalos [name] en la sekvanto dosierujo.
-SelectDirBrowseLabel=Al kontinuas, klakas Progresa. Cxu vi volas al elekti alia dosierujo, klakas Pagxumi.
-DiskSpaceMBLabel=Al la minimumo [mb] MB de maluzis spaco estas bezonis.
-ToUNCPathname=Instalajxo malpovas instalas al UNC dosiernomo. Cxu vi provantas al instalas al masxaro, vi bezonos al mapas masxardisko.
-InvalidPath=Vi devi tajpas kompleta vojo kun disknomo; ekzemple:%n%nC:\APP%n%naux UNC vojo en la demandilo:%n%n\\server\share
-InvalidDrive=La disko aux UNC akcio vi elektis malekzistas aux ne esta alirebla. Bonvolu elektas alia.
-DiskSpaceWarningTitle=Malsuficxa Disko Spaco
-DiskSpaceWarning=Instalajxo bezonas al minimumo %1 KB de maluzis spaco al instalas, sed la elektis disko havas nur %2 KB.%n%nVolas vi al kontinui malgraux tio?
-DirNameTooLong=La dosierujo-nomo estas tro longa.
-InvalidDirName=La dosierujo-nomo ne esta valida.
-BadDirName32=Dosierujo-nomoj malpovas incluzivas ajna de la sekvanto signojn:%n%n%1
-DirExistsTitle=Dosierujo Ekzistas
-DirExists=La dosierujo:%n%n%1%n%njam ekzistas. Volas vi al instalas al tiu dosierujo malgraux tio?
-DirDoesntExistTitle=Dosierujo Malekzistas
-DirDoesntExist=La dosierujo:%n%n%1%n%nmalekzistas. Volas vi la dosierujo kreigxas?
+WizardSelectDir=Elektu Destinan Locon
+SelectDirDesc=Kie devos [name] esti instalita?
+SelectDirLabel3=La Majstro instalos [name] en sekvan dosierujon.
+SelectDirBrowseLabel=Por kontinui, kliku Antau`en. Se vi volas elekti diversan dosierujon, kliku Elekto.
+DiskSpaceMBLabel=Almenau`  [mb] MB de neta diska spaco bezonas.
+CannotInstallToNetworkDrive=Majstro ne povas instali lokan diskon.
+CannotInstallToUNCPath=Majstro ne povas instali lau`  UNC vojo.
+InvalidPath=Vi devas skribi plenan vojon de diska litero; por ekzamplo:%n%nC:\APP%n%sed ne UNC vojo lau` formo:%n%n\\server\share
+InvalidDrive=Disko au` UNC kian vi elektis ne ekzistas au` ne estas difinita. Bonvolu elekti denove.
+DiskSpaceWarningTitle=Mankas Diskan Spacon
+DiskSpaceWarning=Por instalo bezonas almenau` %1 KB de neta spaco por instalado, sed electita disko havas nur %2 KB.%n%nC`u vi volas kontinui per c`iokaze?
+DirNameTooLong=La nomo de dosierujo au` vojo estas tro longa.
+InvalidDirName=La nomo de dosierujo estas malg`usta.
+BadDirName32=La nomoj de dosierujoj ne povas havi de sekvaj karakteroj:%n%n%1
+DirExistsTitle=Dosierujo ekzistas
+DirExists=La dosierujo:%n%n%1%n%njam ekzistas. C`u vi volas instali en g`i c`iokaze?
+DirDoesntExistTitle=La dosierujo ne ekzistas
+DirDoesntExist=La dosierujo:%n%n%1%n%nne ekzistas. C`u vi volas por ke tia dosierujo estos farita?
 
 ; *** "Select Components" wizard page
-WizardSelectComponents=Elektas Komponantoj
-SelectComponentsDesc=Kio komponantoj instaligxas?
-SelectComponentsLabel2=Elektas la komponantoj vi volas al instala; malelektas la komponantoj vi malvolas al instala. Klakas Progresa kiam vi esta servopreta al kontinui.
-FullInstallation=Kompleta instalajxo
+WizardSelectComponents=Elektu komponentoj
+SelectComponentsDesc=Kiaj komponentoj devas esti instalitaj?
+SelectComponentsLabel2=Elektu komponentoj kiaj vi volas instali; forigu la komponentojn kiaj vi ne volas instali. Kliku Antau`en kiam vi estas preta por kontinui.
+FullInstallation=Tuta instalado
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=Kompakta instalajxo
-CustomInstallation=Speciala instalajxo
-NoUninstallWarningTitle=Komponantoj Ekzistas
-NoUninstallWarning=Instalajxo detektis ke la sekvanto komponantoj estas jam instalis en via komputilo:%n%n%1%n%nMalelektantas la komponantoj ne malinstalas ili.%n%nVolas vi al kontinui malgraux tio?
+CompactInstallation=Kompakta instalado
+CustomInstallation=Kutima instalado
+NoUninstallWarningTitle=Komponentoj ekzistas
+NoUninstallWarning=La Majstro difinis ke sekvaj komponentoj jam estas instalitaj en via komputilo:%n%n%1%n%nNuligo de elekto de tiaj komponentoj ne forigos g`in.%n%nC`u vi volas kontinui c`iokaze?
 ComponentSize1=%1 KB
 ComponentSize2=%1 MB
-ComponentsDiskSpaceMBLabel=Nuna selektado bezonas al minimumo [mb] MB de diskspaco.
+ComponentsDiskSpaceMBLabel=Nuna elekto bezonas almenau` [mb] MB de diska spaco.
 
 ; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=Selektas Aldona Taskoj
-SelectTasksDesc=Kio aldona taskoj funkciis?
-SelectTasksLabel2=Selektas aldona taskoj vi volas Instalajxo al funkcias dum instalantas [name], do klakas Progresa.
+WizardSelectTasks=Elektu aldonaj taskoj
+SelectTasksDesc=Kiaj aldonaj taskoj devos esti montrotaj?
+SelectTasksLabel2=Elektu aldonaj taskoj kiaj bezonas por ke Majstro montros dum instalado [name], kaj poste kliku Antau`en.
 
 ; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Selektas Iniciato-menuo Dosierujo
-SelectStartMenuFolderDesc=Kie lokas Instalajxo irmallongigo de l'programo?
-SelectStartMenuFolderLabel3=Instalajxo kreis irmallongigo de l'program's en la sekvanto Iniciato-menuo dosierujo.
-SelectStartMenuFolderBrowseLabel=Al kontinuas, klakas Progresa. Cxu vi volas al elekti alia dosierujo, klakas.
-MustEnterGroupName=Vi devi tajpas dosierujnomo.
-GroupNameTooLong=La dosierujo-nomo estas tro longa.
-InvalidGroupName=La dosierujo-nomo ne esta valida.
-BadGroupName=L'dosierujnomo malpovas inkluzivas ajna de l'sekvanto signoj:%n%n%1
-NoProgramGroupCheck2=&Malfaras kreas Iniciato-menuo dosierujo
+WizardSelectProgramGroup=Elektu dosierujon de starta menuo
+SelectStartMenuFolderDesc=Kie Majstro devas krei tujklavon de programo?
+SelectStartMenuFolderLabel3=La Majstro kreos tujklavojn de programo en sekva dosierujo de starta menuo.
+SelectStartMenuFolderBrowseLabel=Por kontinui, kliku Antau`en. Se vi volas elekti alian dosierujon, kliku Elekto.
+MustEnterGroupName=Vi devas skribi  la nomo de dosierujo.
+GroupNameTooLong=La nomo de dosierujo au` vojo estas tro longa.
+InvalidGroupName=La nomo de dosierujo estas malg`usta.
+BadGroupName=La nomoj de dosierujoj ne povas havi de sekvaj karakteroj:%n%n%1
+NoProgramGroupCheck2=Ne krei dosierujon de starta menuo
 
 ; *** "Ready to Install" wizard page
-WizardReady=Servopreta al Instalas
-ReadyLabel1=Instalajxo estas nun servopreta al komencas instalantas [name] en via komputilo.
-ReadyLabel2a=Klakas Instalas al kontinuas kun l'instalajxo, aux klakas Malprogresa cxu vi volas al inspektas aux sxangxas ajna preferoj.
-ReadyLabel2b=Klakas Instalas al kontinuas kun l'instalajxo.
-ReadyMemoUserInfo=Uzanto informado:
-ReadyMemoDir=Deziris loko:
-ReadyMemoType=Instalajxo tipo:
-ReadyMemoComponents=Selektis komponantoj:
-ReadyMemoGroup=Iniciato-menuo dosierujo:
-ReadyMemoTasks=Aldona taskoj:
+WizardReady=Preparado por Instalo
+ReadyLabel1=Nun c`io estas preparita por komenci instaladon [name] en via komputilo.
+ReadyLabel2a=Kliku Instali por kontinui instaladon, au`kliku Reen se vi volas rigardi au` s`ang`i ajnajn statojn.
+ReadyLabel2b=Kliku Instali por kontinui instaladon.
+ReadyMemoUserInfo=Informacio de uzanto:
+ReadyMemoDir=Destina loko:
+ReadyMemoType=Majstra tipo:
+ReadyMemoComponents=Elektitaj komponentoj:
+ReadyMemoGroup=La dosierujo de starta menuo:
+ReadyMemoTasks=Aldonaj taskoj:
 
 ; *** "Preparing to Install" wizard page
-WizardPreparing=Preparantas al Instalas
-PreparingDesc=Instalajxo preparantas al instalas [name] en via komputilo.
-PreviousInstallNotCompleted=L'instalajxo/forigajxo de antauxa programo malkompletigis. Vi bezonos al rekomencas via komputilo al kompletigas tiu instalajxo.%n%nLaux rekomencantas via komputilo, iniciatas Instalajxo ankorauxfoje al kompletigas l'instalajxo de [name].
-CannotContinue=Instalajxo malpovas kontinuas. Bonvolu klakas Malmendas al eliras.
+WizardPreparing=Preparado por Instalo
+PreparingDesc=Majstro estas preparata por instalo [name] en via komputilo.
+PreviousInstallNotCompleted=Instalado/Forigo de antau`a programo ne estas plena. Por vi bezonas relanc`i vian komputilon por plenigi tian instaladon.%n%nPost relanc`o de via komputilo, s`altu Majstron denove por finigi instaladon de [name].
+CannotContinue=La Majstro ne povas kontinui. Bonvolu kliki Fino por eliri.
+ApplicationsFound=Sekvaj aplikaj`oj uzas dosierojn kiajn bezonas renovigi per Instalado. Estas rekomendite ke vi permesu al Majstro automate fermi tiajn aplikaj`ojn.
+ApplicationsFound2=Sekvaj aplikaj`oj uzas dosierojn kiajn bezonas renovigi per Instalado. Estas rekomendite ke vi permesu al Majstro automate fermi tiajn aplikaj`ojn. Poste de instalado Majstro provos relanc`i aplikaj`ojn.
+CloseApplications=&Automate fermi aplikaj`ojn
+DontCloseApplications=Ne fermu aplikaj`ojn
+ErrorCloseApplications=Majstro estis nepovebla au`tomate fermi c`iajn aplikaj`ojn. Estas rekomendite ke vi fermu c`iajn aplikaj`ojn, uzantaj dosierojn, kiaj estas bezonatajn por renovigo per la Majstro antau` kontinui. 
 
 ; *** "Installing" wizard page
-WizardInstalling=Instalantas
-InstallingLabel=Bonvolu atendas dum Instalajxo instalas [name] en via komputilo.
+WizardInstalling=Instalado
+InstallingLabel=Bonvolu atenti dum Majstro instalas [name] en via komputilo.
 
 ; *** "Setup Completed" wizard page
-FinishedHeadingLabel=Kompletigantas la [name] Instalajxo
-FinishedLabelNoIcons=Instalajxo elfaris instalantis [name] en via komputilo.
-FinishedLabel=Instalajxo elfaris instalantis [name] en via komputilo. L'programo povas iniciatas per klakantas la instalis ikonoj.
-ClickFinish=Klakas Elfinas al eliras Instalajxo.
-FinishedRestartLabel=Al kompletigas l'instalajxo de [name], Instalajxo devi rekomencas via komputilo. Volas vi al rekomencas nun?
-FinishedRestartMessage=Al kompletigas l'instalajxo de [name], Instalajxo devi rekomencas via komputilo.%n%nVolas vi al rekomencas nun?
-ShowReadmeCheck=Jes, mi volas al legas l'dosiero de README.
-YesRadio=&Jes, rekomencas l'komputilo nun
-NoRadio=&Ne, mi rekomencos l'komputilo pli malfrua
+FinishedHeadingLabel=  Fino de instalado
+FinishedLabelNoIcons=La Majstro finigis instaladon [name] en via komputilo.
+FinishedLabel=La Majstro finigis instaladon [name] en via komputilo. La aplikaj`o povos esti lanc`ita  per elekto de instalaj ikonoj.
+ClickFinish=  Kliku  Fino  por finigi instaladon.
+FinishedRestartLabel=Por plenumigi instaladon de [name], Majstro devas relanc`i vian komputilon. C`u vi volas relanc`i nun?
+FinishedRestartMessage=Por plenumigi instaladon de [name], Majstro devas relanc`i vian komputilon.%n%nC`u vi volas relanc`i nun?
+ShowReadmeCheck=Jes, mi volas rigardi dosieron README 
+YesRadio=&Jes, relanc`u komputilon nun
+NoRadio=&Ne, mi volas relanc`i komputilon poste
 ; used for example as 'Run MyProg.exe'
-RunEntryExec=Iniciatas %1
+RunEntryExec=S`altu %1
 ; used for example as 'View Readme.txt'
-RunEntryShellExec=Legas %1
+RunEntryShellExec=Rigardi %1
 
 ; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=Instalajxo Bezonas l'Sekvanto Disko
-SelectDiskLabel2=Bonvolu enigas Disko %1 kaj klakas OK.%n%nCxu l'dosieroj en tiu disko malpovas trovis en dosierujo alia ol l'unu montris sub, tajpas l'korekte nomo aux klakas Pagxumi.
-PathLabel=&Nomo:
-FileNotInDir2=L'dosiero "%1" maltrovis en "%2". Bonvolu enigas l'korekte disko aux selektas alia dosierujo.
-SelectDirectoryLabel=Bonvolu difinas l'loko de la sekvanto disko.
+ChangeDiskTitle=La Majstro postulas sekvan diskon
+SelectDiskLabel2=Bonvolu inserti Diskon %1 kaj kliku Jes.%n%nSe dosieroj en tia disko povos esti diversaj de prezentitaj malalte, enskribu korektan vojon au` kliku Elekto.
+PathLabel=&Vojo:
+FileNotInDir2=Dosieron "%1" estas nepoveble lokigi en "%2". Bonvolu inserti korectan diskon au` elektu alian dosierujon.
+SelectDirectoryLabel=Bonvolu difini lokon de alia disko.
 
 ; *** Installation phase messages
-SetupAborted=Instalajxo malkompletigis.%n%nBonvolu korektas l'problemo kaj iniciatas Instalajxo ankorauxfoje.
-EntryAbortRetryIgnore=Klakas Retry al provu denove, Ignore al progresa malgraux tio, aux Abort al malmendas l'instalajxo.
+SetupAborted=Instalado ne estis plena.%n%nBonvolu korekti problemon kaj lanc`u Majstron denove.
+EntryAbortRetryIgnore=Kliku Reen por provi ankorau`, Ignori por fari c`iokaze, au` S`topi por finigi instaladon.
 
 ; *** Installation status messages
-StatusCreateDirs=Kreantas l'dosierujoj...
-StatusExtractFiles=Malimplikantas l'dosieroj...
-StatusCreateIcons=Kreantas l'irmallongigoj...
-StatusCreateIniEntries=Kreantas INI enskriboj...
-StatusCreateRegistryEntries=Kreantas registro enskriboj ...
-StatusRegisterFiles=Registrantas l'dosieroj...
-StatusSavingUninstall=Metantas malinstalajxo informado al memoro...
-StatusRunProgram=Elfarantas instalajxo...
-StatusRollback=Forigantas sxangxoj...
+StatusClosingApplications=Fermado de aplikaj`oj...
+StatusCreateDirs=Kreado de dosierujojn...
+StatusExtractFiles=Ekstraktado de dosierojn...
+StatusCreateIcons=Kreado de tujklavojn...
+StatusCreateIniEntries=Kreado de INI dosierojn...
+StatusCreateRegistryEntries=Kreado de registraj pointoj...
+StatusRegisterFiles=Registrado de dosierojn...
+StatusSavingUninstall=Konservas informacio por forigo...
+StatusRunProgram=Finig`as instalado...
+StatusRestartingApplications=Relanc`o de aplikaj`oj...
+StatusRollback=Renovigo de s`ang`oj...
 
 ; *** Misc. errors
 ErrorInternal2=Interna eraro: %1
-ErrorFunctionFailedNoCode=%1 malplenumis
-ErrorFunctionFailed=%1 malplenumis; kodo %2
-ErrorFunctionFailedWithMessage=%1 malplenumis; kodo %2.%n%3
-ErrorExecutingProgram=Malpovas al iniciatas dosiero:%n%1
+ErrorFunctionFailedNoCode=%1 estas kripligita
+ErrorFunctionFailed=%1 estas kripligita; kodnomo %2
+ErrorFunctionFailedWithMessage=%1 estas kripligita; kodnomo %2.%n%3
+ErrorExecutingProgram=Estas nepoveble plenumi dosieron:%n%1
 
 ; *** Registry errors
-ErrorRegOpenKey=Eraro malfermantas registro enskribo:%n%1\%2
-ErrorRegCreateKey=Eraro kreantas registro enskribo:%n%1\%2
-ErrorRegWriteKey=Eraro skribantas al registro enskribo:%n%1\%2
+ErrorRegOpenKey=Eraro dum malfermo de registra s`losilo:%n%1\%2
+ErrorRegCreateKey=Eraro dum kreado de registra s`losilo:%n%1\%2
+ErrorRegWriteKey=Eraro dum skribado en registra s`losilo:%n%1\%2
 
 ; *** INI errors
-ErrorIniEntry=Eraro kreantas INI enskribo en l'dosiero "%1".
+ErrorIniEntry=Eraro dum kreado de INI pointo en dosiero "%1".
 
 ; *** File copying errors
-FileAbortRetryIgnore=Klakas Retry al provu denove, Ignore al preterlasas l'dosiero (malrekomendita), aux Abort al malmendas instalajxo.
-FileAbortRetryIgnore2=Klakas Retry al provu denove, Ignore al progresa malgraux tio (malrekomendita), aux Abort al malmendas instalajxo.
-SourceIsCorrupted=L'dosiero esta korupta
-SourceDoesntExist=L'dosiero "%1" malekzistas
-ExistingFileReadOnly=L'ekzistantas-dosiero signis kiel legas-nur.%n%nKlakas Retry al forigas la legas-nur atributo kaj provu denove, Ignore al preterlasas l'dosiero, aux Abort al malmendas instalajxo.
-ErrorReadingExistingDest=Eraro okazis dum penantas al legas la ekzistantas dosiero:
-FileExists=L'dosiero jam ekzistas.%n%nVolas vi Instalajxo al anstatauxigas gxi?
-ExistingFileNewer=La ekzistantas dosiero estas pli nova ol l'unu Instalajxo penantas al instalas. Rekomendita vi tenas la ekzistantas dosiero.%n%nVolas vi al tenas la ekzistantas dosiero?
-ErrorChangingAttr=Eraro okazis dum penantas al sxangxas l'atributoj de la ekzistantas dosiero:
-ErrorCreatingTemp=Eraro okazis dum penantas al kreas dosiero en l'dosierujo de deziris:
-ErrorReadingSource=Eraro okazis dum penantas al legas la dosiero:
-ErrorCopying=Eraro okazi dum penantas al kopias dosiero:
-ErrorReplacingExistingFile=Eraro okazis dum penantas al anstatauxigi la ekzistantas dosiero:
-ErrorRestartReplace=RekomencasAnstatauxigi malplenumis:
-ErrorRenamingTemp=Eraro okazis dum penantas al renomi dosiero en l'dosierujo de deziris:
-ErrorRegisterServer=Malpovas al enregistrigas la DLL/OCX: %1
-ErrorRegSvr32Failed=RegSvr32 malplenumis kun elirejkodo %1
-ErrorRegisterTypeLib=Malpovas al enregistrigas la tipo biblioteko: %1
+FileAbortRetryIgnore=Kliku Reen por provi denove, Ignori por lasi tian dosieron (ne estas rekomendite), au` S`topi por finigi instaladon.
+FileAbortRetryIgnore2=Kliku Reen por provi denove, Ignori por plenumi c`iokaze (ne estas rekomendite), au` S`topi por finigi instaladon.
+SourceIsCorrupted=La fonta dosiero estas kripligita
+SourceDoesntExist=La fonta dosiero "%1" ne ekzistas
+ExistingFileReadOnly=Ekzista dosiero estas markita kiel nurlega.%n%nKliku Reen por forigi la nurlegan atributon kaj provu reen, Ignori por lasi tian dosieron, au` S`topi por fini instaladon.
+ErrorReadingExistingDest=Eraro aperis dum legado de ekzista dosiero:
+FileExists=La dosiero jam ekzistas.%n%nC`u vi volas ke Majstro reskribu g`in?
+ExistingFileNewer=Ekzista dosiero estas pli nova ol Majstro provas instali. Estas rekomendita ke vi konservu ekzistan dosieron.%n%nC`u vi volas konservi ekzistan dosieron?
+ErrorChangingAttr=Eraro aperis dum provo c`ang`i  atributoj de ekzista dosiero:
+ErrorCreatingTemp=Eraro aperis dum kreado dosieron en destina dosierujo:
+ErrorReadingSource=Eraro aperis dum legado de dosiero:
+ErrorCopying=Eraro aperis dum kopiado de dosiero:
+ErrorReplacingExistingFile=Eraro aperis dum relokig`o de ekzistan dosieron:
+ErrorRestartReplace=Relanc`o/Relokig`o estas kripligita:
+ErrorRenamingTemp=Eraro aperis dum renomig`o del dosiero en destina dosierujo:
+ErrorRegisterServer=Estas nepoveble registri DLL/OC`: %1
+ErrorRegSvr32Failed=RegSvr32estas kripligita kun elira codo %1
+ErrorRegisterTypeLib=Estas nepoveble registri bibliotekon de tipo : %1
 
 ; *** Post-installation errors
-ErrorOpeningReadme=Eraro okazis dum penantas al malfermas l'dosiero de README.
-ErrorRestartingComputer=Instalajxo malpovas rekomencas l'komputilo. Bonvolu faras mane.
+ErrorOpeningReadme=Eraro aperis dum malfermado de README dosiero.
+ErrorRestartingComputer=Majstro ne povis relanc`i komputilo. Bonvolu fari tion permane.
 
 ; *** Uninstaller messages
-UninstallNotFound=Dosiero "%1" malekzistas. Malpovas malinstalajxo.
-UninstallOpenError=Dosiero "%1" malpovis malfermis. Malpovas malinstalajxo
-UninstallUnsupportedVer=L'malinstalajxo rekordo de efikado "%1" estas en  formato nerekonis per jena versio de la malinstalajxo. Malpovas malinstalajxo
-UninstallUnknownEntry=Nekonata eskribo (%1) renkontis en l'malinstalijxo-rekordo-de-efikadoj
-ConfirmUninstall=Cxu certa vi volas al komplete forigas %1 kaj cxiom de gxia komponantoj?
-UninstallOnlyOnWin64=Tiu instalajxo povas malinstalas nur en 64-bito Vindozo.
-OnlyAdminCanUninstall=Tiu instalajxo povas malinstali nur per uzanto kun administracia privilegioj.
-UninstallStatusLabel=Bonvolu atendas dum %1 forigis de via komputilo.
-UninstalledAll=%1 estis sukcesplene forigis de via komputilo.
-UninstalledMost=%1 malinstalajxo kompleta.%n%nIom komponantoj malpovas forigis. Tioj povas forigis mane.
-UninstalledAndNeedsRestart=Al kompleta l'malinstalas de %1, via komputilo devi rekomencas.%n%nVolas vi al rekomencas nun?
-UninstallDataCorrupted="%1" dosiero estas korupta. Malpovas malinstalas
+UninstallNotFound=Dosiero "%1" ne ekzistas. Estas nepoveble forigi.
+UninstallOpenError=Dosieron "%1" nepoveble estas malfermi. Estas nepoveble forigi
+UninstallUnsupportedVer=\Foriga protokolo "%1" estas en nekonata formato per c`i tia versio de forigprogramo. Estas nepoveble forigi
+UninstallUnknownEntry=Ekzistas nekonata pointo (%1) en foriga protokolo
+ConfirmUninstall=C`u vi reale volas tute forigi  %1 kaj c`iaj komponentoj de g`i?
+UninstallOnlyOnWin64=C`i tian instaladon povos forigi nur en 64-bit Vindoso.
+OnlyAdminCanUninstall=C`i tian instaladon povos forigi nur uzanto kun administrantaj rajtoj.
+UninstallStatusLabel=Bonvolu atendi dum %1 forig`os de via komputilo.
+UninstalledAll=%1 estis sukcese forigita de via komputilo.
+UninstalledMost=Forigo de %1 estas plena.%n%nKelkaj elementoj ne estis forigitaj. G`in poveble estas forigi permane.
+UninstalledAndNeedsRestart=Por plenumi forigadon de %1, via komputilo devas esti relanc`ita.%n%nC`u vi volas relanc`i nun?
+UninstallDataCorrupted="%1" dosiero estas kriplita. Estas nepoveble forigi
 
 ; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=Forigas Dividis Dosiero?
-ConfirmDeleteSharedFile2=L'sistemo indiki ke la sekvanto dividis dosiero ne estas en uzo per ajna programoj. Volas vi por Malinstalajxo al forigas tiu dividis dosiero?%n%nCxu ajna programoj estas nun ankoraux uzantas tiu dosiero kaj gxi forigis, la programoj malpovas funkcias konvene. Cxu vi estas malcerta, selektas No. Lasantas l'dosiero en via sistemo malestegos ajna difekto.
-SharedFileNameLabel=Dosiernomo:
+ConfirmDeleteSharedFileTitle=Forigi komune uzatan dosieron?
+ConfirmDeleteSharedFile2=La sistemo indikas ke sekva komune uzata dosiero jam ne estas uzata per neniel aplikaj`oj. C`u vi volas forigi c`i tian dosieron?%n%nSe ajna programo jam uzas tian dosieron, dum forigo g`i povos malg`uste funkcii. Se vi ne estas certa elektu Ne. Restante en via sistemo la dosiero ne damag`os g`in.
+SharedFileNameLabel=nomo de dosiero:
 SharedFileLocationLabel=Loko:
-WizardUninstalling=Malinstali Stato
-StatusUninstalling=Malinstalantas %1...
+WizardUninstalling=Stato de forigo
+StatusUninstalling=Forigado %1...
+
+; *** Shutdown block reasons
+ShutdownBlockReasonInstallingApp=Instalado %1.
+ShutdownBlockReasonUninstallingApp=Forigado %1.
 
 ; The custom messages below aren't used by Setup itself, but if you make
 ; use of them in your scripts, you'll want to translate them.
 
 [CustomMessages]
 
-NameAndVersion=%1 versio %2
-AdditionalIcons=Aldone ikonoj:
-CreateDesktopIcon=Kreas &surtabla ikono
-CreateQuickLaunchIcon=Kreas &Rapide Iniciatas ikono
-ProgramOnTheWeb=%1 je l'Interreto
-UninstallProgram=Malinstalas %1
-LaunchProgram=Iniciatas %1
-AssocFileExtension=&Asocias %1 kun la %2 dosiero finajxo
-AssocingFileExtension=Asociantas %1 kun la %2 dosiero finajxo...
+NameAndVersion=%1   versio %2
+AdditionalIcons=Aldonaj ikonoj:
+CreateDesktopIcon=Krei  &Labortablan ikonon
+CreateQuickLaunchIcon=Krei &Rapida lanc`o ikonon
+ProgramOnTheWeb=%1 en Reto
+UninstallProgram=Rorig`ado %1
+LaunchProgram=Lanc`o %1
+AssocFileExtension=&Asociigi %1 kun %2 dosieraj finaj`oj
+AssocingFileExtension=Asociig`as %1 kun %2 dosiera finaj`o...
+AutoStartProgramGroupDescription=Lanc`o:
+AutoStartProgram=Automate s`alti %1
+AddonHostProgramNotFound=%1 nepoveble estas loki en dosierujo kian vi elektis.%n%nC`u vi volas kontinui c`iokaze?

+ 206 - 187
Files/Languages/Unofficial/Farsi.isl

@@ -1,318 +1,337 @@
-; [email protected]
-; *** Inno Setup version 5.1.11+ Farsi(Persian) messages ***
-; Farsi(Persian) 
-; Translator: Mostafa Sedaghat joo 
-; mostafa [dot] sedaghat [at] gmail [dot] com
-
+; *** Inno Setup version 5.5.3+ English messages ***
+;Translator:Hessam Mohamadi-Improved And Updated
+;Email:[email protected]
 ; To download user-contributed translations of this file, go to:
-;   http://www.jrsoftware.org/is3rdparty.php
+;   http://www.jrsoftware.org/files/istrans/
 ;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
 
 [LangOptions]
+; The following three entries are very important. Be sure to read and 
+; understand the '[LangOptions] section' topic in the help file.
 LanguageName=Farsi
 LanguageID=$0429
-LanguageCodePage=1256
+LanguageCodePage=0
 ; If the language you are translating to requires special font faces or
 ; sizes, uncomment any of the following entries and change them accordingly.
 DialogFontName=Tahoma
 DialogFontSize=8
 WelcomeFontName=Tahoma
-WelcomeFontSize=12
+WelcomeFontSize=11
 TitleFontName=Tahoma
-TitleFontSize=29
+TitleFontSize=28
 CopyrightFontName=Tahoma
 CopyrightFontSize=8
 
 [Messages]
 
 ; *** Application titles
-SetupAppTitle=äÕÈ
-SetupWindowTitle=äÕÈ - %1
+SetupAppTitle=ÑÇå ÇäÏÇÒ
+SetupWindowTitle=%1 - ÑÇå ÇäÏÇÒ
 UninstallAppTitle=ÍÐÝ ÈÑäÇãå
-UninstallAppFullTitle=ÍÐÝ ÈÑäÇãå %1
+UninstallAppFullTitle=%1 ÍÐÝ ÈÑäÇãå
 
 ; *** Misc. common
 InformationTitle=ÇØáÇÚÇÊ
-ConfirmTitle=ÊÇííÏíå
+ConfirmTitle=ÊÕÏíÞ
 ErrorTitle=ÎØÇ
 
 ; *** SetupLdr messages
-SetupLdrStartupMessage=%1 äÕÈ ÎæÇåÏ ÔÏ. ÂíÇ ÇÏÇãå ãí�ÏåíÏ¿
+SetupLdrStartupMessage=ÑÇ äÕÈ ÎæÇåÏ ˜ÑÏ.ÂíÇ ÇÏÇãå ãíÏåíÏ¿ %1 Çíä
 LdrCannotCreateTemp=ÝÇíá ãæÞÊí äãí�ÊæÇäÏ ÓÇÎÊå ÔæÏ. äÕÈ áÛæ ÔÏ
-LdrCannotExecTemp=ÝÇíá äãí�ÊæÇäÏ ÏÑ �æÔå�í ãæÞÊí ÇÌÑÇ ÔæÏ. äÕÈ áÛæ ÔÏ
-LastErrorMessage=%1.%n%nÎØÇ %2: %3
+LdrCannotExecTemp=ÞÇÏÑ Èå ÇÌÑÇí ÝÇíá ÏÑ �æÔå ãæÞÊí äíÓÊ. äÕÈ áÛæ ÔÏ
 
 ; *** Startup error messages
-SetupFileMissing=ÝÇíá %1 ÇÒ �æÔå äÕÈ íÇÝÊ äãí�ÔæÏ. ÎæÇåÔãäÏ ÇÓÊ ãÔ˜á ÑÇ ÈÑØÑÝ äãÇííÏ íÇ äÓÎå�í ÌÏíÏí ÇÒ ÈÑäÇãå ÑÇ ÝÑÇåã äãÇííÏ.
-SetupFileCorrupt=ÝÇíá�åÇí äÕÈ ÎÑÇÈ ÔÏå�ÇäÏ. ÎæÇåÔãäÏ ÇÓÊ äÓÎå�í ÌÏíÏí ÇÒ ÈÑäÇãå ÑÇ ÝÑÇåã äãÇííÏ.
-SetupFileCorruptOrWrongVer=ÝÇíá�åÇí äÕÈ ÎÑÇÈ ÔÏå�ÇäÏ¡ íÇ ÈÇ Çíä äÓÎå ÇÒ äÕÈ äÇåãÇåä� ãí�ÈÇÔäÏ. ÎæÇåÔãäÏ ÇÓÊ ãÔ˜á ÑÇ ÈÑØÑÝ äãÇííÏ íÇ äÓÎå�í ÌÏíÏí ÇÒ ÈÑäÇãå ÑÇ ÝÑÇåã äãÇííÏ.
-NotOnThisPlatform=Çíä ÈÑäÇãå ÏÑ %1 ÇÌÑÇ äãí�ÔæÏ.
-OnlyOnThisPlatform=Çíä ÈÑäÇãå ÈÇíÏ ÏÑ %1 ÇÌÑÇ ÔæÏ.
+LastErrorMessage=%1.%n%nÎØÇ %2: %3
+SetupFileMissing=ÇÒ �æÔå äÕÈ íÇÝÊ äãíÔæÏ.áØÝÇ ãÔ˜á ÑÇ ÈÑØÑÝ ˜ÑÏå íÇ äÓÎå ÌÏíÏí ÇÒ ÈÑäÇãå ÑÇ Êåíå ˜äíÏ %1 ÝÇíá
+SetupFileCorrupt=ÝÇíá�åÇí ÑÇå ÇäÏÇÒ ÎÑÇÈ åÓÊäÏ¡áØÝÇ äÓÎå ÌÏíÏí ÇÒ ÈÑäÇãå ÑÇ ÝÑÇåã äãÇííÏ
+SetupFileCorruptOrWrongVer=ÝÇíá åÇí äÕÈ ÎÑÇÈ ÔÏå�ÇäÏ¡ íÇ ÈÇ Çíä äÓÎå ÇÒ äÕÈ äÇåãÇåä� ãí�ÈÇÔäÏ.áØÝÇ ãÔ˜á ÑÇ ÈÑØÑÝ äãÇííÏ íÇ äÓÎå� ÌÏíÏí ÇÒ ÈÑäÇãå ÑÇ ÝÑÇåã äãÇííÏ
+InvalidParameter=í˜ �ÇÑÇãÊÑ äÇãÚÊÈÑ ÏÑ ÝÑãÇä ÎØí ÑÏ ÔÏå ÇÓÊ:%n%n%1
+SetupAlreadyRunning=ÈÑäÇãå äÕÈ ÇÒ ÞÈá ÏÑ ÇöÌÑÇÓÊ
+WindowsVersionNotSupported=Çíä ÈÑäÇãå ÇÒ äÓÎå æíäÏæÒí ˜å ÑÇíÇäå ÔãÇ ÏÑ ÍÇá ÇöÌÑÇÓÊ¡�ÔÊíÈÇäí äãí˜äÏ
+WindowsServicePackRequired=Çíä ÈÑäÇãå äíÇÒ Èå %1 ÓÑæíÓ �ó˜ %2 íÇ ÈÇáÇÊÑ äíÇÒ ÏÇÑÏ
+NotOnThisPlatform=ÇÌÑÇ äãíÔæÏ %1 Çíä ÈÑäÇãå ÏÑ
+OnlyOnThisPlatform=ÇÌÑÇ ÔæÏ %1 Çíä ÈÑäÇãå ÈÇíÏ ÏÑ
 OnlyOnTheseArchitectures=Çíä ÈÑäÇãå ÊäåÇ ÏÑ äÓÎå�åÇíí ÇÒ æíäÏæÒ ˜å ÈÑÇí �ÑÏÇÒÔ�ÑåÇíí ÈÇ ãÚãÇÑí�åÇí ÒíÑ ØÑÇÍí ÔÏå ÇÓÊ¡ ãí�ÊæÇäÏ äÕÈ ÔæÏ:%n%n%1
-MissingWOW64APIs=Çíä äÓÎå ÇÒ æíäÏæÒ ÔãÇ ˜å åã�ǘäæä ÏÑ ÍÇá ÇÌÑÇ ãí�ÈÇÔÏ¡ ÊæÇäÇíí áÇÒã ÈÑÇí äÕÈ 64 ÈíÊí ÑÇ ÇÑÇíå äãí�ÏåÏ. ÈÑÇí Íá Çíä ãÔ˜á ÎæÇåÔãäÏ ÇÓÊ ÈÓÊå ÎÏãÇÊí ãÇí˜ÑæÓÇÝÊ  %1 ÑÇ äÕÈ ˜äíÏ.
-WinVersionTooLowError=Çíä ÈÑäÇãå Èå %1 æíÑÇíÔ %2 íÇ ÈÇáÇÊÑ ÇÍÊíÇÌ ÏÇÑÏ.
-WinVersionTooHighError=Çíä ÈÑäÇãå äãí�ÊæÇäÏ ÏÑ %1 æíÑÇíÔ %2 íÇ ÈÇáÇÊÑ ÇÌÑÇ ÔæÏ.
-AdminPrivilegesRequired=ÈÑÇí äÕÈ Çíä ÈÑäÇãå¡ ÔãÇ ãí�ÈÇíÓÊ Èå ÚäæÇä ãÏíÑ ÓíÓÊã æÇÑÏ ÔæíÏ.
-PowerUserPrivilegesRequired=ÈÑÇí äÕÈ Çíä ÈÑäÇãå¡ ÔãÇ ãí�ÈÇíÓÊ Èå ÚäæÇä ãÏíÑ ÓíÓÊã íÇ ÚÖæí ÇÒ ˜ÇÑÈÑÇä ãÌÇÒ æÇÑÏ ÔæíÏ.
-SetupAppRunningError=äÕÈ ÊÔÎíÕ ÏÇÏå ÇÓÊ ˜å %1 ÏÑ ÍÇá ÇÌÑÇÓÊ.%n%nÎæÇåÔãäÏ ÇÓÊ åãå�í äãæäå�åÇí ÏÑ ÍÇá ÇÌÑÇí Âä ÑÇ åã�ǘäæä ÈÈäÏíÏ æ Ó�Ó ÊÇííÏ ÑÇ ÈÝÔÇÑíÏ íÇ ÈÑÇí áÛæ¡ ÇäÕÑÇÝ ÑÇ ÈÝÔÇÑíÏ.
-UninstallAppRunningError=ÍÐÝ ÊÔÎíÕ ÏÇÏå ÇÓÊ ˜å %1 ÏÑ ÍÇá ÇÌÑÇÓÊ.%n%nÎæÇåÔãäÏ ÇÓÊ åãå�í äãæäå�åÇí ÏÑ ÍÇá ÇÌÑÇí Âä ÑÇ åã�ǘäæä ÈÈäÏíÏ æ Ó�Ó ÊÇííÏ ÑÇ ÈÝÔÇÑíÏ íÇ ÈÑÇí áÛæ¡ ÇäÕÑÇÝ ÑÇ ÈÝÔÇÑíÏ.
+MissingWOW64APIs=äÕÈ ˜äíÏ %1 Çíä äÓÎå ÇÒ æíäÏæÒ ˜å ǘäæä ÏÑ ÇÌÑÇ ãíÈÇÔÏ ÔÇãá ÊæÇÈÚ ãæÑÏ äíÇÒ ÈÑÇí äÕÈ ÔÕÊ æ �åÇÑ ÈíÊí äíÓÊ¡ÈÑÇí ÊÕÍíÍ Çíä ãÔ˜á¡áØÝÇ ÓÑæíÓ �˜
+WinVersionTooLowError=Çíä ÈÑäÇãå äíÇÒ Èå %1 äÓÎå %2 íÇÈÇáÇÊÑ äíÇÒ ÏÇÑÏ
+WinVersionTooHighError=Çíä ÈÑäÇãå äãí�ÊæÇäÏ ÏÑ %1 äÓÎå %2 íÇ ÈÇáÇÊÑ ÇÌÑÇ ÔæÏ
+AdminPrivilegesRequired=ÈÑÇí äÕÈ Çíä ÈÑäÇãå¡ ÔãÇ ÈÇíÏ Èå ÚäæÇä ãÏíÑ ÓíÓÊã æÇÑÏ ÔæíÏ
+PowerUserPrivilegesRequired=ÈÑÇí äÕÈ Çíä ÈÑäÇãå¡ ÔãÇ ÈÇíÏ Èå ÚäæÇä ãÏíÑ ÓíÓÊã íÇ ÚÖæí ÇÒ ˜ÇÑÈÑÇä ãÌÇÒ æÇÑÏ ÔæíÏ
+SetupAppRunningError=ǘäæä ÏÑÇÌÑÇ ÇÓÊ %1 ÑÇå ÇäÏÇÒ ÊÔÎíÕ ÏÇÏå%n%náØÝÇ ÍÇáÇ åãå äãæäå åÇ ÑÇ ÈÓÊå¡Ó�Ó Ñæí ÊÇííÏ ÈÑÇí ÇÏÇãå¡áÛæ ÈÑÇí ÎÑæÌ ˜áí˜ ˜äíÏ
+UninstallAppRunningError=ǘäæä ÏÑÇÌÑÇ ÇÓÊ %1 ÍÐÝ ˜ääÏå ÊÔÎíÕ ÏÇÏå%n%náØÝÇ ÍÇáÇ åãå äãæäå åÇ ÑÇ ÈÓÊå¡Ó�Ó Ñæí ÊÇííÏ ÈÑÇí ÇÏÇãå¡áÛæ ÈÑÇí ÎÑæÌ ˜áí˜ ˜äíÏ
 
 ; *** Misc. errors
-ErrorCreatingDir=äÕÈ äãí�ÊæÇäÏ �æÔå�í "%1" ÑÇ ÈÓÇÒÏ
-ErrorTooManyFilesInDir=í˜ ÝÇíá ÏÑ �æÔå�í "%1" ÓÇÎÊå äãí�ÔæÏ%nÒíÑÇ ÏÑ Çíä �æÔå ÊÚÏÇÏ ÈíÔãÇÑí ÝÇíá æÌæÏ ÏÇÑÏ
+ErrorCreatingDir=äíÓÊ "%1" ÈÑäÇãå ÞÇÏÑ Èå ÇíÌÇÏ �æÔå
+ErrorTooManyFilesInDir=äíÓÊ ÒíÑÇ Âä ãÍÊæí ÊÚÏÇÏ ÒíÇÏí ÝÇíá ÇÓÊ "%1" ÞÇÏÑ Èå ÇíÌÇÏ ÝÇíá ÏÑ �æÔå
 
 ; *** Setup common messages
 ExitSetupTitle=ÎÑæÌ ÇÒ äÕÈ
-ExitSetupMessage=äÕÈ ˜Çãá äÔÏ. Ç�Ñ åã�ǘäæä ÎÇÑÌ ÔæíÏ¡ ÈÑäÇãå äÕÈ äÎæÇåÏ ÔÏ.%n%nÔãÇ ãíÊæÇäíÏ äÕÈ ÑÇ ÏÑ æÞÊí Ïí�Ñ ÏæÈÇÑå ÇÌÑÇ ˜äíÏ ÊÇ äÕÈ ˜Çãá �ÑÏÏ. ÎÇÑÌ ãí�ÔæíÏ¿
+ExitSetupMessage=äÕÈ ˜Çãá äÔÏ. Ç�Ñ �ǘäæä ÎÇÑÌ ÔæíÏ¡ ÈÑäÇãå äÕÈ äãíÔæÏ%n%nÔãÇ ãíÊæÇäíÏ äÕÈ ÑÇ ÏÑ æÞÊí Ïí�Ñ ÏæÈÇÑå ÇÌÑÇ ˜äíÏ ÊÇ äÕÈ ˜Çãá �ÑÏÏ. ÎÇÑÌ ãí�ÔæíÏ¿
 AboutSetupMenuItem=...ÏÑÈÇÑå äÕÈ&
 AboutSetupTitle=ÏÑÈÇÑå äÕÈ
-AboutSetupMessage=%1 æíÑÇíÔ %2%n%3%n%n%1 ÕÝÍå ÎÇä�í:%n%4
+AboutSetupMessage=%2äÓÎå %1%n%3%n%n%1 ÕÝÍå ÎÇä�í:%n%4
 AboutSetupNote=
 TranslatorNote=
 
 ; *** Buttons
-ButtonBack=< �í&Ôíä
-ButtonNext=�&Óíä >
-ButtonInstall=&äÕÈ
+ButtonBack=< Þ&Èáí
+ButtonNext=ÈÚ&Ïí >
+ButtonInstall=ä&ÕÈ
 ButtonOK=&ÊÇííÏ
-ButtonCancel=Çä&ÕÑÇÝ
-ButtonYes=Â&Ñí
-ButtonYesToAll=ÂÑí È&å åãå
+ButtonCancel=áÛæ&
+ButtonYes=Èá&å
+ButtonYesToAll=Èáå Èå &åãå
 ButtonNo=&뒄
-ButtonNoToAll=ÎíÑ Èå å&ãå
+ButtonNoToAll=äå Ñæí &åãå
 ButtonFinish=�&ÇíÇä
-ButtonBrowse=&ã˜Çä Ïí�Ñ
-ButtonWizardBrowse=ã&˜Çä Ïí�Ñ
-ButtonNewFolder=ÓÇÎÊä �æÔå ÌÏíÏ
+ButtonBrowse=ÌÓ&ÊÌæ
+ButtonWizardBrowse=ÌÓ&ÊÌæ
+ButtonNewFolder=ÇíÌÇÏ �æÔå ÌÏíÏ
 
 ; *** "Select Language" dialog messages
-SelectLanguageTitle=ÇäÊÎÇÈ ÒÈÇä äÕÈ
-SelectLanguageLabel=ÒÈÇäí ˜å ãí�ÎæÇåíÏ ÏÑ ÌÑíÇä äÕÈ  ÇÓÊÝÇÏå ˜äíÏ ÑÇ ÇäÊÎÇÈ ˜äíÏ:
+SelectLanguageTitle=ÒÈÇä ÑÇå ÇäÏÇÒ ÑÇ ÇäÊÎÇÈ ˜äíÏ
+SelectLanguageLabel=ÒÈÇä ãæÑÏ ÇÓÊÝÇÏå Ííä äÕÈ ÑÇ ÇäÊÎÇÈ ˜äíÏ:
 
 ; *** Common wizard text
-ClickNext=ÈÑÇí ÇÏÇãå �Óíä ÑÇ ÈÝÔÇÑíÏ¡ íÇ ÇäÕÑÇÝ ÑÇ ÈÑÇí ÎÑæÌ ÇÒ äÕÈ ÈÝÔÇÑíÏ.
+ClickNext=Ñæí ÈÚÏí ÈÑÇí ÇÏÇãå¡íÇ áÛæ ÈÑÇí ÎÑæÌ ÇÒ ÑÇå ÇäÏÇÒ ˜áí˜ ˜äíÏ
 BeveledLabel=
-BrowseDialogTitle=ã˜Çä íÇÈí ÈÑÇí �æÔå
-BrowseDialogLabel=ÇÒ áíÓÊ ÒíÑ í˜ �æÔå ÇäÊÎÇÈ ˜äíÏ¡ Ó�Ó ÊÇííÏ ÑÇ ÈÝÔÇÑíÏ.
+BrowseDialogTitle=ÌÓÊÌæ ÈÑÇí �æÔå
+BrowseDialogLabel=í˜ �æÔå ÇÒ áíÓÊ ÒíÑ ÇäÊÎÇÈ ˜äíÏ¡ Ó�Ó ÊÇííÏ ÑÇ ˜áí˜ ˜äíÏ
 NewFolderName=�æÔå ÌÏíÏ
 
 ; *** "Welcome" wizard page
-WelcomeLabel1=Èå ÌÇÏæ�Ñ äÕÈ [name] ÎæÔ ÂãÏíÏ
-WelcomeLabel2=Çíä ÈÑäÇãå [name] ÑÇ ÏÑ ÑÇíÇäå ÔãÇ äÕÈ ãí˜äÏ.%n%n�íÔäåÇÏ ãí�ÔæÏ ˜å ÊãÇã ÈÑäÇãå�åÇíí ˜å ÈÇÒ ÇÓÊ ÑÇ ÞÈá ÇÒ ÔÑæÚ äÕÈ ÈÈäÏíÏ.
+WelcomeLabel1=ÎæÔ ÂãÏíÏ [name] Èå æíÒÇÑÏ äÕÈ
+WelcomeLabel2=ÑÇ Ñæí ÑÇíÇäå ÔãÇ äÕÈ ãí˜äÏ [name/ver] Çíä ÈÑäÇãå%n%nÊæÕíå ãíÔæÏ¡ÓÇíÑ ÈÑäÇãå åÇ ÑÇ ÞÈá ÇÒ ÇÏÇãå ÏÇÏä ÈÈäÏíÏ
 
 ; *** "Password" wizard page
-WizardPassword=�ÐÑæÇŽå
-PasswordLabel1=Çíä ÈÑäÇãå äÕÈ ÈÇ �ÐÑæÇŽå �ÇÓÏÇÑí ãí�ÔæÏ.
-PasswordLabel3=ÎæÇåÔãäÏ ÇÓÊ �ÐÑæÇŽå ÑÇ æÇÑÏ ˜äíÏ æ Ó�Ó �Óíä ÑÇ ÈÝÔÇÑíÏ. �ÐÑæÇŽå�åÇ Èå ˜æ�˜ íÇ ÈÒÑ� ÈæÏä ÍÑæÝ ÍÓÇÓ åÓÊäÏ.
-PasswordEditLabel=&�ÐÑæÇŽå:
-IncorrectPassword=�ÐÑæÇŽå�í æÇÑÏ ÔÏå ÕÍíÍ äãí�ÈÇÔÏ. ÎæÇåÔãäÏ ÇÓÊ ÏæÈÇÑå ÊáÇÔ ˜äíÏ.
+WizardPassword=ÑãÒÚÈæÑ
+PasswordLabel1=Çíä ÑÇå ÇäÏÇÒ ÊæÓØ ÑãÒÚ龄 ãÍÇÝÙÊ ãíÔæÏ
+PasswordLabel3=áØÝÇ ÑãÒÚ龄 ÑÇ æÇÑÏ ˜äíÏ¡Ó�Ó Ñæí ÈÚÏí ÈÑÇí ÇÏÇãå ˜áí˜ ˜äíÏ.ÑãÒ Ú龄 Èå ˜æ�˜ æÈÒÑ� ÈæÏä ÍÑæÝ ÍÓÇÓ ÇÓÊ
+PasswordEditLabel=ÑãÒÚÈæÑ:
+IncorrectPassword=ÑãÒÚ龄 æÇÑÏ ÔÏå ÕÍíÍ äíÓÊ.áØÝÇ ÏæÈÇÑå ÓÚí ˜äíÏ
 
 ; *** "License Agreement" wizard page
 WizardLicense=ãÌæÒ ÇÓÊÝÇÏå
-LicenseLabel=ÎæÇåÔãäÏ ÇÓÊ ÇØáÇÚÇÊ ãåã ÒíÑ ÑÇ �íÔ ÇÒ Âä˜å ÇÏÇãå ÏåíÏ¡ ÈÎæÇäíÏ.
-LicenseLabel3=ÎæÇåÔãäÏ ÇÓÊ ãÌæÒ ÇÓÊÝÇÏå�í ÒíÑ ÑÇ ÈÎæÇäíÏ. ÔãÇ ÈÇíÏ ÈÇ ÔÑÇíØ Çíä ãæÇÝÞÊ�äÇãå¡ �íÔ ÇÒ ÇÏÇãå äÕÈ¡ ãæÇÝÞÊ ˜äíÏ.
-LicenseAccepted=ãæÇÝÞÊ�äÇãå ÑÇ &ãí��ÐíÑã
-LicenseNotAccepted=ãæÇÝÞÊ�äÇãå ÑÇ &äãí��ÐíÑã
+LicenseLabel=áØÝÇ ÇØáÇÚÇÊ ãåã ÒíÑ ÑÇ ÞÈá ÇÒ ÇÏÇãå ÏÇÏä ÈÎæÇäíÏ
+LicenseLabel3=áØÝÇ ãÌæÒ ÇÓÊÝÇÏå ÑÇ ÈÎæÇäíÏ.ÔãÇ ÈÇíÏ ÔÑÇíØ Çíä ãÌæÒ ÑÇ ÞÈá ÇÒ ÇÏÇãå ÏÇÏä È�ÐíÑíÏ
+LicenseAccepted=ÊæÇÝÞäÇãå ÑÇ &ãí��ÐíÑã
+LicenseNotAccepted=ÊæÇÝÞäÇãå ÑÇ &äãí��ÐíÑã
 
 ; *** "Information" wizard pages
 WizardInfoBefore=ÇØáÇÚÇÊ
-InfoBeforeLabel=ÎæÇåÔãäÏ ÇÓÊ �íÔ ÇÒ ÇÏÇãå ÇØáÇÚÇÊ ãåãí ˜å ÏÑ ÒíÑ ãí�ÂíÏ ÑÇ ÈÎæÇäíÏ.
-InfoBeforeClickLabel=åä�Çãí ˜å ÂãÇÏå ÇÏÇãå äÕÈ ÔÏíÏ¡ �Óíä ÑÇ ÈÝÔÇÑíÏ.
+InfoBeforeLabel=áØÝÇ ÇØáÇÚÇÊ ãåã ÒíÑ ÑÇ ÞÈá ÇÒ ÇÏÇãå ÏÇÏä ÈÎæÇäíÏ
+InfoBeforeClickLabel=ÒãÇäí˜å ÂãÇÏå ÇÏÇãå äÕÈ åÓÊíÏ¡ Ñæí ÈÚÏí ˜áí˜ ˜äíÏ
 WizardInfoAfter=ÇØáÇÚÇÊ
-InfoAfterLabel=ÎæÇåÔãäÏ ÇÓÊ �íÔ ÇÒ ÇÏÇãå ÇØáÇÚÇÊ ãåãí ˜å ÏÑ ÒíÑ ãí�ÂíÏ ÑÇ ÈÎæÇäíÏ.
-InfoAfterClickLabel=åä�Çãí ˜å ÂãÇÏå ÇÏÇãå äÕÈ ÔÏíÏ¡ �Óíä ÑÇ ÈÝÔÇÑíÏ.
+InfoAfterLabel=áØÝÇ ÇØáÇÚÇÊ ãåã ÒíÑ ÑÇ ÞÈá ÇÒ ÇÏÇãå ÏÇÏä ÈÎæÇäíÏ
+InfoAfterClickLabel=ÒãÇäí˜å ÂãÇÏå ÇÏÇãå äÕÈ åÓÊíÏ¡ Ñæí ÈÚÏí ˜áí˜ ˜äíÏ
 
 ; *** "User Information" wizard page
 WizardUserInfo=ÇØáÇÚÇÊ ˜ÇÑÈÑ
-UserInfoDesc=ÎæÇåÔãäÏ ÇÓÊ ÇØáÇÚÇÊ ÎæÏ ÑÇ æÇÑÏ ˜äíÏ.
-UserInfoName=&äÇã ˜ÇÑÈÑ:
-UserInfoOrg=&ÔјÊ:
-UserInfoSerial=&ÔãÇÑå ÓÑíÇá:
-UserInfoNameRequired=ÔãÇ ÈÇíÏ í˜ äÇã æÇÑÏ ˜äíÏ.
+UserInfoDesc=áØÝÇ ÇØáÇÚÇÊ ÎæÏ ÑÇ æÇÑÏ ˜äíÏ
+UserInfoName=äÇã ˜ÇÑÈÑ&:
+UserInfoOrg=Ó&ÇÒãÇä:
+UserInfoSerial=ÔãÇÑå ÓÑíÇá&:
+UserInfoNameRequired=ÔãÇ ÈÇíÏ í˜ äÇã æÇÑÏ ˜äíÏ
 
 ; *** "Select Destination Location" wizard page
 WizardSelectDir=ãÞÕÏ äÕÈ ÑÇ ÇäÊÎÇÈ äãÇííÏ
-SelectDirDesc=[name] ˜ÌÇ ÈÇíÏ äÕÈ ÔæÏ¿
-SelectDirLabel3=[name] ÏÑ �æÔå ÒíÑ äÕÈ ÎæÇåÏ ÔÏ.
-SelectDirBrowseLabel=ÈÑÇí ÇÏÇãå¡ �Óíä ÑÇ ÈÝÔÇÑíÏ. Ç�Ñ ãí�ÎæÇåíÏ �æÔå Ïí�Ñí ÇäÊÎÇÈ äãÇííÏ¡ ã˜Çä Ïí�Ñ ÑÇ ÈÝÔÇÑíÏ.
-DiskSpaceMBLabel= ÏÓÊ�˜ã Èå [mb] ã�ÇÈÇíÊ ÝÖÇí ÎÇáí äíÇÒ ÎæÇåÏ ÈæÏ.
-ToUNCPathname=Setup cannot install to a UNC pathname. If you are trying to install to a network, you will need to map a network drive.
-InvalidPath=ÔãÇ ÈÇíÏ í˜ ãÓíÑ ˜Çãá Èå åãÑÇå äÇã ÏÑÇíæ ÑÇ æÇÑÏ ˜äíϺ ÈÑÇí ãËÇá:%n%nC:\APP%n%níÇ Èå Ô˜á ãÓíÑ UNC:%n%n\\server\share
-InvalidDrive=Çíä ÏÑÇíæ íÇ ãÓíÑ UNC ˜å ÔãÇ ÇäÊÎÇÈ äãæÏå�ÇíÏ æÌæÏ äÏÇÑÏ íÇ ÞÇÈá ÏÓÊÑÓí äíÓÊ. ÎæÇåÔãäÏ ÇÓÊ ãÓíÑ Ïí�Ñí æÇÑÏ ˜äíÏ.
+SelectDirDesc=˜ÌÇ ÈÇíÏ äÕÈ ÔæÏ¿ [name]
+SelectDirLabel3=ÏÑ �æÔå ÒíÑ äÕÈ ÎæÇåÏ ÔÏ [name]
+SelectDirBrowseLabel=ÈÑÇí ÇÏÇãå¡ÈÚÏí ÑÇ ˜áí˜ ˜äíÏ.ÈÑÇí ÇäÊÎÇÈ �æÔå ãÊÝÇæÊ¡Ñæí ÌÓÊÌæ ˜áí˜ ˜äíÏ
+DiskSpaceMBLabel=ÏÓÊ�˜ã Èå [mb] ã�ÇÈÇíÊ ÝÖÇí ÎÇáí äíÇÒ ÎæÇåÏ ÈæÏ
+CannotInstallToNetworkDrive=ÑÇå ÇäÏÇÒ äãíÊæÇäÏ ÏÑ ÏÑÇíæ ÔȘå äÕÈ ˜äÏ
+CannotInstallToUNCPath=ÑÇå ÇäÏÇÒ äãíÊæÇäÏ ÏÑ ãÓíÑ íæ Çöä Óí äÕÈ ÔæÏ
+InvalidPath=ÔãÇ ÈÇíÏ í˜ ãÓíÑ ˜Çãá åãÑÇå ÍÑÝ ÏÑÇíæ æÇÑÏ ˜äíÏ¡ÈÑÇí ãËÇá:%n%nC:\APP%n%níÇ í˜ ãÓíÑ íæ Çä Óí ÏÑ Çíä ÞÇáÈ:%n%n\\server\share
+InvalidDrive=ÏÑÇíæ íÇ ÇÔÊÑǘ íæ Çä Óí ˜å ÔãÇ ÇäÊÎÇÈ ˜ÑÏå ÇíÏ¡æÌæÏ äÏÇÑÏ íÇ ÞÇÈá ÏÓÊÑÓí äíÓÊ.áØÝÇ í˜í Ïí�Ñ ÑÇ ÇäÊÎÇÈ ˜äíÏ
 DiskSpaceWarningTitle=Èå ÇäÏÇÒå ˜ÇÝí ÝÖÇí ÎÇáí æÌæÏ äÏÇÑÏ
-DiskSpaceWarning=ÏÓÊ�˜ã Èå %1 ˜íáæÈÇíÊ ÝÖÇí ÎÇáí ÈÑÇí äÕÈ ÈÑäÇãå äíÇÒ ÇÓÊ¡ æáí ÏÑ ÏÑÇíæ ÇäÊÎÇÈ ÔÏå ÊäåÇ %2 ˜íáæÈÇíÊ ÞÇÈá ÇÓÊÝÇÏå ÇÓÊ.%n%nÈÇ Çíä æÌæÏ ÂíÇ ãí�ÎæÇåíÏ ÇÏÇãå ÏåíÏ¿
-DirNameTooLong=äÇã �æÔå íÇ ãÓíÑ Îíáí ØæáÇäí ÇÓÊ.
-InvalidDirName=äÇã �æÔå ÛíÑ ãÚÊÈÑ ÇÓÊ.
-BadDirName32=äÇã �æÔååÇ äãí�ÊæÇäÏ ˜ÇÑǘÊÑåÇí ÒíÑ ÑÇ ÏÑÈÑ È�íÑÏ:%n%n%1
+DiskSpaceWarning=ÍÏÇÞá Èå %1 ˜íáæÈÇíÊ ÝÖÇí ÎÇáí ÈÑÇí äÕÈ ÈÑäÇãå äíÇÒ ÇÓÊ¡ æáí ÏÑ ÏÑÇíæ ÇäÊÎÇÈ ÔÏå ÊäåÇ %2 ˜íáæÈÇíÊ ÞÇÈá ÇÓÊÝÇÏå ÇÓÊ.%n%nÈÇ Çíä æÌæÏ ÂíÇ ãí�ÎæÇåíÏ ÇÏÇãå ÏåíÏ¿
+DirNameTooLong=äÇã �æÔå íÇ ãÓíÑ Îíáí ÈáäÏ ÇÓÊ
+InvalidDirName=äÇã �æÔå ÕÍíÍ äíÓÊ
+BadDirName32=äÇã �æÔå åÇ äãí�ÊæÇäÏ ˜ÇÑǘÊÑåÇí ÒíÑ ÑÇ ÏÑÈÑ È�íÑÏ:%n%n%1
 DirExistsTitle=�æÔå æÌæÏ ÏÇÑÏ
-DirExists=�æÔå�í:%n%n%1%n%nÏÑ ÍÇá ÍÇÖÑ æÌæÏ ÏÇÑÏ. ÈÇ Çíä æÌæÏ ÂíÇ ãí�ÎæÇåíÏ ÏÑ åãíä �æÔå äÕÈ ÑÇ ÇÏÇãå ÏåíÏ¿
+DirExists=Çíä �æÔå:%n%n%1%n%nǘäæä æÌæÏ ÏÇÑÏ. ÈÇ Çíä æÌæÏ¡ÂíÇ ÏÑ åãíä �æÔå äÕÈ ÑÇ ÇÏÇãå ÏåíÏ¿
 DirDoesntExistTitle=�æÔå æÌæÏ äÏÇÑÏ
-DirDoesntExist=�æÔå�í:%n%n%1%n%næÌæÏ äÏÇÑÏ. ÂíÇ ãí�ÎæÇåíÏ Çíä �æÔå ÏÑÓÊ ÔæÏ¿
+DirDoesntExist=Çíä �æÔå:%n%n%1%n%næÌæÏ äÏÇÑÏ. ÂíÇ ãí�ÎæÇåíÏ Çíä �æÔå ÇíÌÇÏ ÔæÏ¿
 
 ; *** "Select Components" wizard page
-WizardSelectComponents=ÇäÊÎÇÈ ÇÌÒÇ
+WizardSelectComponents=ÇäÊÎÇÈ ÇÌÒÇÁ
 SelectComponentsDesc=˜ÏÇã í˜ ÇÒ ÇÌÒÇí ÒíÑ ÈÇíÏ äÕÈ ÔæäÏ¿
-SelectComponentsLabel2=ÇÌÒÇíí ˜å ãí�ÎæÇåíÏ äÕÈ ÔæÏ ÑÇ ÇäÊÎÇÈ ˜äíϺ Âä�ÏÓÊå ÇÒ ÇÌÒÇí ÈÑäÇãå ÑÇ ˜å ÊãÇíá äÏÇÑíÏ äÕÈ ÔæÏ¡ ÇÒ ÍÇáÊ ÇäÊÎÇÈ ÏÑÂæÑíÏ. åä�Çãí ˜å ÂãÇÏå�í ÇÏÇãå ÈæÏíÏ �Óíä ÑÇ ÈÝÔÇÑíÏ.
+SelectComponentsLabel2=ÇÌÒÇíí ˜å ãí�ÎæÇåíÏ äÕÈ ÔæÏ ÑÇ ÇäÊÎÇÈ¡ Âä�ÏÓÊå ÇÒ ÇÌÒÇí ÈÑäÇãå ÑÇ ˜å äãíÎæÇåíÏ äÕÈ ÔæÏ¡ ÇÒ ÍÇáÊ ÇäÊÎÇÈ ÏÑÂæÑíÏ. ÒãÇäí˜å ÂãÇÏå ÔÏíÏ¡ÈÚÏí ÑÇ ˜áí˜ ˜äíÏ
 FullInstallation=äÕÈ ˜Çãá
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
 CompactInstallation=äÕÈ ÝÔÑÏå
 CustomInstallation=äÕÈ ÓÝÇÑÔí
 NoUninstallWarningTitle=ÇÌÒÇ æÌæÏ ÏÇÑäÏ
-NoUninstallWarning=ÊÔÎíÕ ÏÇÏå ÔÏ ˜å ÏÑ ÍÇá ÍÇÖÑ ÇÌÒÇí ÒíÑ ÏÑ ÑÇíÇäå ÔãÇ äÕÈ ÔÏå�ÇäÏ:%n%n%1%n%nÚÏã ÇäÊÎÇÈ Çíä ÇÌÒÇ ÂäåÇ ÑÇ ÍÐÝ äÎæÇåÏ ˜ÑÏ.%n%nÈÇ Çíä æÌæÏ ÂíÇ ãí�ÎæÇåíÏ ÇÏÇãå ÏåíÏ¿
+NoUninstallWarning=ÑÇå ÇäÏÇÒ ÊÔÎíÕ ÏÇÏå ˜å ǘäæä ÇÌÒÇí ÒíÑ ÏÑ ÑÇíÇäå ÔãÇ äÕÈ ÔÏå�ÇäÏ:%n%n%1%n%nÚÏã ÇäÊÎÇÈ Çíä ÇÌÒÇ ÂäåÇ ÑÇ ÍÐÝ äÎæÇåÏ ˜ÑÏ.%n%nÈÇ Çíä æÌæÏ ÂíÇ ãí�ÎæÇåíÏ ÇÏÇãå ÏåíÏ¿
 ComponentSize1=%1 ˜íáæÈÇíÊ
 ComponentSize2=%1 ã�ÇÈÇíÊ
-ComponentsDiskSpaceMBLabel=ÇäÊÎÇÈ ÌÇÑí¡ ÏÓÊ�˜ã Èå [mb] ã�ÇÈÇíÊ ÝÖÇí ÎÇáí ÏÑ ÏíÓ˜ äíÇÒ ÏÇÑÏ.
+ComponentsDiskSpaceMBLabel=ÇäÊÎÇÈ ÌÇÑí¡ ÏÓÊ�˜ã Èå [mb] ã�ÇÈÇíÊ ÝÖÇí ÎÇáí ÏÑ ÏíÓ˜ äíÇÒ ÏÇÑÏ
 
 ; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=ÇäÊÎÇÈ ÇãæÑ ʘãíáí
-SelectTasksDesc=˜ÏÇãí˜ ÇÒ ÇãæÑ ʘãíáí ÒíÑ ÈÇíÏ ÇäÌÇã ÔæäÏ¿
-SelectTasksLabel2=ÇãæÑ ʘãíáí ˜å ãí�ÎæÇåíÏ ÏÑ ÌÑíÇä äÕÈ [name] ÇäÌÇã ÔæäÏ ÑÇ ÇäÊÎÇÈ ˜äíÏ¡ Ó�Ó �Óíä ÑÇ ÈÝÔÇÑíÏ.
+WizardSelectTasks=ÇäÊÎÇÈ æÙÇíÝ ÇÖÇÝí
+SelectTasksDesc=˜ÏÇã í˜ ÇÒ æÙÇíÝ ÇÖÇÝí ÈÇíÏ ÇäÌÇã ÔæÏ¿
+SelectTasksLabel2=ÑÇ ÇäÊÎÇÈ¡Ó�Ó Ñæí ÈÚÏí ˜áí˜ ˜äíÏ [name] æÙÇíÝ ÇÖÇÝí¡Ííä äÕÈ
 
 ; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=ÇäÊÎÇÈ �æÔå ãäæí Start
+WizardSelectProgramGroup=ÇäÊÎÇÈ �æÔå ÇÓÊÇÑÊ ãäæ
 SelectStartMenuFolderDesc=ãíÇäÈÑåÇí ÈÑäÇãå ˜ÌÇ ÈÇíÏ ÞÑÇÑ �íÑäÏ¿
-SelectStartMenuFolderLabel3=ãíÇäÈÑåÇí ÈÑäÇãå ÏÑ �æÔå ÒíÑ ÏÑ ãäæ Start ÓÇÎÊå ÎæÇåäÏ ÔÏ.
-SelectStartMenuFolderBrowseLabel=ÈÑÇí ÇÏÇãå ¡ �Óíä ÑÇ ÈÝÔÇÑíÏ. Ç�Ñ ãí�ÎæÇåíÏ �æÔå�í Ïí�Ñí ÇäÊÎÇÈ ˜äíÏ¡ Ñæí ã˜Çä Ïí�Ñ ˜áí˜ ˜äíÏ.
-MustEnterGroupName=ÈÇíÏ äÇã í˜ �æÔå ÑÇ æÇÑÏ ˜äíÏ.
-GroupNameTooLong=äÇã �æÔå íÇ ãÓíÑ Îíáí ØæáÇäí ÇÓÊ.
-InvalidGroupName=äÇã �æÔå ÛíÑ ãÚÊÈÑ ÇÓÊ.
-BadGroupName=äÇã �æÔå äãí�ÊæÇäÏ ˜ÇÑǘÊÑåÇí ÒíÑ ÑÇ ÏÑÈÑ È�íÑÏ:%n%n%1
-NoProgramGroupCheck2=&�æÔå�Çí ÏÑ ãäæí Start ÏÑÓÊ ä˜ä
+SelectStartMenuFolderLabel3=ÑÇå ÇäÏÇÒ¡ãíÇäÈÑ ÑÇ ÏÑ �æÔå ÇÓÊÇÑÊ ãäæí ÒíÑ ÇíÌÇÏ ãí˜äÏ
+SelectStartMenuFolderBrowseLabel=ÈÑÇí ÇÏÇãå¡ÈÚÏí ÑÇ ˜áí˜ ˜äíÏ.ÈÑÇí ÇäÊÎÇÈ �æÔå ãÊÝÇæÊ¡Ñæí ÌÓÊÌæ ˜áí˜ ˜äíÏ
+MustEnterGroupName=ÔãÇ ÈÇíÏ äÇã �æÔå ÑÇ æÇÑÏ ˜äíÏ
+GroupNameTooLong=äÇã �æÔå íÇ ãÓíÑ Îíáí ÈáäÏ ÇÓÊ
+InvalidGroupName=äÇã �æÔå ÕÍíÍ äíÓÊ
+BadGroupName=äÇã �æÔå äãí�ÊæÇäÏ ˜ÇÑǘÊÑåÇí ÒíÑ ÑÇ ÔÇãá ÔæÏ:%n%n%1
+NoProgramGroupCheck2=�æÔå ÇÓÊÇÑÊ ãäæ ÑÇ ÇíÌÇÏ ä˜ä
 
 ; *** "Ready to Install" wizard page
-WizardReady=ÂãÇÏå�í äÕÈ
-ReadyLabel1=äÕÇÈ¡ åã�ǘäæä ÂãÇÏå äÕÈ [name] ÏÑ ÑÇíÇäå ÔãÇ ãí�ÈÇÔÏ.
-ReadyLabel2a=äÕÈ ÑÇ ÈÝÔÇÑíÏ ÊÇ ÑæäÏ äÕÈ ÇÏÇãå íÇÈÏ¡ íÇ  �íÔíä ÑÇ ÈÝÔÇÑíÏ Ç�Ñ ãí�ÎæÇåíÏ ÊäÙíãÇÊ ÑÇ ÈÇÒÈíäí íÇ ÊÛííÑ ÏåíÏ.
-ReadyLabel2b=äÕÈ ÑÇ ÈÝÔÇÑíÏ ÊÇ ÑæäÏ äÕÈ ÇÏÇãå íÇÈÏ.
+WizardReady=ÂãÇÏå� ÈÑÇí äÕÈ
+ReadyLabel1=Ñæí ÑÇíÇäå ÔãÇ ãíÈÇÔÏ [name] ÑÇå ÇäÏÇÒ¡ ÂãÇÏå äÕÈ
+ReadyLabel2a=Ñæí äÕÈ ÈÑÇí ÇÏÇãå äÕÈ ÈÑäÇãå ¡íÇ Ñæí ÞÈáí ÈÑÇí ÈÇÒÈíäí íÇ ÊÛííÑ ÊäÙíãÇÊ ˜áí˜ ˜äíÏ
+ReadyLabel2b=Ñæí äÕÈ¡ÈÑÇí ÇÏÇãå äÕÈ ÈÑäÇãå ˜áí˜ ˜äíÏ
 ReadyMemoUserInfo=ÇØáÇÚÇÊ ˜ÇÑÈÑ:
 ReadyMemoDir=ã˜Çä ãÞÕÏ:
 ReadyMemoType=äæÚ äÕÈ:
 ReadyMemoComponents=ÇÌÒÇí ÇäÊÎÇÈ ÔÏå:
-ReadyMemoGroup=�æÔå�í ãäæí Start:
-ReadyMemoTasks=ÇãæÑ ʘãíáí:
+ReadyMemoGroup=�æÔå ÇÓÊÇÑÊ ãäæ:
+ReadyMemoTasks=æÙÇíÝ ÇÖÇÝí:
 
 ; *** "Preparing to Install" wizard page
-WizardPreparing=ÏÑ ÍÇá ÂãÇÏå ÔÏä ÈÑÇí äÕÈ
-PreparingDesc=[name] ÂãÇÏå äÕÈ Ñæí ÑÇíÇäå ÔãÇ ãí�ÈÇÔÏ.
-PreviousInstallNotCompleted=ÝÑÂíäÏ äÕÈ/ÍÐÝ ÈÑäÇãå�í ÞÈáí ˜Çãá äÔÏå ÇÓÊ. ÈÑÇí ˜Çãá ˜ÑÏä äÕÈ ÈÇíÏ ÓíÓÊã ÎæÏ ÑÇ ãÌÏÏÇð ÑÇå ÇäÏÇÒí ˜äíÏ.%n%n�Ó ÇÒ ÑÇå ÇäÏÇÒí ãÌÏÏ ÑÇíÇäå�í ÔãÇ¡ äÕÈ ÑÇ ÏæÈÇÑå ÇÌÑÇ ˜äíÏ ÊÇ äÕÈ [name] ˜Çãá ÔæÏ.
-CannotContinue=äÕÈ äãí�ÊæÇäÏ ÇÏÇãå �íÏÇ ˜äÏ. ÈÑÇí ÎÑæÌ ÇäÕÑÇÝ ÑÇ ÈÝÔÇÑíÏ .
+WizardPreparing=ÂãÇÏå ÓÇÒí ÈÑÇí äÕÈ
+PreparingDesc=Ñæí ÑÇíÇäå ÇÓÊ [name] ÈÑäÇãå ÂãÇÏå äÕÈ
+PreviousInstallNotCompleted=ÝÑÇíäÏ äÕÈ¡ÍÐÝ ÈÑäÇãå ÞÈáí ˜Çãá äÔÏå¡ÔãÇ äíÇÒ Èå ÑíÓÊÇÑÊ ÈÑÇí ˜Çãá ÔÏä ÝÑÇíäÏ ÏÇÑíÏ%n%nÈÚÏ ÇÒ ÑíÓÊÇÑÊ ÑÇíÇäå¡ÏæÈÇÑå ÑÇå ÇäÏÇÒ [name] ÈÑÇí ˜Çãá ÔÏä äÕÈ ÇÌÑÇ ˜äíÏ
+CannotContinue=äÕÈ ÑÇ äãí ÊæÇä ÇÏÇãå ÏÇÏ¡ÈÑÇí ÎÑæÌ Ñæí áÛæ ˜áí˜ ˜äíÏ
+ApplicationsFound=ÈÑäÇãå åÇí ÒíÑ ÇÒ ÝÇíá åÇíí ˜å äíÇÒ Èå ÈÑæÒÑÓÇäí ÊæÓØ ÈÑäÇãå ÑÇ ÏÇÑäÏ ÇÓÊÝÇÏå ãí˜ääÏ.ÊæÕíå ãíÔæÏ ÇÌÇÒå ÏåíÏ ÈÑäÇãå ÎæÏ˜ÇÑ Âä ÈÑäÇãå åÇ ÑÇ ÈÈäÏÏ
+ApplicationsFound2=ÈÑäÇãå åÇí ÒíÑ ÇÒ ÝÇíá åÇíí ˜å äíÇÒ Èå ÈÑæÒÑÓÇäí ÊæÓØ ÑÇå ÇäÏÇÒ ÑÇ ÏÇÑäÏ ÇÓÊÝÇÏå ãí˜ääÏ.ÊæÕíå ãíÔæÏ ÇÌÇÒå ÏåíÏ ÑÇå ÇäÏÇÒ ÎæÏ˜ÇÑ Âä ÈÑäÇãå åÇ ÑÇ ÈÈäÏÏ.ÈÚÏ ÇÒ ˜Çãá ÔÏä äÕÈ¡ÑÇå ÇäÏÇÒ Âä ÈÑäÇãå åÇ ÑÇ ÑíÓÊÇÑÊ ÎæÇåÏ ˜ÑÏ.
+CloseApplications=&ÈÓÊä ÎæÏ˜ÇÑ ÈÑäÇãå åÇ
+DontCloseApplications=&ÈÑäÇãå åÇ ÑÇ äÈäÏ
+ErrorCloseApplications=ÑÇå ÇäÏÇÒå ÞÇÏÑ Èå ÈÓÊä ÎæÏ˜ÇÑ åãå ÈÑäÇãå åÇ äíÓÊ.ÊæÕíå ãíÔæÏ ÔãÇ åãå ÈÑäÇãå åÇíí ÑÇ ˜å ÝÇíá åÇí Âä ÈÇíÏ ÈÑæÒÑÓÇäí ÔæäÏ ÞÈá ÇÒ ÇÏÇãå äÕÈ ÈÈäÏíÏ
 
 ; *** "Installing" wizard page
 WizardInstalling=ÏÑ ÍÇá äÕÈ
-InstallingLabel=ÎæÇåÔãäÏ ÇÓÊ ÕÈÑ ˜äíÏ ÊÇ [name] ÏÑ ÑÇíÇäå ÔãÇ äÕÈ ÔæÏ.
+InstallingLabel=Ñæí ÑÇíÇäå¡ãäÊÙÑ ÈãÇäíÏ [name] áØÝÇ ÊÇ ÒãÇä äÕÈ
 
 ; *** "Setup Completed" wizard page
-FinishedHeadingLabel=äÕÈ [name] ˜Çãá ÔÏ
-FinishedLabelNoIcons=äÕÈ ÈÑäÇãå [name] ÏÑ ÑÇíÇäå ÔãÇ Èå ÇÊãÇã ÑÓíÏå ÇÓÊ.
-FinishedLabel=äÕÈ ÈÑäÇãå [name] ÏÑ ÑÇíÇäå ÔãÇ Èå ÇÊãÇã ÑÓíÏå ÇÓÊ. ãã˜ä ÇÓÊ Çíä ÈÑäÇãå ÈÇ ÇäÊÎÇÈ Âí˜æä�åÇí äÕÈ ÔÏå ÔÑæÚ ÔæÏ.
-ClickFinish=ÈÑÇí ÎÑæÌ ÇÒ äÕÈ �ÇíÇä ÑÇ ÈÝÔÇÑíÏ.
-FinishedRestartLabel=ÈÑÇí ÇÊãÇã äÕÈ [name]¡ ÈÇíÏ ÑÇíÇäå ÔãÇ ãÌÏÏÇð ÑÇå�ÇäÏÇÒí ÔæÏ. ÂíÇ ãí�ÎæÇåíÏ åã�ǘäæä ÑÇíÇäå ÎæÏ ÑÇ ÑÇå�ÇäÏÇÒí ˜äíÏ¿
-FinishedRestartMessage=ÈÑÇí ÇÊãÇã äÕÈ [name]¡ ÈÇíÏ ÑÇíÇäå ÔãÇ ÑÇå�ÇäÏÇÒí ãÌÏÏ ÔæÏ. ÂíÇ ãí�ÎæÇåíÏ åã�ǘäæä ÑÇíÇäå ÎæÏ ÑÇ ÑÇå�ÇäÏÇÒí ãÌÏÏ ˜äíÏ¿
-ShowReadmeCheck=Èáå¡ ãí�ÎæÇåã ÝÇíá «ãÑÇ ÈÎæÇä» ÑÇ ÈÎæÇäã.
-YesRadio=ÂÑí¡ ÓíÓÊã åã�ǘäæä ÑÇå�ÇäÏÇÒí ãÌÏÏ ÔæÏ
-NoRadio=ÎíÑ¡ ÈÚÏÇð ÑÇå�ÇäÏÇÒí ãÌÏÏ ãí˜äã.
+FinishedHeadingLabel=˜Çãá ÔÏ [name] æíÒÇÑÏ äÕÈ
+FinishedLabelNoIcons=ÏÑ ÑÇíÇäå ÔãÇ Èå �ÇíÇä ÑÓíÏå ÇÓÊ [name] äÕÈ
+FinishedLabel=ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ [name] äÕÈ
+ClickFinish=ÈÑÇí ÎÑæÌ ÇÒ ÑÇå ÇäÏÇÒ �ÇíÇä ÑÇ ˜áí˜ ˜äíÏ
+FinishedRestartLabel=ÑÇíÇäå ÈÇíÏ ÑíÓÊÇÑÊ ÔæÏ.ÍÇáÇ ÊãÇíá Èå ÑíÓÊÇÑÊ ÏÇÑíÏ¿ [name] ÈÑÇí ˜Çãá ˜ÑÏä äÕÈ
+FinishedRestartMessage=ÑÇíÇäå ÈÇíÏ ÑíÓÊÇÑÊ ÔæÏ [name] ÈÑÇí ˜Çãá ˜ÑÏä äÕÈ%n%nÍÇáÇ ÊãÇíá Èå ÑíÓÊÇÑÊ ÏÇÑíÏ¿
+ShowReadmeCheck=Èáå¡ ãä ÝÇíá «ãÑÇ ÈÎæÇä» ÑÇ ãíÎæÇäã
+YesRadio=Èáå¡ÍÇáÇ ÑÇíÇäå ÑÇ ÑíÓÊÇÑÊ ˜ä
+NoRadio=ÎíÑ¡ÈÚÏÇ ÑÇíÇäå ÑÇ ÑíÓÊÇÑÊ ãí˜äã
 ; used for example as 'Run MyProg.exe'
-RunEntryExec=ÇÌÑÇí %1
-RunEntryShellExec=ãÔÇåÏå�í %1
+RunEntryExec=%1 ÇÌÑÇí
+; used for example as 'View Readme.txt'
+RunEntryShellExec=%1 ãÔÇåÏå
 
 ; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=äÕÈ Èå ÏíÓ˜ ÈÚÏí ÇÍÊíÇÌ ÏÇÑÏ
-SelectDiskLabel2=ÎæÇåÔãäÏ ÇÓÊ ÏíÓ˜ %1 ÑÇ ÞÑÇÑ ÏåíÏ æ ÊÇííÏ ÑÇ ÈÝÔÇÑíÏ.%n%nÇ�Ñ ÝÇíá�åÇí ÏÑæä Çíä ÏíÓ˜ �æÔå�í Ïí�Ñí ÛíÑ ÇÒ Çíä˜å ÏÑ ÒíÑ äãÇíÔ ÏÇÏå¡ �íÏÇ ãí�ÔæäÏ¡ ãÓíÑ ÏÑÓÊ ÑÇ æÇÑÏ ˜äíÏ íÇ ã˜Çä Ïí�Ñ ÑÇ ÈÝÔÇÑíÏ.
+ChangeDiskTitle=ÑÇå ÇäÏÇÒ Èå ÏíÓ˜ ÈÚÏí ÇÍÊíÇÌ ÏÇÑÏ
+SelectDiskLabel2=ÑÇ ÞÑÇÑ ÏÇÏå æ Ñæí ÊÇííÏ ˜áí˜ ˜äíÏ %1 áØÝÇ ÏíÓ˜%n%nÇ�Ñ ÝÇíá�åÇí ÏÑæä Çíä ÏíÓ˜ �æÔå�í Ïí�Ñí ÛíÑ ÇÒ Çíä˜å ÏÑ ÒíÑ äãÇíÔ ÏÇÏå¡ �íÏÇ ãí�ÔæäÏ¡ ãÓíÑ ÏÑÓÊ ÑÇ æÇÑÏ ˜äíÏ íÇ ã˜Çä Ïí�Ñ ÑÇ ÇäÊÎÇÈ ˜äíÏ
 PathLabel=&ãÓíÑ:
-FileNotInDir2=ÝÇíá "%1" äãí�ÊæÇäÏ ÏÑ "%2" �íÏÇ ÔæÏ. ÎæÇåÔãäÏ ÇÓÊ ÏíÓ˜ ÏÑÓÊ ÑÇ ÞÑÇÑ ÏåíÏ íÇ �æÔå�í Ïí�Ñí ÑÇ ÇäÊÎÇÈ ˜äíÏ.
-SelectDirectoryLabel=ÎæÇåÔãäÏ ÇÓÊ ãÓíÑ ÏíÓ˜ ÈÚÏí ÑÇ ãÔÎÕ ˜äíÏ.
+FileNotInDir2=ÝÇíá "%1" äãí�ÊæÇäÏ ÏÑ "%2" �íÏÇ ÔæÏ. áØÝÇ ÏíÓ˜ ÏÑÓÊ ÑÇ ÞÑÇÑ ÏåíÏ íÇ �æÔå�í Ïí�Ñí ÑÇ ÇäÊÎÇÈ ˜äíÏ
+SelectDirectoryLabel=áØÝÇ ãÓíÑ ÏíÓ˜ ÈÚÏí ÑÇ ãÔÎÕ ˜äíÏ
 
 ; *** Installation phase messages
-SetupAborted=äÕÈ ˜Çãá äÔÏ.%n%nÎæÇåÔãäÏ ÇÓÊ äÓÈÊ Èå ÑÝÚ ãÔ˜á ÇÞÏÇã æ äÕÈ ÑÇ ÏæÈÇÑå ÇÌÑÇ äãÇííÏ.
-;EntryAbortRetryIgnore=ÈÑÇí ÊáÇÔí Ïí�Ñ Retry¡ ÈÑÇí ÇÏÇãå ˜ÇÑ Èå åÑ ÊÑÊíÈ Ignore íÇ ÈÑÇí áÛæ ˜ÑÏä äÕÈ Abort ÑÇ ÈÝÔÇÑíÏ.
-EntryAbortRetryIgnore=Click Retry to try again, Ignore to proceed anyway, or Abort to cancel installation.
+SetupAborted=äÕÈ ˜Çãá äÔÏ%n%náØÝÇ äÓÈÊ Èå ÑÝÚ ãÔ˜á ÇÞÏÇã æ ÑÇå ÇäÏÇÒ ÑÇ ÏæÈÇÑå ÇÌÑÇ äãÇííÏ
+EntryAbortRetryIgnore=Ñæí ÊÌÏíÏäÙÑ ÈÑÇí ÓÚí ÏæÈÇÑå¡ �Ôã�æÔí ÈÑÇí ÇÏÇãå ÏÑåÑ ÕæÑÊ¡ íÇ áÛæ ÈÑÇí ÎÑæÌ ÇÒ äÕÈ ˜áí˜ ˜äíÏ
 
 ; *** Installation status messages
-StatusCreateDirs=ÏÑ ÍÇá ÓÇÎÊä �æÔå�åÇ...
-StatusExtractFiles=ÏÑ ÍÇá ÇÓÊÎÑÇÌ ÝÇíá�åÇ...
-StatusCreateIcons=ÏÑ ÍÇá ÓÇÎÊä ãíÇäÈÑåÇ...
-StatusCreateIniEntries=ÏÑ ÍÇá ÓÇÎÊä ãÍÊæíÇÊINI...
-StatusCreateRegistryEntries=ÏÑ ÍÇá ÓÇÎÊä ãÍÊæíÇÊ ÈÇí�Çäí(ÑÌíÓÊÑí)...
-StatusRegisterFiles=ÏÑ ÍÇá ËÈÊ ÝÇíá�åÇ...
-StatusSavingUninstall=ÏÑ ÍÇá ÐÎíÑå ÇØáÇÚÇÊ ÍÐÝ ÈÑäÇãå...
-StatusRunProgram=ÏÑ ÍÇá ÇÊãÇã äÕÈ...
-StatusRollback=ÏÑ ÍÇá ÈÇÒ�ÑÏÇäÏä ÊÛííÑÇÊ...
+StatusClosingApplications=...ÈÓÊä ÈÑäÇãå åÇ
+StatusCreateDirs=...ÇíÌÇÏ �æÔå åÇ
+StatusExtractFiles=...ÇÓÊÎÑÇÌ ÝÇíá åÇ
+StatusCreateIcons=...ÇíÌÇÏ ãíÇäÈÑåÇ
+StatusCreateIniEntries=...INI ÇíÌÇÏ æÑæÏí
+StatusCreateRegistryEntries=..ÇíÌÇÏ æÑæÏí ÑíÌÓÊÑí
+StatusRegisterFiles=...ËÈÊ ÝÇíá�åÇ
+StatusSavingUninstall=...ÐÎíÑå ÇØáÇÚÇÊ ÍÐÝ ÈÑäÇãå
+StatusRunProgram=...ÏÑ ÍÇá ÇÊãÇã äÕÈ
+StatusRestartingApplications=...ÑíÓÊÇÑÊ ÈÑäÇãå åÇ
+StatusRollback=...ÏÑ ÍÇá ÈÇÒ�ÑÏÇäÏä ÊÛííÑÇÊ
 
 ; *** Misc. errors
-ErrorInternal2=ãÔ˜á ÏÇÎáí %1
-ErrorFunctionFailedNoCode=%1 äÇãæÝÞ ÈæÏ
-ErrorFunctionFailed=%1 äÇãæÝÞ ÈæÏº ˜Ï %2
-ErrorFunctionFailedWithMessage=%1 äÇãæÝÞ ÈæÏ¡ ˜Ï %2%n%3
-ErrorExecutingProgram=ÚÏã ÊæÇäÇíí ÏÑ ÇÌÑÇí ÝÇíá:%n%1
+ErrorInternal2=ÎØÇí ÏÇÎáí: %1
+ErrorFunctionFailedNoCode=%1 ãæÝÞ äÔÏ
+ErrorFunctionFailed=%1ãæÝÞ äÔÏ¡ ˜Ï %2
+ErrorFunctionFailedWithMessage=%1ãæÝÞ äÔÏ¡ ˜Ï %2.%n%3
+ErrorExecutingProgram=ÞÇÏÑ Èå ÇÌÑÇí ÝÇíá äíÓÊ:%n%1
 
 ; *** Registry errors
-ErrorRegOpenKey=ÎØÇ ÏÑ åä�Çã ÈÇÒ˜ÑÏä ˜áíÏ ÈÇí�Çäí (ÑÌíÓÊÑí):%n%1\%2
-ErrorRegCreateKey=ÎØÇ ÏÑ åä�Çã ÓÇÎÊä ˜áíÏ ÈÇí�Çäí (ÑÌíÓÊÑí):%n%1\%2
-ErrorRegWriteKey=ÎØÇ ÏÑ åä�Çã äæÔÊä ˜áíÏ ÈÇí�Çäí (ÑÌíÓÊÑí):%n%1\%2
+ErrorRegOpenKey=ÎØÇí ÈÇÒ˜ÑÏä ˜áíÏ ÑíÌÓÊÑí:%n%1\%2
+ErrorRegCreateKey=ÎØÇí ÇíÌÇÏ ˜áíÏ ÑíÌÓÊÑí:%n%1\%2
+ErrorRegWriteKey=ÎØÇí äæÔÊä ˜áíÏ ÑíÌÓÊÑí:%n%1\%2
 
 ; *** INI errors
-ErrorIniEntry=ÎØÇ ÏÑ åä�Çã ÓÇÎÊä ãÍÊæÇí INI ÏÑ ÝÇíá "%1".
+ErrorIniEntry="ÎØÇí ÇíÌÇÏ æÑæÏí Çíäí ÏÑ ÝÇíá "%1
 
 ; *** File copying errors
-;FileAbortRetryIgnore=ÈÑÇí ÊáÇÔí Ïí�Ñ Retry¡ ÈÑÇí ÇÒ Þáã ÇäÏÇÎÊä Çíä ÝÇíá (ÊæÕíå äãí�ÔæÏ) Ignore íÇ ÈÑÇí áÛæ ˜ÑÏä äÕÈ Abort ÑÇ ÈÝÔÇÑíÏ.
-;FileAbortRetryIgnore2=ÈÑÇí ÊáÇÔí Ïí�Ñ Retry¡ ÈÑÇí ÇÒ Þáã ÇäÏÇÎÊä �ÑÏÇÒÔ Èå åÑ ÊÑÊíÈ (ÊæÕíå äãí�ÔæÏ) Ignore íÇ ÈÑÇí áÛæ ˜ÑÏä äÕÈ Abort ÑÇ ÈÝÔÇÑíÏ.
-FileAbortRetryIgnore=Click Retry to try again, Ignore to skip this file (not recommended), or Abort to cancel installation.
-FileAbortRetryIgnore2=Click Retry to try again, Ignore to proceed anyway (not recommended), or Abort to cancel installation.
-SourceIsCorrupted=ÝÇíá ãäÈÚ ÎÑÇÈ ÔÏå ÈæÏ
-SourceDoesntExist=ÝÇíá ãäÈÚ "1%" æÌæÏ äÏÇÑÏ
-;ExistingFileReadOnly=ÝÇíá ãæÌæÏ ÈÕæÑÊ ÝÞØ-ÎæÇäÏäí ÊäÙíã ÔÏå ÇÓÊ.%n%n.ÈÑÇí ÍÐÝ æíŽ�í ÝÞØ-ÎæÇäÏäí Retry¡ ÈÑÇí ÇÒ Þáã ÇäÏÇÎÊä Çíä ÝÇíá Ignore íÇ ÈÑÇí áÛæ ˜ÑÏä äÕÈ Abort ÑÇ ÈÝÔÇÑíÏ.
-ExistingFileReadOnly=The existing file is marked as read-only.%n%nClick Retry to remove the read-only attribute and try again, Ignore to skip this file, or Abort to cancel installation.
-ErrorReadingExistingDest=í˜ ÎØÇ ÏÑ åä�Çã ÎæÇäÏä ÝÇíá ãæÌæÏ ÑÎ ÏÇÏ :
-FileExists=Çíä ÝÇíá ÏÑ ÍÇá ÍÇÖÑ æÌæÏ ÏÇÑÏ.%n%nÂíÇ ãí�ÎæÇåíÏ Çíä ÝÇíá ÑæäæíÓí ÔæÏ¿
+FileAbortRetryIgnore=Ñæí ÊÌÏíÏäÙÑ ÈÑÇí ÓÚí ÏæÈÇÑå¡ �Ôã�æÔí ÈÑÇí ÑÏ Çíä ÝÇíá(ÊæÕíå äãíÔæÏ)¡ íÇ áÛæ ÈÑÇí ÎÑæÌ ÇÒ äÕÈ ˜áí˜ ˜äíÏ
+FileAbortRetryIgnore2=Ñæí ÊÌÏíÏäÙÑ ÈÑÇí ÓÚí ÏæÈÇÑå¡ �Ôã�æÔí ÈÑÇí ÇÏÇãå ÏÑåÑ ÕæÑÊ(ÊæÕíå äãíÔæÏ)¡ íÇ áÛæ ÈÑÇí ÎÑæÌ ÇÒ äÕÈ ˜áí˜ ˜äíÏ
+SourceIsCorrupted=ÝÇíá ãäÈÚ ÎÑÇÈ ÇÓÊ
+SourceDoesntExist=æÌæÏ äÏÇÑÏ "%1" ÝÇíá ãäÈÚ
+ExistingFileReadOnly=ÝÇíá ãæÌæÏ Èå ÚäæÇä ÝÇíá ÝÞØ ÎæÇäÏäí äÔÇäå ÔÏå ÇÓÊ%n%nÑæí ÊÌÏíÏäÙÑ ÈÑÇí ÍÐÝ ÕÝÊ ÝÞØ ÎæÇäÏäí æ ÓÚí ÏæÈÇÑå¡�Ôã�æÔí ÈÑÇí ÑÏ Çíä ÝÇíá¡ íÇ áÛæ ÈÑÇí ÎÑæÌ ÇÒ äÕÈ ˜áí˜ ˜äíÏ
+ErrorReadingExistingDest=í˜ ÎØÇ ÏÑ Ííä ÎæÇäÏä ÝÇíá ãæÌæÏ ÑÎ ÏÇÏ:
+FileExists=ÝÇíá ÏÑ ÍÇá ÍÇÖÑ æÌæÏ ÏÇÑÏ%n%nãí�ÎæÇåíÏ Çíä ÝÇíá ÌÇí�Òíä ÔæÏ¿
 ExistingFileNewer=ÝÇíá ãæÌæÏ ÌÏíÏÊÑ ÇÒ ÝÇíáí ÇÓÊ ˜å ÏÑ äÕÈ ÈÑäÇãå æÌæÏ ÏÇÑÏ. ÊæÕíå ãí�ÔæÏ ˜å ÝÇíá ãæÌæÏ ÑÇ ä�å ÏÇÑíÏ.%n%nÂíÇ ãí�ÎæÇåíÏ ˜å Çíä ÝÇíá ãæÌæÏ ÑÇ ä�å ÏÇÑíÏ¿
-ErrorChangingAttr=í˜ ÎØÇ ÏÑ åä�Çã ÊáÇÔ ÈÑÇí ÊÛííÑ æíŽ�í�åÇí Çíä ÝÇíá ãæÌæÏ ÑÎ ÏÇÏ:
-ErrorCreatingTemp=í˜ ÎØÇ ÏÑ åä�Çã ÊáÇÔ ÈÑÇí ÓÇÎÊä í˜ ÝÇíá ÏÑ �æÔå ãÞÕÏ ÑÎ ÏÇÏ:
-ErrorReadingSource=í˜ ÎØÇ ÏÑ åä�Çã ÊáÇÔ ÈÑÇí ÎæÇäÏä ÝÇíá ãäÈÚ ÑÎ ÏÇÏ:
-ErrorCopying=í˜ ÎØÇ ÏÑ åä�Çã ÊáÇÔ ÈÑÇí ˜�í í˜ ÝÇíá ÑÎ ÏÇÏ:
-ErrorReplacingExistingFile=í˜ ÎØÇ ÏÑ åä�Çã ÊáÇÔ ÈÑÇí ÌÇí�Òíäí ÝÇíá ãæÌæÏ ÑÎ ÏÇÏ:
-ErrorRestartReplace=ÌÇí�íÒíäí �Ó ÇÒ ÑÇå�ÇäÏÇÒí ãÌÏÏ äÇãæÝÞ ÈæÏ:
-ErrorRenamingTemp=í˜ ÎØÇ ÏÑ åä�Çã ÊáÇÔ ÈÑÇí ÊÛííÑ äÇã í˜ ÝÇíá ÏÑ �æÔå ãÞÕÏ ÑÎ ÏÇÏ:
-ErrorRegisterServer=äÇÊæÇäÇíí ÏÑ ËÈÊ DLL/OCX: %1
-ErrorRegSvr32Failed=RegSvr32 äÇãæÝÞ ÈæÏ ÈÇ ˜Ï ÎÑæÌí %1
+ErrorChangingAttr=í˜ ÎØÇ Ííä ÓÚí ÈÑÇí ÊÛííÑ ÕÝÇÊ ÝÇíá ãæÌæÏ ÑÎ ÏÇÏ:
+ErrorCreatingTemp=í˜ ÎØÇ Ííä ÓÚí ÈÑÇí ÓÇÎÊä í˜ ÝÇíá ÏÑ �æÔå ãÞÕÏ ÑÎ ÏÇÏ:
+ErrorReadingSource=í˜ ÎØÇ Ííä ÓÚí ÈÑÇí ÎæÇäÏä ÝÇíá ãäÈÚ ÑÎ ÏÇÏ:
+ErrorCopying=í˜ ÎØÇ Ííä ÓÚí ÈÑÇí ˜�í í˜ ÝÇíá ÑÎ ÏÇÏ:
+ErrorReplacingExistingFile=í˜ ÎØÇ Ííä ÓÚí ÈÑÇí ÌÇí�Òíäí ÝÇíá ãæÌæÏ ÑÎ ÏÇÏ:
+ErrorRestartReplace=ãæÝÞ Èå ÌÇí�Òíäí ÈÚÏ ÇÒ ÑíÓÊÇÑÊ äÔÏ:
+ErrorRenamingTemp=í˜ ÎØÇ ÏÑ Ííä ÓÚí ÈÑÇí ÊÛííÑ äÇã í˜ ÝÇíá ÏÑ �æÔå ãÞÕÏ ÑÎ ÏÇÏ:
+ErrorRegisterServer=äÇÊæÇä ÏÑ ËÈÊ Ïí Çá Çá/Çæ Óí Çí˜Ó: %1
+ErrorRegSvr32Failed=%1 ÑíÌÓÊÑÓÑæÑ Óí æ Ïæ ãæÝÞ äÔÏ ÈÇ ˜Ï ÎÑæÌ
 ErrorRegisterTypeLib=äÇÊæÇäí ÏÑ ËÈÊ äæÚ ˜ÊÇÈÎÇäå: %1
 
 ; *** Post-installation errors
-ErrorOpeningReadme=í˜ ÎØÇ ÏÑ åä�Çã ÊáÇÔ ÈÑÇí ÎæÇäÏä ÝÇíá «ãÑÇ ÈÎæÇä» ÑÎ ÏÇÏ
-ErrorRestartingComputer=äÕÈ äãí�ÊæÇäÏ ÑÇíÇäå ÑÇ ÑÇå�ÇäÏÇÒí ãÌÏÏ ˜äÏ. ÎæÇåÔãäÏ ÇÓÊ Çíä ˜ÇÑ ÑÇ Èå ÕæÑÊ ÏÓÊí ÇäÌÇã ÏåíÏ.
+ErrorOpeningReadme=í˜ ÎØÇ ÏÑ Ííä ÓÚí ÈÑÇí ÎæÇäÏä ÝÇíá «ãÑÇ ÈÎæÇä» ÑÎ ÏÇÏ
+ErrorRestartingComputer=ÑÇå ÇäÏÇÒ ÞÇÏÑ Èå ÑíÓÊÇÑÊ ÑÇíÇäå äíÓÊ.áØÝÇ Çíä ˜ÇÑ ÑÇ ÈØæÑ ÏÓÊí ÇÌÑÇ ˜äíÏ
 
 ; *** Uninstaller messages
-UninstallNotFound=ÝÇíá "%1" æÌæÏ äÏÇÑÏ. ÍÐÝ ãã˜ä äíÓÊ 
-UninstallOpenError=ÝÇíá "%1" äãí�ÊæÇäÏ ÈÇÒ ÔæÏ. ÍÐÝ ãã˜ä äíÓÊ 
-UninstallUnsupportedVer=The uninstall log file "%1" is in a format not recognized by this version of the uninstaller. Cannot uninstall
-UninstallUnsupportedVer=ÝÇíá �ÒÇÑÔ ÍÐÝ  "%1" ÏÑ Ô˜áí ÇÓÊ ˜å ÈÑÇí Çíä äÓÎå ÇÒ ÈÑäÇãå ÞÇÈá ÊÔÎíÕ äíÓÊ. ÍÐÝ ãã˜ä äíÓÊ
-UninstallUnknownEntry=ÈÇ í˜ æÑæÏí äÇãÔÎÕ (%1) ÏÑ �ÒÇÑÔ ÍÐÝ ãæÇÌå ÔÏå ÇÓÊ
-ConfirmUninstall=ÂíÇ ÇØãíäÇä ÏÇÑíÏ ˜å ãí�ÎæÇåíÏ %1 æ ÊãÇã ÇÌÒÇí Âä ÑÇ ÍÐÝ ˜äíÏ¿  
-UninstallOnlyOnWin64=Çíä äÕÈ ÊäåÇ ãí�ÊæÇäÏ ÇÒ Ñæí æíäÏæÒ�åÇí 64-ÈíÊí ÍÐÝ ÔæÏ.
-OnlyAdminCanUninstall=Çíä äÕÈ ÊäåÇ ãí�ÊæÇäÏ Èå æÓíáå ˜ÇÑÈÑí ÈÇ ÇãÊíÇÒÇÊ ãÏíÑíÊí ÍÐÝ ÔæÏ.
-UninstallStatusLabel=ÎæÇåÔãäÏ ÇÓÊ ÕÈÑ ˜äíÏ ÊÇ %1 ÇÒ ÑÇíÇäå ÔãÇ ÍÐÝ ÔæÏ
+UninstallNotFound=æÌæÏ äÏÇÑÏ.äãíÊæÇä ÍÐÝ ˜ÑÏ "%1" ÝÇíá
+UninstallOpenError=äãíÊæÇäÏ ÈÇÒÔæÏ.äãíÊæÇä ÍÐÝ ˜ÑÏ "%1" ÝÇíá
+UninstallUnsupportedVer=ÏÑí˜ ÝÑãÊ ÔäÇÓÇíí äÔÏå ÈÇ Çíä äÓÎå ÇÒ ÍÐÝ ˜ääÏå åÓÊ.äãíÊæÇä ÍÐÝ ˜ÑÏ "%1" ÝÇíá æÞÇíÚ ÍÐÝ
+UninstallUnknownEntry=ãæÇÌå ÔÏå ÏÑ æÞÇíÚ ÍÐÝ (%1) í˜ æÑæÏí äÇãÔÎÕ
+ConfirmUninstall=ÑÇ ÈØæÑ ˜Çãá ÍÐÝ ˜äíÏ¿ %1 ÂíÇ ãíÎæÇåíÏ
+UninstallOnlyOnWin64=Çíä ÑÇå ÇäÏÇÒ ÊäåÇ ãí�ÊæÇäÏ ÇÒ Ñæí æíäÏæÒ�åÇí 64ÈíÊí ÍÐÝ ÔæÏ
+OnlyAdminCanUninstall=Çíä ÑÇå ÇäÏÇÒ ÊäåÇ ãí�ÊæÇäÏ Èå æÓíáå ˜ÇÑÈÑí ÈÇ ÇãÊíÇÒÇÊ ãÏíÑíÊí ÍÐÝ ÔæÏ
+UninstallStatusLabel=ÇÒ ÑÇíÇäå ãäÊÙÑ ÈãÇäíÏ %1 áØÝÇ ÊÇ ÒãÇä ÍÐÝ
 UninstalledAll=ÈÇ ãæÝÞíÊ ÇÒ ÑÇíÇäå ÔãÇ ÍÐÝ ÔÏ %1
-UninstalledMost=ÍÐÝ %1 ˜Çãá ÔÏ%n%nÈÚÖí ÇÒ ÈÎÔ�åÇ ÍÐÝ äÔÏäÏ. ÂäåÇ ÑÇ ãí�ÊæÇäíÏ Èå ÕæÑÊ ÏÓÊí ÍÐÝ ˜äíÏ.
-UninstalledAndNeedsRestart=ÈÑÇí ÇÊãÇã ÍÐÝ %1¡ ÑÇíÇäå ÔãÇ ÈÇíÏ ÑÇå�ÇäÏÇÒí ãÌÏÏ ÔæÏ. ÂíÇ ãí�ÎæÇåíÏ åã�ǘäæä ÑÇíÇäå ÎæÏ ÑÇ ÑÇå�ÇäÏÇÒí ãÌÏÏ ˜äíÏ¿
-UninstallDataCorrupted=ÝÇíá "%1" ÎÑÇÈ ÔÏå ÇÓÊ. ÍÐÝ ãã˜ä äíÓÊ
+UninstalledMost=˜Çãá ÔÏ %1 ÍÐÝ%n%nÈÚÖí ÇÒ ÝÇíáåÇ ÍÐÝ äÔÏäÏ¡ÂäåÇ ÑÇ ãíÊæÇäíÏ ÏÓÊí ÍÐÝ ˜äíÏ
+UninstalledAndNeedsRestart=ÑÇíÇäå ÈÇíÏ ÑíÓÊÇÑÊ ÔæÏ %1 ÈÑÇí ˜Çãá ÔÏä ÍÐÝ%n%nÍÇáÇ ÊãÇíá Èå ÑíÓÊÇÑÊ ÏÇÑíÏ¿
+UninstallDataCorrupted=ÎÑÇÈ åÓÊ.äãíÊæÇä ÍÐÝ ˜ÑÏ "%1" ÝÇíá
 
 ; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=ÝÇíá�åÇí ÇÔÊÑǘí åã ÍÐÝ ÔæäÏ¿
-ConfirmDeleteSharedFile2=ÓíÓÊã ÊÔÎíÕ ÏÇÏå ÇÓÊ ˜å ÝÇíá ÇÔÊÑǘí ÒíÑ Îíáí æÞÊ ÇÓÊ ÊæÓØ åí� ÈÑäÇãå�Çí ÇÓÊÝÇÏå äÔÏå ÇÓÊ. ÂíÇ ãí�ÎæÇåíÏ ÈÑÇí ÍÐÝ Çíä ÝÇíá ÇÔÊÑǘí äíÒ ÍÐÝ ÔæÏ¿%n%nÇ�Ñ ÈÑäÇãå�åÇíí åäæÒ ÇÒ Çíä ÝÇíá ÇÓÊÝÇÏå ãí�˜ääÏ æ Çíä ÝÇíá ÍÐÝ ÔæÏ¡ ãã˜ä ÇÓÊ Âä ÈÑäÇãå�åÇ Èå ÏÑÓÊí ˜ÇÑ äääÏ. Ç�Ñ ÇØãíäÇä äÏÇÑíÏ ÎíÑ ÑÇ ÇäÊÎÇÈ ˜äíÏ. ÈÇÞí ãÇäÏä Çíä ÝÇíá ÏÑ ÓíÓÊã ÔãÇ ãÔ˜áí �íÔ äãí�ÂæÑÏ.
+ConfirmDeleteSharedFileTitle=ÝÇíá�åÇí ãÔÊј ÈÇ ÓÇíÑ äÑã ÇÝÒÇÑåÇ åã ÍÐÝ ÔæäÏ¿
+ConfirmDeleteSharedFile2=ÓíÓÊã ÊÔÎíÕ ÏÇÏå ˜å ÝÇíá ÇÔÊÑǘí ÒíÑ ãÏÊí ÇÓÊ ÊæÓØ åí� ÈÑäÇãå�Çí ÇÓÊÝÇÏå äÔÏå ÇÓÊ. ÂíÇ ÊãÇíáí ÈÑÇí ÍÐÝ Çíä ÝÇíá ÇÔÊÑǘí ÏÇÑíÏ¿%n%nÇ�Ñ ÈÑäÇãå�åÇíí åäæÒ ÇÒ Çíä ÝÇíá ÇÓÊÝÇÏå ãí�˜ääÏ æ Çíä ÝÇíá ÍÐÝ ÔæÏ¡ ãã˜ä ÇÓÊ Âä ÈÑäÇãå�åÇ Èå ÏÑÓÊí ˜ÇÑ ä˜ääÏ. Ç�Ñ ÇØãíäÇä äÏÇÑíÏ ÎíÑ ÑÇ ÇäÊÎÇÈ ˜äíÏ.ãÇäÏä Çíä ÝÇíá ÏÑ ÓíÓÊã ÔãÇ ãÔ˜áí �íÔ äãí�ÂæÑÏ
 SharedFileNameLabel=äÇã ÝÇíá:
 SharedFileLocationLabel=ã˜Çä:
 WizardUninstalling=æÖÚíÊ ÍÐÝ ÈÑäÇãå
-StatusUninstalling=...%1 ÏÑ ÍÇá ÍÐÝ ˜ÑÏä
+StatusUninstalling=...%1 ÏÑ ÍÇá ÍÐÝ
+
+; *** Shutdown block reasons
+ShutdownBlockReasonInstallingApp=%1 äÕÈ
+ShutdownBlockReasonUninstallingApp=%1 ÏÑ ÍÇá ÍÐÝ
 
 ; The custom messages below aren't used by Setup itself, but if you make
 ; use of them in your scripts, you'll want to translate them.
 
 [CustomMessages]
-NameAndVersion=%1 æíÑÇíÔ %2
-AdditionalIcons=ÔãÇíá åÇí ÇÖÇÝí:
-CreateDesktopIcon=ÝÑÇåã ˜ÑÏä í˜ ÔãÇíá ãíÒ˜ÇÑ
-CreateQuickLaunchIcon=ÝÑÇåã ˜ÑÏä ÔãÇíá Quick Launch
+
+NameAndVersion=%1 %2
+AdditionalIcons=Âí˜æä ÇÖÇÝí:
+CreateDesktopIcon=ÇíÌÇÏ ãíÇäÈÑ ÏÓ˜ÊÇ�
+CreateQuickLaunchIcon=ÇíÌÇÏ ãíÇäÈÑ ÇöÌÑÇí ÓÑíÚ
 ProgramOnTheWeb=%1 ÏÑ æÈ
-UninstallProgram=ÍÐÝ %1
-LaunchProgram=ÈÇÒ ˜ÑÏä %1
-AssocFileExtension=æÇÈÓÊå ˜ÑÏä %1 ÈÇ ÞÇáÈ ÝÇíá %2
-AssocingFileExtension=ÏÑ ÍÇá æÇÈÓÊå ˜ÑÏä %1 ÈÇ ÞÇáÈ ÝÇíá %2...
+UninstallProgram=%1 ÍÐÝ
+LaunchProgram=%1 ÔÑæÚ
+AssocFileExtension=æÇÈÓÊå ÓÇÒí %1 ÈÇ %2 �ÓæäÏ ÝÇíá&
+AssocingFileExtension=æÇÈÓÊå ÓÇÒí %1 ÈÇ %2 �ÓæäÏ ÝÇíá
+AutoStartProgramGroupDescription=ÇöÓÊÇÑÊ Â�:
+AutoStartProgram=%1 ÔÑæÚ ÎæÏ˜ÇÑ
+AddonHostProgramNotFound=%1 äãíÊæÇäÏ ÏÑ �æÔå Çí ˜å ÇäÊÎÇÈ ˜ÑÏíÏ ã˜Çä íÇÈí ÔæÏ.%n%nÈåÑÍÇá ãíÎæÇåíÏ ÇÏÇãå ÏåíÏ¿

+ 39 - 23
Files/Languages/Unofficial/Thai.isl

@@ -1,9 +1,9 @@
 ; Translation made with Stonevoice Translator 2.2 (http://www.stonevoice.com/auto/translator)
 ; $Translator:NL=%n:TB=%t
-; Suwat Yangfuang
-; [email protected]
+; Suwat Yangfuang, Ekachai Omkaew
+; [email protected], [email protected]
 ; 
-; *** Inno Setup version 5.1.11+ English messages ***
+; *** Inno Setup version 5.5.3+ Thai messages ***
 ;
 ; To download user-contributed translations of this file, go to:
 ;   http://www.jrsoftware.org/files/istrans/
@@ -52,16 +52,20 @@ LdrCannotExecTemp=
 LastErrorMessage=%1.%n%n¤ÇÒÁ¼Ô´¾ÅÒ´àÃ×èͧ %2: %3
 SetupFileMissing=ä¿Åì %1 ã¹â¿Åà´ÍÃì·ÕèµÔ´µÑé§äÁèÊÁºÙÃ³ì ¡ÃØ³Òá¡éä¢ãªéä¿Åì¡ÒõԴµÑé§·ÕèÊÁºÙóì
 SetupFileCorrupt=ä¿Åì¡ÒõԴµÑé§àÊÕÂËÒ ¡ÃسÒá¡éä¢ãªéä¿Åì¡ÒõԴµÑé§·ÕèÊÁºÙóì
-SetupFileCorruptOrWrongVer=àÇÍÃìªÑè¹ä¿Åì¡ÒõԴµÑé§äÁè¶Ù¡µéͧ ¡ÃسÒá¡éä¢ãªéä¿Åì¡ÒõԴµÑé§·ÕèÊÁºÙóì
-NotOnThisPlatform=â»Ãá¡ÃÁ¹ÕéäÁè·Ó§Ò¹ ã¹Ãкº %1.
-OnlyOnThisPlatform=â»Ãá¡ÃÁ¹Õé µéͧ·Ó§Ò¹ã¹Ãкº %1.
-OnlyOnTheseArchitectures=â»Ãá¡ÃÁ¹ÕéÊÒÁÒöµÔ´µÑé§ã¹ Windows ÃØè¹·ÕèÍ͡ẺÁÒÊÓËÃѺʶһѵ¡ÃÃÁ¢Í§Ë¹èÇ»ÃÐÁÇżŴѧµèÍ仹Õé:%n%n%1
-MissingWOW64APIs=ÃØè¹¢Í§ Windows ·Õè¤Ø³ãªéÍÂÙèäÁè¨Óà»ç¹µéͧÁÕ¡ÒÃãªé§Ò¹â´ÂµÔ´µÑé§à¾×èÍ·Ó¡ÒõԴµÑé§áºº 64 - bit àÁ×è͵éͧ¡ÒÃá¡é䢻ѭËÒ¹Õéâ»Ã´µÔ´µÑé§ Service Pack 1%.
-WinVersionTooLowError=â»Ãá¡ÃÁ¹Õéµéͧ¡ÒÃÃкº %1 àÇÍÃìªÑè¹ %2 ËÃ×ÍãËÁè¡ÇèÒ
-WinVersionTooHighError=â»Ãá¡ÃÁ¹ÕéäÁèÊÒÁÒö µÔ´µÑé§ã¹Ãкº %1 àÇÍÃìªÑè¹ %2 ËÃ×ÍãËÁè¡ÇèÒ
-AdminPrivilegesRequired=¤Ø³µéͧãªé USER ¢Í§¼Ùé´ÙáÅÃкºàªè¹ administrator à¾Õè͵ԴµÑé§â»Ãá¡ÃÁ¹Õé.
-PowerUserPrivilegesRequired=¤Ø³µéͧà¢éÒÊÙèÃкº ´éǼÙéãªé§Ò¹ ·Õèà»ç¹¼Ùé´ÙáÅÃкº àªè¹ administrator ËÃ×Í à»ç¹¼Ùéãªé§Ò¹ ·ÕèÍÂÙèã¹¡ÅØèÁ Power Users àÁ×è͵éͧ¡ÒõԴµÑé§â»Ãá¡ÃÁ¹Õé
-SetupAppRunningError=ÁÕâ»Ãá¡ÃÁ %1 ¡ÓÅѧ·Ó§Ò¹ÍÂÙè%n%n¡ÃسһԴâ»Ãá¡ÃÁ áÅФÅÔ¡ µ¡Å§ à¾×èÍ·Ó§Ò¹µèÍ ËÃ×Í Â¡àÅÔ¡ à¾×èͨº¡ÒõԴµÑé§
+SetupFileCorruptOrWrongVer=àÇÍÃìªÑè¹ä¿Åì¡ÒõԴµÑé§äÁè¶Ù¡µéͧ ¡ÃسÒá¡éä¢ãªéä¿Åì¡ÒõԴµÑé§·ÕèÊÁºÙóì
+InvalidParameter=¾ÒÃÒÁÔàµÍÃì¼Ô´¾ÅÒ´·ÕèªØ´¤ÓÊÑè§:%n%n%1
+SetupAlreadyRunning=¡ÒõԴµÑé§¡ÓÅѧ´Óà¹Ô¹¡ÒÃÍÂÙèáÅéÇ
+WindowsVersionNotSupported=â»Ãá¡ÃÁäÁèÃͧÃѺàÇÍÃìªÑ¹¢Í§ÇÔ¹â´Ç¹ì·Õè¤Ø³ãªé§Ò¹ÍÂÙè
+WindowsServicePackRequired=â»Ãá¡ÃÁµéͧ¡Òà %1 Service Pack %2 ¢Öé¹ä».
+NotOnThisPlatform=â»Ãá¡ÃÁ¹ÕéäÁè·Ó§Ò¹ ã¹Ãкº %1.
+OnlyOnThisPlatform=â»Ãá¡ÃÁ¹Õé µéͧ·Ó§Ò¹ã¹Ãкº %1.
+OnlyOnTheseArchitectures=â»Ãá¡ÃÁ¹ÕéÊÒÁÒöµÔ´µÑé§ã¹ Windows ÃØè¹·ÕèÍ͡ẺÁÒÊÓËÃѺʶһѵ¡ÃÃÁ¢Í§Ë¹èÇ»ÃÐÁÇżŴѧµèÍ仹Õé:%n%n%1
+MissingWOW64APIs=ÃØè¹¢Í§ Windows ·Õè¤Ø³ãªéÍÂÙèäÁè¨Óà»ç¹µéͧÁÕ¡ÒÃãªé§Ò¹â´ÂµÔ´µÑé§à¾×èÍ·Ó¡ÒõԴµÑé§áºº 64 - bit àÁ×è͵éͧ¡ÒÃá¡é䢻ѭËÒ¹Õéâ»Ã´µÔ´µÑé§ Service Pack 1%.
+WinVersionTooLowError=â»Ãá¡ÃÁ¹Õéµéͧ¡ÒÃÃкº %1 àÇÍÃìªÑè¹ %2 ËÃ×ÍãËÁè¡ÇèÒ
+WinVersionTooHighError=â»Ãá¡ÃÁ¹ÕéäÁèÊÒÁÒö µÔ´µÑé§ã¹Ãкº %1 àÇÍÃìªÑè¹ %2 ËÃ×ÍãËÁè¡ÇèÒ
+AdminPrivilegesRequired=¤Ø³µéͧãªé USER ¢Í§¼Ùé´ÙáÅÃкºàªè¹ administrator à¾Õè͵ԴµÑé§â»Ãá¡ÃÁ¹Õé.
+PowerUserPrivilegesRequired=¤Ø³µéͧà¢éÒÊÙèÃкº ´éǼÙéãªé§Ò¹ ·Õèà»ç¹¼Ùé´ÙáÅÃкº àªè¹ administrator ËÃ×Í à»ç¹¼Ùéãªé§Ò¹ ·ÕèÍÂÙèã¹¡ÅØèÁ Power Users àÁ×è͵éͧ¡ÒõԴµÑé§â»Ãá¡ÃÁ¹Õé
+SetupAppRunningError=ÁÕâ»Ãá¡ÃÁ %1 ¡ÓÅѧ·Ó§Ò¹ÍÂÙè%n%n¡ÃسһԴâ»Ãá¡ÃÁ áÅФÅÔ¡ µ¡Å§ à¾×èÍ·Ó§Ò¹µèÍ ËÃ×Í Â¡àÅÔ¡ à¾×èͨº¡ÒõԴµÑé§
 UninstallAppRunningError=¾ºÇèÒâ»Ãá¡ÃÁ %1 ¡ÒáÓÅѧ·Ó§Ò¹ÍÂÙè%n%n¡ÃسһԴâ»Ãá¡ÃÁ áÅФÅÔ¡ µ¡Å§ à¾×èÍ·Ó§Ò¹µèÍ ËÃ×Í Â¡àÅÔ¡ à¾×èͨº¡Ò÷ӧҹ
 
 ; *** Misc. errors
@@ -143,7 +147,8 @@ SelectDirDesc=
 SelectDirLabel3=¡ÒõԴµÑ駨еԴµÑé§ [name] ŧã¹â¿Åà´ÍÃìµèÍ仹Õé
 SelectDirBrowseLabel=´Óà¹Ô¹¡ÒõèÍä»ãËé¤ÅÔ¡·Õè»ØèÁ ·ÓµèÍ > ¶éҤسµéͧ¡ÒÃàÅ×Í¡â¿Åà´ÍÃìÍ×è¹ãËé¤ÅÔ¡·Õè»ØèÁ àÅ×Í¡...
 DiskSpaceMBLabel=¡ÒõԴµÑé§µéͧ¡ÒÃà¹×éÍ·ÕèÇèÒ§äÁè¹éÍ¡ÇèÒ [mb] MB
-ToUNCPathname=¡ÒõԴµÑé§äÁèÊÒÁÒöãªé UNC pathname ä´é ¶éҤسµéͧ·Ó  map  network drive à¾×è͵ԴµÑé§â»Ãá¡ÃÁ
+CannotInstallToNetworkDrive=¡ÒõԴµÑé§äÁèÊÒÁÒöµÔ´µÑé§ä»Âѧä´Ãìà¤Ã×Í¢èÒÂä´é
+CannotInstallToUNCPath=äÁèÊÒÁÒöµÔ´µÑé§Å§ä»ÂѧµÓáË¹è§ UNC ä´é
 InvalidPath=¤Ø³µéͧãªé full path with drive letter; µÒÁµÑÇÍÂèÒ§:%nC:\APP
 InvalidDrive=äÁèÁÕä´ÃÇì·Õè¤Ø³àÅ×Í¡ ¡ÃسÒàÅ×Í¡ä´ÃÇìÍ×è¹
 DiskSpaceWarningTitle=à¹×éÍ·ÕèÇèÒ§ã¹´ÔÊ¡ìäÁèà¾Õ§¾Í
@@ -203,6 +208,11 @@ WizardPreparing=
 PreparingDesc=â»Ãá¡ÃÁ ¡ÓÅѧàµÃÕÂÁ¡Òà à¾×è͵ԴµÑé§ [name] ·Õèà¤Ã×èͧ¤ÍÁ¾ÔÇàµÍÃì¢Í§¤Ø³
 PreviousInstallNotCompleted=¡ÒõԴµÑé§ ËÃ×Ͷʹ¶Í¹ â»Ãá¡ÃÁà´ÔÁäÁèÊÁºÙÃ³ì ¤Ø³µéͧ restart à¤Ã×èͧ¤ÍÁ¾ÔÇàµÍÃì à¾×èÍãËé¡ÒõԴµÑé§ ¶Ù¡µéͧÊÁºÙóì%n%nËÅѧ¨Ò¡¡Òà restart à¤Ã×èͧ¤ÍÁ¾ÔÇàµÍÃìáÅéÇ àÃÕ¡â»Ãá¡ÃÁ Setup ¹ÕéÍÕ¡¤ÃÑé§ à¾×èÍãËé¡ÒõԴµÑé§ [name] ¶Ù¡µéͧÊÁºÙóì
 CannotContinue=â»Ãá¡ÃÁµÔ´µÑé§äÁèÊÒÁÒö·Ó§Ò¹µèÍä»ä´é ¡ÃسҤÅÔ¡»ØèÁ ¡àÅÔ¡ à¾×èÍÍÍ¡¨Ò¡â»Ãá¡ÃÁ
+ApplicationsFound=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications.
+ApplicationsFound2=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. After the installation has completed, Setup will attempt to restart the applications.
+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.
 
 ; *** "Installing" wizard page
 WizardInstalling=¡ÒõԴµÑé§
@@ -234,7 +244,8 @@ SelectDirectoryLabel=
 SetupAborted=¡ÒõԴµÑé§äÁèÊÁºÙóì%n%n¡ÃسÒàÃÕ¡ ä¿Åì¡ÒõԴµÑé§â»Ãá¡ÃÁ ÍÕ¡¤ÃÑé§Ë¹Öè§
 EntryAbortRetryIgnore=¤ÅÔ¡ Retry à¾×èÍÅͧ·Ó§Ò¹ÍÕ¡¤ÃÑé§, ¤ÅÔ¡ Ignore à¾×èÍ¢éÒÁ¡Ò÷ӧҹ·Õè¼Ô´¾ÅÒ´, ËÃ×Í ¤ÅÔ¡ Abort ¡àÅÔ¡¡ÒõԴµÑé§
 
-; *** Installation status messages
+; *** Installation status messages
+StatusClosingApplications=¡ÓÅѧ»Ô´áÍ»¾ÅÔपѹ...
 StatusCreateDirs=¡ÒÃÊÃéÒ§ â¿Åà´ÍÃì ..
 StatusExtractFiles=¡ÒâÂÒ ä¿ÅìµèÒ§æ...
 StatusCreateIcons=¡ÒÃÊÃéÒ§ Program icons...
@@ -242,7 +253,8 @@ StatusCreateIniEntries=
 StatusCreateRegistryEntries=¡ÒÃÊÃéÒ§ registry entries...
 StatusRegisterFiles=ä¿Åì Registering µèÒ§æ...
 StatusSavingUninstall=¡Òúѹ·Ö¡¢éÍÁÙÅ ¡ÒáàÅÔ¡¡ÒõԴµÑé§â»Ãá¡ÃÁ...
-StatusRunProgram=àÊÃç¨ÊÔé¹ ¡ÒõԴµÑé§â»Ãá¡ÃÁ...
+StatusRunProgram=àÊÃç¨ÊÔé¹ ¡ÒõԴµÑé§â»Ãá¡ÃÁ...
+StatusRestartingApplications=¡ÓÅѧÃÕʵÒÃì·áÍ»¾ÅÔपѹ...
 StatusRollback=àÃÕ¡¤×¹ ¡ÒÃá¡é䢷Ñé§ËÁ´...
 
 ; *** Misc. errors
@@ -304,19 +316,23 @@ ConfirmDeleteSharedFile2=
 SharedFileNameLabel=ª×èÍä¿Åì :
 SharedFileLocationLabel=µÓá˹è§:
 WizardUninstalling=ʶҹР¡ÒáàÅÔ¡
-StatusUninstalling=¡ÒáàÅÔ¡ %1...
+StatusUninstalling=¡ÓÅѧ¡àÅÔ¡ %1...
+
+; *** Shutdown block reasons
+ShutdownBlockReasonInstallingApp=¡ÓÅѧµÔ´µÑé§ %1.
+ShutdownBlockReasonUninstallingApp=¡ÓÅѧ¡àÅÔ¡ %1.
 
 ; The custom messages below aren't used by Setup itself, but if you make
 ; use of them in your scripts, you'll want to translate them.
 
 [CustomMessages]
 
-NameAndVersion=%1 version %2
+NameAndVersion=%1 àÇÍÃìªÑ¹ %2
 AdditionalIcons=Additional icons:
-CreateDesktopIcon=Create a &desktop icon
-CreateQuickLaunchIcon=Create a &Quick Launch icon
-ProgramOnTheWeb=%1 on the Web
-UninstallProgram=Uninstall %1
-LaunchProgram=Launch %1
+CreateDesktopIcon=ÊÃéÒ§ &äͤ͹º¹à´Ê·çÍ»
+CreateQuickLaunchIcon=ÊÃéÒ§ &äͤ͹ᶺ´èǹ
+ProgramOnTheWeb=%1 º¹àÇçº
+UninstallProgram=¡àÅÔ¡ %1
+LaunchProgram=à»Ô´ %1
 AssocFileExtension=&Associate %1 with the %2 file extension
 AssocingFileExtension=Associating %1 with the %2 file extension...

+ 325 - 0
Files/Languages/Unofficial/Uzbek.isl

@@ -0,0 +1,325 @@
+; *** Inno Setup version 5.5.3+ Uzbek messages ***
+;
+; Translated from Russian by Shamsiddinov Zafar, [email protected]
+; Updated translating version
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+
+[LangOptions]
+LanguageName=<004F><2018><007A><0062><0065><006B><0063><0068><0061>
+LanguageID=$0443
+LanguageCodePage=1251
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=O‘rnatish
+SetupWindowTitle=%1 — O‘rnatish
+UninstallAppTitle=Uzoqlashtirish
+UninstallAppFullTitle=%1 — Uzoqlashtirish
+
+; *** Misc. common
+InformationTitle=Ma'lumot
+ConfirmTitle=Tasdiqlash
+ErrorTitle=Xatolik
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=Ushbu %1 dasturi sizning kompyuteringizga o‘rnatiladi, davom etirilsinmi?
+LdrCannotCreateTemp=Vaqtinchalik faylni yaratib bo‘lmadi. O‘rnatish bekor qilindi
+LdrCannotExecTemp=Vaqtinchalik katalogdagi faylni bajarib bo‘lmadi. O‘rnatish bekor qilindi
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%nXatolik %2: %3
+SetupFileMissing=%1 fayli o‘rnatish jildda mavjud emas. Iltimos, muammoni bartaraf eting yoki dasturning yangi versiyasini oling.
+SetupFileCorrupt=O‘rnatiladigan fayllar shikastlangan. Iltimos, dasturning yangi to‘liq nusxasini oling.
+SetupFileCorruptOrWrongVer=Ushbu o‘rnatiladigan fayl shikastlangan yoki o‘rnatish dasturi versiyasiga muvofiq emas. Iltimos, muammoni bartaraf eting yoki dasturning yangi nusxasini oling.
+InvalidParameter=Buyruqlar satrida ruxsat etilmagan parametr bor:%n%n%1
+SetupAlreadyRunning=O‘rnatish dasturi allaqachon ishga solingan.
+WindowsVersionNotSupported=Ushbu o‘rnatiladigan dastur, Windows versiyasini qo‘llamaydi.
+WindowsServicePackRequired=Bu dasturga %1 Service Pack %2 yoki undan oldingi versiya kerak.
+NotOnThisPlatform=Bu dastur %1 da ishlamaydi.
+OnlyOnThisPlatform=Bu dasturni faqat %1 da ishga solish mumkin.
+OnlyOnTheseArchitectures=Ushbu dasturni Windows tizimining quyidagi arxitektorli prossesiriga o‘rnatish mumkin:%n%n%1
+MissingWOW64APIs=Siz ishlatayotgan Windows versiyasida, 64-bitli o‘rnatishni bajarish funksiyasi mavjud emas. Bu muammoni bartaraf etish uchun (Service Pack) %1 paketini o‘rnatish kerak bo‘ladi.
+WinVersionTooLowError=Bu dasturga %1 versiya %2 yoki undan yuqorisi kerak.
+WinVersionTooHighError=Dastur %1 da %2 versiyasida o‘rnatishning imkoni yo‘q.
+AdminPrivilegesRequired=Ushbu dasturni o‘rnatish uchun siz "Admin" tarzida tizimga kirishingiz kerak.
+PowerUserPrivilegesRequired=Ushbu dasturni o‘rnatish uchun siz "Admin" yoki «Îïûòíûå ïîëüçîâàòåëè» (Power Users) tarzida kirishingiz kerak.
+SetupAppRunningError=Aynan o‘z nusxasi ishlab turgani aniqlandi %1.%n%nIltmos, dasturning barcha nusxalarini yoping, so‘ngra davom etish uchun «OK» tugmasini bosing yoki chiqish uchun «Bekor qilmoq» tugmasini bosing.
+UninstallAppRunningError=Uzoqlashtirgich dastur ishga solinganligini aniqladi %1.%n%nIltimos, uzoqlashtirishdan oldin ushbu dasturni yoping, so‘ng davom etish uchun «OK» tugmasini bosing yoki chiqish uchun «Bekor qilmoq» tugmasini bosing.
+
+; *** Misc. errors
+ErrorCreatingDir="%1" jildini hosil qilib bo‘lmadi
+ErrorTooManyFilesInDir="%1" katalogida fayl yaratib bo‘lmadi, unda juda ko‘p fayllar bor
+
+; *** Setup common messages
+ExitSetupTitle=O‘rnatish dasturidan chiqish
+ExitSetupMessage=O‘rnatish tugallanmadi. Agar chiqsangiz, dastur o‘rnatilmay qoladi.%n%nO‘rnatishni tugallash uchun dasturga keyinroq kirishingiz ham mumkin.%n%nO‘rnatish dasturidan chiqilsinmi?
+AboutSetupMenuItem=&Dastur haqida...
+AboutSetupTitle=Dastur haqida
+AboutSetupMessage=%1, versiya %2%n%3%n%nSayt %1:%n%4
+AboutSetupNote=
+TranslatorNote=Uzbek translation by Shamsiddinov Zafar // [email protected]
+
+; *** Buttons
+ButtonBack=< &Ortga
+ButtonNext=&Keyingi >
+ButtonInstall=&O‘rnatmoq
+ButtonOK=OK
+ButtonCancel=Bekor qilmoq
+ButtonYes=&Ha
+ButtonYesToAll=Hammasiga &Ha
+ButtonNo=&Yo‘q
+ButtonNoToAll=H&ammasiga Yo‘q
+ButtonFinish=&Tugallamoq
+ButtonBrowse=&Tanlov...
+ButtonWizardBrowse=&Tanlov...
+ButtonNewFolder=&Jild yaratmoq
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=O‘rnatish tilini tanlang
+SelectLanguageLabel=O‘rnatish jarayonida ishlatiladigan, tilni tanlang:
+
+; *** Common wizard text
+ClickNext=Davom etish uchun «Keyingi» tugmasini bosing yoki bekor qilish uchun, «Bekor qilmoq» tugmasini bosing.
+BeveledLabel=
+BrowseDialogTitle=Jild tanlovi
+BrowseDialogLabel=Ro‘yxatdan jildni tanlang va «ÎÊ»ni bosing.
+NewFolderName=Yangi jild
+
+; *** "Welcome" wizard page
+WelcomeLabel1=[name]ni O‘rnatishga Xush kelibsiz
+WelcomeLabel2=[name/ver] dasturi sizning kompyuteringizga o‘rnatiladi.%n%nO‘rnatishdan oldin, boshqa dasturlarni yopish tavsiya etiladi.
+
+; *** "Password" wizard page
+WizardPassword=Parol
+PasswordLabel1=Bu dastur parol bilan himoyalangan.
+PasswordLabel3=Iltimos, parolni kiriting, so‘ngra «Keyingi» tugmasini bosing. Parol kiritiloyotganda harflar katta-kichikligi inobatga olinishi kerak.
+PasswordEditLabel=&Parol:
+IncorrectPassword=Siz parolni noto‘g‘ri kirtingiz. Iltimos, qaytadan urinib ko‘ring.
+
+; *** "License Agreement" wizard page
+WizardLicense=Litsenzion kelishuv
+LicenseLabel=Marhamat, davom etish uchun quyidagi muhim ma'lumotni o‘qib chiqing.
+LicenseLabel3=Iltimos, quyidagi Litsenzion kelishuvni o‘qib chiqing. Davom etirish oldidan siz kelishuv shartiga rozi bo‘lishingiz kerak.
+LicenseAccepted=Men &kelishuv shartiga roziman
+LicenseNotAccepted=Men &kelishuv shartiga rozi emasman
+
+; *** "Information" wizard pages
+WizardInfoBefore=Ma’lumot
+InfoBeforeLabel=Iltimos, davom etirishdan oldin, quyidagi ma’lumotni o‘qib chiqing.
+InfoBeforeClickLabel=O‘rnatishga tayyor bo‘lsangiz, «Keyingi» tugmasini bosing.
+WizardInfoAfter=Ma’lumot
+InfoAfterLabel=Iltimos, davom etirishdan oldin, muhim ma’lumot bilan tanishib chiqing.
+InfoAfterClickLabel=O‘rnatishga tayyor bo‘lsangiz, «Keyingi» tugmasini bosing.
+
+; *** "User Information" wizard page
+WizardUserInfo=Foydalanuvchi haqida ma’lumot
+UserInfoDesc=Iltimos, o‘zingiz haqingizda ma’lumot kiriting.
+UserInfoName=&Foydalanuvchining ism-sharifi:
+UserInfoOrg=&Tashkilot:
+UserInfoSerial=&Seriya raqami:
+UserInfoNameRequired=Siz ism (nom) kiritishingiz kerak.
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=O‘rnatish jildi tanlovi
+SelectDirDesc=[name] dasturini qayerga o‘rnatishni xohlaysiz?
+SelectDirLabel3=[name] dasturi quyidagi jildga o‘rnatiladi.
+SelectDirBrowseLabel=Davom etish uchun «Keyingi» tugmasini bosing. Agar boshqa jildni tanlamoqchi bo‘lsangiz, unda «Tanlov» tugmasini bosing.
+DiskSpaceMBLabel=O‘rnatishga [mb] Mb qattiq diskdan bo‘sh joy kerak.
+CannotInstallToNetworkDrive=O‘rnatishni tarmoq qattiq disklarida amalga oshirib bo‘lmaydi.
+CannotInstallToUNCPath=O‘rnatishni UNC-yo‘lagi jildida amalga oshirib bo‘lmadi.
+InvalidPath=Siz to‘liq diskning harflari bilan yo‘lakni ko‘rsatishingiz kerak; masalan:%n%nC:\APP%n%nyoki UNC: shaklida%n%n\\server_nomi\resurs_nomi
+InvalidDrive=Tanlagan diskingiz yoki tarmoq diski mavjud emas yoki kirishga ruxsat yo‘q. Iltimos, boshqasini tanlang.
+DiskSpaceWarningTitle=Qattiq diskda kerakli bo‘sh joy yo‘q
+DiskSpaceWarning=O‘rnatishga kamida %1 Kb bo‘sh joy kerak, ammo siz tanlagan diskda %2 Kb bo‘sh joy bor.%n%nKamiga davom etirishni xohlaysizmi?
+DirNameTooLong=Jild nomi yoki uning nomining uzunligi ruxsat etilgandan oshgan.
+InvalidDirName=Ko‘rsatilgan jild nomiga ruxsat yo‘q.
+BadDirName32=Jild nomida quyidagi belgilar bo‘lmasligi kerak: %n%n%1
+DirExistsTitle=Jild mavjud
+DirExists=%n%n%1%n%njildi allaqachon mavjud. Ushbu jildga o‘rnatishga hammasi to‘g‘rimi?
+DirDoesntExistTitle=Jild mavjud emas
+DirDoesntExist=%n%n%1%n%jildi mavjud emas. Uni hosil qilishni xohlaysizmi?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=Komponentlar tanlovi
+SelectComponentsDesc=Qaysi komponentlar o‘rnatilishi kerak?
+SelectComponentsLabel2=Kerakli komponentlarni o‘rnatish uchun belgilang; o‘rnatish kerak bo‘lmaganlariga esa belgi olib tashlang. O‘rnatishga tayyor bo‘lgandan so‘ng «Keyingi» tugmasini bosing.
+FullInstallation=To‘liq o‘rnatish
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=Qulay qilib o‘rnatish
+CustomInstallation=Tanlovli o‘rnatish
+NoUninstallWarningTitle=O‘rnatiladigan komponentlar
+NoUninstallWarning=O‘rnatish dasturi aniqladiki, quyidagi komponentlar sizning kompyuteringizga allaqachon o‘rnatilgan:%n%n%1%n%nUlarni o‘chirmasdan tanlangan komponent(lar)ni bekor qiling.%n%nDavom etasizmi?
+ComponentSize1=%1 Kb
+ComponentSize2=%1 Mb
+ComponentsDiskSpaceMBLabel=Joriy tanlov kamida [mb] Mb qattiq diskda joy oladi.
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=Qo‘shimcha topshiriqlarni tanlash
+SelectTasksDesc=Qaysi qo‘shimcha topshiriqlar bajarilishi kerak?
+SelectTasksLabel2=[name]ni o‘rnatish davomida qaysi qo‘shimcha topshiriqlar bajarilishi kerakligini tanlang, undan so‘ng «Keyingi» tugmasini bosing:
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=«Ïóñê» menyusida jild tanlovi
+SelectStartMenuFolderDesc=O‘rnatish dasturi qayerga yorliq hosil qilsin?
+SelectStartMenuFolderLabel3=Dastur «Ïóñê» menyusining quyidagi jildiga yorliq hosil qiladi.
+SelectStartMenuFolderBrowseLabel=Davom etish uchun «Keyingi» tugmasini bosing. Agar boshqa jildni tanlashni xohlasangiz, «Tanlov» tugmasini bosing.
+MustEnterGroupName=Jild nomini kiritishingiz kerak.
+GroupNameTooLong=Jild guruhi nomi yoki uning yo‘lagi nomi uzunligi cheklovdan oshgan.
+InvalidGroupName=Ko‘rsatilgan jild nomiga ruxsat etilmagan.
+BadGroupName=Jild nomiga quyidagi belgilar bo‘lmasligi kerak:%n%n%1
+NoProgramGroupCheck2=«Ïóñê» &menyusida jild yaratmaslik
+
+; *** "Ready to Install" wizard page
+WizardReady=O‘rnatishga barchasi tayyor
+ReadyLabel1=O‘rnatuvchi dasturi [name]ni kompyuteringizga o‘rnatishga tayyor.
+ReadyLabel2a=Davom etish uchun «O‘rnatmoq» tugmasini bosing, agar siz o‘rnatish tanlovini o‘zgartirmoqchi bo‘lsangiz «Ortga» tugmasini bosing.
+ReadyLabel2b=Davom etirish uchun «O‘rnatmoq» tugmasini bosing.
+ReadyMemoUserInfo=Foydalanuvchi haqida ma’lumot:
+ReadyMemoDir=O‘rnatish jildi:
+ReadyMemoType=O‘rnatish turi:
+ReadyMemoComponents=Tanlagan komponentlar:
+ReadyMemoGroup=«Ïóñê» menyusidagi jild:
+ReadyMemoTasks=Qo‘shimcha topshiriqlar:
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=O‘rnatishga tayyorlash
+PreparingDesc=O‘rnatish dasturi kompyuteringizga [name]ni o‘rnatishga tayyorlayapti.
+PreviousInstallNotCompleted=Oldingi dastur versiyasini o‘rnatish yoki o‘chirish tugamadi O‘rnatish tugallash uchun sizdan kompyuterni qayta qo‘shish talab etiladi.%n%nQayta qo‘shilgandan so‘ng, [name]ni o‘rnatishni tugallash uchun yangidan O‘rnatish dasturiga kiring.
+CannotContinue=O‘rnatishni davom etirishning imkoni yo‘q. Dasturdan chiqish uchun «Bekor qilmoq» tugmasini bosing.
+ApplicationsFound=Quyidagi dastur fayllardan foydalanmoqda, shunday bo‘lsa ham o‘rnatish dasturi uni yangilasi kerak. O‘rnatish dasturi ushbu dasturni avtomatik yopishi tavsiya etiladi.
+ApplicationsFound2=Quyidagi dastur fayllardan foydalanmoqda, shunday bo‘lsa ham o‘rnatish dasturi uni yangilasi kerak. O‘rnatish dasturi ushbu dasturni avtomatik yopishi tavsiya etiladi. O‘rnatilib bo‘lgandan so‘ng, o‘rnatish dasturi uni qayta ishga solib ko‘radi.
+CloseApplications=&Bu dasturni avtomatik yopish
+DontCloseApplications=&Bu dasturi yopmang
+ErrorCloseApplications=O‘rnatish dasturi avtomatik hamma dasturlarni yopa olmadi. O‘rnatishni davom etirishdan oldin hamma taalluqli dasturlarni yopish tavsiya etiladi.
+
+; *** "Installing" wizard page
+WizardInstalling=O‘rnatilmoqda...
+InstallingLabel=Iltimos, [name] dasturi kompyuteringizga o‘rnatilgungacha, kuting.
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=[name] dasturini o‘rnatishni tugallash
+FinishedLabelNoIcons=[name] dasturi kompyuteringizga o‘rnatildi.
+FinishedLabel=[name] dasturi kompyuteringizga o‘rnatildi. Dasturga tegishli yorliq yordamida kirish mumkin.
+ClickFinish=O‘rnatish dasturidan  chiqish uchun «Tugallamoq» tugmasini bosing.
+FinishedRestartLabel=[name] o‘rnatishni tugallash uchun komyuterni qayta qo‘shish kerak. Hoziroq qaytqo‘shish amalga oshirilsinmi?
+FinishedRestartMessage=[name]  o‘rnatishni tugallash uchun komyuterni qayta qo‘shish kerak.%n%nHoziroq qayta qo‘shilsinmi?
+ShowReadmeCheck=Men README faylini ko‘rishni xohlayman
+YesRadio=&Ha, hoziroq kompyuter qayta qo‘shilsin
+NoRadio=&Yo‘q, keyinroq
+; used for example as 'Run MyProg.exe'
+RunEntryExec=%1ni ishga tushirish
+; used for example as 'View Readme.txt'
+RunEntryShellExec=%1ni ko‘rish
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=Keyingi diskni joylash kerak
+SelectDiskLabel2=Iltimos, %1 diskini qo‘ying va «OK» tugmasini bosing.%n%nAgar fayllar ushbu diskdagi quyidagi ko‘rsatilgan farq qiladigan jilddan topilsa, to‘g‘ri yo‘lakni kiriting yoki «Tanlov» tugmasini bosing.
+PathLabel=&Yo‘lak:
+FileNotInDir2="%1" fayli "%2" dan topilmadi. Iltimos, muvofiq diskni qo‘ying yoki boshqa jildni tanlang.
+SelectDirectoryLabel=Iltimos, keyingi disk yo‘lagini ko‘rsating.
+
+; *** Installation phase messages
+SetupAborted=O‘rnatishni tugallab bo‘lmadi.%n%nIltimos, muammoni bartaraf eting va qaytadan o‘rnating.
+EntryAbortRetryIgnore=Takroran urinib ko‘rish uchun «Ïîâòîğ» tugmasini bosing, faylni o‘tkazib yuborish uchun «Ïğîïóñòèòü» tugmasini, yoki o‘rnatishni bekor qilish uchun «Îòêàç» tugmasini bosing.
+
+; *** Installation status messages
+StatusClosingApplications=Dastur yopilmoqda...
+StatusCreateDirs=Jild yaratilmoqda...
+StatusExtractFiles=Fayllar o‘rnatilmoqda...
+StatusCreateIcons=Dastur yorliq(lar) yaratilmoqda...
+StatusCreateIniEntries=INI-fayl yaratilmoqda...
+StatusCreateRegistryEntries=Ryestrda qaydlar yaratilmoqda...
+StatusRegisterFiles=Fayllarni qayd etilmoqda...
+StatusSavingUninstall=Uzoqlashtirish uchun ma’lumot yaratilmoqda...
+StatusRunProgram=O‘rnatish tugallanmmoqda...
+StatusRestartingApplications=Dastur qayta ishga tushirilmoqda...
+StatusRollback=O‘rnatilganlarni bekor qilish...
+
+; *** Misc. errors
+ErrorInternal2=Ichki xatolik: %1
+ErrorFunctionFailedNoCode=%1: uzilish
+ErrorFunctionFailed=%1: uzilish; kod %2
+ErrorFunctionFailedWithMessage=%1: uzilish; kod %2.%n%3
+ErrorExecutingProgram=Faylini bajarib bo‘lmadi:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=Ryestr kalitini ochishda xatolik:%n%1\%2
+ErrorRegCreateKey=Ryestr kalitini yaratishda xatolik:%n%1\%2
+ErrorRegWriteKey=Ryestrga yozilmalarni yozishda xatolik:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry="%1" INI-faylini yozishni yaratishda xatolik.
+
+; *** File copying errors
+FileAbortRetryIgnore=Takrorlash uchun «Ïîâòîğ» tugmasini, faylni o‘tkazib yuborish uchun (tavsiya etilmaydi) «Ïğîïóñòèòü», yoki  chiqish uchun «Îòêàç» tugmasini bosing.
+FileAbortRetryIgnore2=Takrorlash uchun «Ïîâòîğ» tugmasini, xatolikni inobatga olmaslik uchun (tavsiya etilmaydi) «Ïğîïóñòèòü», yoki  chiqish uchun «Îòêàç» tugmalaridan birini bosing.
+SourceIsCorrupted=Boshlang‘ich fayl shikastlangan
+SourceDoesntExist="%1" boshlang‘ich faylni mavjud emas
+ExistingFileReadOnly=Mavjud fayl «faqat o‘chish uchun» tarzida belgilangan.%n%n«faqat o‘qish uchun» atributini olib tashlash uchun «Ïîâòîğ» tugmasini bosing, faylni o‘tkazib yuborish uchun «Ïğîïóñòèòü», yoki chiqish uchun «Îòêàç» tugmasini bosing.
+ErrorReadingExistingDest=Mavjud fayllarni o‘qish vaqtida xatolik:
+FileExists=Fayl oldindan mavjud.%n%nQayta yozilsinmi?
+ExistingFileNewer=Mavjud fayl, o‘rnatiladiganiga nisbatan ancha yangi. Mavjud faylni saqlab qolish tavsiya etiladi.%n%nSiz mavjud faylni saqlab qo‘lishni xohlaysizmi?
+ErrorChangingAttr=Mavjud fayl atributini o‘zgartirish vaqtida xatolik ro‘y berdi:
+ErrorCreatingTemp=Belgilangan jildga fayllarni yozish vaqtida xatolik ro‘y berdi:
+ErrorReadingSource=Boshlang‘ich faylni o‘qish vaqtida xatolik ro‘y berdi:
+ErrorCopying=Fayllarni nusxallash vaqtida xatolik ro‘y berdi:
+ErrorReplacingExistingFile=Mavjud faylni almashtirish vaqtida xatolik ro‘y berdi:
+ErrorRestartReplace=RestartReplace xatoligi:
+ErrorRenamingTemp=Belgilangan jilddagi faylni qaytanomlashda xatolik ro‘y berdi:
+ErrorRegisterServer=DLL/OCXni qayd etib bo‘lmadi: %1
+ErrorRegSvr32Failed=RegSvr32 bajarishda xatolik, qaytish kodi %1
+ErrorRegisterTypeLib=Manba tiplarini qayd etishning imkoni yo‘q (Type Library): %1
+
+; *** Post-installation errors
+ErrorOpeningReadme=README faylini ochish vaqtida xatolik.
+ErrorRestartingComputer=O‘rnatish dasturi kompyuterni qayta qo‘sha olmadi. Iltimos, buni o‘zingiz bajaring.
+
+; *** Uninstaller messages
+UninstallNotFound="%1" fayli mavjud emas, uzoqlashtirishning imkoni yo‘q.
+UninstallOpenError="%1" faylini ochishning imkoni yo‘q. Dasturni o‘chirib bo‘lmaydi
+UninstallUnsupportedVer=Uzoqlashtirish protokoli "%1" ushbu uzoqlashtirish-dasturi uchun noaniq. Uzoqlashtirishning imkoni yo‘q
+UninstallUnknownEntry=Uzoqlashtirish protokoli uchun faylda noma’lum punktga duch kelindi (%1)
+ConfirmUninstall=Siz haqiqatan ham %1 dasturining hamma komponentlarini o‘chirmoqchimisiz?
+UninstallOnlyOnWin64=Ushbu dasturni faqat 64-bitli Windows muhitida o‘chirish mumkin.
+OnlyAdminCanUninstall=Bu dasturni faqat "Admin" o‘chirishi mumkin.
+UninstallStatusLabel=Iltimos, %1 dasturi sizning kompyuteringizdan uzoqlashtirilgunga qadar, kutib turing.
+UninstalledAll=%1  dasturi to‘liq kompyuteringizdan uzoqlashtirildi.
+UninstalledMost=%1 uzoqlashtirish bajarildi.%n%nBir qancha elementlarni o‘chirib bo‘lmadi. Siz u(lar)ni o‘zingiz o‘chirishingiz mumkin.
+UninstalledAndNeedsRestart=%1 uzoqlashtirishni tugallash uchun kompyuterni qayta qo‘shish kerak bo‘ladi.%n%nHoziroq qayta qo‘shish bajarilsinmi?
+UninstallDataCorrupted="%1" fayli shikastlangan. Uzoqlashtirishning imkoni yo‘q
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=Birgalikda ishlatiladigan fayl o‘chirilsinmi?
+ConfirmDeleteSharedFile2=Tizim ko‘rsatdiki, quyidagi birgalikda ishlatiladigan fayl boshqa dasturlar tomonidan ishlatilmayapti. Faylni o‘chirish tasdiqlansinmi?%n%nAgar keyinchalik qandaydir bir dastur bu faylni ishlatmoqchi bo‘lsa lekin fayl o‘chirilsa, o‘sha dastur soz ishlamasligi mumkin. Agar qolishini xohlasangiz, «Yo‘q» ni bosing. Qoloyotgan fayl tizimga xavf solmaydi.
+SharedFileNameLabel=Fayl nomi:
+SharedFileLocationLabel=Joylashgan joyi:
+WizardUninstalling=Uzoqlashtirish holati
+StatusUninstalling=%1 ni Uzoqlashtirish...
+
+
+; *** Shutdown block reasons
+ShutdownBlockReasonInstallingApp=%1 ni O‘rnatish.
+ShutdownBlockReasonUninstallingApp=%1 ni Uzoqlashtirish.
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1, versiya %2
+AdditionalIcons=Qo‘shimcha yorliqlar:
+CreateDesktopIcon=Ishchi stolda yorliq yaratish
+CreateQuickLaunchIcon=&Tezkor ishga tushirish panelida yoriliq yaratish
+ProgramOnTheWeb=%1ning Internetdagi Sayti
+UninstallProgram=%1ni Uzoqlashtirish
+LaunchProgram=%1ni Ishga tushirish
+AssocFileExtension=%1 fayli bilan, %2 kengaytmada &birikadi
+AssocingFileExtension=%1 fayli bilan %2 birikmoqda...
+AutoStartProgramGroupDescription=Avtomatik tushirish solish:
+AutoStartProgram=Avtomatik %1ni ishga tushirish
+AddonHostProgramNotFound=%1 ko‘rsatgan jildingizdan topilmadi.%n%nSiz xuddi shunday davom etirmoqchimisiz?

+ 2 - 1
Projects/CmnFunc.pas

@@ -250,7 +250,8 @@ begin
 
   { If the application window isn't currently visible, show the message box
     with no owner window so it'll get a taskbar button } 
-  if (GetWindowLong(Application.Handle, GWL_STYLE) and WS_VISIBLE = 0) or
+  if IsIconic(Application.Handle) or
+     (GetWindowLong(Application.Handle, GWL_STYLE) and WS_VISIBLE = 0) or
      (GetWindowLong(Application.Handle, GWL_EXSTYLE) and WS_EX_TOOLWINDOW <> 0) then begin
     ActiveWindow := GetActiveWindow;
     WindowList := DisableTaskWindows(0);

+ 20 - 0
Projects/CmnFunc2.pas

@@ -143,6 +143,7 @@ function TryStrToBoolean(const S: String; var BoolResult: Boolean): Boolean;
 procedure WaitMessageWithTimeout(const Milliseconds: DWORD);
 function MoveFileReplace(const ExistingFileName, NewFileName: String): Boolean;
 procedure TryEnableAutoCompleteFileSystem(Wnd: HWND);
+procedure CreateMutex(const MutexName: String);
 
 {$IFNDEF UNICODE}
 var
@@ -1679,6 +1680,25 @@ begin
     SHAutoCompleteFunc(Wnd, SHACF_FILESYSTEM);
 end;
 
+procedure CreateMutex(const MutexName: String);
+const
+  SECURITY_DESCRIPTOR_REVISION = 1;  { Win32 constant not defined in Delphi 3 }
+var
+  SecurityDesc: TSecurityDescriptor;
+  SecurityAttr: TSecurityAttributes;
+begin
+  { By default on Windows NT, created mutexes are accessible only by the user
+    running the process. We need our mutexes to be accessible to all users, so
+    that the mutex detection can work across user sessions in Windows XP. To
+    do this we use a security descriptor with a null DACL. }
+  InitializeSecurityDescriptor(@SecurityDesc, SECURITY_DESCRIPTOR_REVISION);
+  SetSecurityDescriptorDacl(@SecurityDesc, True, nil, False);
+  SecurityAttr.nLength := SizeOf(SecurityAttr);
+  SecurityAttr.lpSecurityDescriptor := @SecurityDesc;
+  SecurityAttr.bInheritHandle := False;
+  Windows.CreateMutex(@SecurityAttr, False, PChar(MutexName));
+end;
+
 { TOneShotTimer }
 
 function TOneShotTimer.Expired: Boolean;

+ 3 - 3
Projects/CompForm.pas

@@ -2,7 +2,7 @@ unit CompForm;
 
 {
   Inno Setup
-  Copyright (C) 1997-2014 Jordan Russell
+  Copyright (C) 1997-2016 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -2188,8 +2188,8 @@ begin
     String(FCompilerVersion.Version) + SNewLine;
   if FCompilerVersion.Title <> 'Inno Setup' then
     S := S + (SNewLine + 'Based on Inno Setup' + SNewLine);
-  S := S + ('Copyright (C) 1997-2014 Jordan Russell' + SNewLine +
-    'Portions Copyright (C) 2000-2014 Martijn Laan' + SNewLine +
+  S := S + ('Copyright (C) 1997-2016 Jordan Russell' + SNewLine +
+    'Portions Copyright (C) 2000-2016 Martijn Laan' + SNewLine +
     'All rights reserved.' + SNewLine2 +
     'Inno Setup home page:' + SNewLine +
     'http://www.innosetup.com/' + SNewLine2 +

+ 2 - 2
Projects/CompMsgs.pas

@@ -42,8 +42,8 @@ const
   SWizardAppFilesSubDirsMessage = 'Should files in subfolders of "%s" also be included?';
   SWizardAppExeFilter = 'Application files (*.exe)|*.exe|All Files|*.*';
   SWizardAppExeDefaultExt = 'exe';
-  SWizardAppIcons = 'Application Icons';
-  SWizardAppIcons2 = 'Please specify which icons should be created for your application.';
+  SWizardAppIcons = 'Application Shortcuts';
+  SWizardAppIcons2 = 'Please specify which shortcuts should be created for your application.';
   SWizardAppDocs = 'Application Documentation';
   SWizardAppDocs2 = 'Please specify which documentation files should be shown by Setup during installation.';
   SWizardAppDocsFilter = 'Documentation files (*.rtf,*.txt)|*.rtf;*.txt|All Files|*.*';

BIN
Projects/CompWizard.dfm


+ 36 - 23
Projects/CompWizard.dfm.txt

@@ -1233,83 +1233,96 @@ object WizardForm: TWizardForm
           Caption = 'AppIcons'
           object AppGroupNameLabel: TNewStaticText
             Left = 36
-            Top = 8
+            Top = 28
             Width = 413
             Height = 16
             AutoSize = False
             Caption = 'Application &Start Menu folder name:'
             FocusControl = AppGroupNameEdit
-            TabOrder = 0
+            TabOrder = 1
             WordWrap = True
           end
           object AppExeIconsLabel: TNewStaticText
             Left = 36
-            Top = 140
+            Top = 160
             Width = 413
             Height = 16
             AutoSize = False
-            Caption = 'Other main executable icons:'
+            Caption = 'Other shortcuts to the main executable:'
             FocusControl = AppDirNameEdit
-            TabOrder = 6
+            TabOrder = 7
             WordWrap = True
           end
           object AppGroupNameEdit: TEdit
             Left = 36
-            Top = 28
+            Top = 48
             Width = 309
             Height = 21
-            TabOrder = 1
+            TabOrder = 2
           end
           object NotDisableProgramGroupPageCheck: TCheckBox
             Left = 36
-            Top = 56
+            Top = 76
             Width = 425
             Height = 17
             Caption = 'Allow user to &change the Start Menu folder name'
-            TabOrder = 2
+            TabOrder = 3
             OnClick = NotDisableProgramGroupPageCheckClick
           end
           object AllowNoIconsCheck: TCheckBox
             Left = 36
-            Top = 76
+            Top = 96
             Width = 425
             Height = 17
             Caption = 'Allow user to &disable Start Menu folder creation'
-            TabOrder = 3
+            TabOrder = 4
           end
           object DesktopIconCheck: TCheckBox
             Left = 36
-            Top = 160
+            Top = 180
             Width = 257
             Height = 17
-            Caption = 'Allow user to create a deskto&p icon'
-            TabOrder = 7
+            Caption = 'Allow user to create a deskto&p shortcut'
+            TabOrder = 8
             OnClick = NotCreateAppDirCheckClick
           end
           object QuickLaunchIconCheck: TCheckBox
             Left = 36
-            Top = 180
-            Width = 257
+            Top = 200
+            Width = 421
             Height = 17
-            Caption = 'Allow user to create a &Quick Launch icon'
-            TabOrder = 8
+            Caption = 
+              'Allow user to create a &Quick Launch shortcut on older versions ' +
+              'of Windows'
+            TabOrder = 9
             OnClick = NotCreateAppDirCheckClick
           end
           object CreateUninstallIconCheck: TCheckBox
             Left = 36
-            Top = 116
+            Top = 136
             Width = 301
             Height = 17
-            Caption = 'Create an &Uninstall icon in the Start Menu folder'
-            TabOrder = 5
+            Caption = 'Create an &Uninstall shortcut in the Start Menu folder'
+            TabOrder = 6
           end
           object CreateURLIconCheck: TCheckBox
             Left = 36
-            Top = 96
+            Top = 116
             Width = 301
             Height = 17
             Caption = 'Create an &Internet shortcut in the Start Menu folder'
-            TabOrder = 4
+            TabOrder = 5
+          end
+          object UseCommonProgramsCheck: TCheckBox
+            Left = 36
+            Top = 8
+            Width = 425
+            Height = 17
+            Caption = 
+              '&Create a shortcut to the main executable in the common Start Me' +
+              'nu Programs folder'
+            TabOrder = 0
+            OnClick = UseCommonProgramsCheckClick
           end
         end
         object TPage

+ 57 - 20
Projects/CompWizard.pas

@@ -2,13 +2,11 @@ unit CompWizard;
 
 {
   Inno Setup
-  Copyright (C) 1997-2010 Jordan Russell
+  Copyright (C) 1997-2015 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
   Compiler Script Wizard form
-
-  $jrsoftware: issrc/Projects/CompWizard.pas,v 1.68 2011/04/16 05:51:19 jr Exp $
 }
 
 interface
@@ -108,6 +106,7 @@ type
     AllLanguagesButton: TButton;
     NoLanguagesButton: TButton;
     NoAppExeCheck: TCheckBox;
+    UseCommonProgramsCheck: TCheckBox;
     procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -132,6 +131,7 @@ type
     procedure AllLanguagesButtonClick(Sender: TObject);
     procedure NoLanguagesButtonClick(Sender: TObject);
     procedure NoAppExeCheckClick(Sender: TObject);
+    procedure UseCommonProgramsCheckClick(Sender: TObject);
   private
     CurPage: TWizardPage;
     FWizardName: String;
@@ -149,6 +149,7 @@ type
     procedure UpdateWizardFiles;
     procedure UpdateWizardFilesButtons;
     procedure UpdateAppExeControls;
+    procedure UpdateAppIconsControls;
     procedure GenerateScript;
   public
     property WizardName: String write SetWizardName;
@@ -315,6 +316,7 @@ begin
   UpdateWizardFilesButtons;
 
   { AppIcons }
+  UseCommonProgramsCheck.Checked := True;
   NotDisableProgramGroupPageCheck.Checked := True;
   DesktopIconCheck.Checked := True;
 
@@ -409,7 +411,13 @@ begin
         else
           ActiveControl := AppFilesListBox;
       end;
-    wpAppIcons: ActiveControl := AppGroupNameEdit;
+    wpAppIcons:
+      begin
+        if UseCommonProgramsCheck.Enabled then
+          ActiveControl := UseCommonProgramsCheck
+        else
+          ActiveControl := AppGroupNameEdit;
+      end;
     wpAppDocs: ActiveControl := AppLicenseFileEdit;
     wpLanguages: ActiveControl := LanguagesList;
     wpCompiler: ActiveControl := OutputDirEdit;
@@ -519,11 +527,7 @@ begin
     { Even if we're skipping a page, we should still update it }
     case CurPage of
       wpAppDir: if AppDirNameEdit.Text = '' then AppDirNameEdit.Text := AppNameEdit.Text;
-      wpAppIcons:
-        begin
-          if AppGroupNameEdit.Text = '' then AppGroupNameEdit.Text := AppNameEdit.Text;
-          CreateURLIconCheck.Enabled := AppURLEdit.Text <> '';
-        end;
+      wpAppIcons: if AppGroupNameEdit.Text = '' then AppGroupNameEdit.Text := AppNameEdit.Text;
     end;
   until not SkipCurPage;
 
@@ -608,6 +612,28 @@ begin
     AppExeLabel.Font.Style := AppExeLabel.Font.Style - [fsBold];
 end;
 
+procedure TWizardForm.UpdateAppIconsControls;
+var
+  Enabled: Boolean;
+begin
+  UseCommonProgramsCheck.Enabled := NoAppExeCheck.Enabled and not NoAppExeCheck.Checked;
+
+  Enabled := not (UseCommonProgramsCheck.Enabled and UseCommonProgramsCheck.Checked);
+
+  AppGroupNameLabel.Enabled := Enabled;
+  AppGroupNameEdit.Enabled := Enabled;
+  AppGroupNameEdit.Color := EnabledColors[Enabled];
+  NotDisableProgramGroupPageCheck.Enabled := Enabled;
+  AllowNoIconsCheck.Enabled := Enabled and NotDisableProgramGroupPageCheck.Checked;
+  CreateURLIconCheck.Enabled := Enabled and (AppURLEdit.Text <> '');
+  CreateUninstallIconCheck.Enabled := Enabled;
+
+  if Enabled then
+    AppGroupNameLabel.Font.Style := AppGroupNameLabel.Font.Style + [fsBold]
+  else
+    AppGroupNameLabel.Font.Style := AppGroupNameLabel.Font.Style - [fsBold];
+end;
+
 {---}
 
 procedure TWizardForm.AppRootDirComboBoxChange(Sender: TObject);
@@ -663,6 +689,7 @@ end;
 procedure TWizardForm.NoAppExeCheckClick(Sender: TObject);
 begin
   UpdateAppExeControls;
+  UpdateAppIconsControls;
 end;
 
 procedure TWizardForm.AppFilesListBoxClick(Sender: TObject);
@@ -755,10 +782,15 @@ begin
   UpdateWizardFilesButtons;
 end;
 
+procedure TWizardForm.UseCommonProgramsCheckClick(Sender: TObject);
+begin
+  UpdateAppIconsControls;
+end;
+
 procedure TWizardForm.NotDisableProgramGroupPageCheckClick(
   Sender: TObject);
 begin
-  AllowNoIconsCheck.Enabled := NotDisableProgramGroupPageCheck.Checked;
+  UpdateAppIconsControls;
 end;
 
 procedure TWizardForm.FileButtonClick(Sender: TObject);
@@ -927,17 +959,22 @@ begin
 
     { AppGroup }
     if not NotCreateAppDirCheck.Checked then begin
-      Setup := Setup + 'DefaultGroupName=' + AppGroupNameEdit.Text + SNewLine;
-      if not NoAppExeCheck.Checked then
-        Icons := Icons + 'Name: "{group}\' + AppNameEdit.Text + '"; Filename: "{app}\' + AppExeName + '"' + SNewLine;
-      if not NotDisableProgramGroupPageCheck.Checked then
+      if UseCommonProgramsCheck.Enabled and UseCommonProgramsCheck.Checked then begin
         Setup := Setup + 'DisableProgramGroupPage=yes' + SNewLine;
-      if AllowNoIconsCheck.Checked and NotDisableProgramGroupPageCheck.Checked then
-        Setup := Setup + 'AllowNoIcons=yes' + SNewLine;
-      if CreateURLIconCheck.Enabled and CreateURLIconCheck.Checked then
-        Icons := Icons + 'Name: "{group}\{cm:ProgramOnTheWeb,' + AppNameEdit.Text + '}"; Filename: "' + AppURLEdit.Text + '"' + SNewLine;
-      if CreateUninstallIconCheck.Checked then
-        Icons := Icons + 'Name: "{group}\{cm:UninstallProgram,' + AppNameEdit.Text + '}"; Filename: "{uninstallexe}"' + SNewLine;
+        Icons := Icons + 'Name: "{commonprograms}\' + AppNameEdit.Text + '"; Filename: "{app}\' + AppExeName + '"' + SNewLine;
+      end else begin
+        Setup := Setup + 'DefaultGroupName=' + AppGroupNameEdit.Text + SNewLine;
+        if not NoAppExeCheck.Checked then
+          Icons := Icons + 'Name: "{group}\' + AppNameEdit.Text + '"; Filename: "{app}\' + AppExeName + '"' + SNewLine;
+        if not NotDisableProgramGroupPageCheck.Checked then
+          Setup := Setup + 'DisableProgramGroupPage=yes' + SNewLine;
+        if AllowNoIconsCheck.Checked and NotDisableProgramGroupPageCheck.Checked then
+          Setup := Setup + 'AllowNoIcons=yes' + SNewLine;
+        if CreateURLIconCheck.Enabled and CreateURLIconCheck.Checked then
+          Icons := Icons + 'Name: "{group}\{cm:ProgramOnTheWeb,' + AppNameEdit.Text + '}"; Filename: "' + AppURLEdit.Text + '"' + SNewLine;
+        if CreateUninstallIconCheck.Checked then
+          Icons := Icons + 'Name: "{group}\{cm:UninstallProgram,' + AppNameEdit.Text + '}"; Filename: "{uninstallexe}"' + SNewLine;
+      end;
       if DesktopIconCheck.Enabled and DesktopIconCheck.Checked then begin
         Tasks := Tasks + 'Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked' + SNewLine;
         Icons := Icons + 'Name: "{commondesktop}\' + AppNameEdit.Text + '"; Filename: "{app}\' + AppExeName + '"; Tasks: desktopicon' + SNewLine;

+ 2 - 15
Projects/Compil32.dpr

@@ -97,22 +97,9 @@ procedure CreateMutexes;
   prefix). }
 const
   MutexName = 'InnoSetupCompilerAppMutex';
-  SECURITY_DESCRIPTOR_REVISION = 1;  { Win32 constant not defined in Delphi 3 }
-var
-  SecurityDesc: TSecurityDescriptor;
-  SecurityAttr: TSecurityAttributes;
 begin
-  { By default on Windows NT, created mutexes are accessible only by the user
-    running the process. We need our mutexes to be accessible to all users, so
-    that the mutex detection can work across user sessions in Windows XP. To
-    do this we use a security descriptor with a null DACL. }
-  InitializeSecurityDescriptor(@SecurityDesc, SECURITY_DESCRIPTOR_REVISION);
-  SetSecurityDescriptorDacl(@SecurityDesc, True, nil, False);
-  SecurityAttr.nLength := SizeOf(SecurityAttr);
-  SecurityAttr.lpSecurityDescriptor := @SecurityDesc;
-  SecurityAttr.bInheritHandle := False;
-  CreateMutex(@SecurityAttr, False, MutexName);
-  CreateMutex(@SecurityAttr, False, 'Global\' + MutexName);  { don't localize }
+  CreateMutex(MutexName);
+  CreateMutex('Global\' + MutexName);  { don't localize }
 end;
 
 var

+ 1 - 1
Projects/Compil32.dproj

@@ -26,7 +26,7 @@
 			<DCC_ImageBase>00400000</DCC_ImageBase>
 			<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
 			<DCC_Alignment>1</DCC_Alignment>
-			<DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS$(DCC_Define)</DCC_Define>
+			<DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
 			<DCC_Platform>x86</DCC_Platform>
 			<DCC_K>false</DCC_K>
 			<DCC_F>false</DCC_F>

BIN
Projects/Compil32.res


+ 107 - 45
Projects/Compile.pas

@@ -2,7 +2,7 @@ unit Compile;
 
 {
   Inno Setup
-  Copyright (C) 1997-2014 Jordan Russell
+  Copyright (C) 1997-2016 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -85,6 +85,7 @@ type
     ssAppVersion,
     ssArchitecturesAllowed,
     ssArchitecturesInstallIn64BitMode,
+    ssASLRCompatible,
     ssBackColor,
     ssBackColor2,
     ssBackColorDirection,
@@ -103,6 +104,7 @@ type
     ssDefaultUserInfoName,
     ssDefaultUserInfoOrg,
     ssDefaultUserInfoSerial,
+    ssDEPCompatible,
     ssDirExistsWarning,
     ssDisableDirPage,
     ssDisableFinishedPage,
@@ -146,6 +148,7 @@ type
     ssRestartIfNeededByRun,
     ssSetupIconFile,
     ssSetupLogging,
+    ssSetupMutex,
     ssShowComponentSizes,
     ssShowLanguageDialog,
     ssShowTasksTreeLines,
@@ -192,6 +195,7 @@ type
     ssWindowShowCaption,
     ssWindowStartMaximized,
     ssWindowVisible,
+    ssWizardImageAlphaFormat,
     ssWizardImageBackColor,
     ssWizardImageFile,
     ssWizardImageStretch,
@@ -341,7 +345,7 @@ type
     DefaultLangData: TLangData;
     {$IFDEF UNICODE} PreLangDataList, {$ENDIF} LangDataList: TList;
     SignToolList: TList;
-    SignTool, SignToolParams: String;
+    SignTools, SignToolsParams: TStringList;
     SignToolRetryCount: Integer;
 
     OutputDir, OutputBaseFilename, OutputManifestFile, SignedUninstallerDir,
@@ -363,7 +367,7 @@ type
     SetupHeader: TSetupHeader;
 
     SetupDirectiveLines: array[TSetupSectionDirectives] of Integer;
-    UseSetupLdr, DiskSpanning, BackSolid, TerminalServicesAware: Boolean;
+    UseSetupLdr, DiskSpanning, BackSolid, TerminalServicesAware, DEPCompatible, ASLRCompatible: Boolean;
     DiskSliceSize, DiskClusterSize, SlicesPerDisk, ReserveBytes: Longint;
     LicenseFile, InfoBeforeFile, InfoAfterFile, WizardImageFile: String;
     WizardSmallImageFile: String;
@@ -823,8 +827,10 @@ begin
 end;
 
 procedure UpdateSetupPEHeaderFields(const F: TCustomFile;
-  const IsTSAware: Boolean);
+  const IsTSAware, IsDEPCompatible, IsASLRCompatible: Boolean);
 const
+  IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = $0040;
+  IMAGE_DLLCHARACTERISTICS_NX_COMPAT = $0100;
   IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000;
   OffsetOfImageVersion = $2C;
   OffsetOfDllCharacteristics = $46;
@@ -866,6 +872,17 @@ begin
             DllChars := DllChars or IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
           else
             DllChars := DllChars and not IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE;
+          if IsDEPCompatible then
+            DllChars := DllChars or IMAGE_DLLCHARACTERISTICS_NX_COMPAT
+          else
+            DllChars := DllChars and not IMAGE_DLLCHARACTERISTICS_NX_COMPAT;
+          { Note: because we stripped relocations from Setup(Ldr).e32 during
+            compilation IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE won't actually
+            enable ASLR, but allow setting it anyway to make checkers happy. }
+          if IsASLRCompatible then
+            DllChars := DllChars or IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
+          else
+            DllChars := DllChars and not IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE;
           if DllChars <> OrigDllChars then begin
             F.Seek(Ofs + OffsetOfDllCharacteristics);
             F.WriteBuffer(DllChars, SizeOf(DllChars));
@@ -1647,6 +1664,8 @@ begin
 {$ENDIF}
   LangDataList := TLowFragList.Create;
   SignToolList := TLowFragList.Create;
+  SignTools := TStringList.Create;
+  SignToolsParams := TStringList.Create;
   DebugInfo := TMemoryStream.Create;
   CodeDebugInfo := TMemoryStream.Create;
   CodeText := TStringList.Create;
@@ -1661,6 +1680,8 @@ begin
   CodeText.Free;
   CodeDebugInfo.Free;
   DebugInfo.Free;
+  SignToolsParams.Free;
+  SignTools.Free;
   if Assigned(SignToolList) then begin
     for I := 0 to SignToolList.Count-1 do
       TSignTool(SignToolList[I]).Free;
@@ -3546,6 +3567,7 @@ var
 var
   P: Integer;
   AIncludes: TStringList;
+  SignTool, SignToolParams: String;
 begin
   SeparateDirective(Line, KeyName, Value);
 
@@ -3555,7 +3577,7 @@ begin
   if I = -1 then
     AbortCompileOnLineFmt(SCompilerUnknownDirective, ['Setup', KeyName]);
   Directive := TSetupSectionDirectives(I);
-  if SetupDirectiveLines[Directive] <> 0 then
+  if (Directive <> ssSignTool) and (SetupDirectiveLines[Directive] <> 0) then
     AbortCompileOnLineFmt(SCompilerEntryAlreadySpecified, ['Setup', KeyName]);
   SetupDirectiveLines[Directive] := LineNumber;
   case Directive of
@@ -3652,6 +3674,9 @@ begin
     ssArchitecturesInstallIn64BitMode: begin
         SetupHeader.ArchitecturesInstallIn64BitMode := StrToArchitectures(Value, True);
       end;
+    ssASLRCompatible: begin
+        ASLRCompatible := StrToBool(Value);
+      end;
     ssBackColor: begin
         try
           SetupHeader.BackColor := StringToColor(Value);
@@ -3684,7 +3709,13 @@ begin
         SetSetupHeaderOption(shChangesEnvironment);
       end;
     ssCloseApplications: begin
-        SetSetupHeaderOption(shCloseApplications);
+        if CompareText(Value, 'force') = 0 then begin
+          Include(SetupHeader.Options, shCloseApplications);
+          Include(SetupHeader.Options, shForceCloseApplications);
+        end else begin
+          SetSetupHeaderOption(shCloseApplications);
+          Exclude(SetupHeader.Options, shForceCloseApplications);
+        end;
       end;
     ssCloseApplicationsFilter: begin
         if Value = '' then
@@ -3783,6 +3814,9 @@ begin
     ssDefaultUserInfoSerial: begin
         SetupHeader.DefaultUserInfoSerial := Value;
       end;
+    ssDEPCompatible: begin
+        DEPCompatible := StrToBool(Value);
+      end;
     ssDirExistsWarning: begin
         if CompareText(Value, 'auto') = 0 then
           SetupHeader.DirExistsWarning := ddAuto
@@ -4000,6 +4034,9 @@ begin
     ssSetupLogging: begin
         SetSetupHeaderOption(shSetupLogging);
       end;
+    ssSetupMutex: begin
+        SetupHeader.SetupMutex := Trim(Value);
+      end;
     ssShowComponentSizes: begin
         SetSetupHeaderOption(shShowComponentSizes);
       end;
@@ -4040,6 +4077,8 @@ begin
         end;
         if FindSignToolIndexByName(SignTool) = -1 then
           Invalid;
+        SignTools.Add(SignTool);
+        SignToolsParams.Add(SignToolParams);
       end;
     ssSignToolRetryCount: begin
         I := StrToIntDef(Value, -1);
@@ -4186,14 +4225,17 @@ begin
     ssWindowVisible: begin
         SetSetupHeaderOption(shWindowVisible);
       end;
-    ssWizardImageBackColor: begin
-        try
-          SetupHeader.WizardImageBackColor := StringToColor(Value);
-        except
+    ssWizardImageAlphaFormat: begin
+        if CompareText(Value, 'none') = 0 then
+          SetupHeader.WizardImageAlphaFormat := afIgnored
+        else if CompareText(Value, 'defined') = 0 then
+          SetupHeader.WizardImageAlphaFormat := afDefined
+        else if CompareText(Value, 'premultiplied') = 0 then
+          SetupHeader.WizardImageAlphaFormat := afPremultiplied
+        else
           Invalid;
-        end;
-      end;
-    ssWizardSmallImageBackColor: begin
+    end;
+    ssWizardImageBackColor, ssWizardSmallImageBackColor: begin
         WarningsList.Add(Format(SCompilerEntryObsolete, ['Setup', KeyName]));
       end;
     ssWizardImageStretch: begin
@@ -4707,6 +4749,9 @@ begin
   TaskEntries.Add(NewTaskEntry);
 end;
 
+const
+  FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = $00002000;
+
 procedure TSetupCompiler.EnumDirs(const Line: PChar; const Ext: Integer);
 type
   TParam = (paFlags, paName, paAttribs, paPermissions, paComponents, paTasks,
@@ -4732,8 +4777,8 @@ const
   Flags: array[0..4] of PChar = (
     'uninsneveruninstall', 'deleteafterinstall', 'uninsalwaysuninstall',
     'setntfscompression', 'unsetntfscompression');
-  AttribsFlags: array[0..2] of PChar = (
-    'readonly', 'hidden', 'system');
+  AttribsFlags: array[0..3] of PChar = (
+    'readonly', 'hidden', 'system', 'notcontentindexed');
   AccessMasks: array[0..2] of TNameAndAccessMask = (
     (Name: 'full'; Mask: $1F01FF),
     (Name: 'modify'; Mask: $1301BF),
@@ -4772,6 +4817,7 @@ begin
           0: Attribs := Attribs or FILE_ATTRIBUTE_READONLY;
           1: Attribs := Attribs or FILE_ATTRIBUTE_HIDDEN;
           2: Attribs := Attribs or FILE_ATTRIBUTE_SYSTEM;
+          3: Attribs := Attribs or FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
         end;
 
       { Permissions }
@@ -5610,8 +5656,8 @@ const
     'uninsnosharedfileprompt', 'createallsubdirs', '32bit', '64bit',
     'solidbreak', 'setntfscompression', 'unsetntfscompression',
     'sortfilesbyname', 'gacinstall');
-  AttribsFlags: array[0..2] of PChar = (
-    'readonly', 'hidden', 'system');
+  AttribsFlags: array[0..3] of PChar = (
+    'readonly', 'hidden', 'system', 'notcontentindexed');
   AccessMasks: array[0..2] of TNameAndAccessMask = (
     (Name: 'full'; Mask: $1F01FF),
     (Name: 'modify'; Mask: $1301BF),
@@ -5649,6 +5695,7 @@ type
       'COMCAT.DLL', 'MSVBVM50.DLL', 'MSVBVM60.DLL', 'OLEAUT32.DLL',
       'OLEPRO32.DLL', 'STDOLE2.TLB');
   var
+    SourceFileDir, SysWow64Dir: String;
     I: Integer;
   begin
     if AllowUnsafeFiles then
@@ -5657,9 +5704,13 @@ type
       { Files that must NOT be deployed to the user's System directory }
       { Any DLL deployed from system's own System directory }
       if not ExternalFile and
-         (CompareText(PathExtractExt(Filename), '.DLL') = 0) and
-         (PathCompare(PathExpand(PathExtractDir(SourceFile)), GetSystemDir) = 0) then
+         (CompareText(PathExtractExt(Filename), '.DLL') = 0) then begin
+        SourceFileDir := PathExpand(PathExtractDir(SourceFile));
+        SysWow64Dir := GetSysWow64Dir;
+        if (PathCompare(SourceFileDir, GetSystemDir) = 0) or
+           ((SysWow64Dir <> '') and ((PathCompare(SourceFileDir, SysWow64Dir) = 0))) then
         AbortCompileOnLine(SCompilerFilesSystemDirUsed);
+      end;
       { CTL3D32.DLL }
       if not ExternalFile and
          (CompareText(Filename, 'CTL3D32.DLL') = 0) and
@@ -5921,7 +5972,7 @@ type
           end;
         end;
         if Touch then
-          Include(NewFileLocationEntry^.Flags, foTouch);
+          Include(NewFileLocationEntry^.Flags, foApplyTouchDateTime);
         { Note: "nocompression"/"noencryption" on one file makes all merged
           copies uncompressed/unencrypted too }
         if NoCompression then
@@ -6266,6 +6317,7 @@ begin
                    0: Attribs := Attribs or FILE_ATTRIBUTE_READONLY;
                    1: Attribs := Attribs or FILE_ATTRIBUTE_HIDDEN;
                    2: Attribs := Attribs or FILE_ATTRIBUTE_SYSTEM;
+                   3: Attribs := Attribs or FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
                  end;
 
                { Permissions }
@@ -7725,7 +7777,7 @@ var
   var
     CurrentTime: TSystemTime;
 
-    procedure ApplyTouch(var FT: TFileTime);
+    procedure ApplyTouchDateTime(var FT: TFileTime);
     var
       ST: TSystemTime;
     begin
@@ -7897,15 +7949,15 @@ var
           if not GetFileTime(SourceFile.Handle, nil, nil, @FT) then
             AbortCompile('CompressFiles: GetFileTime failed');
           if TimeStampsInUTC then begin
-            FL.TimeStamp := FT;
+            FL.SourceTimeStamp := FT;
             Include(FL.Flags, foTimeStampInUTC);
           end
           else
-            FileTimeToLocalFileTime(FT, FL.TimeStamp);
-          if foTouch in FL.Flags then
-            ApplyTouch(FL.TimeStamp);
+            FileTimeToLocalFileTime(FT, FL.SourceTimeStamp);
+          if foApplyTouchDateTime in FL.Flags then
+            ApplyTouchDateTime(FL.SourceTimeStamp);
           if TimeStampRounding > 0 then
-            Dec64(Integer64(FL.TimeStamp), Mod64(Integer64(FL.TimeStamp), TimeStampRounding * 10000000));
+            Dec64(Integer64(FL.SourceTimeStamp), Mod64(Integer64(FL.SourceTimeStamp), TimeStampRounding * 10000000));
 
           if ChunkCompressed and IsX86OrX64Executable(SourceFile) then
             Include(FL.Flags, foCallInstructionOptimized);
@@ -8011,6 +8063,7 @@ var
     F: TFile;
     LastError: DWORD;
     SignToolIndex: Integer;
+    I: Integer;
   begin
     UnsignedFileSize := UnsignedFile.CappedSize;
 
@@ -8018,8 +8071,7 @@ var
     ModeID := SetupExeModeUninstaller;
     UnsignedFile.WriteBuffer(ModeID, SizeOf(ModeID));
 
-    SignToolIndex := FindSignToolIndexByName(SignTool);
-    if SignToolIndex <> -1 then begin
+    if SignTools.Count > 0 then begin
       Filename := SignedUninstallerDir + 'uninst.e32.tmp';
 
       F := TFile.Create(Filename, fdCreateAlways, faWrite, fsNone);
@@ -8030,7 +8082,10 @@ var
       end;
 
       try
-        Sign(TSignTool(SignToolList[SignToolIndex]).Command, SignToolParams, Filename, SignToolRetryCount);
+        for I := 0 to SignTools.Count - 1 do begin
+          SignToolIndex := FindSignToolIndexByName(SignTools[I]); //can't fail, already checked
+          Sign(TSignTool(SignToolList[SignToolIndex]).Command, SignToolsParams[I], Filename, SignToolRetryCount);
+        end;
         if not InternalSignSetupE32(Filename, UnsignedFile, UnsignedFileSize,
            SCompilerSignedFileContentsMismatch) then
           AbortCompile(SCompilerSignToolSucceededButNoSignature);
@@ -8089,7 +8144,7 @@ var
         ConvertFilename := E32Filename;
 
       M := TMemoryFile.Create(ConvertFilename);
-      UpdateSetupPEHeaderFields(M, TerminalServicesAware);
+      UpdateSetupPEHeaderFields(M, TerminalServicesAware, DEPCompatible, ASLRCompatible);
       if shSignedUninstaller in SetupHeader.Options then
         SignSetupE32(M);
     finally
@@ -8185,7 +8240,7 @@ var
       for I := 0 to FileLocationEntries.Count-1 do begin
         FL := FileLocationEntries[I];
         S := IntToStr(I) + #9 + FileLocationEntryFilenames[I] + #9 +
-          FileTimeToString(FL.TimeStamp, foTimeStampInUTC in FL.Flags) + #9;
+          FileTimeToString(FL.SourceTimeStamp, foTimeStampInUTC in FL.Flags) + #9;
         if foVersionInfoValid in FL.Flags then
           S := S + Format('%u.%u.%u.%u', [FL.FileVersionMS shr 16,
             FL.FileVersionMS and $FFFF, FL.FileVersionLS shr 16,
@@ -8261,6 +8316,8 @@ begin
     CompressProps := TLZMACompressorProps.Create;
     UseSetupLdr := True;
     TerminalServicesAware := True;
+    DEPCompatible := True;
+    ASLRCompatible := True;
     DiskSliceSize := MaxDiskSliceSize;
     DiskClusterSize := 512;
     SlicesPerDisk := 1;
@@ -8276,25 +8333,24 @@ begin
       shAllowUNCPath, shUsePreviousUserInfo, shRestartIfNeededByRun,
       shAllowCancelDuringInstall, shWizardImageStretch, shAppendDefaultDirName,
       shAppendDefaultGroupName, shUsePreviousLanguage, shCloseApplications,
-      shRestartApplications, shAllowNetworkDrive];
+      shRestartApplications, shAllowNetworkDrive, shDisableWelcomePage];
     SetupHeader.PrivilegesRequired := prAdmin;
     SetupHeader.UninstallFilesDir := '{app}';
     SetupHeader.DefaultUserInfoName := '{sysuserinfoname}';
     SetupHeader.DefaultUserInfoOrg := '{sysuserinfoorg}';
     SetupHeader.BackColor := clBlue;
     SetupHeader.BackColor2 := clBlack;
-    SetupHeader.DisableDirPage := dpNo;
-    SetupHeader.DisableProgramGroupPage := dpNo;
+    SetupHeader.DisableDirPage := dpAuto;
+    SetupHeader.DisableProgramGroupPage := dpAuto;
     SetupHeader.CreateUninstallRegKey := 'yes';
     SetupHeader.Uninstallable := 'yes';
     BackSolid := False;
-    SetupHeader.WizardImageBackColor := $400000;
     WizardImageFile := 'compiler:WIZMODERNIMAGE.BMP';
     WizardSmallImageFile := 'compiler:WIZMODERNSMALLIMAGE.BMP';
     DefaultDialogFontName := 'Tahoma';
-    SignTool := '';
     SignToolRetryCount := 2;
     SetupHeader.CloseApplicationsFilter := '*.exe,*.dll,*.chm';
+    SetupHeader.WizardImageAlphaFormat := afIgnored;
 
     { Read [Setup] section }
     EnumIniSection(EnumSetup, 'Setup', 0, True, True, '', False, False);
@@ -8348,6 +8404,8 @@ begin
     AppVersionHasConsts := CheckConst(SetupHeader.AppVersion, SetupHeader.MinVersion, []);
     LineNumber := SetupDirectiveLines[ssAppMutex];
     CheckConst(SetupHeader.AppMutex, SetupHeader.MinVersion, []);
+    LineNumber := SetupDirectiveLines[ssSetupMutex];
+    CheckConst(SetupHeader.SetupMutex, SetupHeader.MinVersion, []);
     LineNumber := SetupDirectiveLines[ssDefaultDirName];
     CheckConst(SetupHeader.DefaultDirName, SetupHeader.MinVersion, []);
     if SetupHeader.DefaultDirName = '' then begin
@@ -8437,10 +8495,10 @@ begin
       LineNumber := SetupDirectiveLines[ssEncryption];
       AbortCompileFmt(SCompilerEntryMissing2, ['Setup', 'Password']);
     end;
-    if (SetupDirectiveLines[ssSignedUninstaller] = 0) and (SignTool <> '') then
+    if (SetupDirectiveLines[ssSignedUninstaller] = 0) and (SignTools.Count > 0) then
       Include(SetupHeader.Options, shSignedUninstaller);
     if not UseSetupLdr and
-       ((SignTool <> '') or (shSignedUninstaller in SetupHeader.Options)) then
+       ((SignTools.Count > 0) or (shSignedUninstaller in SetupHeader.Options)) then
       AbortCompile(SCompilerNoSetupLdrSignError);
     LineNumber := SetupDirectiveLines[ssCreateUninstallRegKey];
     CheckCheckOrInstall('CreateUninstallRegKey', SetupHeader.CreateUninstallRegKey, cikDirectiveCheck);
@@ -8777,7 +8835,7 @@ begin
           end;
           SetupFile := TFile.Create(ExeFilename, fdOpenExisting, faReadWrite, fsNone);
           try
-            UpdateSetupPEHeaderFields(SetupFile, TerminalServicesAware);
+            UpdateSetupPEHeaderFields(SetupFile, TerminalServicesAware, DEPCompatible, ASLRCompatible);
             SizeOfExe := SetupFile.Size.Lo;
           finally
             SetupFile.Free;
@@ -8845,10 +8903,14 @@ begin
         end;
 
         { Sign }
-        SignToolIndex := FindSignToolIndexByName(SignTool);
-        if SignToolIndex <> -1 then begin
-          AddStatus(SCompilerStatusSigningSetup);
-          Sign(TSignTool(SignToolList[SignToolIndex]).Command, SignToolParams, ExeFilename, SignToolRetryCount);
+        if SignTools.Count > 0 then begin
+          for I := 0 to SignTools.Count - 1 do begin
+            SignToolIndex := FindSignToolIndexByName(SignTools[I]); //can't fail, already checked
+            if SignToolIndex <> -1 then begin
+              AddStatus(SCompilerStatusSigningSetup);
+              Sign(TSignTool(SignToolList[SignToolIndex]).Command, SignToolsParams[I], ExeFilename, SignToolRetryCount);
+            end;
+          end;
         end;
       except
         EmptyOutputDir(False);
@@ -8874,8 +8936,8 @@ begin
     AddStatus('');
     for I := 0 to WarningsList.Count-1 do
       AddStatus(SCompilerStatusWarning + WarningsList[I]);
-    asm jmp @1; db 0,'Inno Setup Compiler, Copyright (C) 1997-2014 Jordan Russell, '
-                  db 'Portions Copyright (C) 2000-2014 Martijn Laan',0; @1: end;
+    asm jmp @1; db 0,'Inno Setup Compiler, Copyright (C) 1997-2016 Jordan Russell, '
+                  db 'Portions Copyright (C) 2000-2016 Martijn Laan',0; @1: end;
     { Note: Removing or modifying the copyright text is a violation of the
       Inno Setup license agreement; see LICENSE.TXT. }
   finally

+ 42 - 26
Projects/ISCC.dpr

@@ -3,7 +3,7 @@ program ISCC;
 
 {
   Inno Setup
-  Copyright (C) 1997-2014 Jordan Russell
+  Copyright (C) 1997-2016 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -48,12 +48,12 @@ type
 var
   StdOutHandle, StdErrHandle: THandle;
   ScriptFilename: String;
-  IncludePath, Definitions, Output, OutputPath, OutputFilename, SignTool: String;
+  IncludePath, Definitions, Output, OutputPath, OutputFilename: String;
+  SignTools: TStringList;
   ScriptLines, NextScriptLine: PScriptLine;
   CurLine: String;
   StartTime, EndTime: DWORD;
   Quiet, ShowProgress, WantAbort: Boolean;
-  SignTools: TStringList;
   ProgressPoint: TPoint;
   LastProgress: String;
   IsppOptions: TIsppOptions;
@@ -341,8 +341,8 @@ procedure ProcessCommandLine;
   procedure ShowBanner;
   begin
     WriteStdOut('Inno Setup 5 Command-Line Compiler');
-    WriteStdOut('Copyright (C) 1997-2014 Jordan Russell. All rights reserved.');
-    WriteStdOut('Portions Copyright (C) 2000-2014 Martijn Laan');
+    WriteStdOut('Copyright (C) 1997-2016 Jordan Russell. All rights reserved.');
+    WriteStdOut('Portions Copyright (C) 2000-2016 Martijn Laan');
     if IsppMode then begin
       WriteStdOut('Inno Setup Preprocessor');
       WriteStdOut('Copyright (C) 2001-2004 Alex Yackimoff. All rights reserved.');
@@ -384,8 +384,9 @@ var
 begin
   if IsppMode then begin
     InitIsppOptions(IsppOptions, Definitions, IncludePath);
+    { Also see below }
     ReadOptionsParam(IsppOptions.Options, '$');
-    ReadOptionsParam(IsppOptions.ParserOptions, 'p');
+    ReadOptionsParam(IsppOptions.ParserOptions, 'P');
   end;
 
   for I := 1 to NewParamCount do begin
@@ -403,12 +404,12 @@ begin
       else if GetParam(S, 'F') then
         OutputFilename := S
       else if GetParam(S, 'S') then begin
-        SignTool := S;
-        if Pos('=', SignTool) = 0 then begin
+        if Pos('=', S) = 0 then begin
           ShowBanner;
           WriteStdErr('Invalid option: ' + S);
           Halt(1);
         end;
+        SignTools.Add(S);
       end else if IsppMode and GetParam(S, 'D') then begin
         if (Pos(';', S) > 0) or (Pos(' ', S) > 0) then
           S := AddQuotes(S);
@@ -426,6 +427,9 @@ begin
       else if IsppMode and GetParam(S, 'V') then begin
         if S <> '' then IsppOptions.VerboseLevel := StrToIntDef(S, 0);
       end
+      else if IsppMode and (GetParam(S, '$') or GetParam(S, 'P')) then begin
+        { Already handled above }
+      end
       else if S = '/?' then begin
         ShowBanner;
         ShowUsage;
@@ -498,6 +502,7 @@ var
   Options: String;
   Res: Integer;
   I: Integer;
+  IDESignTools: TStringList;
 begin
   if ScriptFilename <> '-' then begin
     ScriptFilename := PathExpand(ScriptFilename);
@@ -520,7 +525,6 @@ begin
     Halt(1);
   end;
 
-  SignTools := TStringList.Create;
   ProgressPoint.X := -1;
   ExitCode := 0;
   try
@@ -551,12 +555,20 @@ begin
     if OutputFilename <> '' then
       AppendOption(Options, 'OutputBaseFilename', OutputFilename);
 
-    ReadSignTools(SignTools);
     for I := 0 to SignTools.Count-1 do
-      if (SignTool = '') or (Pos(UpperCase(SignTools.Names[I]) + '=', UpperCase(SignTool)) = 0) then
-        Options := Options + AddSignToolParam(SignTools[I]);
-    if SignTool <> '' then
-      Options := Options + AddSignToolParam(SignTool);
+      Options := Options + AddSignToolParam(SignTools[I]);
+
+    IDESignTools := TStringList.Create;
+    try
+      { Also automatically read and add SignTools defined using the IDE. Adding
+        these after the command line SignTools so that the latter are always
+        found first by the compiler. }
+      ReadSignTools(IDESignTools);
+      for I := 0 to IDESignTools.Count-1 do
+        Options := Options + AddSignToolParam(IDESignTools[I]);
+    finally
+      IDESignTools.Free;
+    end;
 
     if IsppMode then
       IsppOptionsToString(Options, IsppOptions, Definitions, IncludePath);
@@ -581,7 +593,6 @@ begin
         'unexpected result (%d).', [Res]));
     end;
   finally
-    SignTools.Free;
     FreeScriptLines;
   end;
   if ExitCode <> 0 then
@@ -589,17 +600,22 @@ begin
 end;
 
 begin
-  StdOutHandle := GetStdHandle(STD_OUTPUT_HANDLE);
-  StdErrHandle := GetStdHandle(STD_ERROR_HANDLE);
-  SetConsoleCtrlHandler(@ConsoleCtrlHandler, True);
+  SignTools := TStringList.Create;
   try
-    IsppMode := FileExists(ExtractFilePath(NewParamStr(0)) + 'ispp.dll');
-    ProcessCommandLine;
-    Go;
-  except
-    { Show a friendlier exception message. (By default, Delphi prints out
-      the exception class and address.) }
-    WriteStdErr(GetExceptMessage);
-    Halt(2);
+    StdOutHandle := GetStdHandle(STD_OUTPUT_HANDLE);
+    StdErrHandle := GetStdHandle(STD_ERROR_HANDLE);
+    SetConsoleCtrlHandler(@ConsoleCtrlHandler, True);
+    try
+      IsppMode := FileExists(ExtractFilePath(NewParamStr(0)) + 'ispp.dll');
+      ProcessCommandLine;
+      Go;
+    except
+      { Show a friendlier exception message. (By default, Delphi prints out
+        the exception class and address.) }
+      WriteStdErr(GetExceptMessage);
+      Halt(2);
+    end;
+  finally
+    SignTools.Free;
   end;
 end.

+ 11 - 0
Projects/ISPP/Help/ispp.xml

@@ -719,6 +719,17 @@ The list of options is provided at the end of this topic.</para>
 					<para>Returns non-zero value if the specified directory exists.</para>
 				</description>
 			</topic>
+			<topic id="ForceDirectories">
+				<title>ForceDirectories</title>
+				<section title="Prototype">
+					<pre>
+						<line><b>int</b> ForceDirectories(<b>str</b>)</line>
+					</pre>
+				</section>
+				<description>
+					<para>Creates all the directories along the specified directory path all at once. If the first directories in the path do exist, but the latter ones don't, ForceDirectories creates just the ones that don't exist. Returns non-zero value if successful.</para>
+				</description>
+			</topic>
 			<topic id="FileSize">
 				<title>FileSize</title>
 				<section title="Prototype">

BIN
Projects/ISPP/ISPP.res


+ 16 - 0
Projects/ISPP/IsppFuncs.pas

@@ -168,6 +168,21 @@ begin
   end;
 end;
 
+function ForceDirectoriesFunc(Ext: Longint; const Params: IIsppFuncParams; const FuncResult: IIsppFuncResult): TIsppFuncResult; stdcall;
+begin
+  if CheckParams(Params, [evStr], 1, Result) then
+  try
+    with IInternalFuncParams(Params) do
+      MakeBool(ResPtr^, ForceDirectories(PrependPath(Ext, Get(0).AsStr)));
+  except
+    on E: Exception do
+    begin
+      FuncResult.Error(PChar(E.Message));
+      Result.Error := ISPPFUNC_FAIL
+    end;
+  end;
+end;
+
 {FileSize(<filename>)}
 function FileSize(Ext: Longint; const Params: IIsppFuncParams; const FuncResult: IIsppFuncResult): TIsppFuncResult; stdcall;
 var
@@ -1670,6 +1685,7 @@ begin
     RegisterFunction('Str', Str, -1);
     RegisterFunction('FileExists', FileExists, -1);
     RegisterFunction('DirExists', DirExists, -1);
+    RegisterFunction('ForceDirectories', ForceDirectoriesFunc, -1);
     RegisterFunction('FileSize', FileSize, -1);
     RegisterFunction('ReadIni', ReadIni, -1);
     RegisterFunction('WriteIni', WriteIni, -1);

+ 23 - 8
Projects/InstFunc.pas

@@ -49,7 +49,8 @@ type
   TDetermineDefaultLanguageResult = (ddNoMatch, ddMatch, ddMatchLangParameter);
   TGetLanguageEntryProc = function(Index: Integer; var Entry: PSetupLanguageEntry): Boolean;
 
-function CheckForMutexes(Mutexes: String): Boolean;
+function CheckForMutexes(const Mutexes: String): Boolean;
+procedure CreateMutexes(const Mutexes: String);
 function CreateTempDir: String;
 function DecrementSharedCount(const RegView: TRegView; const Filename: String): Boolean;
 procedure DelayDeleteFile(const DisableFsRedir: Boolean; const Filename: String;
@@ -921,7 +922,7 @@ begin
     HandleProcessWait(Info.hProcess, Wait, ProcessMessagesProc, ResultCode);
 end;
 
-function CheckForMutexes(Mutexes: String): Boolean;
+function CheckForOrCreateMutexes(Mutexes: String; const Create: Boolean): Boolean;
 
   function MutexPos(const S: String): Integer;
   var
@@ -937,7 +938,7 @@ function CheckForMutexes(Mutexes: String): Boolean;
   end;
 
 { Returns True if any of the mutexes in the comma-separated Mutexes string
-  exist }
+  exist and Create is False }
 var
   I: Integer;
   M: String;
@@ -950,17 +951,31 @@ begin
     M := Trim(Copy(Mutexes, 1, I-1));
     if M <> '' then begin
       StringChange(M, '\,', ',');
-      H := OpenMutex(SYNCHRONIZE, False, PChar(M));
-      if H <> 0 then begin
-        CloseHandle(H);
-        Result := True;
-        Break;
+      if Create then begin
+        CreateMutex(M)
+      end else begin
+        H := OpenMutex(SYNCHRONIZE, False, PChar(M));
+        if H <> 0 then begin
+          CloseHandle(H);
+          Result := True;
+          Break;
+        end;
       end;
     end;
     Delete(Mutexes, 1, I);
   until Mutexes = '';
 end;
 
+function CheckForMutexes(const Mutexes: String): Boolean;
+begin
+  Result := CheckForOrCreateMutexes(Mutexes, False);
+end;
+
+procedure CreateMutexes(const Mutexes: String);
+begin
+  CheckForOrCreateMutexes(Mutexes, True);
+end;
+
 function ModifyPifFile(const Filename: String; const CloseOnExit: Boolean): Boolean;
 { Changes the "Close on exit" setting of a .pif file. Returns True if it was
   able to make the change. }

+ 14 - 8
Projects/Install.pas

@@ -999,9 +999,9 @@ var
 
         if Assigned(CurFileLocation) then begin
           if foTimeStampInUTC in CurFileLocation^.Flags then
-            CurFileDate := CurFileLocation^.TimeStamp
+            CurFileDate := CurFileLocation^.SourceTimeStamp
           else
-            LocalFileTimeToFileTime(CurFileLocation^.TimeStamp, CurFileDate);
+            LocalFileTimeToFileTime(CurFileLocation^.SourceTimeStamp, CurFileDate);
           CurFileDateValid := True;
         end
         else
@@ -2765,21 +2765,27 @@ var
   procedure ShutdownApplications;
   const
     ERROR_FAIL_SHUTDOWN = 351;
+    ForcedStrings: array [Boolean] of String = ('', ' (forced)');
+    ForcedActionFlag: array [Boolean] of ULONG = (0, RmForceShutdown);
   var
+    Forced: Boolean;
     Error: DWORD;
   begin
-    Log('Shutting down applications using our files.');
+    Forced := InitForceCloseApplications or
+              ((shForceCloseApplications in SetupHeader.Options) and not InitNoForceCloseApplications);
+
+    Log('Shutting down applications using our files.' + ForcedStrings[Forced]);
 
     RmDoRestart := True;
 
-    Error := RmShutdown(RmSessionHandle, 0, nil);
+    Error := RmShutdown(RmSessionHandle, ForcedActionFlag[Forced], nil);
     while Error = ERROR_FAIL_SHUTDOWN do begin
       Log('Some applications could not be shut down.');
       if AbortRetryIgnoreMsgBox(SetupMessages[msgErrorCloseApplications],
          SetupMessages[msgEntryAbortRetryIgnore]) then
         Break;
-      Log('Retrying to shut down applications using our files.');
-      Error := RmShutdown(RmSessionHandle, 0, nil);
+      Log('Retrying to shut down applications using our files.' + ForcedStrings[Forced]);
+      Error := RmShutdown(RmSessionHandle, ForcedActionFlag[Forced], nil);
     end;
 
     { Close session on all errors except for ERROR_FAIL_SHUTDOWN, should still call RmRestart in that case. }
@@ -3037,9 +3043,9 @@ begin
         not (foDontVerifyChecksum in CurFile^.Options));
 
       if foTimeStampInUTC in CurFileLocation^.Flags then
-        CurFileDate := CurFileLocation^.TimeStamp
+        CurFileDate := CurFileLocation^.SourceTimeStamp
       else
-        LocalFileTimeToFileTime(CurFileLocation^.TimeStamp, CurFileDate);
+        LocalFileTimeToFileTime(CurFileLocation^.SourceTimeStamp, CurFileDate);
       SetFileTime(DestF.Handle, nil, nil, @CurFileDate);
     finally
       DestF.Free;

BIN
Projects/Iscc.res


BIN
Projects/Iscmplr.res


+ 25 - 7
Projects/Main.pas

@@ -2,7 +2,7 @@ unit Main;
 
 {
   Inno Setup
-  Copyright (C) 1997-2014 Jordan Russell
+  Copyright (C) 1997-2016 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -102,8 +102,8 @@ var
   InitDir, InitProgramGroup: String;
   InitLoadInf, InitSaveInf: String;
   InitNoIcons, InitSilent, InitVerySilent, InitNoRestart, InitCloseApplications,
-    InitNoCloseApplications, InitRestartApplications, InitNoRestartApplications,
-    InitNoCancel: Boolean;
+    InitNoCloseApplications, InitForceCloseApplications, InitNoForceCloseApplications,
+    InitRestartApplications, InitNoRestartApplications, InitNoCancel: Boolean;
   InitSetupType: String;
   InitComponents, InitTasks: TStringList;
   InitComponentsSpecified: Boolean;
@@ -250,7 +250,7 @@ uses
   Compress, CompressZlib, bzlib, LZMADecomp, ArcFour, SetupEnt, SelLangForm,
   Wizard, DebugClient, VerInfo, Extract, FileClass, Logging, MD5, SHA1,
   {$IFNDEF Delphi3orHigher} OLE2, {$ELSE} ActiveX, {$ENDIF}
-  SimpleExpression, Helper, SpawnClient, SpawnServer, LibFusion;
+  SimpleExpression, Helper, SpawnClient, SpawnServer, LibFusion, BitmapImage;
 
 {$R *.DFM}
 
@@ -643,6 +643,8 @@ begin
   InitNoRestart := GetIniBool(Section, 'NoRestart', InitNoRestart, FileName);
   InitCloseApplications := GetIniBool(Section, 'CloseApplications', InitCloseApplications, FileName);
   InitNoCloseApplications := GetIniBool(Section, 'NoCloseApplications', InitNoCloseApplications, FileName);
+  InitForceCloseApplications := GetIniBool(Section, 'ForceCloseApplications', InitForceCloseApplications, FileName);
+  InitNoForceCloseApplications := GetIniBool(Section, 'NoForceCloseApplications', InitNoForceCloseApplications, FileName);
   InitRestartApplications := GetIniBool(Section, 'RestartApplications', InitRestartApplications, FileName);
   InitNoRestartApplications := GetIniBool(Section, 'NoRestartApplications', InitNoRestartApplications, FileName);
   InitNoCancel := GetIniBool(Section, 'NoCancel', InitNoCancel, FileName);
@@ -2555,7 +2557,8 @@ var
     try
       ReadFileIntoStream(MemStream, R);
       MemStream.Seek(0, soFromBeginning);
-      WizardImage := TBitmap.Create;
+      WizardImage := TAlphaBitmap.Create;
+      TAlphaBitmap(WizardImage).AlphaFormat := TAlphaFormat(SetupHeader.WizardImageAlphaFormat);
       WizardImage.LoadFromStream(MemStream);
     finally
       MemStream.Free;
@@ -2746,6 +2749,7 @@ var
   LastShownComponentEntry, ComponentEntry: PSetupComponentEntry;
   MinimumTypeSpace: Integer64;
   SourceWildcard: String;
+  ExpandedSetupMutex: String;
 begin
   InitializeCommonVars;
 
@@ -2801,6 +2805,12 @@ begin
     if CompareText(ParamName, '/NoCloseApplications') = 0 then
       InitNoCloseApplications := True
     else
+    if CompareText(ParamName, '/ForceCloseApplications') = 0 then
+      InitForceCloseApplications := True
+    else
+    if CompareText(ParamName, '/NoForceCloseApplications') = 0 then
+      InitNoForceCloseApplications := True
+    else
     if CompareText(ParamName, '/RestartApplications') = 0 then
       InitRestartApplications := True
     else
@@ -3166,6 +3176,7 @@ begin
   end;
   ExpandedAppCopyright := ExpandConst(SetupHeader.AppCopyright);
   ExpandedAppMutex := ExpandConst(SetupHeader.AppMutex);
+  ExpandedSetupMutex := ExpandConst(SetupHeader.SetupMutex);
 
   { Update the shutdown block reason now that we have ExpandedAppName. }
   ShutdownBlockReasonCreate(Application.Handle,
@@ -3177,6 +3188,13 @@ begin
        SetupMessages[msgSetupAppTitle], mbError, MB_OKCANCEL, True, IDCANCEL) <> IDOK then
       Abort;
 
+  { Check if Setup is running and if not create mutexes }
+  while CheckForMutexes(ExpandedSetupMutex) do
+    if LoggedMsgBox(FmtSetupMessage1(msgSetupAppRunningError, SetupMessages[msgSetupAppTitle]),
+       SetupMessages[msgSetupAppTitle], mbError, MB_OKCANCEL, True, IDCANCEL) <> IDOK then
+      Abort;
+  CreateMutexes(ExpandedSetupMutex);
+
   { Remove types that fail their 'languages' or 'check'. Can't do this earlier
     because the InitializeSetup call above can't be done earlier. }
   for I := 0 to Entries[seType].Count-1 do begin
@@ -3584,8 +3602,8 @@ begin
   S := SetupTitle + ' version ' + SetupVersion + SNewLine;
   if SetupTitle <> 'Inno Setup' then
     S := S + (SNewLine + 'Based on Inno Setup' + SNewLine);
-  S := S + ('Copyright (C) 1997-2014 Jordan Russell' + SNewLine +
-    'Portions Copyright (C) 2000-2014 Martijn Laan' + SNewLine +
+  S := S + ('Copyright (C) 1997-2016 Jordan Russell' + SNewLine +
+    'Portions Copyright (C) 2000-2016 Martijn Laan' + SNewLine +
     'All rights reserved.' + SNewLine2 +
     'Inno Setup home page:' + SNewLine +
     'http://www.innosetup.com/');

+ 1 - 1
Projects/Regsvr.pas

@@ -136,7 +136,7 @@ begin
     DLL were registered simultaneously by two RegSvr processes? Could the
     registry entries be in an incomplete/inconsistent state? I'm not sure, so
     a mutex is used here to ensure registrations are serialized. }
-  Mutex := CreateMutex(nil, False, 'Inno-Setup-RegSvr-Mutex');
+  Mutex := Windows.CreateMutex(nil, False, 'Inno-Setup-RegSvr-Mutex');
   ShowWindow(Application.Handle, SW_HIDE);  { hide taskbar button while waiting }
   if Mutex <> 0 then begin
     { Even though we have no visible windows, process messages while waiting

+ 6 - 1
Projects/ScriptClasses_C.pas

@@ -223,12 +223,17 @@ end;
 
 procedure RegisterBitmapImage_C(Cl: TPSPascalCompiler);
 begin
+  cl.AddTypeS('TAlphaFormat', '(afIgnored, afDefined, afPremultiplied)');
+  with Cl.AddClassN(CL.FindClass('TBitmap'),'TAlphaBitmap') do
+  begin
+    RegisterProperty('AlphaFormat', 'TAlphaFormat', iptrw);
+  end;
   with Cl.AddClassN(CL.FindClass('TGraphicControl'),'TBitmapImage') do
   begin
     RegisterProperty('AutoSize', 'Boolean', iptrw);
     RegisterProperty('BackColor', 'TColor', iptrw);
     RegisterProperty('Center', 'Boolean', iptrw);
-    RegisterProperty('Bitmap', 'TBitmap', iptrw);
+    RegisterProperty('Bitmap', 'TAlphaBitmap', iptrw); //TBitmapImage.Bitmap property is actually published as a TBitmap but in reality it always returns a TAlphaBitmap
     RegisterProperty('ReplaceColor', 'TColor', iptrw);
     RegisterProperty('ReplaceWithColor', 'TColor', iptrw);
     RegisterProperty('Stretch', 'Boolean', iptrw);

+ 7 - 0
Projects/ScriptClasses_R.pas

@@ -136,8 +136,15 @@ begin
   Cl.Add(TFolderTreeView);
 end;
 
+procedure TAlphaBitmapAlphaFormat_W(Self: TAlphaBitmap; const T: TAlphaFormat); begin Self.AlphaFormat := T; end;
+procedure TAlphaBitmapAlphaFormat_R(Self: TAlphaBitmap; var T: TAlphaFormat); begin T := Self.AlphaFormat; end;
+
 procedure RegisterBitmapImage_R(Cl: TPSRuntimeClassImporter);
 begin
+  with Cl.Add(TAlphaBitmap) do
+  begin
+    RegisterPropertyHelper(@TAlphaBitmapAlphaFormat_R, @TAlphaBitmapAlphaFormat_W, 'AlphaFormat');
+  end;
   Cl.Add(TBitmapImage);
 end;
 

+ 11 - 3
Projects/ScriptFunc.pas

@@ -32,10 +32,17 @@ const
   );
 
   { NewDisk }
-  NewDiskTable: array [0..2] of AnsiString =
+  NewDiskTable: array [0..0] of AnsiString =
+  (
+    'function SelectDisk(const DiskNumber: Integer; const AFilename: String; var Path: String): Boolean;'
+  );
+
+  { BrowseFunc }
+  BrowseFuncTable: array [0..3] of AnsiString =
   (
     'function BrowseForFolder(const Prompt: String; var Directory: String; const NewFolderButton: Boolean): Boolean;',
     'function GetOpenFileName(const Prompt: String; var FileName: String; const InitialDirectory, Filter, DefaultExtension: String): Boolean;',
+    'function GetOpenFileNameMulti(const Prompt: String; const FileNameList: TStrings; const InitialDirectory, Filter, DefaultExtension: String): Boolean;',
     'function GetSaveFileName(const Prompt: String; var FileName: String; const InitialDirectory, Filter, DefaultExtension: String): Boolean;'
   );
 
@@ -161,11 +168,12 @@ const
   );
   
   { InstFnc2 }
-  InstFnc2Table: array [0..2] of AnsiString =
+  InstFnc2Table: array [0..3] of AnsiString =
   (
     'function CreateShellLink(const Filename, Description, ShortcutTo, Parameters, WorkingDir, IconFilename: String; const IconIndex, ShowCmd: Integer): String;',
     'procedure RegisterTypeLibrary(const Is64Bit: Boolean; const Filename: String);',
-    'function UnregisterTypeLibrary(const Is64Bit: Boolean; const Filename: String): Boolean;'
+    'function UnregisterTypeLibrary(const Is64Bit: Boolean; const Filename: String): Boolean;',
+    'function UnpinShellLink(const Filename: String): Boolean;'
   );
 
   { Main }

+ 1 - 0
Projects/ScriptFunc_C.pas

@@ -141,6 +141,7 @@ begin
 
   RegisterFunctionTable(ScriptDlgTable);
   RegisterFunctionTable(NewDiskTable);
+  RegisterFunctionTable(BrowseFuncTable);
   RegisterFunctionTable(CmnFuncTable);
   RegisterFunctionTable(CmnFunc2Table);
   RegisterFunctionTable(InstallTable);

+ 36 - 10
Projects/ScriptFunc_R.pas

@@ -25,7 +25,7 @@ uses
   Forms, uPSUtils, SysUtils, Classes, Graphics, Controls, TypInfo,
   {$IFNDEF Delphi3orHigher} Ole2, {$ELSE} ActiveX, {$ENDIF}
   Struct, ScriptDlg, Main, PathFunc, CmnFunc, CmnFunc2, FileClass, RedirFunc,
-  Install, InstFunc, InstFnc2, Msgs, MsgIDs, BrowseFunc, Wizard, VerInfo,
+  Install, InstFunc, InstFnc2, Msgs, MsgIDs, NewDisk, BrowseFunc, Wizard, VerInfo,
   SetupTypes, Int64Em, MD5, SHA1, Logging, SetupForm, RegDLL, Helper,
   SpawnClient, UninstProgressForm;
 
@@ -304,6 +304,23 @@ end;
 
 { NewDisk }
 function NewDiskProc(Caller: TPSExec; Proc: TPSExternalProcRec; Global, Stack: TPSStack): Boolean;
+var
+  PStart: Cardinal;
+  S: String;
+begin
+  PStart := Stack.Count-1;
+  Result := True;
+
+  if Proc.Name = 'SELECTDISK' then begin
+    S := Stack.GetString(PStart-3);
+    Stack.SetBool(PStart, SelectDisk(Stack.GetInt(PStart-1), Stack.GetString(PStart-2), S));
+    Stack.SetString(PStart-3, S);
+  end else
+    Result := False;
+end;
+
+{ BrowseFunc }
+function BrowseFuncProc(Caller: TPSExec; Proc: TPSExternalProcRec; Global, Stack: TPSStack): Boolean;
 var
   PStart: Cardinal;
   S: String;
@@ -328,6 +345,12 @@ begin
     S := Stack.GetString(PStart-2);
     Stack.SetBool(PStart, NewGetOpenFileName(Stack.GetString(PStart-1), S, Stack.GetString(PStart-3), Stack.GetString(PStart-4), Stack.GetString(PStart-5), ParentWnd));
     Stack.SetString(PStart-2, S);
+  end else if Proc.Name = 'GETOPENFILENAMEMULTI' then begin
+    if Assigned(WizardForm) then
+      ParentWnd := WizardForm.Handle
+    else
+      ParentWnd := 0;
+    Stack.SetBool(PStart, NewGetOpenFileNameMulti(Stack.GetString(PStart-1), TStrings(Stack.GetClass(PStart-2)), Stack.GetString(PStart-3), Stack.GetString(PStart-4), Stack.GetString(PStart-5), ParentWnd));
   end else if Proc.Name = 'GETSAVEFILENAME' then begin
     if Assigned(WizardForm) then
       ParentWnd := WizardForm.Handle
@@ -612,9 +635,9 @@ begin
     S := Stack.GetString(PStart-2);
     if RegOpenKeyExView(RegView, RootKey, PChar(S), 0, KEY_QUERY_VALUE, K) = ERROR_SUCCESS then begin
       N := Stack.GetString(PStart-3);
-      if (RegQueryValueEx(K, PChar(N), nil, @Typ, nil, @Size) = ERROR_SUCCESS) and (Typ = REG_BINARY) then begin
+      if RegQueryValueEx(K, PChar(N), nil, @Typ, nil, @Size) = ERROR_SUCCESS then begin
         SetLength(DataS, Size);
-        if (RegQueryValueEx(K, PChar(N), nil, @Typ, @DataS[1], @Size) = ERROR_SUCCESS) and (Typ = REG_BINARY) then begin
+        if RegQueryValueEx(K, PChar(N), nil, @Typ, @DataS[1], @Size) = ERROR_SUCCESS then begin
           StackSetAnsiString(Stack, PStart-4, DataS);
           Stack.SetBool(PStart, True);
         end else
@@ -927,6 +950,8 @@ begin
     except
       Stack.SetBool(PStart, False);
     end;
+  end else if Proc.Name = 'UNPINSHELLLINK' then begin
+    Stack.SetBool(PStart, UnpinShellLink(Stack.GetString(PStart-1)));
   end else
     Result := False;
 end;
@@ -1269,19 +1294,19 @@ begin
   end else if Proc.Name = 'COMPARETEXT' then begin
     Stack.SetInt(PStart, CompareText(Stack.GetString(PStart-1), Stack.GetString(PStart-2)));
   end else if Proc.Name = 'GETDATETIMESTRING' then begin
-    OldDateSeparator := DateSeparator;
-    OldTimeSeparator := TimeSeparator;
+    OldDateSeparator := {$IFDEF IS_DXE6}FormatSettings.{$ENDIF}DateSeparator;
+    OldTimeSeparator := {$IFDEF IS_DXE6}FormatSettings.{$ENDIF}TimeSeparator;
     try
       NewDateSeparator := Stack.GetString(PStart-2)[1];
       NewTimeSeparator := Stack.GetString(PStart-3)[1];
       if NewDateSeparator <> #0 then
-        DateSeparator := NewDateSeparator;
+        {$IFDEF IS_DXE6}FormatSettings.{$ENDIF}DateSeparator := NewDateSeparator;
       if NewTimeSeparator <> #0 then
-        TimeSeparator := NewTimeSeparator;
+        {$IFDEF IS_DXE6}FormatSettings.{$ENDIF}TimeSeparator := NewTimeSeparator;
       Stack.SetString(PStart, FormatDateTime(Stack.GetString(PStart-1), Now()));
     finally
-      TimeSeparator := OldTimeSeparator;
-      DateSeparator := OldDateSeparator;
+      {$IFDEF IS_DXE6}FormatSettings.{$ENDIF}TimeSeparator := OldTimeSeparator;
+      {$IFDEF IS_DXE6}FormatSettings.{$ENDIF}DateSeparator := OldDateSeparator;
     end;
   end else if Proc.Name = 'SYSERRORMESSAGE' then begin
     Stack.SetString(PStart, Win32ErrorString(Stack.GetInt(PStart-1)));
@@ -1453,7 +1478,7 @@ begin
   end else if Proc.Name = 'FREEDLL' then begin
     Stack.SetBool(PStart, FreeLibrary(Stack.GetInt(PStart-1)));
   end else if Proc.Name = 'CREATEMUTEX' then begin
-    CreateMutex(nil, False, PChar(Stack.GetString(PStart)));
+    Windows.CreateMutex(nil, False, PChar(Stack.GetString(PStart)));
   end else if Proc.Name = 'OEMTOCHARBUFF' then begin
     S := StackGetAnsiString(Stack, PStart);
     OemToCharBuffA(PAnsiChar(S), PAnsiChar(S), Length(S));
@@ -1806,6 +1831,7 @@ procedure ScriptFuncLibraryRegister_R(ScriptInterpreter: TPSExec);
 begin
   RegisterFunctionTable(ScriptDlgTable, @ScriptDlgProc);
   RegisterFunctionTable(NewDiskTable, @NewDiskProc);
+  RegisterFunctionTable(BrowseFuncTable, @BrowseFuncProc);
   RegisterFunctionTable(CmnFuncTable, @CmnFuncProc);
   RegisterFunctionTable(CmnFunc2Table, @CmnFunc2Proc);
   RegisterFunctionTable(InstallTable, @InstallProc);

+ 12 - 10
Projects/Struct.pas

@@ -17,8 +17,8 @@ uses
 
 const
   SetupTitle = 'Inno Setup';
-  SetupVersion = '5.5.5 '{$IFDEF UNICODE}+'(u)'{$ELSE}+'(a)'{$ENDIF};
-  SetupBinVersion = (5 shl 24) + (5 shl 16) + (5 shl 8) + 0;
+  SetupVersion = '5.5.7 '{$IFDEF UNICODE}+'(u)'{$ELSE}+'(a)'{$ENDIF};
+  SetupBinVersion = (5 shl 24) + (5 shl 16) + (7 shl 8) + 0;
 
 type
   TSetupID = array[0..63] of AnsiChar;
@@ -33,7 +33,7 @@ const
     this file it's recommended you change SetupID. Any change will do (like
     changing the letters or numbers), as long as your format is
     unrecognizable by the standard Inno Setup. }
-  SetupID: TSetupID = 'Inno Setup Setup Data (5.5.0)'{$IFDEF UNICODE}+' (u)'{$ENDIF};
+  SetupID: TSetupID = 'Inno Setup Setup Data (5.5.7)'{$IFDEF UNICODE}+' (u)'{$ENDIF};
   UninstallLogID: array[Boolean] of TUninstallLogID =
     ('Inno Setup Uninstall Log (b)', 'Inno Setup Uninstall Log (b) 64-bit');
   MessagesHdrID: TMessagesHdrID = 'Inno Setup Messages (5.5.3)'{$IFDEF UNICODE}+' (u)'{$ENDIF};
@@ -65,7 +65,8 @@ type
     shAppendDefaultGroupName, shEncryptionUsed, shChangesEnvironment,
     {$IFNDEF UNICODE}shShowUndisplayableLanguages, {$ENDIF}shSetupLogging,
     shSignedUninstaller, shUsePreviousLanguage, shDisableWelcomePage,
-    shCloseApplications, shRestartApplications, shAllowNetworkDrive);
+    shCloseApplications, shRestartApplications, shAllowNetworkDrive,
+    shForceCloseApplications);
   TSetupLanguageDetectionMethod = (ldUILanguage, ldLocale, ldNone);
   TSetupCompressMethod = (cmStored, cmZip, cmBzip, cmLZMA, cmLZMA2);
   TSetupSalt = array[0..7] of Byte;
@@ -77,7 +78,7 @@ const
     ('Unknown', 'x86', 'x64', 'Itanium');
 
 const
-  SetupHeaderStrings = 27;
+  SetupHeaderStrings = 28;
   SetupHeaderAnsiStrings = 4;
 type
   TSetupHeader = packed record
@@ -87,7 +88,7 @@ type
       UninstallDisplayIcon, AppMutex, DefaultUserInfoName, DefaultUserInfoOrg,
       DefaultUserInfoSerial, AppReadmeFile, AppContact, AppComments,
       AppModifyPath, CreateUninstallRegKey, Uninstallable,
-      CloseApplicationsFilter: String;
+      CloseApplicationsFilter, SetupMutex: String;
     LicenseText, InfoBeforeText, InfoAfterText, CompiledCodeText: AnsiString;
 {$IFNDEF UNICODE}
     LeadBytes: set of AnsiChar;
@@ -98,7 +99,8 @@ type
       NumRegistryEntries, NumInstallDeleteEntries, NumUninstallDeleteEntries,
       NumRunEntries, NumUninstallRunEntries: Integer;
     MinVersion, OnlyBelowVersion: TSetupVersionData;
-    BackColor, BackColor2, WizardImageBackColor: Longint;
+    BackColor, BackColor2: Longint;
+    WizardImageAlphaFormat: (afIgnored, afDefined, afPremultiplied); // Must be same as Graphics.TAlphaFormat
     PasswordHash: TSHA1Digest;
     PasswordSalt: TSetupSalt;
     ExtraDiskSpaceRequired: Integer64;
@@ -247,11 +249,11 @@ type
     OriginalSize: Integer64;
     ChunkCompressedSize: Integer64;
     SHA1Sum: TSHA1Digest;
-    TimeStamp: TFileTime;
+    SourceTimeStamp: TFileTime;
     FileVersionMS, FileVersionLS: DWORD;
     Flags: set of (foVersionInfoValid, foVersionInfoNotValid, foTimeStampInUTC,
-      foIsUninstExe, foCallInstructionOptimized, foTouch, foChunkEncrypted,
-      foChunkCompressed, foSolidBreak);
+      foIsUninstExe, foCallInstructionOptimized, foApplyTouchDateTime,
+      foChunkEncrypted, foChunkCompressed, foSolidBreak);
   end;
   TSetupIconCloseOnExit = (icNoSetting, icYes, icNo);
 const

+ 1 - 1
Projects/Uninstall.pas

@@ -692,7 +692,7 @@ begin
           if not NoRestart then begin
             if VerySilent or
                (LoggedMessageBoxFmt1(msgUninstalledAndNeedsRestart, UninstLog.AppName,
-                  Title, MB_ICONINFORMATION or MB_YESNO or MB_SETFOREGROUND, True, IDYES) = IDYES) then
+                  Title, MB_ICONQUESTION or MB_YESNO or MB_SETFOREGROUND, True, IDYES) = IDYES) then
               RestartSystem := True;
           end;
           if not RestartSystem then

+ 12 - 0
Projects/Version.inc

@@ -43,6 +43,18 @@
                                 {$DEFINE IS_DXE3}  { then it must be at least Delphi XE3 }
                                 {$IFNDEF VER240}  { if it's not Delphi XE3 }
                                   {$DEFINE IS_DXE4}  { then it must be at least Delphi XE4 }
+                                  {$IFNDEF VER250}  { if it's not Delphi XE4 }
+                                    {$DEFINE IS_DXE5}  { then it must be at least Delphi XE5 }
+                                    {$IFNDEF VER260}  { if it's not Delphi XE5 }
+                                      {$DEFINE IS_DXE6}  { then it must be at least Delphi XE6 }
+                                      {$IFNDEF VER270}  { if it's not Delphi XE6 }
+                                        {$DEFINE IS_DXE7}  { then it must be at least Delphi XE7 }
+                                        {$IFNDEF VER280}  { if it's not Delphi XE7 }
+                                          {$DEFINE IS_DXE8}  { then it must be at least Delphi XE8 }
+                                        {$ENDIF}
+                                      {$ENDIF}
+                                    {$ENDIF}
+                                  {$ENDIF}
                                 {$ENDIF}
                               {$ENDIF}
                             {$ENDIF}

BIN
Projects/Wizard.dfm


+ 3 - 0
Projects/Wizard.dfm.txt

@@ -67,6 +67,7 @@ object WizardForm: TWizardForm
         Top = 0
         Width = 164
         Height = 314
+        BackColor = clWindow
       end
       object WelcomeLabel2: TNewStaticText
         Left = 176
@@ -555,6 +556,7 @@ object WizardForm: TWizardForm
             Height = 21
             Min = 0
             Max = 100
+            Style = npbstNormal
           end
         end
         object InfoAfterPage: TNewNotebookPage
@@ -628,6 +630,7 @@ object WizardForm: TWizardForm
         Top = 0
         Width = 164
         Height = 314
+        BackColor = clWindow
       end
       object RunList: TNewCheckListBox
         Left = 176

+ 0 - 2
Projects/Wizard.pas

@@ -746,11 +746,9 @@ begin
   BackButton.Left := X;
 
   { Initialize images }
-  WizardBitmapImage.BackColor := SetupHeader.WizardImageBackColor;
   WizardBitmapImage.Bitmap := WizardImage;
   WizardBitmapImage.Center := True;
   WizardBitmapImage.Stretch := (shWizardImageStretch in SetupHeader.Options);
-  WizardBitmapImage2.BackColor := SetupHeader.WizardImageBackColor;
   WizardBitmapImage2.Bitmap := WizardImage;
   WizardBitmapImage2.Center := True;
   WizardBitmapImage2.Stretch := (shWizardImageStretch in SetupHeader.Options);

+ 10 - 8
README.md

@@ -1,8 +1,8 @@
 Inno Setup
 ==========
 
-Copyright (C) 1997-2014 Jordan Russell. All rights reserved.  
-Portions Copyright (C) 2000-2014 Martijn Laan. All rights reserved.  
+Copyright (C) 1997-2016 Jordan Russell. All rights reserved.  
+Portions Copyright (C) 2000-2016 Martijn Laan. All rights reserved.  
 For conditions of distribution and use, see LICENSE.TXT.
 
 Source code README
@@ -40,13 +40,16 @@ Source code README
   Unicode Inno Setup:
 
   We compile all of Inno Setup's projects under Delphi 2009 with Update 3.
+  
+  Newer Delphi versions should also work but will lead to significantly larger
+  files.
 
   Non Unicode Inno Setup:
 
   We compile all of Inno Setup's projects under Delphi 2.01, with the
   exception of Compil32 which is compiled under Delphi 3.02 (for the better
-  Far East character set support), and Inno Setup Preprocessor's projects which
-  are compiled under Delphi 7.
+  Far East character set support), and Inno Setup Preprocessor's ISPP which
+  is compiled under Delphi 7.
 
   Delphi 2.01 is used for the main projects because its VCL has a significantly
   smaller code size footprint than the later versions.
@@ -96,11 +99,10 @@ Before you can successfully compile the projects in Delphi 2.0, you must
 do two things:
 
 - Install the latest version of SYSTEM.DCU if you haven't already done so.
-  It can be downloaded from Inprise's site at:
+  It can be downloaded here:
 
-  http://www.borland.com/devsupport/delphi/downloads/index.html
-
-  Look for "System.zip" in the "Delphi 2 Items" section.
+  http://www.jrsoftware.org/files/delphi200system.zip
+    (md5sum: 54d4201afe431d1ffdc3f8d616907cfd)
 
   If you do not do this, you will probably get an "I/O Error" message
   when trying to run the projects.

+ 3 - 10
build.bat

@@ -17,12 +17,11 @@ rem  -Create ANSI Inno Setup installer
 rem  -Compile Unicode Inno Setup
 rem  -Create Unicode Inno Setup installer
 rem
-rem  Once done the 2 installers can be found in Output and additionally 2 ISCC
-rem  files are stored there for later use while preparing an ISPack release
+rem  Once done the 2 installers can be found in Output
 
 setlocal
 
-set VER=5.5.5
+set VER=5.5.8-dev
 
 echo Building Inno Setup %VER%...
 echo.
@@ -55,12 +54,9 @@ echo - Setup.exe
 if exist .\setup-sign.bat (
   call .\setup-sign.bat
 ) else (
-  files\iscc setup.iss /q /DNOSIGNTOOL
+  files\iscc setup.iss /qp /DNOSIGNTOOL
 )
 if errorlevel 1 goto failed
-echo - Copying ISCC for ISPack
-copy files\ISCC.exe output\ISCC-%VER%.exe
-if errorlevel 1 goto failed
 echo - Renaming files
 cd output
 if errorlevel 1 goto failed
@@ -82,9 +78,6 @@ if exist .\setup-sign.bat (
   files\iscc setup.iss /q /DNOSIGNTOOL
 )
 if errorlevel 1 goto failed
-echo - Copying ISCC for ISPack
-copy files\ISCC.exe output\ISCC-%VER%-unicode.exe
-if errorlevel 1 goto failed
 echo - Renaming files
 cd output
 if errorlevel 1 goto failed

+ 36 - 3
compile-unicode.bat

@@ -12,21 +12,30 @@ setlocal
 if exist compilesettings.bat goto compilesettingsfound
 :compilesettingserror
 echo compilesettings.bat is missing or incomplete. It needs to be created
-echo with the following lines, adjusted for your system:
+echo with either of the following lines, adjusted for your system:
 echo.
-echo   set DELPHI2009ROOT=C:\Program Files\CodeGear\RAD Studio\6.0   [Path to Delphi 2009 (or later)]
+echo   set DELPHI2009ROOT=C:\Program Files\CodeGear\RAD Studio\6.0  [Path to Delphi 2009 (or 2010)]
+echo or
+echo   set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\8.0 [Path to Delphi XE (or later)]
 goto failed2
 
 :compilesettingsfound
 set DELPHI2009ROOT=
+set DELPHIXEROOT=
 call .\compilesettings.bat
-if "%DELPHI2009ROOT%"=="" goto compilesettingserror
+if "%DELPHI2009ROOT%"=="" if "%DELPHIXEROOT%"=="" goto compilesettingserror
 
 rem -------------------------------------------------------------------------
 
 rem  Compile each project separately because it seems Delphi
 rem  carries some settings (e.g. $APPTYPE) between projects
 rem  if multiple projects are specified on the command line.
+rem  Note:
+rem  Command line parameter "--peflags:1" below equals the
+rem  {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED} directive.
+rem  This causes the Delphi compiler to not just set the flag
+rem  but also it actually strips relocations. Used instead of
+rem  calling StripReloc like compile.bat does.
 
 cd Projects
 if errorlevel 1 goto exit
@@ -35,29 +44,53 @@ cd ISPP
 if errorlevel 1 goto failed
 
 echo - ISPP.dpr
+if "%DELPHIXEROOT%"=="" (
 "%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib" -E..\..\Files ISPP.dpr
+) else (
+"%DELPHIXEROOT%\bin\dcc32.exe" --no-config -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release" -E..\..\Files ISPP.dpr
+)
 if errorlevel 1 goto failed
 
 cd ..
 
 echo - Compil32.dpr
+if "%DELPHIXEROOT%"=="" (
 "%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Compil32.dpr
+) else (
+"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi;vcl -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Compil32.dpr
+)
 if errorlevel 1 goto failed
 
 echo - ISCC.dpr
+if "%DELPHIXEROOT%"=="" (
 "%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCC.dpr
+) else (
+"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCC.dpr
+)
 if errorlevel 1 goto failed
 
 echo - ISCmplr.dpr
+if "%DELPHIXEROOT%"=="" (
 "%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCmplr.dpr
+) else (
+"%DELPHIXEROOT%\bin\dcc32.exe" --no-config -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCmplr.dpr
+)
 if errorlevel 1 goto failed
 
 echo - SetupLdr.dpr
+if "%DELPHIXEROOT%"=="" (
 "%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components" -E..\Files SetupLdr.dpr
+) else (
+"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components" -E..\Files SetupLdr.dpr
+)
 if errorlevel 1 goto failed
 
 echo - Setup.dpr
+if "%DELPHIXEROOT%"=="" (
 "%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Setup.dpr
+) else (
+"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi;vcl -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Setup.dpr
+)
 if errorlevel 1 goto failed
 
 echo - Renaming files

+ 110 - 34
ishelp/isetup.xml

@@ -3,7 +3,7 @@
 
 <!--
   Inno Setup
-  Copyright (C) 1997-2014 Jordan Russell
+  Copyright (C) 1997-2016 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 -->
@@ -53,7 +53,7 @@
     <contentstopic title="Support Functions Reference" topic="scriptfunctions" />
     <contentstopic title="Support Classes Reference" topic="scriptclasses" />
     <contentstopic title="Using Custom Wizard Pages" topic="scriptpages" />
-    <contentstopic title="Using DLLs" topic="scriptdll" />
+    <contentstopic title="Using DLLs and .NET assemblies" topic="scriptdll" />
     <contentstopic title="Using COM Automation objects" topic="scriptautomation" />
   </contentsheading>
   <contentsheading title="Other Information">
@@ -85,9 +85,9 @@
 <body>
 
 <p>
-<b>Inno Setup version 5.5.5</b><br/>
-<b>Copyright &copy; 1997-2014 Jordan Russell. All rights reserved.</b><br/>
-<b>Portions Copyright &copy; 2000-2014 Martijn Laan. All rights reserved.</b><br/>
+<b>Inno Setup version 5.5.7</b><br/>
+<b>Copyright &copy; 1997-2016 Jordan Russell. All rights reserved.</b><br/>
+<b>Portions Copyright &copy; 2000-2016 Martijn Laan. All rights reserved.</b><br/>
 <extlink href="http://www.jrsoftware.org/">Inno Setup home page</extlink>
 </p>
 
@@ -99,13 +99,13 @@ Inno Setup is a <i>free</i> installer for Windows programs. First introduced in
 
 <ul>
 
-<li>Support for every Windows release since 2000, including: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003, and Windows 2000. (No service packs are required.)</li>
+<li>Support for every Windows release since 2000, including: Windows 10, Windows 8.1, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003, and Windows 2000. (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. Both the x64 and Itanium architectures are supported. (On the Itanium architecture, Service Pack 1 or later is required on Windows Server 2003 to install in 64-bit mode.)</li>
 
 <li>Supports creation of a single EXE to install your program for easy online distribution. <link topic="setup_diskspanning">Disk spanning</link> is also supported.</li>
 
-<li>Standard Windows 2000/XP-style wizard interface.</li>
+<li>Standard Windows wizard interface.</li>
 
 <li>Customizable setup <link topic="typessection">types</link>, e.g. Full, Minimal, Custom.</li>
 
@@ -124,7 +124,7 @@ Includes integrated support for "deflate", bzip2, and 7-Zip LZMA/LZMA2 file <lin
 
 <li>Support for <link topic="setup_password">passworded</link> and <link topic="setup_encryption">encrypted</link> installs.</li>
 
-<li>Support for <link topic="setup_signtool">digitally signed</link> installs and uninstalls.</li>
+<li>Support for <link topic="setup_signtool">digitally signed</link> installs and uninstalls, including dual signing (SHA1 &amp; SHA256).</li>
 
 <li><link topic="setupcmdline" anchor="SILENT">Silent install</link> and <link topic="uninstcmdline" anchor="SILENT">silent uninstall</link>.</li>
 
@@ -887,8 +887,10 @@ DefaultGroupName=My Program
 <heading>Compiler-related</heading>
 
 <ul appearance="compact">
+<li><link topic="setup_aslrcompatible">ASLRCompatible</link></li>
 <li><link topic="setup_compression">Compression</link></li>
 <li><link topic="setup_compressionthreads">CompressionThreads</link></li>
+<li><link topic="setup_depcompatible">DEPCompatible</link></li>
 <li><link topic="setup_diskclustersize">DiskClusterSize</link></li>
 <li><link topic="setup_diskslicesize">DiskSliceSize</link></li>
 <li><link topic="setup_diskspanning">DiskSpanning</link></li>
@@ -992,6 +994,7 @@ DefaultGroupName=My Program
 <li><link topic="setup_restartapplications">RestartApplications</link></li>
 <li><link topic="setup_restartifneededbyrun">RestartIfNeededByRun</link></li>
 <li><link topic="setup_setuplogging">SetupLogging</link></li>
+<li><link topic="setup_setupmutex">SetupMutex</link></li>
 <li><link topic="setup_showlanguagedialog">ShowLanguageDialog</link></li>
 <li><link topic="setup_showundisplayablelanguages">ShowUndisplayableLanguages</link></li>
 <li><link topic="setup_timestamprounding">TimeStampRounding</link></li>
@@ -1031,7 +1034,7 @@ DefaultGroupName=My Program
 <li><link topic="setup_windowstartmaximized">WindowStartMaximized</link></li>
 <li><link topic="setup_windowresizable">WindowResizable</link></li>
 <li><link topic="setup_windowvisible">WindowVisible</link></li>
-<li><link topic="setup_wizardimagebackcolor">WizardImageBackColor</link></li>
+<li><link topic="setup_wizardimagealphaformat">WizardImageAlphaFormat</link></li>
 <li><link topic="setup_wizardimagefile">WizardImageFile</link></li>
 <li><link topic="setup_wizardimagestretch">WizardImageStretch</link></li>
 <li><link topic="setup_wizardsmallimagefile">WizardSmallImageFile</link></li>
@@ -1049,6 +1052,7 @@ DefaultGroupName=My Program
 <li><link topic="setup_uninstalliconfile">UninstallIconFile</link></li>
 <li><link topic="setup_uninstalliconname">UninstallIconName</link></li>
 <li><link topic="setup_uninstallstyle">UninstallStyle</link></li>
+<li><link topic="setup_wizardimagebackcolor">WizardImageBackColor</link></li>
 <li><link topic="setup_wizardsmallimagebackcolor">WizardSmallImageBackColor</link></li>
 <li><link topic="setup_wizardstyle">WizardStyle</link></li>
 </ul>
@@ -1340,7 +1344,7 @@ Name: "{app}\bin"
 </param>
 
 <param name="Attribs">
-<p>Specifies additional attributes for the directory. This can include one or more of the following: <tt>readonly</tt>, <tt>hidden</tt>, <tt>system</tt>. If this parameter is not specified, Setup does not assign any special attributes to the directory.</p>
+<p>Specifies additional attributes for the directory. This can include one or more of the following: <tt>readonly</tt>, <tt>hidden</tt>, <tt>system</tt>, <tt>notcontentindexed</tt>. If this parameter is not specified, Setup does not assign any special attributes to the directory.</p>
 <p>If the directory already exists, the specified attributes will be combined with the directory's existing attributes.</p>
 <example>
 <pre>Attribs: hidden system</pre>
@@ -1501,7 +1505,7 @@ ExternalSize: 1048576; Flags: external
 </param>
 
 <param name="Attribs">
-<p>Specifies additional attributes for the file. This can include one or more of the following: <tt>readonly</tt>, <tt>hidden</tt>, <tt>system</tt>. If this parameter is not specified, Setup does not assign any special attributes to the file.</p>
+<p>Specifies additional attributes for the file. This can include one or more of the following: <tt>readonly</tt>, <tt>hidden</tt>, <tt>system</tt>, <tt>notcontentindexed</tt>. If this parameter is not specified, Setup does not assign any special attributes to the file.</p>
 <example>
 <pre>Attribs: hidden system</pre>
 </example>
@@ -2697,7 +2701,7 @@ Type: files; Name: "{win}\MYPROG.INI"
 
 <li>
 <b>Welcome</b><br/>
-Shown by default, but can be disabled via <link topic="setup_disablewelcomepage">DisableWelcomePage</link>.
+Shown if <link topic="setup_disablewelcomepage">DisableWelcomePage</link> is set to <tt>no</tt>.
 </li>
 
 <li>
@@ -2722,7 +2726,7 @@ Shown if <link topic="setup_userinfopage">UserInfoPage</link> is set to <tt>yes<
 
 <li>
 <b>Select Destination Location</b><br/>
-Shown by default, but can be disabled via <link topic="setup_disabledirpage">DisableDirPage</link>.
+Shown if <link topic="setup_disabledirpage">DisableDirPage</link> is set to <tt>no</tt> or <tt>auto</tt>.
 </li>
 
 <li>
@@ -2732,7 +2736,7 @@ Shown if there are any <link topic="componentssection">[Components]</link> entri
 
 <li>
 <b>Select Start Menu Folder</b><br/>
-Shown if there are any <link topic="iconssection">[Icons]</link> entries, but can be disabled via <link topic="setup_disableprogramgrouppage">DisableProgramGroupPage</link>.
+Shown if there are any <link topic="iconssection">[Icons]</link> entries and if <link topic="setup_disableprogramgrouppage">DisableProgramGroupPage</link> is set to <tt>no</tt> or <tt>auto</tt>.
 </li>
 
 <li>
@@ -2749,7 +2753,7 @@ Shown by default, but can be disabled via <link topic="setup_disablereadypage">D
 <b>Preparing to Install</b><br/>
 Normally, Setup will never stop or pause on this page. The only time it will is if Setup determines it can't continue or if it detects applications using files that need to be updated.<br/><br/>
 The former can happen if the <tt>PrepareToInstall</tt> event function returned an error or if one or more files specified in the [Files] and [InstallDelete] sections were queued (by some other installation) to be replaced or deleted on the next restart. In this case, it tells the user they need to restart their computer and then run Setup again. Note that this check is performed on silent installations too, but any messages are displayed in a message box instead of inside a wizard page.<br/><br/>
-The latter can happen if <link topic="setup_closeapplications">CloseApplications</link> is set to <tt>yes</tt>.
+The latter can happen if <link topic="setup_closeapplications">CloseApplications</link> is set to <tt>yes</tt> or <tt>force</tt>.
 </li>
 
 <li>
@@ -3020,6 +3024,8 @@ Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; St
 <keyword value="/NORESTART" anchor="NORESTART" />
 <keyword value="/CLOSEAPPLICATIONS" anchor="CLOSEAPPLICATIONS" />
 <keyword value="/NOCLOSEAPPLICATIONS" anchor="NOCLOSEAPPLICATIONS" />
+<keyword value="/FORCECLOSEAPPLICATIONS" anchor="FORCECLOSEAPPLICATIONS" />
+<keyword value="/NOFORCECLOSEAPPLICATIONS" anchor="NOFORCECLOSEAPPLICATIONS" />
 <keyword value="/RESTARTAPPLICATIONS" anchor="RESTARTAPPLICATIONS" />
 <keyword value="/NORESTARTAPPLICATIONS" anchor="NORESTARTAPPLICATIONS" />
 <keyword value="/LOADINF=" anchor="LOADINF" />
@@ -3121,9 +3127,19 @@ Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; St
 <p>Prevents Setup from closing applications using files that need to be updated by Setup. If /CLOSEAPPLICATIONS was also used, this command line parameter is ignored.</p>
 </dd>
 
+<dt><b><a name="FORCECLOSEAPPLICATIONS">/FORCECLOSEAPPLICATIONS</a></b></dt>
+<dd>
+<p>Instructs Setup to force close when closing applications.</p>
+</dd>
+
+<dt><b><a name="NOFORCECLOSEAPPLICATIONS">/NOFORCECLOSEAPPLICATIONS</a></b></dt>
+<dd>
+<p>Prevents Setup from force closing when closing applications. If /FORCECLOSEAPPLICATIONS was also used, this command line parameter is ignored.</p>
+</dd>
+
 <dt><b><a name="RESTARTAPPLICATIONS">/RESTARTAPPLICATIONS</a></b></dt>
 <dd>
-<p>Instructs Setup to restart applications if possible. If Setup didn't close these applications (for example because /NOCLOSEAPPLICATIONS was used), this command line parameter is ignored.</p>
+<p>Instructs Setup to restart applications if possible. Only has an effect when combined with '/CLOSEAPPLICATIONS'.</p>
 </dd>
 
 <dt><b><a name="NORESTARTAPPLICATIONS">/NORESTARTAPPLICATIONS</a></b></dt>
@@ -3392,7 +3408,7 @@ Keep the default set of selected tasks, but deselect the "desktopicon" task:<br/
 
 <dt><b>Any DLL file from own Windows System directory</b></dt>
 <dd>
-<p>You should not deploy any DLLs out of your own Windows System directory because most of them are tailored for your own specific version of Windows, and will not work when installed on other versions. Often times a user's system will be <b>rendered unbootable</b> if you install a DLL from a different version of Windows. Another reason why it's a bad idea is that when you install programs on your computer, the DLLs may be replaced with different/incompatible versions without your knowledge. This could lead to unexpected and difficult-to-trace problems on users' systems when you build new installations.</p>
+<p>You should not deploy any DLLs out of your own Windows System directory to <tt>{sys}</tt> because most of them are tailored for your own specific version of Windows, and will not work when installed on other versions. Often times a user's system will be <b>rendered unbootable</b> if you install a DLL from a different version of Windows. Another reason why it's a bad idea is that when you install programs on your computer, the DLLs may be replaced with different/incompatible versions without your knowledge. This could lead to unexpected and difficult-to-trace problems on users' systems when you build new installations.</p>
 <p>Instead of deploying the DLLs from your Windows System directory, you should find versions that are specifically deemed "redistributable". Redistributable DLLs typically work on more than one version of Windows. To find redistributable versions of the Visual Basic and Visual C++ run-time DLLs, see the Inno Setup FAQ.</p>
 <p>If you have a DLL residing in the Windows System directory that you are <b>absolutely sure</b> is redistributable, copy it to your script's source directory and deploy it from there instead.</p>
 </dd>
@@ -3603,6 +3619,21 @@ CreateMutex 0&amp;, 0&amp;, "MyProgramsMutexName"
 <p>To specify a mutex name containing a comma, escape the comma with a backslash.</p>
 <p>See the topic for CreateMutex in the MS SDK help for more information on mutexes.</p>
 <example><pre>AppMutex=MyProgramsMutexName</pre></example>
+<p><b>See also:</b><br/>
+<link topic="setup_setupmutex">SetupMutex</link>
+</p>
+</body>
+</setuptopic>
+
+<setuptopic directive="SetupMutex">
+<body>
+<p>This directive is used to prevent Setup from running while Setup is already running. It specifies the names of one or more named mutexes (multiple mutexes are separated by commas), which Setup will check for at startup. If any exist, Setup will display the message: "Setup has detected that Setup is currently running. Please close all instances of it now, then click OK to continue, or Cancel to exit." If none exist, Setup will create the mutex(es) and continue normally. The value may include constants.</p>
+<p>To specify a mutex name containing a comma, escape the comma with a backslash.</p>
+<p>See the topic for CreateMutex in the MS SDK help for more information on mutexes.</p>
+<example><pre>SetupMutex=MySetupsMutexName,Global\MySetupsMutexName</pre></example>
+<p><b>See also:</b><br/>
+<link topic="setup_appmutex">AppMutex</link>
+</p>
 </body>
 </setuptopic>
 
@@ -3929,7 +3960,7 @@ Name: portablemode; Description: "Portable Mode"</pre></example>
 
 <setuptopic directive="DisableDirPage">
 <setupvalid><tt>auto</tt>, <link topic="yesnonotes"><tt>yes</tt>, or <tt>no</tt></link></setupvalid>
-<setupdefault><tt>no</tt></setupdefault>
+<setupdefault><tt>auto</tt></setupdefault>
 <body>
 <p>If this is set to <tt>yes</tt>, Setup will not show the <i>Select Destination Location</i> wizard page.</p>
 <p>If this is set to <tt>auto</tt>, at startup Setup will look in the registry to see if the <link topic="sameappnotes">same application</link> is already installed, and if so, it will not show the <i>Select Destination Location</i> wizard page.</p>
@@ -3949,7 +3980,7 @@ Name: portablemode; Description: "Portable Mode"</pre></example>
 
 <setuptopic directive="DisableProgramGroupPage">
 <setupvalid><tt>auto</tt>, <link topic="yesnonotes"><tt>yes</tt>, or <tt>no</tt></link></setupvalid>
-<setupdefault><tt>no</tt></setupdefault>
+<setupdefault><tt>auto</tt></setupdefault>
 <body>
 <p>If this is set to <tt>yes</tt>, Setup will not show the <i>Select Start Menu Folder</i> wizard page.</p>
 <p>If this is set to <tt>auto</tt>, at startup Setup will look in the registry to see if the <link topic="sameappnotes">same application</link> is already installed, and if so, it will not show the <i>Select Start Menu Folder</i> wizard page.</p>
@@ -3989,7 +4020,7 @@ end;</pre></example>
 
 <setuptopic directive="DisableWelcomePage">
 <setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
-<setupdefault><tt>no</tt></setupdefault>
+<setupdefault><tt>yes</tt></setupdefault>
 <body>
 <p>If this is set to <tt>yes</tt>, Setup will not show the <i>Welcome</i> wizard page.</p>
 </body>
@@ -4403,6 +4434,8 @@ DiskSliceSize=1457664
 <p>Specifies the name of the bitmap file to display on the left side of the wizard in the Setup program. This file must be located in your installation's <link topic="sourcedirectorynotes">source directory</link> when running the Setup Compiler, unless a fully qualified pathname is specified or the pathname is prefixed by "compiler:", in which case it looks for the file in the Compiler directory.</p>
 <p>256-color bitmaps may not display correctly in 256-color mode, since it does not handle palettes. The maximum size of the bitmap is 164x314 pixels. Note that if Windows is running with Large Fonts, the area on the wizard for the bitmap will be larger.</p>
 <example><pre>WizardImageFile=myimage.bmp</pre></example>
+<p><b>See also:</b><br/>
+<link topic="setup_wizardimagealphaformat">WizardImageAlphaFormat</link></p>
 </body>
 </setuptopic>
 
@@ -4442,11 +4475,20 @@ DiskSliceSize=1457664
 </body>
 </setuptopic>
 
+<setuptopic directive="WizardImageAlphaFormat">
+<setupvalid><tt>none</tt>, <tt>defined</tt>, <tt>premultiplied</tt></setupvalid>
+<setupdefault><tt>none</tt></setupdefault>
+<body>
+<p>If set to <tt>none</tt>, the default, any wizard image which is a 32 bit bitmap file should not have an alpha channel.</p>
+<p>If set to <tt>premultiplied</tt>, any wizard image which is a 32 bit bitmap file should have its red, green and blue channel values premultiplied with the alpha channel value.</p>
+<p>If set to <tt>defined</tt>, any wizard image which is a 32 bit bitmap file should not have its red, green and blue channel values premultiplied with the alpha channel value.</p>
+<p>This directive has no effect for a wizard image which is not a 32 bit bitmap file.</p>
+</body>
+</setuptopic>
+
 <setuptopic directive="WizardImageBackColor">
-<setupvalid>A value in the form of <tt>$<i>bbggrr</i></tt>, where <tt>rr</tt>, <tt>gg</tt>, and <tt>bb</tt> specify the two-digit intensities (in hexadecimal) for red, green, and blue respectively. Or it may be one of the following predefined color names: clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple, clTeal, clGray, clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite.</setupvalid>
-<setupdefault><tt>$400000</tt></setupdefault>
 <body>
-<p>This directive specifies the background color used to fill any unused space around the wizard bitmap (which is specified by <link topic="setup_wizardimagefile">WizardImageFile</link>). There can only be unused space if <link topic="setup_wizardimagestretch">WizardImageStretch</link> is set to <tt>no</tt>.</p>
+<p><i>Obsolete in 5.5.7.</i> This directive formerly specified the background color used to fill any unused space around the wizard bitmap when <link topic="setup_wizardimagestretch">WizardImageStretch</link> was set to <tt>no</tt>. Now any unused space is filled with the standard window color (usually white). If you wish to create a colored border around the image, do so by modifying the bitmap itself.</p>
 </body>
 </setuptopic>
 
@@ -4501,6 +4543,8 @@ DiskSliceSize=1457664
 <p>Specifies the name of the bitmap file to display in the upper right corner of the wizard window. This file must be located in your installation's <link topic="sourcedirectorynotes">source directory</link> when running the Setup Compiler, unless a fully qualified pathname is specified or the pathname is prefixed by "compiler:", in which case it looks for the file in the Compiler directory.</p>
 <p>256-color bitmaps may not display correctly in 256-color mode, since it does not handle palettes. The maximum size of the bitmap is 55x58 pixels.</p>
 <example><pre>WizardSmallImageFile=mysmallimage.bmp</pre></example>
+<p><b>See also:</b><br/>
+<link topic="setup_wizardimagealphaformat">WizardImageAlphaFormat</link></p>
 </body>
 </setuptopic>
 
@@ -4601,7 +4645,7 @@ DiskSliceSize=1457664
 <setupvalid><tt>0</tt> through <tt>60</tt></setupvalid>
 <setupdefault><tt>2</tt></setupdefault>
 <body>
-<p>By default, time stamps on files referenced by [Files] section entries are rounded down to the nearest 2-second boundary. FAT partitions have only a 2-second time stamp resolution, so this ensures that time stamps are set the same way on both FAT and NTFS partitions.</p>
+<p>By default, time stamps on files referenced by non <tt>external</tt> [Files] section entries are rounded down to the nearest 2-second boundary. FAT partitions have only a 2-second time stamp resolution, so this ensures that time stamps are set the same way on both FAT and NTFS partitions.</p>
 <p>The rounding can be altered or disabled by setting the <tt>TimeStampRounding</tt> directive. Setting it to <tt>0</tt> will disable the rounding. Setting it to a number between <tt>1</tt> and <tt>60</tt> will cause time stamps to be rounded down to the nearest <tt>TimeStampRounding</tt>-second boundary.</p>
 </body>
 </setuptopic>
@@ -4610,7 +4654,7 @@ DiskSliceSize=1457664
 <setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
 <setupdefault><tt>no</tt></setupdefault>
 <body>
-<p>By default, time stamps on files referenced by [Files] section entries are saved and restored as local times. This means that if a particular file has a time stamp of 01:00 local time at compile time, Setup will extract the file with a time stamp of 01:00 local time, regardless of the user's time zone setting or whether DST is in effect.</p>
+<p>By default, time stamps on files referenced by non <tt>external</tt> [Files] section entries are saved and restored as local times. This means that if a particular file has a time stamp of 01:00 local time at compile time, Setup will extract the file with a time stamp of 01:00 local time, regardless of the user's time zone setting or whether DST is in effect.</p>
 <p>If <tt>TimeStampsInUTC</tt> is set to <tt>yes</tt>, time stamps will be saved and restored in UTC -- the native time format of Win32 and NTFS. In this mode, a file with a time stamp of 01:00 local time in New York will have a time stamp of 06:00 local time when installed in London.</p>
 </body>
 </setuptopic>
@@ -4812,6 +4856,23 @@ DiskSliceSize=1457664
 </body>
 </setuptopic>
 
+<setuptopic directive="DEPCompatible">
+<setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
+<setupdefault><tt>yes</tt></setupdefault>
+<body>
+<p>Specifies whether the compiler should set the "NX Compatible" flag in the headers of the Setup and Uninstall programs to mark them compatible with data execution prevention (DEP). This feature is new to version 5.5.7 and defaults to <tt>yes</tt>; previous versions never set the flag.</p>
+<p>Setting this to <tt>no</tt> might be needed if you're using a buggy third-party DLL from [Code].</p>
+</body>
+</setuptopic>
+
+<setuptopic directive="ASLRCompatible">
+<setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
+<setupdefault><tt>yes</tt></setupdefault>
+<body>
+<p>Specifies whether the compiler should set the "Dynamic Base" flag in the headers of the Setup and Uninstall programs. This feature is new to version 5.5.7 and defaults to <tt>yes</tt>; previous versions never set the flag.</p>
+</body>
+</setuptopic>
+
 <setuptopic directive="SetupLogging">
 <keyword value="logging" />
 <keyword value="/LOG" />
@@ -4827,7 +4888,7 @@ DiskSliceSize=1457664
 <keyword value="digital signature" />
 <keyword value="code signing" />
 <setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
-<setupdefault><tt>yes</tt> if <link topic="setup_signtool">SignTool</link> is set, <tt>no</tt> otherwise</setupdefault>
+<setupdefault><tt>yes</tt> if a <link topic="setup_signtool">SignTool</link> is set, <tt>no</tt> otherwise</setupdefault>
 <body>
 <p>Specifies whether the uninstaller program (unins???.exe) should be deployed with a digital signature attached. When the uninstaller has a valid digital signature, Windows Vista users will not see an "unidentified program" warning when launching it from outside of Control Panel.</p>
 <p>The first time you compile a script with this directive set to <tt>yes</tt>, a uniquely-named copy of the uninstaller EXE file will be created in the directory specified by the <link topic="setup_signeduninstallerdir">SignedUninstallerDir</link> directive (which defaults to the <link topic="setup_outputdir">output directory</link>). Depending on the <link topic="setup_signtool">SignTool</link> setting, you will either then be prompted to attach a digital signature to this file using an external code-signing tool (such as Microsoft's signtool.exe) or the file will be automatically signed on the fly. On subsequent compiles, the signature from the file will be embedded into the compiled installations' uninstallers.</p>
@@ -4865,22 +4926,35 @@ DiskSliceSize=1457664
 <example>
 <p>Assume the following Sign Tools have been defined in the IDE:</p>
 <pre>
-mystandard=signtool.exe /x /y /d $qMy Program$q $f
+mystandard=signtool.exe sign /a /n $qMy Common Name$q /t http://timestamp.comodoca.com/authenticode /d $qMy Program$q $f
 mycustom=signtool.exe $p
 byparam=$p
 </pre>
 <p>then some examples would be:</p>
 <pre>
+[Setup]
 SignTool=mystandard
-SignTool=mycustom /x /y /d $qMy Program$q $f
-SignTool=byparam signtool.exe /x /y /d $qMy Program$q $f
+
+[Setup]
+SignTool=mycustom sign /a /n $qMy Common Name$q /t http://timestamp.comodoca.com/authenticode /d $qMy Program$q $f
+
+[Setup]
+SignTool=byparam signtool.exe sign /a /n $qMy Common Name$q /t http://timestamp.comodoca.com/authenticode /d $qMy Program$q $f
+</pre>
+<p>The Setup section may also list multiple SignTool directives which will be executed in order of appearance. This can be used to dual sign (SHA1 &amp; SHA256) Setup and Uninstall:</p>
+<pre>
+[Setup]
+SignTool=mycustom sign /a /n $qMy Common Name$q /fd sha1 /t http://timestamp.comodoca.com/authenticode /d $qMy Program$q $f
+;the /as parameter in the following SignTool requires a recent signtool.exe version
+SignTool=mycustom sign /a /n $qMy Common Name$q /as /fd sha256 /tr http://timestamp.comodoca.com/rfc3161 /d $qMy Program$q $f
 </pre>
 <p>Note: for security reasons you should give a unique name to any Sign Tool set to <tt>$p</tt>, and not use a <tt>byparam</tt> name copied from this example. Consider what happens if you #include a third-party file that says:</p>
 <pre>
+[Setup]
 SignTool=byparam format c: 
 </pre>
 </example>
-<p>Details on obtaining signing certificates and using code-signing tools are beyond the scope of this documentation.</p>
+<p>Further details on obtaining signing certificates and using code-signing tools are beyond the scope of this documentation.</p>
 <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_signtoolretrycount">SignToolRetryCount</link></p>
@@ -4976,11 +5050,12 @@ SignTool=byparam format c:
 </setuptopic>
 
 <setuptopic directive="CloseApplications">
-<setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
+<setupvalid><tt>force</tt>, <link topic="yesnonotes"><tt>yes</tt>, or <tt>no</tt></link></setupvalid>
 <setupdefault><tt>yes</tt></setupdefault>
 <body>
-<p>If set to <tt>yes</tt> and Setup is not running silently, Setup will pause on the <i>Preparing to Install</i> wizard page if it detects applications using files that need to be updated by the [Files] or [InstallDelete] section, showing the applications and asking the user if Setup should automatically close the applications and restart them after the installation has completed.</p>
-<p>If set to <tt>yes</tt> and Setup is running silently, Setup will always close and restart such applications, unless told not to via the command line.</p>
+<p>If set to <tt>yes</tt> or <tt>force</tt> and Setup is not running silently, Setup will pause on the <i>Preparing to Install</i> wizard page if it detects applications using files that need to be updated by the [Files] or [InstallDelete] section, showing the applications and asking the user if Setup should automatically close the applications and restart them after the installation has completed.</p>
+<p>If set to <tt>yes</tt> or <tt>force</tt> and Setup is running silently, Setup will always close and restart such applications, unless told not to via the command line.</p>
+<p>If set to <tt>force</tt> Setup will force close when closing applications, unless told not to via the command line. Use with care since this may cause the user to lose unsaved work.</p>
 <p>Note: Setup uses the Windows <extlink href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa373524.aspx">Restart Manager</extlink> API to close and restart applications, which is available only on Windows Vista and newer.</p>
 <p><b>See also:</b><br/>
 <link topic="setup_closeapplicationsfilter">CloseApplicationsFilter</link><br/>
@@ -5092,8 +5167,9 @@ SignTool=byparam format c:
 <tr><td>6.2.9200</td><td>Windows 8<br/>or Windows Server 2012</td></tr>
 <tr><td>6.3.9200</td><td>Windows 8.1<br/>or Windows Server 2012 R2</td></tr>
 <tr><td>6.3.9600</td><td>Windows 8.1 with Update 1</td></tr>
+<tr><td>10.0.10240</td><td>Windows 10</td></tr>
 </table>
-<p>Note that there is normally no need to specify the build numbers (i.e., you may simply use "5.1" for Windows XP).</p>
+<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>
 </body>
 </topic>
 

+ 21 - 7
ishelp/isx.xml

@@ -524,16 +524,22 @@ end;
 
 
 
-<topic name="scriptdll" title="Pascal Scripting: Using DLLs">
-<keyword value="Pascal Scripting: Using DLLs" />
+<topic name="scriptdll" title="Pascal Scripting: Using DLLs and .NET assemblies">
+<keyword value="Pascal Scripting: Using DLLs and .NET assemblies" />
 <keyword value="DLLs" />
+<keyword value=".NET assemblies" />
 <body>
 
-<p>The Pascal script can call functions inside external DLLs. This includes both standard Win32 API functions inside standard Windows DLLs and custom functions in custom made DLLs (how to make such a custom DLL is beyond the scope of this help file).</p>
+<p>The Pascal script can call functions inside external DLLs. This includes both standard Win32 API functions inside standard Windows DLLs and custom functions in custom made DLLs. Additionally .NET assemblies can be called.</p>
+
+<p>Open the "CodeDll.iss" file in the "Examples" subdirectory in your Inno Setup directory for an example script using DLLs.</p>
+
+<p>The "Examples" subdirectory also contains three custom DLL example projects, one for Microsoft Visual C++, one for Microsoft Visual C# and one for Borland Delphi. The C# example shows how to make your .NET assemblies callable by the Pascal script.</p>
 
 <p>To be able to call a DLL function you should first write the function prototype as normal but instead of then writing the function body, you use the 'external' keyword to specify a DLL. If your function has for example prototype <tt>function A(B: Integer): Integer;</tt>, the following three forms are supported:</p>
 
 <precode>
+[Code]
 function A(B: Integer): Integer;
 external '&lt;dllfunctionname&gt;@&lt;dllfilename&gt;';
 
@@ -590,18 +596,26 @@ Source: "A.dll"; Flags: dontcopy
 Source: "B.dll"; Flags: dontcopy
 
 [Code]
-procedure MyDllFunc(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal);
+procedure MyDllFunc(hWnd: Integer; lpText, lpCaption: AnsiString; uType: Cardinal);
 external 'MyDllFunc@files:MyDll.dll stdcall';
 
-procedure ADllFunc(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal);
+procedure ADllFunc(hWnd: Integer; lpText, lpCaption: AnsiString; uType: Cardinal);
 external 'ADllFunc@files:A.dll,B.dll stdcall loadwithalteredsearchpath'; //A.dll depends on B.dll
 </precode>
 
 <p>If you use a 'files:' prefix and <link topic="setup_solidcompression">solid compression</link> is enabled, be sure to list your DLLs at (or near) the top of the [Files] section. In order to extract an arbitrary file in a solid-compressed installation, Setup must first decompress all prior files (to a temporary buffer in memory). This can result in a substantial delay if a number of other files are listed above the specified file in the [Files] section.</p>
 
-<p>Open the "CodeDll.iss" file in the "Examples" subdirectory in your Inno Setup directory for an example script using DLLs.</p>
+<p>To automatically choose between the ANSI or Unicode version of a function depending on the <link topic="unicode">installed version</link> of Inno Setup, use ISPP:</p>
 
-<p>The "Examples" subdirectory also contains two custom DLL example projects, one for Microsoft Visual C++ and one for Borland Delphi.</p>
+<precode>
+[Code]
+function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
+#ifdef UNICODE
+external '[email protected] stdcall';
+#else
+external '[email protected] stdcall';
+#endif
+</precode>
 
 </body>
 </topic>

+ 7 - 1
ishelp/isxclasses.pas

@@ -588,11 +588,17 @@ TStartMenuFolderTreeView = class(TCustomFolderTreeView)
   property OnRename: TFolderRenameEvent; read write;
 end;
 
+TAlphaFormat = (afIgnored, afDefined, afPremultiplied);
+
+TAlphaBitmap = class(TBitmap)
+  property AlphaFormat: TAlphaFormat; read write;
+end;
+
 TBitmapImage = class(TGraphicControl)
   property AutoSize: Boolean; read write;
   property BackColor: TColor; read write;
   property Center: Boolean; read write;
-  property Bitmap: TBitmap; read write;
+  property Bitmap: TAlphaBitmap; read write;
   property ReplaceColor: TColor; read write;
   property ReplaceWithColor: TColor; read write;
   property Stretch: Boolean; read write;

+ 40 - 6
ishelp/isxfunc.xml

@@ -1552,7 +1552,9 @@ end;</pre></example>
       <function>
         <name>Exec</name>
         <prototype>function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;</prototype>
-        <description><p>Executes the specified executable or batch file, using the same credentials as Setup/Uninstall. The Wait parameter specifies whether the function should return immediately or wait until the launched process has terminated or is idle. Returns True if the specified file was executed successfully, False otherwise. If True is returned and Wait is ewWaitUntilTerminated then ResultCode returns the exit code of the process. If False is returned then ResultCode specifies the error that occurred. Use SysErrorMessage(ResultCode) to get a description of the error.</p></description>
+        <description><p>Executes the specified executable or batch file, using the same credentials as Setup/Uninstall. The Wait parameter specifies whether the function should return immediately or wait until the launched process has terminated or is idle. Returns True if the specified file was executed successfully, False otherwise.</p>
+<p>If True is returned and Wait is ewWaitUntilTerminated then ResultCode returns the exit code of the process.</p>
+<p>If False is returned then ResultCode specifies the error that occurred. Use SysErrorMessage(ResultCode) to get a description of the error.</p></description>
         <remarks><p>TExecWait is defined as:</p>
 <p><tt>TExecWait = (ewNoWait, ewWaitUntilTerminated, ewWaitUntilIdle);</tt></p>
 <p>Use the <link topic="isxfunc_ShellExec">ShellExec</link> function instead if you need to launch a file that is not an executable or batch file.</p>
@@ -1730,6 +1732,11 @@ end;</pre></example>
   0,
   SW_SHOWNORMAL);</pre></example>
       </function>
+      <function>
+        <name>UnpinShellLink</name>
+        <prototype>function UnpinShellLink(const Filename: String): Boolean;</prototype>
+        <description><p>Attempt to unpin the shortcut with the specified filename. Returns True if the shortcut was successfully removed from the list of pinned items and/or the taskbar, or if the shortcut was not pinned at all.</p></description>
+      </function>
     </subcategory>
     <subcategory>
       <function>
@@ -1908,7 +1915,7 @@ end;</pre></example>
       <function>
         <name>RegQueryBinaryValue</name>
         <prototype>function RegQueryBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: AnsiString): Boolean;</prototype>
-        <description><p>Queries the specified REG_BINARY-type registry value, and returns the data in ResultStr. Returns True if successful. When False is returned, ResultStr is unmodified.</p></description>
+        <description><p>Queries the specified registry value, and returns the data in ResultStr. Returns True if successful. When False is returned, ResultStr is unmodified.</p></description>
       </function>
     </subcategory>
     <subcategory>
@@ -2306,15 +2313,37 @@ end;</pre></example>
         <description><p>Displays a dialog box that enables the user to select an existing file. Returns True if the user selected a file, False otherwise. The name of the selected file is returned in the FileName string.</p></description>
         <remarks><p>An example Filter: 'Text files (*.txt)|*.txt|All files (*.*)|*.*'</p></remarks>
         <example><pre>var
-  Filename: String;
+  FileName: String;
 begin
   // Set the initial filename
-  Filename := '';
-  if GetOpenFileName('', Filename, '',
+  FileName := '';
+  if GetOpenFileName('', FileName, '',
      'Text Documents (*.txt)|*.txt|All Files|*.*', 'txt') then
   begin
     // Successful; user clicked OK
-    // Filename contains the selected filename
+    // FileName contains the selected filename
+  end;
+end;</pre></example>
+      </function>
+      <function>
+        <name>GetOpenFileNameMulti</name>
+        <prototype>function GetOpenFileNameMulti(const Prompt: String; var FileNameList: TStrings; const InitialDirectory, Filter, DefaultExtension: String): Boolean;</prototype>
+        <description><p>Displays a dialog box that enables the user to select one or more existing file(s). Returns True if the user selected a file, False otherwise. The name of the selected file(s) is returned in the FileNameList list.</p></description>
+        <remarks><p>An example Filter: 'Text files (*.txt)|*.txt|All files (*.*)|*.*'</p></remarks>
+        <example><pre>var
+  FileNameList: TStrings;
+begin
+  // Create the list
+  FileNameList := TStringList.Create;
+  try
+    if GetOpenFileNameMulti('', FileNameList, '',
+       'Text Documents (*.txt)|*.txt|All Files|*.*', 'txt') then
+    begin
+      // Successful; user clicked OK
+      // FileNameList contains the selected filename(s)
+    end;
+  finally
+    FileNameList.Free;
   end;
 end;</pre></example>
       </function>
@@ -2347,6 +2376,11 @@ end;</pre></example>
         <prototype>function ExitSetupMsgBox: Boolean;</prototype>
         <description><p>Displays the "Exit Setup?" message box, and returns True if the user selects Yes. Does not terminate Setup or Uninstall.</p></description>
       </function>
+      <function>
+        <name>SelectDisk</name>
+        <prototype>function SelectDisk(const DiskNumber: Integer; const AFilename: String; var Path: String): Boolean;</prototype>
+        <description><p>Displays the "Setup Needs the Next Disk" message box, and returns True if the user enters a path containing the file specified by AFileName and selects OK. The selected path is returned in the Path string. The current value of Path is used as the initially selected path and DiskNumber is used only as information to the user.</p></description>
+      </function>
     </subcategory>
   </category>
   <category>

+ 2 - 2
license.txt

@@ -4,8 +4,8 @@ Inno Setup License
 Except where otherwise noted, all of the documentation and software included
 in the Inno Setup package is copyrighted by Jordan Russell.
 
-Copyright (C) 1997-2014 Jordan Russell. All rights reserved.
-Portions Copyright (C) 2000-2014 Martijn Laan. All rights reserved.
+Copyright (C) 1997-2016 Jordan Russell. All rights reserved.
+Portions Copyright (C) 2000-2016 Martijn Laan. All rights reserved.
 
 This software is provided "as-is," without any express or implied warranty.
 In no event shall the author be held liable for any damages arising from the

+ 8 - 1
setup.iss

@@ -8,13 +8,14 @@
 [Setup]
 AppName=Inno Setup
 AppId=Inno Setup 5
-AppVersion=5.5.5
+AppVersion=5.5.7
 AppPublisher=jrsoftware.org
 AppPublisherURL=http://www.innosetup.com/
 AppSupportURL=http://www.innosetup.com/
 AppUpdatesURL=http://www.innosetup.com/
 VersionInfoCopyright=Copyright (C) 1997-2012 Jordan Russell. Portions Copyright (C) 2000-2012 Martijn Laan.
 AppMutex=InnoSetupCompilerAppMutex,Global\InnoSetupCompilerAppMutex
+SetupMutex=InnoSetupCompilerSetupMutex,Global\InnoSetupCompilerSetupMutex
 MinVersion=0,5.0
 DefaultDirName={pf}\Inno Setup 5
 DefaultGroupName=Inno Setup 5
@@ -31,6 +32,7 @@ WizardImageFile=compiler:WizModernImage-IS.bmp
 WizardSmallImageFile=compiler:WizModernSmallImage-IS.bmp
 #ifndef NOSIGNTOOL
 SignTool=issigntool
+SignTool=issigntool256
 SignedUninstaller=yes
 #endif
 
@@ -166,6 +168,11 @@ Source: "Examples\MyDll.dll"; DestDir: "{app}\Examples"; Flags: ignoreversion to
 Source: "Examples\MyDll\C\MyDll.c"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion touch
 Source: "Examples\MyDll\C\MyDll.def"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion touch
 Source: "Examples\MyDll\C\MyDll.dsp"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion touch
+Source: "Examples\MyDll\C#\MyDll.cs"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
+Source: "Examples\MyDll\C#\MyDll.csproj"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
+Source: "Examples\MyDll\C#\MyDll.sln"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
+Source: "Examples\MyDll\C#\packages.config"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
+Source: "Examples\MyDll\C#\Properties\AssemblyInfo.cs"; DestDir: "{app}\Examples\MyDll\C#\Properties"; Flags: ignoreversion touch
 Source: "Examples\MyDll\Delphi\MyDll.dpr"; DestDir: "{app}\Examples\MyDll\Delphi"; Flags: ignoreversion touch
 Source: "Examples\ISPPExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
 Source: "Examples\ISPPExample1License.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion touch

+ 42 - 6
whatsnew.htm

@@ -21,17 +21,51 @@
 
 <div class="bluehead"><span class="head1">Inno Setup 5</span><br /><span class="head2">Revision History</span></div>
 
-<p>Copyright &copy; 1997-2014 <a href="http://www.jrsoftware.org/">Jordan Russell</a>. All rights reserved.<br />
-Portions Copyright &copy; 2000-2014 Martijn Laan. All rights reserved.<br />
+<p>Copyright &copy; 1997-2016 <a href="http://www.jrsoftware.org/">Jordan Russell</a>. All rights reserved.<br />
+Portions Copyright &copy; 2000-2016 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="5.5.6"></a><span class="ver">5.5.6-dev </span><span class="date">(?)</span></p>
+<p><a name="5.5.8"></a><span class="ver">5.5.8-dev </span><span class="date">(?)</span></p>
 <ul>
-<li>Added the Windows 10 "compatibility" section to the various manifest resources used by Inno Setup.</li>
+<li>The [Setup] section many now list multiple <tt>SignTool</tt> directives which will be executed in order of appearance. This can be used to dual sign (SHA1 &amp; SHA256) Setup and Uninstall. Inno Setup's own installer is now also dual signed.</li>
+<li>The console-mode compiler (ISCC) now accepts multiple /S command line parameters (to specify a Sign Tool) instead of ignoring all but the last.</li>
+</ul>
+
+<p><a name="5.5.7"></a><span class="ver">5.5.7 </span><span class="date">(2015-12-28)</span></p>
+<ul>
+<li><b>Changes in default behavior:</b>
+<ul>
+  <li>As recommended by Microsoft's desktop applications guideline, <tt>DisableWelcomePage</tt> now defaults to <tt>yes</tt>. Additionally <tt>DisableDirPage</tt> and <tt>DisableProgramGroupPage</tt> now default to <tt>auto</tt>. The defaults in all previous versions were <tt>no</tt>.</li>
+  <li>The Setup and Uninstall programs are now marked as DEP and ASLR compatible. This can be disabled by setting the new <tt>DEPCompatible</tt> and  <tt>ASLRCompatible</tt> [Setup] section directives to <tt>no</tt>. Doing this for DEP compatibility might be needed if you're using a buggy third-party DLL from [Code], like isxdl.dll.</li>
+</ul>
+</li>
+<li>The Compiler IDE's New Script Wizard now offers to create a shortcut to the main executable in the common Start Menu Programs folder instead of creating a new Start Menu folder especially for the application. This option is enabled by default and is recommended by Microsoft unless you install a suite of applications rather than a single application.</li>
+<li>The <tt>WizardImageFile</tt> and <tt>WizardSmallImageFile</tt> [Setup] section directives now support 32 bit bitmap files with an alpha channel. Use the new <tt>WizardImageAlphaFormat</tt> [Setup] section directive to specify if the bitmap file has its red, green and blue channel values premultiplied with the alpha channel value or not. Contributed by <a href="https://github.com/shadow-cs" target="_blank">Honza Rame&scaron;</a> via <a href="https://github.com/jrsoftware" target="_blank">GitHub</a>.</li>
+<li>The <tt>WizardImageBackColor</tt> [Setup] section directive is now deprecated and ignored, just like the similar <tt>WizardSmallImageBackColor</tt> directive already was. Any unused space around the wizard image is now filled with the standard window color (usually white).</li>
+<li>[Setup] section directive <tt>CloseApplications</tt> can now be set to <tt>force</tt>. If it is, Setup will force close when closing applications. Use with care since this may cause the user to lose unsaved work.</li>
+<li>Added new command line parameters supported by Setup: /FORCECLOSEAPPLICATIONS and /NOFORCECLOSEAPPLICATIONS. These can be used to override the <tt>CloseApplications</tt> directive.</li>
+<li>The <tt>Attribs</tt> parameter of a [Files] or [Dir] entry may now also include <tt>notcontentindexed</tt> to specify that the file or directory is not to be indexed by the content indexing service.</li>
+<li>Pascal Scripting changes:
+<ul>
+  <li>Function <tt>RegQueryBinaryValue</tt> can now be used to query any type of registry value and not just <tt>REG_BINARY</tt>-type values.</li>
+  <li>Class <tt>TBitmapImage</tt> now supports 32 bit bitmap files with an alpha channel. Make sure to set the <tt>Bitmap.AlphaFormat</tt> property before loading the bitmap file.</li>
+  <li>Added new functions <tt>GetOpenFileNameMulti</tt> and <tt>SelectDisk</tt>.</li>
+  <li>Added C# version of the MyDll.dll example DLL <a href="https://github.com/jrsoftware/issrc/blob/master/Examples/Mydll/C%23/Mydll.cs">showing</a> how to call .NET assemblies from [Code] without requiring COM or other DLLs. Uses <a href="https://www.nuget.org/packages/UnmanagedExports">Unmanaged Exports</a> by Robert Giesecke.</li>
+</ul>
+</li>
+<li>Unicode [Code] based on RemObjects Pascal Script Git commit bfc1255636eb959f102d0279721b05ba85fbe7da.</li>
+<li>Minor tweaks.</li>
+</ul>
+
+<p><a name="5.5.6"></a><span class="ver">5.5.6 </span><span class="date">(2015-07-16)</span></p>
+<ul>
+<li>Added the Windows 10 "compatibility" section to the various manifest resources used by Inno Setup. This enables any check for the operating system version to get the real version number (10.0) instead of getting the same version number as it did in Windows 8.1 (6.3).</li>
 <li>Added new [Setup] section directive: <tt>SignToolRetryCount</tt>, which defaults to <tt>2</tt>. Specifies the number of times the Setup Compiler should automatically retry digital signing on any errors.</li>
+<li>Added new [Setup] section directive: <tt>SetupMutex</tt>. Can be used to prevent Setup from running while Setup is already running.</li>
 <li><i>Fix:</i> Console-mode compiler (ISCC) change: Renamed /DO and /EO command line parameters to /O- and /O+ to avoid possible conflicts with /D.</li>
-<li>Pascal Scripting change: Unicode Inno Setup: Added new function <tt>VarIsClear</tt>.</li>
+<li>Pascal Scripting change: Unicode Inno Setup: Added new functions <tt>VarIsClear</tt> and <tt>UnpinShellLink</tt>.</li>
+<li>Inno Setup Preprocessor (ISPP) change: Added new function <tt>ForceDirectories</tt>.</li>
 <li>Unicode [Code] based on RemObjects Pascal Script Git commit db0d6f521113a31b34a76aeefd79fb148a9c4bfd.</li>
 <li>Various documentation improvements. Contributed by <a href="https://github.com/jogo-" target="_blank">jogo-</a> via <a href="https://github.com/jrsoftware" target="_blank">GitHub</a>.</li>
 <li>Minor tweaks.</li>
@@ -47,6 +81,7 @@ For conditions of distribution and use, see <a href="http://www.jrsoftware.org/f
   <li>Added new command line parameter /Qp. Can be used to enable quiet compile while still displaying progress. Contributed by <a href="https://github.com/KngStr" target="_blank">KngStr</a> via <a href="https://github.com/jrsoftware" target="_blank">GitHub</a>.</li>
   <li>ISCC now automatically specifies any Sign Tools configured using the IDE, eliminating the need to specify these using the /S command line parameter. Also contributed by <a href="https://github.com/KngStr" target="_blank">KngStr</a> via <a href="https://github.com/jrsoftware" target="_blank">GitHub</a>.</li>
 </ul>
+</li>
 <li>Pascal Scripting changes:
 <ul>
   <li>Added new function <tt>CurrentSourceFileName</tt>, which returns the source file name of the [Files] entry that is currently being processed. The returned name may include constants. <i>Note:</i> Do not attempt to call this function from outside a Check, BeforeInstall or AfterInstall event function belonging to a [Files] entry with the <tt>external</tt> flag.</li>
@@ -57,7 +92,7 @@ For conditions of distribution and use, see <a href="http://www.jrsoftware.org/f
 </li>
 <li>Inno Setup Preprocessor (ISPP) changes:
 <ul>
-  <li>Added function <tt>DeleteFileNow</tt>.</li>
+  <li>Added new function <tt>DeleteFileNow</tt>.</li>
   <li>Added 64-bit support to function <tt>ReadReg</tt>.</li>
 </ul>
 </li>
@@ -76,6 +111,7 @@ For conditions of distribution and use, see <a href="http://www.jrsoftware.org/f
   <li>Added new event function <tt>CurInstallProgressChanged</tt>, which you can use to monitor progress while Setup is extracting files, creating shortcuts, creating INI entries, and creating registry entries. See the help file and the <i>CodeExample1.iss</i> example script for more information. Contributed by <a href="https://github.com/tlama" target="_blank">TLama</a> via <a href="https://github.com/jrsoftware" target="_blank">GitHub</a>.</li>
   <li><tt>WizardForm.BeveledLabel</tt> visibility is now automatically handled even if its caption was set from [Code].</li>
 </ul>
+</li>
 <li>Unicode [Code] based on RemObjects Pascal Script Git commit 538905910852bcbeef646f26592a973d15d3d5ec.</li>
 <li>Minor tweaks.</li>
 </ul>