Python installer detects the 64 bit python installation

//
// PROJECT CHRONO - http://projectchrono.org
//
// Copyright (c) 2012 Alessandro Tasora
// Copyright (c) 2013 Project Chrono
// All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file at the top level of the distribution
// and at http://projectchrono.org/license-chrono.txt.
//

#include "ModifyPath.iss"

#define MyAppName "PyChronoEngine"
#define MyAppVersion "v1.8.0"
#define MyAppPublisher "Alessandro Tasora"
#define MyAppURL "http://www.chronoengine.info"
#define MyWin64PythonDir  "C:\Python33"
#define MyPythonVers "3.3"
#define MyChronoEngineSDK "C:\tasora\code\projectchrono\chrono"

[Setup]
ShowLanguageDialog=yes
UserInfoPage=no
AppName={#MyAppName}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
WizardImageFile=SetupModern20.bmp
WizardSmallImageFile=SetupModernSmall26.bmp
PrivilegesRequired=admin
;Compression=none
OutputDir=c:\tasora\lavori\data_chrono
OutputBaseFilename=PyChronoEngine_{#MyAppVersion}

[Files]
Source: {#MyChronoEngineSDK}\src\demos\data\*; Excludes: "*\.svn,\data\mpi"; DestDir: "{app}\data"; Flags: recursesubdirs createallsubdirs
Source: {#MyChronoEngineSDK}\src\demos\python\*; DestDir: "{app}\python"; Flags: recursesubdirs createallsubdirs

Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_core.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_postprocess.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_irrlicht.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_fem.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine_POSTPROCESS.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine_IRRLICHT.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine_FEM.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\Irrlicht.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_core.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_postprocess.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_irrlicht.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_fem.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;

[Icons]
Name: "{group}\Getting started"; Filename: "http://www.chronoengine.info"
Name: "{group}\Demos"; Filename: "{app}\python"
Name: "{group}\Uninstall"; Filename: "{uninstallexe}"

[Code]
var
  DataDirPage: TInputDirWizardPage;
  mFoundWin32Python: Integer;
  mPathWin32Python: String;
  mPathWin32PythonLib: String;
  mPathWin32PythonDLLs: String;
  mFoundWin64Python: Integer;
  mPathWin64Python: String;
  mPathWin64PythonLib: String;
  mPathWin64PythonDLLs: String;

function myFoundWin32Python: Boolean;
begin
  Result := mFoundWin32Python =1;
end;
function myGetPathWin32Python(Param: String): String;
begin
  Result := mPathWin32Python;
end;
function myGetPathWin32PythonLib(Param: String): String;
begin
  Result := mPathWin32PythonLib;
end;
function myGetPathWin32PythonDLLs(Param: String): String;
begin
  Result := mPathWin32PythonDLLs;
end;
function myFoundWin64Python: Boolean;
begin
  Result := mFoundWin64Python =1;
end;
function myGetPathWin64Python(Param: String): String;
begin
  Result := mPathWin64Python;
end;
function myGetPathWin64PythonLib(Param: String): String;
begin
  Result := mPathWin64PythonLib;
end;
function myGetPathWin64PythonDLLs(Param: String): String;
begin
  Result := mPathWin64PythonDLLs;
end;

procedure InitializeWizard;
var
  mTitlePythondir: String;
  mallDirPython: String;
  mCut: Integer;
  myvers: String;
begin

  // CHECK PYTHON INSTALLATION
  mFoundWin32Python := 0;
  mFoundWin64Python := 0;

  myvers := '{#MyPythonVers}';

  if (IsWin64) then
  begin
    // CASE OF 64 BIT PLATFORM

        // find 64 bit python:
    if RegQueryStringValue(HKLM64,
                    'SOFTWARE\Python\PythonCore\' +  myvers+ '\InstallPath',
                    '',
                    mallDirPython) then
    begin
          MsgBox('FOUND! 64bit !'#13#13 + mallDirPython, mbError, MB_OK);
          mPathWin64Python := mallDirPython;
          mFoundWin64Python := 1;
    end

        // find 32 bit python:
    if RegQueryStringValue(HKEY_LOCAL_MACHINE,
                    'SOFTWARE\Wow6432Node\Python\PythonCore\' +  myvers+ '\InstallPath',
                    '',
                    mallDirPython) then
    begin
          mPathWin32Python := mallDirPython;
          mFoundWin32Python := 1;
    end

  end
  else
  begin
    // CASE OF 32 BIT PLATFORM

    // find 32 bit python:
    if RegQueryStringValue(HKEY_LOCAL_MACHINE,
                    'SOFTWARE\Python\PythonCore\' +  myvers+ '\InstallPath',
                    '',
                    mallDirPython) then
    begin
          mPathWin32Python := mallDirPython;
          mFoundWin32Python := 1;
    end

  end

  mPathWin32PythonDLLs := AddBackslash(mPathWin32Python) + 'DLLs';
  mPathWin32PythonLib  := AddBackslash(mPathWin32Python) + 'Lib';
  mPathWin64PythonDLLs := AddBackslash(mPathWin64Python) + 'DLLs';
  mPathWin64PythonLib  := AddBackslash(mPathWin64Python) + 'Lib';

  { Create the pages }

  //
  // Select directory dialog for plugin
  //
  if mFoundWin64Python = 1 then begin mTitlePythondir := 'A copy of 64bit Python has been automatically detected, installed in this directory.'#13+
                                   'Do NOT modify the installation path unless you know what you are doing:'#13+
                                   'the Chrono::Engine module works only if installed in the proper Python directory!';
                    end else begin mTitlePythondir := 'The installation directory of Python has NOT been automatically found!. '#13+
                                   'Nevertheless, you can still go on with the installation, something went'#13+
                                   'wrong with your registry keys. Note: set this directory so that it is the'#13+
                                   'directory where python.exe file is installed, for Win64 bit'#13+
                                   'for example  C:\Python33 '; end

  DataDirPage := CreateInputDirPage(wpWelcome,
    'Check Python directory', 'Where is your Python (version ' +  myvers + ' or following, 64bit) directory?',
    mTitlePythondir,
    False, '');
  DataDirPage.Add('');
  DataDirPage.Values[0] := Format('%s\', [mPathWin64Python] );

end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  I: Integer;
  mfilesize: Integer;
begin

  //
  // After the user has entered data...
  //
  if CurPageID = wpWelcome then begin

   //   if ((mFoundWin32Python = 0) and (mFoundWin64Python = 0) ) then begin
   //     mPathWin64Python := '{#MyWin64PythonDir}';
   //     MsgBox('WARNING!'#13#13+
   //            'The installer was not able to detect Python (version' +  '{#MyPythonVers}' + ') '+
   //            'on your system.'#13#13+
   //            'Maybe your Python (version' +  '{#MyPythonVers}' + ') is not yet installed, or not properly installed?'#13+
   //            '(If so,please install/reinstall Python 64 bit before installing this plug-in).', mbError, MB_OK);
   //  end;
   //
      Result := True;

  //
  // After the user has choosen python directory..
  //
  end else if CurPageID = DataDirPage.ID then begin

      mPathWin64Python     := DataDirPage.Values[0];
      mPathWin64PythonDLLs := AddBackslash(mPathWin64Python) + 'DLLs';
      mPathWin64PythonLib  := AddBackslash(mPathWin64Python) + 'Lib';

      if FileOrDirExists(mPathWin64Python) and FileOrDirExists(mPathWin64PythonDLLs) and FileOrDirExists(mPathWin64PythonLib) then begin
        Result := True;
        mFoundWin64Python :=1;
      end else begin
        MsgBox('Error. The directory '+ mPathWin64Python + ' does not exist', mbError, MB_OK);
        Result := False;
      end

  end else
      Result := True;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := False;

  { Skip pages that shouldn't be shown }

  if (PageID = wpSelectDir) then
    Result := True

  if ((PageId = DataDirPage.ID) and ((mFoundWin64Python =1) or (mFoundWin32Python =1)))  then
    Result := True
end;

function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo,
  MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
var
  S: String;
begin
  { Fill the 'Ready Memo' with the normal settings and the custom settings }
  S := '';

  if (mFoundWin32Python = 1) then begin
    S := S + 'A Win32 Python has been detected in:' + NewLine;
    S := S + Space + mPathWin32Python + NewLine;
    S := S + 'but the Chrono::Engine 32 bit module is NOT INCLUDED in this installer AND CANNOT BE INSTALLED!' + NewLine;
    //S := S + Space + mPathWin32PythonDLLs + NewLine;
    //S := S + Space + mPathWin32PythonLib + NewLine;
  end

  if ((mFoundWin64Python = 1) and (mFoundWin32Python = 0)) then begin
    S := S + 'A Win64 Python has been detected in:' + NewLine;
    S := S + Space + mPathWin64Python + NewLine;
    S := S + 'so the Chrono::Engine 64 bit module will be installed in:' + NewLine;
    //S := S + 'so the Chrono::Engine 64 bit module will be installed in:' + NewLine;
    S := S + Space + mPathWin64PythonDLLs + NewLine;
    S := S + Space + mPathWin64PythonLib + NewLine;
  end

  if ((mFoundWin64Python = 0) and  (mFoundWin32Python = 0)) then begin
    S := S + 'Neither Win32 nor Win64 Python (version' +  '{#MyPythonVers}' + ') has been detected.' + NewLine;
    S := S + 'Chrono::Engine module CANNOT BE INSTALLED!' + NewLine;
  end

  Result := S;
end;

//function CheckSerial(Serial: String): Boolean;
//begin
//   Result:=True;
//end;

//
// PROJECT CHRONO - http://projectchrono.org
//
// Copyright (c) 2012 Alessandro Tasora
// Copyright (c) 2013 Project Chrono
// All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file at the top level of the distribution
// and at http://projectchrono.org/license-chrono.txt.
//

#include "ModifyPath.iss"

#define MyAppName "PyChronoEngine"
#define MyAppVersion "v1.8.0"
#define MyAppPublisher "Alessandro Tasora"
#define MyAppURL "http://www.chronoengine.info"
#define MyWin64PythonDir  "C:\Python33"
#define MyPythonVers "3.3"
#define MyChronoEngineSDK "C:\tasora\code\projectchrono\chrono"

[Setup]
ShowLanguageDialog=yes
UserInfoPage=no
AppName={#MyAppName}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
WizardImageFile=SetupModern20.bmp
WizardSmallImageFile=SetupModernSmall26.bmp
PrivilegesRequired=admin
;Compression=none
OutputDir=c:\tasora\lavori\data_chrono
OutputBaseFilename=PyChronoEngine_{#MyAppVersion}

[Files]
Source: {#MyChronoEngineSDK}\src\demos\data\*; Excludes: "*\.svn,\data\mpi"; DestDir: "{app}\data"; Flags: recursesubdirs createallsubdirs
Source: {#MyChronoEngineSDK}\src\demos\python\*; DestDir: "{app}\python"; Flags: recursesubdirs createallsubdirs

Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_core.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_postprocess.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_irrlicht.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\_ChronoEngine_PYTHON_fem.pyd; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine_POSTPROCESS.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine_IRRLICHT.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\ChronoEngine_FEM.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\DLLs\Irrlicht.dll; DestDir: {code:myGetPathWin64PythonDLLs};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_core.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_postprocess.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_irrlicht.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;
Source: {#MyWin64PythonDir}\lib\ChronoEngine_PYTHON_fem.py; DestDir: {code:myGetPathWin64PythonLib};  Flags: ignoreversion;  Check: myFoundWin64Python;

[Icons]
Name: "{group}\Getting started"; Filename: "http://www.chronoengine.info"
Name: "{group}\Demos"; Filename: "{app}\python"
Name: "{group}\Uninstall"; Filename: "{uninstallexe}"

[Code]
var
  DataDirPage: TInputDirWizardPage;
  mFoundWin32Python: Integer;
  mPathWin32Python: String;
  mPathWin32PythonLib: String;
  mPathWin32PythonDLLs: String;
  mFoundWin64Python: Integer;
  mPathWin64Python: String;
  mPathWin64PythonLib: String;
  mPathWin64PythonDLLs: String;

function myFoundWin32Python: Boolean;
begin
  Result := mFoundWin32Python =1;
end;
function myGetPathWin32Python(Param: String): String;
begin
  Result := mPathWin32Python;
end;
function myGetPathWin32PythonLib(Param: String): String;
begin
  Result := mPathWin32PythonLib;
end;
function myGetPathWin32PythonDLLs(Param: String): String;
begin
  Result := mPathWin32PythonDLLs;
end;
function myFoundWin64Python: Boolean;
begin
  Result := mFoundWin64Python =1;
end;
function myGetPathWin64Python(Param: String): String;
begin
  Result := mPathWin64Python;
end;
function myGetPathWin64PythonLib(Param: String): String;
begin
  Result := mPathWin64PythonLib;
end;
function myGetPathWin64PythonDLLs(Param: String): String;
begin
  Result := mPathWin64PythonDLLs;
end;

procedure InitializeWizard;
var
  mTitlePythondir: String;
  mallDirPython: String;
  mCut: Integer;
  myvers: String;
begin

  // CHECK PYTHON INSTALLATION
  mFoundWin32Python := 0;
  mFoundWin64Python := 0;

  myvers := '{#MyPythonVers}';

  if (IsWin64) then
  begin
    // CASE OF 64 BIT PLATFORM

        // find 64 bit python:
    if RegQueryStringValue(HKEY_LOCAL_MACHINE,
                    'SOFTWARE\Python\PythonCore\' +  myvers+ '\InstallPath',
                    '',
                    mallDirPython) then
    begin
          MsgBox('FOUND! 64bit !'#13#13 + mallDirPython, mbError, MB_OK);
          mPathWin64Python := mallDirPython;
          mFoundWin64Python := 1;
    end

        // find 32 bit python:
    if RegQueryStringValue(HKEY_LOCAL_MACHINE,
                    'SOFTWARE\Wow6432Node\Python\PythonCore\' +  myvers+ '\InstallPath',
                    '',
                    mallDirPython) then
    begin
          mPathWin32Python := mallDirPython;
          mFoundWin32Python := 1;
    end

  end
  else
  begin
    // CASE OF 32 BIT PLATFORM

    // find 32 bit python:
    if RegQueryStringValue(HKEY_LOCAL_MACHINE,
                    'SOFTWARE\Python\PythonCore\' +  myvers+ '\InstallPath',
                    '',
                    mallDirPython) then
    begin
          mPathWin32Python := mallDirPython;
          mFoundWin32Python := 1;
    end

  end

  mPathWin32PythonDLLs := AddBackslash(mPathWin32Python) + 'DLLs';
  mPathWin32PythonLib  := AddBackslash(mPathWin32Python) + 'Lib';
  mPathWin64PythonDLLs := AddBackslash(mPathWin64Python) + 'DLLs';
  mPathWin64PythonLib  := AddBackslash(mPathWin64Python) + 'Lib';

  { Create the pages }

  //
  // Select directory dialog for plugin
  //
  if mFoundWin64Python = 1 then begin mTitlePythondir := 'A copy of 64bit Python has been automatically detected, installed in this directory.'#13+
                                   'Do NOT modify the installation path unless you know what you are doing:'#13+
                                   'the Chrono::Engine module works only if installed in the proper Python directory!';
                    end else begin mTitlePythondir := 'The installation directory of Python has NOT been automatically found!. '#13+
                                   'Nevertheless, you can still go on with the installation, something went'#13+
                                   'wrong with your registry keys. Note: set this directory so that it is the'#13+
                                   'directory where python.exe file is installed, for Win64 bit'#13+
                                   'for example  C:\Python33 '; end

  DataDirPage := CreateInputDirPage(wpWelcome,
    'Check Python directory', 'Where is your Python (version ' +  myvers + ' or following, 64bit) directory?',
    mTitlePythondir,
    False, '');
  DataDirPage.Add('');
  DataDirPage.Values[0] := Format('%s\', [mPathWin64Python] );

end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  I: Integer;
  mfilesize: Integer;
begin

  //
  // After the user has entered data...
  //
  if CurPageID = wpWelcome then begin

   //   if ((mFoundWin32Python = 0) and (mFoundWin64Python = 0) ) then begin
   //     mPathWin64Python := '{#MyWin64PythonDir}';
   //     MsgBox('WARNING!'#13#13+
   //            'The installer was not able to detect Python (version' +  '{#MyPythonVers}' + ') '+
   //            'on your system.'#13#13+
   //            'Maybe your Python (version' +  '{#MyPythonVers}' + ') is not yet installed, or not properly installed?'#13+
   //            '(If so,please install/reinstall Python 64 bit before installing this plug-in).', mbError, MB_OK);
   //  end;
   //
      Result := True;

  //
  // After the user has choosen python directory..
  //
  end else if CurPageID = DataDirPage.ID then begin

      mPathWin64Python     := DataDirPage.Values[0];
      mPathWin64PythonDLLs := AddBackslash(mPathWin64Python) + 'DLLs';
      mPathWin64PythonLib  := AddBackslash(mPathWin64Python) + 'Lib';

      if FileOrDirExists(mPathWin64Python) and FileOrDirExists(mPathWin64PythonDLLs) and FileOrDirExists(mPathWin64PythonLib) then begin
        Result := True;
        mFoundWin64Python :=1;
      end else begin
        MsgBox('Error. The directory '+ mPathWin64Python + ' does not exist', mbError, MB_OK);
        Result := False;
      end

  end else
      Result := True;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := False;

  { Skip pages that shouldn't be shown }

  if (PageID = wpSelectDir) then
    Result := True

  if ((PageId = DataDirPage.ID) and ((mFoundWin64Python =1) or (mFoundWin32Python =1)))  then
    Result := True
end;

function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo,
  MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
var
  S: String;
begin
  { Fill the 'Ready Memo' with the normal settings and the custom settings }
  S := '';

  if (mFoundWin32Python = 1) then begin
    S := S + 'A Win32 Python has been detected in:' + NewLine;
    S := S + Space + mPathWin32Python + NewLine;
    S := S + 'but the Chrono::Engine 32 bit module is NOT INCLUDED in this installer AND CANNOT BE INSTALLED!' + NewLine;
    //S := S + Space + mPathWin32PythonDLLs + NewLine;
    //S := S + Space + mPathWin32PythonLib + NewLine;
  end

  if ((mFoundWin64Python = 1) and (mFoundWin32Python = 0)) then begin
    S := S + 'A Win64 Python has been detected in:' + NewLine;
    S := S + Space + mPathWin64Python + NewLine;
    S := S + 'so the Chrono::Engine 64 bit module will be installed in:' + NewLine;
    //S := S + 'so the Chrono::Engine 64 bit module will be installed in:' + NewLine;
    S := S + Space + mPathWin64PythonDLLs + NewLine;
    S := S + Space + mPathWin64PythonLib + NewLine;
  end

  if ((mFoundWin64Python = 0) and  (mFoundWin32Python = 0)) then begin
    S := S + 'Neither Win32 nor Win64 Python (version' +  '{#MyPythonVers}' + ') has been detected.' + NewLine;
    S := S + 'Chrono::Engine module CANNOT BE INSTALLED!' + NewLine;
  end

  Result := S;
end;

//function CheckSerial(Serial: String): Boolean;
//begin
//   Result:=True;
//end;


run setup as administrator for starting service automatically

; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#include <idp.iss>

#define MyAppName "NFCRing"
#define MyAppVersion "1.0.0.1"
#define MyAppPublisher "Sesame Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "NFCRing.UI.View.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
PrivilegesRequired=admin

AppId={{F7D4EF32-2D80-441A-A499-3E6000BFCEBA}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}

DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes

OutputDir=C:\Dev\github\Sesame\Setup\Result
OutputBaseFilename=Setup

Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

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

[Files]
; exe file
Source: "..\..\UI\NFCRing.UI.View\bin\Release\NFCRing.UI.View.exe"; DestDir: "{app}"; Flags: ignoreversion
; Application files
Source: "..\..\UI\NFCRing.UI.View\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion
; Service files
Source: "..\..\Service\NFCRingServiceHost\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\Release\WinAPIWrapper.dll"; DestDir: "{app}"; Flags: ignoreversion

; NOTE: Don't use "Flags: ignoreversion" on any shared system files
; Source: "E:\install\dotNetFx45_Full_setup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall; Check: not IsRequiredDotNetDetected

[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Code]
#include "dotnet45.pas"

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
; Filename: {tmp}\dotNetFx45_Full_setup.exe; Parameters: "/q:a /c:""install /l /q"""; Check: not IsRequiredDotNetDetected; StatusMsg: Microsoft Framework 4.5 is installed. Please wait...
Filename: "{app}\NFCRingServiceHost.exe"; Flags: runascurrentuser; Parameters: "--install"

[UninstallRun]
Filename: "{app}\NFCRingServiceHost.exe"; Parameters: "--uninstall"

; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#include <idp.iss>

#define MyAppName "NFCRing_test"
#define MyAppVersion "1.0.0.1"
#define MyAppPublisher "Sesame Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "NFCRing.UI.View.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)

AppId={{BCB6CF6D-434A-4F06-81FB-495090F9DFBE}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}

DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes

OutputDir=C:\Dev\github\Sesame\Setup\Result
OutputBaseFilename=Setup

Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

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

[Files]
; exe file
Source: "C:\Dev\github\Sesame\UI\NFCRing.UI.View\bin\Release\NFCRing.UI.View.exe"; DestDir: "{app}"; Flags: ignoreversion
; Application files
Source: "c:\Dev\github\Sesame\UI\NFCRing.UI.View\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion
; Service files
Source: "C:\Dev\github\Sesame\Service\NFCRingServiceHost\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion

; NOTE: Don't use "Flags: ignoreversion" on any shared system files
; Source: "E:\install\dotNetFx45_Full_setup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall; Check: not IsRequiredDotNetDetected

[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Code]
#include "dotnet45.pas"

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
; Filename: {tmp}\dotNetFx45_Full_setup.exe; Parameters: "/q:a /c:""install /l /q"""; Check: not IsRequiredDotNetDetected; StatusMsg: Microsoft Framework 4.5 is installed. Please wait...
Filename: "{app}\NFCRingServiceHost.exe"; Parameters: "--install"

[UninstallRun]
Filename: "{app}\NFCRingServiceHost.exe"; Parameters: "--uninstall"


(bluefox) do not hide dos window by install

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "ioBroker automation platfrom on NodeJS"
#define MyAppShortName "ioBroker"
#define MyAppLCShortName "iobroker"
#define MyAppVersion "@@version"
#define MyAppPublisher "ioBroker.org"
#define MyAppURL "http://ioBroker.org/"
#define MyAppIcon "ioBroker.ico"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{97DA02F5-2E8C-4B96-BB42-61ED2BBF34DF}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\ioBroker
;DisableDirPage=yes
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputDir=..\..\delivery
OutputBaseFilename={#MyAppShortName}Installer.{#MyAppVersion}
SetupIconFile={#MyAppIcon}
Compression=lzma
SolidCompression=yes
UsePreviousAppDir=yes
ArchitecturesInstallIn64BitMode=x64
UninstallDisplayIcon={app}\{#MyAppIcon}
CloseApplications=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german";  MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: "nodejs-v0.10.33\node.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
Source: "nodejs-v0.10.33\nodex64.exe"; DestDir: "{app}"; DestName: "node.exe"; Flags: ignoreversion; Check: Is64BitInstallMode
Source: "redis-v2.4.6\redis-2.4.6-setup-32-bit.exe"; DestDir: "{app}"; DestName: "redisSetup.exe"; Flags: ignoreversion deleteafterinstall; Check: not Is64BitInstallMode
Source: "redis-v2.4.6\redis-2.4.6-setup-64-bit.exe"; DestDir: "{app}"; DestName: "redisSetup.exe"; Flags: ignoreversion deleteafterinstall; Check: Is64BitInstallMode
;Source: "couchDB\couchDBsetup.exe"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall;
Source: "install.js"; DestDir: "{app}"; Flags: ignoreversion
Source: "uninstall.js"; DestDir: "{app}"; Flags: ignoreversion
;Source: "npm.cmd"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#MyAppIcon}"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\.windows-ready\data\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;Source: "node_modules\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName} Settings"; Filename: "http://localhost:8080"; IconFilename: "{app}\{#MyAppIcon}"
Name: "{group}\{#MyAppName} Uninstall"; Filename: "{uninstallexe}"
Name: "{group}\Start {#MyAppName} Service"; Filename: "{app}\service_ioBroker.bat"; Parameters: "start"
Name: "{group}\Stop {#MyAppName} Service"; Filename: "{app}\service_ioBroker.bat"; Parameters: "stop"
Name: "{group}\Restart {#MyAppName} Service"; Filename: "{app}\service_ioBroker.bat"; Parameters: "restart"

[Code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
  ResultCode: integer;
begin
  Result := '';
  if FileExists(ExpandConstant('{app}\service_ioBroker.bat')) then begin
     Exec(ExpandConstant('{app}\service_ioBroker.bat'), 'stop', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
end;

function FileReplaceString(const FileName, SearchString, ReplaceString: string):boolean;
var
  MyFile : TStrings;
  MyText : string;
begin
  MyFile := TStringList.Create;

  try
    result := true;

    try
      MyFile.LoadFromFile(FileName);
      MyText := MyFile.Text;

      if StringChangeEx(MyText, SearchString, ReplaceString, True) > 0 then //Only save if text has been changed.
      begin;
        MyFile.Text := MyText;
        MyFile.SaveToFile(FileName);
      end;
    except
      result := false;
    end;
  finally
    MyFile.Free;
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
  fileName : string;
  lang : string;
begin
  if  CurStep=ssPostInstall then
    begin
      lang := ActiveLanguage();
      if lang = 'russian' then begin
        lang := 'ru';
      end
      else begin
          if lang = 'german' then begin
            lang := 'de';
          end
          else begin
            lang := '';
          end;
      end;
      if lang <> '' then begin
          fileName := ExpandConstant('{app}\settings-dist.json');
          //FileReplaceString(fileName, '"language": "en"', '"language": "' + lang + '"');
      end;
    end;
end;

function RedisNeedsInstall():boolean;
var
  ResultCode: integer;
begin
  if not DirExists(ExpandConstant('{userappdata}\npm')) then begin
     Exec(ExpandConstant('mkdir'), ExpandConstant('{userappdata}\npm'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
  if not DirExists(ExpandConstant('{userappdata}\npm-cache')) then begin
     Exec(ExpandConstant('mkdir'), ExpandConstant('{userappdata}\npm-cache'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;

   result := not FileExists(ExpandConstant('{pf}\Redis\redis-service.exe'));
end;
function CouchNeedsInstall():boolean;
begin
   result := not FileExists(ExpandConstant('{pf32}\Apache Software Foundation\CouchDB\Install.exe'));
end;

[Run]
; postinstall launch
Filename: "{app}\redisSetup.exe"; Check: RedisNeedsInstall
;Filename: "{app}\couchDBsetup.exe"; Parameters: "/SILENT"; Check: CouchNeedsInstall
Filename: "{sys}\net.exe"; Parameters: "start redis"
Filename: "{app}\install.bat"
; Flags: runhidden;
Filename: "{app}\node.exe"; Parameters: "install.js"; Flags: runhidden;
Filename: "{app}\service_ioBroker.bat"; Parameters: "start"; Flags: runhidden;
; Add Firewall Rules
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall add rule name=""Node In"" program=""{app}\node.exe"" dir=in action=allow enable=yes"; Flags: runhidden;
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall add rule name=""Node Out"" program=""{app}\node.exe"" dir=out action=allow enable=yes"; Flags: runhidden;
Filename: http://localhost:8081/; Description: "Control page"; Flags: postinstall shellexec

[UninstallRun]
; Removes System Service
Filename: "{app}\node.exe"; Parameters: "uninstall.js"; Flags: runhidden;
Filename: "{sys}\net"; Parameters: "stop redis"; Flags: runhidden;
Filename: "{pf}\Redis\unins000.exe"
;Filename: "{pf32}\Apache Software Foundation\CouchDB\unins000.exe"

; Remove Firewall Rules
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall delete rule name=""Node In"" program=""{app}\node.exe"""; Flags: runhidden;
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall delete rule name=""Node Out"" program=""{app}\node.exe"""; Flags: runhidden;

; Remove all leftovers
Filename: "{sys}\del"; Parameters: """{app}\daemon\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\daemon""";
Filename: "{sys}\del"; Parameters: """{app}\node_modules\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\node_modules""";
Filename: "{sys}\del"; Parameters: """{app}\conf\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\conf""";
Filename: "{sys}\del"; Parameters: """{app}\log\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\log""";
Filename: "{sys}\del"; Parameters: """{app}\adapter\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\adapter""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}""";

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "ioBroker automation platfrom on NodeJS"
#define MyAppShortName "ioBroker"
#define MyAppLCShortName "iobroker"
#define MyAppVersion "@@version"
#define MyAppPublisher "ioBroker.org"
#define MyAppURL "http://ioBroker.org/"
#define MyAppIcon "ioBroker.ico"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{97DA02F5-2E8C-4B96-BB42-61ED2BBF34DF}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\ioBroker
;DisableDirPage=yes
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputDir=..\..\delivery
OutputBaseFilename={#MyAppShortName}Installer.{#MyAppVersion}
SetupIconFile={#MyAppIcon}
Compression=lzma
SolidCompression=yes
UsePreviousAppDir=yes
ArchitecturesInstallIn64BitMode=x64
UninstallDisplayIcon={app}\{#MyAppIcon}
CloseApplications=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german";  MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: "nodejs-v0.10.33\node.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
Source: "nodejs-v0.10.33\nodex64.exe"; DestDir: "{app}"; DestName: "node.exe"; Flags: ignoreversion; Check: Is64BitInstallMode
Source: "redis-v2.4.6\redis-2.4.6-setup-32-bit.exe"; DestDir: "{app}"; DestName: "redisSetup.exe"; Flags: ignoreversion deleteafterinstall; Check: not Is64BitInstallMode
Source: "redis-v2.4.6\redis-2.4.6-setup-64-bit.exe"; DestDir: "{app}"; DestName: "redisSetup.exe"; Flags: ignoreversion deleteafterinstall; Check: Is64BitInstallMode
;Source: "couchDB\couchDBsetup.exe"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall;
Source: "install.js"; DestDir: "{app}"; Flags: ignoreversion
Source: "uninstall.js"; DestDir: "{app}"; Flags: ignoreversion
;Source: "npm.cmd"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#MyAppIcon}"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\.windows-ready\data\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;Source: "node_modules\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName} Settings"; Filename: "http://localhost:8080"; IconFilename: "{app}\{#MyAppIcon}"
Name: "{group}\{#MyAppName} Uninstall"; Filename: "{uninstallexe}"
Name: "{group}\Start {#MyAppName} Service"; Filename: "{app}\service_ioBroker.bat"; Parameters: "start"
Name: "{group}\Stop {#MyAppName} Service"; Filename: "{app}\service_ioBroker.bat"; Parameters: "stop"
Name: "{group}\Restart {#MyAppName} Service"; Filename: "{app}\service_ioBroker.bat"; Parameters: "restart"

[Code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
  ResultCode: integer;
begin
  Result := '';
  if FileExists(ExpandConstant('{app}\service_ioBroker.bat')) then begin
     Exec(ExpandConstant('{app}\service_ioBroker.bat'), 'stop', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
end;

function FileReplaceString(const FileName, SearchString, ReplaceString: string):boolean;
var
  MyFile : TStrings;
  MyText : string;
begin
  MyFile := TStringList.Create;

  try
    result := true;

    try
      MyFile.LoadFromFile(FileName);
      MyText := MyFile.Text;

      if StringChangeEx(MyText, SearchString, ReplaceString, True) > 0 then //Only save if text has been changed.
      begin;
        MyFile.Text := MyText;
        MyFile.SaveToFile(FileName);
      end;
    except
      result := false;
    end;
  finally
    MyFile.Free;
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
  fileName : string;
  lang : string;
begin
  if  CurStep=ssPostInstall then
    begin
      lang := ActiveLanguage();
      if lang = 'russian' then begin
        lang := 'ru';
      end
      else begin
          if lang = 'german' then begin
            lang := 'de';
          end
          else begin
            lang := '';
          end;
      end;
      if lang <> '' then begin
          fileName := ExpandConstant('{app}\settings-dist.json');
          //FileReplaceString(fileName, '"language": "en"', '"language": "' + lang + '"');
      end;
    end;
end;

function RedisNeedsInstall():boolean;
var
  ResultCode: integer;
begin
  if not DirExists(ExpandConstant('{userappdata}\npm')) then begin
     Exec(ExpandConstant('mkdir'), ExpandConstant('{userappdata}\npm'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
  if not DirExists(ExpandConstant('{userappdata}\npm-cache')) then begin
     Exec(ExpandConstant('mkdir'), ExpandConstant('{userappdata}\npm-cache'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;

   result := not FileExists(ExpandConstant('{pf}\Redis\redis-service.exe'));
end;
function CouchNeedsInstall():boolean;
begin
   result := not FileExists(ExpandConstant('{pf32}\Apache Software Foundation\CouchDB\Install.exe'));
end;

[Run]
; postinstall launch
Filename: "{app}\redisSetup.exe"; Check: RedisNeedsInstall
;Filename: "{app}\couchDBsetup.exe"; Parameters: "/SILENT"; Check: CouchNeedsInstall
Filename: "{sys}\net.exe"; Parameters: "start redis"
Filename: "{app}\install.bat"; Flags: runhidden;
Filename: "{app}\node.exe"; Parameters: "install.js"; Flags: runhidden;
Filename: "{app}\service_ioBroker.bat"; Parameters: "start"; Flags: runhidden;
; Add Firewall Rules
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall add rule name=""Node In"" program=""{app}\node.exe"" dir=in action=allow enable=yes"; Flags: runhidden;
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall add rule name=""Node Out"" program=""{app}\node.exe"" dir=out action=allow enable=yes"; Flags: runhidden;
Filename: http://localhost:8081/; Description: "Control page"; Flags: postinstall shellexec

[UninstallRun]
; Removes System Service
Filename: "{app}\node.exe"; Parameters: "uninstall.js"; Flags: runhidden;
Filename: "{sys}\net"; Parameters: "stop redis"; Flags: runhidden;
Filename: "{pf}\Redis\unins000.exe"
;Filename: "{pf32}\Apache Software Foundation\CouchDB\unins000.exe"

; Remove Firewall Rules
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall delete rule name=""Node In"" program=""{app}\node.exe"""; Flags: runhidden;
Filename: "{sys}\netsh.exe"; Parameters: "advfirewall firewall delete rule name=""Node Out"" program=""{app}\node.exe"""; Flags: runhidden;

; Remove all leftovers
Filename: "{sys}\del"; Parameters: """{app}\daemon\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\daemon""";
Filename: "{sys}\del"; Parameters: """{app}\node_modules\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\node_modules""";
Filename: "{sys}\del"; Parameters: """{app}\conf\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\conf""";
Filename: "{sys}\del"; Parameters: """{app}\log\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\log""";
Filename: "{sys}\del"; Parameters: """{app}\adapter\*""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}\adapter""";
Filename: "{sys}\rmdir"; Parameters: "-r ""{app}""";


Update GFP-Install.iss

Update GFP-Install.iss

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{2318E9DF-8E1D-4E04-84D6-85098CFF854E}}
AppName=GreenForce-Player
AppVerName=GreenForce-Player 2.00
VersionInfoVersion=2.00
AppPublisher=RRSoftware
VersionInfoCopyright=(c) 2009-2017 RocketRider
AppPublisherURL=http://gfp.rrsoftware.de
AppSupportURL=http://gfp.rrsoftware.de
AppUpdatesURL=http://gfp.rrsoftware.de
DefaultDirName={pf}\GreenForce-Player
DefaultGroupName=GreenForce-Player
AllowNoIcons=yes
InfoBeforeFile=..\ReadmeEN.txt
;OutputDir=C:\Users\Admin\Desktop\Projects\PureBasic\GFP-Install
OutputBaseFilename=GFP-Setup-V2.00
SetupIconFile=Icon.ico
WizardSmallImageFile=Box.bmp
WizardImageFile=Logo_Black.bmp
Compression=lzma2/ultra64
SolidCompression=yes
DisableWelcomePage=no

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"

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

[Files]
Source: "..\GreenForce-Player.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\GFP-SDK\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "..\Help\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\GreenForce-Player"; Filename: "{app}\GreenForce-Player.exe"
Name: "{group}\GFPCrypt-GUI"; Filename: "{app}\GFP-SDK\GFPCrypt-GUI\GFPCrypt-GUI.exe"
Name: "{group}\Documentation"; Filename: "{app}\Help\GFP-Documentation.html"
Name: "{group}\FAQ"; Filename: "{app}\Help\FAQ.pdf"
Name: "{group}\{cm:ProgramOnTheWeb,GreenForce-Player}"; Filename: "http://gfp.rrsoftware.de"
Name: "{group}\{cm:UninstallProgram,GreenForce-Player}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\GreenForce-Player"; Filename: "{app}\GreenForce-Player.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\GreenForce-Player"; Filename: "{app}\GreenForce-Player.exe"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\GreenForce-Player.exe"; Parameters: "/codecdownload"; Flags: runascurrentuser waituntilterminated
Filename: "{app}\GreenForce-Player.exe"; Description: "{cm:LaunchProgram,GreenForce-Player}"; Flags: nowait postinstall skipifsilent

[UninstallRun]
Filename: "{app}\GreenForce-Player.exe"; Parameters: "/deletelavfilters"; Flags: runascurrentuser waituntilterminated

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{2318E9DF-8E1D-4E04-84D6-85098CFF854E}}
AppName=GreenForce-Player
AppVerName=GreenForce-Player 2.00
VersionInfoVersion=2.00
AppPublisher=RRSoftware
VersionInfoCopyright=(c) 2009-2017 RocketRider
AppPublisherURL=http://gfp.rrsoftware.de
AppSupportURL=http://gfp.rrsoftware.de
AppUpdatesURL=http://gfp.rrsoftware.de
DefaultDirName={pf}\GreenForce-Player
DefaultGroupName=GreenForce-Player
AllowNoIcons=yes
InfoBeforeFile=..\ReadmeEN.txt
;OutputDir=C:\Users\Admin\Desktop\Projects\PureBasic\GFP-Install
OutputBaseFilename=GFP-Setup-V2.00
SetupIconFile=Icon.ico
WizardImageFile=Logo.bmp
Compression=lzma2/ultra64
SolidCompression=yes
DisableWelcomePage=no

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"

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

[Files]
Source: "..\GreenForce-Player.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\GFP-SDK\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "..\Help\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\GreenForce-Player"; Filename: "{app}\GreenForce-Player.exe"
Name: "{group}\GFPCrypt-GUI"; Filename: "{app}\GFP-SDK\GFPCrypt-GUI\GFPCrypt-GUI.exe"
Name: "{group}\Documentation"; Filename: "{app}\Help\GFP-Documentation.html"
Name: "{group}\FAQ"; Filename: "{app}\Help\FAQ.pdf"
Name: "{group}\{cm:ProgramOnTheWeb,GreenForce-Player}"; Filename: "http://gfp.rrsoftware.de"
Name: "{group}\{cm:UninstallProgram,GreenForce-Player}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\GreenForce-Player"; Filename: "{app}\GreenForce-Player.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\GreenForce-Player"; Filename: "{app}\GreenForce-Player.exe"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\GreenForce-Player.exe"; Parameters: "/codecdownload"; Flags: runascurrentuser waituntilterminated
Filename: "{app}\GreenForce-Player.exe"; Description: "{cm:LaunchProgram,GreenForce-Player}"; Flags: nowait postinstall skipifsilent

[UninstallRun]
Filename: "{app}\GreenForce-Player.exe"; Parameters: "/deletelavfilters"; Flags: runascurrentuser waituntilterminated


iss only needs the file's basename

iss only needs the file's basename

[Setup]
AppName=Heroku
AppVersion=<%= version %>
DefaultDirName={pf}\Heroku
DefaultGroupName=Heroku
Compression=lzma2
SolidCompression=yes
OutputBaseFilename=<%= File.basename(t.name, ".exe") %>
OutputDir=<%= File.dirname(t.name) %>

; For Ruby expansion ~ 32MB (installed) - 12MB (installer)
ExtraDiskSpaceRequired=20971520

[Files]
Source: "installers\git.exe"; DestDir: "{tmp}";
Source: "installers\rubyinstaller.exe"; DestDir: "{tmp}";
Source: "heroku-toolbelt\*.*"; DestDir: "{app}"; Flags: recursesubdirs;

[UninstallDelete]
Type: filesandordirs; Name: "{app}\ruby"

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: "expandsz"; ValueName: "HerokuPath"; \
  ValueData: "{app}"
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: "expandsz"; ValueName: "Path"; \
  ValueData: "{olddata};{app}"; Check: NeedsAddPath(ExpandConstant('{app}'))

[Run]
Filename: "{tmp}\git.exe"; Parameters: "/silent /nocancel /noicons"; \
  Flags: shellexec waituntilterminated; StatusMsg: "Installing Git";
Filename: "{tmp}\rubyinstaller.exe"; Parameters: "/silent /nocancel /noicons /dir=""{app}/ruby"""; \
  Flags: shellexec waituntilterminated; StatusMsg: "Installing Ruby";

[Code]

function NeedsAddPath(Param: string): boolean;
var
  OrigPath: string;
begin
  if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
    'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
    'Path', OrigPath)
  then begin
    Result := True;
    exit;
  end;
  // look for the path with leading and trailing semicolon
  // Pos() returns 0 if not found
  Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
end;

[Setup]
AppName=Heroku
AppVersion=<%= version %>
DefaultDirName={pf}\Heroku
DefaultGroupName=Heroku
Compression=lzma2
SolidCompression=yes
OutputBaseFilename=<%= File.basename(t.name) %>
OutputDir=<%= File.dirname(t.name) %>

; For Ruby expansion ~ 32MB (installed) - 12MB (installer)
ExtraDiskSpaceRequired=20971520

[Files]
Source: "installers\git.exe"; DestDir: "{tmp}";
Source: "installers\rubyinstaller.exe"; DestDir: "{tmp}";
Source: "heroku-toolbelt\*.*"; DestDir: "{app}"; Flags: recursesubdirs;

[UninstallDelete]
Type: filesandordirs; Name: "{app}\ruby"

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: "expandsz"; ValueName: "HerokuPath"; \
  ValueData: "{app}"
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: "expandsz"; ValueName: "Path"; \
  ValueData: "{olddata};{app}"; Check: NeedsAddPath(ExpandConstant('{app}'))

[Run]
Filename: "{tmp}\git.exe"; Parameters: "/silent /nocancel /noicons"; \
  Flags: shellexec waituntilterminated; StatusMsg: "Installing Git";
Filename: "{tmp}\rubyinstaller.exe"; Parameters: "/silent /nocancel /noicons /dir=""{app}/ruby"""; \
  Flags: shellexec waituntilterminated; StatusMsg: "Installing Ruby";

[Code]

function NeedsAddPath(Param: string): boolean;
var
  OrigPath: string;
begin
  if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
    'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
    'Path', OrigPath)
  then begin
    Result := True;
    exit;
  end;
  // look for the path with leading and trailing semicolon
  // Pos() returns 0 if not found
  Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
end;


Corrected the version number.

Corrected the version number.

; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Lazymine"
#define MyAppVersion "v 2.0.0"
#define MyAppPublisher "Lazymine.github.io"
#define MyAppURL "http://lazymine.github.io/"
#define MyAppExeName "nw.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{DC362068-58EE-4BD9-885D-0EB1B0C64696}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={userappdata}\{#MyAppName}
DefaultGroupName={#MyAppName}
LicenseFile=..\..\LICENSE
OutputBaseFilename=Lazymine
SetupIconFile=..\..\lazymine.ico
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

[Files]
Source: "..\..\lazymine.ico"; DestDir: "{userappdata}"; Flags: ignoreversion
Source: "..\..\node_modules\nw\nwjs\*"; DestDir: "{userappdata}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"; IconFilename: "{userappdata}\lazymine.ico"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"; Tasks: desktopicon; IconFilename: "{userappdata}\lazymine.ico"
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"; Tasks: quicklaunchicon
Name: "{commonstartup}\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"

[Run]
Filename: "{userappdata}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Lazymine"
#define MyAppVersion "v 2.0.1"
#define MyAppPublisher "Lazymine.github.io"
#define MyAppURL "http://lazymine.github.io/"
#define MyAppExeName "nw.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{DC362068-58EE-4BD9-885D-0EB1B0C64696}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={userappdata}\{#MyAppName}
DefaultGroupName={#MyAppName}
LicenseFile=..\..\LICENSE
OutputBaseFilename=Lazymine
SetupIconFile=..\..\lazymine.ico
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

[Files]
Source: "..\..\lazymine.ico"; DestDir: "{userappdata}"; Flags: ignoreversion
Source: "..\..\node_modules\nw\nwjs\*"; DestDir: "{userappdata}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"; IconFilename: "{userappdata}\lazymine.ico"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"; Tasks: desktopicon; IconFilename: "{userappdata}\lazymine.ico"
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"; Tasks: quicklaunchicon
Name: "{commonstartup}\{#MyAppName}"; Filename: "{userappdata}\{#MyAppExeName}"

[Run]
Filename: "{userappdata}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent


Update German translation for Installer

Update German translation for Installer

;Defaults (English)
CreateStartShortcut=Create a Start Menu shortcut
NoKaM=The installation wizard detected that you do not have Knights and Merchants: The Peasants Rebellion installed. You must have the original game installed in order to play the KaM Remake.%n%nThe installation will be aborted.
SteamFirstRun=Original KaM installed from Steam needs to be started at least once on the system, in order for KMR installer to be able to detect and verify it.
CantUpdate=The installation wizard was unable to find an existing version of the KaM Remake to be updated. Please download and install the complete installer instead.%n%nThe installation will be aborted.
OpenAL=Do you want the installation wizard to install OpenAL? (Strongly recommended) It is required for sounds to work in the KaM Remake
ViewReadme=View the Readme
DeleteSaves=Do you want to delete all your saved games and the progress of all campaigns as well?
DeleteMaps=Do you want to delete all Maps and Campaigns as well?

;Dutch
dut.CreateStartShortcut=Aanmaken van een start menu snelkoppeling
dut.NoKaM=De installatie wizard heeft gedetecteerd dat Knights and Merchants: The Peasants Rebellion niet is geïnstalleerd. Je moet het originele spel hebben geïnstalleerd om KaM Remake te kunnen spelen.%n%nDe installatie is afgebroken.
dut.SteamFirstRun=Originele KaM geïnstalleerd vanaf Steam moet minstens één keer worden gestart op deze computer, zodat het KMR-installatieprogramma het spel kan detecteren en verifiëren.
dut.CantUpdate=De installatie wizard kon geen bestaande versie vinden van de KaM Remake om deze bij te werken naar de nieuwste versie. Download en installeer de complete versie.%n%nDe installatie is afgebroken
dut.OpenAL=Wil je dat de installatie wizard OpenAL installeerd? (Aan te raden) OpenAL is nodig voor de werking van het geluid in KaM Remake
dut.ViewReadme=Lees de Readme
dut.DeleteSaves=Wil je ook alle opgeslagen spellen en voortgang in de campagnes verwijderen?
dut.DeleteMaps=Wil je ook alle Kaarten en Campagnes verwijderen?

;Swedish
swe.CreateStartShortcut=Skapa en genväg i startmenyn
swe.NoKaM=Det verkar som att du inte har Knights and Merchants: The Peasants Rebellion installerat på din dator.%n%nInstallationen kommer att avbrytas.
swe.CantUpdate=Kunde inte hitta en redan installerad version av KaM Remake att uppdatera. Ladda ner och installera den kompletta versionen istället.%n%nInstallationen kommer att avbrytas.
swe.OpenAL=Vill du även installera OpenAL? (Rekommenderas starkt) Det krävs för att ljud ska fungera i KaM Remake
swe.ViewReadme=Visa Readme-filen

;German
ger.CreateStartShortcut=Verknüpfung im Startmenü erstellen
ger.NoKaM=Setup hat ermittelt, dass Knights and Merchants: The Peasants Rebellion nicht installiert ist.
ger.SteamFirstRun=Das von Steam installierte Original-KaM muss mindestens einmal auf dem System gestartet werden, damit das KMR-Installationsprogramm es erkennen und überprüfen kann.
ger.CantUpdate=Setup war nicht in der Lage eine installierte Version von KaM Remake zu aktualisieren. Bitte lade die Vollversion von KaM Remake herunter und führe das Setup erneut aus.
ger.OpenAL=Soll Setup auch OpenAl installieren (empfohlen)? Es wird für die Soundwiedergabe von KaM Remake benötigt.
ger.ViewReadme=Readme anzeigen
ger.DeleteSaves=Möchten Sie auch alle Ihre gespeicherten Spiele und den Fortschritt aller Kampagnen löschen?
ger.DeleteMaps=Möchten Sie auch alle Karten und Kampagnen löschen?

;Polish
pol.CreateStartShortcut=Stwórz skrót w Menu Start
pol.NoKaM=Kreator instalacji wykrył że nie masz zainstalowanego Knights and Merchants: The Peasants Rebellion.%n%nInstalacja zostanie przerwana.
pol.CantUpdate=Kreator instalacji nie był w stanie znaleźć istniejącej wersji KaM Remake do zaktualizowania. Proszę pobrać i zainstalować kompletny instalator.%n%nInstalacja zostanie przerwana.
pol.OpenAL=Czy chcesz aby kreator instalacji zainstalował OpenAL? (Zalecane) Jest on wymagany by działały dźwięki w KaM Remake.
pol.ViewReadme=Zobacz plik Readme

;Hungarian
hun.CreateStartShortcut=Start Menü ikon létrehozása
hun.NoKaM=A telepítő nem észlelte a Knights and Merchants: A Parasztfelkelést telepítve.%n%nA telepítés megszakításra kerül.
hun.SteamFirstRun=Steamről telepített KaM esetében az eredeti játékot legalább egyszer futtatni kell, hogy a KaM Remake telepítője felismerje azt.
hun.CantUpdate=A telepítő nem talált KaM Remake verziót a számítógépen, hogy frissítse. Kérem töltse le és használja a teljes telepítőt.%n%nA telepítés megszakításra kerül.
hun.OpenAL=Szeretnéd, hogy a telepítő telepítse az OpenAL-t? (Erősen ajánlott) A hangok működéséhez szükséges a KaM Remake-ben
hun.ViewReadme=Olvass el fájl megtekintése
hun.DeleteSaves=Töröli az összes Mentett játékot és minden Kampány állását is?
hun.DeleteMaps=Töröli az összes Térképet és Kampányt?

;French
fre.CreateStartShortcut=Créer un raccourci dans le menu Démarrer
fre.NoKaM=L'assistant d'installation n'a détecté aucune installation de Knights and Merchants : The Peasants Rebellion.%n%nL'installation sera interrompue.
fre.CantUpdate=L'assistant d'installation n'a détecté aucune version existante de KaM Remake à mettre à jour. Veuillez télécharger et utiliser l'installateur complet.%n%nL'installation sera interrompue.
fre.OpenAL=Voulez-vous que l'assistant d'installation installe OpenAL ? (fortement recommandé) OpenAL est requis pour le fonctionnement audio de KaM Remake.
fre.ViewReadme=Voir le lisez-moi

;Czech
cze.CreateStartShortcut=Vytvořit zástupce v nabídce Start
cze.NoKaM=Instalátor zjistil, že hra Knights and Merchants: The Peasants Rebellion není nainstalována. Instalace bude nyní ukončena.
cze.SteamFirstRun=Knights and Merchants na Steamu je potřeba pustit alespoň jednou, aby mohla instalace pokračovat.
cze.CantUpdate=Instalátor nenalezl na vašem počítači KaM Remake. Nejprve si stáhněte kompletní KaM Remake, poté můžete aktualizovat. Instalace bude nyní ukončena.
cze.OpenAL=Chcete nainstalovat OpenAL? (Doporučeno) OpenAL je vyžadováno pro správnou funkci zvuku v KaM Remake
cze.ViewReadme=Otevřít Readme
cze.DeleteSaves=Chcete také smazat všechny uložené hry a postup v kampani?
cze.DeleteMaps=Chcete také smazat všechny mapy a kampaně?

;Russian
rus.CreateStartShortcut=Создать ярлык в меню Пуск
rus.NoKaM=Мастер установки не обнаружил установленной игры Knights and Merchants: The Peasants Rebellion. Оригинальная игра необходима для установки КаМ Ремейк.%n%nУстановка будет отменена.
rus.SteamFirstRun=Оригинальная игра, установленная из Steam должна быть запущена хотя бы 1 раз, чтобы данный установщик КаМ Ремейк смог обнаружить и проверить её.
rus.CantUpdate=Мастер установки не смог обнаружить версию КаМ Ремейк для обновления. Пожалуйста скачайте и запустите полную версию установщика.%n%nУстановка будет отменена.
rus.OpenAL=Установить OpenAL? (рекоммендуется) Необходимо для работы звука в КаМ Ремейк
rus.ViewReadme=Показать Readme
rus.DeleteSaves=Вы хотите также удалить все сохраненные игры и прогресс всех кампаний?
rus.DeleteMaps=Вы хотите также удалить все карты и кампании?

;Brazilian Portuguese
ptb.CreateStartShortcut=Criar um atalho no menu Iniciar
ptb.NoKaM=O assistente de instalação detectou que você não tem Knights and Merchants: The Peasants Rebellion instalado.%n%nA instalação será abortada.
ptb.CantUpdate=O assistente de instalação foi incapaz de encontrar uma versão existente do KaM Remake para atualizar. Por favor, baixe e instale através do instalador completo.%n%nA instalação será abortada.
ptb.OpenAL=Você deseja que o assistente de instalação instale o OpenAL? (Altamente recomendado) É necessário para o funcionamento dos sons no KaM Remake
ptb.ViewReadme=Ver o Readme

;Italian
ita.CreateStartShortcut=Crea collegamento nel Menu Avvio
ita.NoKaM=La procedura guidata di installazione non ha rilevato alcuna copia di "Knights and Merchants: The Peasants Rebellion". È necessaria l'installazione del gioco originale per poter utilizzare "KaM Remake".%n%nLa procedura di installazione verrà ora annullata.
ita.CantUpdate=La procedura guidata di installazione non ha rilevato alcuna versione di "KaM Remake" da aggiornare. Si prega di scaricare e utilizzare invece il programma di installazione completo.%n%nLa procedura di installazione verrà ora annullata.
ita.OpenAL=Vuoi procedere all'installazione di OpenAL? (Fortemente raccomandata) È necessaria per il corretto funzionamento dell'audio in "KaM Remake"
ita.ViewReadme=Visualizza il file Readme

;Spanish
spa.CreateStartShortcut=Crea un acceso directo en el menú de inicio
spa.NoKaM=El asistente de instalación ha detectado que no tienes Knights and Merchants: The Peasants Rebellion instalado. Usted debe tener instalado el juego original para poder jugar el remake de Kam.%n%nLa instalación se interrumpirá
spa.CantUpdate=El asistente de instalación no ha podido encontrar la versión Kam Remake para poder actualizar. Por favor, descarga y instala la versión completa.%n%nLa instalación se interrumpirá.
spa.OpenAL=¿Quieres que el asistente de instalación instale OpenAL? (Muy recomendable) se requiere para el sonido del juego Kam Remake
spa.ViewReadme=Ver el archivo Readme

;Bulgarian
bul.CreateStartShortcut=Създай пряк път
bul.NoKaM=Инсталацията откри, че нямате инсталирана Knights and Merchants: The Peasants Rebellion. Вие трябва да имате Knights and Merchants: The Peasants Rebellion, за да играете KaM Remake.%n%nИнсталацията се прекратява.
bul.CantUpdate=Инсталацията не успя да намери съществуваща версия на KaM Remake, за да бъде подобрена. Моля изтеглете и инсталирайте пълния инсталатор.%n%nИнсталацията ще се прекрати.
bul.OpenAL=Искате ли инсталацията да инсталира OpenAL? (Силно се препоръчва) Нужно е, за да работи звука в играта.
bul.ViewReadme=Виж "Прочети ме"

;Estonian
est.CreateStartShortcut=Loo start menüü otsetee
est.NoKaM=Paigaldamise programm on avastanud, et Teil ei ole paigaldatud Knights and Merchants: The Peasants Rebellion. Teil peab olema paigaldatud originaal mäng, et mängida mängu KaM Remake.%n%nPaigaldamine katkestakase.
est.CantUpdate=Paigaldamise programm ei leidnud olemas olevat KaM Remake versiooni, mida uuendada. Palun laadige internetist alla täis versioon mängust KaM Remake.%n%nPaigaldamine katkestatakse.
est.OpenAL=Kas te soovite paigaldada programmi OpenAL? (Tungivalt soovitatav) See on vajalik, et helid töötaksid mängus KaM Remake.
est.ViewReadme=Vaadake faili Readme

;Slovak
svk.CreateStartShortcut=Vytvoriť zástupcu v ponuke Štart
svk.NoKaM=Sprievodca inštaláciou zistil, že nemáte nainštalovaný Knight & Merchants: The Peasants Rebellion. Musíte mať nainštalovanú originálnu hru, aby ste mohli hrať KaM Remake.%n%nInštalácia bude prerušená.
svk.CantUpdate=Sprievodca inštaláciou nemohol nájsť existujúcu verziu KaM Remake, je ju potrebné aktualizovať. Prosím, stiahnite a nainštalujte kompletnú inštaláciu.%n%nInštalácia bude prerušená.
svk.OpenAL=Chcete použiť spriveodcu na inštaláciu OpenAL? (Dôrazne odporúčané). Je to potrebné pre zvuky v hre v KAM Remake.
svk.ViewReadme=Pozri súbor Readme

;Romanian
rom.CreateStartShortcut=Creează o scurtătura în meniul de Start
rom.NoKaM=Instalarea a detectat ca nu ai instalat Knights and Merchants: The Peasants Rebellion. Trebuie să ai instalat jocul original pentru a putea juca KaM Remake.%n%nInstalarea se va întrerupe.
rom.CantUpdate=Instalarea nu a putut găsi o versiune care va putea fi updată. Te rog să downloadezi fisierul de instalare complet.%n%nInstalarea se va întrerupe.
rom.OpenAL=Vrei să instalezi OpenAL?(Recomandat) Este necesar pentru sunetele din KaM Remake
rom.ViewReadme=Vizualizeazp fisierul Citeste-ma

;Ukrainian
ukr.CreateStartShortcut=Створити ярлик стартового меню
ukr.NoKaM=Майстер встановлення программи не знайшов оригіналу Knights and Merchants: The Peasants Rebellion на вашому комп`ютері. Ви маєте встановити оригінал для того , щоб грат в KaM Remake.%n%nІнсталяцію скасовано.
ukr.CantUpdate=Майстер встановлення програми не зміг знайти KaM Remake на компютері для того, щоб оновити його. Будь ласка , в першу чергу , завантажте і встановіть повну версію перш ніж встановлювати апдейт.%n%nІнсталяцію скасовано.
ukr.OpenAL=Чи хочете ви щоби майстер встановив OpenAL? (Дуже рекомендується) Він необхідний для роботи звуку у KaM Remake
ukr.ViewReadme=Відкрити Readme

;Norwegian
nor.CreateStartShortcut=Legg til snarvei i Start-menyen
nor.NoKaM=Installasjonsveiviseren oppdaget at du ikke har Knights and Merchants: The Peasants Rebellion installert. Du må ha det originale spillet installert for å spille KaM Remake.%n%nInstallasjonen vil bli avbrutt.
nor.CantUpdate=Installasjonen kunne ikke finne en eksisterende versjon av KaM Remake å oppdatere. Vennligst last ned og installer det fullstendige installasjonsprogrammet i stedet.%n%nInstallasjonen vil bli avbrutt.
nor.OpenAL=Ønsker du at installasjonsveiviseren skal installere OpenAL? (Anbefales sterkt) Det er nødvendig for at lyder skal fungere i KaM Remake
nor.ViewReadme=Vis Readme

;Belarusian
bel.CreateStartShortcut=Стварыць цэтлік ў меню "Пуск"
bel.NoKaM=Майстар ўстаноўкі выявіў што ў вас няма ўсталяванай iгры Knights and Merchants: The Peasants Rebellion. Вы павінны ўсталяваць арыгінальную iгру каб іграць ў KaM Remake.%n%nУстаноўка будзе спынена.
bel.CantUpdate=Майстру ўстаноўкі не ўдаецца знайсці версію KaM Remake для абнаўлення. Калі ласка загрузіце поўны пакет ўстаноўкі.%n%nУстаноўка будзе спынена.
bel.OpenAL=Вы хочаце ўсталяваць OpenAL? (настойліва рэкамендуецца) Гэта неабходна для работы гуку ў KaM Remake
bel.ViewReadme=Адкрыць Readme

;Japanese
jpn.CreateStartShortcut=スタートメニューのショートカットが作成されます。
jpn.NoKaM=インストールウィザードが"Knights and Merchants: The Peasants Rebellion"をインストールしていないの検出されました。KAM リメイクがフレーされるにはオリジナルのゲームはインストールしてはいけません。インストールは中止されました。
jpn.CantUpdate=インストールウィザードは既存のKAMリメイクバージョンが見つかりませんでした。その代わりに全部のインストーラはダウンロートしてインストールしてください。インストールは中止されました。
jpn.OpenAL=インストールウィザードがOpenALをインストールしたいですか「強い推奨」。KAM リメイクの音楽などを聞くと必要です。
jpn.ViewReadme=Readmeが表示されます。

;Turkish
tur.CreateStartShortcut=Başlat menüsü kısayolu oluştur.
tur.NoKaM=Kurulum sihirbazı orijinal Knights and Merchants: The Peasants Rebellion oyununun kurulu olmadığını tespit etti. KaM Remake modunu oynayabilmek için orijinal oyuna sahip olmanız gerekmektedir.%n%nKurulum sihirbazı kapanacaktır.
tur.CantUpdate=Kurulum sihirbazı herhangi bir kurulu KaM Remake versiyonu bulamadı. Lütfen complete installer indirerek kurulum yapınız.%n%nKurulum sihirbazı kapanacaktır.
tur.OpenAL=Kurulum sihirbazının OpenAL kurmasını ister misiniz? (Tavsiye edilir) Seslerin oyun içinde çalışması için gereklidir.
tur.ViewReadme=Beni oku dosyasını aç

;Korean
kor.CreateStartShortcut=시작 메뉴 단축 아이콘 만들기
kor.NoKaM=설치 마법사가 '기사와 상인:농민의 반란'이 설치가 안된것으로 확인되었습니다. '기사와 상인 다시만듬'을 실행하기 위해서는 반드시 원본 게임이 설치되어 있어야 합니다. 설치가 중단 됩니다.
kor.CantUpdate=설치 마법사가 갱신할 '기사와 상인 다시만듬'의 기존 버전을 찾을 수 없습니다. 전체 설치 프로그램 대신에 다운로드하여 설치 해주십시오. 설치가 중단 됩니다.
kor.OpenAL=OpenAL을 설치하기위해 설치 마법사가 필요합니까? (강력하게 추천함) '기사와 상인 다시만듬'에서 소리를 작동하는데 필요합니다.
kor.ViewReadme=읽어보기

;Serbian
srb.CreateStartShortcut=Направите Старт Мену Пречицу
srb.NoKaM=Инсталациони чаробњак је приметио да немате Knights and Merchants: The Peasants Rebellion инсталирано. Морате имати оригиналну игру инсталирану да бисте играли KaM Remake.%n%nИнсталације ће престати са радом.
srb.CantUpdate=Инсталациони чаробњак није могао да нађе постојећу верзију KaM Remake да се усавремени. Молимо вас скините и инсталирајте комплетан инсталер уместо тога.%n%nИнсталација ће престати са радом.
srb.OpenAL=Да ли желите да вам инсталациони чаробњакисталира OpenAL? (Врло препоручљиво) Потребно је да бих ѕвукови радили у KaM Remake.
srb.ViewReadme=Прочитајте Реадме

;Chinese
chn.CreateStartShortcut=创建开始菜单快捷方式
chn.NoKaM=安装向导检测到没有《骑士与商人之农民起义》的安装。为了能玩重制版游戏，必须先安装原版游戏。本安装程序将被终止。
chn.CantUpdate=安装向导无法找到一个存在的重制版能够被升级。请重新下载并安装完整的安装包。本安装程序将被终止。
chn.OpenAL=你想用安装向导来安装OpenAL吗？（强烈推荐）这是音效文件运行的必需程序。
chn.ViewReadme=查看自述文件

;Slovenian
slv.CreateStartShortcut=Ustvari bljižnico na meniju
slv.NoKaM=Čarovnik za namestitev je zaznal da nimate nameščeno igro Knights and Merchants: The Peasants Rebellion. Morate imeti nameščeno originalno igro če želite igrati KaM Remake.%n%nNamestitev bo prekinjena
slv.OpenAL=Ali želite namestiti OpenAL? (Močno priporočeno) potrebno je za elovanje zvokov v igri KaM Remake.
slv.ViewReadme=Poglej si opis

;Finnish
fin.CreateStartShortcut=Luo käynnistysvalikon pikakuvake
fin.NoKaM=Asennusohjelma ei havainnut olemassaolevaa asennusta pelistä Knights and Merchants: The Peasants Rebellion. Sinulla täytyy olla alkuperäinen peli asennettuna jotta voit asentaa KaM Remaken.%n%nAsennus keskeytetään
fin.SteamFirstRun=Alkuperäinen KaM-asennus Steamista täytyy käynnistää kerran ennenkuin KMR-asennusohjelma pystyy löytämään ja varmistamaan sen.
fin.CantUpdate=Asennusohjelma ei löytänyt olemassa olevaa versiota Kam Remakesta päivitystä varten. Lataa ja asenna koko asennusohjelma.%n%nAsennus keskeytetään
fin.OpenAL=Haluatko että asennusohjelma asentaa OpenAL:in? (Vahva suositus) Tämä vaaditaan jotta äänet toimisivat.
fin.ViewReadme=Tarkastele LueMinut
fin.DeleteSaves=Haluatko varmasti poistaa tallennuksesi ja etenemisesi kaikista kampanjoista?
fin.DeleteMaps=Haluatko varmasti poistaa kaikki Kartat ja Kampanjat?

;Defaults (English)
CreateStartShortcut=Create a Start Menu shortcut
NoKaM=The installation wizard detected that you do not have Knights and Merchants: The Peasants Rebellion installed. You must have the original game installed in order to play the KaM Remake.%n%nThe installation will be aborted.
SteamFirstRun=Original KaM installed from Steam needs to be started at least once on the system, in order for KMR installer to be able to detect and verify it.
CantUpdate=The installation wizard was unable to find an existing version of the KaM Remake to be updated. Please download and install the complete installer instead.%n%nThe installation will be aborted.
OpenAL=Do you want the installation wizard to install OpenAL? (Strongly recommended) It is required for sounds to work in the KaM Remake
ViewReadme=View the Readme
DeleteSaves=Do you want to delete all your saved games and the progress of all campaigns as well?
DeleteMaps=Do you want to delete all Maps and Campaigns as well?

;Dutch
dut.CreateStartShortcut=Aanmaken van een start menu snelkoppeling
dut.NoKaM=De installatie wizard heeft gedetecteerd dat Knights and Merchants: The Peasants Rebellion niet is geïnstalleerd. Je moet het originele spel hebben geïnstalleerd om KaM Remake te kunnen spelen.%n%nDe installatie is afgebroken.
dut.SteamFirstRun=Originele KaM geïnstalleerd vanaf Steam moet minstens één keer worden gestart op deze computer, zodat het KMR-installatieprogramma het spel kan detecteren en verifiëren.
dut.CantUpdate=De installatie wizard kon geen bestaande versie vinden van de KaM Remake om deze bij te werken naar de nieuwste versie. Download en installeer de complete versie.%n%nDe installatie is afgebroken
dut.OpenAL=Wil je dat de installatie wizard OpenAL installeerd? (Aan te raden) OpenAL is nodig voor de werking van het geluid in KaM Remake
dut.ViewReadme=Lees de Readme
dut.DeleteSaves=Wil je ook alle opgeslagen spellen en voortgang in de campagnes verwijderen?
dut.DeleteMaps=Wil je ook alle Kaarten en Campagnes verwijderen?

;Swedish
swe.CreateStartShortcut=Skapa en genväg i startmenyn
swe.NoKaM=Det verkar som att du inte har Knights and Merchants: The Peasants Rebellion installerat på din dator.%n%nInstallationen kommer att avbrytas.
swe.CantUpdate=Kunde inte hitta en redan installerad version av KaM Remake att uppdatera. Ladda ner och installera den kompletta versionen istället.%n%nInstallationen kommer att avbrytas.
swe.OpenAL=Vill du även installera OpenAL? (Rekommenderas starkt) Det krävs för att ljud ska fungera i KaM Remake
swe.ViewReadme=Visa Readme-filen

;German
ger.CreateStartShortcut=Verknüpfung im Startmenü erstellen
ger.NoKaM=Setup hat ermittelt, dass Knights and Merchants: The Peasants Rebellion nicht installiert ist.
ger.CantUpdate=Setup war nicht in der Lage eine installierte Version von KaM Remake zu aktualisieren. Bitte lade die Vollversion von KaM Remake herunter und führe das Setup erneut aus.
ger.OpenAL=Soll Setup auch OpenAl installieren (empfohlen)? Es wird für die Soundwiedergabe von KaM Remake benötigt.
ger.ViewReadme=Readme anzeigen

;Polish
pol.CreateStartShortcut=Stwórz skrót w Menu Start
pol.NoKaM=Kreator instalacji wykrył że nie masz zainstalowanego Knights and Merchants: The Peasants Rebellion.%n%nInstalacja zostanie przerwana.
pol.CantUpdate=Kreator instalacji nie był w stanie znaleźć istniejącej wersji KaM Remake do zaktualizowania. Proszę pobrać i zainstalować kompletny instalator.%n%nInstalacja zostanie przerwana.
pol.OpenAL=Czy chcesz aby kreator instalacji zainstalował OpenAL? (Zalecane) Jest on wymagany by działały dźwięki w KaM Remake.
pol.ViewReadme=Zobacz plik Readme

;Hungarian
hun.CreateStartShortcut=Start Menü ikon létrehozása
hun.NoKaM=A telepítő nem észlelte a Knights and Merchants: A Parasztfelkelést telepítve.%n%nA telepítés megszakításra kerül.
hun.SteamFirstRun=Steamről telepített KaM esetében az eredeti játékot legalább egyszer futtatni kell, hogy a KaM Remake telepítője felismerje azt.
hun.CantUpdate=A telepítő nem talált KaM Remake verziót a számítógépen, hogy frissítse. Kérem töltse le és használja a teljes telepítőt.%n%nA telepítés megszakításra kerül.
hun.OpenAL=Szeretnéd, hogy a telepítő telepítse az OpenAL-t? (Erősen ajánlott) A hangok működéséhez szükséges a KaM Remake-ben
hun.ViewReadme=Olvass el fájl megtekintése
hun.DeleteSaves=Töröli az összes Mentett játékot és minden Kampány állását is?
hun.DeleteMaps=Töröli az összes Térképet és Kampányt?

;French
fre.CreateStartShortcut=Créer un raccourci dans le menu Démarrer
fre.NoKaM=L'assistant d'installation n'a détecté aucune installation de Knights and Merchants : The Peasants Rebellion.%n%nL'installation sera interrompue.
fre.CantUpdate=L'assistant d'installation n'a détecté aucune version existante de KaM Remake à mettre à jour. Veuillez télécharger et utiliser l'installateur complet.%n%nL'installation sera interrompue.
fre.OpenAL=Voulez-vous que l'assistant d'installation installe OpenAL ? (fortement recommandé) OpenAL est requis pour le fonctionnement audio de KaM Remake.
fre.ViewReadme=Voir le lisez-moi

;Czech
cze.CreateStartShortcut=Vytvořit zástupce v nabídce Start
cze.NoKaM=Instalátor zjistil, že hra Knights and Merchants: The Peasants Rebellion není nainstalována. Instalace bude nyní ukončena.
cze.SteamFirstRun=Knights and Merchants na Steamu je potřeba pustit alespoň jednou, aby mohla instalace pokračovat.
cze.CantUpdate=Instalátor nenalezl na vašem počítači KaM Remake. Nejprve si stáhněte kompletní KaM Remake, poté můžete aktualizovat. Instalace bude nyní ukončena.
cze.OpenAL=Chcete nainstalovat OpenAL? (Doporučeno) OpenAL je vyžadováno pro správnou funkci zvuku v KaM Remake
cze.ViewReadme=Otevřít Readme
cze.DeleteSaves=Chcete také smazat všechny uložené hry a postup v kampani?
cze.DeleteMaps=Chcete také smazat všechny mapy a kampaně?

;Russian
rus.CreateStartShortcut=Создать ярлык в меню Пуск
rus.NoKaM=Мастер установки не обнаружил установленной игры Knights and Merchants: The Peasants Rebellion. Оригинальная игра необходима для установки КаМ Ремейк.%n%nУстановка будет отменена.
rus.SteamFirstRun=Оригинальная игра, установленная из Steam должна быть запущена хотя бы 1 раз, чтобы данный установщик КаМ Ремейк смог обнаружить и проверить её.
rus.CantUpdate=Мастер установки не смог обнаружить версию КаМ Ремейк для обновления. Пожалуйста скачайте и запустите полную версию установщика.%n%nУстановка будет отменена.
rus.OpenAL=Установить OpenAL? (рекоммендуется) Необходимо для работы звука в КаМ Ремейк
rus.ViewReadme=Показать Readme
rus.DeleteSaves=Вы хотите также удалить все сохраненные игры и прогресс всех кампаний?
rus.DeleteMaps=Вы хотите также удалить все карты и кампании?

;Brazilian Portuguese
ptb.CreateStartShortcut=Criar um atalho no menu Iniciar
ptb.NoKaM=O assistente de instalação detectou que você não tem Knights and Merchants: The Peasants Rebellion instalado.%n%nA instalação será abortada.
ptb.CantUpdate=O assistente de instalação foi incapaz de encontrar uma versão existente do KaM Remake para atualizar. Por favor, baixe e instale através do instalador completo.%n%nA instalação será abortada.
ptb.OpenAL=Você deseja que o assistente de instalação instale o OpenAL? (Altamente recomendado) É necessário para o funcionamento dos sons no KaM Remake
ptb.ViewReadme=Ver o Readme

;Italian
ita.CreateStartShortcut=Crea collegamento nel Menu Avvio
ita.NoKaM=La procedura guidata di installazione non ha rilevato alcuna copia di "Knights and Merchants: The Peasants Rebellion". È necessaria l'installazione del gioco originale per poter utilizzare "KaM Remake".%n%nLa procedura di installazione verrà ora annullata.
ita.CantUpdate=La procedura guidata di installazione non ha rilevato alcuna versione di "KaM Remake" da aggiornare. Si prega di scaricare e utilizzare invece il programma di installazione completo.%n%nLa procedura di installazione verrà ora annullata.
ita.OpenAL=Vuoi procedere all'installazione di OpenAL? (Fortemente raccomandata) È necessaria per il corretto funzionamento dell'audio in "KaM Remake"
ita.ViewReadme=Visualizza il file Readme

;Spanish
spa.CreateStartShortcut=Crea un acceso directo en el menú de inicio
spa.NoKaM=El asistente de instalación ha detectado que no tienes Knights and Merchants: The Peasants Rebellion instalado. Usted debe tener instalado el juego original para poder jugar el remake de Kam.%n%nLa instalación se interrumpirá
spa.CantUpdate=El asistente de instalación no ha podido encontrar la versión Kam Remake para poder actualizar. Por favor, descarga y instala la versión completa.%n%nLa instalación se interrumpirá.
spa.OpenAL=¿Quieres que el asistente de instalación instale OpenAL? (Muy recomendable) se requiere para el sonido del juego Kam Remake
spa.ViewReadme=Ver el archivo Readme

;Bulgarian
bul.CreateStartShortcut=Създай пряк път
bul.NoKaM=Инсталацията откри, че нямате инсталирана Knights and Merchants: The Peasants Rebellion. Вие трябва да имате Knights and Merchants: The Peasants Rebellion, за да играете KaM Remake.%n%nИнсталацията се прекратява.
bul.CantUpdate=Инсталацията не успя да намери съществуваща версия на KaM Remake, за да бъде подобрена. Моля изтеглете и инсталирайте пълния инсталатор.%n%nИнсталацията ще се прекрати.
bul.OpenAL=Искате ли инсталацията да инсталира OpenAL? (Силно се препоръчва) Нужно е, за да работи звука в играта.
bul.ViewReadme=Виж "Прочети ме"

;Estonian
est.CreateStartShortcut=Loo start menüü otsetee
est.NoKaM=Paigaldamise programm on avastanud, et Teil ei ole paigaldatud Knights and Merchants: The Peasants Rebellion. Teil peab olema paigaldatud originaal mäng, et mängida mängu KaM Remake.%n%nPaigaldamine katkestakase.
est.CantUpdate=Paigaldamise programm ei leidnud olemas olevat KaM Remake versiooni, mida uuendada. Palun laadige internetist alla täis versioon mängust KaM Remake.%n%nPaigaldamine katkestatakse.
est.OpenAL=Kas te soovite paigaldada programmi OpenAL? (Tungivalt soovitatav) See on vajalik, et helid töötaksid mängus KaM Remake.
est.ViewReadme=Vaadake faili Readme

;Slovak
svk.CreateStartShortcut=Vytvoriť zástupcu v ponuke Štart
svk.NoKaM=Sprievodca inštaláciou zistil, že nemáte nainštalovaný Knight & Merchants: The Peasants Rebellion. Musíte mať nainštalovanú originálnu hru, aby ste mohli hrať KaM Remake.%n%nInštalácia bude prerušená.
svk.CantUpdate=Sprievodca inštaláciou nemohol nájsť existujúcu verziu KaM Remake, je ju potrebné aktualizovať. Prosím, stiahnite a nainštalujte kompletnú inštaláciu.%n%nInštalácia bude prerušená.
svk.OpenAL=Chcete použiť spriveodcu na inštaláciu OpenAL? (Dôrazne odporúčané). Je to potrebné pre zvuky v hre v KAM Remake.
svk.ViewReadme=Pozri súbor Readme

;Romanian
rom.CreateStartShortcut=Creează o scurtătura în meniul de Start
rom.NoKaM=Instalarea a detectat ca nu ai instalat Knights and Merchants: The Peasants Rebellion. Trebuie să ai instalat jocul original pentru a putea juca KaM Remake.%n%nInstalarea se va întrerupe.
rom.CantUpdate=Instalarea nu a putut găsi o versiune care va putea fi updată. Te rog să downloadezi fisierul de instalare complet.%n%nInstalarea se va întrerupe.
rom.OpenAL=Vrei să instalezi OpenAL?(Recomandat) Este necesar pentru sunetele din KaM Remake
rom.ViewReadme=Vizualizeazp fisierul Citeste-ma

;Ukrainian
ukr.CreateStartShortcut=Створити ярлик стартового меню
ukr.NoKaM=Майстер встановлення программи не знайшов оригіналу Knights and Merchants: The Peasants Rebellion на вашому комп`ютері. Ви маєте встановити оригінал для того , щоб грат в KaM Remake.%n%nІнсталяцію скасовано.
ukr.CantUpdate=Майстер встановлення програми не зміг знайти KaM Remake на компютері для того, щоб оновити його. Будь ласка , в першу чергу , завантажте і встановіть повну версію перш ніж встановлювати апдейт.%n%nІнсталяцію скасовано.
ukr.OpenAL=Чи хочете ви щоби майстер встановив OpenAL? (Дуже рекомендується) Він необхідний для роботи звуку у KaM Remake
ukr.ViewReadme=Відкрити Readme

;Norwegian
nor.CreateStartShortcut=Legg til snarvei i Start-menyen
nor.NoKaM=Installasjonsveiviseren oppdaget at du ikke har Knights and Merchants: The Peasants Rebellion installert. Du må ha det originale spillet installert for å spille KaM Remake.%n%nInstallasjonen vil bli avbrutt.
nor.CantUpdate=Installasjonen kunne ikke finne en eksisterende versjon av KaM Remake å oppdatere. Vennligst last ned og installer det fullstendige installasjonsprogrammet i stedet.%n%nInstallasjonen vil bli avbrutt.
nor.OpenAL=Ønsker du at installasjonsveiviseren skal installere OpenAL? (Anbefales sterkt) Det er nødvendig for at lyder skal fungere i KaM Remake
nor.ViewReadme=Vis Readme

;Belarusian
bel.CreateStartShortcut=Стварыць цэтлік ў меню "Пуск"
bel.NoKaM=Майстар ўстаноўкі выявіў што ў вас няма ўсталяванай iгры Knights and Merchants: The Peasants Rebellion. Вы павінны ўсталяваць арыгінальную iгру каб іграць ў KaM Remake.%n%nУстаноўка будзе спынена.
bel.CantUpdate=Майстру ўстаноўкі не ўдаецца знайсці версію KaM Remake для абнаўлення. Калі ласка загрузіце поўны пакет ўстаноўкі.%n%nУстаноўка будзе спынена.
bel.OpenAL=Вы хочаце ўсталяваць OpenAL? (настойліва рэкамендуецца) Гэта неабходна для работы гуку ў KaM Remake
bel.ViewReadme=Адкрыць Readme

;Japanese
jpn.CreateStartShortcut=スタートメニューのショートカットが作成されます。
jpn.NoKaM=インストールウィザードが"Knights and Merchants: The Peasants Rebellion"をインストールしていないの検出されました。KAM リメイクがフレーされるにはオリジナルのゲームはインストールしてはいけません。インストールは中止されました。
jpn.CantUpdate=インストールウィザードは既存のKAMリメイクバージョンが見つかりませんでした。その代わりに全部のインストーラはダウンロートしてインストールしてください。インストールは中止されました。
jpn.OpenAL=インストールウィザードがOpenALをインストールしたいですか「強い推奨」。KAM リメイクの音楽などを聞くと必要です。
jpn.ViewReadme=Readmeが表示されます。

;Turkish
tur.CreateStartShortcut=Başlat menüsü kısayolu oluştur.
tur.NoKaM=Kurulum sihirbazı orijinal Knights and Merchants: The Peasants Rebellion oyununun kurulu olmadığını tespit etti. KaM Remake modunu oynayabilmek için orijinal oyuna sahip olmanız gerekmektedir.%n%nKurulum sihirbazı kapanacaktır.
tur.CantUpdate=Kurulum sihirbazı herhangi bir kurulu KaM Remake versiyonu bulamadı. Lütfen complete installer indirerek kurulum yapınız.%n%nKurulum sihirbazı kapanacaktır.
tur.OpenAL=Kurulum sihirbazının OpenAL kurmasını ister misiniz? (Tavsiye edilir) Seslerin oyun içinde çalışması için gereklidir.
tur.ViewReadme=Beni oku dosyasını aç

;Korean
kor.CreateStartShortcut=시작 메뉴 단축 아이콘 만들기
kor.NoKaM=설치 마법사가 '기사와 상인:농민의 반란'이 설치가 안된것으로 확인되었습니다. '기사와 상인 다시만듬'을 실행하기 위해서는 반드시 원본 게임이 설치되어 있어야 합니다. 설치가 중단 됩니다.
kor.CantUpdate=설치 마법사가 갱신할 '기사와 상인 다시만듬'의 기존 버전을 찾을 수 없습니다. 전체 설치 프로그램 대신에 다운로드하여 설치 해주십시오. 설치가 중단 됩니다.
kor.OpenAL=OpenAL을 설치하기위해 설치 마법사가 필요합니까? (강력하게 추천함) '기사와 상인 다시만듬'에서 소리를 작동하는데 필요합니다.
kor.ViewReadme=읽어보기

;Serbian
srb.CreateStartShortcut=Направите Старт Мену Пречицу
srb.NoKaM=Инсталациони чаробњак је приметио да немате Knights and Merchants: The Peasants Rebellion инсталирано. Морате имати оригиналну игру инсталирану да бисте играли KaM Remake.%n%nИнсталације ће престати са радом.
srb.CantUpdate=Инсталациони чаробњак није могао да нађе постојећу верзију KaM Remake да се усавремени. Молимо вас скините и инсталирајте комплетан инсталер уместо тога.%n%nИнсталација ће престати са радом.
srb.OpenAL=Да ли желите да вам инсталациони чаробњакисталира OpenAL? (Врло препоручљиво) Потребно је да бих ѕвукови радили у KaM Remake.
srb.ViewReadme=Прочитајте Реадме

;Chinese
chn.CreateStartShortcut=创建开始菜单快捷方式
chn.NoKaM=安装向导检测到没有《骑士与商人之农民起义》的安装。为了能玩重制版游戏，必须先安装原版游戏。本安装程序将被终止。
chn.CantUpdate=安装向导无法找到一个存在的重制版能够被升级。请重新下载并安装完整的安装包。本安装程序将被终止。
chn.OpenAL=你想用安装向导来安装OpenAL吗？（强烈推荐）这是音效文件运行的必需程序。
chn.ViewReadme=查看自述文件

;Slovenian
slv.CreateStartShortcut=Ustvari bljižnico na meniju
slv.NoKaM=Čarovnik za namestitev je zaznal da nimate nameščeno igro Knights and Merchants: The Peasants Rebellion. Morate imeti nameščeno originalno igro če želite igrati KaM Remake.%n%nNamestitev bo prekinjena
slv.OpenAL=Ali želite namestiti OpenAL? (Močno priporočeno) potrebno je za elovanje zvokov v igri KaM Remake.
slv.ViewReadme=Poglej si opis

;Finnish
fin.CreateStartShortcut=Luo käynnistysvalikon pikakuvake
fin.NoKaM=Asennusohjelma ei havainnut olemassaolevaa asennusta pelistä Knights and Merchants: The Peasants Rebellion. Sinulla täytyy olla alkuperäinen peli asennettuna jotta voit asentaa KaM Remaken.%n%nAsennus keskeytetään
fin.SteamFirstRun=Alkuperäinen KaM-asennus Steamista täytyy käynnistää kerran ennenkuin KMR-asennusohjelma pystyy löytämään ja varmistamaan sen.
fin.CantUpdate=Asennusohjelma ei löytänyt olemassa olevaa versiota Kam Remakesta päivitystä varten. Lataa ja asenna koko asennusohjelma.%n%nAsennus keskeytetään
fin.OpenAL=Haluatko että asennusohjelma asentaa OpenAL:in? (Vahva suositus) Tämä vaaditaan jotta äänet toimisivat.
fin.ViewReadme=Tarkastele LueMinut
fin.DeleteSaves=Haluatko varmasti poistaa tallennuksesi ja etenemisesi kaikista kampanjoista?
fin.DeleteMaps=Haluatko varmasti poistaa kaikki Kartat ja Kampanjat?


v1.0 installer, now includes vs2012 redist.

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{A1E1F8D8-BEA1-44A0-90DD-ECB5DF59A082}
AppName=Soundbounce
AppVersion=1.0
;AppVerName=Soundbounce 0.9
AppPublisher=soundbounce.org
AppPublisherURL=http://soundbounce.org
AppSupportURL=http://soundbounce.org
AppUpdatesURL=http://soundbounce.org
DefaultDirName={pf}\Soundbounce
DefaultGroupName=Soundbounce
DisableProgramGroupPage=yes
OutputBaseFilename=soundbounce-setup
SetupIconFile=D:\Dropbox\soundbounce\src\resources\Icon\SoundBounce-new.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

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

[Files]
;Source: "D:\Dropbox\soundbounce\src\SoundBounce.WindowsClient\bin\x86\Debug\Soundbounce.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Dropbox\soundbounce\src\SoundBounce.WindowsClient\bin\x86\Debug\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Soundbounce"; Filename: "{app}\Soundbounce.exe"
Name: "{commondesktop}\Soundbounce"; Filename: "{app}\Soundbounce.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\Soundbounce.exe"; Description: "{cm:LaunchProgram,Soundbounce}"; Flags: nowait postinstall skipifsilent

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{A1E1F8D8-BEA1-44A0-90DD-ECB5DF59A082}
AppName=Soundbounce
AppVersion=0.9
;AppVerName=Soundbounce 0.9
AppPublisher=soundbounce.org
AppPublisherURL=http://soundbounce.org
AppSupportURL=http://soundbounce.org
AppUpdatesURL=http://soundbounce.org
DefaultDirName={pf}\Soundbounce
DefaultGroupName=Soundbounce
DisableProgramGroupPage=yes
OutputBaseFilename=soundbounce-setup
SetupIconFile=D:\Dropbox\soundbounce\src\resources\Icon\SoundBounce-new.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

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

[Files]
;Source: "D:\Dropbox\soundbounce\src\SoundBounce.WindowsClient\bin\x86\Debug\Soundbounce.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Dropbox\soundbounce\src\SoundBounce.WindowsClient\bin\x86\Debug\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Soundbounce"; Filename: "{app}\Soundbounce.exe"
Name: "{commondesktop}\Soundbounce"; Filename: "{app}\Soundbounce.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\Soundbounce.exe"; Description: "{cm:LaunchProgram,Soundbounce}"; Flags: nowait postinstall skipifsilent