Przeglądaj źródła

Merge branch 'main' into jensg-maxmemos12

# Conflicts:
#	Projects/CompForm.pas
Martijn Laan 1 rok temu
rodzic
commit
9f7520ff77
100 zmienionych plików z 3873 dodań i 3078 usunięć
  1. 70 5
      .github/workflows/build.yml
  2. 3 3
      CONTRIBUTING.md
  3. 1 1
      Components/UniPs
  4. 1 0
      Examples/CodeDownloadFiles.iss
  5. 2 2
      Files/ISPPBuiltins.iss
  6. 1 1
      Files/Languages/Catalan.isl
  7. 38 37
      Files/Languages/Corsican.isl
  8. 2 2
      Files/Languages/Hungarian.isl
  9. 391 0
      Files/Languages/Korean.isl
  10. 100 100
      Files/Languages/Turkish.isl
  11. 2 1
      Files/Languages/Unofficial/Afrikaans.isl
  12. 286 252
      Files/Languages/Unofficial/Belarusian.isl
  13. 13 13
      Files/Languages/Unofficial/ChineseSimplified.isl
  14. 1 1
      Files/Languages/Unofficial/EnglishBritish.isl
  15. 0 389
      Files/Languages/Unofficial/Korean.isl
  16. 263 239
      Files/Languages/Unofficial/Latvian.isl
  17. 61 13
      Files/Languages/Unofficial/Romanian.isl
  18. 384 336
      Files/Languages/Unofficial/Thai.isl
  19. 102 0
      ISHelp/ISHelpGen/ISHelpGen.dproj
  20. 1 1
      ISHelp/ISHelpGen/compile.bat
  21. 2 2
      ISHelp/compile.bat
  22. 30 12
      ISHelp/isetup.xml
  23. 1 0
      ISHelp/isxclasses.pas
  24. 31 11
      ISHelp/isxfunc.xml
  25. 40 2
      Projects/CompExeUpdate.pas
  26. 114 0
      Projects/CompFilesDesigner.dfm
  27. 60 0
      Projects/CompFilesDesigner.pas
  28. 23 16
      Projects/CompForm.dfm
  29. 83 29
      Projects/CompForm.pas
  30. 8 10
      Projects/CompFunc.pas
  31. 2 2
      Projects/CompMsgBoxDesigner.dfm
  32. 23 23
      Projects/CompMsgBoxDesigner.pas
  33. 4 3
      Projects/CompScintEdit.pas
  34. 1 8
      Projects/CompWizard.dfm
  35. 9 162
      Projects/CompWizard.pas
  36. 229 0
      Projects/CompWizardFilesHelper.pas
  37. 0 0
      Projects/Compil32.docicon.res
  38. 0 75
      Projects/Compil32.dof
  39. 13 11
      Projects/Compil32.dpr
  40. 153 150
      Projects/Compil32.dproj
  41. BIN
      Projects/Compil32.versionandicon.res
  42. 19 8
      Projects/Compile.pas
  43. 28 0
      Projects/Debug.iss
  44. 5 2
      Projects/DotNet.pas
  45. 24 12
      Projects/FileClass.pas
  46. 0 75
      Projects/ISCC.dof
  47. 9 9
      Projects/ISCC.dpr
  48. 109 112
      Projects/ISCC.dproj
  49. BIN
      Projects/ISCC.versionandicon.res
  50. 0 75
      Projects/ISCmplr.dof
  51. 7 7
      Projects/ISCmplr.dpr
  52. 131 129
      Projects/ISCmplr.dproj
  53. 0 0
      Projects/ISCmplr.images.res
  54. BIN
      Projects/ISCmplr.res
  55. BIN
      Projects/ISCmplr.version.res
  56. 2 2
      Projects/ISPP/Help/compile.bat
  57. 0 136
      Projects/ISPP/ISPP.dof
  58. 6 7
      Projects/ISPP/ISPP.dpr
  59. 131 0
      Projects/ISPP/ISPP.dproj
  60. BIN
      Projects/ISPP/ISPP.res
  61. BIN
      Projects/ISPP/ISPP.version.res
  62. 110 17
      Projects/Install.pas
  63. 64 69
      Projects/Main.pas
  64. 108 0
      Projects/Projects.groupproj
  65. 1 0
      Projects/ScriptClasses_C.pas
  66. 1 0
      Projects/ScriptClasses_R.pas
  67. 11 1
      Projects/ScriptDlg.pas
  68. 6 3
      Projects/ScriptFunc.pas
  69. 0 1
      Projects/ScriptFunc_C.pas
  70. 12 4
      Projects/ScriptFunc_R.pas
  71. 6 6
      Projects/SelFolderForm.pas
  72. 0 45
      Projects/Setup.dof
  73. 8 12
      Projects/Setup.dpr
  74. 174 175
      Projects/Setup.dproj
  75. 0 0
      Projects/Setup.icon.res
  76. 0 0
      Projects/Setup.images.res
  77. 0 0
      Projects/Setup.version.rc
  78. 0 0
      Projects/Setup.version.res
  79. 0 45
      Projects/SetupLdr.dof
  80. 8 8
      Projects/SetupLdr.dpr
  81. 116 118
      Projects/SetupLdr.dproj
  82. 0 0
      Projects/SetupLdr.offsettable.res
  83. BIN
      Projects/SetupLdr.res
  84. 0 0
      Projects/SetupLdr.version.rc
  85. 0 0
      Projects/SetupLdr.version.res
  86. 1 0
      Projects/SetupSectionDirectives.pas
  87. 0 3
      Projects/SetupTypes.pas
  88. 0 37
      Projects/SetupVersion.rc
  89. BIN
      Projects/SetupVersion.res
  90. 3 3
      Projects/Struct.pas
  91. 9 0
      Projects/Version.inc
  92. 1 0
      Projects/XPTheme.manifest
  93. BIN
      Projects/XPTheme.res
  94. 52 33
      README.md
  95. 115 0
      build-ce.bat
  96. 2 1
      build.bat
  97. 1 1
      compile.bat
  98. 2 2
      license.txt
  99. 4 4
      setup.iss
  100. 39 4
      whatsnew.htm

+ 70 - 5
.github/workflows/build.yml

@@ -12,7 +12,7 @@ jobs:
     if: contains(github.event.repository.topics, 'has-issrc-build-env')
     runs-on: windows-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
       - name: initialize build environment
@@ -51,6 +51,7 @@ jobs:
       - name: build issrc
         run: |
           "set DELPHIXEROOT=$env:DELPHIXEROOT" | Out-File -NoNewline -Encoding ascii compilesettings.bat
+          "set DELPHIXEROOT=$env:DELPHIXEROOT" | Out-File -NoNewline -Encoding ascii ISHelp\ISHelpGen\compilesettings.bat
           "set HHCEXE=%ProgramFiles(x86)%\HTML Help Workshop\hhc.exe" | Out-File -NoNewline -Encoding ascii ISHelp\compilesettings.bat
           "set HHCEXE=%ProgramFiles(x86)%\HTML Help Workshop\hhc.exe" | Out-File -NoNewline -Encoding ascii Projects\ISPP\Help\compilesettings.bat
           .\build.bat
@@ -65,22 +66,86 @@ jobs:
           copy license.txt Projects/ISPP/Help/Staging
           copy license.txt ISHelp/Staging
       - name: upload Files
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: Files
           path: Files
       - name: upload installer
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: Output
           path: Output
       - name: upload ISPP/Help
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: Help
           path: Projects/ISPP/Help/Staging
       - name: upload ISHelp
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: ISHelp
           path: ISHelp/Staging
+      - name: find mt.exe
+        shell: bash
+        run: |
+          set -x &&
+          mt=$(ls -t /c/Program\ Files*/Windows\ Kits/10/bin/*/x64/mt.exe) &&
+          test -n "$mt" &&
+          echo "${mt%%/mt.exe*}" >>$GITHUB_PATH
+      - name: verify MinVersion=6.0 (to support Vista)
+        shell: bash
+        run: |
+          set -x &&
+          sed '/^\[Setup\]/a\
+          MinVersion=6.0\
+          OutputBaseFilename=mysetup-vista
+          ' <setup.iss >setup-vista.iss &&
+          files/ISCC.exe setup-vista.iss &&
+          mt '-inputresource:Output\mysetup-vista.exe' -out:mysetup-vista.manifest &&
+          cat mysetup-vista.manifest
+      - name: verify installer
+        shell: bash
+        run: |
+          set -x &&
+          ver="$(sed -n 's/^set VER=//p' <build.bat)" &&
+          mt '-inputresource:Output\innosetup-'$ver.exe -out:innosetup-$ver.manifest &&
+          cat innosetup-$ver.manifest &&
+          mkdir -p Output/innosetup-$ver.exe.Local &&
+          cp -R "$(cygpath -au "$SYSTEMROOT")"/WinSxS/x86_microsoft.windows.common-controls_* Output/innosetup-$ver.exe.Local/ &&
+          mkdir Output/innosetup-$ver.en-US &&
+          mkdir Output/innosetup-$ver.en &&
+          mkdir Output/innosetup-$ver.ENU &&
+          mkdir -p trace &&
+          echo "$ver" >trace/ver &&
+          curl -LO https://download.sysinternals.com/files/ProcessMonitor.zip &&
+          unzip ProcessMonitor.zip &&
+          # Need to start the background process via PowerShell because it would
+          # block for some reason if started as a Bash background process.
+          powershell -command 'start-process -NoNewWindow -FilePath .\Procmon.exe -ArgumentList "-AcceptEula -Quiet -BackingFile trace/procmon.pml -RunTime 60"' &&
+          test $? = 0 &&
+          ps -W &&
+          ./Procmon.exe -AcceptEula -WaitForIdle &&
+          ./Output/innosetup-$ver.exe //verysilent //dir=InnoSetup //noicons \
+            //tasks= //portable=1 &&
+          test -x InnoSetup/ISCC.exe &&
+          ./Procmon.exe -Terminate -Quiet &&
+          powershell -command 'start-process -NoNewWindow -Wait -FilePath .\Procmon.exe -ArgumentList "-OpenLog trace\procmon.pml -SaveAs trace\procmon.csv"'
+      - name: upload trace
+        uses: actions/upload-artifact@v3
+        with:
+          name: trace
+          path: trace
+      - name: check trace
+        shell: bash
+        run: |
+          set -x &&
+          curdir="$(cygpath -aw Output | sed 's/\\/&&/g')" &&
+          ver="$(sed 's/\./\\&/g' <trace/ver)" &&
+          sed -ne '/"'$curdir'\\innosetup-'$ver'\.\(exe\|exe\.Config\|en-US\|en\|ENU\|EN\)"/d' -e '/"'$curdir'\\/p' \
+            trace/procmon.csv >trace/filtered.csv &&
+          if test -s trace/filtered.csv
+          then
+            echo ":error:Unexpected filesystem access" >&2
+            cat trace/filtered.csv >&2
+            exit 1
+          fi

+ 3 - 3
CONTRIBUTING.md

@@ -1,8 +1,8 @@
 Inno Setup
 ==========
 
-Copyright (C) 1997-2022 Jordan Russell. All rights reserved.  
-Portions Copyright (C) 2000-2022 Martijn Laan. All rights reserved.  
+Copyright (C) 1997-2024 Jordan Russell. All rights reserved.  
+Portions Copyright (C) 2000-2024 Martijn Laan. All rights reserved.  
 For conditions of distribution and use, see LICENSE.TXT.
 
 Contributing issues
@@ -45,7 +45,7 @@ branches and make pull requests. In detail:
     clear title and description. Please include your name and email address if
 	  you are contributing a translation.
 
-10. Bask in the eternal glory of being an Inno Setup contributor :)
+10. Sign our [Contributor License Agreement](https://gist.github.com/c6a4b3ca5e370d65b49746df848e12a2) when asked.
 
 If you don't have the Git client (`git`), get it from:
 

+ 1 - 1
Components/UniPs

@@ -1 +1 @@
-Subproject commit 7c999f8e8b29139cea4cc8e0a00a2551d467137d
+Subproject commit cb4a077428e9b1daeb1653b08d297200bd21e4bb

+ 1 - 0
Examples/CodeDownloadFiles.iss

@@ -44,6 +44,7 @@ function NextButtonClick(CurPageID: Integer): Boolean;
 begin
   if CurPageID = wpReady then begin
     DownloadPage.Clear;
+    // Use AddEx to specify a username and password
     DownloadPage.Add('https://jrsoftware.org/download.php/is.exe', 'innosetup-latest.exe', '');
     DownloadPage.Add('https://jrsoftware.org/download.php/iscrypt.dll', 'ISCrypt.dll', '2f6294f9aa09f59a574b5dcd33be54e16b39377984f3d5658cda44950fa0f8fc');
     DownloadPage.Show;

+ 2 - 2
Files/ISPPBuiltins.iss

@@ -1,7 +1,7 @@
 // Inno Setup Preprocessor
 //
-// Inno Setup (C) 1997-2022 Jordan Russell. All Rights Reserved.
-// Portions Copyright (C) 2000-2022 Martijn Laan. All Rights Reserved.
+// Inno Setup (C) 1997-2024 Jordan Russell. All Rights Reserved.
+// Portions Copyright (C) 2000-2024 Martijn Laan. All Rights Reserved.
 // Portions Copyright (C) 2001-2004 Alex Yackimoff. All Rights Reserved.
 //
 // See the ISPP help file for more documentation of the functions defined by this file

+ 1 - 1
Files/Languages/Catalan.isl

@@ -1,6 +1,6 @@
 ; *** Inno Setup version 6.1.0+ Catalan messages ***
 ;
-; Translated by Carles Millan (email: [email protected])
+; Translated by Carles Millan (email: carles24@carlesmillan.cat)
 ;
 ; To download user-contributed translations of this file, go to:
 ;   https://jrsoftware.org/files/istrans/

+ 38 - 37
Files/Languages/Corsican.isl

@@ -8,11 +8,12 @@
 ; Setup adds the periods automatically (appending a period would result in
 ; two periods being displayed).
 
-; Created and maintained by Patriccollu di Santa Maria è Sichè
+; Created and maintained by Patriccollu di Santa Maria è Sichè, 2011-2024
 ; Schedariu di traduzzione in lingua corsa da Patriccollu
 ; E-mail: Patrick.Santa-Maria[at]LaPoste.Net
 ;
 ; Changes:
+; February 11th, 2024 - Changes to current version 6.1.0+
 ; November 14th, 2020 - Changes to current version 6.1.0+
 ; July 25th, 2020 - Update to version 6.1.0+
 ; July 1st, 2020 - Update to version 6.0.6+
@@ -74,7 +75,7 @@ OnlyOnTheseArchitectures=Stu prugramma pò solu esse installatu nant’à e vers
 WinVersionTooLowError=Stu prugramma richiede %1 versione %2 o più recente.
 WinVersionTooHighError=Stu prugramma ùn pò micca esse installatu nant’à %1 version %2 o più recente.
 AdminPrivilegesRequired=Ci vole à esse cunnettu cum’è un amministratore quandu voi installate stu prugramma.
-PowerUserPrivilegesRequired=Ci vole à esse cunnettu cum’è un amministratore o fà parte di u gruppu « Utilizatori cù putere » quandu voi installate stu prugramma.
+PowerUserPrivilegesRequired=Ci vole à esse cunnettu cum’è un amministratore o fà parte di u gruppu « Utilizatori cù putere » quandu voi installate stu prugramma.
 SetupAppRunningError=L’assistente hà vistu chì %1 era dighjà in corsu.%n%nCi vole à chjode tutte e so finestre avà, eppò sceglie Vai per cuntinuà, o Abbandunà per compie.
 UninstallAppRunningError=A disinstallazione hà vistu chì %1 era dighjà in corsu.%n%nCi vole à chjode tutte e so finestre avà, eppò sceglie Vai per cuntinuà, o Abbandunà per compie.
 
@@ -89,8 +90,8 @@ PrivilegesRequiredOverrideCurrentUser=Installazione solu per &mè
 PrivilegesRequiredOverrideCurrentUserRecommended=Installazione solu per &mè (ricumandatu)
 
 ; *** Misc. errors
-ErrorCreatingDir=L’assistente ùn hà micca pussutu creà u cartulare « %1 »
-ErrorTooManyFilesInDir=Impussibule di creà un schedariu in u cartulare « %1 » perchè ellu ne cuntene troppu
+ErrorCreatingDir=L’assistente ùn hà micca pussutu creà u cartulare « %1 »
+ErrorTooManyFilesInDir=Impussibule di creà un schedariu in u cartulare « %1 » perchè ellu ne cuntene troppu
 
 ; *** Setup common messages
 ExitSetupTitle=Compie l’assistente
@@ -107,10 +108,10 @@ ButtonNext=&Seguente >
 ButtonInstall=&Installà
 ButtonOK=Vai
 ButtonCancel=Abbandunà
-ButtonYes=&
-ButtonYesToAll= per &tutti
-ButtonNo=I&nnò
-ButtonNoToAll=Innò per t&utti
+ButtonYes=&
+ButtonYesToAll= per &tutti
+ButtonNo=&Nò
+ButtonNoToAll=Nò per t&utti
 ButtonFinish=&Piantà
 ButtonBrowse=&Sfuglià…
 ButtonWizardBrowse=&Sfuglià…
@@ -132,11 +133,11 @@ WelcomeLabel1=Benvenuta in l’assistente d’installazione di [name]
 WelcomeLabel2=Quessu installerà [name/ver] nant’à l’urdinatore.%n%nHè ricumandatu di chjode tutte l’altre appiecazioni nanzu di cuntinuà.
 
 ; *** "Password" wizard page
-WizardPassword=Parolla d’entrata
-PasswordLabel1=L’installazione hè prutetta da una parolla d’entrata.
-PasswordLabel3=Ci vole à pruvede a parolla d’entrata, eppò sceglie Seguente per cuntinuà. E parolle d’entrata ponu cuntene maiuscule è minuscule.
-PasswordEditLabel=&Parolla d’entrata :
-IncorrectPassword=A parolla d’entrata pruvista ùn hè micca curretta. Ci vole à pruvà torna.
+WizardPassword=Parolla d’intesa
+PasswordLabel1=L’installazione hè prutetta da una parolla d’intesa.
+PasswordLabel3=Ci vole à pruvede a parolla d’intesa, eppò sceglie Seguente per cuntinuà. E parolle d’intesa ponu cuntene maiuscule è minuscule.
+PasswordEditLabel=&Parolla d’intesa :
+IncorrectPassword=A parolla d’intesa stampittata ùn hè micca curretta. Ci vole à pruvà torna.
 
 ; *** "License Agreement" wizard page
 WizardLicense=Cuntrattu di licenza
@@ -155,11 +156,11 @@ InfoAfterClickLabel=Quandu site prontu à cuntinuà cù l’assistente, sciglite
 
 ; *** "User Information" wizard page
 WizardUserInfo=Infurmazioni di l’utilizatore
-UserInfoDesc=Ci vole à scrive e vostre infurmazioni.
+UserInfoDesc=Ci vole à stampittà e vostre infurmazioni.
 UserInfoName=&Nome d’utilizatore :
 UserInfoOrg=&Urganismu :
-UserInfoSerial=&Numeru di Seria :
-UserInfoNameRequired=Ci vole à scrive un nome.
+UserInfoSerial=&Numeru di seria :
+UserInfoNameRequired=Ci vole à stampittà un nome.
 
 ; *** "Select Destination Location" wizard page
 WizardSelectDir=Selezziunà u locu di destinazione
@@ -170,7 +171,7 @@ DiskSpaceGBLabel=Hè richiestu omancu [gb] Go di spaziu liberu di discu.
 DiskSpaceMBLabel=Hè richiestu omancu [mb] Mo di spaziu liberu di discu.
 CannotInstallToNetworkDrive=L’assistente ùn pò micca installà nant’à un discu di a reta.
 CannotInstallToUNCPath=L’assistente ùn pò micca installà in un chjassu UNC.
-InvalidPath=Ci vole à scrive un chjassu cumplettu cù a lettera di u lettore ; per indettu :%n%nC:\APP%n%no un chjassu UNC in a forma :%n%n\\servitore\spartu
+InvalidPath=Ci vole à stampittà un chjassu cumplettu cù a lettera di u lettore ; per indettu :%n%nC:\APP%n%no un chjassu UNC in a forma :%n%n\\servitore\spartu
 InvalidDrive=U lettore o u chjassu UNC spartu ùn esiste micca o ùn hè micca accessibule. Ci vole à selezziunane un altru.
 DiskSpaceWarningTitle=Ùn basta u spaziu discu
 DiskSpaceWarning=L’assistente richiede omancu %1 Ko di spaziu liberu per installà, ma u lettore selezziunatu hà solu %2 Ko dispunibule.%n%nVulete cuntinuà quantunque ?
@@ -185,13 +186,13 @@ DirDoesntExist=U cartulare :%n%n%1%n%nùn esiste micca. Vulete chì stu cartula
 ; *** "Select Components" wizard page
 WizardSelectComponents=Selezzione di cumpunenti
 SelectComponentsDesc=Chì cumpunenti devenu esse installati ?
-SelectComponentsLabel2=Selezziunà i cumpunenti à installà ; deselezziunà quelli ch’ùn devenu micca esse installati. Sceglie Seguente quandu site prontu à cuntinuà.
+SelectComponentsLabel2=Selezziunà i cumpunenti à installà ; diselezziunà quelli ch’ùn devenu micca esse installati. Sceglie Seguente quandu site prontu à cuntinuà.
 FullInstallation=Installazione sana
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
 CompactInstallation=Installazione cumpatta
 CustomInstallation=Installazione persunalizata
 NoUninstallWarningTitle=Cumpunenti esistenti
-NoUninstallWarning=L’assistente hà vistu chì sti cumpunenti sò dighjà installati nant’à l’urdinatore :%n%n%1%n%nDeselezziunà sti cumpunenti ùn i disinstallerà micca.%n%nVulete cuntinuà quantunque ?
+NoUninstallWarning=L’assistente hà vistu chì sti cumpunenti sò dighjà installati nant’à l’urdinatore :%n%n%1%n%nDiselezziunà sti cumpunenti ùn i disinstallerà micca.%n%nVulete cuntinuà quantunque ?
 ComponentSize1=%1 Ko
 ComponentSize2=%1 Mo
 ComponentsDiskSpaceGBLabel=A selezzione attuale richiede omancu [gb] Go di spaziu liberu nant’à u discu.
@@ -203,15 +204,15 @@ SelectTasksDesc=Chì trattamenti addizziunali vulete fà ?
 SelectTasksLabel2=Selezziunà i trattamenti addizziunali chì l’assistente deve fà durante l’installazione di [name], eppò sceglie Seguente.
 
 ; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Selezzione di u cartulare di u listinu « Démarrer »
+WizardSelectProgramGroup=Selezzione di u cartulare di u listinu « Démarrer »
 SelectStartMenuFolderDesc=Induve l’assistente deve piazzà l’accurtatoghji di u prugramma ?
-SelectStartMenuFolderLabel3=L’assistente piazzerà l’accurtatoghji di u prugramma in stu cartulare di u listinu « Démarrer ».
+SelectStartMenuFolderLabel3=L’assistente piazzerà l’accurtatoghji di u prugramma in stu cartulare di u listinu « Démarrer ».
 SelectStartMenuFolderBrowseLabel=Per cuntinuà, sceglie Seguente. S’è voi preferisce selezziunà un altru cartulare, sciglite Sfuglià.
-MustEnterGroupName=Ci vole à scrive un nome di cartulare.
+MustEnterGroupName=Ci vole à stampittà un nome di cartulare.
 GroupNameTooLong=U nome di cartulare o u chjassu hè troppu longu.
 InvalidGroupName=U nome di cartulare ùn hè micca accettevule.
 BadGroupName=U nome di u cartulare ùn pò micca cuntene alcunu di sti caratteri :%n%n%1
-NoProgramGroupCheck2=Ùn creà &micca di cartulare in u listinu « Démarrer »
+NoProgramGroupCheck2=Ùn creà &micca di cartulare in u listinu « Démarrer »
 
 ; *** "Ready to Install" wizard page
 WizardReady=Prontu à Installà
@@ -222,13 +223,13 @@ ReadyMemoUserInfo=Infurmazioni di l’utilizatore :
 ReadyMemoDir=Cartulare d’installazione :
 ReadyMemoType=Tipu d’installazione :
 ReadyMemoComponents=Cumpunenti selezziunati :
-ReadyMemoGroup=Cartulare di u listinu « Démarrer » :
+ReadyMemoGroup=Cartulare di u listinu « Démarrer » :
 ReadyMemoTasks=Trattamenti addizziunali :
 
 ; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
 DownloadingLabel=Scaricamentu di i schedarii addiziunali…
 ButtonStopDownload=&Piantà u scaricamentu
-StopDownload=Site sicuru di vulè piantà u scaricamentu ?
+StopDownload=Da veru, vulete piantà u scaricamentu ?
 ErrorDownloadAborted=Scaricamentu interrottu
 ErrorDownloadFailed=Scaricamentu fiascu : %1 %2
 ErrorDownloadSizeFailed=Fiascu per ottene a dimensione : %1 %2
@@ -270,9 +271,9 @@ RunEntryShellExec=Fighjà %1
 
 ; *** "Setup Needs the Next Disk" stuff
 ChangeDiskTitle=L’assistente hà bisogniu di u discu seguente
-SelectDiskLabel2=Mette u discu %1 è sceglie Vai.%n%nS’è i schedarii di stu discu si trovanu in un’altru cartulare chì quellu indicatu inghjò, scrive u chjassu currettu o sceglie Sfuglià.
+SelectDiskLabel2=Mette u discu %1 è sceglie Vai.%n%nS’è i schedarii di stu discu si trovanu in un’altru cartulare chè quellu affissatu inghjò, stampittà u chjassu currettu o sceglie Sfuglià.
 PathLabel=&Chjassu :
-FileNotInDir2=U schedariu « %1 » ùn si truva micca in « %2 ». Mette u discu curretu o sceglie un’altru cartulare.
+FileNotInDir2=U schedariu « %1 » ùn si truva micca in « %2 ». Mette u discu curretu o sceglie un’altru cartulare.
 SelectDirectoryLabel=Ci vole à specificà induve si trova u discu seguente.
 
 ; *** Installation phase messages
@@ -298,8 +299,8 @@ StatusRollback=Annulazione di i mudificazioni…
 ; *** Misc. errors
 ErrorInternal2=Sbagliu internu : %1
 ErrorFunctionFailedNoCode=Fiascu di %1
-ErrorFunctionFailed=Fiascu di %1 ; codice %2
-ErrorFunctionFailedWithMessage=Fiascu di %1 ; codice %2.%n%3
+ErrorFunctionFailed=Fiascu di %1 ; codice %2
+ErrorFunctionFailedWithMessage=Fiascu di %1 ; codice %2.%n%3
 ErrorExecutingProgram=Impussibule d’eseguisce u schedariu :%n%1
 
 ; *** Registry errors
@@ -308,13 +309,13 @@ ErrorRegCreateKey=Sbagliu durante a creazione di a chjave di registru :%n%1\%2
 ErrorRegWriteKey=Sbagliu durante a scrittura di a chjave di registru :%n%1\%2
 
 ; *** INI errors
-ErrorIniEntry=Sbagliu durante a creazione di l’elementu INI in u schedariu « %1 ».
+ErrorIniEntry=Sbagliu durante a creazione di l’elementu INI in u schedariu « %1 ».
 
 ; *** File copying errors
 FileAbortRetryIgnoreSkipNotRecommended=Ignurà stu &schedariu (micca ricumandatu)
 FileAbortRetryIgnoreIgnoreNotRecommended=&Ignurà u sbagliu è cuntinuà (micca ricumandatu)
 SourceIsCorrupted=U schedariu d’urigine hè alteratu
-SourceDoesntExist=U schedariu d’urigine « %1 » ùn esiste micca
+SourceDoesntExist=U schedariu d’urigine « %1 » ùn esiste micca
 ExistingFileReadOnly2=U schedariu esistente hà un attributu di lettura-sola è ùn pò micca esse rimpiazzatu.
 ExistingFileReadOnlyRetry=&Caccià l’attributu di lettura-sola è pruvà torna
 ExistingFileReadOnlyKeepExisting=Cunservà u schedariu &esistente
@@ -325,7 +326,7 @@ FileExistsOverwriteExisting=&Rimpiazzà u schedariu chì esiste
 FileExistsKeepExisting=Cunservà u schedariu &esistente
 FileExistsOverwriteOrKeepAll=&Fà què per l’altri cunflitti
 ExistingFileNewerSelectAction=Selezziunate un’azzione
-ExistingFileNewer2=U schedariu esistente hè più recente chì quellu chì l’assistente prova d’installà.
+ExistingFileNewer2=U schedariu esistente hè più recente chè quellu chì l’assistente prova d’installà.
 ExistingFileNewerOverwriteExisting=&Rimpiazzà u schedariu chì esiste
 ExistingFileNewerKeepExisting=Cunservà u schedariu &esistente (ricumandatu)
 ExistingFileNewerOverwriteOrKeepAll=&Fà què per l’altri cunflitti
@@ -355,18 +356,18 @@ ErrorOpeningReadme=Un sbagliu hè accadutu pruvendu d’apre u schedariu LISEZMO
 ErrorRestartingComputer=L’assistente ùn hà micca pussutu ridimarrà l’urdinatore. Ci vole à fallu manualmente.
 
 ; *** Uninstaller messages
-UninstallNotFound=U schedariu « %1 » ùn esiste micca. Impussibule di disinstallà.
-UninstallOpenError=U schedariu« %1 » ùn pò micca esse apertu. Impussibule di disinstallà
-UninstallUnsupportedVer=U ghjurnale di disinstallazione « %1 » hè in una forma scunnisciuta da sta versione di l’assistente di disinstallazione. Impussibule di disinstallà
+UninstallNotFound=U schedariu « %1 » ùn esiste micca. Impussibule di disinstallà.
+UninstallOpenError=U schedariu « %1 » ùn pò micca esse apertu. Impussibule di disinstallà
+UninstallUnsupportedVer=U ghjurnale di disinstallazione « %1 » hè in una forma scunnisciuta da sta versione di l’assistente di disinstallazione. Impussibule di disinstallà
 UninstallUnknownEntry=Un elementu scunisciutu (%1) hè statu trovu in u ghjurnale di disinstallazione
-ConfirmUninstall=Site sicuru di vulè caccià cumpletamente %1 è tutti i so cumpunenti ?
+ConfirmUninstall=Da veru, vulete caccià cumpletamente %1 è tutti i so cumpunenti ?
 UninstallOnlyOnWin64=St’appiecazione pò esse disinstallata solu cù una versione 64-bit di Windows.
 OnlyAdminCanUninstall=St’appiecazione pò esse disinstallata solu da un utilizatore di u gruppu d’amministratori.
 UninstallStatusLabel=Ci vole à aspettà chì %1 sia cacciatu di l’urdinatore.
 UninstalledAll=%1 hè statu cacciatu bè da l’urdinatore.
 UninstalledMost=A disinstallazione di %1 hè compia.%n%nQualchì elementu ùn pò micca esse cacciatu. Ci vole à cacciallu manualmente.
 UninstalledAndNeedsRestart=Per compie a disinstallazione di %1, l’urdinatore deve esse ridimarratu.%n%nVulete ridimarrà l’urdinatore subitu ?
-UninstallDataCorrupted=U schedariu « %1 » hè alteratu. Impussibule di disinstallà
+UninstallDataCorrupted=U schedariu « %1 » hè alteratu. Impussibule di disinstallà
 
 ; *** Uninstallation phase messages
 ConfirmDeleteSharedFileTitle=Caccià i schedarii sparti ?

+ 2 - 2
Files/Languages/Unofficial/Hungarian.isl → Files/Languages/Hungarian.isl

@@ -33,7 +33,7 @@ LanguageCodePage=1250
 SetupAppTitle=Telepítő
 SetupWindowTitle=%1 - Telepítő
 UninstallAppTitle=Eltávolító
-UninstallAppFullTitle=%1 Eltávolító
+UninstallAppFullTitle=%1 - Eltávolító
 
 ; *** Misc. common
 InformationTitle=Információk
@@ -227,7 +227,7 @@ ErrorFileSize=Érvénytelen fájlméret, várt méret %1, számított: %2
 ; *** "Preparing to Install" wizard page
 WizardPreparing=Felkészülés a telepítésre
 PreparingDesc=A Telepítő felkészül a(z) [name] számítógépre történő telepítéshez.
-PreviousInstallNotCompleted=gy korábbi program telepítése/eltávolítása nem fejeződött be. Újra kell indítania a számítógépét a másik telepítés befejezéséhez.%n%nA számítógépe újraindítása után ismét futtassa a Telepítőt a(z) [name] telepítésének befejezéséhez.
+PreviousInstallNotCompleted=Egy korábbi program telepítése/eltávolítása nem fejeződött be. Újra kell indítania a számítógépét a másik telepítés befejezéséhez.%n%nA számítógépe újraindítása után ismét futtassa a Telepítőt a(z) [name] telepítésének befejezéséhez.
 CannotContinue=A telepítés nem folytatható. A kilépéshez kattintson a 'Mégse'-re.
 ApplicationsFound=A következő alkalmazások olyan fájlokat használnak, amelyeket a Telepítőnek frissíteni kell. Ajánlott, hogy engedélyezze a Telepítőnek ezen alkalmazások automatikus bezárását.
 ApplicationsFound2=A következő alkalmazások olyan fájlokat használnak, amelyeket a Telepítőnek frissíteni kell. Ajánlott, hogy engedélyezze a Telepítőnek ezen alkalmazások automatikus bezárását. A telepítés befejezése után, a Telepítő megkísérli az alkalmazások újraindítását.

+ 391 - 0
Files/Languages/Korean.isl

@@ -0,0 +1,391 @@
+; *** Inno Setup version 6.1.0+ Korean messages ***
+
+; ▒ 6.2.2+ Translator: VenusGirl ([email protected])
+; ▒ 6.2.0+ Translator: Logan.Hwang ([email protected])
+; ▒ 6.0.3+ Translator: SungDong Kim ([email protected])
+; ▒ 5.5.3+ Translator: Domddol ([email protected])
+; ▒ Contributors: Hansoo KIM ([email protected]), Woong-Jae An ([email protected])
+; ▒ 이 번역은 한국어 맞춤법을 준수합니다.
+;
+; 이 파일의 사용자 제공 번역을 다운로드하려면 다음으로 이동하십시오:
+;   https://jrsoftware.org/files/istrans/
+
+; 참고: 이 텍스트를 번역할 때는 InnoSetup 메시지에
+; 마침표가 자동으로 추가되므로 아직 없는 메시지의 끝에
+; 마침표(.)를 추가하지 마십시오 (마침표를 추가하면
+; 두 개의 마침표가 표시됩니다).
+
+[LangOptions]
+; 다음 세 항목은 매우 중요합니다. 도움말 파일의
+; '[LangOptions] 섹션' 항목을 읽고 이해하십시오.
+LanguageName=한국어
+LanguageID=$0412
+LanguageCodePage=949
+; 번역할 언어가 특수 글꼴 또는 크기를 필요로 하는 경우
+; 다음 항목 중 하나를 주석 해제하고 적절하게 변경하십시오.
+;DialogFontName=
+;DialogFontSize=8
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
+;TitleFontName=Arial
+;TitleFontSize=29
+;CopyrightFontName=Arial
+;CopyrightFontSize=8
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=설치
+SetupWindowTitle=%1 설치
+UninstallAppTitle=제거
+UninstallAppFullTitle=%1 제거
+
+; *** Misc. common
+InformationTitle=정보
+ConfirmTitle=확인
+ErrorTitle=오류
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=%1을(를) 설치합니다, 계속하시겠습니까?
+LdrCannotCreateTemp=임시 파일을 만들 수 없습니다. 설치가 중단되었습니다.
+LdrCannotExecTemp=임시 디렉터리에서 파일을 실행할 수 없습니다. 설치가 중단되었습니다.
+HelpTextNote=
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%n오류 %2: %3
+SetupFileMissing=%1 파일이 설치 디렉터리에 없습니다. 문제를 해결하거나 프로그램의 새 사본을 구하십시오.
+SetupFileCorrupt=설치 파일이 손상되었습니다. 프로그램의 새 사본을 구하십시오.
+SetupFileCorruptOrWrongVer=설치 파일이 손상되었거나 이 버전의 설치 프로그램과 호환되지 않습니다. 문제를 해결하거나 프로그램의 새 복사본을 구하십시오.
+InvalidParameter=명령줄에 잘못된 매개변수가 전달되었습니다:%n%n%1
+SetupAlreadyRunning=설치가 이미 실행 중입니다.
+WindowsVersionNotSupported=이 프로그램은 컴퓨터에서 실행 중인 Windows 버전을 지원하지 않습니다.
+WindowsServicePackRequired=이 프로그램을 사용하려면 %1 서비스 팩 %2 이상이 필요합니다.
+NotOnThisPlatform=이 프로그램은 %1에서 실행되지 않습니다.
+OnlyOnThisPlatform=이 프로그램은 %1에서 실행되어야 합니다.
+OnlyOnTheseArchitectures=이 프로그램은 다음 프로세서 아키텍처용으로 설계된 Windows 버전에만 설치할 수 있습니다:%n%n%1
+WinVersionTooLowError=이 프로그램에는 %1 버전 %2 이상이 필요합니다.
+WinVersionTooHighError=%1 버전 %2 이상에 이 프로그램을 설치할 수 없습니다.
+AdminPrivilegesRequired=이 프로그램을 설치할 때 관리자로 로그인해야 합니다.
+PowerUserPrivilegesRequired=이 프로그램을 설치할 때 관리자 또는 Power Users 그룹의 구성원으로 로그인해야 합니다.
+SetupAppRunningError=설치에서 %1이(가) 현재 실행 중임을 감지했습니다.%n%n지금 모든 인스턴스를 닫은 다음 확인을 클릭하여 계속하거나 취소를 클릭하여 종료하십시오.
+UninstallAppRunningError=제거에서 %1이(가) 현재 실행 중임을 감지했습니다.%n%n지금 모든 인스턴스를 닫은 다음 확인을 클릭하여 계속하거나 취소를 클릭하여 종료하십시오.
+
+; *** Startup questions
+PrivilegesRequiredOverrideTitle=설치 모드 선택
+PrivilegesRequiredOverrideInstruction=설치 모드를 선택해 주십시오
+PrivilegesRequiredOverrideText1=%1은 모든 사용자 (관리자 권한 필요) 또는 사용자용으로 설치합니다.
+PrivilegesRequiredOverrideText2=%1은 현재 사용자 또는 모든 사용자 (관리자 권한 필요)용으로 설치합니다.
+PrivilegesRequiredOverrideAllUsers=모든 사용자용으로 설치(&A)
+PrivilegesRequiredOverrideAllUsersRecommended=모든 사용자용으로 설치 (추천)(&A)
+PrivilegesRequiredOverrideCurrentUser=현재 사용자용으로 설치(&M)
+PrivilegesRequiredOverrideCurrentUserRecommended=현재 사용자용으로 설치 (추천)(&M)
+
+; *** Misc. errors
+ErrorCreatingDir=설치 프로그램에서 "%1" 디렉터리를 만들지 못했습니다.
+ErrorTooManyFilesInDir="%1" 디렉터리에 파일이 너무 많아서 파일을 만들 수 없습니다
+
+; *** Setup common messages
+ExitSetupTitle=설치 종료
+ExitSetupMessage=설치가 완료되지 않았습니다. 지금 종료하면 프로그램이 설치되지 않습니다.%n%n설치를 다시 실행하여 설치를 완료할 수 있습니다.%n%n설치를 종료하시겠습니까?
+AboutSetupMenuItem=설치 정보(&A)...
+AboutSetupTitle=설치 정보
+AboutSetupMessage=%1 버전 %2%n%3%n%n%1 홈 페이지:%n%4
+AboutSetupNote=
+TranslatorNote=
+
+; *** Buttons
+ButtonBack=< 뒤로(&B)
+ButtonNext=다음(&N) >
+ButtonInstall=설치(&I)
+ButtonOK=확인
+ButtonCancel=취소
+ButtonYes=예(&Y)
+ButtonYesToAll=모두 예(&A)
+ButtonNo=아니오(&N)
+ButtonNoToAll=모두 아니오(&O)
+ButtonFinish=마침(&F)
+ButtonBrowse=찾아보기(&B)...
+ButtonWizardBrowse=찾아보기(&R)...
+ButtonNewFolder=새 폴더 만들기(&M)
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=설치 언어 선택
+SelectLanguageLabel=설치 중에 사용할 언어를 선택하십시오.
+
+; *** Common wizard text
+ClickNext=다음을 클릭하여 계속하거나 취소를 클릭하여 설치를 종료합니다.
+BeveledLabel=
+BrowseDialogTitle=폴더 찾아보기
+BrowseDialogLabel=아래 목록에서 폴더를 선택한 후 확인을 클릭하십시오.
+NewFolderName=새 폴더
+
+; *** "Welcome" wizard page
+WelcomeLabel1=[name] 설치 마법사에 오신 것을 환영합니다
+WelcomeLabel2=컴퓨터에 [name/ver]가 설치됩니다.%n%n계속하기 전에 다른 모든 응용 프로그램을 닫는 것이 좋습니다.
+
+; *** "Password" wizard page
+WizardPassword=암호
+PasswordLabel1=이 설치는 암호로 보호됩니다.
+PasswordLabel3=암호를 입력한 후 다음을 클릭하여 계속하십시오. 암호는 대소문자를 구분합니다.
+PasswordEditLabel=암호(&P):
+IncorrectPassword=입력한 암호가 올바르지 않습니다. 다시 시도하십시오.
+
+; *** "License Agreement" wizard page
+WizardLicense=사용권 계약
+LicenseLabel=계속하기 전에 다음 중요한 정보를 읽어보십시오.
+LicenseLabel3=다음 사용권 계약을 읽어보십시오. 설치를 계속하기 전에 이 계약 조건에 동의해야 합니다.
+LicenseAccepted=동의합니다(&A)
+LicenseNotAccepted=동의하지 않습니다(&D)
+
+; *** "Information" wizard pages
+WizardInfoBefore=정보
+InfoBeforeLabel=계속하기 전에 다음 중요한 정보를 읽어보십시오.
+InfoBeforeClickLabel=설치를 계속할 준비가 되었으면 다음을 클릭합니다.
+WizardInfoAfter=정보
+InfoAfterLabel=계속하기 전에 다음 중요한 정보를 읽어보십시오.
+InfoAfterClickLabel=설치를 계속할 준비가 되었으면 다음을 클릭합니다.
+
+; *** "User Information" wizard page
+WizardUserInfo=사용자 정보
+UserInfoDesc=사용자 정보를 입력하십시오.
+UserInfoName=사용자 이름(&U):
+UserInfoOrg=조직(&O):
+UserInfoSerial=일련 번호:(&S):
+UserInfoNameRequired=이름을 입력해야 합니다.
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=대상 위치 선택
+SelectDirDesc=[name]을(를) 어디에 설치하시겠습니까?
+SelectDirLabel3=다음 폴더에 [name]을(를) 설치합니다.
+SelectDirBrowseLabel=계속하려면 다음을 클릭합니다. 다른 폴더를 선택하려면 찾아보기를 클릭합니다.
+DiskSpaceGBLabel=이 프로그램은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
+DiskSpaceMBLabel=이 프로그램은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
+CannotInstallToNetworkDrive=네트워크 드라이브에 설치할 수 없습니다.
+CannotInstallToUNCPath=UNC 경로에 설치할 수 없습니다.
+InvalidPath=드라이브 문자를 포함한 전체 경로를 입력해야 합니다. 예:%n%nC:\APP%n%n 또는 UNC 경로 형식:%n%n\\server\share
+InvalidDrive=선택한 드라이브 또는 UNC 공유가 존재하지 않거나 액세스할 수 없습니다, 다른 경로를 선택하십시오.
+DiskSpaceWarningTitle=디스크 공간이 부족합니다
+DiskSpaceWarning=설치 시 최소 %1 KB 디스크 공간이 필요하지만, 선택한 드라이브의 여유 공간은 %2 KB 밖에 없습니다.%n%n그래도 계속하시겠습니까?
+DirNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
+InvalidDirName=폴더 이름이 유효하지 않습니다.
+BadDirName32=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
+DirExistsTitle=폴더가 존재합니다
+DirExists=폴더 %n%n%1%n%n이(가) 이미 존재합니다, 그래도 해당 폴더에 설치하시겠습니까?
+DirDoesntExistTitle=폴더가 존재하지 않습니다
+DirDoesntExist=폴더 %n%n%1%n%n이(가) 존재하지 않습니다, 폴더를 만드시겠습니까?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=구성 요소 선택
+SelectComponentsDesc=어떤 구성 요소를 설치해야 합니까?
+SelectComponentsLabel2=설치할 구성 요소를 선택하고 설치하지 않을 구성 요소를 지웁니다. 계속할 준비가 되면 다음을 클릭합니다.
+FullInstallation=모두 설치
+; 가능하면 'Compact'를 'Minimal'로 번역하지 마십시오 (귀하의 언어로 '최소'를 의미합니다).
+CompactInstallation=최소 설치
+CustomInstallation=사용자 지정 설치
+NoUninstallWarningTitle=구성 요소가 존재합니다
+NoUninstallWarning=다음 구성 요소가 컴퓨터에 이미 설치되어 있습니다: %n%n%1%n%n이러한 구성 요소를 선택해도 제거되지 않습니다.%n%n계속하시겠습니까?
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceGBLabel=현재 선택은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
+ComponentsDiskSpaceMBLabel=현재 선택은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=추가 작업 선택
+SelectTasksDesc=어떤 추가 작업을 수행해야 합니까?
+SelectTasksLabel2=[name]을(를) 설치하는 동안 수행할 추가 작업을 선택하고 다음을 클릭합니다.
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=시작 메뉴 폴더 선택
+SelectStartMenuFolderDesc=프로그램의 바로가기를 어디에 설치하시겠습니까?
+SelectStartMenuFolderLabel3=설치는 다음 시작 메뉴 폴더에 프로그램 바로가기를 만듭니다.
+SelectStartMenuFolderBrowseLabel=계속하려면 다음을 클릭합니다. 다른 폴더를 선택하려면 찾아보기를 클릭합니다.
+MustEnterGroupName=폴더 이름을 입력하십시오.
+GroupNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
+InvalidGroupName=폴더 이름이 유효하지 않습니다.
+BadGroupName=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
+NoProgramGroupCheck2=시작 메뉴 폴더를 만들지 않음(&D)
+
+; *** "Ready to Install" wizard page
+WizardReady=설치 준비 완료
+ReadyLabel1=[name]을(를) 컴퓨터에 설치할 준비가 되었습니다.
+ReadyLabel2a=설치를 클릭하여 설치를 계속하거나 설정을 검토하거나 변경하려면 뒤로를 클릭합니다.
+ReadyLabel2b=설치를 클릭하여 설치를 계속합니다.
+ReadyMemoUserInfo=사용자 정보:
+ReadyMemoDir=대상 위치:
+ReadyMemoType=설치 유형:
+ReadyMemoComponents=선택한 구성 요소:
+ReadyMemoGroup=시작 메뉴 폴더:
+ReadyMemoTasks=추가 작업:
+
+; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
+DownloadingLabel=추가 파일 다운로드 중...
+ButtonStopDownload=다운로드 중지(&S)
+StopDownload=다운로드를 중지하시겠습니까?
+ErrorDownloadAborted=다운로드가 중지되었습니다
+ErrorDownloadFailed=다운로드에 실패했습니다: %1 %2
+ErrorDownloadSizeFailed=크기를 가져오지 못했습니다: %1 %2
+ErrorFileHash1=파일 해시에 실패했습니다: %1
+ErrorFileHash2=잘못된 파일 해시: 예상 %1, 찾음 %2
+ErrorProgress=잘못된 진행 상황: %1 / %2
+ErrorFileSize=잘못된 파일 크기: 예상 %1, 찾음 %2
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=설치 준비 중
+PreparingDesc=컴퓨터에 [name] 설치를 준비하는 중입니다.
+PreviousInstallNotCompleted=이전 프로그램의 설치/제거가 완료되지 않았습니다. 설치를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n컴퓨터를 재시작한 후 설치를 다시 실행하여 [name] 설치를 완료하십시오.
+CannotContinue=설치를 계속할 수 없습니다. 종료하려면 취소를 클릭하십시오.
+ApplicationsFound=다음 응용 프로그램에서 설치 프로그램에서 업데이트해야 하는 파일을 사용하고 있습니다. 이러한 응용 프로그램을 자동으로 닫도록 허용하는 것이 좋습니다.
+ApplicationsFound2=다음 응용 프로그램에서 설치 프로그램에서 업데이트해야 하는 파일을 사용하고 있습니다. 이러한 응용 프로그램을 자동으로 닫도록 허용하는 것이 좋습니다. 설치가 완료되면 응용 프로그램을 다시 시작하려고 시도합니다.
+CloseApplications=응용 프로그램 자동 닫기(&A)
+DontCloseApplications=응용 프로그램을 닫지 않음(&D)
+ErrorCloseApplications=모든 응용 프로그램을 자동으로 닫지 못했습니다. 계속하기 전에 설치 프로그램에서 업데이트해야 하는 파일을 사용하여 모든 응용 프로그램을 닫는 것이 좋습니다.
+PrepareToInstallNeedsRestart=컴퓨터를 다시 시작해야 합니다. 컴퓨터를 다시 시작한 후 설치를 다시 실행하여 [name] 설치를 완료하십시오.%n%n지금 다시 시작하시겠습니까?
+
+; *** "Installing" wizard page
+WizardInstalling=설치 중
+InstallingLabel=컴퓨터에 [name]을(를) 설치하는 동안 잠시 기다려 주십시오.
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=[name] 설치 마법사 완료
+FinishedLabelNoIcons=컴퓨터에 [name] 설치를 완료했습니다.
+FinishedLabel=컴퓨터에 [name] 설치를 완료했습니다. 설치된 바로가기를 선택하여 응용 프로그램을 시작할 수 있습니다.
+ClickFinish=설치를 종료하려면 마침을 클릭하십시오.
+FinishedRestartLabel=[name] 설치를 완료하려면 컴퓨터를 다시 시작해야 합니다. 지금 다시 시작하시겠습니까?
+FinishedRestartMessage=[name] 설치를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
+ShowReadmeCheck=예, README 파일을 보고 싶습니다.
+YesRadio=예, 지금 컴퓨터를 다시 시작합니다(&Y)
+NoRadio=아니오, 나중에 컴퓨터를 다시 시작하겠습니다(&N)
+; 예를 들어 'Run MyProg.exe'로 사용됩니다'
+RunEntryExec=%1 실행
+; 예를 들어 'Readme.txt 보기'로 사용됩니다'
+RunEntryShellExec=%1 보기
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=설치에 다음 디스크가 필요합니다
+SelectDiskLabel2=디스크 %1을(를) 삽입하고 확인을 클릭하십시오.%n%n이 디스크의 파일을 아래에 표시된 폴더 이외의 폴더에서 찾을 수 있으면 올바른 경로를 입력하거나 찾아보기를 클릭하십시오.
+PathLabel=경로(&P):
+FileNotInDir2="%1" 파일을 "%2"에서 찾을 수 없습니다. 올바른 디스크를 넣거나 다른 폴더를 선택하십시오.
+SelectDirectoryLabel=다음 디스크의 위치를 지정하십시오.
+
+; *** Installation phase messages
+SetupAborted=설치가 완료되지 않았습니다.%n%n문제를 해결한 후 설치를 다시 실행하십시오.
+AbortRetryIgnoreSelectAction=작업 선택
+AbortRetryIgnoreRetry=재시도(&T)
+AbortRetryIgnoreIgnore=오류를 무시하고 진행(&I)
+AbortRetryIgnoreCancel=설치 취소
+
+; *** Installation status messages
+StatusClosingApplications=응용 프로그램을 닫는 중...
+StatusCreateDirs=디렉터리를 만드는 중...
+StatusExtractFiles=파일을 추출하는 중...
+StatusCreateIcons=바로가기를 만드는 중...
+StatusCreateIniEntries=INI 항목을 만드는 중...
+StatusCreateRegistryEntries=레지스트리 항목을 만드는 중...
+StatusRegisterFiles=파일을 등록하는 중...
+StatusSavingUninstall=제거 정보를 저장하는 중...
+StatusRunProgram=설치를 완료하는 중...
+StatusRestartingApplications=응용 프로그램을 다시 시작하는 중...
+StatusRollback=변경 내용을 롤백하는 중...
+
+; *** Misc. errors
+ErrorInternal2=내부 오류: %1
+ErrorFunctionFailedNoCode=%1 실패
+ErrorFunctionFailed=%1 실패; 코드 %2
+ErrorFunctionFailedWithMessage=%1 실패, 코드: %2.%n%3
+ErrorExecutingProgram=파일 실행 오류:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=레지스트리 키 열기 오류:%n%1\%2
+ErrorRegCreateKey=레지스트리 키 생성 오류:%n%1\%2
+ErrorRegWriteKey=레지스트리 키 쓰기 오류:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry="%1" 파일에 INI 항목 만들기 오류입니다.
+
+; *** File copying errors
+FileAbortRetryIgnoreSkipNotRecommended=이 파일 건너뛰기 (추천하지 않음)(&S)
+FileAbortRetryIgnoreIgnoreNotRecommended=오류를 무시하고 계속 (추천하지 않음)(&I)
+SourceIsCorrupted=원본 파일이 손상되었습니다
+SourceDoesntExist=원본 파일 "%1"이(가) 없습니다
+ExistingFileReadOnly2=읽기 전용으로 표시되어 있으므로 기존 파일을 교체할 수 없습니다.
+ExistingFileReadOnlyRetry=읽기 전용 속성을 제거하고 다시 시도(&R)
+ExistingFileReadOnlyKeepExisting=기존 파일 유지(&K)
+ErrorReadingExistingDest=기존 파일을 읽는 동안 오류 발생:
+FileExistsSelectAction=작업 선택
+FileExists2=파일이 이미 존재합니다.
+FileExistsOverwriteExisting=기존 파일 덮어쓰기(&O)
+FileExistsKeepExisting=기존 파일 유지(&K)
+FileExistsOverwriteOrKeepAll=다음 충돌에 대해 이 작업 수행(&D)
+ExistingFileNewerSelectAction=작업 선택
+ExistingFileNewer2=설치 프로그램에서 설치하려는 파일보다 기존 파일이 더 최신입니다.
+ExistingFileNewerOverwriteExisting=기존 파일 덮어쓰기(&O)
+ExistingFileNewerKeepExisting=기존 파일 유지 (추천)(&K)
+ExistingFileNewerOverwriteOrKeepAll=다음 충돌에 대해 이 작업 수행(&D)
+ErrorChangingAttr=기존 파일의 속성을 변경하는 동안 오류 발생:
+ErrorCreatingTemp=대상 디렉터리에 파일을 만드는 동안 오류 발생:
+ErrorReadingSource=원본 파일을 읽는 동안 오류 발생:
+ErrorCopying=파일을 복사하는 동안 오류 발생:
+ErrorReplacingExistingFile=기존 파일을 교체하는 동안 오류 발생:
+ErrorRestartReplace=RestartReplace 실패:
+ErrorRenamingTemp=대상 디렉터리 내의 파일 이름을 바꾸는 동안 오류 발생:
+ErrorRegisterServer=DLL/OCX를 등록할 수 없습니다: %1
+ErrorRegSvr32Failed=종료 코드 %1로 인해 RegSvr32가 실패했습니다
+ErrorRegisterTypeLib=유형 라이브러리를 등록할 수 없습니다: %1
+
+; *** Uninstall display name markings
+; 예를 들어 '내 프로그램'으로 사용됩니다 (32비트)'
+UninstallDisplayNameMark=%1 (%2)비트
+; 예를 들어 '내 프로그램'으로 사용됩니다 (32비트, 모든 사용자)'
+UninstallDisplayNameMarks=%1 (%2, %3)
+UninstallDisplayNameMark32Bit=32비트
+UninstallDisplayNameMark64Bit=64비트
+UninstallDisplayNameMarkAllUsers=모든 사용자
+UninstallDisplayNameMarkCurrentUser=현재 사용자
+
+; *** Post-installation errors
+ErrorOpeningReadme=README 파일을 여는 동안 오류가 발생했습니다.
+ErrorRestartingComputer=컴퓨터를 다시 시작하지 못했습니다. 이 작업을 수동으로 수행하십시오.
+
+; *** Uninstaller messages
+UninstallNotFound="%1" 파일이 없습니다. 제거할 수 없습니다.
+UninstallOpenError="%1" 파일을 열 수 없습니다. 제거할 수 없습니다
+UninstallUnsupportedVer="%1" 제거 로그 파일이 현재 버전의 제거 프로그램에서 인식할 수 없는 형식입니다. 제거할 수 없습니다
+UninstallUnknownEntry=제거 로그에 알 수 없는 항목 (%1)이 있습니다
+ConfirmUninstall=%1 및 해당 구성 요소를 모두 제거하시겠습니까?
+UninstallOnlyOnWin64=이 설치는 64비트 Windows에서만 제거할 수 있습니다.
+OnlyAdminCanUninstall=이 설치는 관리자 권한이 있는 사용자만 제거할 수 있습니다.
+UninstallStatusLabel=%1이(가) 컴퓨터에서 제거되는 동안 기다려 주십시오.
+UninstalledAll=%1이(가) 컴퓨터에서 성공적으로 제거되었습니다.
+UninstalledMost=%1 제거가 완료되었습니다.%n%n일부 요소를 제거할 수 없습니다. 수동으로 제거할 수 있습니다.
+UninstalledAndNeedsRestart=%1 제거를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
+UninstallDataCorrupted="%1" 파일이 손상되었습니다. 제거할 수 없습니다.
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=공유 파일을 제거하시겠습니까?
+ConfirmDeleteSharedFile2=시스템에 다음 공유 파일이 더 이상 어떤 프로그램에서도 사용되지 않는 것으로 표시됩니다. 제거에서 이 공유 파일을 제거하시겠습니까?%n%n이 파일을 계속 사용하고 있고 파일이 제거된 프로그램이 있으면 해당 프로그램이 제대로 작동하지 않을 수 있습니다. 확실하지 않은 경우 아니요를 선택합니다. 파일을 시스템에 남겨두어도 아무런 해가 되지 않습니다.
+SharedFileNameLabel=파일 이름:
+SharedFileLocationLabel=위치:
+WizardUninstalling=제거 상태
+StatusUninstalling=%1을(를) 제거하는 중...
+
+; *** Shutdown block reasons
+ShutdownBlockReasonInstallingApp=%1을(를) 설치하는 중입니다.
+ShutdownBlockReasonUninstallingApp=%1을(를) 제거하는 중입니다.
+
+; 아래 사용자 지정 메시지는 설치 프로그램 자체에서 사용하지 않지만
+; 스크립트에서 사용할 경우 해당 메시지를 번역할 수 있습니다.
+
+[CustomMessages]
+
+NameAndVersion=%1 버전 %2
+AdditionalIcons=바로가기 추가:
+CreateDesktopIcon=바탕 화면에 바로가기 만들기(&D)
+CreateQuickLaunchIcon=빠른 실행 아이콘 만들기(&Q)
+ProgramOnTheWeb=%1 웹페이지
+UninstallProgram=%1 제거
+LaunchProgram=%1 실행
+AssocFileExtension=%1을 %2 파일 확장자에 연결
+AssocingFileExtension=%1을 %2 파일 확장자와 연결하는 중...
+AutoStartProgramGroupDescription=시작:
+AutoStartProgram=%1 자동 시작
+AddonHostProgramNotFound=%1을(를) 선택한 폴더에서 찾을 수 없습니다.%n%n계속하시겠습니까?

+ 100 - 100
Files/Languages/Turkish.isl

@@ -1,7 +1,7 @@
 ; *** Inno Setup version 6.1.0+ Turkish messages ***
 ; Language	"Turkce" Turkish Translate by "Ceviren"	Kaya Zeren [email protected]
 ; To download user-contributed translations of this file, go to:
-;   https://www.jrsoftware.org/files/istrans/
+;   https://jrsoftware.org/files/istrans/
 ;
 ; Note: When translating this text, do not add periods (.) to the end of
 ; messages that didn't have them already, because on those messages Inno
@@ -28,10 +28,10 @@ LanguageCodePage=1254
 [Messages]
 
 ; *** Uygulama başlıkları
-SetupAppTitle=Kurulum Yardımcısı
-SetupWindowTitle=%1 - Kurulum Yardımcısı
-UninstallAppTitle=Kaldırma Yardımcısı
-UninstallAppFullTitle=%1 Kaldırma Yardımcısı
+SetupAppTitle=Kurulum yardımcısı
+SetupWindowTitle=%1 - Kurulum yardımcısı
+UninstallAppTitle=Kaldırma yardımcısı
+UninstallAppFullTitle=%1 kaldırma yardımcısı
 
 ; *** Çeşitli ortak metinler
 InformationTitle=Bilgi
@@ -39,7 +39,7 @@ ConfirmTitle=Onay
 ErrorTitle=Hata
 
 ; *** Kurulum yükleyici iletileri
-SetupLdrStartupMessage=%1 uygulaması kurulacak. Devam etmek istiyor musunuz?
+SetupLdrStartupMessage=%1 uygulaması kurulacak. İlerlemek istiyor musunuz?
 LdrCannotCreateTemp=Geçici dosya oluşturulamadığından kurulum iptal edildi
 LdrCannotExecTemp=Geçici klasördeki dosya çalıştırılamadığından kurulum iptal edildi
 HelpTextNote=
@@ -52,36 +52,36 @@ SetupFileCorruptOrWrongVer=Kurulum dosyalar
 InvalidParameter=Komut satırında geçersiz bir parametre yazılmış:%n%n%1
 SetupAlreadyRunning=Kurulum yardımcısı zaten çalışıyor.
 WindowsVersionNotSupported=Bu uygulama, bilgisayarınızda yüklü olan Windows sürümü ile uyumlu değil.
-WindowsServicePackRequired=Bu uygulama, %1 Hizmet Paketi %2 ve üzerindeki sürümler ile çalışır.
+WindowsServicePackRequired=Bu uygulama, %1 hizmet paketi %2 ve üzerindeki sürümler ile çalışır.
 NotOnThisPlatform=Bu uygulama, %1 üzerinde çalışmaz.
 OnlyOnThisPlatform=Bu uygulama, %1 üzerinde çalıştırılmalıdır.
-OnlyOnTheseArchitectures=Bu uygulama, yalnız şu işlemci mimarileri için tasarlanmış Windows sürümleriyle çalışır:%n%n%1
+OnlyOnTheseArchitectures=Bu uygulama, yalnızca şu işlemci mimarileri için tasarlanmış Windows sürümleriyle çalışır:%n%n%1
 WinVersionTooLowError=Bu uygulama için %1 sürüm %2 ya da üzeri gereklidir.
 WinVersionTooHighError=Bu uygulama, '%1' sürüm '%2' ya da üzerine kurulamaz.
-AdminPrivilegesRequired=Bu uygulamayı kurmak için Yönetici olarak oturum açılmış olması gereklidir.
-PowerUserPrivilegesRequired=Bu uygulamayı kurarken, Yönetici ya da Güçlü Kullanıcılar grubunun bir üyesi olarak oturum açılmış olması gereklidir.
-SetupAppRunningError=Kurulum yardımcısı %1 uygulamasının çalışmakta olduğunu algıladı.%n%nLütfen uygulamanın çalışan tüm kopyalarını kapatıp, devam etmek için Tamam, kurulum yardımcısından çıkmak için İptal üzerine tıklayın.
-UninstallAppRunningError=Kaldırma yardımcısı, %1 uygulamasının çalışmakta olduğunu algıladı.%n%nLütfen uygulamanın çalışan tüm kopyalarını kapatıp, devam etmek için Tamam ya da kaldırma yardımcısından çıkmak için İptal üzerine tıklayın.
+AdminPrivilegesRequired=Bu uygulamayı kurmak için Yönetici yetkileri olan bir kullanıcı ile oturum açılmış olmalıdır.
+PowerUserPrivilegesRequired=Bu uygulamayı kurarken, Yönetici ya da Güçlü Kullanıcılar grubundaki bir kullanıcı ile oturum açılmış olması gereklidir.
+SetupAppRunningError=Kurulum yardımcısı %1 uygulamasının çalışmakta olduğunu algıladı.%n%nLütfen uygulamanın çalışan tüm kopyalarını kapatıp, ilerlemek için Tamam, kurulum yardımcısından çıkmak için İptal üzerine tıklayın.
+UninstallAppRunningError=Kaldırma yardımcısı, %1 uygulamasının çalışmakta olduğunu algıladı.%n%nLütfen uygulamanın çalışan tüm kopyalarını kapatıp, ilerlemek için Tamam ya da kaldırma yardımcısından çıkmak için İptal üzerine tıklayın.
 
 ; *** Başlangıç soruları
-PrivilegesRequiredOverrideTitle=Kurulum Kipini Seçin
+PrivilegesRequiredOverrideTitle=Kurulum kipini seçin
 PrivilegesRequiredOverrideInstruction=Kurulum kipini seçin
-PrivilegesRequiredOverrideText1=%1 tüm kullanıcılar için (yönetici izinleri gerekir) ya da yalnız sizin hesabınız için kurulabilir.
-PrivilegesRequiredOverrideText2=%1 yalnız sizin hesabınız için ya da tüm kullanıcılar için (yönetici izinleri gerekir) kurulabilir.
+PrivilegesRequiredOverrideText1=%1 tüm kullanıcılar için (yönetici izinleri gerekir) ya da yalnızca sizin hesabınız için kurulabilir.
+PrivilegesRequiredOverrideText2=%1 yalnızca sizin hesabınız için ya da tüm kullanıcılar için (yönetici izinleri gerekir) kurulabilir.
 PrivilegesRequiredOverrideAllUsers=&Tüm kullanıcılar için kurulsun
 PrivilegesRequiredOverrideAllUsersRecommended=&Tüm kullanıcılar için kurulsun (önerilir)
-PrivilegesRequiredOverrideCurrentUser=&Yalnız benim kullanıcım için kurulsun
-PrivilegesRequiredOverrideCurrentUserRecommended=&Yalnız benim kullanıcım için kurulsun (önerilir)
+PrivilegesRequiredOverrideCurrentUser=&Yalnızca geçerli kullanıcı için kurulsun
+PrivilegesRequiredOverrideCurrentUserRecommended=&Yalnızca geçerli kullanıcı için kurulsun (önerilir)
 
 ; *** Çeşitli hata metinleri
 ErrorCreatingDir=Kurulum yardımcısı "%1" klasörünü oluşturamadı.
 ErrorTooManyFilesInDir="%1" klasörü içinde çok sayıda dosya olduğundan bir dosya oluşturulamadı
 
 ; *** Ortak kurulum iletileri
-ExitSetupTitle=Kurulum Yardımcısından Çık
+ExitSetupTitle=Kurulum yardımcısından çık
 ExitSetupMessage=Kurulum tamamlanmadı. Şimdi çıkarsanız, uygulama kurulmayacak.%n%nKurulumu tamamlamak için istediğiniz zaman kurulum yardımcısını yeniden çalıştırabilirsiniz.%n%nKurulum yardımcısından çıkılsın mı?
-AboutSetupMenuItem=Kurulum H&akkında...
-AboutSetupTitle=Kurulum Hakkında
+AboutSetupMenuItem=Kurulum h&akkında...
+AboutSetupTitle=Kurulum hakkında
 AboutSetupMessage=%1 %2 sürümü%n%3%n%n%1 ana sayfa:%n%4
 AboutSetupNote=
 TranslatorNote=
@@ -93,121 +93,121 @@ ButtonInstall=&Kur
 ButtonOK=Tamam
 ButtonCancel=İptal
 ButtonYes=E&vet
-ButtonYesToAll=&Tümüne Evet
+ButtonYesToAll=&Tümüne evet
 ButtonNo=&Hayır
-ButtonNoToAll=Tümüne Ha&yır
+ButtonNoToAll=Tümüne ha&yır
 ButtonFinish=&Bitti
-ButtonBrowse=&Gözat...
-ButtonWizardBrowse=Göza&t...
-ButtonNewFolder=Ye&ni Klasör Oluştur
+ButtonBrowse=&Göz at...
+ButtonWizardBrowse=Göz a&t...
+ButtonNewFolder=Ye&ni klasör oluştur
 
-; *** "Kurulum Dilini Seçin" sayfası iletileri
-SelectLanguageTitle=Kurulum Yardımcısı Dilini Seçin
+; *** "Kurulum dilini seçin" sayfası iletileri
+SelectLanguageTitle=Kurulum Yardımcısı dilini seçin
 SelectLanguageLabel=Kurulum süresince kullanılacak dili seçin.
 
 ; *** Ortak metinler
-ClickNext=Devam etmek için Sonraki, çıkmak için İptal üzerine tıklayın.
+ClickNext=İlerlemek için Sonraki, çıkmak için İptal üzerine tıklayın.
 BeveledLabel=
-BrowseDialogTitle=Klasöre Gözat
+BrowseDialogTitle=Klasöre göz at
 BrowseDialogLabel=Aşağıdaki listeden bir klasör seçip, Tamam üzerine tıklayın.
-NewFolderName=Yeni Klasör 
+NewFolderName=Yeni klasör 
 
-; *** "Hoş geldiniz" sayfası
-WelcomeLabel1=[name] Kurulum Yardımcısına Hoşgeldiniz.
-WelcomeLabel2=Bilgisayarınıza [name/ver] uygulaması kurulacak.%n%nDevam etmeden önce çalışan diğer tüm uygulamaları kapatmanız önerilir.
+; *** "Karşılama" sayfası
+WelcomeLabel1=[name] Kurulum yardımcısına hoş geldiniz.
+WelcomeLabel2=Bilgisayarınıza [name/ver] uygulaması kurulacak.%n%nİlerlemeden önce çalışan diğer tüm uygulamaları kapatmanız önerilir.
 
 ; *** "Parola" sayfası
 WizardPassword=Parola
 PasswordLabel1=Bu kurulum parola korumalıdır.
-PasswordLabel3=Lütfen parolayı yazın ve devam etmek için Sonraki üzerine tıklayın. Parolalar büyük küçük harflere duyarlıdır.
+PasswordLabel3=Lütfen parolayı yazın ve ilerlemek için Sonraki üzerine tıklayın. Parolalar büyük küçük harflere duyarlıdır.
 PasswordEditLabel=&Parola:
 IncorrectPassword=Yazdığınız parola doğru değil. Lütfen yeniden deneyin.
 
-; *** "Lisans Anlaşması" sayfası
-WizardLicense=Lisans Anlaşması
-LicenseLabel=Lütfen devam etmeden önce aşağıdaki önemli bilgileri okuyun.
-LicenseLabel3=Lütfen Aşağıdaki Lisans Anlaşmasını okuyun. Kuruluma devam edebilmek için bu anlaşmayı kabul etmelisiniz.
+; *** "Lisans anlaşması" sayfası
+WizardLicense=Lisans anlaşması
+LicenseLabel=Lütfen ilerlemeden önce aşağıdaki önemli bilgileri okuyun.
+LicenseLabel3=Lütfen aşağıdaki lisans anlaşmasını okuyun. Uygulamayı kurmak için bu anlaşmayı kabul etmelisiniz.
 LicenseAccepted=Anlaşmayı kabul &ediyorum.
 LicenseNotAccepted=Anlaşmayı kabul et&miyorum.
 
 ; *** "Bilgiler" sayfası
 WizardInfoBefore=Bilgiler
-InfoBeforeLabel=Lütfen devam etmeden önce aşağıdaki önemli bilgileri okuyun.
-InfoBeforeClickLabel=Kuruluma devam etmeye hazır olduğunuzda Sonraki üzerine tıklayın.
+InfoBeforeLabel=Lütfen ilerlemeden önce aşağıdaki önemli bilgileri okuyun.
+InfoBeforeClickLabel=Uygulamayı kurmaya hazır olduğunuzda Sonraki üzerine tıklayın.
 WizardInfoAfter=Bilgiler
-InfoAfterLabel=Lütfen devam etmeden önce aşağıdaki önemli bilgileri okuyun.
-InfoAfterClickLabel=Kuruluma devam etmeye hazır olduğunuzda Sonraki üzerine tıklayın.
+InfoAfterLabel=Lütfen ilerlemeden önce aşağıdaki önemli bilgileri okuyun.
+InfoAfterClickLabel=Uygulamayı kurmaya hazır olduğunuzda Sonraki üzerine tıklayın.
 
-; *** "Kullanıcı Bilgileri" sayfası
-WizardUserInfo=Kullanıcı Bilgileri
+; *** "Kullanıcı bilgileri" sayfası
+WizardUserInfo=Kullanıcı bilgileri
 UserInfoDesc=Lütfen bilgilerinizi yazın.
-UserInfoName=K&ullanıcı Adı:
+UserInfoName=K&ullanıcı adı:
 UserInfoOrg=Ku&rum:
-UserInfoSerial=&Seri Numarası:
+UserInfoSerial=&Seri numarası:
 UserInfoNameRequired=Bir ad yazmalısınız.
 
-; *** "Hedef Konumunu Seçin" sayfası
-WizardSelectDir=Hedef Konumunu Seçin
+; *** "Kurulum konumunu seçin" sayfası
+WizardSelectDir=Kurulum konumunu seçin
 SelectDirDesc=[name] nereye kurulsun?
 SelectDirLabel3=[name] uygulaması şu klasöre kurulacak.
-SelectDirBrowseLabel=Devam etmek icin Sonraki üzerine tıklayın. Farklı bir klasör seçmek için Gözat üzerine tıklayın.
+SelectDirBrowseLabel=İlerlemek icin Sonraki üzerine tıklayın. Farklı bir klasör seçmek için Göz at üzerine tıklayın.
 DiskSpaceGBLabel=En az [gb] GB boş disk alanı gereklidir.
 DiskSpaceMBLabel=En az [mb] MB boş disk alanı gereklidir.
 CannotInstallToNetworkDrive=Uygulama bir ağ sürücüsü üzerine kurulamaz.
 CannotInstallToUNCPath=Uygulama bir UNC yolu üzerine (\\yol gibi) kurulamaz.
-InvalidPath=Sürücü adı ile tam yolu yazmalısınız; örneğin: %n%nC:\APP%n%n ya da şu şekilde bir UNC yolu:%n%n\\sunucu\paylaşım
+InvalidPath=Sürücü adı ile tam yolu yazmalısınız. Örnek: %n%nC:\APP%n%n ya da şu şekilde bir UNC yolu:%n%n\\sunucu\paylaşım
 InvalidDrive=Sürücü ya da UNC paylaşımı yok ya da erişilemiyor. Lütfen başka bir tane seçin.
-DiskSpaceWarningTitle=Yeterli Boş Disk Alanı Yok
-DiskSpaceWarning=Kurulum için %1 KB boş alan gerekli, ancak seçilmiş sürücüde yalnız %2 KB boş alan var.%n%nGene de devam etmek istiyor musunuz?
+DiskSpaceWarningTitle=Yeterli boş disk alanı yok
+DiskSpaceWarning=Kurulum için %1 KB boş alan gerekli, ancak seçilmiş sürücüde yalnızca %2 KB boş alan var.%n%nGene de ilerlemek istiyor musunuz?
 DirNameTooLong=Klasör adı ya da yol çok uzun.
 InvalidDirName=Klasör adı geçersiz.
 BadDirName32=Klasör adlarında şu karakterler bulunamaz:%n%n%1
-DirExistsTitle=Klasör Zaten Var"
-DirExists=Klasör:%n%n%1%n%zaten var. Kurulum için bu klasörü kullanmak ister misiniz?
-DirDoesntExistTitle=Klasör Bulunamadı
+DirExistsTitle=Klasör zaten var
+DirExists=Klasör:%n%n%1%n%nzaten var. Kurulum için bu klasörü kullanmak ister misiniz?
+DirDoesntExistTitle=Klasör bulunamadı
 DirDoesntExist=Klasör:%n%n%1%n%nbulunamadı.Klasörün oluşturmasını ister misiniz?
 
-; *** "Bileşenleri Seçin" sayfası
-WizardSelectComponents=Bileşenleri Seçin
+; *** "Bileşenleri seçin" sayfası
+WizardSelectComponents=Bileşenleri seçin
 SelectComponentsDesc=Hangi bileşenler kurulacak?
-SelectComponentsLabel2=Kurmak istediğiniz bileşenleri seçin; kurmak istemediğiniz bileşenlerin işaretini kaldırın. Devam etmeye hazır olduğunuzda Sonraki üzerine tıklayın.
-FullInstallation=Tam Kurulum
-; Mümkünse 'Compact' ifadesini kendi dilinizde 'Minimal' anlamında çevirmeyin
+SelectComponentsLabel2=Kurmak istediğiniz bileşenleri seçin; kurmak istemediğiniz bileşenlerin işaretini kaldırın. İlerlemeye hazır olduğunuzda Sonraki üzerine tıklayın.
+FullInstallation=Tam kurulum
+; Olabiliyorsa 'Compact' ifadesini kendi dilinizde 'Minimal' anlamında çevirmeyin
 CompactInstallation=Normal kurulum
 CustomInstallation=Özel kurulum
-NoUninstallWarningTitle=Bileşenler Zaten Var
-NoUninstallWarning=Şu bileşenlerin bilgisayarınızda zaten kurulu olduğu algılandı:%n%n%1%n%n Bu bileşenlerin işaretlerinin kaldırılması bileşenleri kaldırmaz.%n%nGene de devam etmek istiyor musunuz?
+NoUninstallWarningTitle=Bileşenler zaten var
+NoUninstallWarning=Şu bileşenlerin bilgisayarınızda zaten kurulu olduğu algılandı:%n%n%1%n%n Bu bileşenlerin işaretlerinin kaldırılması bileşenleri kaldırmaz.%n%nGene de ilerlemek istiyor musunuz?
 ComponentSize1=%1 KB
 ComponentSize2=%1 MB
-ComponentsDiskSpaceGBLabel=Seçili bileşenler için diskte en az [gb] GB boş alan bulunması gerekli.
-ComponentsDiskSpaceMBLabel=Seçili bileşenler için diskte en az [mb] MB boş alan bulunması gerekli.
+ComponentsDiskSpaceGBLabel=Seçilmiş bileşenler için diskte en az [gb] GB boş alan bulunması gerekli.
+ComponentsDiskSpaceMBLabel=Seçilmiş bileşenler için diskte en az [mb] MB boş alan bulunması gerekli.
 
-; *** "Ek İşlemleri Seçin" sayfası
-WizardSelectTasks=Ek İşlemleri Seçin
+; *** "Ek işlemleri seçin" sayfası
+WizardSelectTasks=Ek işlemleri seçin
 SelectTasksDesc=Başka hangi işlemler yapılsın?
 SelectTasksLabel2=[name] kurulumu sırasında yapılmasını istediğiniz ek işleri seçin ve Sonraki üzerine tıklayın.
 
-; *** "Başlat Menüsü Klasörünü Seçin" sayfası
-WizardSelectProgramGroup=Başlat Menüsü Klasörünü Seçin
+; *** "Başlat menüsü klasörünü seçin" sayfası
+WizardSelectProgramGroup=Başlat menüsü klasörünü seçin
 SelectStartMenuFolderDesc=Uygulamanın kısayolları nereye eklensin?
-SelectStartMenuFolderLabel3=Kurulum yardımcısı uygulama kısayollarını aşağıdaki Başlat Menüsü klasörüne ekleyecek.
-SelectStartMenuFolderBrowseLabel=Devam etmek için Sonraki üzerine tıklayın. Farklı bir klasör seçmek için Gözat üzerine tıklayın.
+SelectStartMenuFolderLabel3=Kurulum yardımcısı uygulama kısayollarını aşağıdaki Başlat menüsü klasörüne ekleyecek.
+SelectStartMenuFolderBrowseLabel=İlerlemek için Sonraki üzerine tıklayın. Farklı bir klasör seçmek için Göz at üzerine tıklayın.
 MustEnterGroupName=Bir klasör adı yazmalısınız.
 GroupNameTooLong=Klasör adı ya da yol çok uzun.
 InvalidGroupName=Klasör adı geçersiz.
 BadGroupName=Klasör adında şu karakterler bulunamaz:%n%n%1
-NoProgramGroupCheck2=Başlat Menüsü klasörü &oluşturulmasın
+NoProgramGroupCheck2=Başlat menüsü klasörü &oluşturulmasın
 
-; *** "Kurulmaya Hazır" sayfası
-WizardReady=Kurulmaya Hazır
+; *** "Kurulmaya hazır" sayfası
+WizardReady=Kurulmaya hazır
 ReadyLabel1=[name] bilgisayarınıza kurulmaya hazır.
-ReadyLabel2a=Kuruluma devam etmek için Sonraki üzerine, ayarları gözden geçirip değiştirmek için Önceki üzerine tıklayın.
-ReadyLabel2b=Kuruluma devam etmek için Sonraki üzerine tıklayın.
+ReadyLabel2a=Kuruluma başlamak için Sonraki üzerine, ayarları gözden geçirip değiştirmek için Önceki üzerine tıklayın.
+ReadyLabel2b=Kuruluma başlamak için Sonraki üzerine tıklayın.
 ReadyMemoUserInfo=Kullanıcı bilgileri:
-ReadyMemoDir=Hedef konumu:
+ReadyMemoDir=Kurulum konumu:
 ReadyMemoType=Kurulum türü:
 ReadyMemoComponents=Seçilmiş bileşenler:
-ReadyMemoGroup=Başlat Menüsü klasörü:
+ReadyMemoGroup=Başlat menüsü klasörü:
 ReadyMemoTasks=Ek işlemler:
 
 ; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
@@ -222,11 +222,11 @@ ErrorFileHash2=Dosya karmas
 ErrorProgress=Adım geçersiz: %1 / %2
 ErrorFileSize=Dosya boyutu geçersiz: %1 olması gerekirken %2
 
-; *** "Kuruluma Hazırlanılıyor" sayfası
-WizardPreparing=Kuruluma Hazırlanılıyor
+; *** "Kuruluma hazırlanılıyor" sayfası
+WizardPreparing=Kuruluma hazırlanılıyor
 PreparingDesc=[name] bilgisayarınıza kurulmaya hazırlanıyor.
 PreviousInstallNotCompleted=Önceki uygulama kurulumu ya da kaldırılması tamamlanmamış. Bu kurulumun tamamlanması için bilgisayarınızı yeniden başlatmalısınız.%n%nBilgisayarınızı yeniden başlattıktan sonra işlemi tamamlamak için [name] kurulum yardımcısını yeniden çalıştırın.
-CannotContinue=Kuruluma devam edilemiyor. Çıkmak için İptal üzerine tıklayın.
+CannotContinue=Kurulum yapılamadı. Çıkmak için İptal üzerine tıklayın.
 ApplicationsFound=Kurulum yardımcısı tarafından güncellenmesi gereken dosyalar, şu uygulamalar tarafından kullanıyor. Kurulum yardımcısının bu uygulamaları otomatik olarak kapatmasına izin vermeniz önerilir.
 ApplicationsFound2=Kurulum yardımcısı tarafından güncellenmesi gereken dosyalar, şu uygulamalar tarafından kullanıyor. Kurulum yardımcısının bu uygulamaları otomatik olarak kapatmasına izin vermeniz önerilir. Kurulum tamamlandıktan sonra, uygulamalar yeniden başlatılmaya çalışılacak.
 CloseApplications=&Uygulamalar kapatılsın
@@ -253,9 +253,9 @@ RunEntryExec=%1 
 ; used for example as 'View Readme.txt'
 RunEntryShellExec=%1 görüntülensin
 
-; *** "Kurulum için Sıradaki Disk Gerekli" iletileri
-ChangeDiskTitle=Kurulum Yardımcısı Sıradaki Diske Gerek Duyuyor
-SelectDiskLabel2=Lütfen %1 numaralı diski takıp Tamam üzerine tıklayın.%n%nDiskteki dosyalar aşağıdakinden farklı bir klasörde bulunuyorsa, doğru yolu yazın ya da Gözat üzerine tıklayarak doğru klasörü seçin.
+; *** "Kurulum için sıradaki disk gerekli" iletileri
+ChangeDiskTitle=Kurulum yardımcısı sıradaki diske gerek duyuyor
+SelectDiskLabel2=Lütfen %1 numaralı diski takıp Tamam üzerine tıklayın.%n%nDiskteki dosyalar aşağıdakinden farklı bir klasörde bulunuyorsa, doğru yolu yazın ya da Göz at üzerine tıklayarak doğru klasörü seçin.
 PathLabel=&Yol:
 FileNotInDir2="%1" dosyası "%2" içinde bulunamadı. Lütfen doğru diski takın ya da başka bir klasör seçin.
 SelectDirectoryLabel=Lütfen sonraki diskin konumunu belirtin.
@@ -264,7 +264,7 @@ SelectDirectoryLabel=L
 SetupAborted=Kurulum tamamlanamadı.%n%nLütfen sorunu düzelterek kurulum yardımcısını yeniden çalıştırın.
 AbortRetryIgnoreSelectAction=Yapılacak işlemi seçin
 AbortRetryIgnoreRetry=&Yeniden denensin
-AbortRetryIgnoreIgnore=&Sorun yok sayılıp devam edilsin
+AbortRetryIgnoreIgnore=&Sorun yok sayılıp ilerlensin
 AbortRetryIgnoreCancel=Kurulum iptal edilsin
 
 ; *** Kurulum durumu iletileri
@@ -297,7 +297,7 @@ ErrorIniEntry="%1" dosyas
 
 ; *** Dosya kopyalama hataları
 FileAbortRetryIgnoreSkipNotRecommended=&Bu dosya atlansın (önerilmez)
-FileAbortRetryIgnoreIgnoreNotRecommended=&Sorun yok sayılıp devam edilsin (önerilmez)
+FileAbortRetryIgnoreIgnoreNotRecommended=&Sorun yok sayılıp ilerlensin (önerilmez)
 SourceIsCorrupted=Kaynak dosya bozulmuş
 SourceDoesntExist="%1" kaynak dosyası bulunamadı
 ExistingFileReadOnly2=Var olan dosya salt okunabilir olarak işaretlenmiş olduğundan üzerine yazılamadı.
@@ -315,12 +315,12 @@ ExistingFileNewerOverwriteExisting=&Var olan dosyan
 ExistingFileNewerKeepExisting=Var &olan dosya korunsun (önerilir)
 ExistingFileNewerOverwriteOrKeepAll=&Sonraki çakışmalarda bu işlem yapılsın
 ErrorChangingAttr=Var olan dosyanın öznitelikleri değiştirilirken bir sorun çıktı:
-ErrorCreatingTemp=Hedef klasörde bir dosya oluşturulurken bir sorun çıktı:
-ErrorReadingSource=Kaynak dosya okunurken bir sorun çıktı:
-ErrorCopying=Dosya kopyalanırken bir sorun çıktı:
-ErrorReplacingExistingFile=Var olan dosya değiştirilirken bir sorun çıktı:
+ErrorCreatingTemp=Kurulum klasöründe bir dosya oluşturulurken sorun çıktı:
+ErrorReadingSource=Kaynak dosya okunurken sorun çıktı:
+ErrorCopying=Dosya kopyalanırken sorun çıktı:
+ErrorReplacingExistingFile=Var olan dosya değiştirilirken sorun çıktı:
 ErrorRestartReplace=Yeniden başlatmada üzerine yazılamadı:
-ErrorRenamingTemp=Hedef klasördeki bir dosyanın adı değiştirilirken sorun çıktı:
+ErrorRenamingTemp=Kurulum klasöründeki bir dosyanın adı değiştirilirken sorun çıktı:
 ErrorRegisterServer=DLL/OCX kayıt edilemedi: %1
 ErrorRegSvr32Failed=RegSvr32 işlemi şu kod ile tamamlanamadı: %1
 ErrorRegisterTypeLib=Tür kitaplığı kayıt defterine eklenemedi: %1
@@ -336,7 +336,7 @@ UninstallDisplayNameMarkAllUsers=T
 UninstallDisplayNameMarkCurrentUser=Geçerli kullanıcı
 
 ; *** Kurulum sonrası hataları
-ErrorOpeningReadme=README dosyası açılırken bir sorun çıktı.
+ErrorOpeningReadme=README dosyası açılırken sorun çıktı.
 ErrorRestartingComputer=Kurulum yardımcısı bilgisayarınızı yeniden başlatamıyor. Lütfen bilgisayarınızı yeniden başlatın.
 
 ; *** Kaldırma yardımcısı iletileri
@@ -345,8 +345,8 @@ UninstallOpenError="%1" dosyas
 UninstallUnsupportedVer="%1" uygulama kaldırma günlük dosyasının biçimi, bu kaldırma yardımcısı sürümü tarafından anlaşılamadı. Uygulama kaldırılamıyor.
 UninstallUnknownEntry=Kaldırma günlüğünde bilinmeyen bir kayıt (%1) bulundu.
 ConfirmUninstall=%1 uygulamasını tüm bileşenleri ile birlikte tamamen kaldırmak istediğinize emin misiniz?
-UninstallOnlyOnWin64=Bu kurulum yalnız 64 bit Windows üzerinden kaldırılabilir.
-OnlyAdminCanUninstall=Bu kurulum yalnız yönetici haklarına sahip bir kullanıcı tarafından kaldırılabilir.
+UninstallOnlyOnWin64=Bu kurulum yalnızca 64 bit Windows üzerinden kaldırılabilir.
+OnlyAdminCanUninstall=Bu kurulum yalnızca yönetici yetkileri olan bir kullanıcı tarafından kaldırılabilir.
 UninstallStatusLabel=Lütfen %1 uygulaması bilgisayarınızdan kaldırılırken bekleyin.
 UninstalledAll=%1 uygulaması bilgisayarınızdan kaldırıldı.
 UninstalledMost=%1 uygulaması kaldırıldı.%n%nBazı bileşenler kaldırılamadı. Bunları el ile silebilirsiniz.
@@ -354,11 +354,11 @@ UninstalledAndNeedsRestart=%1 kald
 UninstallDataCorrupted="%1" dosyası bozulmuş. Kaldırılamıyor.
 
 ; *** Kaldırma aşaması iletileri
-ConfirmDeleteSharedFileTitle=Paylaşılan Dosya Silinsin mi?
+ConfirmDeleteSharedFileTitle=Paylaşılan dosya silinsin mi?
 ConfirmDeleteSharedFile2=Sisteme göre, paylaşılan şu dosya başka bir uygulama tarafından kullanılmıyor ve kaldırılabilir. Bu paylaşılmış dosyayı silmek ister misiniz?%n%nBu dosya, başka herhangi bir uygulama tarafından kullanılıyor ise, silindiğinde diğer uygulama düzgün çalışmayabilir. Emin değilseniz Hayır üzerine tıklayın. Dosyayı sisteminizde bırakmanın bir zararı olmaz.
 SharedFileNameLabel=Dosya adı:
 SharedFileLocationLabel=Konum:
-WizardUninstalling=Kaldırma Durumu
+WizardUninstalling=Kaldırma durumu
 StatusUninstalling=%1 kaldırılıyor...
 
 ; *** Kapatmayı engelleme nedenleri
@@ -373,12 +373,12 @@ ShutdownBlockReasonUninstallingApp=%1 kald
 NameAndVersion=%1 %2 sürümü
 AdditionalIcons=Ek simgeler:
 CreateDesktopIcon=Masaüstü simg&esi oluşturulsun
-CreateQuickLaunchIcon=Hızlı Başlat simgesi &oluşturulsun
-ProgramOnTheWeb=%1 Web Sitesi
-UninstallProgram=%1 Uygulamasını Kaldır
-LaunchProgram=%1 Uygulamasını Çalıştır
+CreateQuickLaunchIcon=Hızlı başlat simgesi &oluşturulsun
+ProgramOnTheWeb=%1 sitesi
+UninstallProgram=%1 uygulamasını kaldır
+LaunchProgram=%1 uygulamasını çalıştır
 AssocFileExtension=%1 &uygulaması ile %2 dosya uzantısı ilişkilendirilsin
 AssocingFileExtension=%1 uygulaması ile %2 dosya uzantısı ilişkilendiriliyor...
 AutoStartProgramGroupDescription=Başlangıç:
 AutoStartProgram=%1 otomatik olarak başlatılsın
-AddonHostProgramNotFound=%1 seçtiğiniz klasörde bulunamadı.%n%nYine de devam etmek istiyor musunuz?
+AddonHostProgramNotFound=%1 seçtiğiniz klasörde bulunamadı.%n%nYine de ilerlemek istiyor musunuz?

+ 2 - 1
Files/Languages/Unofficial/Afrikaans.isl

@@ -151,6 +151,7 @@ WizardSelectDir=Kies bestemming
 SelectDirDesc=Waar moet [name] ge�nstalleer word?
 SelectDirLabel3=Die installeerder sal [name] installeer in die volgende vouer.
 SelectDirBrowseLabel=Om voort te gaan, kliek Volgende. Indien u 'n ander vouer wil kies, kliek Rondblaai.
+DiskSpaceGBLabel=Ten minste [gb] GG oop hardeskyfspasie word benodig.
 DiskSpaceMBLabel=Ten minste [mb] MG oop hardeskyfspasie word benodig.
 CannotInstallToNetworkDrive=Installeerder kan nie op 'n netwerk-skyf installeer word nie.
 CannotInstallToUNCPath=Installeerder kan nie na 'n UNC-roete installeer nie.
@@ -178,7 +179,7 @@ NoUninstallWarningTitle=Komponente Bestaan
 NoUninstallWarning=Die installeerder het bespeur dat die volgende komponente reeds op u rekenaar ge�nstalleer is:%n%n%1%n%nDeur die komponente te deselekteer sal hulle nie verwyder nie.%n%nWil u ten spyte daarvan voortgaan?
 ComponentSize1=%1 KG
 ComponentSize2=%1 MG
-ComponentsDiskSpaceGBLabel=uidige keuse vereis ten minste [gb] GG skyfspasie.
+ComponentsDiskSpaceGBLabel=Huidige keuse vereis ten minste [gb] GG skyfspasie.
 ComponentsDiskSpaceMBLabel=Huidige keuse vereis ten minste [mb] MG skyfspasie.
 
 ; *** "Select Additional Tasks" wizard page

+ 286 - 252
Files/Languages/Unofficial/Belarusian.isl

@@ -1,7 +1,11 @@
-; *** Inno Setup version 5.5.3+ Belarusian messages ***
+; *** Inno Setup version 6.1.0+ Belarusian messages ***
 ;
-; Translated by Aleg Azarousky, http://belazar.info/belsoft/
-; E-mail: [email protected]
+; Translated from English by Alyaksandr Koshal, [email protected]
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
 
 [LangOptions]
 LanguageName=<0411><0435><043B><0430><0440><0443><0441><043A><0430><044F>
@@ -11,309 +15,339 @@ LanguageCodePage=1251
 [Messages]
 
 ; *** Application titles
-SetupAppTitle=Óñòàëÿâàííå
-SetupWindowTitle=Óñòàëÿâàííå — %1
-UninstallAppTitle=Äý¢ñòàëÿâàííå
-UninstallAppFullTitle=Äý¢ñòàëÿâàííå — %1
+SetupAppTitle=У�тал�ванне
+SetupWindowTitle=У�тал�ванне: %1
+UninstallAppTitle=Выдаленне
+UninstallAppFullTitle=Выдаленне %1
 
 ; *** Misc. common
-InformationTitle=²íôàðìàöûÿ
-ConfirmTitle=Çàïûòàííå
-ErrorTitle=Àáìûëà
+InformationTitle=Інфармацы�
+ConfirmTitle=Пацв�рдж�нне
+ErrorTitle=Памылка
 
 ; *** SetupLdr messages
-SetupLdrStartupMessage=Ãýòà ïðàãðàìà ¢ñòàëþå %1. Æàäàåöå ïðàöÿãíóöü?
-LdrCannotCreateTemp=Íå ìàãó ñòâàðûöü ÷àñîâû ôàéë. Óñòàëÿâàííå ñïûíåíà
-LdrCannotExecTemp=Íå ìàãó çàïóñö³öü ôàéë ó ÷àñîâàé òý÷öû. Óñòà븢êà ñïûíåíà
+SetupLdrStartupMessage=Г�та праграма ў�талюе %1 на ваш камп'ютар. Прац�гнуць?
+LdrCannotCreateTemp=�емагчыма �тварыць ча�овы файл. У�тал�ванне перарвана
+LdrCannotExecTemp=�емагчыма выканаць файл у ча�овым каталогу. У�тал�ванне перарвана
+HelpTextNote=
 
 ; *** Startup error messages
-LastErrorMessage=%1.%n%nÀáìûëà %2: %3
-SetupFileMissing=Ôàéëà %1 íÿìà ¢ òý÷öû ¢ñòàëÿâàííÿ. Êàë³ ëàñêà, âûðàøûöå ïðàáëåìó, àáî àòðûìàéöå íîâóþ âåðñ³þ ïðàãðàìû.
-SetupFileCorrupt=Ôàéëû ¢ñòàë¸¢ê³ ïàøêîäæàíûÿ. Êàë³ ëàñêà, àòðûìàéöå íîâóþ êîï³þ ïðàãðàìû.
-SetupFileCorruptOrWrongVer=Ôàéëû ¢ñòàë¸¢ê³ ïàøêîäæàíûÿ ö³ íåñóìåñíûÿ ç äàäçåíàé âåðñ³ÿé ïðàãðàìû ¢ñòà븢ê³. Êàë³ ëàñêà, âûðàøûöå ãýòó ïðàáëåìó, àáî àòðûìàéöå íîâóþ êîï³þ ïðàãðàìû.
-InvalidParameter=Êàìàíäíû ðàäîê çìÿø÷àå íåâÿäîìû ïàðàìåòð:%n%n%1
-SetupAlreadyRunning=Óñòàëÿâàííå ¢æî çàïóø÷àíà.
-WindowsVersionNotSupported=Ãýòà ïðàãðàìà íå ñóìÿø÷àëüíàÿ ç âåðñ³ÿé Windows íà Âàøûì êàìïóòàðû.
-WindowsServicePackRequired=Ãýòà ïðàãðàìà ïàòðàáóå %1 Service Pack %2 ö³ áîëüø íîâóþ âåðñ³þ.
-NotOnThisPlatform=Ïðàãðàìó íåëüãà çàïóñö³öü íà %1.
-OnlyOnThisPlatform=Ïðàãðàìó òðýáà çàïóñêàöü íà %1.
-OnlyOnTheseArchitectures=Ãýòó ïðàãðàìó ìîæíà ¢ñòàëÿâàöü òîëüê³ íà Windows ç ïàäòðûìêàé íàñòóïíûõ ïðàöýñàðíûõ àðõ³òýêòóðà¢:%n%n%1
-MissingWOW64APIs=Ó Âàøàé âåðñ³³ Windows íÿìà ìàã÷ûìàñö³ âûêàíàííÿ 64-á³òíàãà óñòàëÿâàííÿ. Êàá âûïðàâ³öü ãýòó ïðàáëåìó, Âàì òðýáà ¢ñòàëÿâàöü ïàêåò àáíà¢ëåííÿ¢ (Service Pack) %1.
-WinVersionTooLowError=Ãýòà ïðàãðàìà ïàòðàáóå %1 âåðñ³³ %2 ö³ áîëüø íîâóþ.
-WinVersionTooHighError=Ãýòó ïðàãðàìó íåëüãà ¢ñòàëÿâàöü íà %1 âåðñ³³ %2 ö³ áîëüø íîâàé.
-AdminPrivilegesRequired=Êàá óñòàëÿâàöü ïðàãðàìó, Âû ïàâ³ííû ¢âàéñö³ ¢ ñ³ñòýìó ÿê àäì³í³ñòðàòàð.
-PowerUserPrivilegesRequired=Êàá óñòàëÿâàöü ïðàãðàìó, óâàéäç³öå ¢ ñ³ñòýìó ÿê àäì³í³ñòðàòàð ö³ ÷àëåö ñóïîëê³ «Äàñâåä÷àíûÿ êàðûñòà÷û».
-SetupAppRunningError=Óâàãà, öÿïåð çàïóø÷àíà ïðàãðàìà «%1»!%n%nÇà÷ûí³öå ¢ñå ÿå âîêíû, ³ íàö³ñí³öå Äîáðà êàá ïðàöÿãíóöü, àáî Àäìåíà - êàá âûéñö³.
-UninstallAppRunningError=Óâàãà, öÿïåð çàïóø÷àíà «%1»!%n%nÊàë³ ëàñêà, çà÷ûí³öå ¢ñå âîêíû ãýòàé ïðàãðàìû, ³ íàö³ñí³öå êíîïêó Äîáðà êàá ïðàöÿãíóöü, àáî Àäìåíà - êàá âûéñö³ ç ïðàãðàìû ¢ñòàëÿâàííÿ.
+LastErrorMessage=%1.%n%nПамылка %2: %3
+SetupFileMissing=Файл %1 ад�утнічае ў каталогу ў�тал�ванн�. Вырашыце праблему або атрымайце новую вер�ію праграмы.
+SetupFileCorrupt=Файлы праграмы ў�тал�ванн� пашкоджаны. �трымайце новую копію праграмы.
+SetupFileCorruptOrWrongVer=Файлы праграмы ў�тал�ванн� пашкоджаны або не�ум�шчальны з г�тай вер�і�й праграмы. Вырашыце праблему або атрымайце новую копію праграмы.
+InvalidParameter=Камандны радок зм�шчае памылковы параметр:%n%n%1
+SetupAlreadyRunning=Праграма ў�тал�ванн� ўжо выконваецца.
+WindowsVersionNotSupported=Г�та праграма не падтрымлівае вер�ію Windows, �ка� ў�тал�вана на вашым камп'ютары.
+WindowsServicePackRequired=Г�та праграма патрабуе %1 Service Pack %2 або больш новую вер�ію.
+NotOnThisPlatform=Г�та праграма не будзе працаваць у %1.
+OnlyOnThisPlatform=Г�ту праграму можна запу�каць толькі ў %1.
+OnlyOnTheseArchitectures=У�талёўваць праграму можна толькі ў вер�і�х Windows дл� прац��араў з на�тупнай архіт�ктурай:%n%n%1
+WinVersionTooLowError=Г�та праграма патрабуе %1 вер�іі %2 або больш новую вер�ію.
+WinVersionTooHighError=Праграму нельга ў�тал�ваць у %1 вер�іі %2 або больш новай.
+AdminPrivilegesRequired=Каб у�тал�ваць г�ту праграму, увайдзіце ў �і�т�му �к адміні�тратар.
+PowerUserPrivilegesRequired=Каб у�тал�ваць г�ту праграму, увайдзіце ў �і�т�му �к адміні�тратар або �к удзельнік групы "Да�ведчаны� кары�тальнікі" (Power Users).
+SetupAppRunningError=Праграма ў�тал�ванн� вы�віла запушчаны �кз�мпл�р %1.%n%nЗакрыйце ў�е �кз�мпл�ры праграмы і наці�ніце "Добра", каб прац�гнуць, або "Ска�аваць" дл� выхаду.
+UninstallAppRunningError=Праграма выдаленн� вы�віла запушчаны �кз�мпл�р %1.%n%nЗакрыйце ў�е �кз�мпл�ры праграмы і наці�ніце "Добра", каб прац�гнуць або "Ска�аваць", каб вый�ці.
+
+; *** Startup questions
+PrivilegesRequiredOverrideTitle=Выбар р�жыму ў�тал�ванн�
+PrivilegesRequiredOverrideInstruction=Выберыце р�жым у�тал�ванн�
+PrivilegesRequiredOverrideText1=%1 можа быць у�тал�ваны дл� ў�іх кары�тальнікаў (патрабуюцца правы адміні�тратара) або толькі дл� ва�.
+PrivilegesRequiredOverrideText2=%1 можа быць у�тал�ваны толькі дл� ва� або дл� ў�іх кары�тальнікаў (патрабуюцца правы адміні�тратара).
+PrivilegesRequiredOverrideAllUsers=У�тал�ваць дл� &ў�іх кары�тальнікаў
+PrivilegesRequiredOverrideAllUsersRecommended=У�тал�ваць дл� &ў�іх кары�тальнікаў (р�камендуецца)
+PrivilegesRequiredOverrideCurrentUser=У�тал�ваць толькі дл� &м�не
+PrivilegesRequiredOverrideCurrentUserRecommended=У�тал�ваць толькі дл� &м�не (р�камендуецца)
 
 ; *** Misc. errors
-ErrorCreatingDir=Íå ìàãó ñòâàðûöü òý÷êó «%1»
-ErrorTooManyFilesInDir=Íå ìàãó ñòâàðûöü ôàéë ó òý÷öû «%1», áî ÿíà çìÿø÷àå çàøìàò ôàéëà¢
+ErrorCreatingDir=Праграма ў�тал�ванн� не змагла �тварыць каталог "%1"
+ErrorTooManyFilesInDir=�емагчыма �тварыць файл у каталогу "%1", бо ў ім занадта шмат файлаў
 
 ; *** Setup common messages
-ExitSetupTitle=Ñïûí³öü óñòàëÿâàííå
-ExitSetupMessage=Óñòàëÿâàííå íå çàâåðøàíà. Êàë³ Âû âûéäçåöå çàðàç, Âû íå çìîæàöå êàðûñòàööà ïðàãðàìàé.%n%nÀëå Âû ìîæàöå çàïóñö³öü óñòà븢í³ê ³íøûì ðàçàì, êàá óñòàëÿâàöü ãýòó ïðàãðàìó.%n%nÂûéñö³ ç óñòà븢í³êà?
-AboutSetupMenuItem=Ïðà ïðàãðàìó...
-AboutSetupTitle=Ïðà ïðàãðàìó
-AboutSetupMessage=%1, âåðñ³ÿ %2%n%3%n%nÑàéò %1:%n%4
+ExitSetupTitle=Вый�ці з праграмы ў�тал�ванн�
+ExitSetupMessage=Праграма ў�тал�ванн� не зав�ршыла �ваю працу. Калі вый�ці, праграма не будзе ў�тал�вана.%n%nЗав�ршыць прац�� можна будзе, калі вы запу�ціце файл у�тал�ванн� �шч� раз.%n%nВый�ці зараз?
+AboutSetupMenuItem=&Пра праграму...
+AboutSetupTitle=Пра праграму
+AboutSetupMessage=%1 вер�і� %2%n%3%n%n%1 хатн�� �таронка:%n%4
 AboutSetupNote=
-TranslatorNote=Belarusian translation by Aleg Azarousky, http://belazar.info/belsoft/
+TranslatorNote=
 
 ; *** Buttons
-ButtonBack=< &Íàçàä
-ButtonNext=&Äàëåé >
-ButtonInstall=&Óñòàëÿâàöü
-ButtonOK=Äîáðà
-ButtonCancel=Àäìåíà
-ButtonYes=&Òàê
-ButtonYesToAll=Òàê äëÿ &¢ñ³õ
-ButtonNo=&Íå
-ButtonNoToAll=Í&å äëÿ ¢ñ³õ
-ButtonFinish=Ãàòîâà
-ButtonBrowse=&Àãëÿä...
-ButtonWizardBrowse=À&ãëÿä...
-ButtonNewFolder=&Ñòâàðûöü òý÷êó
+ButtonBack=< &�азад
+ButtonNext=&Далей >
+ButtonInstall=&У�тал�ваць
+ButtonOK=Добра
+ButtonCancel=Ска�аваць
+ButtonYes=&Так
+ButtonYesToAll=Так дл� &ў�іх
+ButtonNo=&�е
+ButtonNoToAll=�&е дл� ў�іх
+ButtonFinish=&Зав�ршыць
+ButtonBrowse=&�гл�д...
+ButtonWizardBrowse=&�гл�д...
+ButtonNewFolder=&Стварыць новую папку
 
 ; *** "Select Language" dialog messages
-SelectLanguageTitle=Àáÿðûöå ìîâó ¢ñòà븢ê³
-SelectLanguageLabel=Âûçíà÷öå ìîâó äëÿ âûêàðûñòàííÿ ïàä÷àñ ¢ñòàëÿâàííÿ:
+SelectLanguageTitle=Выберыце мову ў�тал�ванн�
+SelectLanguageLabel=Выберыце мову, �ка� будзе выкары�тоўвацца падча� у�тал�ванн�:
 
 ; *** Common wizard text
-ClickNext=Íàö³ñí³öå Äàëåé êàá ïðàöÿãíóöü, ö³ Àäìåíà - êàá âûéñö³ ç ïðàãðàìû ¢ñòàëÿâàííÿ.
-BeveledLabel=InnoSetup
-BrowseDialogTitle=Àãëÿä òý÷êà¢
-BrowseDialogLabel=Àáÿðûöå òý÷êó ¢ ñï³ñå ³ íàö³ñí³öå Äîáðà.
-NewFolderName=Íîâàÿ òý÷êà
+ClickNext=Каб прац�гнуць, наці�ніце "Далей". Каб вый�ці з праграмы ў�тал�ванн�, наці�ніце "Ска�аваць".
+BeveledLabel=
+BrowseDialogTitle=�гл�д папак
+BrowseDialogLabel=Выберыце папку �а �пі�а і наці�ніце "Добра".
+NewFolderName=�ова� папка
 
 ; *** "Welcome" wizard page
-WelcomeLabel1=Âàñ â³òàå Ìàéñòàð óñòàëÿâàííÿ [name]
-WelcomeLabel2=Ïðàãðàìà ¢ñòàëþå [name/ver] íà Âàø êàìïóòàð.%n%nÐýêàìåíäóþ çàêðûöü ³íøûÿ ïðàãðàìû ïåðàä òûì, ÿê ïðàöÿãíóöü.
+WelcomeLabel1=Ва� вітае май�тар у�тал�ванн� [name]
+WelcomeLabel2=Праграма ў�талюе [name/ver] на ваш камп'ютар.%n%nПерад тым �к прац�гнуць, р�камендуем закрыць у�е іншы� праграмы.
 
 ; *** "Password" wizard page
-WizardPassword=Ïàðîëü
-PasswordLabel1=Óñòà븢êà çàñöÿðîæàíà ïàðîëåì.
-PasswordLabel3=Óâÿäç³öå ïàðîëü, çàòûì íàö³ñí³öå Äàëåé. Ïàðîëü àä÷óâàëüíû äà ðýã³ñòðó ë³òàðà¢.
-PasswordEditLabel=&Ïàðîëü:
-IncorrectPassword=Õ³áíû ïàðîëü. Ïàñïðàáóéöå çíî¢.
+WizardPassword=Пароль
+PasswordLabel1=Г�та праграма абаронена паролем.
+PasswordLabel3=Ув�дзіце пароль і наці�ніце "Далей". Паролі неабходна ўводзіць з улікам р�гі�тра.
+PasswordEditLabel=&Пароль:
+IncorrectPassword=Вы ўв�лі н�правільны пароль. Па�прабуйце �шч� раз.
 
 ; *** "License Agreement" wizard page
-WizardLicense=˳öýíç³éíàÿ äàìîâà
-LicenseLabel=Ïåðàä òûì, ÿê ïà÷àöü óñòàëÿâàííå, ïðà÷ûòàéöå íàñòóïíóþ ³íôàðìàöûþ.
-LicenseLabel3=Êàë³ ëàñêà, ïðà÷ûòàéöå íàñòóïíóþ ë³öýíç³éíóþ äàìîâó. Êàá óñòàëÿâàöü ïðàãðàìó Âû ïàâ³ííû ïðûíÿöü óìîâû ãýòàãà ïàãàäåííÿ.
-LicenseAccepted=ß &ïðûìàþ äàìîâó
-LicenseNotAccepted=ß &íå ïðûìàþ äàìîâó
+WizardLicense=Ліц�нзійнае пагадненне
+LicenseLabel=Перад тым �к прац�гнуць, калі ла�ка, прачытайце на�тупную важную інфармацыю.
+LicenseLabel3=Калі ла�ка, прачытайце на�тупнае Ліц�нзійнае пагадненне. Вам неабходна пагадзіцца з ім перад тым, �к прац�гнуць у�тал�ванне.
+LicenseAccepted=Я &прымаю ўмовы пагадненн�
+LicenseNotAccepted=Я &не прымаю ўмовы пагадненн�
 
 ; *** "Information" wizard pages
-WizardInfoBefore=Çâåñòê³
-InfoBeforeLabel=Ïðà÷ûòàéöå íàñòóïíóþ ³íôàðìàöûþ ïåðàä ïðàöÿãàì óñòàëÿâàííÿ.
-InfoBeforeClickLabel=Êàë³ áóäçåöå ãàòîâû ïðàöÿãíóöü óñòàëÿâàííå, íàö³ñí³öå Äàëåé.
-WizardInfoAfter=Çâåñòê³
-InfoAfterLabel=Ïðà÷ûòàéöå íàñòóïíóþ ³íôàðìàöûþ ïåðàä çàâÿðøýííåì óñòàëÿâàííÿ.
-InfoAfterClickLabel=Êàë³ áóäçåöå ãàòîâû ïðàöÿãíóöü óñòàëÿâàííå, íàö³ñí³öå Äàëåé.
+WizardInfoBefore=Інфармацы�
+InfoBeforeLabel=Перад тым �к прац�гнуць, прачытайце на�тупную важную інфармацыю.
+InfoBeforeClickLabel=Калі вы будзеце гатовы прац�гнуць у�тал�ванне, наці�ніце "Далей".
+WizardInfoAfter=Інфармацы�
+InfoAfterLabel=Перад тым �к прац�гнуць, прачытайце на�тупную важную інфармацыю.
+InfoAfterClickLabel=Калі вы будзеце гатовы прац�гнуць у�тал�ванне, наці�ніце "Далей".
 
 ; *** "User Information" wizard page
-WizardUserInfo=Çâåñòê³ ïðà êàðûñòàëüí³êà
-UserInfoDesc=Êàë³ ëàñêà, óâÿäç³öå ³íôàðìàöûþ ïðà ñÿáå.
-UserInfoName=²ìÿ ³ ïðîçâ³ø÷à êàðûñòà÷à:
-UserInfoOrg=&Àðãàí³çàöûÿ:
-UserInfoSerial=&Ñåðûéíû íóìàð:
-UserInfoNameRequired=Âû ïàâ³ííû ¢âåñö³ ñâภ³ìÿ.
+WizardUserInfo=Інфармацы� пра кары�тальніка
+UserInfoDesc=Ув�дзіце інфармацыю пра ��бе.
+UserInfoName=&Ім� кары�тальніка:
+UserInfoOrg=&�рганізацы�:
+UserInfoSerial=&Серыйны нумар:
+UserInfoNameRequired=�еабходна ўве�ці ім�.
 
 ; *** "Select Destination Location" wizard page
-WizardSelectDir=Òý÷êà ïðûçíà÷ýííÿ
-SelectDirDesc=Êóäû óñòàëÿâàöü ïðàãðàìó «[name]»?
-SelectDirLabel3=Ïðàãðàìà «[name]» áóäçå ¢ñòàëÿâàíà ¢ íàñòóïíóþ òý÷êó:
-SelectDirBrowseLabel=Íàö³ñí³öå Äàëåé äëÿ ïðàöÿãó. Êàë³ Âû æàäàåöå àáðàöü ³íøóþ òý÷êó, òî íàö³ñí³öå Àãëÿä.
-DiskSpaceMBLabel=Ïðàãðàìà ïàòðàáóå íå ìåíø çà [mb] Ìá âîëüíàé äûñêàâàé ïðàñòîðû.
-CannotInstallToNetworkDrive=Íå ìàãó ¢ñòàëÿâàöü ïðàãðàìó íà ñåòêàâû äûñê.
-CannotInstallToUNCPath=Íå ìàãó ¢ñòàëÿâàöü ïðàãðàìó ¢ òý÷êó ïà UNC-øëÿõó.
-InvalidPath=Íåàáõîäíà àçíà÷ûöü ïî¢íû ñåòêàâû øëÿõ ç ë³òàðàé ïðûëàäû, íàïðûêëàä:%n%nC:\APP%n%nö³ ¢ ôîðìå UNC:%n%n\\ñåðâåð\ðýñóðñ
-InvalidDrive=Àáðàíû Âàì³ äûñê ö³ ñåòêàâû øëÿõ íå ³ñíóå ö³ íåäàñòóïíû. Êàë³ ëàñêà, àçíà÷öå ³íøû.
-DiskSpaceWarningTitle=Íå õàïàå ìåñöà íà äûñêó
-DiskSpaceWarning=Óñòà븢í³ê ïàòðàáóå %1 Êá âîëüíàé ïðàñòîðû, à íà àáðàíûì äûñêó ¸ñöü òîëüê³ %2 Êá.%n%nÂû ¢ñ¸ ðî¢íà æàäàåöå ïðàöÿãíóöü óñòàëÿâàííå?
-DirNameTooLong=²ìÿ òý÷ê³ ö³ øëÿõ äà ÿå çàäî¢ã³ÿ.
-InvalidDirName=Íàçâà òý÷ê³ õ³áíàÿ.
-BadDirName32=Íàçâà òý÷ê³ íÿ ìîæà çìÿø÷àöü çíàê³:%n%n%1
-DirExistsTitle=Òý÷êà ³ñíóå
-DirExists=Òý÷êà:%n%n%1%n%nóæî ³ñíóå. Óñ¸ ðî¢íà ¢ñòàëÿâàöü ó ãýòó òý÷êó?
-DirDoesntExistTitle=Òý÷êà íå ³ñíóå
-DirDoesntExist=Òý÷êà:%n%n%1%n%níå ³ñíóå. Ñòâàðûöü ÿå?
+WizardSelectDir=Выбар папкі ў�тал�ванн�
+SelectDirDesc=У �кую папку неабходна ў�тал�ваць [name]?
+SelectDirLabel3=Праграма ў�талюе [name] у на�тупную папку.
+SelectDirBrowseLabel=Каб прац�гнуць, наці�ніце "Далей". Каб выбраць іншую папку, наці�ніце "�гл�д".
+DiskSpaceGBLabel=Патрабуецца не менш за [gb] ГБ вольнага ме�ца на ды�ку.
+DiskSpaceMBLabel=Патрабуецца не менш за [mb] МБ вольнага ме�ца на ды�ку.
+CannotInstallToNetworkDrive=�ельга ў�тал�ваць на �еткавы ды�к.
+CannotInstallToUNCPath=�ельга ў�тал�ваць у папку па �е шл�ху UNC.
+InvalidPath="Вы павінны ўве�ці поўны шл�х з літарай ды�ка; напрыклад:%n%nC:\APP%n%nабо ў фармаце UNC:%n%n\\назва_�ервера\\назва_р��ур�у"
+InvalidDrive=Ды�к або �еткавы р��ур� UNC не і�нуюць або �ны неда�тупны. Выберыце іншае ме�ца.
+DiskSpaceWarningTitle=�е хапае вольнага ме�ца на ды�ку
+DiskSpaceWarning=Дл� ў�тал�ванн� неабходна не менш за %1 КБ вольнага ме�ца, а на выбраным ды�ку зараз толькі %2 КБ.%n%nУ�ё роўна хочаце прац�гнуць у�тал�ванне?
+DirNameTooLong=�азва папкі або шл�х да �е перавышаюць дапушчальную даўжыню.
+InvalidDirName=�значана памылкова� назва папкі.
+BadDirName32=�азва папкі не можа зм�шчаць на�тупны� �імвалы: %n%n%1
+DirExistsTitle=Така� папка і�нуе
+DirExists=Папка%n%n%1%n%nужо і�нуе. У�ё роўна ў�тал�ваць у г�ту папку?
+DirDoesntExistTitle=Такой папкі не і�нуе
+DirDoesntExist=Папка:%n%n%1%n%nне і�нуе. Стварыць �е?
 
 ; *** "Select Components" wizard page
-WizardSelectComponents=Àáðàííå ñêëàäí³êà¢
-SelectComponentsDesc=ßê³ÿ ñêëàäí³ê³ òðýáà ¢ñòàëÿâàöü?
-SelectComponentsLabel2=Ïàçíà÷öå ñêëàäí³ê³, ÿê³ÿ òðýáà ¢ñòà븢âàöü; çí³ì³öå ïàçíàêó íàñóïðàöü íåïàòðýáíûõ ñêëàäí³êà¢. Íàö³ñí³öå Äàëåé, êàë³ áóäçåöå ãàòîâû ïðàöÿãíóöü.
-FullInstallation=Óñòàëÿâàöü öàëêàì
+WizardSelectComponents=Выбар кампанентаў
+SelectComponentsDesc=Які� кампаненты вы хочаце ў�тал�ваць?
+SelectComponentsLabel2="Выберыце кампаненты, �кі� вы хочаце ў�тал�ваць; здыміце птушкі з тых кампанентаў, �кі� вы не хочаце ў�талёўваць. Калі будзеце гатовы прац�гнуць, наці�ніце \"Далей\"."
+FullInstallation=Поўнае ў�тал�ванне
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=Êàìïàêòíàå ¢ñòàëÿâàííå
-CustomInstallation=Âûáàðêîâàå ¢ñòàëÿâàííå
-NoUninstallWarningTitle=Óñòàëÿâàíûÿ ñêëàäí³ê³
-NoUninstallWarning=Óâàãà, íàñòóïíûÿ ñêëàäí³ê³ ¢æî ¸ñöü íà Âàøûì êàìïóòàðû:%n%n%1%n%nÊàë³ Âû íå ïàçíà÷ûöå ³õ çàðàç, ÿíû íå áóäóöü âûäàëåíûÿ.%n%nÏðàöÿãíóöü óñ¸ ðî¢íà?
-ComponentSize1=%1 Êá
-ComponentSize2=%1 Ìá
-ComponentsDiskSpaceMBLabel=Áÿãó÷û âûáàð ïàòðàáóå íå ìåíø çà [mb] Ìá íà äûñêó.
+CompactInstallation=Кампактнае ў�тал�ванне
+CustomInstallation=Выбарачнае ў�тал�ванне
+NoUninstallWarningTitle=У�тал�ваны� кампаненты
+NoUninstallWarning=Праграма ў�тал�ванн� вы�віла, што на вашым камп'ютары ўжо ў�тал�ваны на�тупны� кампаненты:%n%n%1%n%nКалі �ка�аваць выбар г�тых кампанентаў, �ны не будуць выдалены.%n%nУ�ё роўна хочаце прац�гнуць у�тал�ванне?
+ComponentSize1=%1 КБ
+ComponentSize2=%1 МБ
+ComponentsDiskSpaceGBLabel=Б�гучы выбар патрабуе не менш за [gb] ГБ вольнага ме�ца на ды�ку.
+ComponentsDiskSpaceMBLabel=Б�гучы выбар патрабуе не менш за [mb] МБ вольнага ме�ца на ды�ку.
 
 ; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=Äàäàòêîâà
-SelectTasksDesc=ßê³ÿ äàäàòêîâûÿ äçåÿíí³ òðýáà âûêàíàöü?
-SelectTasksLabel2=Ïàçíà÷öå äàäàòêîâûÿ äçåÿíí³, ÿê³ÿ áóäóöü âûêàíàíûÿ ïàä÷àñ ¢ñòàëÿâàííÿ ïðàãðàìû «[name]», ³ íàö³ñí³öå Äàëåé.
+WizardSelectTasks=Выберыце дадатковы� задачы
+SelectTasksDesc=Які� дадатковы� задачы неабходна выканаць?
+SelectTasksLabel2=Выберыце дадатковы� задачы, �кі� неабходна выканаць падча� у�тал�ванн� [name]. Па�л� г�тага наці�ніце "Далей".
 
 ; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Àáðàííå òý÷ê³ ¢ ìåíþ Ïóñê
-SelectStartMenuFolderDesc=Àáÿðûöå òý÷êó ¢ ìåíþ Ïóñê, äçå áóäóöü ñòâîðàíû öýòë³ê³ äëÿ ïðàãðàìû.
-SelectStartMenuFolderLabel3=Öýòë³ê³ ïðàãðàìû áóäóöü ñòâîðàíû ¢ íàñòóïíàé òý÷öû ìåíþ Ïóñê.
-SelectStartMenuFolderBrowseLabel=Êàá ïðàöÿãíóöü - íàö³ñí³öå Äàëåé. Êàë³ Âû æàäàåöå àáðàöü ³íøóþ òý÷êó - íàö³ñí³öå Àãëÿä.
-MustEnterGroupName=Âû ïàâ³ííû ¢âåñö³ ³ìÿ òý÷ê³.
-GroupNameTooLong=Íàçâà òý÷ê³ ö³ øëÿõ çàäî¢ã³ÿ.
-InvalidGroupName=Íàçâà òý÷ê³ õ³áíàÿ.
-BadGroupName=Íàçâà òý÷ê³ íÿ ìîæà ìåöü íàñòóïíûÿ çíàê³:%n%n%1
-NoProgramGroupCheck2=&Íå ñòâàðàöü òý÷êó ¢ ìåíþ Ïóñê
-
+WizardSelectProgramGroup=Выберыце папку ў меню "Пу�к"
+SelectStartMenuFolderDesc=Дзе праграма ў�тал�ванн� павінна �тварыць �рлыкі?
+SelectStartMenuFolderLabel3=Праграма ў�тал�ванн� �творыць �рлыкі ў на�тупнай папцы меню "Пу�к".
+SelectStartMenuFolderBrowseLabel=Каб прац�гнуць, наці�ніце "Далей". Каб выбраць іншую папку, наці�ніце "�гл�д".
+MustEnterGroupName=�еабходна ўве�ці назву папкі.
+GroupNameTooLong=�азва папкі або шл�х да �е перавышаюць дапушчальную даўжыню.
+InvalidGroupName=�значана памылкова� назва папкі.
+BadGroupName=�азва папкі не можа зм�шчаць на�тупны� �імвалы:%n%n%1
+NoProgramGroupCheck2=&�е �твараць папку ў меню "Пу�к"
 ; *** "Ready to Install" wizard page
-WizardReady=Óñ¸ ãàòîâà äà ¢ñòàëÿâàííÿ
-ReadyLabel1=Óñ¸ ãàòîâà äà ¢ñòàëÿâàííÿ ïðàãðàìû «[name]» íà Âàø êàìïóòàð.
-ReadyLabel2a=Íàö³ñí³öå ¡ñòàëÿâàöü êàá ïðàöÿãíóöü óñòàëÿâàííå, àáî Íàçàä - êàë³ Âû æàäàåöå çìÿí³öü íàëàäû.
-ReadyLabel2b=Íàö³ñí³öå ¡ñòàëÿâàöü êàá ïðàöÿãíóöü óñòàëÿâàííå.
-ReadyMemoUserInfo=Çâåñòê³ ïðà êàðûñòà÷à:
-ReadyMemoDir=Òý÷êà ïðûçíà÷ýííÿ:
-ReadyMemoType=Òûï óñòà븢ê³:
-ReadyMemoComponents=Àáðàíûÿ ñêëàäí³ê³:
-ReadyMemoGroup=Òý÷êà ¢ ìåíþ Ïóñê:
-ReadyMemoTasks=Äàäàòêîâûÿ äçåÿíí³:
-
+WizardReady=У�ё гатова да ў�тал�ванн�
+ReadyLabel1=Праграма ў�тал�ванн� гатова пачаць у�талёўваць [name] на ваш камп'ютар.
+ReadyLabel2a=Каб прац�гнуць, наці�ніце "У�тал�ваць". Каб прагледзець або зм�ніць налады ў�тал�ванн�, наці�ніце "�азад".
+ReadyLabel2b=Каб прац�гнуць, наці�ніце "У�тал�ваць".
+ReadyMemoUserInfo=Інфармацы� пра кары�тальніка:
+ReadyMemoDir=Папка ў�тал�ванн�:
+ReadyMemoType=Тып у�тал�ванн�:
+ReadyMemoComponents=Выбраны� кампаненты:
+ReadyMemoGroup=Папка ў меню "Пу�к":
+ReadyMemoTasks=Дадатковы� задачы:
+; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
+DownloadingLabel=Спампоўванне дадатковых файлаў...
+ButtonStopDownload=&Спыніць �пампоўванне
+StopDownload=Вы �апраўды хочаце �пыніць �пампоўванне?
+ErrorDownloadAborted=Спампоўванне перарвана
+ErrorDownloadFailed=Збой �пампоўванн�: %1%2
+ErrorDownloadSizeFailed=Збой атрыманн� памеру: %1 %2
+ErrorFileHash1=Збой х�ша файла: %1
+ErrorFileHash2=Памылковы х�ш файла: чакаў�� %1, а знойдзены %2
+ErrorProgress=Памылковы ход выкананн�: %1 з %2
+ErrorFileSize=Памылковы памер файла: чакаў�� %1, а знойдзены %2
 ; *** "Preparing to Install" wizard page
-WizardPreparing=Ïàäðûõòî¢êà äà ¢ñòàëÿâàííÿ
-PreparingDesc=Ïðàãðàìà ¢ñòàëÿâàííÿ ðûõòóåööà óñòàëÿâàöü «[name]» íà Âàø êàìïóòàð.
-PreviousInstallNotCompleted=Óñòàëÿâàííå ö³ âûäàëåííå ³íøàé ïðàãðàìû íå áûëî ñêîí÷àíà. Âû ïàâ³ííû ïåðàçàïóñö³öü êàìïóòàð, êàá ñêîí÷ûöü òîå ¢ñòàëÿâàííå.%n%nÏàñëÿ ïåðàçàãðóçê³ çàïóñö³öå ãýòû ¢ñòà븢í³ê ÿø÷ý ðàç, êàá óñòàëÿâàöü «[name]».
-CannotContinue=Íå ìàãó ïðàöÿãíóöü óñòàëÿâàííå. Íàö³ñí³öå Àäìåíà êàá âûéñö³ ç ïðàãðàìû.
-ApplicationsFound=Íàñòóïíûÿ ïðàãðàìû çàõàï³ë³ ôàéëû, ÿê³ÿ ¢ñòà븢í³ê ïàâ³íåí àáíàâ³öü. Ðýêàìåíäóþ äàçâîë³öü ¢ñòà븢í³êó ñàìàñòîéíà çàêðûöü ãýòûÿ ïðàãðàìû.
-ApplicationsFound2=Íàñòóïíûÿ ïðàãðàìû çàõàï³ë³ ôàéëû, ÿê³ÿ ¢ñòà븢í³ê ïàâ³íåí àáíàâ³öü. Ðýêàìåíäóþ äàçâîë³öü ¢ñòà븢í³êó ñàìàñòîéíà çàêðûöü ãýòûÿ ïðàãðàìû. Êàë³ ¢ñòàëÿâàííå áóäçå ñêîí÷àíà, óñòà븢í³ê ïàñïðàáóå çíî¢ çàïóñö³öü ³õ.
-CloseApplications=&À¢òàìàòû÷íà çàêðûöü ãýòûÿ ïðàãðàìû
-DontCloseApplications=&Íå çàêðûâàöü ãýòûÿ ïðàãðàìû
-ErrorCloseApplications=Óñòà븢í³ê íå çìîã ñàìàñòîéíà çàêðûöü óñå ïðàãðàìû. Ðýêàìåíäóþ çàêðûöü óñå ïðàãðàìû, øòî çàõàï³ë³ ïàäëåãëûÿ àáíà¢ëåííþ ôàéëû, ïåðø ÷ûì ïðàöÿãíóöü óñòàëÿâàííå.
-
+WizardPreparing=Падрыхтоўка да ў�тал�ванн�
+PreparingDesc=Праграма ў�тал�ванн� рыхтуецца ў�тал�ваць [name] на ваш камп'ютар.
+PreviousInstallNotCompleted=У�тал�ванне або выдаленне пап�р�дн�й вер�іі праграмы не былі завершаны. �еабходны перазапу�к вашага камп'ютара, каб зав�ршыць пап�р�дн�е ў�тал�ванне.%n%nПа�л� перазапу�ку запу�ціце праграму ў�тал�ванн� паўторна, каб зав�ршыць прац�� у�тал�ванн� [name].
+CannotContinue=�е атрымала�� прац�гнуць у�тал�ванне. �аці�ніце "Ска�аваць", каб вый�ці з праграмы.
+ApplicationsFound=�а�тупны� праграмы выкары�тоўваюць файлы, �кі� праграма ў�тал�ванн� павінна абнавіць. Р�камендуецца дазволіць праграме ў�тал�ванн� закрыць г�ты� праграмы.
+ApplicationsFound2=�а�тупны� праграмы выкары�тоўваюць файлы, �кі� праграма ў�тал�ванн� павінна абнавіць. Р�камендуецца дазволіць праграме ў�тал�ванн� закрыць г�ты� праграмы. Па�л� зав�рш�нн� прац��у, праграма ў�тал�ванн� па�прабуе перазапу�ціць іх.
+CloseApplications=&�ўтаматычна закрыць г�ты� праграмы
+DontCloseApplications=&�е закрываць г�ты� праграмы
+ErrorCloseApplications=Праграма ў�тал�ванн� не змагла аўтаматычна закрыць у�е праграмы. Перад тым �к прац�гнуць, р�камендуем закрыць у�е праграмы, �кі� выкары�тоўваюць файлы, прызначаны� дл� абнаўленн�.
+PrepareToInstallNeedsRestart=Праграма ў�тал�ванн� павінна перазапу�ціць ваш камп'ютар. Па�л� перазапу�ку камп'ютара, калі ла�ка, запу�ціце праграму ў�тал�ванн� �шч� раз, каб зав�ршыць у�тал�ванне [name].%n%nВыканаць перазапу�к зараз?
 ; *** "Installing" wizard page
-WizardInstalling=Óñòàëÿâàííå ïðàãðàìû
-InstallingLabel=×àêàéöå, ïàêóëü ïðàãðàìà «[name]» óñòà븢âàåööà íà Âàø êàìïóòàð.
-
+WizardInstalling=У�тал�ванне...
+InstallingLabel=Пачакайце, пакуль [name] у�талюецца на ваш камп'ютар.
 ; *** "Setup Completed" wizard page
-FinishedHeadingLabel=Çàêàí÷ýííå ¢ñòàëÿâàííÿ «[name]».
-FinishedLabelNoIcons=Óñòàëÿâàííå ïðàãðàìû «[name]» ñêîí÷àíà.
-FinishedLabel=Óñòàëÿâàííå ïðàãðàìû «[name]» ñêîí÷àíà. ßå ìîæíà çàïóñö³öü óñòàëÿâàíàé ñïàñûëêàé.
-ClickFinish=Íàö³ñí³öå Ãàòîâà, êàá âûéñö³ ç óñòà븢í³êà.
-FinishedRestartLabel=Êàá ñêîí÷ûöü óñòàëÿâàííå ïðàãðàìû «[name]» òðýáà ïåðàçàïóñö³öü Âàø êàìïóòàð. Ïåðàçàïóñö³öü çàðàç?
-FinishedRestartMessage=Êàá ñêîí÷ûöü óñòàëÿâàííå ïðàãðàìû «[name]» òðýáà ïåðàçàïóñö³öü Âàø êàìïóòàð.%n%nÏåðàçàïóñö³öü çàðàç?
-ShowReadmeCheck=ß æàäàþ ïà÷ûòàöü äàäàòêîâóþ ³íôàðìàöûþ
-YesRadio=&Òàê, ïåðàçàïóñö³ êàìïóòàð çàðàç
-NoRadio=&Íå, ÿ ïåðàçàïóø÷ó ïàçíåé
+FinishedHeadingLabel=Зав�рш�нне працы май�тра ў�тал�ванн� [name]
+FinishedLabelNoIcons=Праграма [name] у�тал�вана на ваш камп'ютар.
+FinishedLabel=Праграма [name] у�тал�вана на ваш камп'ютар. Яе можна запу�ціць з дапамогай адпаведнага �рлыка.
+ClickFinish=Каб вый�ці з праграмы ў�тал�ванн�, наці�ніце "Зав�ршыць".
+FinishedRestartLabel=Каб зав�ршыць у�тал�ванне [name], неабходна перазапу�ціць ваш камп'ютар. Зрабіць г�та зараз?
+FinishedRestartMessage=Каб зав�ршыць у�тал�ванне [name], неабходна перазапу�ціць ваш камп'ютар.%n%nЗрабіць г�та зараз?
+ShowReadmeCheck=Я хачу прагледзець файл README
+YesRadio=&Так, перазапу�ціць камп'ютар зараз
+NoRadio=&�е, � перазапушчу камп'ютар пазней
 ; used for example as 'Run MyProg.exe'
-RunEntryExec=Âûêàíàöü %1
+RunEntryExec=Выканаць %1
 ; used for example as 'View Readme.txt'
-RunEntryShellExec=Ïðàãëåäçåöü %1
-
+RunEntryShellExec=Прагледзець %1
 ; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=Ïàòðàáóåööà íàñòóïíû äûñê
-SelectDiskLabel2=Óñòà¢öå äûñê %1 ³ íàö³ñí³öå Äîáðà.%n%nÊàë³ ôàéëû íà ãýòûì äûñêó çíàõîäçÿööà ¢ òý÷öû, ÿêàÿ àäðîçí³âàåööà àä ïàêàçàíàé í³æýé, òî àçíà÷öå ñëóøíû øëÿõ, ö³ íàö³ñí³öå Àãëÿä.
-PathLabel=&Øëÿõ:
-FileNotInDir2=Ôàéë «%1» íÿ çíîéäçåíû ¢ «%2». Óñòà¢öå ïàòðýáíû äûñê ö³ àçíà÷öå ³íøóþ òý÷êó.
-SelectDirectoryLabel=Àçíà÷öå ìåñöàâàííå íàñòóïíàãà äûñêà.
-
+ChangeDiskTitle=�еабходна ў�тавіць на�тупны ды�к
+SelectDiskLabel2=У�таўце ды�к %1 і наці�ніце "Добра".%n%nКалі файлы г�тага ды�ка можна знай�ці ў папцы, �ка� адрозніваецца ад азначанай ніж�й, ув�дзіце правільны шл�х або наці�ніце "�гл�д".
+PathLabel=&Шл�х:
+FileNotInDir2=Файл "%1" не знойдзены ў "%2". Калі ла�ка, у�таўце правільны ды�к або выберыце іншую папку.
+SelectDirectoryLabel=Калі ла�ка, азначце шл�х да на�тупнага ды�ка.
 ; *** Installation phase messages
-SetupAborted=Óñòàëÿâàííå íå ñêîí÷àíà.%n%nÊàë³ ëàñêà, âûðàøûöå ïðàáëåìó ³ çàïóñö³öå ¢ñòà븢í³ê ³çíî¢
-EntryAbortRetryIgnore=Íàö³ñí³öå Ïà¢òàðûöü, êàá ïàñïðàáàâàöü ÿø÷ý, Ïðàïóñö³öü - êàá ïðàïóñö³öü ôàéë, ö³ Àäìåíà - êàá ñïûí³öü óñòàëÿâàííå.
-
+SetupAborted=У�тал�ванне не было завершана.%n%nВырашыце праблему і запу�ціце праграму ў�тал�ванн� �шч� раз.
+AbortRetryIgnoreSelectAction=Выберыце дзе�нне
+AbortRetryIgnoreRetry=&Па�прабаваць �шч� раз
+AbortRetryIgnoreIgnore=&Ігнараваць памылку і прац�гнуць
+AbortRetryIgnoreCancel=Ска�аваць у�тал�ванне
 ; *** Installation status messages
-StatusClosingApplications=Çàêðûöö¸ ïðàãðàìà¢...
-StatusCreateDirs=Ñòâàðýííå òý÷êà¢...
-StatusExtractFiles=Ðàñïàêàâàííå ôàéëà¢...
-StatusCreateIcons=Ñòâàðýííå öýòë³êà¢...
-StatusCreateIniEntries=Ñòâàðýííå INI-ôàéëà¢...
-StatusCreateRegistryEntries=Ñòâàðýííå çàï³ñࢠðýåñòðó...
-StatusRegisterFiles=Ðýã³ñòðàöûÿ ôàéëà¢...
-StatusSavingUninstall=Çàõàâàííå ³íôàðìàöû³ äëÿ äý¢ñòàëÿâàííÿ...
-StatusRunProgram=Çàêàí÷ýííå ¢ñòàëÿâàííÿ...
-StatusRestartingApplications=Ïåðàçàïóñê ïðàãðàìà¢...
-StatusRollback=Àäêàò çìåíà¢...
-
+StatusClosingApplications=Закрыццё праграм...
+StatusCreateDirs=Ствар�нне каталогаў...
+StatusExtractFiles=Выманне файлаў...
+StatusCreateIcons=Ствар�нне �рлыкоў...
+StatusCreateIniEntries=Ствар�нне запі�аў INI...
+StatusCreateRegistryEntries=Ствар�нне запі�аў р�е�тра...
+StatusRegisterFiles=Р�гі�трацы� файлаў...
+StatusSavingUninstall=Захаванне інфармацыі дл� выдаленн�...
+StatusRunProgram=Зав�рш�нне ў�тал�ванн�...
+StatusRestartingApplications=Перазапу�к праграм...
+StatusRollback=�дкат змен...
 ; *** Misc. errors
-ErrorInternal2=Óíóòðàíû çáîé %1
-ErrorFunctionFailedNoCode=%1: çáîé
-ErrorFunctionFailed=%1: çáîé; êîä %2
-ErrorFunctionFailedWithMessage=%1: çáîé; êîä %2.%n%3
-ErrorExecutingProgram=Íå ìàãó âûêàíàöü ôàéë:%n%1
-
+ErrorInternal2=Унутрана� памылка: %1
+ErrorFunctionFailedNoCode=%1 збой
+ErrorFunctionFailed=%1 збой ; code %2
+ErrorFunctionFailedWithMessage=%1 збой ; code %2.%n%3
+ErrorExecutingProgram=�емагчыма выканаць файл:%n%1
 ; *** Registry errors
-ErrorRegOpenKey=Íå ìàãó àäêðûöü êëþ÷ ðýåñòðà:%n%1\%2
-ErrorRegCreateKey=Íå ìàãó ñòâàðûöü êëþ÷ ðýåñòðà:%n%1\%2
-ErrorRegWriteKey=Íå ìàãó çàï³ñàöü ó êëþ÷ ðýåñòðà:%n%1\%2
-
+ErrorRegOpenKey=Памылка адкрыцц� ключа р�е�тра:%n%1\%2
+ErrorRegCreateKey=Памылка �твар�нн� ключа р�е�тра:%n%1\%2
+ErrorRegWriteKey=Памылка запі�у ў ключ р�е�тра:%n%1\%2
 ; *** INI errors
-ErrorIniEntry=Íå ìàãó ñòâàðûöü ñåêöûþ ¢ INI-ôàéëå «%1».
-
+ErrorIniEntry=Памылка �твар�нн� запі�у ў файле INI "%1".
 ; *** File copying errors
-FileAbortRetryIgnore=Íàö³ñí³öå Ïà¢òàðûöü, êàá ïàñïðàáàâàöü ÿø÷ý, Ïðàïóñö³öü - êàá ïðàïóñö³öü ôàéë (íå ðýêàìåíäóþ), ö³ Àäìåíà - êàá ñïûí³öü óñòàëÿâàííå.
-FileAbortRetryIgnore2=Íàö³ñí³öå Ïà¢òàðûöü, êàá ïàñïðàáàâàöü ÿø÷ý, Ïðàïóñö³öü - êàá ïðàöÿãíóöü ïðàöó (íå ðýêàìåíäóþ), ö³ Àäìåíà - êàá ñïûí³öü óñòàëÿâàííå.
-SourceIsCorrupted=Âûòî÷íû ôàéë ïàøêîäæàíû.
-SourceDoesntExist=Âûòî÷íû ôàéë «%1» íå ³ñíóå.
-ExistingFileReadOnly=²ñíû ôàéë ïàçíà÷àíû ÿê «òîëüê³ äëÿ ÷ûòàííÿ».%n%nÍàö³ñí³öå Ïà¢òàðûöü, êàá çíÿöü ïàçíàêó ³ ïà¢òàðûöü ñïðîáó, Ïðàïóñö³öü - êàá ïðàïóñö³öü ôàéë, ö³ Àäìåíà - êàá ñïûí³öü óñòàëÿâàííå.
-ErrorReadingExistingDest=Àäáû¢ñÿ çáîé ïðû ñïðîáå ÷ûòàííÿ ³ñíàãà ôàéëà:
-FileExists=Ôàéë óæî ³ñíóå.%n%nÏåðàçàï³ñàöü ÿãî?
-ExistingFileNewer=²ñíû ôàéë íàâåéøû çà òîé, øòî óñòà븢âàåööà. Ðåêàìåíäóþ ïàê³íóöü ³ñíû ôàéë.%n%nÏàê³íóöü ³ñíû ôàéë?
-ErrorChangingAttr=Çáîé ïàä÷àñ ñïðîáû çìåíû àòðûáóòࢠ³ñíàãà ôàéëà:
-ErrorCreatingTemp=Çáîé ïàä÷àñ ñïðîáû ñòâàðýííÿ ôàéëà ¢ òý÷öû ïðûçíà÷ýííÿ:
-ErrorReadingSource=Çáîé ïàä÷àñ ñïðîáû ÷ûòàííÿ âûòî÷íàãà ôàéëà:
-ErrorCopying=Çáîé ïàä÷àñ ñïðîáû êàï³ÿâàííÿ ôàéëà:
-ErrorReplacingExistingFile=Çáîé ïàä÷àñ ñïðîáû çàìåíû ³ñíàãà ôàéëà:
-ErrorRestartReplace=Ïà¢òîðíàå êàï³ÿâàííå íå àäáûëîñÿ:
-ErrorRenamingTemp=Çáîé ïàä÷àñ ñïðîáû ïåðàíàçâàííÿ ôàéëà ¢ òý÷öû ïðûçíà÷ýííÿ:
-ErrorRegisterServer=Íå ìàãó çàðýã³ñòðàâàöü DLL/OCX: %1
-ErrorRegSvr32Failed=Çáîé ïðàöû RegSvr32, êîä çâàðîòó %1
-ErrorRegisterTypeLib=Íå ìàãó çàðýã³ñòðàâàöü á³áë³ÿòýêó òûïà¢: %1
-
+FileAbortRetryIgnoreSkipNotRecommended=&Прапу�ціць г�ты файл (не р�камендуецца)
+FileAbortRetryIgnoreIgnoreNotRecommended=&Ігнараваць памылку і прац�гнуць (не р�камендуецца)
+SourceIsCorrupted=Зыходны файл пашкоджаны
+SourceDoesntExist=Зыходны файл "%1" не і�нуе
+ExistingFileReadOnly2=І�нуючы файл нельга зам�ніць, бо ён пазначаны толькі дл� чытанн�.
+ExistingFileReadOnlyRetry=&Выдаліць атрыбут толькі дл� чытанн� і па�прабаваць �шч� раз
+ExistingFileReadOnlyKeepExisting=&Пакінуць і�нуючы файл
+ErrorReadingExistingDest=�дбыла�� памылка пры �пробе прачытаць і�нуючы файл:
+FileExistsSelectAction=Выберыце дзе�нне
+FileExists2=Файл ужо і�нуе.
+FileExistsOverwriteExisting=&Перазапі�аць і�нуючы файл
+FileExistsKeepExisting=&Пакінуць і�нуючы файл
+FileExistsOverwriteOrKeepAll=&Выконваць г�та дзе�нне дл� ў�іх на�тупных канфліктаў
+ExistingFileNewerSelectAction=Выберыце дзе�нне
+ExistingFileNewer2=І�нуючы файл з'�ўл�цца больш новым за той, �кі вы �прабуеце ў�тал�ваць.
+ExistingFileNewerOverwriteExisting=&Перазапі�аць і�нуючы файл
+ExistingFileNewerKeepExisting=&Пакінуць і�нуючы файл (р�камендуецца)
+ExistingFileNewerOverwriteOrKeepAll=&Выконваць г�та дзе�нне дл� ў�іх на�тупных канфліктаў
+ErrorChangingAttr=�дбыла�� памылка пры �пробе зм�ніць атрыбуты і�нуючага файла:
+ErrorCreatingTemp=�дбыла�� памылка пры �пробе �тварыць файл у каталогу прызнач�нн�:
+ErrorReadingSource=�дбыла�� памылка пры �пробе прачытаць зыходны файл:
+ErrorCopying=�дбыла�� памылка пры �пробе �капі�ваць файл:
+ErrorReplacingExistingFile=�дбыла�� памылка пры �пробе зам�ніць і�нуючы файл:
+ErrorRestartReplace=Збой прац�дуры RestartReplace:
+ErrorRenamingTemp=�дбыла�� памылка пры �пробе перайменаваць файл у каталогу прызнач�нн�:
+ErrorRegisterServer=�емагчыма зар�гі�траваць DLL або OCX: %1
+ErrorRegSvr32Failed=Памылка пры выкананні RegSvr32, код выхаду %1
+ErrorRegisterTypeLib=�емагчыма зар�гі�траваць біблі�т�ку тыпаў: %1
+; *** Uninstall display name markings
+; used for example as 'My Program (32-bit)'
+UninstallDisplayNameMark=%1 (%2)
+; used for example as 'My Program (32-bit, All users)'
+UninstallDisplayNameMarks=%1 (%2, %3)
+UninstallDisplayNameMark32Bit=32-біты
+UninstallDisplayNameMark64Bit=64-біты
+UninstallDisplayNameMarkAllUsers=У�е кары�тальнікі
+UninstallDisplayNameMarkCurrentUser=Б�гучы кары�тальнік
 ; *** Post-installation errors
-ErrorOpeningReadme=Çáîé ïàä÷àñ ñïðîáû àäêðûööÿ ôàéëà README:
-ErrorRestartingComputer=Óñòà븢í³ê íÿ ìîæà ïåðàçàïóñö³öü êàìïóòàð. Ïåðàçàãðóç³öå ¢ðó÷íóþ.
-
+ErrorOpeningReadme=�дбыла�� памылка пры �пробе адкрыць файл README.
+ErrorRestartingComputer=Праграма ў�тал�ванн� не змагла перазапу�ціць камп'ютар. Зрабіце г�та ўручную.
 ; *** Uninstaller messages
-UninstallNotFound=Ôàéë «%1» íå ³ñíóå, äý¢ñòàëÿâàííå íåìàã÷ûìà.
-UninstallOpenError=Íåëüãà àäêðûöü ôàéë «%1», äý¢ñòàëÿâàííå íåìàã÷ûìà.
-UninstallUnsupportedVer=Ôàðìàò ïðàòàêîëà äý¢ñòàëÿâàííÿ «%1» íå ðàñïàçíàíû ãýòàé âåðñ³ÿé äý¢ñòà븢í³êà. Äý¢ñòàëÿâàííå íåìàã÷ûìà.
-UninstallUnknownEntry=Íåâÿäîìû çàï³ñ (%1) áû¢ çíîéäçåíû ¢ ôàéëå ïðàòàêîëà äý¢ñòàëÿâàííÿ
-ConfirmUninstall=Âû ñàïðà¢äû æàäàåöå âûäàë³öü «%1» ³ ¢ñå ñêëàäí³ê³ ïðàãðàìû?
-UninstallOnlyOnWin64=Ãýòó ïðàãðàìó ìîæíà äý¢ñòàëÿâàöü òîëüê³ ¢ àñÿðîääç³ 64-á³òíàé Windows.
-OnlyAdminCanUninstall=Ãýòà ïðàãðàìà ìîæà áûöü äý¢ñòàëÿâàíà òîëüê³ êàðûñòà÷îì ç ïðàâàì³ àäì³í³ñòðàòàðà.
-UninstallStatusLabel=Ïà÷àêàéöå, ïàêóëü «%1» âûäàëÿåööà ç êàìïóòàðà.
-UninstalledAll=Ïðàãðàìà «%1» ïàñïÿõîâà âûäàëåíà ç êàìïóòàðà.
-UninstalledMost=Âûäàëåííå ïðàãðàìû «%1» ñêîí÷àíà.%n%nÍåêàòîðûÿ ýëåìåíòû íå âûäàëåíûÿ. ²õ ìîæíà âûäàë³öü ñàìàñòîéíà.
-UninstalledAndNeedsRestart=Êàá ñêîí÷ûöü äý¢ñòàëÿâàííå «%1», òðýáà ïåðàçàïóñö³öü êàìïóòàð.%n%nÖ³ æàäàåöå çðàá³öü ãýòà çàðàç?
-UninstallDataCorrupted=Ôàéë «%1» ïàøêîäæàíû. Äý¢ñòàëÿâàííå íåìàã÷ûìà.
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=Âûäàë³öü ñóìåñíà êàðûñòàíû ôàéë?
-ConfirmDeleteSharedFile2=ѳñòýìà ïàêàçâàå, øòî íàñòóïíû ñóìåñíà êàðûñòàíû ôàéë áîëüø íå ïàòðýáíû ³íøûì ïðàãðàìàì. Ïàöâÿðäæàåöå âûäàëåííå ôàéëà?%n%nÊàë³ íåéê³ÿ ïðàãðàìû ¢ñ¸ ÿø÷ý êàðûñòàþööà ãýòûì ôàéëàì, ³ ¸í áóäçå âûäàëåíû, ÿíû íÿ çìîãóöü ïðàöàâàöü ïðàâ³ëüíà. Êàë³ Âû íÿ ¢ïý¢íåíû - àáÿðûöå Íå. Ïàê³íóòû ôàéë íå íàøêîäç³öü Âàøàé ñ³ñòýìå.
-SharedFileNameLabel=Íàçâà ôàéëà:
-SharedFileLocationLabel=Ìåñöàâàííå:
-WizardUninstalling=Ñòàí ïðàöýñó âûäàëåííÿ
-StatusUninstalling=Äý¢ñòàëÿâàííå %1...
-
+UninstallNotFound=Файл "%1" не і�нуе. �емагчыма выдаліць праграму.
+UninstallOpenError=�е атрымала�� адкрыць файл "%1". �емагчыма выдаліць праграму
+UninstallUnsupportedVer=Файл пратакола дл� выдаленн� "%1" не ра�пазнаны г�тай вер�і�й праграмы выдаленн�. �емагчыма выдаліць праграму
+UninstallUnknownEntry=У файле пратакола дл� выдаленн� �у�тр�ў�� нев�домы запі� (%1)
+ConfirmUninstall=Вы �апраўды хочаце выдаліць %1 і ў�е кампаненты праграмы?
+UninstallOnlyOnWin64=Г�ту праграму можна выдаліць толькі ў 64-бітнай вер�іі Windows.
+OnlyAdminCanUninstall=Г�ту праграму можа выдаліць толькі кары�тальнік з правамі адміні�тратара.
+UninstallStatusLabel=Пачакайце, пакуль адбудзецца выдаленне %1 з вашага камп'ютара.
+UninstalledAll=%1 выдалены з вашага камп'ютара.
+UninstalledMost=Выдаленне %1 завершана.%n%nЧа�тку �лементаў выдаліць не атрымала��. Вы можаце выдаліць іх уручную.
+UninstalledAndNeedsRestart=Каб зав�ршыць выдаленне %1, неабходна перазапу�ціць ваш камп'ютар.%n%nЗрабіць г�та зараз?
+UninstallDataCorrupted=Файл "%1" пашкоджаны. �емагчыма выдаліць праграму
+; *** Uninstallation phrase messages
+ConfirmDeleteSharedFileTitle=Выдаліць абагулены файл?
+ConfirmDeleteSharedFile2=Сі�т�ма паказвае, што на�тупны абагулены файл больш не выкары�тоўваецца ні�кімі іншымі праграмамі. Выдаліць г�ты абагулены файл?%n%nКалі �кі�-небудзь праграмы ў�ё �шч� выкары�тоўваць �го і ён будзе выдалены, то �ны могуць працаваць н�правільна. Калі вы не ўп�ўнены, выберыце "�е". Дадзены файл ні�к не пашкодзіць вашай �і�т�ме.
+SharedFileNameLabel=�азва файла:
+SharedFileLocationLabel=Разм�шч�нне:
+WizardUninstalling=Стату� выдаленн�
+StatusUninstalling=Выдаленне %1...
 ; *** Shutdown block reasons
-ShutdownBlockReasonInstallingApp=Óñòàëÿâàííå %1.
-ShutdownBlockReasonUninstallingApp=Äý¢ñòàëÿâàííå %1.
-
+ShutdownBlockReasonInstallingApp=У�тал�ванне %1.
+ShutdownBlockReasonUninstallingApp=Выдаленне %1.
 ; The custom messages below aren't used by Setup itself, but if you make
 ; use of them in your scripts, you'll want to translate them.
 
 [CustomMessages]
 
-NameAndVersion=%1, âåðñ³ÿ %2
-AdditionalIcons=Äàäàòêîâûÿ öýòë³ê³:
-CreateDesktopIcon=Ñòâàðûöü öýòë³ê íà &ïðàöî¢íûì ñòàëå
-CreateQuickLaunchIcon=Ñòâàðûöü öýòë³ê ó ïàíýë³ &õóòêàãà çàïóñêó
-ProgramOnTheWeb=Ñàéò %1 ó Ñåö³âå
-UninstallProgram=Äý¢ñòàëÿâàöü %1
-LaunchProgram=Çàïóñö³öü %1
-AssocFileExtension=&Çâÿçàöü %1 ç òûïàì³ ôàéëࢠ%2
-AssocingFileExtension=Çâÿçàííå %1 ç òûïàì³ ôàéëࢠ%2...
-AutoStartProgramGroupDescription=À¢òàçàïóñê:
-AutoStartProgram=À¢òàìàòû÷íà çàïóñêàöü %1
-AddonHostProgramNotFound=%1 íå çíîéäçåíû ¢ àçíà÷àíàé Âàì³ òý÷öû.%n%nÓñ¸ àäíî õî÷àöå ïðàöÿãíóöü?
+NameAndVersion=%1 вер�і� %2
+AdditionalIcons=Дадатковы� �рлыкі:
+CreateDesktopIcon=Стварыць �рлык на &працоўным �тале
+CreateQuickLaunchIcon=Стварыць �рлык на пан�лі &хуткага запу�ку
+ProgramOnTheWeb=Сайт %1 у інт�рн�це
+UninstallProgram=Выдаленне %1
+LaunchProgram=Запу�ціць %1
+AssocFileExtension=&Зв�заць %1 з файламі, �кі� маюць пашыр�нне %2
+AssocingFileExtension=&Зв�заць %1 з файламі, �кі� маюць пашыр�нне %2...
+AutoStartProgramGroupDescription=�ўтазапу�к:
+AutoStartProgram=�ўтаматычна запу�каць %1
+AddonHostProgramNotFound=%1 не знойдзены ў азначанай вамі папцы.%n%nУ�ё роўна хочаце прац�гнуць?

+ 13 - 13
Files/Languages/Unofficial/ChineseSimplified.isl

@@ -26,11 +26,11 @@ LanguageID=$0804
 LanguageCodePage=936
 ; If the language you are translating to requires special font faces or
 ; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=
+DialogFontName=Microsoft YaHei UI
 ;DialogFontSize=8
-;WelcomeFontName=Verdana
+WelcomeFontName=Microsoft YaHei UI
 ;WelcomeFontSize=12
-;TitleFontName=Arial
+TitleFontName=Microsoft YaHei UI
 ;TitleFontSize=29
 ;CopyrightFontName=Arial
 ;CopyrightFontSize=8
@@ -61,11 +61,11 @@ SetupFileCorrupt=安装文件已损坏。请获取程序的新副本。
 SetupFileCorruptOrWrongVer=安装文件已损坏,或是与这个安装程序的版本不兼容。请修正这个问题或获取新的程序副本。
 InvalidParameter=无效的命令行参数:%n%n%1
 SetupAlreadyRunning=安装程序正在运行。
-WindowsVersionNotSupported=这个程序不支持当前计算机运行的Windows版本。
+WindowsVersionNotSupported=这个程序不支持当前计算机运行的 Windows 版本。
 WindowsServicePackRequired=这个程序需要 %1 服务包 %2 或更高。
 NotOnThisPlatform=这个程序将不能运行于 %1。
 OnlyOnThisPlatform=这个程序必须运行于 %1。
-OnlyOnTheseArchitectures=这个程序只能在为下列处理器结构设计的Windows版本中进行安装:%n%n%1
+OnlyOnTheseArchitectures=这个程序只能在为下列处理器架构的 Windows 版本中进行安装:%n%n%1
 WinVersionTooLowError=这个程序需要 %1 版本 %2 或更高。
 WinVersionTooHighError=这个程序不能安装于 %1 版本 %2 或更高。
 AdminPrivilegesRequired=在安装这个程序时您必须以管理员身份登录。
@@ -80,8 +80,8 @@ PrivilegesRequiredOverrideText1=%1 可以为所有用户安装(需要管理员
 PrivilegesRequiredOverrideText2=%1 只能为您安装,或为所有用户安装(需要管理员权限)。
 PrivilegesRequiredOverrideAllUsers=为所有用户安装(&A)
 PrivilegesRequiredOverrideAllUsersRecommended=为所有用户安装(&A) (建议选项)
-PrivilegesRequiredOverrideCurrentUser=为我安装(&M)
-PrivilegesRequiredOverrideCurrentUserRecommended=为我安装(&M) (建议选项)
+PrivilegesRequiredOverrideCurrentUser=为我安装(&M)
+PrivilegesRequiredOverrideCurrentUserRecommended=为我安装(&M) (建议选项)
 
 ; *** 其它错误
 ErrorCreatingDir=安装程序不能创建目录“%1”。
@@ -89,12 +89,12 @@ ErrorTooManyFilesInDir=不能在目录“%1”中创建文件,因为里面的
 
 ; *** 安装程序公共消息
 ExitSetupTitle=退出安装程序
-ExitSetupMessage=安装程序未完成安装。如果您现在退出,程序将不能安装。%n%n您可以以后再运行安装程序完成安装。%n%n现在退出安装程序吗?
+ExitSetupMessage=安装程序未完成安装。如果您现在退出,程序将不能安装。%n%n您可以以后再运行安装程序完成安装。%n%n现在退出安装程序吗?
 AboutSetupMenuItem=关于安装程序(&A)...
 AboutSetupTitle=关于安装程序
 AboutSetupMessage=%1 版本 %2%n%3%n%n%1 主页:%n%4
 AboutSetupNote=
-TranslatorNote=
+TranslatorNote=Translated by Zhenghan Yang.
 
 ; *** 按钮
 ButtonBack=< 上一步(&B)
@@ -138,7 +138,7 @@ WizardLicense=许可协议
 LicenseLabel=继续安装前请阅读下列重要信息。
 LicenseLabel3=请仔细阅读下列许可协议。您在继续安装前必须同意这些协议条款。
 LicenseAccepted=我同意此协议(&A)
-LicenseNotAccepted=我不同意此协议(&D)
+LicenseNotAccepted=我拒绝此协议(&D)
 
 ; *** “信息”向导页
 WizardInfoBefore=信息
@@ -204,7 +204,7 @@ SelectStartMenuFolderLabel3=安装程序现在将在下列开始菜单文件夹
 SelectStartMenuFolderBrowseLabel=点击“下一步”继续。如果您想选择其它文件夹,点击“浏览”。
 MustEnterGroupName=您必须输入一个文件夹名。
 GroupNameTooLong=文件夹名或路径太长。
-InvalidGroupName=文件夹名无效
+InvalidGroupName=文件夹名无效。
 BadGroupName=文件夹名不能包含下列任何字符:%n%n%1
 NoProgramGroupCheck2=不创建开始菜单文件夹(&D)
 
@@ -228,9 +228,9 @@ ErrorDownloadAborted=下载已中止
 ErrorDownloadFailed=下载失败:%1 %2
 ErrorDownloadSizeFailed=获取下载大小失败:%1 %2
 ErrorFileHash1=校验文件哈希失败:%1
-ErrorFileHash2=无效的文件哈希:预期 %1,实际 %2
+ErrorFileHash2=无效的文件哈希:预期 %1,实际 %2
 ErrorProgress=无效的进度:%1,总共%2
-ErrorFileSize=文件大小错误:预期 %1,实际 %2
+ErrorFileSize=文件大小错误:预期 %1,实际 %2
 
 ; *** “正在准备安装”向导页
 WizardPreparing=正在准备安装

+ 1 - 1
Files/Languages/Unofficial/EnglishBritish.isl

@@ -1,7 +1,7 @@
 ; *** Inno Setup version 6.1.0+ English (British) messages ***
 ;
 ; Translated by Boris Kotov <[email protected]>
-; Translation updated by Andrew Truckle <[email protected]>
+; Translation updated by Andrew Truckle <[email protected]>
 
 [LangOptions]
 ; The following three entries are very important. Be sure to read and 

+ 0 - 389
Files/Languages/Unofficial/Korean.isl

@@ -1,389 +0,0 @@
-; *** Inno Setup version 6.0.0+ Korean messages ***
-;
-; ▒ 6.2.0+ Translator: Logan.Hwang ([email protected])
-; ▒ 6.0.3+ Translator: SungDong Kim ([email protected])
-; ▒ 5.5.3+ Translator: Domddol ([email protected])
-; ▒ Translation date: MAR 04, 2014
-; ▒ Contributors: Hansoo KIM ([email protected]), Woong-Jae An ([email protected])
-; ▒ Storage: http://www.jrsoftware.org/files/istrans/
-; ▒ 이 번역은 새로운 한국어 맞춤법 규칙을 준수합니다.
-; Note: When translating this text, do not add periods (.) to the end of
-; messages that didn't have them already, because on those messages Inno
-; Setup adds the periods automatically (appending a period would result in
-; two periods being displayed).
-
-[LangOptions]
-; The following three entries are very important. Be sure to read and 
-; understand the '[LangOptions] section' topic in the help file.
-LanguageName=Korean
-LanguageID=$0412
-LanguageCodePage=949
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=
-;DialogFontSize=8
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;TitleFontName=Arial
-;TitleFontSize=29
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
-
-[Messages]
-
-; *** Application titles
-SetupAppTitle=설치
-SetupWindowTitle=%1 설치
-UninstallAppTitle=제거
-UninstallAppFullTitle=%1 제거
-
-; *** Misc. common
-InformationTitle=정보
-ConfirmTitle=확인
-ErrorTitle=오류
-
-; *** SetupLdr messages
-SetupLdrStartupMessage=%1을(를) 설치합니다, 계속하시겠습니까?
-LdrCannotCreateTemp=임시 파일을 만들 수 없습니다, 설치를 중단합니다
-LdrCannotExecTemp=임시 폴더의 파일을 실행할 수 없습니다, 설치를 중단합니다
-HelpTextNote=
-
-; *** Startup error messages
-LastErrorMessage=%1.%n%n오류 %2: %3
-SetupFileMissing=%1 파일이 존재하지 않습니다, 문제를 해결해 보거나 새로운 설치 프로그램을 구하시기 바랍니다.
-SetupFileCorrupt=설치 파일이 손상되었습니다, 새로운 설치 프로그램을 구하시기 바랍니다.
-SetupFileCorruptOrWrongVer=설치 파일의 손상이거나 이 설치 버전과 호환되지 않습니다, 문제를 해결해 보거나 새로운 설치 프로그램을 구하시기 바랍니다.
-InvalidParameter=잘못된 매개 변수입니다:%n%n%1
-SetupAlreadyRunning=설치가 이미 실행 중입니다.
-WindowsVersionNotSupported=이 프로그램은 귀하의 Windows 버전을 지원하지 않습니다.
-WindowsServicePackRequired=이 프로그램을 실행하려면 %1 sp%2 이상이어야 합니다.
-NotOnThisPlatform=이 프로그램은 %1에서 작동하지 않습니다.
-OnlyOnThisPlatform=이 프로그램은 %1에서 실행해야 합니다.
-OnlyOnTheseArchitectures=이 프로그램은 아래 처리 구조와 호환되는 Windows 버전에만 설치할 수 있습니다:%n%n%1
-WinVersionTooLowError=이 프로그램은 %1 버전 %2 이상이 필요합니다.
-WinVersionTooHighError=이 프로그램은 %1 버전 %2 이상에서 설치할 수 없습니다.
-AdminPrivilegesRequired=이 프로그램을 설치하려면 관리자로 로그인해야 합니다.
-PowerUserPrivilegesRequired=이 프로그램을 설치하려면 관리자 또는 고급 사용자로 로그인해야 합니다.
-SetupAppRunningError=현재 %1이(가) 실행 중입니다!%n%n지금 그것의 모든 인스턴스를 닫아 주십시오. 그런 다음 계속하려면 "확인"을, 종료하려면 "취소"를 클릭하십시오.
-UninstallAppRunningError=현재 %1이(가) 실행 중입니다!%n%n지금 그것의 모든 인스턴스를 닫아 주십시오. 그런 다음 계속하려면 "확인"을, 종료하려면 "취소"를 클릭하십시오.
-
-; *** Startup questions
-PrivilegesRequiredOverrideTitle=설치 모드 선택
-PrivilegesRequiredOverrideInstruction=설치 모드를 선택해 주십시오
-PrivilegesRequiredOverrideText1=%1 은 모든 사용자(관리자 권한 필요) 또는 현재 사용자용으로 설치합니다.
-PrivilegesRequiredOverrideText2=%1 은 현재 사용자 또는 모든 사용자(관리자 권한 필요) 용으로 설치합니다.
-PrivilegesRequiredOverrideAllUsers=모든 사용자용으로 설치(&A)
-PrivilegesRequiredOverrideAllUsersRecommended=모든 사용자용으로 설치(&A) (추천)
-PrivilegesRequiredOverrideCurrentUser=현재 사용자용으로 설치(&M)
-PrivilegesRequiredOverrideCurrentUserRecommended=현재 사용자용으로 설치(&M) (추천)
-
-; *** Misc. errors
-ErrorCreatingDir="%1" 폴더를 만들 수 없습니다.
-ErrorTooManyFilesInDir="%1" 폴더에 파일이 너무 많기 때문에 파일을 만들 수 없습니다.
-
-; *** Setup common messages
-ExitSetupTitle=설치 완료
-ExitSetupMessage=설치가 완료되지 않았습니다, 여기서 설치를 종료하면 프로그램은 설치되지 않습니다.%n%n설치를 완료하려면 나중에 다시 설치 프로그램을 실행해야 합니다.%n%n그래도 설치를 종료하시겠습니까?
-AboutSetupMenuItem=설치 정보(&A)...
-AboutSetupTitle=설치 정보
-AboutSetupMessage=%1 버전 %2%n%3%n%n%1 홈 페이지:%n%4
-AboutSetupNote=
-TranslatorNote=
-
-; *** Buttons
-ButtonBack=< 뒤로(&B)
-ButtonNext=다음(&N) >
-ButtonInstall=설치(&I)
-ButtonOK=확인
-ButtonCancel=취소
-ButtonYes=예(&Y)
-ButtonYesToAll=모두 예(&A)
-ButtonNo=아니오(&N)
-ButtonNoToAll=모두 아니오(&O)
-ButtonFinish=종료(&F)
-ButtonBrowse=찾아보기(&B)...
-ButtonWizardBrowse=찾아보기(&R)...
-ButtonNewFolder=새 폴더 만들기(&M)
-
-; *** "Select Language" dialog messages
-SelectLanguageTitle=설치 언어 선택
-SelectLanguageLabel=설치에 사용할 언어를 선택하십시오.
-
-; *** Common wizard text
-ClickNext=계속하려면 "다음"을 클릭하고 설치를 종료하려면 "취소"를 클릭합니다.
-BeveledLabel=
-BrowseDialogTitle=폴더 찾아보기
-BrowseDialogLabel=아래 목록에서 폴더를 선택한 다음 "확인"을 클릭합니다.
-NewFolderName=새 폴더
-
-; *** "Welcome" wizard page
-WelcomeLabel1=[name] 설치 마법사 시작
-WelcomeLabel2=이 마법사는 귀하의 컴퓨터에 [name/ver]을(를) 설치할 것입니다.%n%n설치하기 전에 다른 응용프로그램들을 모두 닫으시기 바랍니다.
-
-; *** "Password" wizard page
-WizardPassword=비밀 번호
-PasswordLabel1=이 설치 마법사는 비밀 번호로 보호되어 있습니다.
-PasswordLabel3=비밀 번호를 입력하고 "다음"을 클릭하십시오. 비밀 번호는 대소문자를 구분해야 합니다.
-PasswordEditLabel=비밀 번호(&P):
-IncorrectPassword=비밀 번호가 정확하지 않습니다, 다시 입력하십시오.
-
-; *** "License Agreement" wizard page
-WizardLicense=사용권 계약
-LicenseLabel=계속하기 전에 다음의 중요 정보를 읽어보십시오.
-LicenseLabel3=다음 사용권 계약을 읽어보십시오, 설치를 계속하려면 이 계약에 동의해야 합니다.
-LicenseAccepted=동의합니다(&A)
-LicenseNotAccepted=동의하지 않습니다(&D)
-
-; *** "Information" wizard pages
-WizardInfoBefore=정보
-InfoBeforeLabel=계속하기 전에 다음의 중요 정보를 읽어보십시오.
-InfoBeforeClickLabel=설치를 계속하려면 "다음"을 클릭하십시오.
-WizardInfoAfter=정보
-InfoAfterLabel=계속하기 전에 다음의 중요 정보를 읽어보십시오.
-InfoAfterClickLabel=설치를 계속하려면 "다음"을 클릭하십시오.
-
-; *** "User Information" wizard page
-WizardUserInfo=사용자 정보
-UserInfoDesc=사용자 정보를 입력하십시오.
-UserInfoName=사용자 이름(&U):
-UserInfoOrg=조직(&O):
-UserInfoSerial=시리얼 번호(&S):
-UserInfoNameRequired=사용자 이름을 입력하십시오.
-
-; *** "Select Destination Location" wizard page
-WizardSelectDir=설치 위치 선택
-SelectDirDesc=[name]의 설치 위치를 선택하십시오.
-SelectDirLabel3=다음 폴더에 [name]을(를) 설치합니다.
-SelectDirBrowseLabel=계속하려면 "다음"을, 다른 폴더를 선택하려면 "찾아보기"를 클릭하십시오.
-DiskSpaceGBLabel=이 프로그램은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
-DiskSpaceMBLabel=이 프로그램은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
-CannotInstallToNetworkDrive=네트워크 드라이브에 설치할 수 없습니다.
-CannotInstallToUNCPath=UNC 경로에 설치할 수 없습니다.
-InvalidPath=드라이브 문자를 포함한 전체 경로를 입력하십시오.%n※ 예: C:\APP %n%n또는, UNC 형식의 경로를 입력하십시오.%n※ 예: \\server\share
-InvalidDrive=선택한 드라이브 또는 UNC 공유가 존재하지 않거나 액세스할 수 없습니다, 다른 경로를 선택하십시오.
-DiskSpaceWarningTitle=디스크 공간이 부족합니다
-DiskSpaceWarning=설치 시 최소 %1 KB 디스크 공간이 필요하지만, 선택한 드라이브의 여유 공간은 %2 KB 밖에 없습니다.%n%n그래도 계속하시겠습니까?
-DirNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
-InvalidDirName=폴더 이름이 유효하지 않습니다.
-BadDirName32=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
-DirExistsTitle=폴더가 존재합니다
-DirExists=폴더 %n%n%1%n%n이(가) 이미 존재합니다, 이 폴더에 설치하시겠습니까?
-DirDoesntExistTitle=폴더가 존재하지 않습니다
-DirDoesntExist=폴더 %n%n%1%n%n이(가) 존재하지 않습니다, 새로 폴더를 만드시겠습니까?
-
-; *** "Select Components" wizard page
-WizardSelectComponents=구성 요소 선택
-SelectComponentsDesc=설치할 구성 요소를 선택하십시오.
-SelectComponentsLabel2=필요한 구성 요소는 체크하고 불필요한 구성 요소는 체크 해제합니다, 계속하려면 "다음"을 클릭하십시오.
-FullInstallation=모두 설치
-; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=최소 설치
-CustomInstallation=사용자 지정 설치
-NoUninstallWarningTitle=구성 요소가 존재합니다
-NoUninstallWarning=다음 구성 요소가 이미 설치되어 있습니다:%n%n%1%n%n위 구성 요소을 선택하지 않으면, 프로그램 제거시 이 구성 요소들은 제거되지 않을 겁니다.%n%n그래도 계속하시겠습니까?
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceGBLabel=현재 선택은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
-ComponentsDiskSpaceMBLabel=현재 선택은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
-
-; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=추가 작업 선택
-SelectTasksDesc=수행할 추가 작업을 선택하십시오.
-SelectTasksLabel2=[name] 설치 과정에 포함할 추가 작업을 선택한 후, "다음"을 클릭하십시오.
-
-; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=시작 메뉴 폴더 선택
-SelectStartMenuFolderDesc=어디에 프로그램 바로가기를 위치하겠습니까?
-SelectStartMenuFolderLabel3=다음 시작 메뉴 폴더에 프로그램 바로가기를 만듭니다.
-SelectStartMenuFolderBrowseLabel=계속하려면 "다음"을 클릭하고, 다른 폴더를 선택하려면 "찾아보기"를 클릭하십시오.
-MustEnterGroupName=폴더 이름을 입력하십시오.
-GroupNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
-InvalidGroupName=폴더 이름이 유효하지 않습니다.
-BadGroupName=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
-NoProgramGroupCheck2=시작 메뉴 폴더를 만들지 않음(&D)
-
-; *** "Ready to Install" wizard page
-WizardReady=설치 준비 완료
-ReadyLabel1=귀하의 컴퓨터에 [name]을(를) 설치할 준비가 되었습니다.
-ReadyLabel2a=설치를 계속하려면 "설치"를, 설정을 변경하거나 검토하려면 "뒤로"를 클릭하십시오.
-ReadyLabel2b=설치를 계속하려면 "설치"를 클릭하십시오.
-ReadyMemoUserInfo=사용자 정보:
-ReadyMemoDir=설치 위치:
-ReadyMemoType=설치 유형:
-ReadyMemoComponents=선택한 구성 요소:
-ReadyMemoGroup=시작 메뉴 폴더:
-ReadyMemoTasks=추가 작업:
-
-; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
-DownloadingLabel=추가 파일 다운로드중...
-ButtonStopDownload=다운로드 중지(&S)
-StopDownload=다운로드를 중지하시겠습니까?
-ErrorDownloadAborted=다운로드를 중단했습니다.
-ErrorDownloadFailed=다운로드에 실패했습니다: %1 %2
-ErrorDownloadSizeFailed=다운로드 파일의 사이즈를 알 수 없습니다: %1 %2
-ErrorFileHash1=파일 해시에 실패했습니다: %1
-ErrorFileHash2=잘못된 파일 해시: 예상 값 %1, 실제 값 %2
-ErrorProgress=잘못된 진행 상황: %1 / %2
-ErrorFileSize=잘못된 파일 크기: 예상 값 %1, 실제 값 %2
-
-
-; *** "Preparing to Install" wizard page
-WizardPreparing=설치 준비 중
-PreparingDesc=귀하의 컴퓨터에 [name] 설치를 준비하는 중입니다.
-PreviousInstallNotCompleted=이전 프로그램의 설치/제거 작업이 완료되지 않았습니다, 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n컴퓨터를 다시 시작한 후, 설치 마법사를 다시 실행하여 [name] 설치를 완료하시기 바랍니다.
-CannotContinue=설치를 계속할 수 없습니다, "취소"를 클릭하여 설치를 종료하십시오.
-ApplicationsFound=다음 응용프로그램이 설치 업데이트가 필요한 파일을 사용하고 있습니다, 설치 마법사가 이런 응용프로그램을 자동으로 종료할 수 있도록 허용하시기 바랍니다.
-ApplicationsFound2=다음 응용프로그램이 설치 업데이트가 필요한 파일을 사용하고 있습니다, 설치 마법사가 이런 응용프로그램을 자동으로 종료할 수 있도록 허용하시기 바랍니다. 설치가 완료되면, 설치 마법사는 이 응용프로그램이 다시 시작되도록 시도할 겁니다.
-CloseApplications=자동으로 응용프로그램을 종료함(&A)
-DontCloseApplications=응용프로그램을 종료하지 않음(&D)
-ErrorCloseApplications=설치 마법사가 응용프로그램을 자동으로 종료할 수 없습니다, 계속하기 전에 설치 업데이트가 필요한 파일을 사용하고 있는 응용프로그램을 모두 종료하시기 바랍니다.
-PrepareToInstallNeedsRestart=설치 마법사는 귀하의 컴퓨터를 재시작해야 합니다. [name] 설치를 완료하기 위해 컴퓨터를 다시 시작한 후에 설치 마법사를 다시 실행해 주십시오.%n%n지금 다시 시작하시겠습니까?
-
-; *** "Installing" wizard page
-WizardInstalling=설치 중
-InstallingLabel=귀하의 컴퓨터에 [name]을(를) 설치하는 중... 잠시 기다려 주십시오.
-
-; *** "Setup Completed" wizard page
-FinishedHeadingLabel=[name] 설치 마법사 완료
-FinishedLabelNoIcons=귀하의 컴퓨터에 [name]이(가) 설치되었습니다.
-FinishedLabel=귀하의 컴퓨터에 [name]이(가) 설치되었습니다, 응용프로그램은 설치된 아이콘을 선택하여 시작할 수 있습니다.
-ClickFinish=설치를 끝내려면 "종료"를 클릭하십시오.
-FinishedRestartLabel=[name] 설치를 완료하려면, 컴퓨터를 다시 시작해야 합니다. 지금 다시 시작하시겠습니까?
-FinishedRestartMessage=[name] 설치를 완료하려면, 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
-ShowReadmeCheck=예, README 파일을 표시합니다
-YesRadio=예, 지금 다시 시작합니다(&Y)
-NoRadio=아니오, 나중에 다시 시작합니다(&N)
-; used for example as 'Run MyProg.exe'
-RunEntryExec=%1 실행
-; used for example as 'View Readme.txt'
-RunEntryShellExec=%1 표시
-
-; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=디스크가 필요합니다
-SelectDiskLabel2=디스크 %1을(를) 삽입하고 "확인"을 클릭하십시오.%n%n이 디스크 상의 파일이 아래 경로가 아닌 곳에 있는 경우, 올바른 경로를 입력하거나 "찾아보기"를 클릭하시기 바랍니다.
-PathLabel=경로(&P):
-FileNotInDir2=%2에 파일 %1을(를) 위치할 수 없습니다, 올바른 디스크를 삽입하거나 다른 폴더를 선택하십시오.
-SelectDirectoryLabel=다음 디스크의 위치를 지정하십시오.
-
-; *** Installation phase messages
-SetupAborted=설치가 완료되지 않았습니다.%n%n문제를 해결한 후, 다시 설치를 시작하십시오.
-AbortRetryIgnoreSelectAction=액션을 선택해 주십시오.
-AbortRetryIgnoreRetry=재시도(&T)
-AbortRetryIgnoreIgnore=오류를 무시하고 진행(&I)
-AbortRetryIgnoreCancel=설치 취소
-
-; *** Installation status messages
-StatusClosingApplications=응용프로그램을 종료하는 중...
-StatusCreateDirs=폴더를 만드는 중...
-StatusExtractFiles=파일을 추출하는 중...
-StatusCreateIcons=바로가기를 생성하는 중...
-StatusCreateIniEntries=INI 항목을 만드는 중...
-StatusCreateRegistryEntries=레지스트리 항목을 만드는 중...
-StatusRegisterFiles=파일을 등록하는 중...
-StatusSavingUninstall=제거 정보를 저장하는 중...
-StatusRunProgram=설치를 완료하는 중...
-StatusRestartingApplications=응용프로그램을 다시 시작하는 중...
-StatusRollback=변경을 취소하는 중...
-
-; *** Misc. errors
-ErrorInternal2=내부 오류: %1
-ErrorFunctionFailedNoCode=%1 실패
-ErrorFunctionFailed=%1 실패; 코드 %2
-ErrorFunctionFailedWithMessage=%1 실패, 코드: %2.%n%3
-ErrorExecutingProgram=파일 실행 오류:%n%1
-
-; *** Registry errors
-ErrorRegOpenKey=레지스트리 키 열기 오류:%n%1\%2
-ErrorRegCreateKey=레지스트리 키 생성 오류:%n%1\%2
-ErrorRegWriteKey=레지스트리 키 쓰기 오류:%n%1\%2
-
-; *** INI errors
-ErrorIniEntry=%1 파일에 INI 항목 만들기 오류입니다.
-
-; *** File copying errors
-FileAbortRetryIgnoreSkipNotRecommended=이 파일을 건너띔(&S) (권장하지 않습니다)
-FileAbortRetryIgnoreIgnoreNotRecommended=오류를 무시하고 진행(&I) (권장하지 않습니다)
-SourceIsCorrupted=원본 파일이 손상됨
-SourceDoesntExist=원본 파일 %1이(가) 존재하지 않음
-ExistingFileReadOnly2=기존 파일은 읽기 전용이기때문에 대체할 수 없습니다.
-ExistingFileReadOnlyRetry=읽기 전용 속성을 해제하고 다시 시도하려면(&R)
-ExistingFileReadOnlyKeepExisting=기존 파일을 유지(&K)
-ErrorReadingExistingDest=기존 파일을 읽는 동안 오류 발생:
-FileExistsSelectAction=처리 방법을 선택하세요.
-FileExists2=파일이 이미 존재합니다.
-FileExistsOverwriteExisting=기존 파일을 덮어씁니다(&O)
-FileExistsKeepExisting=기존 파일을 유지합니다(&K)
-FileExistsOverwriteOrKeepAll=이후의 작업에 대해 동일한 처리를 수행합니다.(&D)
-ExistingFileNewerSelectAction=처리 방법을 선택하세요.
-ExistingFileNewer2=기존 파일이 설치하려고 하는 파일보다 새 파일입니다
-ExistingFileNewerOverwriteExisting=기존 파일을 덮어씁니다(&O)
-ExistingFileNewerKeepExisting=기존 파일을 유지합니다(&K) (추천)
-ExistingFileNewerOverwriteOrKeepAll=이후의 작업에 대해 동일한 처리를 수행합니다(&D)
-ErrorChangingAttr=기존 파일의 속성을 변경하는 동안 오류 발생:
-ErrorCreatingTemp=대상 폴더에 파일을 만드는 동안 오류 발생:
-ErrorReadingSource=원본 파일을 읽는 동안 오류 발생:
-ErrorCopying=파일을 복사하는 동안 오류 발생:
-ErrorReplacingExistingFile=기존 파일을 교체하는 동안 오류 발생:
-ErrorRestartReplace=RestartReplace 실패:
-ErrorRenamingTemp=대상 폴더 내의 파일 이름을 바꾸는 동안 오류 발생:
-ErrorRegisterServer=DLL/OCX 등록 실패: %1
-ErrorRegSvr32Failed=RegSvr32가 다음 종료 코드로 실패: %1
-ErrorRegisterTypeLib=다음 유형의 라이브러리 등록에 실패: %1
-
-; *** Uninstall display name markings
-; used for example as 'My Program (32-bit)'
-UninstallDisplayNameMark=%1 (%2)
-; used for example as 'My Program (32-bit, All users)'
-UninstallDisplayNameMarks=%1 (%2, %3)
-UninstallDisplayNameMark32Bit=32비트
-UninstallDisplayNameMark64Bit=64비트
-UninstallDisplayNameMarkAllUsers=모든 사용자
-UninstallDisplayNameMarkCurrentUser=현재 사용자
-
-; *** Post-installation errors
-ErrorOpeningReadme=README 파일을 여는 중 오류가 발생했습니다.
-ErrorRestartingComputer=컴퓨터를 다시 시작할 수 없습니다, 수동으로 다시 시작하십시오.
-
-; *** Uninstaller messages
-UninstallNotFound=파일 %1이(가) 존재하지 않기 때문에, 제거를 실행할 수 없습니다.
-UninstallOpenError=파일 %1을(를) 열 수 없기 때문에, 제거를 실행할 수 없습니다.
-UninstallUnsupportedVer=삭제 로그 파일 "%1"은(는) 이 삭제 마법사로 인식할 수 없는 형식이기 때문에, 제거를 실행할 수 없습니다.
-UninstallUnknownEntry=알 수 없는 항목 %1이(가) 삭제 로그에 포함되어 있습니다.
-ConfirmUninstall=정말 %1와(과) 그 구성 요소를 모두 제거하시겠습니까?
-UninstallOnlyOnWin64=이 프로그램은 64비트 Windows에서만 제거할 수 있습니다.
-OnlyAdminCanUninstall=이 프로그램을 제거하려면 관리자 권한이 필요합니다.
-UninstallStatusLabel=귀하의 컴퓨터에서 %1을(를) 제거하는 중... 잠시 기다려 주십시오.
-UninstalledAll=%1이(가) 성공적으로 제거되었습니다!
-UninstalledMost=%1 제거가 완료되었습니다.%n%n일부 요소는 삭제할 수 없으니, 수동으로 제거하시기 바랍니다.
-UninstalledAndNeedsRestart=%1의 제거를 완료하려면, 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
-UninstallDataCorrupted=파일 "%1"이(가) 손상되었기 때문에, 제거를 실행할 수 없습니다.
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=공유 파일을 제거하시겠습니까?
-ConfirmDeleteSharedFile2=시스템의 어떤 프로그램도 다음 공유 파일을 사용하지 않습니다, 이 공유 파일을 삭제하시겠습니까?%n%n이 파일을 다른 프로그램이 공유하고 있는 상태에서 이 파일을 제거할 경우, 해당 프로그램이 제대로 작동하지 않을 수 있으니, 확신이 없으면 "아니오"를 선택하셔도 됩니다. 시스템에 파일이 남아 있어도 문제가 되진 않습니다.
-SharedFileNameLabel=파일 이름:
-SharedFileLocationLabel=위치:
-WizardUninstalling=제거 상태
-StatusUninstalling=%1을(를) 제거하는 중...
-
-; *** Shutdown block reasons
-ShutdownBlockReasonInstallingApp=%1을(를) 설치하는 중입니다.
-ShutdownBlockReasonUninstallingApp=%1을(를) 제거하는 중입니다.
-
-; The custom messages below aren't used by Setup itself, but if you make
-; use of them in your scripts, you'll want to translate them.
-
-[CustomMessages]
-
-NameAndVersion=%1 버전 %2
-AdditionalIcons=아이콘 추가:
-CreateDesktopIcon=바탕 화면에 바로가기 만들기(&D)
-CreateQuickLaunchIcon=빠른 실행 아이콘 만들기(&Q)
-ProgramOnTheWeb=%1 웹페이지
-UninstallProgram=%1 제거
-LaunchProgram=%1 실행
-AssocFileExtension=파일 확장자 %2을(를) %1에 연결합니다.
-AssocingFileExtension=파일 확장자 %2을(를) %1에 연결하는 중...
-AutoStartProgramGroupDescription=시작:
-AutoStartProgram=%1을(를) 자동으로 시작
-AddonHostProgramNotFound=%1은(는) 선택한 폴더에 위치할 수 없습니다.%n%n그래도 계속하시겠습니까?

+ 263 - 239
Files/Languages/Unofficial/Latvian.isl

@@ -1,18 +1,6 @@
-;Agris Ausejs 
-;******************************************************
-; ***                                                ***
-; *** Inno Setup version 5.5.1+ Latvian messages    ***
-; ***                                                ***
-; *** Original Author:                               ***
-; ***                                                ***
-; ***   Agris Ausejs ([email protected])             ***
-; ***                                                ***
-; ***  02/22/2008                                    ***
-; ******************************************************
+; *** Inno Setup version 6.1.0+ Latvian messages ***
 ;
-;
-; To download user-contributed translations of this file, go to:
-;   http://www.jrsoftware.org/is3rdparty.php
+; Translated from English by Zorgaats, [email protected]
 ;
 ; Note: When translating this text, do not add periods (.) to the end of
 ; messages that didn't have them already, because on those messages Inno
@@ -20,327 +8,363 @@
 ; two periods being displayed).
 
 [LangOptions]
-; The following three entries are very important. Be sure to read and 
-; understand the '[LangOptions] section' topic in the help file.
 LanguageName=Latviski
 LanguageID=$0426
 LanguageCodePage=1257
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=
-;DialogFontSize=8
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;TitleFontName=Arial
-;TitleFontSize=29
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
 
 [Messages]
 
 ; *** Application titles
-SetupAppTitle=Uzstâdîðana
-SetupWindowTitle=Uzstâdîðana - %1
-UninstallAppTitle=Atinstalâcija
-UninstallAppFullTitle=%1 Atinstalâcija
+SetupAppTitle=Uzst�dīšana
+SetupWindowTitle=Uzst�dīšana — %1
+UninstallAppTitle=Noņemšana
+UninstallAppFullTitle=Noņemšana — %
 
 ; *** Misc. common
-InformationTitle=Informâcija
-ConfirmTitle=Apstiprinât
-ErrorTitle=Kïûda
+InformationTitle=Inform�cija
+ConfirmTitle=Apstiprin�t
+ErrorTitle=Kļūda
 
 ; *** SetupLdr messages
-SetupLdrStartupMessage=Tiks uzstâdîta programma %1. Vai vçlaties turpinât?
-LdrCannotCreateTemp=Neiespçjami izveidot pagaidu datnes. Uzstâdîðana pârtraukta
-LdrCannotExecTemp=Neiespçjami palaist datni no pagaidu mapes. Uzstâdîðana pârtraukta
+SetupLdrStartupMessage=Tiks uzst�dīta programma %1 uz Jūsu datora. Vai vēlaties turpin�t?
+LdrCannotCreateTemp=Neiespējami izveidot pagaidu datnes. Uzst�dīšana p�rtraukta
+LdrCannotExecTemp=Neiespējami palaist datni no pagaidu mapes. Uzst�dīšana p�rtraukta
+HelpTextNote=
 
 ; *** Startup error messages
-LastErrorMessage=%1.%n%nKïûda %2: %3
-SetupFileMissing=Datne %1 nav atrodama instalâcijas mapç. Lûdzu, izlabojiet kïûdu vai iegâdâjieties jaunu programmas kopiju.
-SetupFileCorrupt=Uzstâdâmâs datnes ir sabojâtas. Lûdzu, iegâdâjieties jaunu programmas kopiju.
-SetupFileCorruptOrWrongVer=Uzstâdâmâs datnes ir bojâtas vai nav savienojamas ar ðo Uzstâdîðanas programmu. Lûdzu, izlabojiet ðo kïûdu vai iegâdâjieties jaunu programmas kopiju.
-InvalidParameter=Nederîgs parametrs tika pieòemts uz komandrindas:%n%n%1
-SetupAlreadyRunning=Uzstâdîðana jau darbojas.
-WindowsVersionNotSupported=Ðî programma neatbalsta Windows versiju datorâ darbojas.
-WindowsServicePackRequired=Ðî programma pieprasa %1 servisa pakotnes %2 vai jaunâka.
-NotOnThisPlatform=Ðo programmu nevar palaist uz %1.
-OnlyOnThisPlatform=Ðî programma darbojas uz %1.
-OnlyOnTheseArchitectures=Ðo programmu var uzstâdît tikai uz ðâdâm Windows versijâm:%n%n%1
-MissingWOW64APIs=Paðlaik palaistâ Windows versija neatbalsta 64-bitu instalâciju. Lai izlabotu ðo kïûdu, uzinstalçjiet Service Pack %1.
-WinVersionTooLowError=Ðî programma pieprasa %1 versiju %2 vai jaunâku.
-WinVersionTooHighError=Ðo programmu nevar uzstâdît uz %1 versijas %2 vai jaunâkas.
-AdminPrivilegesRequired=Jums ir jâbût adminstratoram, lai varçtu uzsâkt instalâciju.
-PowerUserPrivilegesRequired=Jums ir jâbût administratoram vai pilnvarotam lietotâjam, lai uzstâdîtu ðo programmu.
-SetupAppRunningError=Uzstâdîðana ir atklâjusi, ka %1 paðlaik darbojas.%n%nLûdzu, aizveriet visas programmas un spiediet "Ok" vai "Atcelt", lai izietu.
-UninstallAppRunningError=Atinstalâcija ir atklâjusi ka %1 paðlaik darbojas.%n%nLûdzu, aizveriet visas programmas un spiediet "Ok", lai turpinâtu, vai "Atcelt", lai izietu.
+LastErrorMessage=%1.%n%nKļūda %2: %3
+SetupFileMissing=Datne %1 nav atrodama uzst�dīšanas mapē. Lūdzu izlabojiet kļūdu vai ieg�d�jaties jaunu programmas kopiju.
+SetupFileCorrupt=Uzst�dīšanas datnes ir boj�tas. Lūdzu ieg�d�jaties jaunu programmas kopiju.
+SetupFileCorruptOrWrongVer=Uzst�dīšanas datnes ir boj�tas vai nav savienojamas ar šo uzst�dīšanas programmu. Lūdzu izlabojiet kļūdu vai ieg�d�jaties jaunu programmas kopiju.
+InvalidParameter=Komandrinda satur nepieļaujamu parametru:%n%n%1
+SetupAlreadyRunning=Uzst�dīšanas programma jau ir palaista.
+WindowsVersionNotSupported=Šī programma neatbalsta Windows versiju, kas uzst�dīta uz šī datora.
+WindowsServicePackRequired=Programma pieprasa %1 Service Pack %2 vai jaun�ku versiju.
+NotOnThisPlatform=Å Ä« pragramma nevar darboties uz %1.
+OnlyOnThisPlatform=Programmu var palaist tikai uz %1.
+OnlyOnTheseArchitectures=Programmu var uzst�dīt tikai uz Windows versijas ar š�du procesoru arhitektūru:%n%n%1
+WinVersionTooLowError=Programma pieprasa %1 versiju %2 vai jaun�ku.
+WinVersionTooHighError=Programmu nevar uzst�dīt uz %1 versijas %2 vai jaun�kas.
+AdminPrivilegesRequired=Jums ir j�būt administratoram, lai varētu uzs�kt uzst�dīšanu.
+PowerUserPrivilegesRequired=Jums ir j�būt administratoram vai pilnvarotam lietot�jam, lai uzst�dītu šo programmu.
+SetupAppRunningError=Ir atrasts palaists eksempl�rs %1.%n%nLūdzu,aizveriet visas programmas un spiediet "Ok" lai turpin�tu vai "Atcelt", lai izietu.
+UninstallAppRunningError=Noņemšana ir atkl�jusi, ka darbojas eksempl�rs %1.%n%nLūdzu,aizveriet visas programmas un spiediet "Ok" lai turpin�tu vai "Atcelt", lai izietu.
+
+; *** Startup questions
+PrivilegesRequiredOverrideTitle=Uzst�dīšanas režīma izvēle
+PrivilegesRequiredOverrideInstruction=Izvēlieties uzst�dīšanas režīmu
+PrivilegesRequiredOverrideText1=%1 var tikt uzst�dīts vai nu visiem lietot�jiem (nepieciešamas administratora privilēģijas), vai arī tikai Jums.
+PrivilegesRequiredOverrideText2=%1 var tikt uzst�dīts vai nu tikai Jums, vai arī visiem lietot�jiem (nepieciešamas administratora privilēģijas).
+PrivilegesRequiredOverrideAllUsers=Uzst�dīt &visiem lietot�jiem
+PrivilegesRequiredOverrideAllUsersRecommended=Uzst�dīt &visiem lietot�jiem (rekomendējas)
+PrivilegesRequiredOverrideCurrentUser=Uzst�dīt tikai &man
+PrivilegesRequiredOverrideCurrentUserRecommended=Uzst�dīt tikai &man (rekomendējas)
 
 ; *** Misc. errors
-ErrorCreatingDir=Uzstâdîðanâ ir neiespçjami izveidot mapi "%1"
-ErrorTooManyFilesInDir=Neiespçjami izveidot datnes mapç "%1", jo tâ satur pârâk daudz datòu
+ErrorCreatingDir=Nevar izveidot mapi "%1"
+ErrorTooManyFilesInDir=Neiespējami izveidot datnes mapē "%1", jo t� satur p�r�k daudz datņu
 
 ; *** Setup common messages
-ExitSetupTitle=Iziet no Uzstâdîðanas
-ExitSetupMessage=Uzstâdîðana nav pabeigta. Ja Jûs tagad iziesiet, tad programma netiks uzinstalçta.%n%nJums bûs atkal jâpalaiþ Uzstâdîðana, lai pabeigtu programmas instalâciju.%n%nIziet no Uzstâdîðanas?
-AboutSetupMenuItem=&Par Uzstâdîðanu...
-AboutSetupTitle=Par Uzstâdîðanu
-AboutSetupMessage=%1 versija %2%n%3%n%n%1 mâjas lapa:%n%4
+ExitSetupTitle=Iziet no uzst�dīšanas
+ExitSetupMessage=Uzst�dīšana nav pabeigta. Ja Jūs tagad iziesiet, programma netiks uzst�dīta.%n%nLai uzst�dītu programmu, Jums būs atkal j�palaiž uzst�dīšana. %n%nIziet no uzst�dīšanas?
+AboutSetupMenuItem=&Par uzst�dīšanu...
+AboutSetupTitle=Par uzst�dīšanu
+AboutSetupMessage=%1, varsija %2%n%3%n%n%1m�jas lapa:%n%4
 AboutSetupNote=
-TranslatorNote=
+TranslatorNote=Latvian translation by Zorgaats
 
 ; *** Buttons
-ButtonBack=< &Atpakaï
-ButtonNext=&Tâlâk >
-ButtonInstall=&Uzstâdît
+ButtonBack=< &Atpakaļ
+ButtonNext=&T�l�k >
+ButtonInstall=&Uzst�dīt
 ButtonOK=OK
 ButtonCancel=Atcelt
-ButtonYes=&Jâ
-ButtonYesToAll=Jâ &Visam
-ButtonNo=&Nç
-ButtonNoToAll=Nç V&isam
+ButtonYes=&J�
+ButtonYesToAll=J� &Visam
+ButtonNo=&NÄ“
+ButtonNoToAll=NÄ“ V&isam
 ButtonFinish=&Pabeigt
-ButtonBrowse=Pâ&rlûkot...
-ButtonWizardBrowse=Pârlû&kot...
+ButtonBrowse=P�&rlūkot...
+ButtonWizardBrowse=P�rlū&kot...
 ButtonNewFolder=I&zveidot jaunu mapi
 
 ; *** "Select Language" dialog messages
-SelectLanguageTitle=Izvçlieties Uzstâdîðanas valodu
-SelectLanguageLabel=Izvçlieties valodu, kurâ notiks Uzstâdîðana:
+SelectLanguageTitle=Izvēlieties uzst�dīšanas valodu
+SelectLanguageLabel=Izvēlieties valodu, kur� notiks uzst�dīšana:
 
 ; *** Common wizard text
-ClickNext=Spiediet "Tâlâk", lai turpinâtu, vai "Atcelt", lai izietu no Uzstâdîðanas.
+ClickNext=Spiediet "T�l�k", lai turpin�tu, vai "Atcelt", lai izietu no uzst�dīšanas.
 BeveledLabel=
-BrowseDialogTitle=Pârlûkot mapi
-BrowseDialogLabel=Izvçlieties mapi no saraksta, tad spiediet "Ok".
+BrowseDialogTitle=P�rlūkot mapi
+BrowseDialogLabel=Izvēlieties mapi no saraksta, tad spiediet "Ok".
 NewFolderName=Jauna mape
 
 ; *** "Welcome" wizard page
-WelcomeLabel1=Laipni lûdzam [name] Uzstâdîðanâ
-WelcomeLabel2=Ðis uzstâdîs [name/ver] uz Jûsu datora.%n%nVçlams aizvçrt visas programmas pirms turpinâðanas.
+WelcomeLabel1=Ва� привет�твует Ма�тер у�тановки [name]
+WelcomeLabel2=Programma uzst�dīs [name/ver] uz Jūsu datora.%n%nPirms uzst�dīšanas vēlams aizvērt visas programmas.
 
 ; *** "Password" wizard page
 WizardPassword=Parole
-PasswordLabel1=Ðî instalâcija ir aizsargâta ar paroli.
-PasswordLabel3=Lûdzu, ievadiet paroli, tad spiediet "Tâlâk", lai turpinâtu. Parole ir reìistrjutîga.
+PasswordLabel1=Uzst�dīšana ir aizsarg�ta ar paroli.
+PasswordLabel3=Lūdzu, ievadiet paroli, tad spiediet "T�l�k", lai turpin�tu. Parole ir reģistrjūtīga.
 PasswordEditLabel=&Parole:
-IncorrectPassword=Parole, ko Jûs ievadîjât, ir nepareiza. Lûdzu, mçìiniet vçlreiz.
+IncorrectPassword=Jūsu ievadīt� parole ir nepareiza. Lūdzu, mēģiniet vēlreiz.
 
 ; *** "License Agreement" wizard page
-WizardLicense=Lîgums
-LicenseLabel=Lûdzu, izlasiet sekojoðo informâciju, pirms turpinât.
-LicenseLabel3=Lûdzu, izlasiet Lîgumu. Jums ir jâapstiprina Lîgums, lai turpinâtu instalâciju.
-LicenseAccepted=Es &piekrîtu lîgumam
-LicenseNotAccepted=Es &nepiekrîtu lîgumam
+WizardLicense=Licence
+LicenseLabel=Lūdzu, izlasiet sekojošo inform�ciju, pirms turpin�t.
+LicenseLabel3=Lūdzu, izlasiet Līgumu. Jums ir j�apstiprina Līgums, lai turpin�tu uzst�dīšanu.
+LicenseAccepted=Es &piekrītu līgumam
+LicenseNotAccepted=Es &nepiekrītu līgumam
 
 ; *** "Information" wizard pages
-WizardInfoBefore=Informâcija
-InfoBeforeLabel=Lûdzu, izlasiet ðo informâciju.
-InfoBeforeClickLabel=Kad esat gatavs turpinât instalâciju, spiediet "Tâlâk".
-WizardInfoAfter=Informâcija
-InfoAfterLabel=Lûdzu izlasiet sekojoðo informâciju.
-InfoAfterClickLabel=Kad esat gatavs turpinât instalâciju, spiediet "Tâlâk".
+WizardInfoBefore=Inform�cija
+InfoBeforeLabel=Lūdzu, izlasiet šo inform�ciju.
+InfoBeforeClickLabel=Kad esat gatavs turpin�t uzst�dīšanu, spiediet "T�l�k".
+WizardInfoAfter=Inform�cija
+InfoAfterLabel=Lūdzu, izlasiet šo inform�ciju.
+InfoAfterClickLabel=Kad esat gatavs turpin�t uzst�dīšanu, spiediet "T�l�k".
 
 ; *** "User Information" wizard page
-WizardUserInfo=Lietotâja informâcija
-UserInfoDesc=Lûdzu, ievadiet savu informâciju.
-UserInfoName=&Lietotâja vârds:
-UserInfoOrg=&Organizâcija:
-UserInfoSerial=&Seriâlais numurs:
-UserInfoNameRequired=Jums ir jâievada savs vârds.
+WizardUserInfo=Lietot�ja inform�cija
+UserInfoDesc=Lūdzu, ievadiet datus par sevi.
+UserInfoName=&Lietot�ja v�rds:
+UserInfoOrg=&Organiz�cija:
+UserInfoSerial=&Sērijas numurs:
+UserInfoNameRequired=Jums ir j�ievada savs v�rds.
 
 ; *** "Select Destination Location" wizard page
-WizardSelectDir=Izvçlieties mapi, uz kuru tiks sûtîti dati
-SelectDirDesc=Kur [name] tiks instalçts?
-SelectDirLabel3=[name] datnes tiks instalçtas norâdîtajâ mapç.
-SelectDirBrowseLabel=Lai turpinâtu, spiediet "Tâlâk". Ja vçlaties norâdît citu mapi, spiediet "Pârlûkot".
-DiskSpaceMBLabel=Ir nepiecieðami brîvi [mb] MB uz cietâ diska.
-CannotInstallToNetworkDrive=Iestatîðana nevar instalçt ar tîkla disku.
-CannotInstallToUNCPath=Iestatîðana nevar uzstâdît uz UNC ceïu.
-InvalidPath=Jums ir jânorâda pilna instalâcijas adrese, piemçrs:%n%nC:\APP%n%nvai  UNC adrese:%n%n\\server\share
-InvalidDrive=Ierîce UNC, kuru Jûs izvçlçjâties, nepastâv vai arî nav pieejama. Lûdzu, izvçlieties citu.
+WizardSelectDir=Uzst�dīšanas mapes izvēle
+SelectDirDesc=Kur [name] tiks instalēts?
+SelectDirLabel3=[name] datnes tiks instalētas nor�dītaj� mapē.
+SelectDirBrowseLabel=Lai turpin�tu, spiediet "T�l�k". Ja vēlaties nor�dīt citu mapi, spiediet "P�rlūkot".
+DiskSpaceGBLabel=Ir nepieciešami brīvi [gb] GB uz ciet� diska.
+DiskSpaceMBLabel=Ir nepieciešami brīvi [mb] MB uz ciet� diska.
+CannotInstallToNetworkDrive=Uzst�dīšana nevar tikt veikta uz tīkla diska.
+CannotInstallToUNCPath=Uzst�dīšana nevar tikt veikta mapē pa UNC-adresi.
+InvalidPath=Jums ir j�nor�da pilna uzst�dīšanas adrese, piemērs:%n%nC:\APP%n%nvai UNC adrese:%n%n\\server\share
+InvalidDrive=Disks vai tīkla adrese, kuru Jūs izvēlēj�ties, nepast�v vai arī nav pieejams. Lūdzu, izvēlieties citu.
 DiskSpaceWarningTitle=Nepietiek vietas uz diska
-DiskSpaceWarning=Instalâcijai ir nepiecieðami vismaz %1 KB brîvâs vietas uz diska, bet pieejami ir tikai %2 KB.%n%nVai vçlaties turpinât?
-DirNameTooLong=Mapes nosaukums vai adrese ir pârâk gara.
-InvalidDirName=Mapes nosaukums nav derîgs.
-BadDirName32=Mapes nosaukumâ nedrîkst bût ðâdi simboli:%n%n%1
-DirExistsTitle=Mape jau pastâv
-DirExists=Mape:%n%n%1%n%njau pastâv. Vai vienalga vçlaties turpinât?
-DirDoesntExistTitle=Mape nepastâv
-DirDoesntExist=Mape:%n%n%1%n%ndoes nepastâv. Vai vçlaties izveidot mapi?
+DiskSpaceWarning=Uzst�dīšanai ir nepieciešami vismaz %1 KB brīvas vietas uz diska, bet pieejami ir tikai %2 KB.%n%nVai vēlaties turpin�t?
+DirNameTooLong=Mapes nosaukums vai adrese ir p�r�k gara.
+InvalidDirName=Mapes nosaukums nav derīgs.
+BadDirName32=Mapes nosaukum� nedrīkst būt š�di simboli: %n%n%1
+DirExistsTitle=Mape jau past�v.
+DirExists=Mape:%n%n%1%n%njau past�v. Vai vienalga vēlaties turpin�t?
+DirDoesntExistTitle=Mape nepast�v
+DirDoesntExist=Mape%n%n%1%n%nnepast�v. Vai vēlaties to izveidot?
 
 ; *** "Select Components" wizard page
-WizardSelectComponents=Izvçlieties sastâvdaïas
-SelectComponentsDesc=Kurus komponentus vçlaties uzstâdît?
-SelectComponentsLabel2=Izvçlieties komponentus, kurus vçlaties uzstâdît. Spiediet "Tâlâk", lai turpinâtu.
-FullInstallation=Pilna Uzstâdîðana
+WizardSelectComponents=Izvēlieties sast�vdaļas
+SelectComponentsDesc=Kurus komponentus vēlaties uzst�dīt?
+SelectComponentsLabel2=Izvēlieties komponentus, kurus vēlaties uzst�dīt. Spiediet "T�l�k", lai turpin�tu.
+FullInstallation=Pilna uzst�dīšana
 ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=Kompakta Uzstâdîðana
-CustomInstallation=Izveidot Uzstâdîðanu
-NoUninstallWarningTitle=Komponenti jau pastâv
-NoUninstallWarning=Uzstâdîðana ir atklâjusi ka ðâdi faili jau ir uzstâdîti:%n%n%1%n%nAtiestatiet ðos komponentus.%n%nVai vçlaties turpinât?
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceMBLabel=Paðlaik izvçlçtie komponenti aizòem [mb] MB uz cietâ diska.
+CompactInstallation=Kompakta uzst�dīšana
+CustomInstallation=Izveidot uzst�dīšanu
+NoUninstallWarningTitle=Komponenti jau past�v
+NoUninstallWarning=Uzst�dīšana ir atkl�jusi, ka š�di komponenti jau ir uzst�dīti:%n%n%1%n%nŠo komponentu uzst�dīšanas atcelšana neizdzēsīs tos.%n%nVai turpin�t?
+ComponentSize1=%1 Кб
+ComponentSize2=%1 Мб
+ComponentsDiskSpaceGBLabel=Pašlaik izvēlētie komponenti aizņem [gb] GB uz ciet� diska.
+ComponentsDiskSpaceMBLabel=Pašlaik izvēlētie komponenti aizņem [mb] MB uz ciet� diska.
 
 ; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=Papilduzdevumu izvçlne
-SelectTasksDesc=Kurus papilduzdevumus vajadzçtu veikt?
-SelectTasksLabel2=Izvçlieties, kâdi papilduzdevumi tiks veikti [name] Uzstâdîðanas laikâ, tad spiediet "Tâlâk".
+WizardSelectTasks=Papilduzdevumu izvēlne
+SelectTasksDesc=Kurus papilduzdevumus vajadzētu veikt?
+SelectTasksLabel2=Izvēlieties, k�di papilduzdevumi tiks veikti [name] uzst�dīšanas laik�, tad spiediet "T�l�k".
 
 ; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Izvçlieties Start Menu mapi
-SelectStartMenuFolderDesc=Kur Uzstâdîðanas programmai vajadzçtu likt îsinâjumikonas?
-SelectStartMenuFolderLabel3=Uzstâdîðana izveidos îsinâjumikonas Start Menu mapç.
-SelectStartMenuFolderBrowseLabel=Lai turpinâtu, spiediet "Tâlâk". Ja vçlaties norâdît citu mapi, spiediet "Pârlûkot".
-MustEnterGroupName=Jums ir jânorâda mape.
-GroupNameTooLong=Mapes nosaukums ir pârâk garð.
-InvalidGroupName=Mape nav derîga.
-BadGroupName=Mapes nosaukums satur kâdu no ðiem simboliem:%n%n%1
+WizardSelectProgramGroup=Izvēlieties Start Menu mapi
+SelectStartMenuFolderDesc=Kur uzst�dīšanas programmai vajadzētu likt īsin�jumikonas?
+SelectStartMenuFolderLabel3=Uzst�dīšana izveidos īsin�jumikonas Start Menu mapē.
+SelectStartMenuFolderBrowseLabel=Lai turpin�tu, spiediet "T�l�k". Ja vēlaties nor�dīt citu mapi, spiediet "P�rlūkot".
+MustEnterGroupName=Jums ir j�nor�da mape.
+GroupNameTooLong=Mapes nosaukums ir p�r�k garš.
+InvalidGroupName=Mape nav derīga.
+BadGroupName=Mapes nosaukums satur k�du no šiem simboliem:%n%n%1
 NoProgramGroupCheck2=&Neizveidot Start Menu mapi
 
 ; *** "Ready to Install" wizard page
-WizardReady=Gatavs instalâcijai
-ReadyLabel1=Uzstâdîðana ir gatava instalçt [name] uz Jûsu datora.
-ReadyLabel2a=Spiediet "Uzstâdît", lai sâktu instalâciju, vai spiediet Atpakaï, lai izmainîtu parametrus.
-ReadyLabel2b=Spiediet "Uzstâdît", lai sâktu instalâciju.
-ReadyMemoUserInfo=Lietotâja informâcija:
-ReadyMemoDir=Galamçríis:
-ReadyMemoType=Uzstâdîðanas tips:
-ReadyMemoComponents=Izvçlçtie komponenti:
+WizardReady=Gatavs uzst�dīšanai
+ReadyLabel1=Uzst�dīšana ir gatava instalēt [name] uz Jūsu datora.
+ReadyLabel2a=Spiediet "Uzst�dīt", lai s�ktu uzst�dīšanu, vai spiediet "Atpakaļ", lai izmainītu parametrus.
+ReadyLabel2b=Spiediet "Uzst�dīt", lai s�ktu uzst�dīšanu.
+ReadyMemoUserInfo=Lietot�ja inform�cija:
+ReadyMemoDir=Galamēķis:
+ReadyMemoType=Uzst�dīšanas tips:
+ReadyMemoComponents=Izvēlētie komponenti:
 ReadyMemoGroup=Start Menu mape:
 ReadyMemoTasks=Papilduzdevumi:
 
+; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
+DownloadingLabel=Papildus datņu lejupiel�de...
+ButtonStopDownload=&P�rtraukt iel�di
+StopDownload=Jūs tieš�m vēlaties p�rtraukt lejupiel�di?
+ErrorDownloadAborted=Lejupiel�de p�rtraukta
+ErrorDownloadFailed=Lejupiel�des kļūda: %1 %2
+ErrorDownloadSizeFailed=Izmēra kļūda: %1 %2
+ErrorFileHash1=Ошибка х�ша файла: %1
+ErrorFileHash2=�еверный х�ш файла: ожидал�� %1, получен %2
+ErrorProgress=Izpildes kļūda: %1 из %2
+ErrorFileSize=Kļūdains faila izmērs: tika gaidīts %1, iegūts %2
+
 ; *** "Preparing to Install" wizard page
-WizardPreparing=Gatavoties instalâcijai
-PreparingDesc=Uzstâdîðana ir gatava instalçt [name] uz Jûsu datora.
-PreviousInstallNotCompleted=Instalâcija/noòemðana iepriekðçjai programmai nav pabeigta. Jums ir jâpârstartç dators, lai pabeigtu instalâciju.%n%nPçc pârstartçðanas palaidiet uzstâdîðanu no jauna, lai pabeigtu uzstâdît [name].
-CannotContinue=Uzstâdîðanu nevar turpinât. Lûdzu, spiediet "Atcelt", lai izietu.
-ApplicationsFound=Ðâdas lietojumprogrammas izmanto failus, kas ir jâatjaunina ar Setup. Tas ir ieteicams, ka jûs ïaujat Setup automâtiski aizvçrt ðos pieteikumus.
-ApplicationsFound2=Ðâdas lietojumprogrammas izmanto failus, kas ir jâatjaunina ar Setup. Tas ir ieteicams, ka jûs ïaujat Setup automâtiski aizvçrt ðos pieteikumus. Pçc uzstâdîðana ir pabeigta, Setup mçìinâs atsâkt pieteikumus.
-CloseApplications=&Automâtiski aizvçrtu programmas
-DontCloseApplications=&Nav aizvçrtu programmas
+WizardPreparing=Gatavoties uzst�dīšanai
+PreparingDesc=Uzst�dīšana ir gatava instalēt [name] uz Jūsu datora.
+PreviousInstallNotCompleted=Uzst�dīšana/noņemšana iepriekšējai programmai nav pabeigta. Jums ir j�p�rstartē dators, lai pabeigtu uzst�dīšanu.%n%nPēc p�rstartēšanas palaidiet uzst�dīšanu no jauna, lai pabeigtu uzst�dīt [name].
+CannotContinue=Uzst�dīšanu nevar turpin�t. Lūdzu, spiediet "Atcelt", lai izietu.
+ApplicationsFound=Sekojošas programmas izmanto datnes, kuras uzst�dīšanai j�atjauno. Rekomendējas uzst�dīšanai atļaut autom�tiski aizvērt šīs programmas.
+ApplicationsFound2=Sekojošas programmas izmanto datnes, kuras uzst�dīšanai j�atjauno. Rekomendējas uzst�dīšanai atļaut autom�tiski aizvērt šīs programmas. Kad instal�cija būs pabeigta, uzst�dīšana mēģin�s t�s atkal palaist.
+CloseApplications=&Autom�tiski aizvērt šīs programmas
+DontCloseApplications=&Neaizvērt šīs programmas
+ErrorCloseApplications=Uzst�dīšanai neizdev�s autom�tiski aizvērt visas programmas.Pirms uzst�dīšanas rekomendējas aizvērt visas programmas, kas izmanto atjaunin�m�s datnes.
+PrepareToInstallNeedsRestart=Uzst�dīšanai nepieciešams p�rstartēt Jūsu datoru. Kad dators p�rstartēsies, lūdzu, palaidiet uzst�dīšanas programmu vēlreiz, lai pabeigtu uzst�dīšanu [name].%n%nVeikt p�rstartēšanu tūlīt?
 
 ; *** "Installing" wizard page
-WizardInstalling=Instalâcija
-InstallingLabel=Lûdzu, uzgaidiet, kamçr [name] tiks uzstâdîts uz Jûsu datora.
+WizardInstalling=Uzst�dīšana...
+InstallingLabel=Lūdzu, uzgaidiet, kamēr [name] tiks uzst�dīts uz Jūsu datora.
 
 ; *** "Setup Completed" wizard page
-FinishedHeadingLabel=Pabeigta [name] Uzstâdîðana
-FinishedLabelNoIcons=Uzstâdîðana pabeigta.
-FinishedLabel=Uzstâdîðana pabeigta. Programmu var palaist, uzklikðíinot uz izveidotajâm ikonâm.
-ClickFinish=Spiediet "Pabeigt", lai aizvçrtu Uzstâdîðanu.
-FinishedRestartLabel=Lai pabeigtu [name] uzstâdîðanu, nepiecieðams pârstartçt Jûsu datoru. Vai vçlaties to darît tagad?
-FinishedRestartMessage=Lai pabeigtu [name] uzstâdîðanu, nepiecieðams pârstartçt Jûsu datoru.%n%nVai vçlaties to darît tagad?
-ShowReadmeCheck=Jâ, vçlos apskatît README failu
-YesRadio=&Jâ, pârstartçt datoru tagad
-NoRadio=&Nç, datoru pârstartçðu vçlâk
+FinishedHeadingLabel=Pabeigta [name] uzst�dīšana
+FinishedLabelNoIcons=Uzst�dīšana pabeigta.
+FinishedLabel=Programma [name] ir uzst�dīta uz Jūsu datora. Programmu var palaist, uzklikšķinot uz izveidotaj�m ikon�m.
+ClickFinish=Spiediet "Pabeigt", lai aizvērtu uzst�dīšanu.
+FinishedRestartLabel=Lai pabeigtu [name] uzst�dīšanu, nepieciešams p�rstartēt Jūsu datoru. Vai vēlaties to darīt tagad?
+FinishedRestartMessage=Lai pabeigtu [name] uzst�dīšanu, nepieciešams p�rstartēt Jūsu datoru.%n%nVai vēlaties to darīt tagad?
+ShowReadmeCheck=J�, vēlos apskatīt README failu
+YesRadio=&J�, p�rstartēt datoru tagad
+NoRadio=&Nē, datoru p�rstartēšu vēl�k
 ; used for example as 'Run MyProg.exe'
-RunEntryExec=Run %1
+RunEntryExec=Palaist %1
 ; used for example as 'View Readme.txt'
-RunEntryShellExec=View %1
+RunEntryShellExec=Apskatīt %1
 
 ; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=Uzstâdîðanai ir nepiecieðams nâkamais disks
-SelectDiskLabel2=Lûdzu, ielieciet %1 disku un spiediet "Ok".%n%nJa datne ir atrodama uz ðî paða diska kâdâ citâ mapç, norâdiet tâs atraðanâs vietu vai spiediet "Pârlûkot", lai to norâdîtu.
-PathLabel=&Ceïð:
-FileNotInDir2=Datne "%1" neatrodas "%2". Lûdzu, ielieciet pareizo disku vai norâdiet pareizo mapi.
-SelectDirectoryLabel=Lûdzu, norâdiet nâkamâ diska atraðanâs vietu.
+ChangeDiskTitle=Uzst�dīšanai ir nepieciešams n�kamais disks
+SelectDiskLabel2=Lūdzu, ielieciet %1 disku un spiediet "Ok".%n%nJa datne ir atrodama uz šī paša diska k�d� cit� mapē, nor�diet t�s atrašan�s vietu vai spiediet "P�rlūkot", lai to nor�dītu.
+PathLabel=&Ceļš:
+FileNotInDir2=Datne "%1" neatrodas "%2". Lūdzu, ielieciet pareizo disku vai nor�diet pareizo mapi.
+SelectDirectoryLabel=Lūdzu, nor�diet n�kam� diska atrašan�s vietu.
 
 ; *** Installation phase messages
-SetupAborted=Uzstâdîðana netika pabeigta.%n%nLûdzu, izlabojiet kïûdu un palaidiet Uzstâdîðanu no jauna.
-EntryAbortRetryIgnore=Spiediet "Atkârtot", lai mçìinâtu vçlreiz, vai "Ignorçt", lai turpinâtu, vai "Pârtraukt", lai beigtu instalâciju.
+SetupAborted=Uzst�dīšana netika pabeigta.%n%nLūdzu, izlabojiet kļūdu un palaidiet uzst�dīšanu no jauna.
+AbortRetryIgnoreSelectAction=Izvēlieties darbību
+AbortRetryIgnoreRetry=Mēģin�t no &jauna
+AbortRetryIgnoreIgnore=&Ignorēt kļūdu un turpin�t
+AbortRetryIgnoreCancel=P�rtraukt uzst�dīšanu
 
 ; *** Installation status messages
-StatusClosingApplications=Noslçguma pieteikumi...
-StatusCreateDirs=Mapju izveidoðana...
-StatusExtractFiles=Datòu kopçðana...
-StatusCreateIcons=Îsinâjumikonu izveidoðana...
+StatusClosingApplications=Programmu aizvēršana...
+StatusCreateDirs=Mapju izveidošana...
+StatusExtractFiles=Datņu kopēšana...
+StatusCreateIcons=Īsin�jumikonu izveidošana...
 StatusCreateIniEntries=Izveido INI ierakstu...
-StatusCreateRegistryEntries=Izveido reìistra ierakstus...
-StatusRegisterFiles=Reìistrç datnes...
-StatusSavingUninstall=Saglabâ atinstalçðanas datus...
-StatusRunProgram=Pabeidz instalâciju...
-StatusRestartingApplications=Restartçðana pieteikumi...
-StatusRollback=Izveido izmaiòas...
+StatusCreateRegistryEntries=Izveido reģistra ierakstus...
+StatusRegisterFiles=Reģistrē datnes...
+StatusSavingUninstall=Saglab� noņemšanas datus...
+StatusRunProgram=Pabeidz uzst�dīšanu...
+StatusRestartingApplications=Programmu restartēšana...
+StatusRollback=Izmaiņu atiestatīšana...
 
 ; *** Misc. errors
-ErrorInternal2=Iekðçja kïûda: %1
-ErrorFunctionFailedNoCode=%1 cieta neveiksmi
-ErrorFunctionFailed=%1 cieta neveiksmi; kods %2
-ErrorFunctionFailedWithMessage=%1 cieta neveiksmi; kods %2.%n%3
-ErrorExecutingProgram=Neiespçjami palaist failu:%n%1
+ErrorInternal2=Iekšēja kļūda: %1
+ErrorFunctionFailedNoCode=%1: cieta neveiksmi
+ErrorFunctionFailed=%1: cieta neveiksmi; kods %2
+ErrorFunctionFailedWithMessage=%1: cieta neveiksmi; kods %2.%n%3
+ErrorExecutingProgram=Nespēju palaist failu:%n%1
 
 ; *** Registry errors
-ErrorRegOpenKey=Kïûda, atverot reìistra atslçgu:%n%1\%2
-ErrorRegCreateKey=Kïûda, izveidojot reìistra atslçgu:%n%1\%2
-ErrorRegWriteKey=Kïûda, rakstot reìistra atslçgu:%n%1\%2
+ErrorRegOpenKey=Kļūda, atverot reģistra atslēgu:%n%1\%2
+ErrorRegCreateKey=Kļūda, izveidojot reģistra atslēgu:%n%1\%2
+ErrorRegWriteKey=Kļūda, rakstot reģistra atslēgu:%n%1\%2
 
 ; *** INI errors
-ErrorIniEntry=Kïûda, izveidojot INI ieraksta datni "%1".
+ErrorIniEntry=Kļūda, izveidojot INI ieraksta datni "%1".
 
 ; *** File copying errors
-FileAbortRetryIgnore=Spiediet "Atkârtot", lai mçìinâtu vçlreiz, "Ignorçt", lai izlaistu datni (nav ieteicams), vai "Pârtraukt", lai beigtu instalâciju.
-FileAbortRetryIgnore2=Spiediet "Atkârtot", lai mçìinâtu vçlreiz, "Ignorçt", lai turpinâtu (nav ieteicams), vai "Pârtraukt", lai beigtu instalâciju.
-SourceIsCorrupted=Datnes avots ir bojâts
-SourceDoesntExist=Datnes avots "%1" nepastâv
-ExistingFileReadOnly=Pastâvoðâ datne ir izveidota kâ read-only.%n%nSpiediet "Atkârtot", lai noòemtu read-only îpaðîbu un mçìinâtu vçlreiz, "Ignorçt", lai izlaistu datni, vai "Pârtraukt", lai beigtu instalâciju.
-ErrorReadingExistingDest=Kïûda, nolasot pastâvoðo datni:
-FileExists=Datne jau pastâv.%n%nVai vçlaties, lai Uzstâdîðana to pârraksta?
-ExistingFileNewer=Pastâvoðâ datne ir jaunâka par to, kuru nepiecieðams uzstâdît. Vçlams atstât jau pastâvoðo datni.%n%nVai vçlaties to paturçt?
-ErrorChangingAttr=Radusies kïûda, mçìinot nomainît datnes îpaðîbu:
-ErrorCreatingTemp=Radusies kïûda, izveidojot datni galamçría mapç:
-ErrorReadingSource=Radusies kïûda, nolasot datni:
-ErrorCopying=Radusies kïûda, pârkopçjot datni:
-ErrorReplacingExistingFile=Radusies kïûda, pârrakstot jau pastâvoðo datni:
-ErrorRestartReplace=Atkârtota aizstâðana cietusi neveiksmi:
-ErrorRenamingTemp=Radusies kïûda, nomainot nosaukumu datnei galamçría mapç:
-ErrorRegisterServer=Neiespçjami reìistrçt DLL/OCX: %1
-ErrorRegSvr32Failed=RegSvr32 neizdevâs ar izejas kodu %1
-ErrorRegisterTypeLib=Neiespçjami reìistrçt tipa bibliotçku: %1
+FileAbortRetryIgnoreSkipNotRecommended=I&zlaist šo failu (nerekomendējas)
+FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorēt kļūdu un turpin�t (nerekomendējas)
+SourceIsCorrupted=Datnes avots ir boj�ts
+SourceDoesntExist=Datnes avots "%1" nepast�v
+ExistingFileReadOnly2=Nevar aizst�t esošo failu, t� k� tas ir iezīmēts k� "read only".
+ExistingFileReadOnlyRetry=&Dzēst atribūtu "read only" un atk�rtot mēģin�jumu
+ExistingFileReadOnlyKeepExisting=&Paturēt esošo failu
+ErrorReadingExistingDest=Kļūda, mēģinot lasīt past�vošo failu:
+FileExistsSelectAction=Izvēlieties darbību
+FileExists2=Fails jau past�v.
+FileExistsOverwriteExisting=&Aizst�t esošo failu
+FileExistsKeepExisting=&Saglab�t esošo failu
+FileExistsOverwriteOrKeepAll=A&tk�rtot darbību visiem turpm�kajiem konfliktiem
+ExistingFileNewerSelectAction=Izvēlieties darbību
+ExistingFileNewer2=Esošais fails ir jaun�ks nek� uzst�d�mais.
+ExistingFileNewerOverwriteExisting=&Aizst�t esošo failu
+ExistingFileNewerKeepExisting=&Saglab�t esošo failu (rekomendējas)
+ExistingFileNewerOverwriteOrKeepAll=A&tk�rtot darbību visiem turpm�kajiem konfliktiem
+ErrorChangingAttr=Radusies kļūda, mēģinot nomainīt datnes īpašību:
+ErrorCreatingTemp=Radusies kļūda, izveidojot datni galamērķa mapē:
+ErrorReadingSource=Radusies kļūda, nolasot datni:
+ErrorCopying=Radusies kļūda, p�rkopējot datni:
+ErrorReplacingExistingFile=Radusies kļūda, p�rrakstot jau past�vošo datni:
+ErrorRestartReplace=Atk�rtota aizst�šana cietusi neveiksmi:
+ErrorRenamingTemp=Radusies kļūda, nomainot nosaukumu datnei galamērķa mapē:
+ErrorRegisterServer=Neiespējami reģistrēt DLL/OCX: %1
+ErrorRegSvr32Failed=Kļūda, palaižot RegSvr32, kods %1
+ErrorRegisterTypeLib=Neiespējami reģistrēt tipa bibliotēku: %1
+
+; *** Uninstall display name markings
+UninstallDisplayNameMark=%1 (%2)
+UninstallDisplayNameMarks=%1 (%2, %3)
+UninstallDisplayNameMark32Bit=32 biti
+UninstallDisplayNameMark64Bit=64 biti
+UninstallDisplayNameMarkAllUsers=Visi lietot�ji
+UninstallDisplayNameMarkCurrentUser=Tekošais lietot�js
 
 ; *** Post-installation errors
-ErrorOpeningReadme=Radusies kïûda, atverot README datni.
-ErrorRestartingComputer=Uzstâdîðana nevar pârstartçt datoru. Lûdzu, izdariet to manuâli.
+ErrorOpeningReadme=Radusies kļūda, atverot README datni.
+ErrorRestartingComputer=Uzst�dīšana nevar p�rstartēt datoru. Lūdzu, izdariet to manu�li.
 
 ; *** Uninstaller messages
-UninstallNotFound=Datne "%1" nepastâv. Nevar atinstalçt.
-UninstallOpenError=Datni "%1" nevar atvçrt. Nevar atinstalçt
-UninstallUnsupportedVer=Atinstalçðanas datne "%1" nav atpazîstama ðai atinstalçðanas programmai. Nevar atinstalçt
-UninstallUnknownEntry=Nezinâms ieraksts (%1) izveidoja sadursmi ar atinstalâciju
-ConfirmUninstall=Vai esat pârliecinâts, ka vçlaties pilnîbâ noòemt %1 un visus tâ komponentus?
-UninstallOnlyOnWin64=Ðo instalâciju var noòemt tikai ar 64-bitu Windows.
-OnlyAdminCanUninstall=Atinstalâciju var veikt tikai lietotâjs ar Adminstratora privilçìijâm.
-UninstallStatusLabel=Lûdzu uzgaidiet, kamçr %1 tiek noòemts no Jûsu datora.
-UninstalledAll=%1 tika veiksmîgi noòemts no Jûsu datora.
-UninstalledMost=%1 atinstalâcija pabeigta.%n%nDaþus elementus nevarçja noòemt. Tos var noòemt manuâli.
-UninstalledAndNeedsRestart=Lai pabeigtu atinstalâciju %1, Jûsu dators jâpârstartç.%n%nVai vçlaties to darît tagad?
-UninstallDataCorrupted="%1" datne ir bojâta. Nevar atinstalçt
+UninstallNotFound=Datne "%1" nepast�v. Nevar noņemt.
+UninstallOpenError=Datni "%1" nevar atvērt. Nevar noņemt
+UninstallUnsupportedVer=Noņemšanas datne "%1" nav atpazīstama šai noņemšanas programmai. Nevar noņemt
+UninstallUnknownEntry=Nezin�ms ieraksts (%1) izveidoja sadursmi ar noņemšanu
+ConfirmUninstall=Vai esat p�rliecin�ts, ka vēlaties pilnīb� noņemt %1 un visus t� komponentus?
+UninstallOnlyOnWin64=Noņemšanu var veikt tikai ar 64-bitu Windows.
+OnlyAdminCanUninstall=Noņemšanu var veikt tikai lietot�js ar Adminstratora privilēģij�m.
+UninstallStatusLabel=Lūdzu uzgaidiet, kamēr %1 tiek noņemts no Jūsu datora.
+UninstalledAll=%1 tika veiksmīgi noņemts no Jūsu datora.
+UninstalledMost=%1 noņemšana pabeigta.%n%nDažus elementus nevarēja noņemt. Tos var noņemt manu�li.
+UninstalledAndNeedsRestart=Lai pabeigtu %1 noņemšanu, Jūsu dators j�p�rstartē.%n%nVai vēlaties to darīt tagad?
+UninstallDataCorrupted="%1" datne ir boj�ta. Nevar noņemt
 
 ; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=Noòemt kopîgâs datnes?
-ConfirmDeleteSharedFile2=Sistçma ir secinâjusi, ka ðîs koplietoðanas datnes vairs netiks lietotas. Vai vçlaties tâs noòemt?%n%nJa kâda cita programma izmanto ðîs datnes, tad ðî programma var strâdât nekorekti. Ja neesat droðs, izvçlieties "Nç". Atstâjot ðîs datnes, Jûsu datoram netiks nodarîti nekâdi bojâjumi.
+ConfirmDeleteSharedFileTitle=Noņemt kopīgo datni?
+ConfirmDeleteSharedFile2=Sistēma ir secin�jusi, ka šī koplietošanas datne vairs netiks lietota. Vai vēlaties to noņemt?%n%nJa k�da cita programma izmanto šo datni, tad šī programma var str�d�t nekorekti. Ja neesat drošs, izvēlieties "Nē". Atst�jot šo datni, Jūsu datoram netiks nodarīti nek�di boj�jumi.
 SharedFileNameLabel=Faila nosaukums:
-SharedFileLocationLabel=Atraðanâs vieta:
-WizardUninstalling=Atinstalçðanas Statuss
-StatusUninstalling=Atinstalç %1...
+SharedFileLocationLabel=Atrašan�s vieta:
+WizardUninstalling=Noņemšanas statuss
+StatusUninstalling=Noņem %1...
+
 
 ; *** Shutdown block reasons
-ShutdownBlockReasonInstallingApp=Instalçðana %1.
-ShutdownBlockReasonUninstallingApp=Atinstalç %1.
+ShutdownBlockReasonInstallingApp=%1 uzst�dīšana.
+ShutdownBlockReasonUninstallingApp=%1 noņemšana.
 
 ; The custom messages below aren't used by Setup itself, but if you make
 ; use of them in your scripts, you'll want to translate them.
 
 [CustomMessages]
 
-NameAndVersion=%1 versija %2
+NameAndVersion=%1, versija %2
 AdditionalIcons=Papildu ikonas:
 CreateDesktopIcon=Izveidot &darbvisrmas ikonu
 CreateQuickLaunchIcon=Izveidot &Quick Launch ikonu
-ProgramOnTheWeb=%1 Internçtâ
-UninstallProgram=Atinstalçt %1
+ProgramOnTheWeb=%1 vietne Internet�
+UninstallProgram=Noņemt %1
 LaunchProgram=Palaist %1
-AssocFileExtension=&Apvienot %1 ar %2 faila paplaðinâjumu
-AssocingFileExtension=Apvienoðana %1 ar %2 faila paplaðinâjumu...
-AutoStartProgramGroupDescription=starta:
-AutoStartProgram=Automâtiski sâkt %1
-AddonHostProgramNotFound=%1 nevar atrasties mapç jûs izvçlçjâties.%n%nVai vçlaties turpinât?
+AssocFileExtension=&Apvienot %1 ar %2 faila paplašin�jumu
+AssocingFileExtension=Apvieno %1 ar %2 faila paplašin�jumu...
+AutoStartProgramGroupDescription=Autom�tisk� palaišana:
+AutoStartProgram=Autom�tiski palaist %1
+AddonHostProgramNotFound=%1 nav atrasts Jūsu nor�dītaj� mapē.%n%nTomēr turpin�t?

+ 61 - 13
Files/Languages/Unofficial/Romanian.isl

@@ -1,8 +1,8 @@
-; *** Inno Setup version 5.5.3+ Romanian messages ***
+; *** Inno Setup version 6.1.0+ Romanian messages ***
 ; Translator : Alexandru Bogdan Munteanu ([email protected])
 ;
 ; To download user-contributed translations of this file, go to:
-;   http://www.jrsoftware.org/files/istrans/
+;   https://jrsoftware.org/files/istrans/
 ;
 ; Note: When translating this text, do not add periods (.) to the end of
 ; messages that didn't have them already, because on those messages Inno
@@ -43,6 +43,7 @@ ErrorTitle=Eroare
 SetupLdrStartupMessage=Va fi instalat programul %1. Vrei să continui?
 LdrCannotCreateTemp=Nu pot crea o filă temporară. Instalare abandonată
 LdrCannotExecTemp=Nu pot executa o filă din dosarul temporar. Instalare abandonată
+HelpTextNote=
 
 ; *** Startup error messages
 LastErrorMessage=%1.%n%nEroarea %2: %3
@@ -56,7 +57,6 @@ WindowsServicePackRequired=Acest program necesit
 NotOnThisPlatform=Acest program nu va rula pe %1.
 OnlyOnThisPlatform=Acest program trebuie să ruleze pe %1.
 OnlyOnTheseArchitectures=Acest program poate fi instalat doar pe versiuni de Windows proiectate pentru următoarele arhitecturi de procesor:%n%n%1
-MissingWOW64APIs=Versiunea de Windows pe care o rulezi nu include funcţionalitatea cerută de Instalator pentru a realiza o instalare pe 64-biţi. Pentru a corecta problema, va trebui să instalezi Service Pack %1.
 WinVersionTooLowError=Acest program necesită %1 versiunea %2 sau mai nouă.
 WinVersionTooHighError=Acest program nu poate fi instalat pe %1 versiunea %2 sau mai nouă.
 AdminPrivilegesRequired=Trebuie să fii logat ca Administrator pentru instalarea acestui program.
@@ -64,6 +64,16 @@ PowerUserPrivilegesRequired=Trebuie s
 SetupAppRunningError=Instalatorul a detectat că %1 rulează în acest moment.%n%nÎnchide toate instanţele programului respectiv, apoi clichează OK pentru a continua sau Anulează pentru a abandona instalarea.
 UninstallAppRunningError=Dezinstalatorul a detectat că %1 rulează în acest moment.%n%nÎnchide toate instanţele programului respectiv, apoi clichează OK pentru a continua sau Anulează pentru a abandona dezinstalarea.
 
+; *** Startup questions
+PrivilegesRequiredOverrideTitle=Select Modul de Instalare al Instalatorului
+PrivilegesRequiredOverrideInstruction=Selectează modul de instalare
+PrivilegesRequiredOverrideText1=%1 poate fi instalat pentru toţi utilizatorii (necesită calitatea de administrator), sau doar pentru tine.
+PrivilegesRequiredOverrideText2=%1 poate fi instalat doar pentru tine, sau pentru toţi utilizatorii (necesită calitatea de administrator).
+PrivilegesRequiredOverrideAllUsers=Instalează pentru toţi utiliz&atorii
+PrivilegesRequiredOverrideAllUsersRecommended=Instalează pentru toţi utiliz&atorii (recomandat)
+PrivilegesRequiredOverrideCurrentUser=Instalează doar pentru &mine
+PrivilegesRequiredOverrideCurrentUserRecommended=Instalează doar pentru &mine (recomandat)
+
 ; *** Misc. errors
 ErrorCreatingDir=Instalatorul nu a putut crea dosarul "%1"
 ErrorTooManyFilesInDir=Nu pot crea o filă în dosarul "%1" din cauză că are deja prea multe file
@@ -142,6 +152,7 @@ WizardSelectDir=Selectarea Locului de Destina
 SelectDirDesc=Unde vrei să instalezi [name]?
 SelectDirLabel3=Instalatorul va pune [name] în dosarul specificat mai jos.
 SelectDirBrowseLabel=Pentru a avansa cu instalarea, clichează pe Continuă. Dacă vrei să selectezi un alt dosar, clichează pe Explorează.
+DiskSpaceGBLabel=Este necesar un spaţiu liber de stocare de cel puţin [gb] GB.
 DiskSpaceMBLabel=Este necesar un spaţiu liber de stocare de cel puţin [mb] MB.
 CannotInstallToNetworkDrive=Instalatorul nu poate realiza instalarea pe un dispozitiv de reţea.
 CannotInstallToUNCPath=Instalatorul nu poate realiza instalarea pe o cale în format UNC.
@@ -169,6 +180,7 @@ NoUninstallWarningTitle=Componentele Exist
 NoUninstallWarning=Instalatorul a detectat că următoarele componente sînt deja instalate pe calculator:%n%n%1%n%nDeselectarea lor nu le va dezinstala.%n%nVrei să continui oricum?
 ComponentSize1=%1 KB
 ComponentSize2=%1 MB
+ComponentsDiskSpaceGBLabel=Selecţia curentă necesită cel puţin [gb] GB spaţiu de stocare.
 ComponentsDiskSpaceMBLabel=Selecţia curentă necesită cel puţin [mb] MB spaţiu de stocare.
 
 ; *** "Select Additional Tasks" wizard page
@@ -199,6 +211,18 @@ ReadyMemoComponents=Componente Selectate:
 ReadyMemoGroup=Dosarul Meniului de Start:
 ReadyMemoTasks=Sarcini Suplimentare:
 
+; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
+DownloadingLabel=Descarc file suplimentare...
+ButtonStopDownload=O&preşte descărcarea
+StopDownload=Sigur vrei să opreşti descărcarea?
+ErrorDownloadAborted=Descărcare abandonată
+ErrorDownloadFailed=Descărcare eşuată: %1 %2
+ErrorDownloadSizeFailed=Obţinerea mărimii a eşuat: %1 %2
+ErrorFileHash1=Haşul filei a eşuat: %1
+ErrorFileHash2=Haşul filei e nevalid: aşteptat %1, găsit %2
+ErrorProgress=Progres nevalid: %1 of %2
+ErrorFileSize=Mărime a filei nevalidă: aşteptată %1, găsită %2
+
 ; *** "Preparing to Install" wizard page
 WizardPreparing=Pregătire pentru Instalare
 PreparingDesc=Instalatorul pregăteşte instalarea [name] pe calculator.
@@ -209,6 +233,7 @@ ApplicationsFound2=Aplica
 CloseApplications=Închide &automat aplicaţiile
 DontCloseApplications=Nu închi&de aplicaţiile
 ErrorCloseApplications=Instalatorul nu a putut închide automat toate aplicaţiile. Înainte de a continua, e recomandat să închizi manual toate aplicaţiile care folosesc file ce trebuie actualizate de Instalator.
+PrepareToInstallNeedsRestart=Instalatorul trebuie să repornescă calculatorul. După repornire, rulează Instalatorul din nou pentru a termina instalarea [name].%n%nVrei să reporneşti acum?
 
 ; *** "Installing" wizard page
 WizardInstalling=Instalare în Desfăşurare
@@ -238,7 +263,10 @@ SelectDirectoryLabel=Specific
 
 ; *** Installation phase messages
 SetupAborted=Instalarea nu a fost terminată.%n%nCorectează problema şi apoi rulează Instalarea din nou.
-EntryAbortRetryIgnore=Clichează pe Reîncearcă pentru a încerca din nou, pe Ignoră pentru a continua oricum, sau pe Abandonează pentru a anula instalarea.
+AbortRetryIgnoreSelectAction=Selectează acţiunea
+AbortRetryIgnoreRetry=Încearcă din &nou
+AbortRetryIgnoreIgnore=&Ignoră eroarea şi continuă
+AbortRetryIgnoreCancel=Anulează instalarea
 
 ; *** Installation status messages
 StatusClosingApplications=Închid aplicaţiile...
@@ -269,14 +297,24 @@ ErrorRegWriteKey=Eroare la scrierea 
 ErrorIniEntry=Eroare la crearea intrării INI în fişierul "%1".
 
 ; *** File copying errors
-FileAbortRetryIgnore=Clichează pe Reîncearcă pentru a încerca din nou, pe Ignoră pentru a sări această filă (nerecomandat), sau pe Abandonează pentru a anula instalarea.
-FileAbortRetryIgnore2=Clichează pe Reîncearcă pentru a încerca din nou, pe Ignoră pentru a continua oricum (nerecomandat), sau pe Abandonează pentru a anula instalarea.
+FileAbortRetryIgnoreSkipNotRecommended=&Sari peste această filă (nerecomandat)
+FileAbortRetryIgnoreIgnoreNotRecommended=&Ignoră eroarea şi continuă (nerecomandat)
 SourceIsCorrupted=Fila sursă este stricată (coruptă)
 SourceDoesntExist=Fila sursă "%1" nu există
-ExistingFileReadOnly=Fila deja existentă este marcată doar-citire.%n%nClichează pe Reîncearcă pentru a înlătura atributul doar-citire şi a încerca din nou, pe Ignoră pentru a sări această filă, sau pe Abandonează pentru a anula instalarea.
-ErrorReadingExistingDest=A apărut o eroare în timpul citirii filei deja existente:
-FileExists=Fila există deja.%n%Vrei ca ea să fie suprascrisă de Instalator?
-ExistingFileNewer=Fila deja existentă este mai nouă decît cea care trebuie instalată. Este recomandat s-o păstrezi pe cea existentă.%n%nVrei să păstrezi fila deja existentă?
+ExistingFileReadOnly2=Fila deja existentă nu poate fi înlocuită pentru că-i marcată doar-citire.
+ExistingFileReadOnlyRetry=Înlătu&ră atributul doar-citire şi reîncearcă
+ExistingFileReadOnlyKeepExisting=&Păstrează fila existentă
+ErrorReadingExistingDest=A apărut o eroare la citirea filei deja existente:
+FileExistsSelectAction=Selectează acţiunea
+FileExists2=Fila există deja.
+FileExistsOverwriteExisting=&Suprascrie fila existentă
+FileExistsKeepExisting=&Păstrează fila existentă
+FileExistsOverwriteOrKeepAll=&Fă la fel pentru conflictele următoare
+ExistingFileNewerSelectAction=Selectează acţiunea
+ExistingFileNewer2=Fila existentă e mai nouă decît cea pe care încearcă Instalatorul s-o instaleze.
+ExistingFileNewerOverwriteExisting=&Suprascrie fila existentă
+ExistingFileNewerKeepExisting=&Păstrează fila existentă (recomandat)
+ExistingFileNewerOverwriteOrKeepAll=&Fă la fel pentru conflictele următoare
 ErrorChangingAttr=A apărut o eroare în timpul schimbării atributelor filei deja existente:
 ErrorCreatingTemp=A apărut o eroare în timpul creării filei în dosarul de destinaţie:
 ErrorReadingSource=A apărut o eroare în timpul citirii filei sursă:
@@ -288,6 +326,16 @@ ErrorRegisterServer=Nu pot 
 ErrorRegSvr32Failed=RegSvr32 a eşuat, avînd codul de ieşire %1
 ErrorRegisterTypeLib=Nu pot înregistra biblioteca de tipuri: %1
 
+; *** Uninstall display name markings
+; used for example as 'My Program (32-bit)'
+UninstallDisplayNameMark=%1 (%2)
+; used for example as 'My Program (32-bit, All users)'
+UninstallDisplayNameMarks=%1 (%2, %3)
+UninstallDisplayNameMark32Bit=32-biţi
+UninstallDisplayNameMark64Bit=64-biţi
+UninstallDisplayNameMarkAllUsers=Toţi utilizatorii
+UninstallDisplayNameMarkCurrentUser=Utilizatorul curent
+
 ; *** Post-installation errors
 ErrorOpeningReadme=A apărut o eroare la deschiderea filei de informare (README).
 ErrorRestartingComputer=Instalatorul nu a putut reporni calculatorul. Va trebui să-l reporneşti manual.
@@ -324,9 +372,9 @@ ShutdownBlockReasonUninstallingApp=Dezinstalez %1.
 [CustomMessages]
 
 NameAndVersion=%1 versiunea %2
-AdditionalIcons=Icoane suplimentare:
-CreateDesktopIcon=Creează o icoană pe &Birou ("Desktop")
-CreateQuickLaunchIcon=Creează o icoană în Bara de &Lansare Rapidă ("Quick Launch")
+AdditionalIcons=Scurtături suplimentare:
+CreateDesktopIcon=Creează o scurtătură pe &Birou ("Desktop")
+CreateQuickLaunchIcon=Creează o scurtătură în Bara de &Lansare Rapidă ("Quick Launch")
 ProgramOnTheWeb=%1 pe internet
 UninstallProgram=Dezinstalează %1
 LaunchProgram=Lansează %1

+ 384 - 336
Files/Languages/Unofficial/Thai.isl

@@ -1,338 +1,386 @@
-; Translation made with Stonevoice Translator 2.2 (http://www.stonevoice.com/auto/translator)
-; $Translator:NL=%n:TB=%t
-; Suwat Yangfuang, Ekachai Omkaew
-; [email protected], [email protected]
-; 
-; *** Inno Setup version 5.5.3+ Thai messages ***
-;
-; To download user-contributed translations of this file, go to:
-;   http://www.jrsoftware.org/files/istrans/
-;
-; Note: When translating this text, do not add periods (.) to the end of
-; messages that didn't have them already, because on those messages Inno
-; Setup adds the periods automatically (appending a period would result in
-; two periods being displayed).
-
-[LangOptions]
-; The following three entries are very important. Be sure to read and 
-; understand the '[LangOptions] section' topic in the help file.
-LanguageName=Thai
-LanguageID=$041E
-LanguageCodePage=874
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=
-;DialogFontSize=8
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;TitleFontName=Arial
-;TitleFontSize=29
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
-
-[Messages]
-
-; *** Application titles
-SetupAppTitle=。メテオヤエオム鬧
-SetupWindowTitle=。メテオヤエオム鬧 - %1
-UninstallAppTitle=ツ。倏ヤ。。メテオヤエオム鬧
-UninstallAppFullTitle=%1 ツ。倏ヤ。。メテオヤエオム鬧
-
-; *** Misc. common
-InformationTitle=、モヘクヤコメツ
-ConfirmTitle=。メテツラケツムケ
-ErrorTitle=、ヌメチシヤエセナメエ
-
-; *** SetupLdr messages
-SetupLdrStartupMessage=ィミ狹ヤ霖。メテオヤエオム鬧 %1. 、リウオ鯱ァ。メテオヤエオム鬧篏テ癸テチヒテラヘ菽�?
-LdrCannotCreateTemp=菽靆メチメテカ ハテ鰓ァ眩鮹「鯱チルナェム霽、テメヌ莇� 。メテオヤエオム鬧ツ。倏ヤ。
-LdrCannotExecTemp=菽靆メチメテカ 罨鱠ソナ�ケ キユ鞨。郤「鯱チルナェム霽、テメヌ莇� 。メテオヤエオム鬧ツ。倏ヤ。
-
-; *** Startup error messages
-LastErrorMessage=%1.%n%n、ヌメチシヤエセナメエ狹ラ靉ァ %2: %3
-SetupFileMissing=菫ナ� %1 羯篩ナ犇ヘテ�ユ襍ヤエオム鬧菽靆チコルテウ� 。テリウメ癸鱠「罨鱠ソナ�メテオヤエオム鬧キユ靆チコルテウ�
-SetupFileCorrupt=菫ナ�メテオヤエオム鬧猝ユツヒメツ 。テリウメ癸鱠「罨鱠ソナ�メテオヤエオム鬧キユ靆チコルテウ�
-SetupFileCorruptOrWrongVer=猊ヘテ�ム雹菫ナ�メテオヤエオム鬧菽雜ル。オ鯱ァ 。テリウメ癸鱠「罨鱠ソナ�メテオヤエオム鬧キユ靆チコルテウ�
-InvalidParameter=セメテメチヤ犒ヘテ�ヤエセナメエキユ隱リエ、モハム隗:%n%n%1
-SetupAlreadyRunning=。メテオヤエオム鬧。モナムァエモ犹ヤケ。メテヘツル鞦ナ鯢
-WindowsVersionNotSupported=篏テ癸テチ菽霤ヘァテムコ猊ヘテ�ムケ「ヘァヌヤケ箒ヌケ�ユ隍リウ罨鬧メケヘツル�
-WindowsServicePackRequired=篏テ癸テチオ鯱ァ。メテ %1 Service Pack %2 「ヨ鮖莉.
-NotOnThisPlatform=篏テ癸テチケユ鱠チ霍モァメケ 羯テミココ %1.
-OnlyOnThisPlatform=篏テ癸テチケユ� オ鯱ァキモァメケ羯テミココ %1.
-OnlyOnTheseArchitectures=篏テ癸テチケユ鯡メチメテカオヤエオム鬧羯 Windows テリ雹キユ靉ヘ。蘯コチメハモヒテムコハカメサムオツ。テテチ「ヘァヒケ霽ツサテミチヌナシナエムァオ靉莉ケユ�:%n%n%1
-MissingWOW64APIs=テリ雹「ヘァ Windows キユ隍リウ罨鯱ツル鞴チ險モ狃郢オ鯱ァチユ。メテ罨鬧メケ箒ツオヤエオム鬧狎ラ靉キモ。メテオヤエオム鬧蘯コ 64 - bit 狠ラ靉オ鯱ァ。メテ癸鱠「サムュヒメケユ鰾サテエオヤエオム鬧 Service Pack %1.
-WinVersionTooLowError=篏テ癸テチケユ魴鯱ァ。メテテミココ %1 猊ヘテ�ム雹 %2 ヒテラヘ耆チ陦ヌ靨
-WinVersionTooHighError=篏テ癸テチケユ鱠チ靆メチメテカ オヤエオム鬧羯テミココ %1 猊ヘテ�ム雹 %2 ヒテラヘ耆チ陦ヌ靨
-AdminPrivilegesRequired=、リウオ鯱ァ罨� USER 「ヘァシル魘ル眷テミココ爼雹 administrator 狎ユ靉オヤエオム鬧篏テ癸テチケユ�.
-PowerUserPrivilegesRequired=、リウオ鯱ァ爐鰓ハル霤ミココ エ鯢ツシル鱚ェ鬧メケ キユ鞨サ郢シル魘ル眷テミココ 爼雹 administrator ヒテラヘ 狃郢シル鱚ェ鬧メケ キユ靉ツル鞳ケ。ナリ霖 Power Users 狠ラ靉オ鯱ァ。メテオヤエオム鬧篏テ癸テチケユ�
-SetupAppRunningError=チユ篏テ癸テチ %1 。モナムァキモァメケヘツル�%n%n。テリウメサヤエ篏テ癸テチ 眷ミ、ナヤ。 オ。ナァ 狎ラ靉キモァメケオ靉 ヒテラヘ ツ。倏ヤ。 狎ラ靉ィコ。メテオヤエオム鬧
-UninstallAppRunningError=セコヌ靨篏テ癸テチ %1 。メテ。モナムァキモァメケヘツル�%n%n。テリウメサヤエ篏テ癸テチ 眷ミ、ナヤ。 オ。ナァ 狎ラ靉キモァメケオ靉 ヒテラヘ ツ。倏ヤ。 狎ラ靉ィコ。メテキモァメケ
-
-; *** Misc. errors
-ErrorCreatingDir=菽靆メチメテカハテ鰓ァ篩ナ犇ヘテ� "%1" 莇�
-ErrorTooManyFilesInDir=菽靆メチメテカハテ鰓ァ菫ナ�ケ篩ナ犇ヘテ�  "%1" 狎テメミチユ菫ナ�モケヌケチメ。爍ヤケ莉
-
-; *** Setup common messages
-ExitSetupTitle=ヘヘ。ィメ。 。メテオヤエオム鬧
-ExitSetupMessage=。メテオヤエオム鬧ィミ菽靆チコルテウ� カ鰓、リウィコ。メテキモァメケ羯猊ナメケユ�%n%n、リウィミオ鯱ァキモ。メテオヤエオム鬧篏テ癸テチ耆チ靉ユ。、テム鬧 狎ラ靉耆鬘メテオヤエオム鬧ハチコルテウ�%n%n、リウオ鯱ァ。メティコ。メテオヤエオム鬧?
-AboutSetupMenuItem=�&。ユ霙ヌ。ムコ 。メテオヤエオム鬧...
-AboutSetupTitle=爍ユ霙ヌ。ムコ 篏テ癸テチ。メテオヤエオム鬧
-AboutSetupMessage=%1 猊ヘテ�ム雹 %2%n%3%n%n%1 簧チ狎ィ:%n%4
-AboutSetupNote=
-TranslatorNote=
-
-; *** Buttons
-ButtonBack=< &ツ鯱ケ。ナムコ
-ButtonNext=&キモオ靉 >
-ButtonInstall=&オヤエオム鬧
-ButtonOK=オ。ナァ
-ButtonCancel=ツ。倏ヤ。
-ButtonYes=�&ェ�
-ButtonYesToAll=罨� &キム鬧ヒチエ
-ButtonNo=�&チ�
-ButtonNoToAll=菽� &キム鬧ヒチエ
-ButtonFinish=�&ハテ遞
-ButtonBrowse=�&ナラヘ。...
-ButtonWizardBrowse=�&ナラヘ。...
-ButtonNewFolder=&ハテ鰓ァ篩ナ犇ヘテ�ヒチ�
-
-; *** "Select Language" dialog messages
-SelectLanguageTitle=倏ラヘ。タメノメキユ襍鯱ァ。メテ
-SelectLanguageLabel=倏ラヘ。タメノメ キユ襍鯱ァ。メテ罨鯏ミヒヌ靨ァ 。メテオヤエオム鬧篏テ癸テチ
-
-; *** Common wizard text
-ClickNext=、ナヤ。 キモオ靉 > 狎ラ靉キモァメケ ヒテラヘ 、ナヤ。 ツ。倏ヤ。 ィコ。メテキモァメケ
-BeveledLabel=
-BrowseDialogTitle=倏ラヘ。篩ナ犇ヘテ�
-BrowseDialogLabel=倏ラヘ。篩ナ犇ヘテ�ケテメツ。メテエ鰓ケナ靨ァィメ。ケム鮖、ナヤ。 オ。ナァ.
-NewFolderName=篩ナ犇ヘテ�ヒチ�
-
-; *** "Welcome" wizard page
-WelcomeLabel1=「ヘオ鯱ケテムコハル� 篏テ癸テチ。メテオヤエオム鬧 [name]
-WelcomeLabel2=。靉ケ。メテオヤエオム鬧篏テ癸テチ [name/ver] ハル鞨、テラ靉ァ、ヘチセヤヌ犒ヘテ�ヘァ、リウ%n%n狹メ「ヘ盪ミケモ、リウ耆� サヤエ篏テ癸テチキユ鞴チ鞨。ユ霙ヌ「鯱ァキム鬧ヒチエ 。靉ケ。メテオヤエオム鬧狎ラ靉サ鯱ァ。ムケ。メテ爍ヤエサ揵ヒメ羯。メテオヤエオム鬧篏テ癸テチ
-
-; *** "Password" wizard page
-WizardPassword=テヒムハシ靨ケ
-PasswordLabel1=。メテオヤエオム鬧ケユ� カル。サ鯱ァ。ムケエ鯢ツテヒムハシ靨ケ
-PasswordLabel3=。テリウメ飜霤ヒムハシ靨ケキユ鞳ェ魴ヤエオム鬧篏テ癸テチ 、ナヤ。 キモオ靉 狎ラ靉キモァメケ  (Passwords are case-sensitive)
-PasswordEditLabel=&テヒムハシ靨ケ:
-IncorrectPassword=テヒムハシ靨ケキユ鞳ェ鱠チ雜ル。オ鯱ァ 。テルウメキエナヘァ飜靉ユ。、テム鬧
-
-; *** "License Agreement" wizard page
-WizardLicense=ハムュュメ 「鯱オ。ナァ
-LicenseLabel=。テリウメヘ靨ケ ハムュュメ「鯱オ。ナァ キユ靆モ、ムュケユ鬘靉ケ 。メテオヤエオム鬧篏テ癸テチ
-LicenseLabel3=。テリウメヘ靨ケ ハムュュメ「鯱オ。ナァ キユ險ミ睫エァオ靉莉 、リウオ鯱ァツヘチテムコ 爰ラ靉ケ茲テミツミ猊ナメ キユ陦モヒケエ羯ハムュュメ 。靉ケ狹ヤ霖。メテオヤエオム鬧篏テ癸テチ オ靉莉
-LicenseAccepted=ゥムケ &ツヘチテムコ 「鯱ハムュュメ
-LicenseNotAccepted=ゥムケ &菽霙ヘチテムコ 「鯱ハムュュメ
-
-; *** "Information" wizard pages
-WizardInfoBefore=、モヘクヤコメツ
-InfoBeforeLabel=。テリウメヘ靨ケ「鯱チルナハモ、ムュ 。靉ケキモ。メテオヤエオム鬧篏テ癸テチ
-InfoBeforeClickLabel=カ鰓、リウセテ鯱チィミオヤエオム鬧篏テ癸テチ 、ナヤ。キユ霆リ霖 キモオ靉 >
-WizardInfoAfter=、モヘクヤコメツ
-InfoAfterLabel=。テリウメヘ靨ケ「鯱チルナハモ、ムュ 。靉ケキモァメケ「ム鮖オヘケオ靉莉
-InfoAfterClickLabel=カ鰓、リウセテ鯱チィミキモ「ム鮖オヘケオ靉莉 、ナヤ。キユ霆リ霖 キモオ靉 >
-
-; *** "User Information" wizard page
-WizardUserInfo=「鯱チルナ ハモヒテムコシル鱚ェ鬧メケ
-UserInfoDesc=。テリウメ 。テヘ。「鯱チルナ 「ヘァ、リウ
-UserInfoName=&シル鱚ェ鬧メケ
-UserInfoOrg=&ヒケ霽ツァメケ
-UserInfoSerial=テヒムハ &Serial Number
-UserInfoNameRequired=、リウオ鯱ァ 飜隱ラ靉「ヘァ、リウ
-
-; *** "Select Destination Location" wizard page
-WizardSelectDir=倏ラヘ。篩ナ犇ヘテ�ユ襍鯱ァ。メテオヤエオム鬧篏テ癸テチ
-SelectDirDesc=篩ナ犇ヘテ�ユ襍ヤエオム鬧篏テ癸テチ、ラヘ [name] ?
-SelectDirLabel3=。メテオヤエオム鬧ィミオヤエオム鬧 [name] ナァ羯篩ナ犇ヘテ�靉莉ケユ�
-SelectDirBrowseLabel=エモ犹ヤケ。メテオ靉莉耆鬢ナヤ。キユ霆リ霖 キモオ靉 > カ鰓、リウオ鯱ァ。メテ倏ラヘ。篩ナ犇ヘテ�ラ雹耆鬢ナヤ。キユ霆リ霖 倏ラヘ。...
-DiskSpaceMBLabel=。メテオヤエオム鬧オ鯱ァ。メテ犹ラ鯱キユ霽靨ァ菽雹鯱ツ。ヌ靨 [mb] MB
-CannotInstallToNetworkDrive=。メテオヤエオム鬧菽靆メチメテカオヤエオム鬧莉ツムァ莇テ�、テラヘ「靨ツ莇�
-CannotInstallToUNCPath=菽靆メチメテカオヤエオム鬧ナァ莉ツムァオモ睛ケ隗 UNC 莇�
-InvalidPath=、リウオ鯱ァ罨� full path with drive letter; オメチオムヌヘツ靨ァ:%nC:\APP
-InvalidDrive=菽霖ユ莇テヌ�ユ隍リウ倏ラヘ。 。テリウメ倏ラヘ。莇テヌ�ラ雹
-DiskSpaceWarningTitle=犹ラ鯱キユ霽靨ァ羯エヤハ。�チ鞨セユツァセヘ
-DiskSpaceWarning=。メテオヤエオム鬧オ鯱ァ。メテ犹ラ鯱キユ霽靨ァ %1 KB 盞鞴エテヌ�ユ隍リウ倏ラヘ。チユ犹ラ鯱キユ霽靨ァ %2 KB%n%n、リウオ鯱ァ。メテオヤエオム鬧オ靉莉ヒテラヘ菽�?
-DirNameTooLong=ェラ靉篩ナ犇ヘテ�テラヘ path ツメヌ爍ヤケ莉.
-InvalidDirName=ェラ靉篩ナ犇ヘテ�チ雜ル。オ鯱ァ.
-BadDirName32=ェラ靉篩ナ犇ヘテ�チ霖ユハメチメテカ罨魴ムヌヘム。ノテ羔賤ナムァィメ。爨テラ靉ァヒチメツ :%n%n%1
-DirExistsTitle=チユ篩ナ犇ヘテ�ツル鞦ナ鯢
-DirExists=篩ナ犇ヘテ�:%n%n%1%n%n羯「ウミケユ鮹ユヘツル鞦ナ鯢 、リウオ鯱ァ。メテオヤエオム鬧篏テ癸テチ羯篩ナ犇ヘテ�ユ鰲ナツヒテラヘ菽�?
-DirDoesntExistTitle=菽霎コ篩ナ犇ヘテ�
-DirDoesntExist=篩ナ犇ヘテ�:%n%n%1%n%n菽霖ユヘツル鞳ケ「ウミケユ� 、リウオ鯱ァ。メテハテ鰓ァ篩ナ犇ヘテ�ユ鰲ナツヒテラヘ菽�?
-
-; *** "Select Components" wizard page
-WizardSelectComponents=倏ラヘ。ハ霽ケサテミ。ヘコ
-SelectComponentsDesc=ハ霽ケサテミ。ヘコ萢ケキユ隍リウオ鯱ァ。メテオヤエオム鬧?
-SelectComponentsLabel2=キモ爨テラ靉ァヒチメツ倏ラヘ。ハ霽ケサテミ。ヘコキユ隍リウオ鯱ァ。メテオヤエオム鬧; ナコ爨テラ靉ァヒチメツハ霽ケサテミ。ヘコキユ隍リウ菽襍鯱ァ。メテ 、ナヤ。キモオ靉 狠ラ靉、リウ倏ラヘ。猝テ遞眷鯢
-FullInstallation=オヤエオム鬧キリ。ヘツ靨ァ
-; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=オヤエオム鬧ケ鯱ツキユ靆リエ
-CustomInstallation=。モヒケエハ霽ケサテミ。ヘコ猩ァ
-NoUninstallWarningTitle=ハ霽ケサテミ。ヘコ犇ヤチチユヘツル鞦ナ鯢
-NoUninstallWarning=セコハ霽ケサテミ。ヘコ キユ襍鯱ァ。メテオヤエオム鬧羯、ヘチセヤヌ犒ヘテ�ヘァ、リウ眷鯢%n%n%1
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceMBLabel=。メテオヤエオム鬧オ鯱ァ。メテ犹ラ鯱キユ霽靨ァ [mb] MB
-
-; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=倏ラヘ。。メテキモァメケ 狎ヤ霖犒ヤチ
-SelectTasksDesc=。モヒケエ。メテキモァメケ狎ヤ霖犒ヤチ
-SelectTasksLabel2=倏ラヘ。。メテキモァメケ狎ヤ霖犒ヤチ 狎ラ靉。メテオヤエオム鬧篏テ癸テチ [name] 眷ミ、ナヤ。キユ霆リ霖 キモオ靉 >
-
-; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=倏ラヘ。篩ナ犇ヘテ� Start Menu
-SelectStartMenuFolderDesc=。モヒケエ。メテオヤエオム鬧 program's shortcuts?
-SelectStartMenuFolderLabel3=。メテオヤエオム鬧ィミハテ鰓ァ program's shortcuts オ靉莉ケユ鱚ケ篩ナ犇ヘテ� Start Menu.
-SelectStartMenuFolderBrowseLabel=エモ犹ヤケ。メテオ靉莉耆鬢ナヤ。キユ霆リ霖 キモオ靉 > カ鰓、リウオ鯱ァ。メテ倏ラヘ。篩ナ犇ヘテ�ラ雹耆鬢ナヤ。キユ霆リ霖 倏ラヘ。...
-MustEnterGroupName=、リウオ鯱ァ飜隱ラ靉篩ナ犇ヘテ�
-GroupNameTooLong=ェラ靉篩ナ犇ヘテ�テラヘ path ツメヌ爍ヤケ莉.
-InvalidGroupName=ェラ靉篩ナ犇ヘテ�チ雜ル。オ鯱ァ.
-BadGroupName=ェラ靉篩ナ犇ヘテ�チ靆メチメテカ 罨魴ムヌヘム。ノテケユ鱚ケェラ靉莇�:%n%n%1
-NoProgramGroupCheck2=�&チ霖ユ。メテハテ鰓ァ Start Menu folder
-
-; *** "Ready to Install" wizard page
-WizardReady=セテ鯱チキユ險ミオヤエオム鬧
-ReadyLabel1=。モナムァィミ狹ヤ霖。メテオヤエオム鬧篏テ癸テチ [name] 羯爨テラ靉ァ、ヘチセヤヌ犒ヘテ�ナ鯢
-ReadyLabel2a=、ナヤ。キユ霆リ霖 オヤエオム鬧 狎ラ靉オヤエオム鬧篏テ癸テチ ヒテラヘ 、ナヤ。キユ霆リ霖 < ツ鯱ケ。ナムコ 狎ラ靉エル。メテ。モヒケエ、靨 キユ鞳ェ鱚ケ。メテオヤエオム鬧篏テ癸テチ
-ReadyLabel2b=、ナヤ。キユ� オヤエオム鬧 狎ラ靉オヤエオム鬧篏テ癸テチ
-ReadyMemoUserInfo=「鯱チルナ ハモヒテムコシル鱚ェ�
-ReadyMemoDir=篩ナ犇ヘテ�ユ襍ヤエオム鬧篏テ癸テチ
-ReadyMemoType=サテミ狢キ。メテオヤエオム鬧
-ReadyMemoComponents=ハ霽ケサテミ。ヘコキユ鞨ナヤヘ。オヤエオム鬧
-ReadyMemoGroup=篩ナ犇ヘテ� Start Menu
-ReadyMemoTasks=。メテキモァメケ 狎ヤ霖犒ヤチ:
-
-; *** "Preparing to Install" wizard page
-WizardPreparing=。メテ犒テユツチ。メテ キユ險ミオヤエオム鬧篏テ癸テチ
-PreparingDesc=篏テ癸テチ 。モナムァ犒テユツチ。メテ 狎ラ靉オヤエオム鬧 [name] キユ鞨、テラ靉ァ、ヘチセヤヌ犒ヘテ�ヘァ、リウ
-PreviousInstallNotCompleted=。メテオヤエオム鬧 ヒテラヘカヘエカヘケ 篏テ癸テチ犇ヤチ菽靆チコルテウ� 、リウオ鯱ァ restart 爨テラ靉ァ、ヘチセヤヌ犒ヘテ� 狎ラ靉耆鬘メテオヤエオム鬧 カル。オ鯱ァハチコルテウ�%n%nヒナムァィメ。。メテ restart 爨テラ靉ァ、ヘチセヤヌ犒ヘテ�ナ鯢 狹ユツ。篏テ癸テチ Setup ケユ鯱ユ。、テム鬧 狎ラ靉耆鬘メテオヤエオム鬧 [name] カル。オ鯱ァハチコルテウ�
-CannotContinue=篏テ癸テチオヤエオム鬧菽靆メチメテカキモァメケオ靉莉莇� 。テリウメ、ナヤ。サリ霖 ツ。倏ヤ。 狎ラ靉ヘヘ。ィメ。篏テ癸テチ
-ApplicationsFound=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications.
-ApplicationsFound2=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. After the installation has completed, Setup will attempt to restart the applications.
-CloseApplications=&Automatically close the applications
-DontCloseApplications=&Do not close the applications
-ErrorCloseApplications=Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing.
-
-; *** "Installing" wizard page
-WizardInstalling=。メテオヤエオム鬧
-InstallingLabel=。テリウメテヘハム。、テル� 。モナムァオヤエオム鬧篏テ癸テチ [name] 羯、ヘチセヤヌ犒ヘテ�
-
-; *** "Setup Completed" wizard page
-FinishedHeadingLabel=。メテオヤエオム鬧 [name] 猝テ遞ハチコルテウ�
-FinishedLabelNoIcons=。メテオヤエオム鬧篏テ癸テチ [name] 羯爨テラ靉ァ、ヘチセヤヌ犒ヘテ� 猝テ遞ハチコルテウ�
-FinishedLabel=。メテオヤエオム鬧篏テ癸テチ [name] 羯爨テラ靉ァ、ヘチセヤヌ犒ヘテ� 猝テ遞ハチコルテウ� 、リウハメチメテカ狹ユツ。罨鰾サテ癸テチ莇鬨メ。 Icons 莇鱆ナ鯢
-ClickFinish=、ナヤ。 猝テ遞 狎ラ靉ィコ。メテオヤエオム鬧篏テ癸テチ
-FinishedRestartLabel=。メテオヤエオム鬧篏テ癸テチ [name] ィモ狃郢オ鯱ァ Restart 爨テラ靉ァ、ヘチセヤヌ犒ヘテ� 、リウオ鯱ァ。メテ Restart 爨テラ靉ァ、ヘチセヤヌ犒ヘテ� 羯「ウミケユ鰺テラヘ菽�?
-FinishedRestartMessage=。メテオヤエオム鬧篏テ癸テチ [name] ィモ狃郢オ鯱ァ Restart 爨テラ靉ァ、ヘチセヤヌ犒ヘテ�%n%n 、リウオ鯱ァ。メテ Restart 爨テラ靉ァ、ヘチセヤヌ犒ヘテ� 羯「ウミケユ鰺テラヘ菽�?
-ShowReadmeCheck=罨� 、リウオ鯱ァ。メテヘ靨ケ菫ナ� README
-YesRadio=�&ェ�, restart 、ヘチセヤヌ犒ヘテ�ムケキユ
-NoRadio=�&チ� 、リウオ鯱ァ。メテ Restart 、ヘチセヤヌ犒ヘテ�ヘァ ヒナムァィメ。ケユ�
-; used for example as 'Run MyProg.exe'
-RunEntryExec=Run %1
-; used for example as 'View Readme.txt'
-RunEntryShellExec=View %1
-
-; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=。メテオヤエオム鬧 オ鯱ァエヤハ。�シ雹オ靉莉
-SelectDiskLabel2=。テリウメ飜雍ヤハ。� %1 眷ミ 、ナヤ。 オ。ナァ%n%nカ鰓菽霖ユ菫ナ�ケエヤハ。� 盞霖ユ羯篩ナ犇ヘテ�ラ雹 。テリウメ飜鞣ソナ犇ヘテ�ユ雜ル。オ鯱ァ ヒテラヘ 、ナヤ。 倏ラヘ。
-PathLabel=&Path:
-FileNotInDir2=菫ナ� "%1" 菽霎コ羯 "%2"。テリウメ飜鞦シ雹エヤハ。�ユ雜ル。オ鯱ァ ヒテラヘ 倏ラヘ。篩ナ犇ヘテ�ユ霖ユ菫ナ�モヒテムコオヤエオム鬧
-SelectDirectoryLabel=。テリウメ。モヒケエキユ靉ツル� 「ヘァエヤハ。�シ雹オ靉莉
-
-; *** Installation phase messages
-SetupAborted=。メテオヤエオム鬧菽靆チコルテウ�%n%n。テリウメ狹ユツ。 菫ナ�メテオヤエオム鬧篏テ癸テチ ヘユ。、テム鬧ヒケヨ隗
-EntryAbortRetryIgnore=、ナヤ。 Retry 狎ラ靉ナヘァキモァメケヘユ。、テム鬧, 、ナヤ。 Ignore 狎ラ靉「鰓チ。メテキモァメケキユ霈ヤエセナメエ, ヒテラヘ 、ナヤ。 Abort ツ。倏ヤ。。メテオヤエオム鬧
-
+�ソ; Nathawat Chalapinyo
+; [email protected]
+; *** Inno Setup version 6.1.0+ Thai messages ***
+;
+; To download user-contributed translations of this file, go to:
+;   https://jrsoftware.org/files/istrans/
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+
+[LangOptions]
+; The following three entries are very important. Be sure to read and 
+; understand the '[LangOptions] section' topic in the help file.
+LanguageName=Thai
+LanguageID=$041E
+LanguageCodePage=874
+; If the language you are translating to requires special font faces or
+; sizes, uncomment any of the following entries and change them accordingly.
+;DialogFontName=
+;DialogFontSize=8
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
+;TitleFontName=Arial
+;TitleFontSize=29
+;CopyrightFontName=Arial
+;CopyrightFontSize=8
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+SetupWindowTitle=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� - %1
+UninstallAppTitle=犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+UninstallAppFullTitle=%1 犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+
+; *** Misc. common
+InformationTitle=犧�クウ犧ュ犧倨クエ犧壟クイ犧「
+ConfirmTitle=犧「犧キ犧吭ク「犧ア犧�
+ErrorTitle=犧憫クエ犧扉ク樅ク・犧イ犧�
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=犧≒ク」犧ー犧壟クァ犧吭ク≒クイ犧」犧吭クオ犹霞ク謂クー犹€犧」犧エ犹謂ク。犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� %1. 犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�クォ犧」犧キ犧ュ犹�ク。犹�?
+LdrCannotCreateTemp=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧� 犧ェ犧」犹霞クイ犧�ケもク游ク・犹€犧扉クュ犧」犹呉クもケ霞クュ犧。犧ケ犧・犧癌クア犹謂クァ犧�ク」犧イ犧ァ犹�ク扉ケ� 犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク籾クケ犧≒ク「犧≒ケ€犧・犧エ犧�
+LdrCannotExecTemp=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧� 犹�ク癌ケ霞ケ�ク游ク・犹呉ケ�ク� 犧伶クオ犹謂ケ€犧≒ケ�ク壟クもケ霞クュ犧。犧ケ犧・犧癌クア犹謂クァ犧�ク」犧イ犧ァ犹�ク扉ケ� 犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク籾クケ犧≒ク「犧≒ケ€犧・犧エ犧�
+HelpTextNote=
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%n犧もケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧� %2: %3
+SetupFileMissing=犹�ク游ク・犹� %1 犹�ク吭ケもク游ク・犹€犧扉クュ犧」犹呉ク伶クオ犹謂ク歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂クェ犧。犧壟クケ犧」犧内ケ� 犹もク巵ク」犧扉ク歩ク」犧ァ犧謂クェ犧ュ犧壟ケ�ク游ク・犹呉ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ≒ク・犹霞クァ犧・犧ュ犧�クュ犧オ犧≒ク�ク」犧ア犹霞ク�
+SetupFileCorrupt=犹�ク游ク・犹呉ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ€犧ェ犧オ犧「犧ォ犧イ犧「 犹もク巵ク」犧扉ク歩ク」犧ァ犧謂クェ犧ュ犧壟ケ�ク游ク・犹呉ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ≒ク・犹霞クァ犧・犧ュ犧�クュ犧オ犧≒ク�ク」犧ア犹霞ク�
+SetupFileCorruptOrWrongVer=犹€犧ァ犧ュ犧」犹呉ク癌クア犹謂ク吭ケ�ク游ク・犹呉ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�クォ犧」犧キ犧ュ犹€犧もケ霞クイ犧≒クア犧吭ケ�ク。犹謂ケ�ク扉ケ� 犹もク巵ク」犧扉ク歩ク」犧ァ犧謂クェ犧ュ犧壟ケ�ク游ク・犹呉ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ≒ク・犹霞クァ犧・犧ュ犧�クュ犧オ犧≒ク�ク」犧ア犹霞ク�
+InvalidParameter=犧樅クイ犧」犧イ犧。犧エ犹€犧歩クュ犧」犹呉ク憫クエ犧扉ク樅ク・犧イ犧扉ク伶クオ犹謂ク癌クク犧扉ク�クウ犧ェ犧ア犹謂ク�:%n%n%1
+SetupAlreadyRunning=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク≒クウ犧・犧ア犧�ク伶クウ犧�クイ犧吭クュ犧「犧ケ犹�
+WindowsVersionNotSupported=犹もク巵ク」犹≒ク≒ク」犧。犹�ク。犹謂ク」犧ュ犧�ク」犧ア犧壟ケ€犧ァ犧ュ犧」犹呉ク癌クア犹謂ク吭クもクュ犧�クァ犧エ犧吭ケもク扉クァ犧吭ケ呉ク伶クオ犹謂ケ�ク癌ケ霞クュ犧「犧ケ犹�
+WindowsServicePackRequired=犹もク巵ク」犹≒ク≒ク」犧。犧歩ケ霞クュ犧�ク≒クイ犧」 %1 Service Pack %2 犧ォ犧」犧キ犧ュ犹�クォ犧。犹謂ク≒クァ犹謂クイ.
+NotOnThisPlatform=犹もク巵ク」犹≒ク≒ク」犧。犧吭クオ犹� 犹�ク。犹謂ク伶クウ犧�クイ犧吭ク壟ク� %1.
+OnlyOnThisPlatform=犹もク巵ク」犹≒ク≒ク」犧。犧吭クオ犹� 犧歩ケ霞クュ犧�ク伶クウ犧�クイ犧吭ク壟ク� %1.
+OnlyOnTheseArchitectures=犹もク巵ク」犹≒ク≒ク」犧。犧吭クオ犹霞クェ犧イ犧。犧イ犧」犧籾ク歩クエ犧扉ク歩クア犹霞ク�ク壟ク� 犧ァ犧エ犧吭ケもク扉クァ犧吭ケ呉ク」犧ク犹謂ク吭ク伶クオ犹謂クュ犧ュ犧≒ケ≒ク壟ク壟ク。犧イ犧ェ犧ウ犧ォ犧」犧ア犧壟クェ犧籾クイ犧巵クア犧歩ク「犧≒ク」犧」犧。犧歩ケ謂クュ犹�ク巵ク吭クオ犹�:%n%n%1
+WinVersionTooLowError=犹もク巵ク」犹≒ク≒ク」犧。犧吭クオ犹霞ク歩ケ霞クュ犧�ク≒クイ犧」 %1 犹€犧ァ犧ュ犧」犹呉ク癌クア犹謂ク� %2 犧ォ犧」犧キ犧ュ犹�クォ犧。犹謂ク≒クァ犹謂クイ
+WinVersionTooHighError=犹もク巵ク」犹≒ク≒ク」犧。犧吭クオ犹霞ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク歩クエ犧扉ク歩クア犹霞ク�ク壟ク� %1 犹€犧ァ犧ュ犧」犹呉ク癌クア犹謂ク� %2 犧ォ犧」犧キ犧ュ犹�クォ犧。犹謂ク≒クァ犹謂クイ
+AdminPrivilegesRequired=犧�クク犧内ク歩ケ霞クュ犧�ケ�ク癌ケ霞ク憫クケ犹霞ケ�ク癌ケ霞クもクュ犧�ク憫クケ犹霞ク扉クケ犹≒ク・犧」犧ー犧壟ク� 犹€犧癌ケ謂ク� administrator 犹€犧。犧キ犹謂クュ犧歩クエ犧扉ク歩クア犹霞ク�ケもク巵ク」犹≒ク≒ク」犧。犧吭クオ犹�
+PowerUserPrivilegesRequired=犧�クク犧内ク歩ケ霞クュ犧�ケ€犧もケ霞クイ犧ェ犧ケ犹謂ク」犧ー犧壟ク� 犧扉ケ霞クァ犧「犧憫クケ犹霞ケ�ク癌ケ霞ク憫クケ犹霞ク扉クケ犹≒ク・犧」犧ー犧壟ク� 犹€犧癌ケ謂ク� administrator 犧ォ犧」犧キ犧ュ犧≒ク・犧ク犹謂ク。犧憫クケ犹霞ケ�ク癌ケ霞ク�クイ犧� Power Users 犹€犧。犧キ犹謂クュ犧歩クエ犧扉ク歩クア犹霞ク�ケもク巵ク」犹≒ク≒ク」犧。犧吭クオ犹�
+SetupAppRunningError=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク樅ク壟クァ犹謂クイ %1 犧≒クウ犧・犧ア犧�ク伶クウ犧�クイ犧吭クュ犧「犧ケ犹�%n%n犹もク巵ク」犧扉ク巵クエ犧扉ケもク巵ク」犹≒ク≒ク」犧。 犹≒ク・犧ー犧≒ク� 犧歩ク≒ク・犧� 犹€犧樅クキ犹謂クュ犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ 犧ォ犧」犧キ犧ュ 犧「犧≒ケ€犧・犧エ犧� 犹€犧樅クキ犹謂クュ犧謂ク壟ク≒クイ犧」犧伶クウ犧�クイ犧�
+UninstallAppRunningError=犹もク巵ク」犹≒ク≒ク」犧。犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク樅ク壟クァ犹謂クイ %1 犧≒クウ犧・犧ア犧�ク伶クウ犧�クイ犧吭クュ犧「犧ケ犹�%n%n犹もク巵ク」犧扉ク巵クエ犧扉ケもク巵ク」犹≒ク≒ク」犧。 犹≒ク・犧ー犧≒ク� 犧歩ク≒ク・犧� 犹€犧樅クキ犹謂クュ犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ 犧ォ犧」犧キ犧ュ 犧「犧≒ケ€犧・犧エ犧� 犹€犧樅クキ犹謂クュ犧謂ク壟ク≒クイ犧」犧伶クウ犧�クイ犧�
+
+; *** Startup questions
+PrivilegesRequiredOverrideTitle=犹€犧・犧キ犧ュ犧≒ケもクォ犧。犧扉ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+PrivilegesRequiredOverrideInstruction=犹€犧・犧キ犧ュ犧≒ケもクォ犧。犧扉ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+PrivilegesRequiredOverrideText1=%1 犧ェ犧イ犧。犧イ犧」犧籾ク歩クエ犧扉ク歩クア犹霞ク�クェ犧ウ犧ォ犧」犧ア犧壟ク憫クケ犹霞ケ�ク癌ケ霞ク伶クク犧≒ク�ク� (犧歩ケ霞クュ犧�ク≒クイ犧」犧ェ犧エ犧伶ク倨クエ犹� 犧」犧ー犧扉クア犧壟ク憫クケ犹霞ク扉クケ犹≒ク・犧」犧ー犧壟ク�), 犧ォ犧」犧キ犧ュ犹€犧霞ク樅クイ犧ー犧�クク犧内ケ€犧伶ケ謂クイ犧吭クア犹霞ク�
+PrivilegesRequiredOverrideText2=%1 犧ェ犧イ犧。犧イ犧」犧籾ク歩クエ犧扉ク歩クア犹霞ク�クェ犧ウ犧ォ犧」犧ア犧壟ク�クク犧内ケ€犧伶ケ謂クイ犧吭クア犹霞ク� 犧ォ犧」犧キ犧ュ犧ェ犧ウ犧ォ犧」犧ア犧壟ク憫クケ犹霞ケ�ク癌ケ霞ク伶クク犧≒ク�ク� (犧歩ケ霞クュ犧�ク≒クイ犧」犧ェ犧エ犧伶ク倨クエ犹� 犧」犧ー犧扉クア犧壟ク憫クケ犹霞ク扉クケ犹≒ク・犧」犧ー犧壟ク�)
+PrivilegesRequiredOverrideAllUsers=犧歩クエ犧扉ク歩クア犹霞ク�クェ犧ウ犧ォ犧」犧ア犧� &犧憫クケ犹霞ケ�ク癌ケ霞ク伶クア犹霞ク�クォ犧。犧�
+PrivilegesRequiredOverrideAllUsersRecommended=犧歩クエ犧扉ク歩クア犹霞ク�クェ犧ウ犧ォ犧」犧ア犧� &犧憫クケ犹霞ケ�ク癌ケ霞ク伶クア犹霞ク�クォ犧。犧� (犹≒ク吭クー犧吭クウ)
+PrivilegesRequiredOverrideCurrentUser=犧歩クエ犧扉ク歩クア犹霞ク�クェ犧ウ犧ォ犧」犧ア犧� &犧霞クア犧吭ケ€犧伶ケ謂クイ犧吭クア犹霞ク�
+PrivilegesRequiredOverrideCurrentUserRecommended=犧歩クエ犧扉ク歩クア犹霞ク�クェ犧ウ犧ォ犧」犧ア犧� &犧霞クア犧吭ケ€犧伶ケ謂クイ犧吭クア犹霞ク� (犹≒ク吭クー犧吭クウ)
+
+; *** Misc. errors
+ErrorCreatingDir=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾クェ犧」犹霞クイ犧�ケもク游ク・犹€犧扉クュ犧」犹� "%1" 犹�ク扉ケ�
+ErrorTooManyFilesInDir=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾クェ犧」犹霞クイ犧�ケ�ク游ク・犹呉ケ�ク吭ケもク游ク・犹€犧扉クュ犧」犹� "%1" 犹€犧樅ク」犧イ犧ー犧。犧オ犹�ク游ク・犹呉ク謂クウ犧吭クァ犧吭ク。犧イ犧≒ケ€犧≒クエ犧吭ケ�ク�
+
+; *** Setup common messages
+ExitSetupTitle=犧ュ犧ュ犧≒ク謂クイ犧� 犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+ExitSetupMessage=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク「犧ア犧�ケ�ク。犹謂クェ犧。犧壟クケ犧」犧内ケ� 犧籾ケ霞クイ犧�クク犧内ク謂ク壟ク≒クイ犧」犧伶クウ犧�クイ犧吭ケ�ク吭ケ€犧ァ犧・犧イ犧吭クオ犹� 犹もク巵ク」犹≒ク≒ク」犧。犧謂クー犹�ク。犹謂ク籾クケ犧≒ク歩クエ犧扉ク歩クア犹霞ク�%n%n犧�クク犧内クュ犧イ犧謂ク歩ケ霞クュ犧�ク伶クウ犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケもク巵ク」犹≒ク≒ク」犧。犹�クォ犧。犹謂クュ犧オ犧≒ク�ク」犧ア犹霞ク� 犹€犧樅クキ犹謂クュ犹�クォ犹霞ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�クェ犧。犧壟クケ犧」犧内ケ�%n%n犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧謂ク壟ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�?
+AboutSetupMenuItem=&犹€犧≒クオ犹謂ク「犧ァ犧≒クア犧� 犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�...
+AboutSetupTitle=犹€犧≒クオ犹謂ク「犧ァ犧≒クア犧� 犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+AboutSetupMessage=%1 犹€犧ァ犧ュ犧」犹呉ク癌クア犹謂ク� %2%n%3%n%n%1 犹もクョ犧。犹€犧樅ク�:%n%4
+AboutSetupNote=
+TranslatorNote=
+
+; *** Buttons
+ButtonBack=< &犧「犹霞クュ犧吭ク≒ク・犧ア犧�
+ButtonNext=&犧伶クウ犧歩ケ謂クュ >
+ButtonInstall=&犧歩クエ犧扉ク歩クア犹霞ク�
+ButtonOK=犧歩ク≒ク・犧�
+ButtonCancel=犧「犧≒ケ€犧・犧エ犧�
+ButtonYes=&犹�ク癌ケ�
+ButtonYesToAll=犹�ク癌ケ謂クェ犧ウ犧ォ犧」犧ア犧� &犧伶クア犹霞ク�クォ犧。犧�
+ButtonNo=&犹�ク。犹�
+ButtonNoToAll=犹�ク。犹謂クェ犧ウ犧ォ犧」犧ア犧� &犧伶クア犹霞ク�クォ犧。犧�
+ButtonFinish=&犹€犧ェ犧」犹�ク�
+ButtonBrowse=&犹€犧」犧オ犧「犧≒ク扉クケ...
+ButtonWizardBrowse=&犹€犧」犧オ犧「犧≒ク扉クケ...
+ButtonNewFolder=&犧ェ犧」犹霞クイ犧�ケもク游ク・犹€犧扉クュ犧」犹呉ケ�クォ犧。犹�
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=犹€犧・犧キ犧ュ犧≒ク�犧イ犧ゥ犧イ犧伶クオ犹謂ク歩ケ霞クュ犧�ク≒クイ犧」
+SelectLanguageLabel=犹€犧・犧キ犧ュ犧≒ク�犧イ犧ゥ犧イ 犧伶クオ犹謂ク歩ケ霞クュ犧�ク≒クイ犧」犹�ク癌ケ霞ク」犧ー犧ォ犧ァ犹謂クイ犧�ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+
+; *** Common wizard text
+ClickNext=犧≒ク� 犧伶クウ犧歩ケ謂クュ 犹€犧樅クキ犹謂クュ犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ 犧ォ犧」犧キ犧ュ 犧≒ク� 犧「犧≒ケ€犧・犧エ犧� 犹€犧樅クキ犹謂クュ犧謂ク壟ク≒クイ犧」犧伶クウ犧�クイ犧�
+BeveledLabel=
+BrowseDialogTitle=犹€犧・犧キ犧ュ犧≒ケもク游ク・犹€犧扉クュ犧」犹�
+BrowseDialogLabel=犹€犧・犧キ犧ュ犧≒ケもク游ク・犹€犧扉クュ犧」犹呉ケ�ク吭ク」犧イ犧「犧≒クイ犧」犧扉ケ霞クイ犧�ク・犹謂クイ犧�ク謂クイ犧≒ク吭クア犹霞ク� 犹�クォ犹霞ク≒ク� 犧歩ク≒ク・犧�
+NewFolderName=犹もク游ク・犹€犧扉クュ犧」犹呉ケ�クォ犧。犹�
+
+; *** "Welcome" wizard page
+WelcomeLabel1=犧「犧エ犧吭ク扉クオ犧歩ケ霞クュ犧吭ク」犧ア犧壟クェ犧ケ犹� [name] 犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�
+WelcomeLabel2=犧ェ犧エ犹謂ク�ク吭クオ犹霞ク謂クー犧歩クエ犧扉ク歩クア犹霞ク� [name/ver] 犧壟ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧�%n%n犧もクュ犹≒ク吭クー犧吭クウ犹�クォ犹霞ク�クク犧内ク巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭クュ犧キ犹謂ク吭ケ� 犧伶クア犹霞ク�クォ犧。犧扉ク≒ケ謂クュ犧吭ク扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ
+
+; *** "Password" wizard page
+WizardPassword=犧」犧ォ犧ア犧ェ犧憫ケ謂クイ犧�
+PasswordLabel1=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク吭クオ犹� 犧籾クケ犧≒ク巵ケ霞クュ犧�ク≒クア犧吭ク扉ケ霞クァ犧「犧」犧ォ犧ア犧ェ犧憫ケ謂クイ犧�
+PasswordLabel3=犧≒ク」犧ク犧内クイ犹�クェ犹謂ク」犧ォ犧ア犧ェ犧憫ケ謂クイ犧吭ク伶クオ犹謂ケ�ク癌ケ霞ク歩クエ犧扉ク歩クア犹霞ク�ケもク巵ク」犹≒ク≒ク」犧。 犧謂クイ犧≒ク吭クア犹霞ク� 犹�クォ犹霞ク≒ク� 犧伶クウ犧歩ケ謂クュ 犹€犧樅クキ犹謂クュ犧伶クウ犧�クイ犧� (犧」犧ォ犧ア犧ェ犧憫ケ謂クイ犧吭ク歩ケ霞クュ犧�ク歩ク」犧�ク歩クイ犧。犧歩クア犧ァ犧樅クエ犧。犧樅ケ呉ケ€犧・犹�ク≒ケ≒ク・犧ー犹�クォ犧財ケ�)
+PasswordEditLabel=&犧」犧ォ犧ア犧ェ犧憫ケ謂クイ犧�:
+IncorrectPassword=犧」犧ォ犧ア犧ェ犧憫ケ謂クイ犧吭ク伶クオ犹謂ク�クク犧内ケ�クェ犹謂ケ�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧� 犧≒ク」犧ク犧内クイ犧・犧ュ犧�クュ犧オ犧≒ク�ク」犧ア犹霞ク�
+
+; *** "License Agreement" wizard page
+WizardLicense=犧もケ霞クュ犧歩ク≒ク・犧�
+LicenseLabel=犹もク巵ク」犧扉クュ犹謂クイ犧吭クもケ霞クュ犧。犧ケ犧・犧ェ犧ウ犧�クア犧財ク歩ケ謂クュ犹�ク巵ク吭クオ犹� 犧≒ケ謂クュ犧吭ク扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ
+LicenseLabel3=犹もク巵ク」犧扉クュ犹謂クイ犧吭クもケ霞クュ犧歩ク≒ク・犧�ク歩ケ謂クュ犹�ク巵ク吭クオ犹� 犧�クク犧内ク歩ケ霞クュ犧�ク「犧ュ犧。犧」犧ア犧壟ケ€犧�クキ犹謂クュ犧吭ケ�クもクもクュ犧�クもケ霞クュ犧歩ク≒ク・犧�ク吭クオ犹霞ク≒ケ謂クュ犧吭ク伶クオ犹謂ク謂クー犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ謂クュ犹�ク�
+LicenseAccepted=犧霞クア犧� &犧「犧ュ犧。犧」犧ア犧� 犧もケ霞クュ犧歩ク≒ク・犧�
+LicenseNotAccepted=犧霞クア犧� &犹�ク。犹謂ク「犧ュ犧。犧」犧ア犧� 犧もケ霞クュ犧歩ク≒ク・犧�
+
+; *** "Information" wizard pages
+WizardInfoBefore=犧�クウ犧ュ犧倨クエ犧壟クイ犧「
+InfoBeforeLabel=犹もク巵ク」犧扉クュ犹謂クイ犧吭クもケ霞クュ犧。犧ケ犧・犧ェ犧ウ犧�クア犧� 犧≒ケ謂クュ犧吭ク扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ
+InfoBeforeClickLabel=犹€犧。犧キ犹謂クュ犧�クク犧内ク樅ク」犹霞クュ犧。犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ謂クュ 犹�クォ犹霞ク≒ク� 犧伶クウ犧歩ケ謂クュ
+WizardInfoAfter=犧�クウ犧ュ犧倨クエ犧壟クイ犧「
+InfoAfterLabel=犹もク巵ク」犧扉クュ犹謂クイ犧吭クもケ霞クュ犧。犧ケ犧・犧ェ犧ウ犧�クア犧� 犧≒ケ謂クュ犧吭ク扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ
+InfoAfterClickLabel=犹€犧。犧キ犹謂クュ犧�クク犧内ク樅ク」犹霞クュ犧。犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ謂クュ 犹�クォ犹霞ク≒ク� 犧伶クウ犧歩ケ謂クュ
+
+; *** "User Information" wizard page
+WizardUserInfo=犧もケ霞クュ犧。犧ケ犧・ 犧憫クケ犹霞ケ�ク癌ケ�
+UserInfoDesc=犹もク巵ク」犧� 犧≒ク」犧ュ犧≒クもケ霞クュ犧。犧ケ犧・犧もクュ犧�ク�クク犧�
+UserInfoName=&犧癌クキ犹謂クュ犧憫クケ犹霞ケ�ク癌ケ�:
+UserInfoOrg=&犧ォ犧吭ケ謂クァ犧「犧�クイ犧�:
+UserInfoSerial=&犧ォ犧。犧イ犧「犹€犧・犧もク金クオ犹€犧」犧オ犧「犧・:
+UserInfoNameRequired=犧�クク犧内ク歩ケ霞クュ犧�ケ�クェ犹謂ク癌クキ犹謂クュ
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=犹€犧・犧キ犧ュ犧≒ク歩クウ犹≒クォ犧吭ケ謂ク�ク巵ク・犧イ犧「犧伶クイ犧�
+SelectDirDesc=犧�クァ犧」犧歩クエ犧扉ク歩クア犹霞ク� [name] 犧伶クオ犹謂ケ�クォ犧�?
+SelectDirLabel3=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク謂クー犧歩クエ犧扉ク歩クア犹霞ク� [name] 犧・犧�ケ�ク吭ケもク游ク・犹€犧扉クュ犧」犹呉ク歩ケ謂クュ犹�ク巵ク吭クオ犹�
+SelectDirBrowseLabel=犧ォ犧イ犧≒ク歩ケ霞クュ犧�ク≒クイ犧」犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ 犹�クォ犹霞ク≒ク� 犧籾クア犧扉ケ�ク� 犧ォ犧イ犧≒ク�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犹€犧・犧キ犧ュ犧≒ケもク游ク・犹€犧扉クュ犧」犹呉クュ犧キ犹謂ク� 犹�クォ犹霞ク≒ク� 犹€犧」犧オ犧「犧≒ク扉クケ
+DiskSpaceGBLabel=犧歩ケ霞クュ犧�ク≒クイ犧」犧樅クキ犹霞ク吭ク伶クオ犹謂クァ犹謂クイ犧�ケ�ク吭ク扉クエ犧ェ犧≒ケ呉クュ犧「犹謂クイ犧�ク吭ケ霞クュ犧「 [gb] GB
+DiskSpaceMBLabel=犧歩ケ霞クュ犧�ク≒クイ犧」犧樅クキ犹霞ク吭ク伶クオ犹謂クァ犹謂クイ犧�ケ�ク吭ク扉クエ犧ェ犧≒ケ呉クュ犧「犹謂クイ犧�ク吭ケ霞クュ犧「 [mb] MB
+CannotInstallToNetworkDrive=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク歩クエ犧扉ク歩クア犹霞ク�ケ�ク巵ク「犧ア犧�ケ�ク扉ク」犹呉ク游ケ€犧�ク」犧キ犧ュ犧もケ謂クイ犧「犹�ク扉ケ�
+CannotInstallToUNCPath=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク歩クエ犧扉ク歩クア犹霞ク�ケ�ク巵ク「犧ア犧�ク歩クウ犹≒クォ犧吭ケ謂ク� UNC 犹�ク扉ケ�
+InvalidPath=犧�クク犧内ク歩ケ霞クュ犧�ク巵ケ霞クュ犧吭ケ€犧ェ犹霞ク吭ク伶クイ犧�ケ≒ク壟ク壟ケ€犧歩ケ�ク。犧扉ケ霞クァ犧「犧ュ犧ア犧≒クゥ犧」犧」犧ー犧壟クク犹�ク扉ク」犧游ケ� 犧歩クア犧ァ犧ュ犧「犹謂クイ犧�ケ€犧癌ケ謂ク�:%n%nC:\APP%n%n犧ォ犧」犧キ犧ュ犹€犧ェ犹霞ク吭ク伶クイ犧� UNC 犹≒ク壟ク�:%n%n\\server\share
+InvalidDrive=犹�ク扉ク」犹呉ク游クォ犧」犧キ犧ュ犧≒クイ犧」犹≒ク癌ク」犹呉ク伶クオ犹謂ク�クク犧内ケ€犧・犧キ犧ュ犧≒ケ�ク。犹謂ク。犧オ犧ュ犧「犧ケ犹� 犧ォ犧」犧キ犧ュ犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ケ€犧もケ霞クイ犧籾クカ犧�ケ�ク扉ケ� 犹もク巵ク」犧扉ケ€犧・犧キ犧ュ犧≒ク」犧イ犧「犧≒クイ犧」犧ュ犧キ犹謂ク�
+DiskSpaceWarningTitle=犧樅クキ犹霞ク吭ク伶クオ犹謂ク扉クエ犧ェ犧≒ケ呉ケ�ク。犹謂ケ€犧樅クオ犧「犧�ク樅クュ
+DiskSpaceWarning=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ霞クュ犧�ク≒クイ犧」犧ュ犧「犹謂クイ犧�ク吭ケ霞クュ犧「 %1 KB 犹�ク吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� 犹≒ク歩ケ謂ケ�ク扉ク」犹呉ク游ク伶クオ犹謂ケ€犧・犧キ犧ュ犧≒ク。犧オ %2 KB 犹€犧伶ケ謂クイ犧吭クア犹霞ク�%n%n犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ犧ォ犧」犧キ犧ュ犹�ク。犹�?
+DirNameTooLong=犧癌クキ犹謂クュ犹もク游ク・犹€犧扉クュ犧」犹呉クォ犧」犧キ犧ュ犹€犧ェ犹霞ク吭ク伶クイ犧�ク「犧イ犧ァ犹€犧≒クエ犧吭ケ�ク�
+InvalidDirName=犧癌クキ犹謂クュ犹もク游ク・犹€犧扉クュ犧」犹呉ケ�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�
+BadDirName32=犧癌クキ犹謂クュ犹もク游ク・犹€犧扉クュ犧」犹呉ク歩ケ霞クュ犧�ケ�ク。犹謂ク。犧オ犧ュ犧ア犧≒クもク」犧ー犹�ク扉ケ� 犧歩ケ謂クュ犹�ク巵ク吭クオ犹�:%n%n%1
+DirExistsTitle=犧。犧オ犹もク游ク・犹€犧扉クュ犧」犹呉クュ犧「犧ケ犹謂ケ≒ク・犹霞クァ
+DirExists=犹もク游ク・犹€犧扉クュ犧」犹�:%n%n%1%n%n犧。犧オ犧ュ犧「犧ケ犹謂ケ≒ク・犹霞クァ 犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク・犧�ケ�ク吭ケもク游ク・犹€犧扉クュ犧」犹呉ク吭クオ犹霞ケ€犧・犧「犧ォ犧」犧キ犧ュ犹�ク。犹�?
+DirDoesntExistTitle=犹�ク。犹謂ク樅ク壟ケもク游ク・犹€犧扉クュ犧」犹�
+DirDoesntExist=犹もク游ク・犹€犧扉クュ犧」犹�:%n%n%1%n%n犹�ク。犹謂ク。犧オ犧ュ犧「犧ケ犹謂ケ�ク吭クもク内クー犧吭クオ犹� 犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧ェ犧」犹霞クイ犧�ケもク游ク・犹€犧扉クュ犧」犹呉ク吭クオ犹霞ケ€犧・犧「犧ォ犧」犧キ犧ュ犹�ク。犹�?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=犹€犧・犧キ犧ュ犧≒クェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧�
+SelectComponentsDesc=犧ェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ケ�クォ犧吭ク伶クオ犹謂ク�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�?
+SelectComponentsLabel2=犧伶クウ犹€犧�ク」犧キ犹謂クュ犧�クォ犧。犧イ犧「犹€犧・犧キ犧ュ犧≒クェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ク伶クオ犹謂ク�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�; 犧・犧壟ケ€犧�ク」犧キ犹謂クュ犧�クォ犧。犧イ犧「犧ェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ク伶クオ犹謂ク�クク犧内ケ�ク。犹謂ク歩ケ霞クュ犧�ク≒クイ犧」 犧≒ク扉ク伶クウ犧歩ケ謂クュ 犹€犧。犧キ犹謂クュ犧�クク犧内ケ€犧・犧キ犧ュ犧≒ケ€犧ェ犧」犹�ク謂ケ≒ク・犹霞クァ
+FullInstallation=犧歩クエ犧扉ク歩クア犹霞ク�ク伶クク犧≒クュ犧「犹謂クイ犧�
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=犧歩クエ犧扉ク歩クア犹霞ク�ク吭ケ霞クュ犧「犧伶クオ犹謂クェ犧ク犧�
+CustomInstallation=犧≒クウ犧ォ犧吭ク扉クェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ケ€犧ュ犧�
+NoUninstallWarningTitle=犧ェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ケ€犧扉クエ犧。犧。犧オ犧ュ犧「犧ケ犹謂ケ≒ク・犹霞クァ
+NoUninstallWarning=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク歩ク」犧ァ犧謂ク樅ク壟クァ犹謂クイ犧ェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ク歩ケ謂クュ犹�ク巵ク吭クオ犹霞ケ�ク扉ケ霞ク」犧ア犧壟ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク壟ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧内ケ≒ク・犹霞クァ:%n%n%1%n%n犧≒クイ犧」犧「犧≒ケ€犧・犧エ犧≒ク≒クイ犧」犹€犧・犧キ犧ュ犧≒ク�クュ犧。犹もク樅ケ€犧吭ク吭ク歩ケ呉ケ€犧ォ犧・犹謂クイ犧吭クオ犹霞ク謂クー犹�ク。犹謂ケ€犧巵ケ�ク吭ク≒クイ犧」犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�%n%n犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ犧ォ犧」犧キ犧ュ犹�ク。犹�?
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceGBLabel=犧≒クイ犧」犹€犧・犧キ犧ュ犧≒ク巵クア犧謂ク謂クク犧壟クア犧吭ク歩ケ霞クュ犧�ク≒クイ犧」犧樅クキ犹霞ク吭ク伶クオ犹謂ク扉クエ犧ェ犧≒ケ呉クュ犧「犹謂クイ犧�ク吭ケ霞クュ犧「 [gb] GB
+ComponentsDiskSpaceMBLabel=犧≒クイ犧」犹€犧・犧キ犧ュ犧≒ク巵クア犧謂ク謂クク犧壟クア犧吭ク歩ケ霞クュ犧�ク≒クイ犧」犧樅クキ犹霞ク吭ク伶クオ犹謂ク扉クエ犧ェ犧≒ケ呉クュ犧「犹謂クイ犧�ク吭ケ霞クュ犧「 [mb] MB
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=犹€犧・犧キ犧ュ犧≒ク≒クイ犧」犧伶クウ犧�クイ犧吭ケ€犧樅クエ犹謂ク。犹€犧歩クエ犧。
+SelectTasksDesc=犧≒クウ犧ォ犧吭ク扉ク≒クイ犧」犧伶クウ犧�クイ犧吭ケ€犧樅クエ犹謂ク。犹€犧歩クエ犧。
+SelectTasksLabel2=犹€犧・犧キ犧ュ犧≒ク≒クイ犧」犧伶クウ犧�クイ犧吭ケ€犧樅クエ犹謂ク。犹€犧歩クエ犧。 犹€犧樅クキ犹謂クュ犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケもク巵ク」犹≒ク≒ク」犧。 [name] 犹≒ク・犧ー 犧≒ク� 犧伶クウ犧歩ケ謂クュ
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=犹€犧・犧キ犧ュ犧≒ケもク游ク・犹€犧扉クュ犧」犹呉ケ€犧。犧吭クケ犹€犧」犧エ犹謂ク。
+SelectStartMenuFolderDesc=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク� 犧�クァ犧」犧ァ犧イ犧�ク伶クイ犧�ク・犧ア犧扉クもクュ犧�ケもク巵ク」犹≒ク≒ク」犧。犹�クァ犹霞ク伶クオ犹謂ケ�クォ犧�?
+SelectStartMenuFolderLabel3=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク� 犧謂クー犧ェ犧」犹霞クイ犧�ク伶クイ犧�ク・犧ア犧扉クもクュ犧�ケもク巵ク」犹≒ク≒ク」犧。犹�ク吭ケもク游ク・犹€犧扉クュ犧」犹� Start Menu 犧歩ケ謂クュ犹�ク巵ク吭クオ犹�
+SelectStartMenuFolderBrowseLabel=犹€犧樅クキ犹謂クュ犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ 犧≒ク� 犧歩ケ謂クュ犹�ク� 犧ォ犧イ犧≒ク�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犹€犧・犧キ犧ュ犧≒ケもク游ク・犹€犧扉クュ犧」犹呉クュ犧キ犹謂ク� 犹�クォ犹霞ク≒ク� 犹€犧」犧オ犧「犧≒ク扉クケ
+MustEnterGroupName=犧�クク犧内ク歩ケ霞クュ犧�ケ�クェ犹謂ク癌クキ犹謂クュ犹もク游ク・犹€犧扉クュ犧」犹�
+GroupNameTooLong=犧癌クキ犹謂クュ犹もク游ク・犹€犧扉クュ犧」犹呉クォ犧」犧キ犧ュ犹€犧ェ犹霞ク吭ク伶クイ犧�ク「犧イ犧ァ犹€犧≒クエ犧吭ケ�ク�
+InvalidGroupName=犧癌クキ犹謂クュ犹もク游ク・犹€犧扉クュ犧」犹呉ケ�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�
+BadGroupName=犧癌クキ犹謂クュ犹もク游ク・犹€犧扉クュ犧」犹呉ク歩ケ霞クュ犧�ケ�ク。犹謂ク。犧オ犧ュ犧ア犧≒クもク」犧ー犹�ク扉ケ� 犧歩ケ謂クュ犹�ク巵ク吭クオ犹�:%n%n%1
+NoProgramGroupCheck2=&犹�ク。犹謂ク歩ケ霞クュ犧�クェ犧」犹霞クイ犧�ケもク游ク・犹€犧扉クュ犧」犹呉ケ€犧。犧吭クケ犹€犧」犧エ犹謂ク。
+
+; *** "Ready to Install" wizard page
+WizardReady=犧樅ク」犹霞クュ犧。犧伶クオ犹謂ク謂クー犧歩クエ犧扉ク歩クア犹霞ク�
+ReadyLabel1=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク樅ク」犹霞クュ犧。犧伶クオ犹謂ク謂クー犹€犧」犧エ犹謂ク。犧歩クエ犧扉ク歩クア犹霞ク� [name] 犧壟ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧内ケ≒ク・犹霞クァ
+ReadyLabel2a=犧≒ク� 犧歩クエ犧扉ク歩クア犹霞ク� 犹€犧樅クキ犹謂クュ犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ謂クュ 犧ォ犧」犧キ犧ュ犧≒ク� 犧「犹霞クュ犧吭ク≒ク・犧ア犧� 犧ォ犧イ犧≒ク�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧歩ク」犧ァ犧謂クェ犧ュ犧壟クォ犧」犧キ犧ュ犹€犧巵ク・犧オ犹謂ク「犧吭ケ≒ク巵ク・犧�ク≒クイ犧」犧歩クア犹霞ク�ク�ケ謂クイ犹�ク扉ケ�
+ReadyLabel2b=犧≒ク� 犧歩クエ犧扉ク歩クア犹霞ク� 犹€犧樅クキ犹謂クュ犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ謂クュ
+ReadyMemoUserInfo=犧もケ霞クュ犧。犧ケ犧・犧憫クケ犹霞ケ�ク癌ケ�:
+ReadyMemoDir=犧歩クウ犹≒クォ犧吭ケ謂ク�ク巵ク・犧イ犧「犧伶クイ犧�:
+ReadyMemoType=犧巵ク」犧ー犹€犧�犧伶ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�:
+ReadyMemoComponents=犧ェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ク伶クオ犹謂ケ€犧・犧キ犧ュ犧�:
+ReadyMemoGroup=犹もク游ク・犹€犧扉クュ犧」犹呉ケ€犧。犧吭クケ犹€犧」犧エ犹謂ク。:
+ReadyMemoTasks=犧�クイ犧吭ケ€犧樅クエ犹謂ク。犹€犧歩クエ犧。:
+
+; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
+DownloadingLabel=犧≒クウ犧・犧ア犧�ク扉クイ犧ァ犧吭ケ呉ケもクォ犧・犧扉ケ�ク游ク・犹呉ケ€犧樅クエ犹謂ク。犹€犧歩クエ犧。...
+ButtonStopDownload=&犧ォ犧「犧ク犧扉ク≒クイ犧」犧扉クイ犧ァ犧吭ケ呉ケもクォ犧・犧�
+StopDownload=犧�クク犧内ケ≒ク吭ケ謂ケ�ク謂クォ犧」犧キ犧ュ犹�ク。犹謂クァ犹謂クイ犧歩ケ霞クュ犧�ク≒クイ犧」犧ォ犧「犧ク犧扉ク≒クイ犧」犧扉クイ犧ァ犧吭ケ呉ケもクォ犧・犧�?
+ErrorDownloadAborted=犧≒クイ犧」犧扉クイ犧ァ犧吭ケ呉ケもクォ犧・犧扉ク籾クケ犧≒ク「犧≒ケ€犧・犧エ犧�
+ErrorDownloadFailed=犧≒クイ犧」犧扉クイ犧ァ犧吭ケ呉ケもクォ犧・犧扉ク・犹霞ク。犹€犧ォ犧・犧ァ: %1 %2
+ErrorDownloadSizeFailed=犧≒クイ犧」犧」犧ア犧壟クもク吭クイ犧扉ク・犹霞ク。犹€犧ォ犧・犧ァ: %1 %2
+ErrorFileHash1=犹≒クョ犧癌ケ�ク游ク・犹呉ク・犹霞ク。犹€犧ォ犧・犧ァ: %1
+ErrorFileHash2=犹≒クョ犧癌ケ�ク游ク・犹呉ケ�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�: 犧�クイ犧扉クァ犹謂クイ犹€犧巵ケ�ク� %1, 犧樅ク� %2
+ErrorProgress=犧�クァ犧イ犧。犧�クキ犧壟クォ犧吭ケ霞クイ犹�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�: %1 犧謂クイ犧� %2
+ErrorFileSize=犧もク吭クイ犧扉ケ�ク游ク・犹呉ケ�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�: 犧�クイ犧扉ケ�クァ犹� %1, 犧樅ク� %2
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=犧≒クウ犧・犧ア犧�ケ€犧歩ク」犧オ犧「犧。犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+PreparingDesc=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク� 犧≒クウ犧・犧ア犧�ケ€犧歩ク」犧オ犧「犧。犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� [name] 犧壟ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧�
+PreviousInstallNotCompleted=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�/犧≒クイ犧」犧・犧壟ケもク巵ク」犹≒ク≒ク」犧。犧≒ケ謂クュ犧吭クォ犧吭ケ霞クイ犧吭クオ犹霞ケ�ク。犹謂ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ� 犧�クク犧内ク謂クー犧歩ケ霞クュ犧�ク」犧オ犧ェ犧歩クイ犧」犹呉ク伶ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉ケ€犧樅クキ犹謂クュ犧伶クウ犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ�クォ犹霞ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ� %n%n犧ォ犧・犧ア犧�ク謂クイ犧≒ク」犧オ犧ェ犧歩クイ犧」犹呉ク伶ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉ケ≒ク・犹霞クァ 犹�クォ犹霞ケ€犧」犧オ犧「犧≒ケ�ク癌ケ霞ケもク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�クュ犧オ犧≒ク�ク」犧ア犹霞ク�ケ€犧樅クキ犹謂クュ犧伶クウ犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� [name] 犹�クォ犹霞ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ�
+CannotContinue=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ犹�ク扉ケ� 犹もク巵ク」犧扉ク≒ク扉ク「犧≒ケ€犧・犧エ犧� 犹€犧樅クキ犹謂クュ犧ュ犧ュ犧�
+ApplicationsFound=犹≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ク歩ケ謂クュ犹�ク巵ク吭クオ犹霞ク≒クウ犧・犧ア犧�ケ�ク癌ケ霞ケ�ク游ク・犹呉ク伶クオ犹謂ク歩ケ霞クュ犧�クュ犧ア犧巵ケ€犧扉ク歩ケもク扉ク「犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク� 犧もクュ犹≒ク吭クー犧吭クウ犹�クォ犹霞ク�クク犧内クュ犧吭クク犧財クイ犧歩ケ�クォ犹霞ケもク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ケ€犧ォ犧・犹謂クイ犧吭クオ犹霞ケもク扉ク「犧ュ犧ア犧歩ケもク吭ク。犧ア犧歩クエ
+ApplicationsFound2=犹≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ク歩ケ謂クュ犹�ク巵ク吭クオ犹霞ク≒クウ犧・犧ア犧�ケ�ク癌ケ霞ケ�ク游ク・犹呉ク伶クオ犹謂ク歩ケ霞クュ犧�クュ犧ア犧巵ケ€犧扉ク歩ケもク扉ク「犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク� 犧もクュ犹≒ク吭クー犧吭クウ犹�クォ犹霞ク�クク犧内クュ犧吭クク犧財クイ犧歩ケ�クォ犹霞ケもク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ケ€犧ォ犧・犹謂クイ犧吭クオ犹霞ケもク扉ク「犧ュ犧ア犧歩ケもク吭ク。犧ア犧歩クエ 犧ォ犧・犧ア犧�ク謂クイ犧≒ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ€犧ェ犧」犹�ク謂クェ犧エ犹霞ク� 犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク謂クー犧樅ク「犧イ犧「犧イ犧。犧」犧オ犧ェ犧歩クイ犧」犹呉ク伶ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧�
+CloseApplications=&犧巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ケもク扉ク「犧ュ犧ア犧歩ケもク吭ク。犧ア犧歩クエ
+DontCloseApplications=&犧ュ犧「犹謂クイ犧巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧�
+ErrorCloseApplications=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ク伶クア犹霞ク�クォ犧。犧扉ケもク扉ク「犧ュ犧ア犧歩ケもク吭ク。犧ア犧歩クエ 犧もクュ犹≒ク吭クー犧吭クウ犹�クォ犹霞ク�クク犧内ク巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ク伶クア犹霞ク�クォ犧。犧扉ケもク扉ク「犹�ク癌ケ霞ケ�ク游ク・犹呉ク伶クオ犹謂ク歩ケ霞クュ犧�クュ犧ア犧巵ケ€犧扉ク歩ケもク扉ク「犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク≒ケ謂クュ犧吭ク扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ
+PrepareToInstallNeedsRestart=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ霞クュ犧�ク」犧オ犧ェ犧歩クイ犧」犹呉ク伶ケ€犧�ク」犧キ犹謂クュ犧�ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧� 犧ォ犧・犧ア犧�ク謂クイ犧≒ク」犧オ犧ェ犧歩クイ犧」犹呉ク伶ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉ケ≒ク・犹霞クァ 犹�クォ犹霞ケ€犧」犧オ犧「犧≒ケ�ク癌ケ霞ケもク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�クュ犧オ犧≒ク�ク」犧ア犹霞ク�ケ€犧樅クキ犹謂クュ犧伶クウ犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� [name] 犹�クォ犹霞ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ�%n%n犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犹€犧」犧エ犹謂ク。犧」犧ー犧壟ク壟ケ�クォ犧。犹謂ケ€犧扉クオ犹金ク「犧ァ犧吭クオ犹霞クォ犧」犧キ犧ュ犹�ク。犹�
+
+; *** "Installing" wizard page
+WizardInstalling=犧≒クウ犧・犧ア犧�ク歩クエ犧扉ク歩クア犹霞ク�
+InstallingLabel=犹もク巵ク」犧扉ク」犧ュ犧ェ犧ア犧≒ク�ク」犧ケ犹謂ケ�ク吭クもク内クー犧伶クオ犹謂ケもク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク歩クエ犧扉ク歩クア犹霞ク� [name] 犧壟ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧�
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� [name] 犹€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ�
+FinishedLabelNoIcons=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケもク巵ク」犹≒ク≒ク」犧。 [name] 犧壟ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹� 犹€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ�
+FinishedLabel=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケもク巵ク」犹≒ク≒ク」犧。 [name] 犧壟ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ� 犹≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭クュ犧イ犧謂ケ€犧巵クエ犧扉ケ�ク癌ケ霞ク�クイ犧吭ケもク扉ク「犹€犧・犧キ犧ュ犧≒ク伶クイ犧�ク・犧ア犧扉ク伶クオ犹謂ク歩クエ犧扉ク歩クア犹霞ク�ケ�クァ犹�
+ClickFinish=犧≒ク� 犹€犧ェ犧」犹�ク� 犹€犧樅クキ犹謂クュ犧謂ク壟ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+FinishedRestartLabel=犹€犧樅クキ犹謂クュ犹�クォ犹霞ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� [name] 犹€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ� 犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ霞クュ犧�ケ€犧」犧エ犹謂ク。犧歩ケ霞ク吭ク」犧ー犧壟ク壟ケ€犧�ク」犧キ犹謂クュ犧�ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧内ケ�クォ犧。犹� 犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犹€犧」犧エ犹謂ク。犧歩ケ霞ク吭ケ�クォ犧。犹謂ク歩クュ犧吭ク吭クオ犹霞クォ犧」犧キ犧ュ犹�ク。犹�?
+FinishedRestartMessage=犹€犧樅クキ犹謂クュ犹�クォ犹霞ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� [name] 犹€犧ェ犧」犹�ク謂クェ犧エ犹霞ク� 犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク謂クー犧歩ケ霞クュ犧�ケ€犧」犧エ犹謂ク。犧歩ケ霞ク吭クー犧壟ク壟ケ€犧�ク」犧キ犹謂クュ犧�ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧内ケ�クォ犧。犹� %n%n犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犹€犧」犧エ犹謂ク。犧」犧ー犧壟ク壟ケ�クォ犧。犹謂ケ€犧扉クオ犹金ク「犧ァ犧吭クオ犹霞クォ犧」犧キ犧ュ犹�ク。犹�?
+ShowReadmeCheck=犹�ク癌ケ� 犧霞クア犧吭ク歩ケ霞クュ犧�ク≒クイ犧」犧扉クケ犹�ク游ク・犹� README
+YesRadio=&犹�ク癌ケ� 犹€犧」犧エ犹謂ク。犧歩ケ霞ク吭ク」犧ー犧壟ク壟ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉ケ�クォ犧。犹謂ク伶クア犧吭ク伶クオ
+NoRadio=&犹�ク。犹� 犧霞クア犧吭ク謂クー犹€犧」犧エ犹謂ク。犧歩ケ霞ク吭ク」犧ー犧壟ク壟ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉ケ�ク吭ク�犧イ犧「犧ォ犧・犧ア犧�
+; used for example as 'Run MyProg.exe'
+RunEntryExec=犹€犧」犧オ犧「犧≒ケ�ク癌ケ� %1
+; used for example as 'View Readme.txt'
+RunEntryShellExec=犧扉クケ %1
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ク歩ケ霞クュ犧�ク≒クイ犧」犧扉クエ犧ェ犧≒ケ呉ク籾クア犧扉ケ�ク�
+SelectDiskLabel2=犹もク巵ク」犧扉ケ�クェ犹謂ク扉クエ犧ェ犧≒ケ� %1 犹≒ク・犧ー 犧≒ク扉ク歩ク≒ク・犧�%n%n犧ォ犧イ犧≒ク樅ク壟ケ�ク游ク・犹呉ケ�ク吭ク扉クエ犧ェ犧≒ケ呉ク吭クオ犹霞ケ�ク吭ケもク游ク・犹€犧扉クュ犧」犹呉クュ犧キ犹謂ク吭ク吭クュ犧≒ケ€犧ォ犧吭クキ犧ュ犧謂クイ犧≒ク伶クオ犹謂ケ≒クェ犧扉ク�ク扉ケ霞クイ犧吭ク・犹謂クイ犧� 犹�クォ犹霞ク巵ケ霞クュ犧吭ケ€犧ェ犹霞ク吭ク伶クイ犧�ク伶クオ犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�クォ犧」犧キ犧ュ犧≒ク扉ケ€犧」犧オ犧「犧≒ク扉クケ
+PathLabel=&犹€犧ェ犹霞ク吭ク伶クイ犧�:
+FileNotInDir2=犹�ク。犹謂ク樅ク壟ケ�ク游ク・犹� "%1" 犹�ク� "%2" 犹もク巵ク」犧扉ケ�クェ犹謂ク扉クエ犧ェ犧≒ケ呉ク伶クオ犹謂ク籾クケ犧≒ク歩ケ霞クュ犧�クォ犧」犧キ犧ュ犹€犧・犧キ犧ュ犧≒ケもク游ク・犹€犧扉クュ犧」犹呉クュ犧キ犹謂ク�
+SelectDirectoryLabel=犹もク巵ク」犧扉ク」犧ー犧壟クク犧歩クウ犹≒クォ犧吭ケ謂ク�クもクュ犧�ク扉クエ犧ェ犧≒ケ呉ク籾クア犧扉ケ�ク�
+
+; *** Installation phase messages
+SetupAborted=犧≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ�%n%n犹もク巵ク」犧扉ケ≒ク≒ケ霞ケ�クもク巵クア犧財クォ犧イ犹≒ク・犧ー犹€犧」犧オ犧「犧≒ケ�ク癌ケ霞ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�クュ犧オ犧≒ク�ク」犧ア犹霞ク�
+AbortRetryIgnoreSelectAction=犹€犧・犧キ犧ュ犧≒ク≒クイ犧」犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」
+AbortRetryIgnoreRetry=&犧・犧ュ犧�クュ犧オ犧≒ク�ク」犧ア犹霞ク�
+AbortRetryIgnoreIgnore=&犧・犧ー犹€犧ァ犹霞ク吭クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉ケ≒ク・犧ー犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ
+AbortRetryIgnoreCancel=犧「犧≒ケ€犧・犧エ犧≒ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+
 ; *** Installation status messages
-StatusClosingApplications=。モナムァサヤエ睿サセナヤ爨ェムケ...
-StatusCreateDirs=。メテハテ鰓ァ 篩ナ犇ヘテ� ..
-StatusExtractFiles=。メテ「ツメツ 菫ナ�靨ァ�...
-StatusCreateIcons=。メテハテ鰓ァ Program icons...
-StatusCreateIniEntries=。メテハテ鰓ァ INI entries...
-StatusCreateRegistryEntries=。メテハテ鰓ァ registry entries...
-StatusRegisterFiles=菫ナ� Registering オ靨ァ�...
-StatusSavingUninstall=。メテコムケキヨ。「鯱チルナ 。メテツ。倏ヤ。。メテオヤエオム鬧篏テ癸テチ...
-StatusRunProgram=猝テ遞ハヤ鮖 。メテオヤエオム鬧篏テ癸テチ...
-StatusRestartingApplications=。モナムァテユハオメテ�睿サセナヤ爨ェムケ...
-StatusRollback=狹ユツ。、ラケ 。メテ癸鱠「キム鬧ヒチエ...
-
-; *** Misc. errors
-ErrorInternal2=爍ヤエ「鯱シヤエセナメエ (Internal error: %1)
-ErrorFunctionFailedNoCode=%1 failed
-ErrorFunctionFailed=%1 failed; code %2
-ErrorFunctionFailedWithMessage=%1 failed; code %2.%n%3
-ErrorExecutingProgram=菽靆メチメテカ「ツメツ菫ナ�エ�:%n%1
-
-; *** Registry errors
-ErrorRegOpenKey=シヤエセナメエ羯。メテ狃ヤエ registry key:%n%1\%2
-ErrorRegCreateKey=シヤエセナメエ羯。メテハテ鰓ァ registry key:%n%1\%2
-ErrorRegWriteKey=シヤエセナメエ羯。メテ爐ユツケ registry key:%n%1\%2
-
-; *** INI errors
-ErrorIniEntry=爍ヤエ「鯱シヤエセナメエ羯。メテハテ鰓ァテメツ。メテ INI 菫ナ� "%1".
-
-; *** File copying errors
-FileAbortRetryIgnore=、ナヤ。 Retry 狎ラ靉ナヘァキモヘユ。、テム鬧 、ナヤ。 Ignore 狎ラ靉「鰓チ。メテオヤエオム鬧菫ナ�ユ� (菽鞦ケミケモ耆鮃モ) ヒテラヘ 、ナヤ。 Abort 狎ラ靉ツ。倏ヤ。。メテオヤエオム鬧
-FileAbortRetryIgnore2=、ナヤ。 Retry 狎ラ靉ナヘァキモヘユ。、テム鬧 、ナヤ。 Ignore 狎ラ靉「鰓チ。メテキモァメケケユ� (菽鞦ケミケモ耆鮃モ) ヒテラヘ 、ナヤ。 Abort 狎ラ靉ツ。倏ヤ。。メテオヤエオム鬧
-SourceIsCorrupted=菫ナ�鮖ゥコムコ菽雜ル。オ鯱ァ
-SourceDoesntExist=菫ナ� "%1" 菽霖ユ
-ExistingFileReadOnly=菫ナ�ル。。モヒケエ、リウハチコムオヤ萇� 狃郢蘯コヘ靨ケ莇鯱ツ靨ァ犇ユツヌ( read-only)%n%n、ナヤ。 Retry 狎ラ靉ツ。倏ヤ。、リウハチコムオヤケユ� 眷ミナヘァキモヘユ。、テム鬧 、ナヤ。 Ignore 狎ラ靉「鰓チ。メテオヤエオム鬧菫ナ�ユ� ヒテラヘ 、ナヤ。 Abort 狎ラ靉ツ。倏ヤ。。メテオヤエオム鬧
-ErrorReadingExistingDest=爍ヤエ、ヌメチシヤエセナメエ「ウミヘ靨ケ菫ナ�:
-FileExists=チユ菫ナ�ユ鯱ツル鞦ナ鯢%n%n、リウオ鯱ァ爐ユツケキムコ菫ナ�ユ鰺テラヘ菽�?
-ExistingFileNewer=菫ナ�ケテミココキユ霖ユヘツル鞨サ郢 猊ヘテ�ム雹耆チ陦ヌ靨 菫ナ�ユ險ミオヤエオム鬧ナァ莉 狹メ盪ミケモ耆鬢リウ菽鞳ヒ鰲「ユツケキムコ菫ナ�ユ霖ユヘツル雹ユ�%n%n、リウ菽襍鯱ァ。メテ爐ユツケキムコ菫ナ�ユ�?
-ErrorChangingAttr=爍ヤエ、ヌメチシヤエセナメエィメ。 。メテ癸鱠「、リウハチコムオヤ菫ナ�ユ霖ユヘツル�:
-ErrorCreatingTemp=爍ヤエ、ヌメチシヤエセナメエィメ。 。メテハテ鰓ァ菫ナ�ケ篩ナ犇ヘテ�ユ險ミキモ。メテオヤエオム鬧篏テ癸テチ:
-ErrorReadingSource=爍ヤエ、ヌメチシヤエセナメエィメ。 ィメ。。メテヘ靨ケ「鯱チルナ菫ナ�鮖ゥコムコ:
-ErrorCopying=爍ヤエ、ヌメチシヤエセナメエィメ。 ィメ。。メテキモハモ犹メ菫ナ�ユ�:
-ErrorReplacingExistingFile=爍ヤエ、ヌメチシヤエセナメエィメ。 ィメ。。メテ爐ユツケキムコ 菫ナ�ユ霖ユヘツル�:
-ErrorRestartReplace=RestartReplace failed:
-ErrorRenamingTemp=爍ヤエ、ヌメチシヤエセナメエィメ。 ィメ。。メテ狃ナユ霙ケェラ靉菫ナ� 羯篩ナ犇ヘテ�ユ險ミオヤエオム鬧篏テ癸テチ:
-ErrorRegisterServer=菽靆メチメテカナァキミ犲ユツケ DLL/OCX: %1
-ErrorRegSvr32Failed=RegSvr32 failed with exit code %1
-ErrorRegisterTypeLib=Unable to register the type library: %1
-
-; *** Post-installation errors
-ErrorOpeningReadme=爍ヤエ、ヌメチシヤエセナメエィメ。 ィメ。。メテ狃ヤエ菫ナ� README:
-ErrorRestartingComputer=菽靆メチメテカ Restart 、ヘチセヤヌ犒ヘテ�エ� 。テリウメナヘァ Restart 猩ァヘユ。、テム鬧タメツヒナムァ
-
-; *** Uninstaller messages
-UninstallNotFound=菫ナ� "%1" 菽霖ユ 菽靆メチメテカツ。倏ヤ。。メテオヤエオム鬧莇�
-UninstallOpenError=菫ナ� "%1" 菽靆メチメテカ狃ヤエ罨鱠エ� キモ耆鱠チ靆メチメテカ ツ。倏ヤ。。メテナァ篏テ癸テチ莇�
-UninstallUnsupportedVer=カヘケ。メテオヤエオム鬧眩鮹コムケキヨ。 "%1" ヘツル鞳ケテルサ蘯コ菽鞴エ鯏ムコ。メテツヘチテムコィメ。テリ雹 uninstaller ケユ� 菽靆メチメテカカヘケ。メテオヤエオム鬧
-UninstallUnknownEntry=テメツ。メテキユ鞴チ霤ル鬨ム。 (%1) 莇鮓ル。セコ羯眩鮹コムケキヨ。「ヘァ。メテカヘケ。メテオヤエオム鬧
-ConfirmUninstall=、リウオ鯱ァ。メテツ。倏ヤ。。メテオヤエオム鬧  %1 眷ミハ霽ケサテミ。ヘコキム鬧ヒチエ?
-UninstallOnlyOnWin64=。メテオヤエオム鬧ケユ鯡メチメテカカヘケ。メテオヤエオム鬧コケ 64 - bit Windows 犢靨ケム鮖.
-OnlyAdminCanUninstall=、リウオ鯱ァ狃郢 シル魘ル眷テミココ (Administrator) ィヨァィミハメチメテカツ。倏ヤ。。メテオヤエオム鬧篏テ癸テチケユ鱠エ�
-UninstallStatusLabel=。テリウメテヘハム。、テル�  %1 。モナムァツ。倏ヤ。ヘヘ。ィメ。、ヘチセヤヌ犒ヘテ�
-UninstalledAll=%1 莇鯆。倏ヤ。。メテオヤエオム鬧 ィメ。、ヘチセヤヌ犒ヘテ�ヘァ、リウ眷鯢
-UninstalledMost=%1 。メテツ。倏ヤ。。メテオヤエオム鬧猝テ遞ハチコルテウ�%n%nハ霽ケサテミ。ヘココ鰓ァヘツ靨ァ菽靆メチメテカ猩メヘヘ。莇� 、リウィモ狃郢オ鯱ァナコヘヘ。猩ァ
-UninstalledAndNeedsRestart=。メテツ。倏ヤ。 。メテオヤエオム鬧篏テ癸テチ %1 、リウオ鯱ァ restart 爨テラ靉ァ、ヘチセヤヌ犒ヘテ�%n%n、リウオ鯱ァ。メテ restart 爨テラ靉ァ犇ユ�ヌケユ�?
-UninstallDataCorrupted="%1" 菫ナ�チ雜ル。オ鯱ァ 菽靆メチメテカツ。倏ヤ。。メテオヤエオム鬧莇�
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=ナコ 菫ナ�ユ鞳ェ鯏霽チ。ムケ?
-ConfirmDeleteSharedFile2=菫ナ�ユ險ミナコ セコヌ靨ヘメィチユ篏テ癸テチヘラ雹� 罨鬧メケヘツル�%n、リウオ鯱ァ。メテ ナコ菫ナ�ユ鰺テラヘ菽�?%n%nカ鰓チユ篏テ癸テチキユ鞳ェ鱠ソナ�ユ� ィミキモ耆鰾サテ癸テチケム鮖キモァメケ菽雜ル。オ鯱ァ カ鰓、リウ菽鞦ケ鞳ィ 、ナヤ。 菽� 狎ラ靉「鰓チ。メテナコ菫ナ�ユ�
-SharedFileNameLabel=ェラ靉菫ナ� :
-SharedFileLocationLabel=オモ睛ケ隗:
-WizardUninstalling=ハカメケミ 。メテツ。倏ヤ。
-StatusUninstalling=。モナムァツ。倏ヤ。 %1...
-
+StatusClosingApplications=犧≒クウ犧・犧ア犧�ク巵クエ犧扉ケ≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧�...
+StatusCreateDirs=犧≒クウ犧・犧ア犧�クェ犧」犹霞クイ犧�ケ�ク扉ケ€犧」犹�ク≒ク伶クュ犧」犧オ...
+StatusExtractFiles=犧≒クウ犧・犧ア犧�ケ≒ク歩ク≒ケ�ク游ク・犹�...
+StatusCreateIcons=犧≒クウ犧・犧ア犧�クェ犧」犹霞クイ犧�ク伶クイ犧�ク・犧ア犧�...
+StatusCreateIniEntries=犧≒クウ犧・犧ア犧�クェ犧」犹霞クイ犧�ク」犧イ犧「犧≒クイ犧」 INI...
+StatusCreateRegistryEntries=犧≒クウ犧・犧ア犧�クェ犧」犹霞クイ犧�ク」犧イ犧「犧≒クイ犧」犧」犧オ犧謂クエ犧ェ犧歩ク」犧オ...
+StatusRegisterFiles=犧≒クウ犧・犧ア犧�ク・犧�ク伶クー犹€犧壟クオ犧「犧吭ケ�ク游ク・犹�...
+StatusSavingUninstall=犧≒クウ犧・犧ア犧�ク壟クア犧吭ク伶クカ犧≒クもケ霞クュ犧。犧ケ犧・犧≒クイ犧」犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�...
+StatusRunProgram=犧≒クウ犧・犧ア犧�ケ€犧ェ犧」犹�ク謂クェ犧エ犹霞ク吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�...
+StatusRestartingApplications=犧≒クウ犧・犧ア犧�ケ€犧」犧エ犹謂ク。犹≒クュ犧巵ク樅ク・犧エ犹€犧�ク癌クア犧吭ケ�クォ犧。犹�...
+StatusRollback=犧≒クウ犧・犧ア犧�ク「犹霞クュ犧吭ク≒ク・犧ア犧壟ク≒クイ犧」犹€犧巵ク・犧オ犹謂ク「犧吭ケ≒ク巵ク・犧�...
+
+; *** Misc. errors
+ErrorInternal2=犧もケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉ク�犧イ犧「犹�ク�: %1
+ErrorFunctionFailedNoCode=%1 犧・犹霞ク。犹€犧ォ犧・犧ァ
+ErrorFunctionFailed=%1 犧・犹霞ク。犹€犧ォ犧・犧ァ; 犧」犧ォ犧ア犧ェ %2
+ErrorFunctionFailedWithMessage=%1 犧・犹霞ク。犹€犧ォ犧・犧ァ; 犧」犧ォ犧ア犧ェ %2.%n%3
+ErrorExecutingProgram=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ケ€犧」犧オ犧「犧≒ケ�ク癌ケ霞ケ�ク游ク・犹�:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=犧もケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉ケ�ク吭ク≒クイ犧」犹€犧巵クエ犧扉ク�クオ犧「犹呉ク」犧オ犧謂クエ犧ェ犧伶ク」犧オ:%n%1\%2
+ErrorRegCreateKey=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉ケ�ク吭ク≒クイ犧」犧ェ犧」犹霞クイ犧�ク�クオ犧「犹呉ク」犧オ犧謂クエ犧ェ犧伶ク」犧オ:%n%1\%2
+ErrorRegWriteKey=犧もケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉ケ�ク吭ク≒クイ犧」犹€犧もクオ犧「犧吭ク�クオ犧「犹呉ク」犧オ犧謂クエ犧ェ犧伶ク」犧オ:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉ケ�ク吭ク≒クイ犧」犧ェ犧」犹霞クイ犧�ク」犧イ犧「犧≒クイ犧」 INI 犹�ク吭ケ�ク游ク・犹� "%1".
+
+; *** File copying errors
+FileAbortRetryIgnoreSkipNotRecommended=&犧もケ霞クイ犧。犹�ク游ク・犹呉ク吭クオ犹� (犹�ク。犹謂ケ≒ク吭クー犧吭クウ)
+FileAbortRetryIgnoreIgnoreNotRecommended=&犧・犧ー犹€犧ァ犹霞ク吭クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉ケ≒ク・犧ー犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ (犹�ク。犹謂ケ≒ク吭クー犧吭クウ)
+SourceIsCorrupted=犹�ク游ク・犹呉ク歩ケ霞ク吭ク霞ク壟クア犧壟ケ€犧ェ犧オ犧「犧ォ犧イ犧「
+SourceDoesntExist=犹�ク。犹謂ク。犧オ犹�ク游ク・犹呉ク歩ケ霞ク吭ク霞ク壟クア犧� "%1"
+ExistingFileReadOnly2=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ケ≒ク伶ク吭ク伶クオ犹謂ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹謂ケ�ク扉ケ� 犹€犧吭クキ犹謂クュ犧�ク謂クイ犧≒ケ�ク游ク・犹呉ク籾クケ犧≒ク伶クウ犹€犧�ク」犧キ犹謂クュ犧�クォ犧。犧イ犧「犹€犧巵ケ�ク吭ケ≒ク壟ク壟クュ犹謂クイ犧吭クュ犧「犹謂クイ犧�ケ€犧扉クオ犧「犧ァ
+ExistingFileReadOnlyRetry=&犧・犧壟ケ≒クュ犧歩ク伶ク」犧エ犧壟クエ犧ァ犧歩ケ呉ケ≒ク壟ク壟クュ犹謂クイ犧吭クュ犧「犹謂クイ犧�ケ€犧扉クオ犧「犧ァ犹≒ク・犹霞クァ犧・犧ュ犧�クュ犧オ犧≒ク�ク」犧ア犹霞ク�
+ExistingFileReadOnlyKeepExisting=&犹€犧≒ケ�ク壟ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹�
+ErrorReadingExistingDest=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犧ュ犹謂クイ犧吭ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹�:
+FileExistsSelectAction=犹€犧・犧キ犧ュ犧≒ク≒クイ犧」犧≒ク」犧ー犧伶クウ
+FileExists2=犧。犧オ犹�ク游ク・犹呉クュ犧「犧ケ犹謂ケ≒ク・犹霞クァ
+FileExistsOverwriteExisting=&犹€犧もクオ犧「犧吭ク伶クア犧壟ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹�
+FileExistsKeepExisting=&犹€犧≒ケ�ク壟ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹�
+FileExistsOverwriteOrKeepAll=&犧伶クウ犹€犧癌ケ謂ク吭ク吭クオ犹霞クェ犧ウ犧ォ犧」犧ア犧壟ク�クァ犧イ犧。犧もクア犧扉ケ≒ク「犹霞ク�ク�ク」犧ア犹霞ク�ク歩ケ謂クュ犹�ク�
+ExistingFileNewerSelectAction=犹€犧・犧キ犧ュ犧≒ク≒クイ犧」犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」
+ExistingFileNewer2=犹�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹謂ケ�クォ犧。犹謂ク≒クァ犹謂クイ犹�ク游ク・犹呉ク歩クエ犧扉ク歩クア犹霞ク�ク伶クオ犹謂ク樅ク「犧イ犧「犧イ犧。犧歩クエ犧扉ク歩クア犹霞ク�
+ExistingFileNewerOverwriteExisting=&犹€犧もクオ犧「犧吭ク伶クア犧壟ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹�
+ExistingFileNewerKeepExisting=&犹€犧≒ケ�ク壟ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹� (犹≒ク吭クー犧吭クウ)
+ExistingFileNewerOverwriteOrKeepAll=&犧伶クウ犹€犧癌ケ謂ク吭ク吭クオ犹霞クェ犧ウ犧ォ犧」犧ア犧壟ク�クァ犧イ犧。犧もクア犧扉ケ≒ク「犹霞ク�ク�ク」犧ア犹霞ク�ク歩ケ謂クュ犹�ク�
+ErrorChangingAttr=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犹€犧巵ク・犧オ犹謂ク「犧吭ケ≒クュ犧歩ク伶ク」犧エ犧壟クエ犧ァ犧歩ケ呉クもクュ犧�ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹�:
+ErrorCreatingTemp=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犧ェ犧」犹霞クイ犧�ケ�ク游ク・犹呉ケ�ク吭ケ�ク扉ケ€犧」犧≒ク伶クュ犧」犧オ犧巵ク・犧イ犧「犧伶クイ犧�:
+ErrorReadingSource=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犧ュ犹謂クイ犧吭ケ�ク游ク・犹呉ク歩ケ霞ク吭ク霞ク壟クア犧�:
+ErrorCopying=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犧�クア犧扉ク・犧ュ犧≒ケ�ク游ク・犹�:
+ErrorReplacingExistingFile=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犹≒ク伶ク吭ク伶クオ犹謂ケ�ク游ク・犹呉ク伶クオ犹謂ク。犧オ犧ュ犧「犧ケ犹�:
+ErrorRestartReplace=犹€犧」犧エ犹謂ク。犧歩ケ霞ク吭ケ�クォ犧。犹謂ケ≒ク伶ク吭ク伶クオ犹� 犧・犹霞ク。犹€犧ォ犧・犧ァ:
+ErrorRenamingTemp=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犹€犧巵ク・犧オ犹謂ク「犧吭ク癌クキ犹謂クュ犹�ク游ク・犹呉ケ�ク吭ケ�ク扉ケ€犧」犧≒ク伶クュ犧」犧オ犧巵ク・犧イ犧「犧伶クイ犧�:
+ErrorRegisterServer=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク・犧�ク伶クー犹€犧壟クオ犧「犧� DLL/OCX: %1
+ErrorRegSvr32Failed=RegSvr32 犧・犹霞ク。犹€犧ォ犧・犧ァ犧扉ケ霞クァ犧「犧」犧ォ犧ア犧ェ犧ュ犧ュ犧� %1
+ErrorRegisterTypeLib=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク・犧�ク伶クー犹€犧壟クオ犧「犧吭ケ�ク・犧壟ク」犧イ犧」犧オ犧巵ク」犧ー犹€犧�犧�: %1
+
+; *** Uninstall display name markings
+; used for example as 'My Program (32-bit)'
+UninstallDisplayNameMark=%1 (%2)
+; used for example as 'My Program (32-bit, All users)'
+UninstallDisplayNameMarks=%1 (%2, %3)
+UninstallDisplayNameMark32Bit=32-犧壟クエ犧�
+UninstallDisplayNameMark64Bit=64-犧壟クエ犧�
+UninstallDisplayNameMarkAllUsers=犧憫クケ犹霞ケ�ク癌ケ霞ク伶クア犹霞ク�クォ犧。犧�
+UninstallDisplayNameMarkCurrentUser=犧憫クケ犹霞ケ�ク癌ケ霞ク巵クア犧謂ク謂クク犧壟クア犧�
+
+; *** Post-installation errors
+ErrorOpeningReadme=犹€犧≒クエ犧扉クもケ霞クュ犧憫クエ犧扉ク樅ク・犧イ犧扉クもク内クー犧樅ク「犧イ犧「犧イ犧。犹€犧巵クエ犧扉ケ�ク游ク・犹� README
+ErrorRestartingComputer=犹もク巵ク」犹≒ク≒ク」犧。犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ケ€犧」犧エ犹謂ク。犧歩ケ霞ク吭ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉ケ�クォ犧。犹謂ケ�ク扉ケ� 犹もク巵ク」犧扉ク扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧扉ケ霞クァ犧「犧歩ク吭ケ€犧ュ犧�
+
+; *** Uninstaller messages
+UninstallNotFound=犹�ク。犹謂ク。犧オ犹�ク游ク・犹� "%1" 犧ュ犧「犧ケ犹� 犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+UninstallOpenError=犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ケ€犧巵クエ犧扉ケ�ク游ク・犹� "%1" 犹�ク扉ケ� 犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+UninstallUnsupportedVer=犹�ク游ク・犹呉ク壟クア犧吭ク伶クカ犧≒ク≒クイ犧」犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� "%1" 犧ュ犧「犧ケ犹謂ケ�ク吭ク」犧ケ犧巵ケ≒ク壟ク壟ク伶クオ犹謂ケもク巵ク」犹≒ク≒ク」犧。犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ€犧ァ犧ュ犧」犹呉ク癌クア犧吭ク吭クオ犹霞ケ�ク。犹謂ク」犧ケ犹霞ク謂クア犧� 犧謂クカ犧�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク扉ケ�
+UninstallUnknownEntry=犧樅ク壟ク」犧イ犧「犧≒クイ犧」犧伶クオ犹謂ケ�ク。犹謂ク」犧ケ犹霞ク謂クア犧� (%1) 犹�ク吭ク壟クア犧吭ク伶クカ犧≒ク≒クイ犧」犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+ConfirmUninstall=犧�クク犧内ケ≒ク吭ケ謂ケ�ク謂クォ犧」犧キ犧ュ犹�ク。犹謂クァ犹謂クイ犧歩ケ霞クュ犧�ク≒クイ犧」犧・犧� %1 犹≒ク・犧ー犧ェ犹謂クァ犧吭ク巵ク」犧ー犧≒クュ犧壟ク伶クア犹霞ク�クォ犧。犧扉クュ犧ュ犧≒ク伶クア犹霞ク�クォ犧。犧�?
+UninstallOnlyOnWin64=犹もク巵ク」犹≒ク≒ク」犧。犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク吭クオ犹霞クェ犧イ犧。犧イ犧」犧籾ク籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク扉ケ霞ク壟ク� Windows 64 犧壟クエ犧歩ケ€犧伶ケ謂クイ犧吭クア犹霞ク�
+OnlyAdminCanUninstall=犹もク巵ク」犹≒ク≒ク」犧。犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ク吭クオ犹霞クェ犧イ犧。犧イ犧」犧籾ク籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ�ク扉ケ霞ケもク扉ク「犧憫クケ犹霞ケ�ク癌ケ霞ク伶クオ犹謂ク。犧オ犧ェ犧エ犧伶ク倨クエ犹呉クもクュ犧�ク憫クケ犹霞ク扉クケ犹≒ク・犧」犧ー犧壟ク壟ケ€犧伶ケ謂クイ犧吭クア犹霞ク�
+UninstallStatusLabel=犹もク巵ク」犧扉ク」犧ュ犹�ク吭クもク内クー犧伶クオ犹� %1 犧籾クケ犧≒ク・犧壟クュ犧ュ犧≒ク謂クイ犧≒ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧�
+UninstalledAll=%1 犧籾クケ犧≒ク・犧壟クュ犧ュ犧≒ク謂クイ犧≒ク�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧内ケ€犧」犧オ犧「犧壟ク」犹霞クュ犧「犹≒ク・犹霞クァ
+UninstalledMost=%1 犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ� %n%n犧ュ犧�ク�ケ呉ク巵ク」犧ー犧≒クュ犧壟ク壟クイ犧�クュ犧「犹謂クイ犧�ケ�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク・犧壟クュ犧ュ犧≒ケ�ク扉ケ� 犧ェ犧エ犹謂ク�ケ€犧ォ犧・犹謂クイ犧吭クオ犹霞クェ犧イ犧。犧イ犧」犧籾ク・犧壟クュ犧ュ犧≒ケ�ク扉ケ霞ク扉ケ霞クァ犧「犧歩ク吭ケ€犧ュ犧�
+UninstalledAndNeedsRestart=犹�ク吭ク≒クイ犧」犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� %1 犹�クォ犹霞ケ€犧ェ犧」犹�ク謂クェ犧。犧壟クケ犧」犧内ケ� 犧�クュ犧。犧樅クエ犧ァ犹€犧歩クュ犧」犹呉クもクュ犧�ク�クク犧内ク謂クー犧歩ケ霞クュ犹€犧」犧エ犹謂ク。犧歩ケ霞ク吭ク」犧ー犧壟ク壟ケ�クォ犧。犹� %n%n犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犹€犧」犧エ犹謂ク。犧歩ケ霞ク吭ク」犧ー犧壟ク壟ケ�クォ犧。犹謂ケ€犧扉クオ犹金ク「犧ァ犧吭クオ犹霞クォ犧」犧キ犧ュ犹�ク。犹�?
+UninstallDataCorrupted="%1" 犹€犧ェ犧オ犧「犧ォ犧イ犧「 犹�ク。犹謂クェ犧イ犧。犧イ犧」犧籾ク籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=犧・犧壟ケ�ク游ク・犹呉ク伶クオ犹謂ケ�ク癌ケ霞ク」犹謂クァ犧。犧≒クア犧�?
+ConfirmDeleteSharedFile2=犧」犧ー犧壟ク壟ク」犧ー犧壟クク犧ァ犹謂クイ犹�ク游ク・犹呉ク伶クオ犹謂ケ�ク癌ケ霞ク」犹謂クァ犧。犧≒クア犧吭ク歩ケ謂クュ犹�ク巵ク吭クオ犹霞ケ�ク。犹謂ク。犧オ犧≒クイ犧」犹�ク癌ケ霞ク�クイ犧吭ケもク扉ク「犹もク巵ク」犹≒ク≒ク」犧。犹�ク扉ケ� 犧ュ犧オ犧≒ク歩ケ謂クュ犹�ク� 犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�ケ€犧樅クキ犹謂クュ犧・犧壟ケ�ク游ク・犹呉ク伶クオ犹謂ケ�ク癌ケ霞ク」犹謂クァ犧。犧≒クア犧吭ク吭クオ犹霞クォ犧」犧キ犧ュ犹�ク。犹�%n%n犧ォ犧イ犧≒ケもク巵ク」犹≒ク≒ク」犧。犹�ク扉ク「犧ア犧�ク�ク�ケ�ク癌ケ霞ケ�ク游ク・犹呉ク吭クオ犹霞クュ犧「犧ケ犹謂ケ≒ク・犧ー犧籾クケ犧≒ク・犧壟クュ犧ュ犧� 犹もク巵ク」犹≒ク≒ク」犧。犹€犧ォ犧・犹謂クイ犧吭クア犹霞ク吭クュ犧イ犧謂ク伶クウ犧�クイ犧吭ケ�ク。犹謂ク籾クケ犧≒ク歩ケ霞クュ犧� 犧ォ犧イ犧≒ク�クク犧内ケ�ク。犹謂ケ≒ク吭ケ謂ケ�ク� 犹�クォ犹霞ケ€犧・犧キ犧ュ犧� 犹�ク。犹� 犧≒クイ犧」犧伶クエ犹霞ク�ケ�ク游ク・犹呉ケ�クァ犹霞ケ�ク吭ク」犧ー犧壟ク壟クもクュ犧�ク�クク犧内ク謂クー犹�ク。犹謂ク≒ケ謂クュ犹�クォ犹霞ケ€犧≒クエ犧扉クュ犧ア犧吭ク歩ク」犧イ犧「犹�ク扉ケ�
+SharedFileNameLabel=犧癌クキ犹謂クュ犹�ク游ク・犹�:
+SharedFileLocationLabel=犧歩クウ犹≒クォ犧吭ケ謂ク�ク伶クオ犹謂ク歩クア犹霞ク�:
+WizardUninstalling=犧ェ犧籾クイ犧吭クー 犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク�
+StatusUninstalling=犧≒クウ犧・犧ア犧�ク籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� %1...
+
 ; *** Shutdown block reasons
-ShutdownBlockReasonInstallingApp=。モナムァオヤエオム鬧 %1.
-ShutdownBlockReasonUninstallingApp=。モナムァツ。倏ヤ。 %1.
-
-; The custom messages below aren't used by Setup itself, but if you make
-; use of them in your scripts, you'll want to translate them.
-
-[CustomMessages]
-
-NameAndVersion=%1 猊ヘテ�ムケ %2
-AdditionalIcons=Additional icons:
-CreateDesktopIcon=ハテ鰓ァ &莽、ヘケコケ犇ハキ醢サ
-CreateQuickLaunchIcon=ハテ鰓ァ &莽、ヘケ盡コエ霽ケ
-ProgramOnTheWeb=%1 コケ猊郤
-UninstallProgram=ツ。倏ヤ。 %1
-LaunchProgram=狃ヤエ %1
-AssocFileExtension=&Associate %1 with the %2 file extension
-AssocingFileExtension=Associating %1 with the %2 file extension...
+ShutdownBlockReasonInstallingApp=犧≒クウ犧・犧ア犧�ク歩クエ犧扉ク歩クア犹霞ク� %1.
+ShutdownBlockReasonUninstallingApp=犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� %1.
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1 犹€犧ァ犧ュ犧」犹呉ク癌クア犧� %2
+AdditionalIcons=犧伶クイ犧�ク・犧ア犧扉ケ€犧樅クエ犹謂ク。犹€犧歩クエ犧。:
+CreateDesktopIcon=犧ェ犧」犹霞クイ犧�ク伶クイ犧�ク・犧ア犧� &犹€犧扉クェ犧≒ケ呉ク伶ケ�クュ犧�
+CreateQuickLaunchIcon=犧ェ犧」犹霞クイ犧�ク伶クイ犧�ク・犧ア犧� &犹€犧巵クエ犧扉ケ�ク癌ケ霞ク扉ケ謂クァ犧�
+ProgramOnTheWeb=%1 犧壟ク吭ケ€犧ァ犹�ク�
+UninstallProgram=犧籾クュ犧吭ク≒クイ犧」犧歩クエ犧扉ク歩クア犹霞ク� %1
+LaunchProgram=犹€犧巵クエ犧扉ケ�ク癌ケ� %1
+AssocFileExtension=&犹€犧癌クキ犹謂クュ犧。犹もク「犧� %1 犧≒クア犧壟ク吭クイ犧。犧ェ犧≒クク犧・犹�ク游ク・犹� %2
+AssocingFileExtension=犧≒クウ犧・犧ア犧�ケ€犧癌クキ犹謂クュ犧。犹もク「犧� %1 犧≒クア犧壟ク吭クイ犧。犧ェ犧≒クク犧・犹�ク游ク・犹� %2...
+AutoStartProgramGroupDescription=犧≒クイ犧」犹€犧」犧エ犹謂ク。犧歩ケ霞ク�:
+AutoStartProgram=犹€犧」犧エ犹謂ク。 %1 犹もク扉ク「犧ュ犧ア犧歩ケもク吭ク。犧ア犧歩クエ
+AddonHostProgramNotFound=犹�ク。犹謂ク樅ク� %1 犹�ク吭ケもク游ク・犹€犧扉クュ犧」犹呉ク伶クオ犹謂ク�クク犧内ケ€犧・犧キ犧ュ犧�%n%n犧�クク犧内ク歩ケ霞クュ犧�ク≒クイ犧」犧扉クウ犹€犧吭クエ犧吭ク≒クイ犧」犧歩ケ謂クュ犧ォ犧」犧キ犧ュ犹�ク。犹�?

+ 102 - 0
ISHelp/ISHelpGen/ISHelpGen.dproj

@@ -0,0 +1,102 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{058C4E22-A1B3-4C10-9062-05B58D9E9747}</ProjectGuid>
+        <MainSource>ISHelpGen.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Console</AppType>
+        <FrameworkType>None</FrameworkType>
+        <ProjectVersion>19.5</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <DCC_DebugInformation>1</DCC_DebugInformation>
+        <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
+        <DCC_ConsoleTarget>true</DCC_ConsoleTarget>
+        <DCC_UsePackage>vcl;rtl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;CLXIB;ibxpress;VCLIB;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;Rave50CLX;Rave50VCL;dclOfficeXP;SynEdit_D6;MwDel70;db321d7r;RemObjects_RODX_D7;RemObjects_BPDX_D7;PKIECtrl7;PKIEDB7;kprocs7;sq7;RemObjects_Indy_D7;RemObjects_Enterprise_D7;secbbox70;indy;sbindy970;$(DCC_UsePackage)</DCC_UsePackage>
+        <SanitizedProjectName>ISHelpGen</SanitizedProjectName>
+        <VerInfo_Locale>1043</VerInfo_Locale>
+        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
+        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <DCC_SYMBOL_DEPRECATED>false</DCC_SYMBOL_DEPRECATED>
+        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
+        <DCC_UNSAFE_CAST>false</DCC_UNSAFE_CAST>
+        <DCC_EXPLICIT_STRING_CAST>false</DCC_EXPLICIT_STRING_CAST>
+        <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
+        <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
+        <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_DcuOutput>Dcu\$(MainSource)</DCC_DcuOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="XMLParse.pas"/>
+        <DCCReference Include="UIsxclassesParser.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">ISHelpGen.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>

+ 1 - 1
ISHelp/ISHelpGen/compile.bat

@@ -14,7 +14,7 @@ if exist compilesettings.bat goto compilesettingsfound
 echo ishelp\ishelpgen\compilesettings.bat is missing or incomplete. It needs to be created
 echo with the following lines, adjusted for your system:
 echo.
-echo   set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\20.0 [Path to Delphi 10.3 Rio (or later)]
+echo   set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\20.0 [Path to Delphi 10.4 Sydney (or later)]
 goto failed2
 
 :compilesettingsfound

+ 2 - 2
ISHelp/compile.bat

@@ -26,13 +26,13 @@ if "%HHCEXE%"=="" goto compilesettingserror
 
 rem -------------------------------------------------------------------------
 
-echo Generating help files:
+echo Generating help files using ISHelpGen:
 echo.
 ISHelpGen\ISHelpGen.exe .
 if errorlevel 1 goto failed
 
 echo.
-echo Running help compiler:
+echo Running HTML Help Compiler (hhc.exe):
 echo.
 if exist Staging\isetup.chm del Staging\isetup.chm
 if exist Staging\isetup.chm goto failed

+ 30 - 12
ISHelp/isetup.xml

@@ -3,7 +3,7 @@
 
 <!--
   Inno Setup
-  Copyright (C) 1997-2022 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 -->
@@ -87,9 +87,9 @@
 <body>
 
 <p>
-<b>Inno Setup version 6.2.1</b><br/>
-<b>Copyright &copy; 1997-2022 Jordan Russell. All rights reserved.</b><br/>
-<b>Portions Copyright &copy; 2000-2022 Martijn Laan. All rights reserved.</b><br/>
+<b>Inno Setup version 6.3.0</b><br/>
+<b>Copyright &copy; 1997-2024 Jordan Russell. All rights reserved.</b><br/>
+<b>Portions Copyright &copy; 2000-2024 Martijn Laan. All rights reserved.</b><br/>
 <extlink href="https://jrsoftware.org/">Inno Setup home page</extlink>
 </p>
 
@@ -164,7 +164,7 @@ Includes integrated support for "deflate", bzip2, and 7-Zip LZMA/LZMA2 file <lin
 <keyword value="Creating Installations" />
 <body>
 
-<p>Installations are created by means of <i>scripts</i>, which are ASCII or Unicode (UTF-8 encoded with a BOM) text files with a format somewhat similar to .INI files. (No, it's not as complicated as you might be thinking!).</p>
+<p>Installations are created by means of <i>scripts</i>, which are ASCII or Unicode (UTF-8 encoded) text files with a format somewhat similar to .INI files. (No, it's not as complicated as you might be thinking!).</p>
 
 <p>Scripts have an ".iss" (meaning Inno Setup Script) extension. The script controls every aspect of the installation. It specifies which files are to be installed and where, what shortcuts are to be created and what they are to be named, and so on.</p>
 
@@ -228,7 +228,7 @@ Source: "MYPROG.EXE"; DestDir: "{app}"
 
 <p>By default, scripts use ISPP if available, and .isl files use the built-in preprocessor.</p>
 
-<p>If an Unicode file is used, it must be UTF-8 encoded with a BOM.</p>
+<p>If an Unicode file is used, it must be UTF-8 encoded.</p>
 
 <p><br/><b>See also:</b><br/>
 <link topic="params">Parameters in Sections</link><br/>
@@ -562,7 +562,7 @@ For example: If you used <tt>{src}\MYPROG.EXE</tt> on an entry and the user is i
 
 <dt><b><a name="usercf">{usercf}</a></b></dt>
 <dd>
-<p>The path to the current user's Common Files directory. Only Windows 7 and later supports <tt>{usercf}</tt>; if used on previous Windows versions, it will translate to the same directory as <tt>{localappdata}\Programs\Common</tt>.</p>
+<p>The path to the current user's Common Files folder. Only Windows 7 and later supports <tt>{usercf}</tt>; if used on previous Windows versions, it will translate to the same directory as <tt>{localappdata}\Programs\Common</tt>.</p>
 </dd>
 
 <dt><b><a name="userdesktop">{userdesktop}</a></b> &amp; <b><a name="commondesktop">{commondesktop}</a></b></dt>
@@ -587,7 +587,7 @@ For example: If you used <tt>{src}\MYPROG.EXE</tt> on an entry and the user is i
 
 <dt><b><a name="userpf">{userpf}</a></b></dt>
 <dd>
-<p>The path to the current user's Program Files directory. Only Windows 7 and later supports <tt>{userpf}</tt>; if used on previous Windows versions, it will translate to the same directory as <tt>{localappdata}\Programs</tt>.</p>
+<p>The path to the current user's Program Files folder. Only Windows 7 and later supports <tt>{userpf}</tt>; if used on previous Windows versions, it will translate to the same directory as <tt>{localappdata}\Programs</tt>.</p>
 </dd>
 
 <dt><b><a name="userprograms">{userprograms}</a></b> &amp; <b><a name="commonprograms">{commonprograms}</a></b></dt>
@@ -597,7 +597,7 @@ For example: If you used <tt>{src}\MYPROG.EXE</tt> on an entry and the user is i
 
 <dt><b><a name="usersavedgames">{usersavedgames}</a></b></dt>
 <dd>
-<p>The path to the current user's Saved Games directory.</p>
+<p>The path to the current user's Saved Games folder. (There is no common Saved Games folder.)</p>
 </dd>
 
 <dt><b><a name="usersendto">{usersendto}</a></b></dt>
@@ -1090,6 +1090,7 @@ DefaultGroupName=My Program
 <li><link topic="setup_uninstalldisplayname">UninstallDisplayName</link></li>
 <li><link topic="setup_uninstalldisplaysize">UninstallDisplaySize</link></li>
 <li><link topic="setup_uninstallfilesdir">UninstallFilesDir</link></li>
+<li><link topic="setup_uninstalllogging">UninstallLogging</link></li>
 <li><link topic="setup_uninstalllogmode">UninstallLogMode</link></li>
 <li><link topic="setup_uninstallrestartcomputer">UninstallRestartComputer</link></li>
 <li><link topic="setup_updateuninstalllogappname">UpdateUninstallLogAppName</link></li>
@@ -2124,7 +2125,7 @@ Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
 <p>Specifies the name(s) of the .isl file(s) to read the default messages from. The file(s) must be located in your installation's <link topic="sourcedirectorynotes">source directory</link> when running the compiler, unless a fully qualified pathname is specified or the pathname is prefixed by "compiler:", in which case it looks for the file in the compiler directory.</p>
 <p>Each message file may contain a <link topic="langoptionssection">[LangOptions] section</link>, a <link topic="messagessection">[Messages] section</link>, and a <link topic="custommessagessection">[CustomMessages] section.</link></p>
 <p>When multiple files are specified, they are read in the order they are specified, thus the last message file overrides any language options or messages from previous files. Any language options or messages in the main script override the ones from message files.</p>
-<p>If an Unicode file is used, it must be UTF-8 encoded with a BOM.</p>
+<p>If an Unicode file is used, it must be UTF-8 encoded.</p>
 <examples>
 <pre>
 MessagesFile: "compiler:Dutch.isl"
@@ -2769,7 +2770,7 @@ Type: files; Name: "{win}\MYPROG.INI"
 <p>If you don't remember which version you installed, click the "Inno Setup Compiler" shortcut created in the Start Menu. If the version number displayed in its title bar says "(a)" you are running Non Unicode Inno Setup. Otherwise you are running Unicode Inno Setup.</p>
 <p>For the most part the two versions are used identically, and any differences between them are noted throughout the help file. However, the following overview lists the primary differences:</p>
   <ul>
-  <li>Unicode Inno Setup supports UTF-8 encoded .iss and .isl files (but not UTF-16).</li>
+  <li>Unicode Inno Setup supports UTF-8 encoded .iss and .isl files. Starting with Inno Setup 6.3, a UTF-8 preamble (also called BOM) is no longer required. UTF-16 is not supported.</li>
   <li>Any existing ANSI .isl language files are automatically converted during compilation using the <tt>LanguageCodePage</tt> setting of the language.</li>
   <li>Any [Messages] and [CustomMessages] entries in existing ANSI .iss script files must to be converted to Unicode manually if the language used a special <tt>LanguageCodePage</tt>.</li>
   <li>Unicode Inno Setup supports UTF-8 and UTF-16LE encoded .txt files for <tt>LicenseFile</tt>, <tt>InfoBeforeFile</tt>, and <tt>InfoAfterFile</tt>.</li>
@@ -3321,6 +3322,8 @@ Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; St
 
 <p>The Setup program accepts optional command line parameters. These can be useful to system administrators, and to other programs calling the Setup program.</p>
 
+<p>Also see <link topic="uninstcmdline">Uninstaller Command Line Parameters</link>.</p>
+
 <dl>
 
 <dt><b><a name="HELP">/HELP</a>, <a name="HELP2">/?</a></b></dt>
@@ -3631,6 +3634,8 @@ Keep the default set of selected tasks, but deselect the "desktopicon" task:<br/
 
 <p>The uninstaller program (unins???.exe) accepts optional command line parameters. These can be useful to system administrators, and to other programs calling the uninstaller program.</p>
 
+<p>Also see <link topic="setupcmdline">Setup Command Line Parameters</link>.</p>
+
 <dl>
 
 <dt><b><a name="SILENT">/SILENT</a>, <a name="VERYSILENT">/VERYSILENT</a></b></dt>
@@ -4495,6 +4500,15 @@ UninstallDisplayIcon={app}\MyProg.exe,1
 </body>
 </setuptopic>
 
+<setuptopic directive="UninstallLogging">
+<setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
+<setupdefault><tt>no</tt></setupdefault>
+<body>
+<p>If set to <tt>yes</tt>, the uninstaller will always create a log file if it is launched from the <i>Add/Remove Programs</i> Control Panel applet. Equivalent to passing <link topic="uninstcmdline" anchor="LOG">/LOG</link> on the command line.</p>
+<p>This directive has no effect if <tt>CreateUninstallRegKey</tt> is not set to <tt>yes</tt>.</p>
+</body>
+</setuptopic>
+
 <setuptopic directive="UninstallLogMode">
 <setupvalid><tt>append</tt>, <tt>new</tt>, or <tt>overwrite</tt></setupvalid>
 <setupdefault><tt>append</tt></setupdefault>
@@ -5665,8 +5679,11 @@ SignTool=byparam format c:
 <tr><td>10.0.19042</td><td>Windows 10 Version 20H2 (October 2020 Update)</td></tr>
 <tr><td>10.0.19043</td><td>Windows 10 Version 21H1 (May 2021 Update)</td></tr>
 <tr><td>10.0.19044</td><td>Windows 10 Version 21H2 (November 2021 Update)</td></tr>
+<tr><td>10.0.19045</td><td>Windows 10 Version 22H2 (2022 Update)</td></tr>
 <tr><td>10.0.20348</td><td>Windows Server 2022 Version 21H2</td></tr>
-<tr><td>10.0.22000</td><td>Windows 11 Version 21H2 (N/A)</td></tr>
+<tr><td>10.0.22000</td><td>Windows 11 Version 21H2 (original release)</td></tr>
+<tr><td>10.0.22621</td><td>Windows 11 Version 22H2 (2022 Update)</td></tr>
+<tr><td>10.0.22631</td><td>Windows 11 Version 23H2 (2023 Update)</td></tr>
 </table>
 <p>Note that there is normally no need to specify the build numbers (i.e., you may simply use "6.2" for Windows 8).</p>
 </body>
@@ -5681,6 +5698,7 @@ SignTool=byparam format c:
 <tr><td><tt>creatorowner</tt></td><td>Creator Owner</td></tr>
 <tr><td><tt>everyone</tt></td><td>Everyone group</td></tr>
 <tr><td><tt>guests</tt></td><td>Guests group</td></tr>
+<tr><td><tt>iisiusrs</tt></td><td>IIS users group</td></tr>
 <tr><td><tt>networkservice</tt></td><td>Network service account</td></tr>
 <tr><td><tt>service</tt></td><td>Local service account</td></tr>
 <tr><td><tt>system</tt></td><td>Local system account</td></tr>

+ 1 - 0
ISHelp/isxclasses.pas

@@ -739,6 +739,7 @@ TDownloadWizardPage = class(TOutputProgressWizardPage)
   property AbortButton: TNewButton; read;
   property AbortedByUser: Boolean; read;
   procedure Add(const Url, BaseName, RequiredSHA256OfFile: String);
+  procedure AddEx(const Url, BaseName, RequiredSHA256OfFile, UserName, Password: String);
   procedure Clear;
   function Download: Int64;
 end;

+ 31 - 11
ISHelp/isxfunc.xml

@@ -1769,12 +1769,14 @@ end;</pre></example>
 <p>If RequiredSHA256OfFile is set it will compare this to the SHA-256 of the downloaded file and raise an exception if the hashes don't match.</p>
 <p>An exception will be raised if there was an error. Otherwise, returns the number of bytes downloaded. Returns 0 if RequiredSHA256OfFile is set and the file was already downloaded.</p>
 <p>Supports HTTPS (but not expired or self-signed certificates) and HTTP. Redirects are automatically followed and proxy settings are automatically used. Safe to use from services.</p>
-<p>For basic authentication use a special URL format like this: http://username:[email protected]/</p>
+<p>For basic authentication use <link topic="isxfunc_SetDownloadCredentials">SetDownloadCredentials</link>.</p>
 <p>Set OnDownloadProgress to a function to be informed of progress, or <tt>nil</tt> otherwise.</p></description>
         <remarks><p>TOnDownloadProgress is defined as:</p>
 <p><tt>TOnDownloadProgress = function(const Url, FileName: string; const Progress, ProgressMax: Int64): Boolean;</tt></p>
 <p>ProgressMax will be 0 if the file size is still unknown. Return True to allow the download to continue, False otherwise.</p></remarks>
-        <seealso><p><link topic="isxfunc_DownloadTemporaryFileSize">DownloadTemporaryFileSize</link><br />
+        <seealso><p><link topic="isxfunc_SetDownloadCredentials">SetDownloadCredentials</link><br />
+<link topic="isxfunc_DownloadTemporaryFileSize">DownloadTemporaryFileSize</link><br />
+<link topic="isxfunc_DownloadTemporaryFileDate">DownloadTemporaryFileDate</link><br />
 <link topic="isxfunc_CreateDownloadPage">CreateDownloadPage</link><br />
 <link topic="isxfunc_ExtractTemporaryFile">ExtractTemporaryFile</link></p></seealso>
         <example><pre>
@@ -1800,11 +1802,24 @@ begin
   end;
 end;</pre>
 <p>See <i>CodeDownloadFiles.iss</i> for another example which uses <link topic="isxfunc_CreateDownloadPage">CreateDownloadPage</link> instead.</p></example>
+      </function>
+      <function>
+        <name>SetDownloadCredentials</name>
+        <prototype>procedure SetDownloadCredentials(const User, Pass: String);</prototype>
+        <description><p>Sets username and password for all following downloads. Set an empty string to delete the previous setting.</p>
+<seealso><p><link topic="isxfunc_DownloadTemporaryFile">DownloadTemporaryFile</link><br/><link topic="isxfunc_DownloadTemporaryFileSize">DownloadTemporaryFileSize</link><br/><link topic="isxfunc_DownloadTemporaryFileDate">DownloadTemporaryFileDate</link></p></seealso></description>
       </function>
       <function>
         <name>DownloadTemporaryFileSize</name>
         <prototype>function DownloadTemporaryFileSize(const Url): Int64;</prototype>
-        <description><p>Returns the size of the file from the specified URL, without downloading the file. If the server does not provide the file size, -1 will be returned.</p>
+        <description><p>Returns the size of the file from the specified URL, without downloading the file. If the server does not provide the size, -1 will be returned.</p>
+<p>An exception will be raised if there was an error.</p>
+<p>See <link topic="isxfunc_DownloadTemporaryFile">DownloadTemporaryFile</link> for other considerations.</p></description>
+      </function>
+      <function>
+        <name>DownloadTemporaryFileDate</name>
+        <prototype>function DownloadTemporaryFileDate(const Url): String;</prototype>
+        <description><p>Returns the last modified date of the file from the specified URL, without downloading the file. If the server does not provide the last modified file date, '' will be returned.</p>
 <p>An exception will be raised if there was an error.</p>
 <p>See <link topic="isxfunc_DownloadTemporaryFile">DownloadTemporaryFile</link> for other considerations.</p></description>
       </function>
@@ -1846,7 +1861,7 @@ end;</pre>
       <function>
         <name>LoadStringsFromFile</name>
         <prototype>function LoadStringsFromFile(const FileName: String; var S: TArrayOfString): Boolean;</prototype>
-        <description><p>Loads the specified text file into the specified string array. Returns True if successful, False otherwise.</p></description>
+        <description><p>Loads the specified text file into the specified string array. UTF-8 encoded files with or without a preamble (also called BOM) are also supported. Returns True if successful, False otherwise.</p></description>
       </function>
       <function>
         <name>SaveStringToFile</name>
@@ -1859,13 +1874,22 @@ end;</pre>
         <name>SaveStringsToFile</name>
         <prototype>function SaveStringsToFile(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;</prototype>
         <description><p>Saves the specified string array to the specified file with ASCII encoding. If Append is True and the specified file already exists, it will be appended to instead of overwritten. Returns True if successful, False otherwise.</p></description>
-        <seealso><p><link topic="isxfunc_SaveStringsToUTF8File">SaveStringsToUTF8File</link></p></seealso>
+        <seealso><p><link topic="isxfunc_SaveStringsToUTF8File">SaveStringsToUTF8File</link><br />
+<link topic="isxfunc_SaveStringsToUTF8FileNoPreamble">SaveStringsToUTF8FileNoPreamble</link></p></seealso>
       </function>
       <function>
         <name>SaveStringsToUTF8File</name>
         <prototype>function SaveStringsToUTF8File(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;</prototype>
-        <description><p>Saves the specified string array to the specified file with UTF8 encoding. If Append is True and the specified file already exists, it will be appended to instead of overwritten. Returns True if successful, False otherwise.</p></description>
-        <seealso><p><link topic="isxfunc_SaveStringsToFile">SaveStringsToFile</link></p></seealso>
+        <description><p>Saves the specified string array to the specified file with UTF-8 encoding with a preamble (also called BOM). If Append is True and the specified file already exists, it will be appended to instead of overwritten. Returns True if successful, False otherwise.</p></description>
+        <seealso><p><link topic="isxfunc_SaveStringsToFile">SaveStringsToFile</link><br />
+<link topic="isxfunc_SaveStringsToUTF8FileNoPreamble">SaveStringsToUTF8FileNoPreamble</link></p></seealso>
+      </function>
+      <function>
+        <name>SaveStringsToUTF8FileNoPreamble</name>
+        <prototype>function SaveStringsToUTF8FileNoPreamble(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;</prototype>
+        <description><p>Saves the specified string array to the specified file with UTF-8 encoding without a preamble (also called BOM). If Append is True and the specified file already exists, it will be appended to instead of overwritten. Returns True if successful, False otherwise.</p></description>
+        <seealso><p><link topic="isxfunc_SaveStringsToFile">SaveStringsToFile</link><br />
+<link topic="isxfunc_SaveStringsToUTF8File">SaveStringsToUTF8File</link></p></seealso>
       </function>
     </subcategory>
     <subcategory>
@@ -2944,10 +2968,6 @@ end;</pre></example>
      <description>Reg* - RootKey values (also see the <link topic="registrysection" window="main">[Registry]</link> section documentation)</description>
      <values>HKEY_AUTO, HKEY_AUTO_32, HKEY_AUTO_64,<br />HKEY_CLASSES_ROOT, HKEY_CLASSES_ROOT_32, HKEY_CLASSES_ROOT_64,<br />HKEY_CURRENT_USER, HKEY_CURRENT_USER_32, HKEY_CURRENT_USER_64,<br />HKEY_LOCAL_MACHINE, HKEY_LOCAL_MACHINE_32, HKEY_LOCAL_MACHINE_64,<br />HKEY_USERS, HKEY_USERS_32, HKEY_USERS_64,<br />HKEY_PERFORMANCE_DATA,<br />HKEY_CURRENT_CONFIG, HKEY_CURRENT_CONFIG_32, HKEY_CURRENT_CONFIG_64,<br />HKEY_DYN_DATA,<br />HKA, HKA32, HKA64, HKCR, HKCR32, HKCR64, HKCU, HKCU32, HKCU64, HKLM, HKLM32, HKLM64, HKU, HKU32, HKU64, HKCC, HKCC32, HKCC64</values>
   </enum>
-  <enum>
-     <description>TShellFolderID</description>
-     <values>sfDesktop, sfStartMenu, sfPrograms, sfStartup, sfSendTo, sfFonts, sfAppData, sfDocs, sfTemplates, sfFavorites, sfLocalAppData</values>
-  </enum>
   <enum>
      <description>TSetupMessageID</description>
      <values>Use 'msg' + the message name. Example: <i>SetupMessage(msgSetupAppTitle)</i></values>

+ 40 - 2
Projects/CompExeUpdate.pas

@@ -25,6 +25,7 @@ procedure UpdateVersionInfo(const F: TCustomFile;
   NewProductName, NewTextProductVersion, NewOriginalFileName: String;
   const SetFileVersionAndDescription: Boolean);
 procedure RemoveManifestDllHijackProtection(const F: TCustomFile; const TestBlockOnly: Boolean);
+procedure PreventCOMCTL32Sideloading(const F: TCustomFile);
 
 implementation
 
@@ -502,7 +503,7 @@ end;
 procedure RemoveManifestDllHijackProtection(const F: TCustomFile; const TestBlockOnly: Boolean);
 const
   BlockStartText: AnsiString = '<file name="';
-  BlockLength = 250;
+  BlockLength = 380;
 var
   S: AnsiString;
   Offset: Integer64;
@@ -518,7 +519,7 @@ begin
   if P = 0 then
     ResUpdateError('Block not found');
   if Copy(S, P+BlockLength, 11) <> '</assembly>' then
-    ResUpdateError('Block too short');
+    ResUpdateError('Block too short (BlockLength should be '+string(IntToStr(Pos('</assembly>', string(S))-P)+'): '+string(Copy(S, P+BlockLength, 11))));
 
   if TestBlockOnly then
     Exit;
@@ -528,4 +529,41 @@ begin
   F.WriteAnsiString(AnsiString(Format('%*s', [BlockLength, ' '])));
 end;
 
+procedure PreventCOMCTL32Sideloading(const F: TCustomFile);
+const
+  DependencyStartTag: AnsiString = '<dependency>';
+  DependencyEndTag: AnsiString = '</dependency>';
+  FileStartTag: AnsiString = '<file name="';
+  COMCTL32Entry: AnsiString = '<file name="comctl32.dll" loadFrom="%SystemRoot%\system32\" />'#13#10;
+var
+  S: AnsiString;
+  Offset: Integer64;
+  P,Q,R: Integer;
+begin
+  { Read the manifest resource into a string }
+  SetString(S, nil, SeekToResourceData(F, 24, 1));
+  Offset := F.Position;
+  F.ReadBuffer(S[1], Length(S));
+
+  { Locate and update the <dependency> tag }
+  P := Pos(DependencyStartTag, S);
+  if P = 0 then
+    ResUpdateError('<dependency> tag not found');
+  Q := Pos(DependencyEndTag, S);
+  if Q <= P then
+    ResUpdateError('<dependency> end tag not found');
+  Q := Q+Length(DependencyEndTag);
+  if Length(COMCTL32Entry) > Q-P then
+    ResUpdateError('<dependency> tag shorter than replacement');
+  R := Pos(FileStartTag, S);
+  if R <= Q then
+    ResUpdateError('<dependency> end tag after <file>?');
+
+  Inc64(Offset, P-1);
+  F.Seek64(Offset);
+  F.WriteAnsiString(AnsiString(Format('%*s', [Q-P-Length(COMCTL32Entry), ' '])));
+  F.WriteAnsiString(AnsiString(Copy(S, Q, R-Q)));
+  F.WriteAnsiString(COMCTL32Entry);
+end;
+
 end.

+ 114 - 0
Projects/CompFilesDesigner.dfm

@@ -0,0 +1,114 @@
+object FilesDesignerForm: TFilesDesignerForm
+  Left = 624
+  Top = 375
+  BorderStyle = bsDialog
+  Caption = '[Files] Entries Designer'
+  ClientHeight = 403
+  ClientWidth = 575
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -12
+  Font.Name = 'Segoe UI'
+  Font.Style = []
+  Position = poDesktopCenter
+  OnCreate = FormCreate
+  OnDestroy = FormDestroy
+  TextHeight = 15
+  object Panel1: TPanel
+    Left = 0
+    Top = 361
+    Width = 575
+    Height = 42
+    Align = alBottom
+    BevelOuter = bvNone
+    TabOrder = 0
+    object Bevel1: TBevel
+      Left = 0
+      Top = 0
+      Width = 575
+      Height = 3
+      Align = alTop
+      Shape = bsBottomLine
+    end
+    object InsertButton: TButton
+      Left = 406
+      Top = 11
+      Width = 75
+      Height = 25
+      Caption = 'Insert'
+      ModalResult = 1
+      TabOrder = 0
+      OnClick = InsertButtonClick
+    end
+    object CancelButton: TButton
+      Left = 490
+      Top = 11
+      Width = 75
+      Height = 25
+      Cancel = True
+      Caption = 'Cancel'
+      ModalResult = 2
+      TabOrder = 1
+    end
+  end
+  object AppFilesEditButton: TButton
+    Left = 476
+    Top = 107
+    Width = 89
+    Height = 23
+    Caption = '&Parameters...'
+    TabOrder = 1
+  end
+  object AppFilesRemoveButton: TButton
+    Left = 476
+    Top = 135
+    Width = 89
+    Height = 23
+    Caption = 'Remo&ve'
+    TabOrder = 2
+  end
+  object AppFilesAddDirButton: TButton
+    Left = 476
+    Top = 79
+    Width = 89
+    Height = 23
+    Caption = 'Add fol&der...'
+    TabOrder = 3
+  end
+  object AppFilesAddButton: TButton
+    Left = 476
+    Top = 51
+    Width = 89
+    Height = 23
+    Caption = '&Add file(s)...'
+    TabOrder = 4
+  end
+  object AppFilesListBox: TDropListBox
+    Left = 8
+    Top = 52
+    Width = 453
+    Height = 297
+    ItemHeight = 15
+    TabOrder = 5
+  end
+  object AppFilesLabel: TNewStaticText
+    Left = 8
+    Top = 32
+    Width = 411
+    Height = 16
+    AutoSize = False
+    Caption = '&Files:'
+    FocusControl = AppFilesListBox
+    TabOrder = 6
+    WordWrap = True
+  end
+  object NotCreateAppDirCheck: TCheckBox
+    Left = 8
+    Top = 8
+    Width = 253
+    Height = 17
+    Caption = '&Script has CreateAppDir=no'
+    TabOrder = 7
+  end
+end

+ 60 - 0
Projects/CompFilesDesigner.pas

@@ -0,0 +1,60 @@
+unit CompFilesDesigner;
+
+interface
+
+uses
+  Classes, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,
+  UIStateForm, NewStaticText, DropListBox, CompWizardFilesHelper;
+
+type
+  TFilesDesignerForm = class(TUIStateForm)
+    Panel1: TPanel;
+    InsertButton: TButton;
+    CancelButton: TButton;
+    AppFilesEditButton: TButton;
+    AppFilesRemoveButton: TButton;
+    AppFilesAddDirButton: TButton;
+    AppFilesAddButton: TButton;
+    AppFilesListBox: TDropListBox;
+    AppFilesLabel: TNewStaticText;
+    NotCreateAppDirCheck: TCheckBox;
+    Bevel1: TBevel;
+    procedure FormCreate(Sender: TObject);
+    procedure FormDestroy(Sender: TObject);
+    procedure InsertButtonClick(Sender: TObject);
+  private
+    FFilesHelper: TWizardFormFilesHelper;
+    function GetText: String;
+  public
+    property Text: string read GetText;
+  end;
+
+implementation
+
+{$R *.dfm}
+
+procedure TFilesDesignerForm.FormCreate(Sender: TObject);
+begin
+  FFilesHelper := TWizardFormFilesHelper.Create(Handle,
+    NotCreateAppDirCheck, AppFilesListBox, AppFilesAddButton, AppFilesAddDirButton,
+    AppFilesEditButton, AppFilesRemoveButton);
+end;
+
+procedure TFilesDesignerForm.FormDestroy(Sender: TObject);
+begin
+  FFilesHelper.Free;
+end;
+
+function TFilesDesignerForm.GetText: String;
+begin
+  Result := '';
+  FFilesHelper.AddScript(Result);
+end;
+
+procedure TFilesDesignerForm.InsertButtonClick(Sender: TObject);
+begin
+  if FFilesHelper.FilesCount = 0 then
+    ModalResult := mrCancel;
+end;
+
+end.

+ 23 - 16
Projects/CompForm.dfm

@@ -203,6 +203,7 @@ object CompileForm: TCompileForm
         Top = 0
         Hint = 'New Main Script (Ctrl+N)'
         ImageIndex = 0
+        ImageName = 'document-new'
         OnClick = FNewMainFileClick
       end
       object OpenMainFileButton: TToolButton
@@ -210,6 +211,7 @@ object CompileForm: TCompileForm
         Top = 0
         Hint = 'Open Main Script (Ctrl+O)'
         ImageIndex = 1
+        ImageName = 'folder-open-filled-arrow-down-right'
         OnClick = FOpenMainFileClick
       end
       object SaveButton: TToolButton
@@ -217,6 +219,7 @@ object CompileForm: TCompileForm
         Top = 0
         Hint = 'Save (Ctrl+S)'
         ImageIndex = 2
+        ImageName = 'save-filled'
         OnClick = FSaveClick
       end
       object ToolButton4: TToolButton
@@ -231,6 +234,7 @@ object CompileForm: TCompileForm
         Top = 0
         Hint = 'Compile (Ctrl+F9)'
         ImageIndex = 3
+        ImageName = 'build'
         OnClick = BCompileClick
       end
       object StopCompileButton: TToolButton
@@ -239,6 +243,7 @@ object CompileForm: TCompileForm
         Hint = 'Stop Compile (Esc)'
         Enabled = False
         ImageIndex = 4
+        ImageName = 'build-cancel-2'
         OnClick = BStopCompileClick
       end
       object ToolButton7: TToolButton
@@ -253,6 +258,7 @@ object CompileForm: TCompileForm
         Top = 0
         Hint = 'Run (F9)'
         ImageIndex = 5
+        ImageName = 'debug-start-filled'
         OnClick = RRunClick
       end
       object PauseButton: TToolButton
@@ -261,6 +267,7 @@ object CompileForm: TCompileForm
         Hint = 'Pause'
         Enabled = False
         ImageIndex = 6
+        ImageName = 'debug-break-all-filled'
         OnClick = RPauseClick
       end
       object TerminateButton: TToolButton
@@ -269,6 +276,7 @@ object CompileForm: TCompileForm
         Hint = 'Terminate (Ctrl+F2)'
         Enabled = False
         ImageIndex = 10
+        ImageName = 'debug-stop-filled'
         OnClick = RTerminateClick
       end
       object ToolButton10: TToolButton
@@ -284,6 +292,7 @@ object CompileForm: TCompileForm
         Hint = 'Target Setup (Ctrl+Q)'
         Grouped = True
         ImageIndex = 7
+        ImageName = 'install'
         Style = tbsCheck
         OnClick = RTargetClick
       end
@@ -293,6 +302,7 @@ object CompileForm: TCompileForm
         Hint = 'Target Uninstall (Ctrl+W)'
         Grouped = True
         ImageIndex = 8
+        ImageName = 'uninstall'
         Style = tbsCheck
         OnClick = RTargetClick
       end
@@ -308,6 +318,7 @@ object CompileForm: TCompileForm
         Top = 0
         Hint = 'Help (F1)'
         ImageIndex = 9
+        ImageName = 'button-help'
         OnClick = HDocClick
       end
     end
@@ -365,6 +376,10 @@ object CompileForm: TCompileForm
           RadioItem = True
           OnClick = FSaveEncodingItemClick
         end
+        object FSaveEncodingUTF8NoPreamble: TMenuItem
+          Caption = 'UTF-8 without &BOM'
+          OnClick = FSaveEncodingItemClick
+        end
       end
       object FSaveAll: TMenuItem
         Caption = 'Sa&ve All'
@@ -668,10 +683,15 @@ object CompileForm: TCompileForm
         ShortCut = 24647
         OnClick = TGenerateGUIDClick
       end
-      object TInsertMsgBox: TMenuItem
-        Caption = '&MessageBox Designer...'
+      object TMsgBoxDesigner: TMenuItem
+        Caption = '&MsgBox/TaskDialogMsgBox Designer...'
         ShortCut = 24653
-        OnClick = TInsertMsgBoxClick
+        OnClick = TMsgBoxDesignerClick
+      end
+      object TFilesDesigner: TMenuItem
+        Caption = '[F&iles] Entries Designer...'
+        ShortCut = 24649
+        OnClick = TFilesDesignerClick
       end
       object N7: TMenuItem
         Caption = '-'
@@ -2646,73 +2666,60 @@ object CompileForm: TCompileForm
   end
   object ToolBarVirtualImageList: TVirtualImageList
     AutoFill = True
-    DisabledGrayscale = False
-    DisabledSuffix = '_Disabled'
     Images = <
       item
         CollectionIndex = 0
         CollectionName = 'document-new'
-        Disabled = False
         Name = 'document-new'
       end
       item
         CollectionIndex = 1
         CollectionName = 'folder-open-filled-arrow-down-right'
-        Disabled = False
         Name = 'folder-open-filled-arrow-down-right'
       end
       item
         CollectionIndex = 2
         CollectionName = 'save-filled'
-        Disabled = False
         Name = 'save-filled'
       end
       item
         CollectionIndex = 3
         CollectionName = 'build'
-        Disabled = False
         Name = 'build'
       end
       item
         CollectionIndex = 4
         CollectionName = 'build-cancel-2'
-        Disabled = False
         Name = 'build-cancel-2'
       end
       item
         CollectionIndex = 5
         CollectionName = 'debug-start-filled'
-        Disabled = False
         Name = 'debug-start-filled'
       end
       item
         CollectionIndex = 6
         CollectionName = 'debug-break-all-filled'
-        Disabled = False
         Name = 'debug-break-all-filled'
       end
       item
         CollectionIndex = 7
         CollectionName = 'install'
-        Disabled = False
         Name = 'install'
       end
       item
         CollectionIndex = 8
         CollectionName = 'uninstall'
-        Disabled = False
         Name = 'uninstall'
       end
       item
         CollectionIndex = 9
         CollectionName = 'button-help'
-        Disabled = False
         Name = 'button-help'
       end
       item
         CollectionIndex = 10
         CollectionName = 'debug-stop-filled'
-        Disabled = False
         Name = 'debug-stop-filled'
       end>
     ImageCollection = LightToolBarImageCollection

+ 83 - 29
Projects/CompForm.pas

@@ -2,7 +2,7 @@ unit CompForm;
 
 {
   Inno Setup
-  Copyright (C) 1997-2022 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -16,12 +16,8 @@ unit CompForm;
 
 {$I VERSION.INC}
 
-{$IFDEF IS_D6}
-{$WARN SYMBOL_PLATFORM OFF}
-{$ENDIF}
-
 {$IFDEF STATICCOMPILER}
-{$R IMAGES2.RES}
+{$R ISCmplr.images.res}
 {$ENDIF}
 
 interface
@@ -194,7 +190,7 @@ type
     PListSelectAll: TMenuItem;
     DebugCallStackList: TListBox;
     VDebugCallStack: TMenuItem;
-    TInsertMsgBox: TMenuItem;
+    TMsgBoxDesigner: TMenuItem;
     ToolBarPanel: TPanel;
     HMailingList: TMenuItem;
     MemosTabSet: TNewTabSet; { First tab is the main memo, last tab is the preprocessor output memo }
@@ -213,6 +209,8 @@ type
     FPrint: TMenuItem;
     N22: TMenuItem;
     PrintDialog: TPrintDialog;
+    FSaveEncodingUTF8NoPreamble: TMenuItem;
+    TFilesDesigner: TMenuItem;
     MemosPopupMenu: TPopupMenu;
     FMClose: TMenuItem;
     FMReopen: TMenuItem;
@@ -303,7 +301,7 @@ type
       State: TOwnerDrawState);
     procedure VDebugCallStackClick(Sender: TObject);
     procedure HMailingListClick(Sender: TObject);
-    procedure TInsertMsgBoxClick(Sender: TObject);
+    procedure TMsgBoxDesignerClick(Sender: TObject);
     procedure MemosTabSetClick(Sender: TObject);
     procedure FSaveAllClick(Sender: TObject);
     procedure RStepOutClick(Sender: TObject);
@@ -318,6 +316,7 @@ type
       State: TOwnerDrawState);
     procedure FindResultsListDblClick(Sender: TObject);
     procedure FPrintClick(Sender: TObject);
+    procedure TFilesDesignerClick(Sender: TObject);
     procedure MemoCloseClick(Sender: TObject);
     procedure MemoReopenClick(Sender: TObject);
     procedure OnMemosPopup(Sender: TObject);
@@ -531,11 +530,12 @@ var
 implementation
 
 uses
-  ActiveX, Clipbrd, ShellApi, ShlObj, IniFiles, Registry, Consts, Types, UITypes, Math,
+  ActiveX, Clipbrd, ShellApi, ShlObj, IniFiles, Registry, Consts, Types, UITypes, Math, WideStrUtils,
   PathFunc, CmnFunc, CmnFunc2, FileClass, CompMsgs, TmSchema, BrowseFunc,
   HtmlHelpFunc, TaskbarProgressFunc,
   {$IFDEF STATICCOMPILER} Compile, {$ENDIF}
-  CompOptions, CompStartup, CompWizard, CompSignTools, CompTypes, CompInputQueryCombo, CompMessageBoxDesigner;
+  CompOptions, CompStartup, CompWizard, CompSignTools, CompTypes, CompInputQueryCombo, CompMsgBoxDesigner,
+  CompFilesDesigner;
 
 {$R *.DFM}
 
@@ -1037,7 +1037,7 @@ begin
 
   FMainMemo.Filename := '';
   UpdateCaption;
-  FMainMemo.SaveInUTF8Encoding := False;
+  FMainMemo.SaveEncoding := seUTF8;
   FMainMemo.Lines.Clear;
   FModifiedAnySinceLastCompile := True;
   FPreprocessorOutput := '';
@@ -1141,7 +1141,7 @@ begin
     end;
 
     if CommandLineWizard then begin
-      SaveTextToFile(CommandLineFileName, WizardForm.ResultScript, False);
+      SaveTextToFile(CommandLineFileName, WizardForm.ResultScript, seUtf8);
     end else begin
       NewMainFile;
       FMainMemo.Lines.Text := WizardForm.ResultScript;
@@ -1160,14 +1160,36 @@ end;
 procedure TCompileForm.OpenFile(AMemo: TCompScintFileEdit; AFilename: String;
   const MainMemoAddToRecentDocs: Boolean);
 
-  function IsStreamUTF8Encoded(const Stream: TStream): Boolean;
+  function GetStreamSaveEncoding(const Stream: TStream): TSaveEncoding;
   var
     Buf: array[0..2] of Byte;
   begin
-    Result := False;
-    if Stream.Read(Buf, SizeOf(Buf)) = SizeOf(Buf) then
-      if (Buf[0] = $EF) and (Buf[1] = $BB) and (Buf[2] = $BF) then
-        Result := True;
+    Result := seAuto;
+    var StreamSize := Stream.Size;
+    var CappedSize: Integer;
+    if StreamSize > High(Integer) then
+      CappedSize := High(Integer)
+    else
+      CappedSize := Integer(StreamSize);
+    if (CappedSize >= SizeOf(Buf)) and (Stream.Read(Buf, SizeOf(Buf)) = SizeOf(Buf)) and
+       (Buf[0] = $EF) and (Buf[1] = $BB) and (Buf[2] = $BF) then
+      Result := seUTF8
+    else begin
+      Stream.Seek(0, soFromBeginning);
+      var S: AnsiString;
+      SetLength(S, CappedSize);
+      SetLength(S, Stream.Read(S[1], CappedSize));
+      if IsUTF8String(S) then
+        Result := seUTF8NoPreamble;
+    end;
+  end;
+
+  function GetEncoding(const SaveEncoding: TSaveEncoding): TEncoding;
+  begin
+    if SaveEncoding in [seUTF8, seUTF8NoPreamble] then
+      Result := TEncoding.UTF8
+    else
+      Result := nil;
   end;
 
 var
@@ -1180,9 +1202,9 @@ begin
     if AMemo = FMainMemo then
       NewMainFile;
     GetFileTime(Stream.Handle, nil, nil, @AMemo.FileLastWriteTime);
-    AMemo.SaveInUTF8Encoding := IsStreamUTF8Encoded(Stream);
+    AMemo.SaveEncoding := GetStreamSaveEncoding(Stream);
     Stream.Seek(0, soFromBeginning);
-    AMemo.Lines.LoadFromStream(Stream);
+    AMemo.Lines.LoadFromStream(Stream, GetEncoding(AMemo.SaveEncoding));
   finally
     Stream.Free;
   end;
@@ -1228,7 +1250,7 @@ function TCompileForm.SaveFile(const AMemo: TCompScintFileEdit; const SaveAs: Bo
         [GetLastError]);
     TempFN := Buf;
     try
-      SaveTextToFile(TempFN, AMemo.Lines.Text, AMemo.SaveInUTF8Encoding);
+      SaveTextToFile(TempFN, AMemo.Lines.Text, AMemo.SaveEncoding);
 
       { Back up existing file if needed }
       if FOptions.MakeBackups and NewFileExists(FN) then begin
@@ -1765,8 +1787,9 @@ var
 begin
   FSaveMainFileAs.Enabled := FActiveMemo = FMainMemo;
   FSaveEncoding.Enabled := FSave.Enabled; { FSave.Enabled is kept up-to-date by UpdateSaveMenuItemAndButton }
-  FSaveEncodingAuto.Checked := FSaveEncoding.Enabled and not (FActiveMemo as TCompScintFileEdit).SaveInUTF8Encoding;
-  FSaveEncodingUTF8.Checked := FSaveEncoding.Enabled and (FActiveMemo as TCompScintFileEdit).SaveInUTF8Encoding;
+  FSaveEncodingAuto.Checked := FSaveEncoding.Enabled and ((FActiveMemo as TCompScintFileEdit).SaveEncoding = seAuto);
+  FSaveEncodingUTF8.Checked := FSaveEncoding.Enabled and ((FActiveMemo as TCompScintFileEdit).SaveEncoding = seUTF8);
+  FSaveEncodingUTF8NoPreamble.Checked := FSaveEncoding.Enabled and ((FActiveMemo as TCompScintFileEdit).SaveEncoding = seUTF8NoPreamble);
   FSaveAll.Visible := FOptions.OpenIncludedFiles;
   ReadMRUMainFilesList;
   FMRUMainFilesSep.Visible := FMRUMainFilesList.Count <> 0;
@@ -1822,7 +1845,12 @@ end;
 
 procedure TCompileForm.FSaveEncodingItemClick(Sender: TObject);
 begin
-  (FActiveMemo as TCompScintFileEdit).SaveInUTF8Encoding := (Sender = FSaveEncodingUTF8);
+  if Sender = FSaveEncodingUTF8  then
+    (FActiveMemo as TCompScintFileEdit).SaveEncoding := seUTF8
+  else if Sender = FSaveEncodingUTF8NoPreamble  then
+    (FActiveMemo as TCompScintFileEdit).SaveEncoding := seUTF8NoPreamble
+  else
+    (FActiveMemo as TCompScintFileEdit).SaveEncoding := seAuto;
 end;
 
 procedure TCompileForm.FSaveAllClick(Sender: TObject);
@@ -2537,8 +2565,8 @@ begin
     String(FCompilerVersion.Version) + SNewLine;
   if FCompilerVersion.Title <> 'Inno Setup' then
     S := S + (SNewLine + 'Based on Inno Setup' + SNewLine);
-  S := S + ('Copyright (C) 1997-2022 Jordan Russell' + SNewLine +
-    'Portions Copyright (C) 2000-2022 Martijn Laan' + SNewLine +
+  S := S + ('Copyright (C) 1997-2024 Jordan Russell' + SNewLine +
+    'Portions Copyright (C) 2000-2024 Martijn Laan' + SNewLine +
     'All rights reserved.' + SNewLine2 +
     'Inno Setup home page:' + SNewLine +
     'https://www.innosetup.com/' + SNewLine2 +
@@ -2943,7 +2971,8 @@ var
 begin
   MemoIsReadOnly := FActiveMemo.ReadOnly;
   TGenerateGUID.Enabled := not MemoIsReadOnly;
-  TInsertMsgBox.Enabled := not MemoIsReadOnly;
+  TMsgBoxDesigner.Enabled := not MemoIsReadOnly;
+  TFilesDesigner.Enabled := not MemoIsReadOnly;
 end;
 
 procedure TCompileForm.TAddRemoveProgramsClick(Sender: TObject);
@@ -2958,11 +2987,16 @@ begin
     FActiveMemo.SelText := GenerateGuid;
 end;
 
-procedure TCompileForm.TInsertMsgBoxClick(Sender: TObject);
+procedure TCompileForm.TMsgBoxDesignerClick(Sender: TObject);
 var
-  MsgBoxForm: TMBDForm;
+  MsgBoxForm: TMsgBoxDesignerForm;
 begin
-  MsgBoxForm := TMBDForm.Create(Application);
+  if (FMemosStyler.GetSectionFromLineState(FActiveMemo.Lines.State[FActiveMemo.CaretLine]) <> scCode) and
+     (MsgBox('The generated Pascal script will be inserted into the editor at the cursor position, but the cursor is not in the [Code] section. Continue anyway?',
+      SCompilerFormCaption, mbConfirmation, MB_YESNO) = IDNO) then
+    Exit;
+
+  MsgBoxForm := TMsgBoxDesignerForm.Create(Application);
   try
     if MsgBoxForm.ShowModal = mrOk then
       FActiveMemo.SelText := MsgBoxForm.Text;
@@ -2971,6 +3005,26 @@ begin
   end;
 end;
 
+procedure TCompileForm.TFilesDesignerClick(Sender: TObject);
+var
+  FilesDesignerForm: TFilesDesignerForm;
+begin
+  if (FMemosStyler.GetSectionFromLineState(FActiveMemo.Lines.State[FActiveMemo.CaretLine]) <> scFiles) and
+     (MsgBox('The generated script will be inserted into the editor at the start of the current line, but the cursor is not in the [Files] section. Continue anyway?',
+      SCompilerFormCaption, mbConfirmation, MB_YESNO) = IDNO) then
+    Exit;
+
+  FilesDesignerForm := TFilesDesignerForm.Create(Application);
+  try
+    if FilesDesignerForm.ShowModal = mrOk then begin
+      FActiveMemo.CaretColumn := 0;
+      FActiveMemo.SelText := FilesDesignerForm.Text;
+    end;
+  finally
+    FilesDesignerForm.Free;
+  end;
+end;
+
 procedure TCompileForm.TSignToolsClick(Sender: TObject);
 var
   SignToolsForm: TSignToolsForm;

+ 8 - 10
Projects/CompFunc.pas

@@ -2,7 +2,7 @@ unit CompFunc;
 
 {
   Inno Setup
-  Copyright (C) 1997-2020 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -11,16 +11,12 @@ unit CompFunc;
 
 {$I VERSION.INC}
 
-{$IFDEF IS_D6}
-{$WARN SYMBOL_PLATFORM OFF}
-{$ENDIF}
-
 interface
 
 uses
   Windows,
   Classes, Forms, Dialogs, Menus, StdCtrls,
-  ScintEdit, ModernColors;
+  ScintEdit, CompScintEdit, ModernColors;
 
 const
   MRUListMaxCount = 10;
@@ -52,7 +48,7 @@ procedure SetFakeShortCutText(const MenuItem: TMenuItem; const S: String);
 procedure SetFakeShortCut(const MenuItem: TMenuItem; const Key: Word;
   const Shift: TShiftState);
 procedure SaveTextToFile(const Filename: String;
-  const S: String; const ForceUTF8Encoding: Boolean);
+  const S: String; const SaveEncoding: TSaveEncoding);
 procedure AddLines(const ListBox: TListBox; const S: String; const AObject: TObject; const LineBreaks: Boolean; const Prefix: TAddLinesPrefix; const PrefixParam: Cardinal);
 procedure SetLowPriority(ALowPriority: Boolean; var SavePriorityClass: DWORD);
 function GetHelpFile: String;
@@ -321,14 +317,14 @@ begin
 end;
 
 procedure SaveTextToFile(const Filename: String;
-  const S: String; const ForceUTF8Encoding: Boolean);
+  const S: String; const SaveEncoding: TSaveEncoding);
 var
   AnsiMode: Boolean;
   AnsiStr: AnsiString;
   F: TTextFileWriter;
 begin
   AnsiMode := False;
-  if not ForceUTF8Encoding then begin
+  if SaveEncoding = seAuto then begin
     AnsiStr := AnsiString(S);
     if S = String(AnsiStr) then
       AnsiMode := True;
@@ -338,8 +334,10 @@ begin
   try
     if AnsiMode then
       F.WriteAnsi(AnsiStr)
-    else
+    else begin
+      F.UTF8NoPreamble := SaveEncoding = seUTF8NoPreamble;
       F.Write(S);
+    end;
   finally
     F.Free;
   end;

+ 2 - 2
Projects/CompMessageBoxDesigner.dfm → Projects/CompMsgBoxDesigner.dfm

@@ -1,8 +1,8 @@
-object MBDForm: TMBDForm
+object MsgBoxDesignerForm: TMsgBoxDesignerForm
   Left = 0
   Top = 0
   BorderStyle = bsDialog
-  Caption = 'MessageBox Designer'
+  Caption = 'MsgBox/TaskDialogMsgBox Designer'
   ClientHeight = 380
   ClientWidth = 548
   Color = clBtnFace

+ 23 - 23
Projects/CompMessageBoxDesigner.pas → Projects/CompMsgBoxDesigner.pas

@@ -1,4 +1,4 @@
-unit CompMessageBoxDesigner;
+unit CompMsgBoxDesigner;
 
 {
   Inno Setup
@@ -18,7 +18,7 @@ uses
   UIStateForm, StdCtrls, ExtCtrls, NewStaticText, ComCtrls, pngimage;
 
 type
-  TMBDForm = class(TUIStateForm)
+  TMsgBoxDesignerForm = class(TUIStateForm)
     IMGmbInformation: TImage;
     IMGmbConfirmation: TImage;
     IMGmbError: TImage;
@@ -114,7 +114,7 @@ uses
 
 {$R *.DFM}
 
-procedure TMBDForm.FormCreate(Sender: TObject);
+procedure TMsgBoxDesignerForm.FormCreate(Sender: TObject);
 begin
   InitFormFont(Self);
 
@@ -141,7 +141,7 @@ begin
   Button2Label.Visible := False;
 end;
 
-procedure TMBDForm.rbMB_OKClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rbMB_OKClick(Sender: TObject);
 begin
   cb_IDOK.Checked := False;
   cb_IDCANCEL.Checked := False;
@@ -201,7 +201,7 @@ begin
   end;
 end;
 
-procedure TMBDForm.rbMB_YESNOClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rbMB_YESNOClick(Sender: TObject);
 begin
   cb_IDOK.Checked := False;
   cb_IDCANCEL.Checked := False;
@@ -264,7 +264,7 @@ begin
   end;
 end;
 
-procedure TMBDForm.rbMB_OKCANCELClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rbMB_OKCANCELClick(Sender: TObject);
 begin
   cb_IDOK.Checked := False;
   cb_IDCANCEL.Checked := False;
@@ -327,7 +327,7 @@ begin
   end;
 end;
 
-procedure TMBDForm.rbMB_RETRYCANCELClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rbMB_RETRYCANCELClick(Sender: TObject);
 begin
   cb_IDOK.Checked := False;
   cb_IDCANCEL.Checked := False;
@@ -390,7 +390,7 @@ begin
   end;
 end;
 
-procedure TMBDForm.rbMB_YESNOCANCELClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rbMB_YESNOCANCELClick(Sender: TObject);
 begin
   cb_IDOK.Checked := False;
   cb_IDCANCEL.Checked := False;
@@ -453,7 +453,7 @@ begin
   end;
 end;
 
-procedure TMBDForm.rbMB_ABORTRETRYIGNOREClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rbMB_ABORTRETRYIGNOREClick(Sender: TObject);
 begin
   cb_IDOK.Checked := False;
   cb_IDCANCEL.Checked := False;
@@ -516,12 +516,12 @@ begin
   end;
 end;
 
-procedure TMBDForm.UpDown1Changing(Sender: TObject; var AllowChange: Boolean);
+procedure TMsgBoxDesignerForm.UpDown1Changing(Sender: TObject; var AllowChange: Boolean);
 begin
    AllowChange := True;
 end;
 
-procedure TMBDForm.cb_MsgBoxClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.cb_MsgBoxClick(Sender: TObject);
 begin
    IMGmbConfirmation.Visible := True;
    cb_MB_SETFOREGROUND.Enabled := True;
@@ -574,7 +574,7 @@ begin
    rbMB_OKClick(Self);
 end;
 
-procedure TMBDForm.cb_SuppressibleClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.cb_SuppressibleClick(Sender: TObject);
 begin
    if cb_Suppressible.Checked then begin
      cb_DefIDOK.Visible := True;
@@ -617,7 +617,7 @@ begin
    if rbMB_ABORTRETRYIGNORE.Checked then rbMB_ABORTRETRYIGNOREClick(Self);
 end;
 
-procedure TMBDForm.cb_TaskDialogMsgBoxClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.cb_TaskDialogMsgBoxClick(Sender: TObject);
 begin
    IMGmbConfirmation.Visible := False;
    cb_MB_SETFOREGROUND.Enabled := False;
@@ -681,13 +681,13 @@ begin
    rbMB_OKClick(Self);
 end;
 
-procedure TMBDForm.rb_IDOKClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rb_IDOKClick(Sender: TObject);
 begin
    if rb_IDOK.Checked then
       rb_IDCANCEL.Checked := False;
 end;
 
-procedure TMBDForm.rb_IDCANCELClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rb_IDCANCELClick(Sender: TObject);
 begin
    if rb_IDCANCEL.Checked then begin
       rb_IDOK.Checked := False;
@@ -697,7 +697,7 @@ begin
    end;
 end;
 
-procedure TMBDForm.rb_IDYESClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rb_IDYESClick(Sender: TObject);
 begin
    if rb_IDYES.Checked then begin
       rb_IDNO.Checked := False;
@@ -705,7 +705,7 @@ begin
    end;
 end;
 
-procedure TMBDForm.rb_IDNOClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rb_IDNOClick(Sender: TObject);
 begin
    if rb_IDNO.Checked then begin
       rb_IDYES.Checked := False;
@@ -713,7 +713,7 @@ begin
    end;
 end;
 
-procedure TMBDForm.rb_IDRETRYClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rb_IDRETRYClick(Sender: TObject);
 begin
    if rb_IDRETRY.Checked then begin
       rb_IDCANCEL.Checked := False;
@@ -722,7 +722,7 @@ begin
    end;
 end;
 
-procedure TMBDForm.rb_IDIGNOREClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rb_IDIGNOREClick(Sender: TObject);
 begin
    if rb_IDIGNORE.Checked then begin
       rb_IDABORT.Checked := False;
@@ -730,7 +730,7 @@ begin
    end;
 end;
 
-procedure TMBDForm.rb_IDABORTClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.rb_IDABORTClick(Sender: TObject);
 begin
    if rb_IDABORT.Checked then begin
       rb_IDIGNORE.Checked := False;
@@ -738,7 +738,7 @@ begin
    end;
 end;
 
-procedure TMBDForm.MBDButtonPreviewClick(Sender: TObject);
+procedure TMsgBoxDesignerForm.MBDButtonPreviewClick(Sender: TObject);
 var
   ButtonsBtn : Cardinal;
   TypeIcon : TMsgBoxType;
@@ -834,7 +834,7 @@ begin
   end;
 end;
 
-procedure TMBDForm.MSGTextKeyPress(Sender: TObject; var Key: Char);
+procedure TMsgBoxDesignerForm.MSGTextKeyPress(Sender: TObject; var Key: Char);
 begin
   if Key = #27 then begin
     MBDButtonCancel.Click;
@@ -842,7 +842,7 @@ begin
   end;
 end;
 
-function TMBDForm.GetText: String;
+function TMsgBoxDesignerForm.GetText: String;
 
    { MsgBox / SuppressibleMsgBox }
    function TextMsg(M: Integer; a, b, c, d, e, f: String): String;

+ 4 - 3
Projects/CompScintEdit.pas

@@ -2,7 +2,7 @@ unit CompScintEdit;
 
 {
   Inno Setup
-  Copyright (C) 1997-2020 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -37,6 +37,7 @@ type
   TLineState = (lnUnknown, lnHasEntry, lnEntryProcessed);
   PLineStateArray = ^TLineStateArray;
   TLineStateArray = array[0..0] of TLineState;
+  TSaveEncoding = (seAuto, seUTF8, seUTF8NoPreamble);
 
   TCompScintEdit = class(TScintEdit)
   private
@@ -56,7 +57,7 @@ type
     FCompilerFileIndex: Integer;
     FFilename: String;
     FFileLastWriteTime: TFileTime;
-    FSaveInUTF8Encoding: Boolean;
+    FSaveEncoding: TSaveEncoding;
   public
     ErrorLine, ErrorCaretPosition: Integer;
     StepLine: Integer;
@@ -68,7 +69,7 @@ type
     property Filename: String read FFileName write FFilename;
     property CompilerFileIndex: Integer read FCompilerFileIndex write FCompilerFileIndex;
     property FileLastWriteTime: TFileTime read FFileLastWriteTime write FFileLastWriteTime;
-    property SaveInUTF8Encoding: Boolean read FSaveInUTF8Encoding write FSaveInUTF8Encoding;
+    property SaveEncoding: TSaveEncoding read FSaveEncoding write FSaveEncoding;
   end;
 
 implementation

+ 1 - 8
Projects/CompWizard.dfm

@@ -521,9 +521,6 @@ object WizardForm: TWizardForm
             Anchors = [akLeft, akTop, akRight, akBottom]
             ItemHeight = 13
             TabOrder = 6
-            OnClick = AppFilesListBoxClick
-            OnDblClick = AppFilesListBoxDblClick
-            OnDropFile = AppFilesListBoxDropFile
           end
           object AppFilesAddButton: TButton
             Left = 360
@@ -533,7 +530,6 @@ object WizardForm: TWizardForm
             Anchors = [akTop, akRight]
             Caption = '&Add file(s)...'
             TabOrder = 7
-            OnClick = AppFilesAddButtonClick
           end
           object AppFilesEditButton: TButton
             Left = 360
@@ -541,9 +537,8 @@ object WizardForm: TWizardForm
             Width = 89
             Height = 23
             Anchors = [akTop, akRight]
-            Caption = '&Edit...'
+            Caption = '&Parameters...'
             TabOrder = 9
-            OnClick = AppFilesEditButtonClick
           end
           object AppFilesRemoveButton: TButton
             Left = 360
@@ -553,7 +548,6 @@ object WizardForm: TWizardForm
             Anchors = [akTop, akRight]
             Caption = 'Remo&ve'
             TabOrder = 10
-            OnClick = AppFilesRemoveButtonClick
           end
           object AppExeEdit: TEdit
             Left = 36
@@ -590,7 +584,6 @@ object WizardForm: TWizardForm
             Anchors = [akTop, akRight]
             Caption = 'Add fol&der...'
             TabOrder = 8
-            OnClick = AppFilesAddDirButtonClick
           end
           object NoAppExeCheck: TCheckBox
             Left = 36

+ 9 - 162
Projects/CompWizard.pas

@@ -14,8 +14,9 @@ interface
 {$I VERSION.INC}
 
 uses
-  Windows, Forms, Classes, Graphics, StdCtrls, ExtCtrls, Controls, Dialogs,
-  UIStateForm, NewStaticText, DropListBox, NewCheckListBox, NewNotebook;
+  Windows, Forms, Classes, Graphics, StdCtrls, ExtCtrls, Controls, Dialogs, pngimage,
+  UIStateForm, NewStaticText, DropListBox, NewCheckListBox, NewNotebook,
+  CompWizardFilesHelper;
 
 type
   TWizardPage = (wpWelcome, wpAppInfo, wpAppDir, wpAppFiles, wpAppAssoc, wpAppIcons,
@@ -140,15 +141,7 @@ type
     procedure AppRootDirComboBoxChange(Sender: TObject);
     procedure NotCreateAppDirCheckClick(Sender: TObject);
     procedure AppExeButtonClick(Sender: TObject);
-    procedure AppFilesListBoxClick(Sender: TObject);
-    procedure AppFilesListBoxDblClick(Sender: TObject);
-    procedure AppFilesAddButtonClick(Sender: TObject);
     procedure NotDisableProgramGroupPageCheckClick(Sender: TObject);
-    procedure AppFilesEditButtonClick(Sender: TObject);
-    procedure AppFilesRemoveButtonClick(Sender: TObject);
-    procedure AppFilesAddDirButtonClick(Sender: TObject);
-    procedure AppFilesListBoxDropFile(Sender: TDropListBox;
-      const FileName: String);
     procedure PasswordEditChange(Sender: TObject);
     procedure OutputDirButtonClick(Sender: TObject);
     procedure AllLanguagesButtonClick(Sender: TObject);
@@ -160,7 +153,7 @@ type
   private
     CurPage: TWizardPage;
     FWizardName: String;
-    FWizardFiles: TList;
+    FFilesHelper: TWizardFormFilesHelper;
     FLanguages: TStringList;
     FResult: TWizardFormResult;
     FResultScript: String;
@@ -168,9 +161,6 @@ type
     procedure SetWizardName(const WizardName: String);
     procedure CurPageChanged;
     function SkipCurPage: Boolean;
-    procedure AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
-    procedure UpdateWizardFiles;
-    procedure UpdateWizardFilesButtons;
     procedure UpdateAppExeControls;
     procedure UpdateAppAssocControls;
     procedure UpdateAppIconsControls;
@@ -284,7 +274,9 @@ begin
   FResult := wrNone;
 
   FWizardName := SWizardDefaultName;
-  FWizardFiles := TList.Create;
+  FFilesHelper := TWizardFormFilesHelper.Create(Handle,
+    NotCreateAppDirCheck, AppFilesListBox, AppFilesAddButton, AppFilesAddDirButton,
+    AppFilesEditButton, AppFilesRemoveButton);
 
   FLanguages := TStringList.Create;
   FLanguages.Sorted := True;
@@ -344,7 +336,6 @@ begin
   { AppFiles }
   AppExeEdit.Text := PathExtractPath(NewParamStr(0)) + 'Examples\MyProg.exe';
   AppExeRunCheck.Checked := True;
-  UpdateWizardFilesButtons;
 
   { AppAssoc }
   CreateAssocCheck.Checked := True;
@@ -396,13 +387,9 @@ begin
 end;
 
 procedure TWizardForm.FormDestroy(Sender: TObject);
-var
-  I: Integer;
 begin
   FLanguages.Free;
-  for I := 0 to FWizardFiles.Count-1 do
-    Dispose(FWizardFiles[i]);
-  FWizardFiles.Free;
+  FFilesHelper.Free;
 end;
 
 { --- }
@@ -594,47 +581,6 @@ end;
 
 {---}
 
-procedure TWizardForm.AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
-var
-  WizardFile: PWizardFile;
-begin
-  New(WizardFile);
-  WizardFile.Source := Source;
-  WizardFile.RecurseSubDirs := RecurseSubDirs;
-  WizardFile.CreateAllSubDirs := CreateAllSubDirs;
-  WizardFile.DestRootDirIsConstant := True;
-  if not NotCreateAppDirCheck.Checked then
-    WizardFile.DestRootDir := '{app}'
-  else
-    WizardFile.DestRootDir := '{win}';
-  WizardFile.DestSubDir := '';
-  FWizardFiles.Add(WizardFile);
-end;
-
-procedure TWizardForm.UpdateWizardFiles;
-var
-  WizardFile: PWizardFile;
-  I: Integer;
-begin
-  AppFilesListBox.Items.BeginUpdate;
-  AppFilesListBox.Items.Clear;
-  for I := 0 to FWizardFiles.Count-1 do begin
-    WizardFile := FWizardFiles[i];
-    AppFilesListBox.Items.Add(WizardFile.Source);
-  end;
-  AppFilesListBox.Items.EndUpdate;
-  UpdateHorizontalExtent(AppFilesListBox);
-end;
-
-procedure TWizardForm.UpdateWizardFilesButtons;
-var
-  Enabled: Boolean;
-begin
-  Enabled := AppFilesListBox.ItemIndex >= 0;
-  AppFilesEditButton.Enabled := Enabled;
-  AppFilesRemoveButton.Enabled := Enabled;
-end;
-
 procedure TWizardForm.UpdateAppExeControls;
 var
   Enabled: Boolean;
@@ -761,96 +707,6 @@ begin
   UpdateAppIconsControls;
 end;
 
-procedure TWizardForm.AppFilesListBoxClick(Sender: TObject);
-begin
-  UpdateWizardFilesButtons;
-end;
-
-procedure TWizardForm.AppFilesListBoxDblClick(Sender: TObject);
-begin
-  if AppFilesEditButton.Enabled then
-    AppFilesEditButton.Click;
-end;
-
-procedure TWizardForm.AppFilesAddButtonClick(Sender: TObject);
-var
-  FileList: TStringList;
-  I: Integer;
-begin
-  FileList := TStringList.Create;
-  try
-    if NewGetOpenFileNameMulti('', FileList, '', SWizardAllFilesFilter, '', Handle) then begin
-      FileList.Sort;
-      for I := 0 to FileList.Count-1 do
-        AddWizardFile(FileList[I], False, False);
-      UpdateWizardFiles;
-    end;
-  finally
-    FileList.Free;
-  end;
-end;
-
-procedure TWizardForm.AppFilesAddDirButtonClick(Sender: TObject);
-var
-  Path: String;
-  Recurse: Boolean;
-begin
-  Path := '';
-  if BrowseForFolder(SWizardAppFiles3, Path, Handle, False) then begin
-    case MsgBox(Format(SWizardAppFilesSubDirsMessage, [Path]), '', mbConfirmation, MB_YESNOCANCEL) of
-      IDYES: Recurse := True;
-      IDNO: Recurse := False;
-    else
-      Exit;
-    end;
-    AddWizardFile(AddBackslash(Path) + '*', Recurse, Recurse);
-    UpdateWizardFiles;
-  end;
-end;
-
-procedure TWizardForm.AppFilesListBoxDropFile(Sender: TDropListBox;
-  const FileName: String);
-begin
-  if DirExists(FileName) then
-    AddWizardFile(AddBackslash(FileName) + '*', True, True)
-  else
-    AddWizardFile(FileName, False, False);
-  UpdateWizardFiles;
-  UpdateWizardFilesButtons;
-end;
-
-procedure TWizardForm.AppFilesEditButtonClick(Sender: TObject);
-var
-  WizardFileForm: TWizardFileForm;
-  Index: Integer;
-begin
-  WizardFileForm := TWizardFileForm.Create(Application);
-  try
-    Index := AppFilesListBox.ItemIndex;
-    WizardFileForm.AllowAppDestRootDir := not NotCreateAppDirCheck.Checked;
-    WizardFileForm.WizardFile := FWizardFiles[Index];
-    if WizardFileForm.ShowModal = mrOK then begin
-      UpdateWizardFiles;
-      AppFilesListBox.ItemIndex := Index;
-      AppFilesListBox.TopIndex := Index;
-      UpdateWizardFilesButtons;
-    end;
-  finally
-    WizardFileForm.Free;
-  end;
-end;
-
-procedure TWizardForm.AppFilesRemoveButtonClick(Sender: TObject);
-var
-  I: Integer;
-begin
-  I := AppFilesListBox.ItemIndex;
-  Dispose(FWizardFiles[I]);
-  FWizardFiles.Delete(I);
-  UpdateWizardFiles;
-  UpdateWizardFilesButtons;
-end;
-
 procedure TWizardForm.CreateAssocCheckClick(Sender: TObject);
 begin
   UpdateAppAssocControls;
@@ -939,7 +795,6 @@ end;
 procedure TWizardForm.GenerateScript;
 var
   Script, ISPP, Setup, Languages, Tasks, Files, Registry, INI, Icons, Run, UninstallDelete: String;
-  WizardFile: PWizardFile;
   I: Integer;
   AppExeName, AppName, AppAmpEscapedName, AppAssocKey, LanguageName, LanguageMessagesFile: String;
 begin
@@ -1054,15 +909,7 @@ begin
       Registry := Registry + 'Root: HKA; Subkey: "Software\Classes\Applications\' + AppExeName + '\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: ""' + SNewLine;
     end;
 
-    for I := 0 to FWizardFiles.Count-1 do begin
-      WizardFile := FWizardFiles[I];
-      Files := Files + 'Source: "' + WizardFile.Source + '"; DestDir: "' + RemoveBackslashUnlessRoot(AddBackslash(WizardFile.DestRootDir) + WizardFile.DestSubDir) + '"; Flags: ignoreversion';
-      if WizardFile.RecurseSubDirs then
-        Files := Files + ' recursesubdirs';
-      if WizardFile.CreateAllSubDirs then
-        Files := Files + ' createallsubdirs';
-      Files := Files + SNewLine;
-    end;
+    FFilesHelper.AddScript(Files);
 
     { AppGroup }
     if not NotCreateAppDirCheck.Checked then begin

+ 229 - 0
Projects/CompWizardFilesHelper.pas

@@ -0,0 +1,229 @@
+unit CompWizardFilesHelper;
+
+interface
+
+uses
+  Windows, Classes, StdCtrls,
+  DropListBox;
+
+type
+  TWizardFormFilesHelper = class
+    private
+      FWizardFiles: TList;
+      FHandle: HWND;
+      FNotCreateAppDirCheck: TCheckBox;
+      FFilesListBox: TDropListBox;
+      FEditButton: TButton;
+      FRemoveButton: TButton;
+      procedure AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
+      function GetWizardFilesCount: Integer;
+      procedure UpdateWizardFiles;
+      procedure UpdateWizardFilesButtons;
+      procedure FilesListBoxClick(Sender: TObject);
+      procedure FilesListBoxDblClick(Sender: TObject);
+      procedure FilesListBoxDropFile(Sender: TDropListBox; const FileName: String);
+      procedure AddButtonClick(Sender: TObject);
+      procedure AddDirButtonClick(Sender: TObject);
+      procedure EditButtonClick(Sender: TObject);
+      procedure RemoveButtonClick(Sender: TObject);
+    public
+      constructor Create(const Handle: HWND;
+        const NotCreateAppDirCheck: TCheckBox; const FilesListBox: TDropListBox;
+        const AddButton, AddDirButton, EditButton, RemoveButton: TButton);
+      destructor Destroy; override;
+      procedure AddScript(var Files: String);
+      property FilesCount: Integer read GetWizardFilesCount;
+  end;
+
+implementation
+
+uses
+  SysUtils, Forms, UITypes,
+  CmnFunc, CmnFunc2, BrowseFunc, PathFunc,
+  CompMsgs, CompWizardFile;
+
+constructor TWizardFormFilesHelper.Create(const Handle: HWND;
+  const NotCreateAppDirCheck: TCheckBox; const FilesListBox: TDropListBox;
+  const AddButton, AddDirButton, EditButton, RemoveButton: TButton);
+begin
+  inherited Create;
+
+  FWizardFiles := TList.Create;
+
+  FHandle := Handle;
+  FNotCreateAppDirCheck := NotCreateAppDirCheck;
+  FFilesListBox := FilesListBox;
+  FEditButton := EditButton;
+  FRemoveButton := RemoveButton;
+
+  FilesListBox.OnClick := FilesListBoxClick;
+  FilesListBox.OnDblClick := FilesListBoxDblClick;
+  FilesListBox.OnDropFile :=   FilesListBoxDropFile;
+  AddButton.OnClick := AddButtonClick;
+  AddDirButton.OnClick := AddDirButtonClick;
+  EditButton.OnClick := EditButtonClick;
+  RemoveButton.OnClick := RemoveButtonClick;
+
+  UpdateWizardFilesButtons;
+end;
+
+destructor TWizardFormFilesHelper.Destroy;
+begin
+  for var I := 0 to FWizardFiles.Count-1 do
+    Dispose(FWizardFiles[i]);
+  FWizardFiles.Free;
+end;
+
+procedure TWizardFormFilesHelper.AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
+var
+  WizardFile: PWizardFile;
+begin
+  New(WizardFile);
+  WizardFile.Source := Source;
+  WizardFile.RecurseSubDirs := RecurseSubDirs;
+  WizardFile.CreateAllSubDirs := CreateAllSubDirs;
+  WizardFile.DestRootDirIsConstant := True;
+  if not FNotCreateAppDirCheck.Checked then
+    WizardFile.DestRootDir := '{app}'
+  else
+    WizardFile.DestRootDir := '{win}';
+  WizardFile.DestSubDir := '';
+  FWizardFiles.Add(WizardFile);
+end;
+
+function TWizardFormFilesHelper.GetWizardFilesCount: Integer;
+begin
+  Result := FWizardFiles.Count;
+end;
+
+procedure TWizardFormFilesHelper.UpdateWizardFiles;
+var
+  WizardFile: PWizardFile;
+  I: Integer;
+begin
+  FFilesListBox.Items.BeginUpdate;
+  FFilesListBox.Items.Clear;
+  for I := 0 to FWizardFiles.Count-1 do begin
+    WizardFile := FWizardFiles[i];
+    FFilesListBox.Items.Add(WizardFile.Source);
+  end;
+  FFilesListBox.Items.EndUpdate;
+  UpdateHorizontalExtent(FFilesListBox);
+end;
+
+procedure TWizardFormFilesHelper.UpdateWizardFilesButtons;
+var
+  Enabled: Boolean;
+begin
+  Enabled := FFilesListBox.ItemIndex >= 0;
+  FEditButton.Enabled := Enabled;
+  FRemoveButton.Enabled := Enabled;
+end;
+
+procedure TWizardFormFilesHelper.FilesListBoxClick(Sender: TObject);
+begin
+  UpdateWizardFilesButtons;
+end;
+
+procedure TWizardFormFilesHelper.FilesListBoxDblClick(Sender: TObject);
+begin
+  if FEditButton.Enabled then
+    FEditButton.Click;
+end;
+
+procedure TWizardFormFilesHelper.FilesListBoxDropFile(Sender: TDropListBox;
+  const FileName: String);
+begin
+  if DirExists(FileName) then
+    AddWizardFile(AddBackslash(FileName) + '*', True, True)
+  else
+    AddWizardFile(FileName, False, False);
+  UpdateWizardFiles;
+  UpdateWizardFilesButtons;
+end;
+
+procedure TWizardFormFilesHelper.AddButtonClick(Sender: TObject);
+var
+  FileList: TStringList;
+  I: Integer;
+begin
+  FileList := TStringList.Create;
+  try
+    if NewGetOpenFileNameMulti('', FileList, '', SWizardAllFilesFilter, '', FHandle) then begin
+      FileList.Sort;
+      for I := 0 to FileList.Count-1 do
+        AddWizardFile(FileList[I], False, False);
+      UpdateWizardFiles;
+    end;
+  finally
+    FileList.Free;
+  end
+end;
+
+procedure TWizardFormFilesHelper.AddDirButtonClick(Sender: TObject);
+var
+  Path: String;
+  Recurse: Boolean;
+begin
+  Path := '';
+  if BrowseForFolder(SWizardAppFiles3, Path, FHandle, False) then begin
+    case MsgBox(Format(SWizardAppFilesSubDirsMessage, [Path]), '', mbConfirmation, MB_YESNOCANCEL) of
+      IDYES: Recurse := True;
+      IDNO: Recurse := False;
+    else
+      Exit;
+    end;
+    AddWizardFile(AddBackslash(Path) + '*', Recurse, Recurse);
+    UpdateWizardFiles;
+  end;
+end;
+
+procedure TWizardFormFilesHelper.EditButtonClick(Sender: TObject);
+var
+  WizardFileForm: TWizardFileForm;
+  Index: Integer;
+begin
+  WizardFileForm := TWizardFileForm.Create(Application);
+  try
+    Index := FFilesListBox.ItemIndex;
+    WizardFileForm.AllowAppDestRootDir := not FNotCreateAppDirCheck.Checked;
+    WizardFileForm.WizardFile := FWizardFiles[Index];
+    if WizardFileForm.ShowModal = mrOk then begin
+      UpdateWizardFiles;
+      FFilesListBox.ItemIndex := Index;
+      FFilesListBox.TopIndex := Index;
+      UpdateWizardFilesButtons;
+    end;
+  finally
+    WizardFileForm.Free;
+  end;
+end;
+
+procedure TWizardFormFilesHelper.RemoveButtonClick(Sender: TObject);
+var
+  I: Integer;
+begin
+  I := FFilesListBox.ItemIndex;
+    Dispose(FWizardFiles[I]);
+  FWizardFiles.Delete(I);
+  UpdateWizardFiles;
+  UpdateWizardFilesButtons;
+end;
+
+procedure TWizardFormFilesHelper.AddScript(var Files: String);
+var
+  WizardFile: PWizardFile;
+  I: Integer;
+begin
+  for I := 0 to FWizardFiles.Count-1 do begin
+    WizardFile := FWizardFiles[I];
+    Files := Files + 'Source: "' + WizardFile.Source + '"; DestDir: "' + RemoveBackslashUnlessRoot(AddBackslash(WizardFile.DestRootDir) + WizardFile.DestSubDir) + '"; Flags: ignoreversion';
+    if WizardFile.RecurseSubDirs then
+      Files := Files + ' recursesubdirs';
+    if WizardFile.CreateAllSubDirs then
+      Files := Files + ' createallsubdirs';
+    Files := Files + SNewLine;
+  end;
+end;
+
+end.

+ 0 - 0
Projects/CompDocIcon.res → Projects/Compil32.docicon.res


+ 0 - 75
Projects/Compil32.dof

@@ -1,75 +0,0 @@
-[Compiler]
-A=1
-B=0
-C=0
-D=1
-E=0
-F=0
-G=1
-H=1
-I=1
-J=1
-K=0
-L=1
-M=0
-N=1
-O=1
-P=1
-Q=0
-R=0
-S=0
-T=0
-U=0
-V=1
-W=0
-X=1
-Y=0
-Z=1
-ShowHints=1
-ShowWarnings=1
-UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-[Linker]
-MapFile=0
-OutputObjs=0
-ConsoleApp=1
-DebugInfo=0
-MinStackSize=16384
-MaxStackSize=1048576
-ImageBase=4194304
-ExeDescription=
-[Directories]
-OutputDir=
-UnitOutputDir=
-SearchPath=..\components;..\components\ps\source
-Packages=VCL30;vclx30;VclSmp30;vcldb30;vcldbx30
-Conditionals=PS_MINIVCL;PS_NOWIDESTRING;PS_NOINT64;PS_NOGRAPHCONST
-DebugSourceDirs=
-UsePackages=0
-[Parameters]
-RunParams=
-HostApplication=
-[Version Info]
-IncludeVerInfo=1
-AutoIncBuild=0
-MajorVer=0
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=0
-Locale=1033
-CodePage=1252
-[Version Info Keys]
-CompanyName=Jordan Russell
-FileDescription=Inno Setup Compiler
-FileVersion=0.0.0.0
-InternalName=
-LegalCopyright=Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.
-LegalTrademarks=
-OriginalFilename=
-ProductName=Inno Setup
-ProductVersion=0.0.0.0
-Comments=Inno Setup home page: http://www.innosetup.com

+ 13 - 11
Projects/Compil32.dpr

@@ -9,11 +9,6 @@ program Compil32;
   Compiler
 }
 
-{$SetPEFlags 1} 
-{$SETPEOSVERSION 6.0}
-{$SETPESUBSYSVERSION 6.0}
-{$WEAKLINKRTTI ON}
-
 uses
   SafeDLLPath in 'SafeDLLPath.pas',
   Windows,
@@ -41,12 +36,19 @@ uses
   ScintEdit in '..\Components\ScintEdit.pas',
   ScintStylerInnoSetup in '..\Components\ScintStylerInnoSetup.pas',
   ModernColors in '..\Components\ModernColors.pas',
-  CompMessageBoxDesigner in 'CompMessageBoxDesigner.pas' {MBDForm},
-  CompScintEdit in 'CompScintEdit.pas';
+  CompMsgBoxDesigner in 'CompMsgBoxDesigner.pas' {MsgBoxDesignerForm},
+  CompScintEdit in 'CompScintEdit.pas',
+  CompFilesDesigner in 'CompFilesDesigner.pas' {FilesDesignerForm},
+  CompWizardFilesHelper in 'CompWizardFilesHelper.pas';
 
-{$R *.res}
+{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
+{$SETPEOSVERSION 6.0}
+{$SETPESUBSYSVERSION 6.0}
+{$WEAKLINKRTTI ON}
+
+{$R Compil32.docicon.res}
 {$R Compil32.manifest.res}
-{$R CompDocIcon.res}
+{$R Compil32.versionandicon.res}
 
 procedure SetAppUserModelID;
 var
@@ -89,7 +91,7 @@ begin
       if CommandLineCompile then
         CommandLine := '/CC ' + CommandLine;
     end;
-    
+
     if Length(CommandLine) > RESTART_MAX_CMD_LINE then
       CommandLine := '';
 
@@ -109,7 +111,7 @@ const
   MutexName = 'InnoSetupCompilerAppMutex';
 begin
   CreateMutex(MutexName);
-  CreateMutex('Global\' + MutexName);  { don't localize }
+  CreateMutex('Global\' + MutexName); { don't localize }
 end;
 
 var

+ 153 - 150
Projects/Compil32.dproj

@@ -1,150 +1,153 @@
-	<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-		<PropertyGroup>
-			<ProjectGuid>{9F7D921E-50D5-42DB-B7EE-8F08E82FB4F4}</ProjectGuid>
-			<MainSource>Compil32.dpr</MainSource>
-			<Config Condition="'$(Config)'==''">Debug</Config>
-			<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
-			<ProjectVersion>12.0</ProjectVersion>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
-			<Cfg_1>true</Cfg_1>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
-			<Cfg_2>true</Cfg_2>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Base)'!=''">
-			<DCC_DependencyCheckOutputName>Compil32.exe</DCC_DependencyCheckOutputName>
-			<DCC_UnitSearchPath>..\components;..\components\unips\source;ispp;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
-			<DCC_UsePackage>VCL30;vclx30;VclSmp30;vcldb30;vcldbx30</DCC_UsePackage>
-			<DCC_ImageBase>00400000</DCC_ImageBase>
-			<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
-			<DCC_Alignment>1</DCC_Alignment>
-			<DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
-			<DCC_Platform>x86</DCC_Platform>
-			<DCC_K>false</DCC_K>
-			<DCC_F>false</DCC_F>
-			<DCC_S>false</DCC_S>
-			<DCC_N>true</DCC_N>
-			<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
-			<DCC_WriteableConstants>true</DCC_WriteableConstants>
-			<DCC_E>false</DCC_E>
-			<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_1)'!=''">
-			<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
-			<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
-			<DCC_DebugInformation>false</DCC_DebugInformation>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_2)'!=''">
-			<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
-		</PropertyGroup>
-		<ItemGroup>
-			<DelphiCompile Include="Compil32.dpr">
-				<MainSource>MainSource</MainSource>
-			</DelphiCompile>
-			<DCCReference Include="SafeDLLPath.pas"/>
-			<DCCReference Include="CompForm.pas">
-				<Form>CompileForm</Form>
-			</DCCReference>
-			<DCCReference Include="CmnFunc.pas"/>
-			<DCCReference Include="CmnFunc2.pas"/>
-			<DCCReference Include="CompFunc.pas"/>
-			<DCCReference Include="CompMsgs.pas"/>
-			<DCCReference Include="CompInt.pas"/>
-			<DCCReference Include="CompOptions.pas">
-				<Form>OptionsForm</Form>
-			</DCCReference>
-			<DCCReference Include="CompStartup.pas">
-				<Form>StartupForm</Form>
-			</DCCReference>
-			<DCCReference Include="CompWizard.pas">
-				<Form>WizardForm</Form>
-			</DCCReference>
-			<DCCReference Include="CompWizardFile.pas">
-				<Form>WizardFileForm</Form>
-			</DCCReference>
-			<DCCReference Include="CompFileAssoc.pas"/>
-			<DCCReference Include="..\Components\TmSchema.pas"/>
-			<DCCReference Include="..\Components\UxTheme.pas"/>
-			<DCCReference Include="DebugStruct.pas"/>
-			<DCCReference Include="BrowseFunc.pas"/>
-			<DCCReference Include="CompSignTools.pas">
-				<Form>SignToolsForm</Form>
-			</DCCReference>
-			<DCCReference Include="CompInputQueryCombo.pas"/>
-			<DCCReference Include="CompMessageBoxDesigner.pas">
-				<Form>MBDForm</Form>
-			</DCCReference>
-			<DCCReference Include="..\Components\ScintInt.pas"/>
-			<DCCReference Include="..\Components\ScintEdit.pas"/>
-			<DCCReference Include="..\Components\ScintStylerInnoSetup.pas"/>
-			<DCCReference Include="CompScintEdit.pas"/>
-			<BuildConfiguration Include="Base">
-				<Key>Base</Key>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Debug">
-				<Key>Cfg_2</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Release">
-				<Key>Cfg_1</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-		</ItemGroup>
-		<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
-		<ProjectExtensions>
-			<Borland.Personality>Delphi.Personality.12</Borland.Personality>
-			<Borland.ProjectType>VCLApplication</Borland.ProjectType>
-			<BorlandProject>
-				<Delphi.Personality>
-					<Source>
-						<Source Name="MainSource">Compil32.dpr</Source>
-					</Source>
-					<Parameters>
-						<Parameters Name="UseLauncher">False</Parameters>
-						<Parameters Name="LoadAllSymbols">True</Parameters>
-						<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
-					</Parameters>
-					<VersionInfo>
-						<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
-						<VersionInfo Name="AutoIncBuild">False</VersionInfo>
-						<VersionInfo Name="MajorVer">0</VersionInfo>
-						<VersionInfo Name="MinorVer">0</VersionInfo>
-						<VersionInfo Name="Release">0</VersionInfo>
-						<VersionInfo Name="Build">0</VersionInfo>
-						<VersionInfo Name="Debug">False</VersionInfo>
-						<VersionInfo Name="PreRelease">False</VersionInfo>
-						<VersionInfo Name="Special">False</VersionInfo>
-						<VersionInfo Name="Private">False</VersionInfo>
-						<VersionInfo Name="DLL">False</VersionInfo>
-						<VersionInfo Name="Locale">1033</VersionInfo>
-						<VersionInfo Name="CodePage">1252</VersionInfo>
-					</VersionInfo>
-					<VersionInfoKeys>
-						<VersionInfoKeys Name="CompanyName">Jordan Russell</VersionInfoKeys>
-						<VersionInfoKeys Name="FileDescription">Inno Setup Compiler</VersionInfoKeys>
-						<VersionInfoKeys Name="FileVersion">0.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="InternalName"/>
-						<VersionInfoKeys Name="LegalCopyright">Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.</VersionInfoKeys>
-						<VersionInfoKeys Name="LegalTrademarks"/>
-						<VersionInfoKeys Name="OriginalFilename"/>
-						<VersionInfoKeys Name="ProductName">Inno Setup</VersionInfoKeys>
-						<VersionInfoKeys Name="ProductVersion">0.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="Comments">Inno Setup home page: http://www.innosetup.com</VersionInfoKeys>
-					</VersionInfoKeys>
-					<Excluded_Packages>
-						<Excluded_Packages Name="$(BDS)\bin\dcloffice2k120.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
-						<Excluded_Packages Name="$(BDS)\bin\dclofficexp120.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
-					</Excluded_Packages>
-				</Delphi.Personality>
-			</BorlandProject>
-			<ProjectFileVersion>12</ProjectFileVersion>
-		</ProjectExtensions>
-	</Project>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{AA47247E-6E7B-4A22-8740-FB9041C2F93B}</ProjectGuid>
+        <MainSource>Compil32.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <FrameworkType>VCL</FrameworkType>
+        <ProjectVersion>19.5</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <DCC_Alignment>1</DCC_Alignment>
+        <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
+        <DCC_DebugInformation>1</DCC_DebugInformation>
+        <DCC_WriteableConstants>true</DCC_WriteableConstants>
+        <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
+        <DCC_UnitSearchPath>..\Components;..\Components\UniPs\Source;ISPP;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
+        <DCC_UsePackage>VCL30;vclx30;VclSmp30;vcldb30;vcldbx30;$(DCC_UsePackage)</DCC_UsePackage>
+        <DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
+        <SanitizedProjectName>Compil32</SanitizedProjectName>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_MajorVer>0</VerInfo_MajorVer>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=Jordan Russell;FileDescription=Inno Setup Compiler;FileVersion=0.0.0.0;InternalName=;LegalCopyright=Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.;LegalTrademarks=;OriginalFilename=;ProductName=Inno Setup;ProductVersion=0.0.0.0;Comments=Inno Setup home page: http://www.innosetup.com</VerInfo_Keys>
+        <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
+        <DCC_SYMBOL_DEPRECATED>false</DCC_SYMBOL_DEPRECATED>
+        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
+        <DCC_UNSAFE_CAST>false</DCC_UNSAFE_CAST>
+        <DCC_EXPLICIT_STRING_CAST>false</DCC_EXPLICIT_STRING_CAST>
+        <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
+        <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
+        <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_DcuOutput>Dcu\$(MainSource)</DCC_DcuOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>(None)</Manifest_File>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_ExeOutput>..\Files</DCC_ExeOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <Debugger_RunParams>Debug.iss</Debugger_RunParams>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="SafeDLLPath.pas"/>
+        <DCCReference Include="CompForm.pas">
+            <Form>CompileForm</Form>
+        </DCCReference>
+        <DCCReference Include="CmnFunc.pas"/>
+        <DCCReference Include="CmnFunc2.pas"/>
+        <DCCReference Include="CompFunc.pas"/>
+        <DCCReference Include="CompMsgs.pas"/>
+        <DCCReference Include="CompInt.pas"/>
+        <DCCReference Include="CompOptions.pas">
+            <Form>OptionsForm</Form>
+        </DCCReference>
+        <DCCReference Include="CompStartup.pas">
+            <Form>StartupForm</Form>
+        </DCCReference>
+        <DCCReference Include="CompWizard.pas">
+            <Form>WizardForm</Form>
+        </DCCReference>
+        <DCCReference Include="CompWizardFile.pas">
+            <Form>WizardFileForm</Form>
+        </DCCReference>
+        <DCCReference Include="CompFileAssoc.pas"/>
+        <DCCReference Include="..\Components\TmSchema.pas"/>
+        <DCCReference Include="..\Components\UxTheme.pas"/>
+        <DCCReference Include="DebugStruct.pas"/>
+        <DCCReference Include="BrowseFunc.pas"/>
+        <DCCReference Include="CompSignTools.pas">
+            <Form>SignToolsForm</Form>
+        </DCCReference>
+        <DCCReference Include="CompInputQueryCombo.pas"/>
+        <DCCReference Include="..\Components\ScintInt.pas"/>
+        <DCCReference Include="..\Components\ScintEdit.pas"/>
+        <DCCReference Include="..\Components\ScintStylerInnoSetup.pas"/>
+        <DCCReference Include="..\Components\ModernColors.pas"/>
+        <DCCReference Include="CompMsgBoxDesigner.pas">
+            <Form>MsgBoxDesignerForm</Form>
+        </DCCReference>
+        <DCCReference Include="CompScintEdit.pas"/>
+        <DCCReference Include="CompFilesDesigner.pas">
+            <Form>FilesDesignerForm</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="CompWizardFilesHelper.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">Compil32.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>

BIN
Projects/Compil32.res → Projects/Compil32.versionandicon.res


+ 19 - 8
Projects/Compile.pas

@@ -2,7 +2,7 @@ unit Compile;
 
 {
   Inno Setup
-  Copyright (C) 1997-2022 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -2710,8 +2710,8 @@ function TSetupCompiler.CheckConst(const S: String; const MinVersion: TSetupVers
   end;
 
 const
-  UserConsts: array[0..3] of String = (
-    'userpf', 'usercf', 'usersavedgames', 'username');
+  UserConsts: array[0..0] of String = (
+    'username');
   Consts: array[0..42] of String = (
     'src', 'srcexe', 'tmp', 'app', 'win', 'sys', 'sd', 'groupname', 'commonfonts', 'hwnd',
     'commonpf', 'commonpf32', 'commonpf64', 'commoncf', 'commoncf32', 'commoncf64',
@@ -2720,10 +2720,10 @@ const
     'userinfoname', 'userinfoorg', 'userinfoserial', 'uninstallexe',
     'language', 'syswow64', 'sysnative', 'log', 'dotnet11', 'dotnet20', 'dotnet2032',
     'dotnet2064', 'dotnet40', 'dotnet4032', 'dotnet4064');
-  UserShellFolderConsts: array[0..10] of String = (
+  UserShellFolderConsts: array[0..13] of String = (
     'userdesktop', 'userstartmenu', 'userprograms', 'userstartup',
     'userappdata', 'userdocs', 'usertemplates', 'userfavorites', 'usersendto', 'userfonts',
-    'localappdata');
+    'localappdata', 'userpf', 'usercf', 'usersavedgames');
   ShellFolderConsts: array[0..16] of String = (
     'group', 'commondesktop', 'commonstartmenu', 'commonprograms', 'commonstartup',
     'commonappdata', 'commondocs', 'commontemplates',
@@ -3127,7 +3127,8 @@ procedure TSetupCompiler.ProcessPermissionsParameter(ParamData: String;
     DOMAIN_ALIAS_RID_USERS = $00000221;
     DOMAIN_ALIAS_RID_GUESTS = $00000222;
     DOMAIN_ALIAS_RID_POWER_USERS = $00000223;
-    KnownSids: array[0..9] of TKnownSid = (
+    DOMAIN_ALIAS_RID_IIS_IUSRS = $00000238;
+    KnownSids: array[0..10] of TKnownSid = (
       (Name: 'admins';
        Sid: (Authority: (Value: (0, 0, 0, 0, 0, SECURITY_NT_AUTHORITY));
              SubAuthCount: 2;
@@ -3148,6 +3149,10 @@ procedure TSetupCompiler.ProcessPermissionsParameter(ParamData: String;
        Sid: (Authority: (Value: (0, 0, 0, 0, 0, SECURITY_NT_AUTHORITY));
              SubAuthCount: 2;
              SubAuth: (SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_GUESTS))),
+      (Name: 'iisiusrs';
+       Sid: (Authority: (Value: (0, 0, 0, 0, 0, SECURITY_NT_AUTHORITY));
+             SubAuthCount: 2;
+             SubAuth: (SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_IIS_IUSRS))),
       (Name: 'networkservice';
        Sid: (Authority: (Value: (0, 0, 0, 0, 0, SECURITY_NT_AUTHORITY));
              SubAuthCount: 1;
@@ -4127,6 +4132,9 @@ begin
     ssUninstallIconFile: begin
         WarningsList.Add(Format(SCompilerEntryObsolete, ['Setup', KeyName]));
       end;
+    ssUninstallLogging: begin
+        SetSetupHeaderOption(shUninstallLogging);
+      end;
     ssUninstallLogMode: begin
         if CompareText(Value, 'append') = 0 then
           SetupHeader.UninstallLogMode := lmAppend
@@ -9096,6 +9104,9 @@ begin
             if RemoveManifestDllHijackProtection then begin
               AddStatus(Format(SCompilerStatusUpdatingManifest, ['SETUP.EXE']));
               CompExeUpdate.RemoveManifestDllHijackProtection(ExeFile, False);
+            end else if UseSetupLdr then begin
+              AddStatus(Format(SCompilerStatusUpdatingManifest, ['SETUP.EXE']));
+              CompExeUpdate.PreventCOMCTL32Sideloading(ExeFile);
             end;
 
             { For some reason, on Win95 the date/time of the EXE sometimes
@@ -9136,8 +9147,8 @@ begin
     AddStatus('');
     for I := 0 to WarningsList.Count-1 do
       AddStatus(SCompilerStatusWarning + WarningsList[I], True);
-    asm jmp @1; db 0,'Inno Setup Compiler, Copyright (C) 1997-2022 Jordan Russell, '
-                  db 'Portions Copyright (C) 2000-2022 Martijn Laan',0; @1: end;
+    asm jmp @1; db 0,'Inno Setup Compiler, Copyright (C) 1997-2024 Jordan Russell, '
+                  db 'Portions Copyright (C) 2000-2024 Martijn Laan',0; @1: end;
     { Note: Removing or modifying the copyright text is a violation of the
       Inno Setup license agreement; see LICENSE.TXT. }
   finally

+ 28 - 0
Projects/Debug.iss

@@ -0,0 +1,28 @@
+; -- Debug.iss --
+; Opened when you run the Compil32.dproj project in Debug mode from the Delphi IDE
+; Use it to test the compiler or Setup or the uninstaller
+
+[Setup]
+AppName=ɯɐɹƃoɹd ʎɯ
+AppVerName=My Program version 1.5
+DefaultDirName={autopf}\My Program
+UseSetupLdr=0
+OutputDir=..\Projects
+AppVersion=1.2.3        
+OutputBaseFilename=setup
+PrivilegesRequired=lowest
+
+[Languages]
+Name: en; MessagesFile: "compiler:Default.isl"
+Name: nl; MessagesFile: "..\Files\Languages\Dutch.isl"
+
+[Files]
+Source: "..\Examples\MyProg.exe"; DestDir: "{app}"
+Source: "..\Examples\MyProg.chm"; DestDir: "{app}"
+Source: "..\Examples\Readme.txt"; DestDir: "{app}"; Flags: isreadme
+
+[Code]
+function InitializeSetup: Boolean;
+begin
+  Result := True;
+end;

+ 5 - 2
Projects/DotNet.pas

@@ -20,7 +20,7 @@ unit DotNet;
 
   IsDotNetInstalled code based on http://www.kynosarges.de/DotNetVersion.html by Cristoph Nahr
   License:
-  // Im placing this small bit of code in the public domain, so you may embed it in your own
+  // I’m placing this small bit of code in the public domain, so you may embed it in your own
   // projects, modify and redistribute it as you see fit.
 
   Also see https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed
@@ -53,7 +53,7 @@ type
   end;
 
   TDotNetBaseVersion = (netbase11, netbase20, netbase40, netbaseHighestKnown);
-  TDotNetVersion = (net11, net20, net30, net35, net4Client, net4Full, net45, net451, net452, net46, net461, net462, net47, net471, net472, net48);
+  TDotNetVersion = (net11, net20, net30, net35, net4Client, net4Full, net45, net451, net452, net46, net461, net462, net47, net471, net472, net48, net481);
 
 function GetDotNetInstallRoot(const RegView: TRegView): String;
 function GetDotNetVersionInstallRoot(const RegView: TRegView; const Version: TDotNetBaseVersion): String;
@@ -201,6 +201,7 @@ function IsDotNetInstalled(const RegView: TRegView; const MinVersion: TDotNetVer
       net471: Result := 'v4.7.1';
       net472: Result := 'v4.7.2';
       net48: Result := 'v4.8';
+      net481: Result := 'v4.8.1';
       else
         InternalError('IsDotNetDetected: Invalid Version');
     end;
@@ -256,6 +257,8 @@ begin
         RequiredRelease := 461808 // 461814 before Win10 April 2018 Update
       else if VersionString = 'v4.8' then
         RequiredRelease := 528040 // 528049 before Win10 May 2019 Update
+      else if VersionString = 'v4.8.1' then
+        RequiredRelease := 533320 // 533325 before Win11 2022 Update
       else
         InternalError('IsDotNetDetected: Invalid VersionString');
     end else

+ 24 - 12
Projects/FileClass.pas

@@ -2,7 +2,7 @@ unit FileClass;
 
 {
   Inno Setup
-  Copyright (C) 1997-2010 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -11,16 +11,10 @@ unit FileClass;
   and uses descriptive, localized system error messages.
 
   TTextFileReader and TTextFileWriter support ANSI and UTF8 textfiles only.
-
-  $jrsoftware: issrc/Projects/FileClass.pas,v 1.31 2010/01/26 06:26:18 jr Exp $
 }
 
 {$I VERSION.INC}
 
-{$IFDEF IS_D6}
-{$WARN SYMBOL_PLATFORM OFF}
-{$ENDIF}
-
 interface
 
 uses
@@ -121,12 +115,14 @@ type
   TTextFileWriter = class(TFile)
   private
     FSeekedToEnd: Boolean;
+    FUTF8NoPreamble: Boolean;
     procedure DoWrite(const S: AnsiString{$IFDEF UNICODE}; const UTF8: Boolean{$ENDIF});
   protected
     function CreateHandle(const AFilename: String;
       ACreateDisposition: TFileCreateDisposition; AAccess: TFileAccess;
       ASharing: TFileSharing): THandle; override;
   public
+    property UTF8NoPreamble: Boolean read FUTF8NoPreamble write FUTF8NoPreamble;
     procedure Write(const S: String);
     procedure WriteLine(const S: String);
 {$IFDEF UNICODE}
@@ -159,6 +155,7 @@ type
 implementation
 
 uses
+  WideStrUtils,
   CmnFunc2;
 
 const
@@ -507,10 +504,25 @@ begin
   end;
   {$IFDEF UNICODE}
   if not FSawFirstLine then begin
-    { Handle UTF8 BOM if requested }
-    if UTF8 and (Length(S) > 2) and (S[1] = #$EF) and (S[2] = #$BB) and (S[3] = #$BF) then begin
-      Delete(S, 1, 3);
-      FCodePage := CP_UTF8;
+    if UTF8 then begin
+      { Handle UTF8 as requested: check for a BOM at the start and if not found then check entire file }
+      if (Length(S) > 2) and (S[1] = #$EF) and (S[2] = #$BB) and (S[3] = #$BF) then begin
+        Delete(S, 1, 3);
+        FCodePage := CP_UTF8;
+      end else begin
+        var OldPosition := GetPosition;
+        try
+          var CappedSize := GetCappedSize; //can't be 0
+          Seek(0);
+          var S2: AnsiString;
+          SetLength(S2, CappedSize);
+          SetLength(S2, Read(S2[1], CappedSize));
+          if IsUTF8String(S2) then
+            FCodePage := CP_UTF8;
+        finally
+          Seek64(OldPosition);
+        end;
+      end;
     end;
     FSawFirstLine := True;
   end;
@@ -567,7 +579,7 @@ begin
         WriteBuffer(CRLF, SizeOf(CRLF));
       end;
 {$IFDEF UNICODE}
-    end else if UTF8 then
+    end else if UTF8 and not FUTF8NoPreamble then
       WriteBuffer(UTF8Preamble, SizeOf(UTF8Preamble));
 {$ELSE}
     end;

+ 0 - 75
Projects/ISCC.dof

@@ -1,75 +0,0 @@
-[Compiler]
-A=1
-B=0
-C=0
-D=1
-E=0
-F=0
-G=1
-H=1
-I=1
-J=1
-K=0
-L=1
-M=0
-N=1
-O=1
-P=1
-Q=0
-R=0
-S=0
-T=0
-U=0
-V=1
-W=0
-X=1
-Y=0
-Z=1
-ShowHints=1
-ShowWarnings=1
-UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-[Linker]
-MapFile=0
-OutputObjs=0
-ConsoleApp=0
-DebugInfo=0
-MinStackSize=16384
-MaxStackSize=1048576
-ImageBase=4194304
-ExeDescription=
-[Directories]
-OutputDir=
-UnitOutputDir=
-SearchPath=..\components;..\components\ps\source
-Packages=VCL30;vclx30;VclSmp30;vcldb30;vcldbx30
-Conditionals=PS_MINIVCL;PS_NOWIDESTRING;PS_NOINT64;PS_NOGRAPHCONST
-DebugSourceDirs=
-UsePackages=0
-[Parameters]
-RunParams=
-HostApplication=
-[Version Info]
-IncludeVerInfo=1
-AutoIncBuild=0
-MajorVer=0
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=0
-Locale=1033
-CodePage=1252
-[Version Info Keys]
-CompanyName=Jordan Russell
-FileDescription=Inno Setup Command-Line Compiler
-FileVersion=0.0.0.0
-InternalName=
-LegalCopyright=Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.
-LegalTrademarks=
-OriginalFilename=
-ProductName=Inno Setup
-ProductVersion=0.0.0.0
-Comments=Inno Setup home page: http://www.innosetup.com

+ 9 - 9
Projects/ISCC.dpr

@@ -3,18 +3,13 @@ program ISCC;
 
 {
   Inno Setup
-  Copyright (C) 1997-2022 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
   Command-line compiler
 }
 
-{$SetPEFlags 1} 
-{$SETPEOSVERSION 6.0}
-{$SETPESUBSYSVERSION 6.0}
-{$WEAKLINKRTTI ON}
-
 {x$DEFINE STATICCOMPILER}
 { For debugging purposes, remove the 'x' to have it link the compiler code
   into this program and not depend on ISCmplr.dll. }
@@ -25,8 +20,13 @@ uses
   {$IFDEF STATICCOMPILER} Compile, {$ENDIF}
   PathFunc, CmnFunc2, CompInt, FileClass, CompTypes;
 
-{$R *.res}
+{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED} 
+{$SETPEOSVERSION 6.0}
+{$SETPESUBSYSVERSION 6.0}
+{$WEAKLINKRTTI ON}
+
 {$R ISCC.manifest.res}
+{$R ISCC.versionandicon.res}
 
 {$I VERSION.INC}
 
@@ -367,8 +367,8 @@ procedure ProcessCommandLine;
   procedure ShowBanner;
   begin
     WriteStdOut('Inno Setup 6 Command-Line Compiler');
-    WriteStdOut('Copyright (C) 1997-2022 Jordan Russell. All rights reserved.');
-    WriteStdOut('Portions Copyright (C) 2000-2022 Martijn Laan. All rights reserved.');
+    WriteStdOut('Copyright (C) 1997-2024 Jordan Russell. All rights reserved.');
+    WriteStdOut('Portions Copyright (C) 2000-2024 Martijn Laan. All rights reserved.');
     if IsppMode then
       WriteStdOut('Portions Copyright (C) 2001-2004 Alex Yackimoff. All rights reserved.');
     WriteStdOut('https://www.innosetup.com');

+ 109 - 112
Projects/ISCC.dproj

@@ -1,112 +1,109 @@
-	<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-		<PropertyGroup>
-			<ProjectGuid>{987D21F0-30F1-44D9-9238-639936C6750E}</ProjectGuid>
-			<MainSource>ISCC.dpr</MainSource>
-			<Config Condition="'$(Config)'==''">Debug</Config>
-			<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
-			<ProjectVersion>12.0</ProjectVersion>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
-			<Cfg_1>true</Cfg_1>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
-			<Cfg_2>true</Cfg_2>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Base)'!=''">
-			<DCC_DependencyCheckOutputName>ISCC.exe</DCC_DependencyCheckOutputName>
-			<DCC_UnitSearchPath>..\components;..\components\unips\source;ispp;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
-			<DCC_ConsoleTarget>true</DCC_ConsoleTarget>
-			<DCC_ImageBase>00400000</DCC_ImageBase>
-			<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
-			<DCC_Alignment>1</DCC_Alignment>
-			<DCC_Define>PS_MINIVCL;PS_NOWIDESTRING;PS_NOINT64;PS_NOGRAPHCONST;$(DCC_Define)</DCC_Define>
-			<DCC_Platform>x86</DCC_Platform>
-			<DCC_UsePackage>VCL30;vclx30;VclSmp30;vcldb30;vcldbx30</DCC_UsePackage>
-			<DCC_K>false</DCC_K>
-			<DCC_F>false</DCC_F>
-			<DCC_S>false</DCC_S>
-			<DCC_N>true</DCC_N>
-			<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
-			<DCC_WriteableConstants>true</DCC_WriteableConstants>
-			<DCC_E>false</DCC_E>
-			<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_1)'!=''">
-			<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
-			<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
-			<DCC_DebugInformation>false</DCC_DebugInformation>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_2)'!=''">
-			<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
-		</PropertyGroup>
-		<ItemGroup>
-			<DelphiCompile Include="ISCC.dpr">
-				<MainSource>MainSource</MainSource>
-			</DelphiCompile>
-			<DCCReference Include="SafeDLLPath.pas"/>
-			<BuildConfiguration Include="Base">
-				<Key>Base</Key>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Debug">
-				<Key>Cfg_2</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Release">
-				<Key>Cfg_1</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-		</ItemGroup>
-		<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
-		<ProjectExtensions>
-			<Borland.Personality>Delphi.Personality.12</Borland.Personality>
-			<Borland.ProjectType>VCLApplication</Borland.ProjectType>
-			<BorlandProject>
-				<Delphi.Personality>
-					<Source>
-						<Source Name="MainSource">ISCC.dpr</Source>
-					</Source>
-					<Parameters>
-						<Parameters Name="UseLauncher">False</Parameters>
-						<Parameters Name="LoadAllSymbols">True</Parameters>
-						<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
-						<Parameters Name="RunParams">../other/test.iss /jtest2.iss /jtest3.iss</Parameters>
-					</Parameters>
-					<VersionInfo>
-						<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
-						<VersionInfo Name="AutoIncBuild">False</VersionInfo>
-						<VersionInfo Name="MajorVer">0</VersionInfo>
-						<VersionInfo Name="MinorVer">0</VersionInfo>
-						<VersionInfo Name="Release">0</VersionInfo>
-						<VersionInfo Name="Build">0</VersionInfo>
-						<VersionInfo Name="Debug">False</VersionInfo>
-						<VersionInfo Name="PreRelease">False</VersionInfo>
-						<VersionInfo Name="Special">False</VersionInfo>
-						<VersionInfo Name="Private">False</VersionInfo>
-						<VersionInfo Name="DLL">False</VersionInfo>
-						<VersionInfo Name="Locale">1033</VersionInfo>
-						<VersionInfo Name="CodePage">1252</VersionInfo>
-					</VersionInfo>
-					<VersionInfoKeys>
-						<VersionInfoKeys Name="CompanyName">Jordan Russell</VersionInfoKeys>
-						<VersionInfoKeys Name="FileDescription">Inno Setup Command-Line Compiler</VersionInfoKeys>
-						<VersionInfoKeys Name="FileVersion">0.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="InternalName"/>
-						<VersionInfoKeys Name="LegalCopyright">Copyright (C) 1997-2016 Jordan Russell. Portions Copyright (C) 2000-2016 Martijn Laan.</VersionInfoKeys>
-						<VersionInfoKeys Name="LegalTrademarks"/>
-						<VersionInfoKeys Name="OriginalFilename"/>
-						<VersionInfoKeys Name="ProductName">Inno Setup</VersionInfoKeys>
-						<VersionInfoKeys Name="ProductVersion">0.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="Comments">Inno Setup home page: http://www.innosetup.com</VersionInfoKeys>
-					</VersionInfoKeys>
-				</Delphi.Personality>
-			</BorlandProject>
-			<ProjectFileVersion>12</ProjectFileVersion>
-		</ProjectExtensions>
-	</Project>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{CB865E8F-FE9C-46FD-90B0-AB3BDBD1C906}</ProjectGuid>
+        <MainSource>ISCC.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Console</AppType>
+        <FrameworkType>None</FrameworkType>
+        <ProjectVersion>19.5</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <DCC_Alignment>1</DCC_Alignment>
+        <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
+        <DCC_DebugInformation>1</DCC_DebugInformation>
+        <DCC_WriteableConstants>true</DCC_WriteableConstants>
+        <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
+        <DCC_ConsoleTarget>true</DCC_ConsoleTarget>
+        <DCC_UnitSearchPath>..\Components;..\Components\UniPs\Source;ISPP;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
+        <DCC_UsePackage>VCL30;vclx30;VclSmp30;vcldb30;vcldbx30;$(DCC_UsePackage)</DCC_UsePackage>
+        <DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
+        <SanitizedProjectName>ISCC</SanitizedProjectName>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_MajorVer>0</VerInfo_MajorVer>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
+        <VerInfo_Keys>CompanyName=Jordan Russell;FileDescription=Inno Setup Command-Line Compiler;FileVersion=0.0.0.0;InternalName=;LegalCopyright=Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.;LegalTrademarks=;OriginalFilename=;ProductName=Inno Setup;ProductVersion=0.0.0.0;Comments=Inno Setup home page: http://www.innosetup.com</VerInfo_Keys>
+        <DCC_SYMBOL_DEPRECATED>false</DCC_SYMBOL_DEPRECATED>
+        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
+        <DCC_UNSAFE_CAST>false</DCC_UNSAFE_CAST>
+        <DCC_EXPLICIT_STRING_CAST>false</DCC_EXPLICIT_STRING_CAST>
+        <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
+        <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
+        <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_DcuOutput>Dcu\$(MainSource)</DCC_DcuOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_ExeOutput>..\Files</DCC_ExeOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="SafeDLLPath.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">ISCC.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>

BIN
Projects/ISCC.res → Projects/ISCC.versionandicon.res


+ 0 - 75
Projects/ISCmplr.dof

@@ -1,75 +0,0 @@
-[Compiler]
-A=1
-B=0
-C=0
-D=1
-E=0
-F=0
-G=1
-H=1
-I=1
-J=1
-K=0
-L=1
-M=0
-N=1
-O=1
-P=1
-Q=0
-R=0
-S=0
-T=0
-U=0
-V=1
-W=0
-X=1
-Y=1
-Z=1
-ShowHints=1
-ShowWarnings=1
-UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-[Linker]
-MapFile=0
-OutputObjs=0
-ConsoleApp=1
-DebugInfo=0
-MinStackSize=16384
-MaxStackSize=1048576
-ImageBase=8388608
-ExeDescription=
-[Directories]
-OutputDir=
-UnitOutputDir=
-SearchPath=..\components;..\components\ps\source
-Packages=VCL30;vclx30;VclSmp30;vcldb30;vcldbx30
-Conditionals=PS_MINIVCL;PS_NOWIDESTRING;PS_NOINT64;PS_NOGRAPHCONST
-DebugSourceDirs=
-UsePackages=0
-[Parameters]
-RunParams=
-HostApplication=
-[Version Info]
-IncludeVerInfo=1
-AutoIncBuild=0
-MajorVer=0
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=0
-Locale=1033
-CodePage=1252
-[Version Info Keys]
-CompanyName=Jordan Russell
-FileDescription=Inno Setup Compiler
-FileVersion=0.0.0.0
-InternalName=
-LegalCopyright=Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.
-LegalTrademarks=
-OriginalFilename=
-ProductName=Inno Setup
-ProductVersion=0.0.0.0
-Comments=Inno Setup home page: http://www.innosetup.com

+ 7 - 7
Projects/ISCmplr.dpr

@@ -9,11 +9,6 @@ library ISCmplr;
   Compiler DLL
 }
 
-{$IMAGEBASE $00800000}
-{$SETPEOSVERSION 6.0}
-{$SETPESUBSYSVERSION 6.0}
-{$WEAKLINKRTTI ON}
-
 uses
   SafeDLLPath in 'SafeDLLPath.pas',
   SysUtils,
@@ -36,8 +31,13 @@ uses
   ArcFour in 'ArcFour.pas',
   VerInfo in 'VerInfo.pas';
 
-{$R *.RES}
-{$R IMAGES2.RES}
+{$IMAGEBASE $00800000}
+{$SETPEOSVERSION 6.0}
+{$SETPESUBSYSVERSION 6.0}
+{$WEAKLINKRTTI ON}
+
+{$R ISCmplr.images.res}
+{$R ISCmplr.version.res}
 
 function ISDllCompileScript(const Params: TCompileScriptParamsEx): Integer;
 stdcall;

+ 131 - 129
Projects/ISCmplr.dproj

@@ -1,129 +1,131 @@
-	<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-		<PropertyGroup>
-			<ProjectGuid>{5CA27EB0-9FB6-4726-A2D3-300D0F97F1C3}</ProjectGuid>
-			<MainSource>ISCmplr.dpr</MainSource>
-			<Config Condition="'$(Config)'==''">Debug</Config>
-			<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
-			<ProjectVersion>12.0</ProjectVersion>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
-			<Cfg_1>true</Cfg_1>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
-			<Cfg_2>true</Cfg_2>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Base)'!=''">
-			<DCC_DependencyCheckOutputName>ISCmplr.dll</DCC_DependencyCheckOutputName>
-			<DCC_UnitSearchPath>..\components;..\components\unips\source;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
-			<DCC_UsePackage>VCL30;vclx30;VclSmp30;vcldb30;vcldbx30</DCC_UsePackage>
-			<DCC_ImageBase>00800000</DCC_ImageBase>
-			<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
-			<DCC_Alignment>1</DCC_Alignment>
-			<DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
-			<DCC_Platform>x86</DCC_Platform>
-			<DCC_WriteableConstants>true</DCC_WriteableConstants>
-			<DCC_N>true</DCC_N>
-			<DCC_K>false</DCC_K>
-			<GenDll>true</GenDll>
-			<DCC_S>false</DCC_S>
-			<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
-			<DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
-			<DCC_F>false</DCC_F>
-			<DCC_E>false</DCC_E>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_1)'!=''">
-			<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
-			<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
-			<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
-			<DCC_DebugInformation>false</DCC_DebugInformation>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_2)'!=''">
-			<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
-		</PropertyGroup>
-		<ItemGroup>
-			<DelphiCompile Include="ISCmplr.dpr">
-				<MainSource>MainSource</MainSource>
-			</DelphiCompile>
-			<DCCReference Include="CompInt.pas"/>
-			<DCCReference Include="Compile.pas"/>
-			<DCCReference Include="CompMsgs.pas"/>
-			<DCCReference Include="Struct.pas"/>
-			<DCCReference Include="ScriptFunc.pas"/>
-			<DCCReference Include="ScriptFunc_C.pas"/>
-			<DCCReference Include="ScriptCompiler.pas"/>
-			<DCCReference Include="ScriptClasses_C.pas"/>
-			<DCCReference Include="ResUpdate.pas"/>
-			<DCCReference Include="CompExeUpdate.pas"/>
-			<DCCReference Include="Compress.pas"/>
-			<DCCReference Include="CompressZlib.pas"/>
-			<DCCReference Include="bzlib.pas"/>
-			<DCCReference Include="LZMA.pas"/>
-			<DCCReference Include="FileClass.pas"/>
-			<DCCReference Include="ArcFour.pas"/>
-			<DCCReference Include="VerInfo.pas"/>
-			<BuildConfiguration Include="Base">
-				<Key>Base</Key>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Debug">
-				<Key>Cfg_2</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Release">
-				<Key>Cfg_1</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-		</ItemGroup>
-		<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
-		<ProjectExtensions>
-			<Borland.Personality>Delphi.Personality.12</Borland.Personality>
-			<Borland.ProjectType>VCLApplication</Borland.ProjectType>
-			<BorlandProject>
-				<Delphi.Personality>
-					<Source>
-						<Source Name="MainSource">ISCmplr.dpr</Source>
-					</Source>
-					<Parameters>
-						<Parameters Name="UseLauncher">False</Parameters>
-						<Parameters Name="LoadAllSymbols">True</Parameters>
-						<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
-						<Parameters Name="HostApplication">D:\Coding\pyrSys\Is\Projects\Compil32.exe</Parameters>
-					</Parameters>
-					<VersionInfo>
-						<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
-						<VersionInfo Name="AutoIncBuild">False</VersionInfo>
-						<VersionInfo Name="MajorVer">0</VersionInfo>
-						<VersionInfo Name="MinorVer">0</VersionInfo>
-						<VersionInfo Name="Release">0</VersionInfo>
-						<VersionInfo Name="Build">0</VersionInfo>
-						<VersionInfo Name="Debug">False</VersionInfo>
-						<VersionInfo Name="PreRelease">False</VersionInfo>
-						<VersionInfo Name="Special">False</VersionInfo>
-						<VersionInfo Name="Private">False</VersionInfo>
-						<VersionInfo Name="DLL">False</VersionInfo>
-						<VersionInfo Name="Locale">1033</VersionInfo>
-						<VersionInfo Name="CodePage">1252</VersionInfo>
-					</VersionInfo>
-					<VersionInfoKeys>
-						<VersionInfoKeys Name="CompanyName">Jordan Russell</VersionInfoKeys>
-						<VersionInfoKeys Name="FileDescription">Inno Setup Compiler</VersionInfoKeys>
-						<VersionInfoKeys Name="FileVersion">0.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="InternalName"/>
-						<VersionInfoKeys Name="LegalCopyright">Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.</VersionInfoKeys>
-						<VersionInfoKeys Name="LegalTrademarks"/>
-						<VersionInfoKeys Name="OriginalFilename"/>
-						<VersionInfoKeys Name="ProductName">Inno Setup</VersionInfoKeys>
-						<VersionInfoKeys Name="ProductVersion">0.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="Comments">Inno Setup home page: http://www.innosetup.com</VersionInfoKeys>
-					</VersionInfoKeys>
-				</Delphi.Personality>
-			</BorlandProject>
-			<ProjectFileVersion>12</ProjectFileVersion>
-		</ProjectExtensions>
-	</Project>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{25CA0A66-07DC-4224-9252-EBFFA7D81558}</ProjectGuid>
+        <MainSource>ISCmplr.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Library</AppType>
+        <FrameworkType>VCL</FrameworkType>
+        <ProjectVersion>19.5</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_ImageBase>00800000</DCC_ImageBase>
+        <DCC_Alignment>1</DCC_Alignment>
+        <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
+        <DCC_DebugInformation>1</DCC_DebugInformation>
+        <DCC_WriteableConstants>true</DCC_WriteableConstants>
+        <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
+        <DCC_UnitSearchPath>..\Components;..\Components\UniPs\Source;ISPP;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
+        <DCC_UsePackage>VCL30;vclx30;VclSmp30;vcldb30;vcldbx30;$(DCC_UsePackage)</DCC_UsePackage>
+        <DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
+        <GenDll>true</GenDll>
+        <SanitizedProjectName>ISCmplr</SanitizedProjectName>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_MajorVer>0</VerInfo_MajorVer>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=Jordan Russell;FileDescription=Inno Setup Compiler;FileVersion=0.0.0.0;InternalName=;LegalCopyright=Copyright (C) 1997-2008 Jordan Russell. Portions Copyright (C) 2000-2008 Martijn Laan.;LegalTrademarks=;OriginalFilename=;ProductName=Inno Setup;ProductVersion=0.0.0.0;Comments=Inno Setup home page: http://www.innosetup.com</VerInfo_Keys>
+        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace)</DCC_Namespace>
+        <DCC_SYMBOL_DEPRECATED>false</DCC_SYMBOL_DEPRECATED>
+        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
+        <DCC_UNSAFE_CAST>false</DCC_UNSAFE_CAST>
+        <DCC_EXPLICIT_STRING_CAST>false</DCC_EXPLICIT_STRING_CAST>
+        <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
+        <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
+        <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_DcuOutput>Dcu\$(MainSource)</DCC_DcuOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+        <DCC_ExeOutput>..\Files</DCC_ExeOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <Debugger_HostApplication>Compil32.exe</Debugger_HostApplication>
+        <Debugger_RunParams>Debug.iss</Debugger_RunParams>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="SafeDLLPath.pas"/>
+        <DCCReference Include="CompInt.pas"/>
+        <DCCReference Include="CompPreprocInt.pas"/>
+        <DCCReference Include="Compile.pas"/>
+        <DCCReference Include="CompMsgs.pas"/>
+        <DCCReference Include="Struct.pas"/>
+        <DCCReference Include="ScriptFunc.pas"/>
+        <DCCReference Include="ScriptFunc_C.pas"/>
+        <DCCReference Include="ScriptCompiler.pas"/>
+        <DCCReference Include="ScriptClasses_C.pas"/>
+        <DCCReference Include="ResUpdate.pas"/>
+        <DCCReference Include="CompExeUpdate.pas"/>
+        <DCCReference Include="Compress.pas"/>
+        <DCCReference Include="CompressZlib.pas"/>
+        <DCCReference Include="bzlib.pas"/>
+        <DCCReference Include="LZMA.pas"/>
+        <DCCReference Include="FileClass.pas"/>
+        <DCCReference Include="ArcFour.pas"/>
+        <DCCReference Include="VerInfo.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">ISCmplr.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>

+ 0 - 0
Projects/Images2.res → Projects/ISCmplr.images.res


BIN
Projects/ISCmplr.res


BIN
Projects/ISCmplr.version.res


+ 2 - 2
Projects/ISPP/Help/compile.bat

@@ -23,13 +23,13 @@ if "%HHCEXE%"=="" goto compilesettingserror
 
 rem -------------------------------------------------------------------------
 
-echo Generating help files:
+echo Generating help files using ISHelpGen:
 echo.
 ..\..\..\ishelp\ISHelpGen\ISHelpGen.exe .
 if errorlevel 1 goto failed
 
 echo.
-echo Running help compiler:
+echo Running HTML Help Compiler (hhc.exe):
 echo.
 del Staging\ispp.chm
 if exist Staging\ispp.chm goto failed

+ 0 - 136
Projects/ISPP/ISPP.dof

@@ -1,136 +0,0 @@
-[FileVersion]
-Version=7.0
-[Compiler]
-A=4
-B=0
-C=1
-D=1
-E=0
-F=0
-G=1
-H=1
-I=1
-J=0
-K=0
-L=1
-M=0
-N=1
-O=1
-P=1
-Q=0
-R=0
-S=0
-T=0
-U=0
-V=1
-W=0
-X=1
-Y=1
-Z=1
-ShowHints=1
-ShowWarnings=1
-UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-NamespacePrefix=
-SymbolDeprecated=1
-SymbolLibrary=1
-SymbolPlatform=1
-UnitLibrary=1
-UnitPlatform=1
-UnitDeprecated=1
-HResultCompat=1
-HidingMember=1
-HiddenVirtual=1
-Garbage=1
-BoundsError=1
-ZeroNilCompat=1
-StringConstTruncated=1
-ForLoopVarVarPar=1
-TypedConstVarPar=1
-AsgToTypedConst=1
-CaseLabelRange=1
-ForVariable=1
-ConstructingAbstract=1
-ComparisonFalse=1
-ComparisonTrue=1
-ComparingSignedUnsigned=1
-CombiningSignedUnsigned=1
-UnsupportedConstruct=1
-FileOpen=1
-FileOpenUnitSrc=1
-BadGlobalSymbol=1
-DuplicateConstructorDestructor=1
-InvalidDirective=1
-PackageNoLink=1
-PackageThreadVar=1
-ImplicitImport=1
-HPPEMITIgnored=1
-NoRetVal=1
-UseBeforeDef=1
-ForLoopVarUndef=1
-UnitNameMismatch=1
-NoCFGFileFound=1
-MessageDirective=1
-ImplicitVariants=1
-UnicodeToLocale=1
-LocaleToUnicode=1
-ImagebaseMultiple=1
-SuspiciousTypecast=1
-PrivatePropAccessor=1
-UnsafeType=0
-UnsafeCode=0
-UnsafeCast=0
-[Linker]
-MapFile=0
-OutputObjs=0
-ConsoleApp=1
-DebugInfo=0
-RemoteSymbols=0
-MinStackSize=16384
-MaxStackSize=1048576
-ImageBase=25165824
-ExeDescription=
-[Directories]
-OutputDir=
-UnitOutputDir=
-PackageDLLOutputDir=
-PackageDCPOutputDir=
-SearchPath=
-Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
-Conditionals=IS_ALLOWD7
-DebugSourceDirs=
-UsePackages=0
-[Parameters]
-RunParams=
-HostApplication=
-Launcher=
-UseLauncher=0
-DebugCWD=
-[Language]
-ActiveLang=
-ProjectLang=
-RootDir=
-[Version Info]
-IncludeVerInfo=1
-AutoIncBuild=0
-MajorVer=0
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=1
-Locale=1033
-CodePage=1252
-[Version Info Keys]
-CompanyName=Jordan Russell
-FileDescription=Inno Setup Preprocessor
-FileVersion=0.0.0.0
-InternalName=
-LegalCopyright=Copyright (C) 1997-2010 Jordan Russell. Portions Copyright (C) 2000-2010 Martijn Laan. Copyright © 2001-2004 Alex Yackimoff.
-LegalTrademarks=
-OriginalFilename=
-ProductName=Inno Setup
-ProductVersion=0.0.0.0
-Comments=Inno Setup home page: http://www.innosetup.com

+ 6 - 7
Projects/ISPP/ISPP.dpr

@@ -10,12 +10,6 @@
 
 library ISPP;
 
-{$IMAGEBASE $01800000}
-{$SETPEOSVERSION 6.0}
-{$SETPESUBSYSVERSION 6.0}
-{$WEAKLINKRTTI ON}
-{$I ..\Version.inc}
-
 uses
   SysUtils,
   Windows,
@@ -41,7 +35,12 @@ uses
   SHA1 in '..\SHA1.pas',
   Struct in '..\Struct.pas';
   
-{$R *.RES}
+{$IMAGEBASE $01800000}
+{$SETPEOSVERSION 6.0}
+{$SETPESUBSYSVERSION 6.0}
+{$WEAKLINKRTTI ON}
+
+{$R ISPP.version.res}
 
 exports
   ISPreprocessScript name 'ISPreprocessScriptW';

+ 131 - 0
Projects/ISPP/ISPP.dproj

@@ -0,0 +1,131 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{7BEFDB9E-3F9B-4206-BAC1-B332E573D3F8}</ProjectGuid>
+        <MainSource>ISPP.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Library</AppType>
+        <FrameworkType>None</FrameworkType>
+        <ProjectVersion>19.5</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_ImageBase>01800000</DCC_ImageBase>
+        <DCC_Alignment>4</DCC_Alignment>
+        <DCC_DebugInformation>1</DCC_DebugInformation>
+        <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
+        <DCC_UsePackage>vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;$(DCC_UsePackage)</DCC_UsePackage>
+        <GenDll>true</GenDll>
+        <SanitizedProjectName>ISPP</SanitizedProjectName>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_MajorVer>0</VerInfo_MajorVer>
+        <VerInfo_DLL>true</VerInfo_DLL>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=Jordan Russell;FileDescription=Inno Setup Preprocessor;FileVersion=0.0.0.0;InternalName=;LegalCopyright=Copyright (C) 1997-2010 Jordan Russell. Portions Copyright (C) 2000-2010 Martijn Laan. Copyright © 2001-2004 Alex Yackimoff.;LegalTrademarks=;OriginalFilename=;ProductName=Inno Setup;ProductVersion=0.0.0.0;Comments=Inno Setup home page: http://www.innosetup.com</VerInfo_Keys>
+        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
+        <DCC_SYMBOL_DEPRECATED>false</DCC_SYMBOL_DEPRECATED>
+        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
+        <DCC_UNSAFE_CAST>false</DCC_UNSAFE_CAST>
+        <DCC_EXPLICIT_STRING_CAST>false</DCC_EXPLICIT_STRING_CAST>
+        <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
+        <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
+        <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_DcuOutput>Dcu\$(MainSource)</DCC_DcuOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+        <DCC_ExeOutput>..\..\Files</DCC_ExeOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <DCC_ExeOutput>..</DCC_ExeOutput>
+        <Debugger_HostApplication>..\Compil32.exe</Debugger_HostApplication>
+        <Debugger_RunParams>Debug.iss</Debugger_RunParams>
+        <Debugger_CWD>..</Debugger_CWD>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="..\CompPreprocInt.pas"/>
+        <DCCReference Include="IsppPreprocess.pas"/>
+        <DCCReference Include="IsppPreprocessor.pas"/>
+        <DCCReference Include="IsppFuncs.pas"/>
+        <DCCReference Include="IsppVarUtils.pas"/>
+        <DCCReference Include="IsppConsts.pas"/>
+        <DCCReference Include="IsppStack.pas"/>
+        <DCCReference Include="IsppIntf.pas"/>
+        <DCCReference Include="IsppParser.pas"/>
+        <DCCReference Include="IsppIdentMan.pas"/>
+        <DCCReference Include="IsppSessions.pas"/>
+        <DCCReference Include="CTokenizer.pas"/>
+        <DCCReference Include="IsppBase.pas"/>
+        <DCCReference Include="..\..\Components\PathFunc.pas"/>
+        <DCCReference Include="..\CmnFunc2.pas"/>
+        <DCCReference Include="..\FileClass.pas"/>
+        <DCCReference Include="..\Int64Em.pas"/>
+        <DCCReference Include="..\MD5.pas"/>
+        <DCCReference Include="..\SHA1.pas"/>
+        <DCCReference Include="..\Struct.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">ISPP.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>

BIN
Projects/ISPP/ISPP.res


BIN
Projects/ISPP/ISPP.version.res


+ 110 - 17
Projects/Install.pas

@@ -24,6 +24,8 @@ procedure ExtractTemporaryFile(const BaseName: String);
 function ExtractTemporaryFiles(const Pattern: String): Integer;
 function DownloadTemporaryFile(const Url, BaseName, RequiredSHA256OfFile: String; const OnDownloadProgress: TOnDownloadProgress): Int64;
 function DownloadTemporaryFileSize(const Url: String): Int64;
+function DownloadTemporaryFileDate(const Url: String): String;
+procedure SetDownloadCredentials(const User, Pass: String);
 
 implementation
 
@@ -32,7 +34,8 @@ uses
   InstFunc, InstFnc2, SecurityFunc, Msgs, Main, Logging, Extract, FileClass,
   Compress, SHA1, PathFunc, CmnFunc, CmnFunc2, RedirFunc, Int64Em, MsgIDs,
   Wizard, DebugStruct, DebugClient, VerInfo, ScriptRunner, RegDLL, Helper,
-  ResUpdate, DotNet, TaskbarProgressFunc, NewProgressBar, RestartManager, Net.HTTPClient;
+  ResUpdate, DotNet, TaskbarProgressFunc, NewProgressBar, RestartManager,
+  Net.HTTPClient, Net.URLClient, NetEncoding;
 
 type
   TSetupUninstallLog = class(TUninstallLog)
@@ -43,6 +46,7 @@ type
 var
   CurProgress: Integer64;
   ProgressShiftCount: Cardinal;
+  DownloadUser, DownloadPass: String;
 
 { TSetupUninstallLog }
 
@@ -310,7 +314,7 @@ var
   FontDir: String;
 begin
   Result := PathExpand(Filename);
-  FontDir := GetShellFolder(False, sfFonts, False);
+  FontDir := GetShellFolder(False, sfFonts);
   if FontDir <> '' then
     if PathCompare(PathExtractDir(Result), FontDir) = 0 then
       Result := PathExtractName(Result);
@@ -687,8 +691,13 @@ var
         I := 63;
       SetStringValue(H2, 'DisplayName', Copy(Z, 1, I));
       SetStringValueUnlessEmpty(H2, 'DisplayIcon', ExpandConst(SetupHeader.UninstallDisplayIcon));
-      SetStringValue(H2, 'UninstallString', '"' + UninstallExeFilename + '"');
-      SetStringValue(H2, 'QuietUninstallString', '"' + UninstallExeFilename + '" /SILENT');
+      var ExtraUninstallString: String;
+      if shUninstallLogging in SetupHeader.Options then
+        ExtraUninstallString := ' /LOG'
+      else
+        ExtraUninstallString := '';
+      SetStringValue(H2, 'UninstallString', '"' + UninstallExeFilename + '"' + ExtraUninstallString);
+      SetStringValue(H2, 'QuietUninstallString', '"' + UninstallExeFilename + '" /SILENT' + ExtraUninstallString);
       SetStringValueUnlessEmpty(H2, 'DisplayVersion', ExpandConst(SetupHeader.AppVersion));
       SetStringValueUnlessEmpty(H2, 'Publisher', ExpandConst(SetupHeader.AppPublisher));
       SetStringValueUnlessEmpty(H2, 'URLInfoAbout', ExpandConst(SetupHeader.AppPublisherURL));
@@ -3501,6 +3510,47 @@ begin
   AHTTPClient.SecureProtocols := [THTTPSecureProtocol.TLS1, THTTPSecureProtocol.TLS11, THTTPSecureProtocol.TLS12];
 end;
 
+function MaskPasswordInUrl(const Url: String): String;
+var
+  Uri: TUri;
+begin
+  Uri := TUri.Create(Url);
+  if Uri.Password <> '' then begin
+    Uri.Password := '***';
+    Result := Uri.ToString;
+  end else
+    Result := URL;
+end;
+
+procedure SetDownloadCredentials(const User, Pass: String);
+begin
+  DownloadUser := User;
+  DownloadPass := Pass;
+end;
+
+function GetCredentialsAndCleanUrl(const Url: String; var User, Pass, CleanUrl: String) : Boolean;
+var
+  Uri: TUri;
+begin
+  Uri := TUri.Create(Url);
+  if DownloadUser = '' then
+    User := TNetEncoding.URL.Decode(Uri.Username)
+  else
+    User := DownloadUser;
+  if DownloadPass = '' then
+    Pass := TNetEncoding.URL.Decode(Uri.Password, [TURLEncoding.TDecodeOption.PlusAsSpaces])
+  else
+    Pass := DownloadPass;
+  Uri.Username := '';
+  Uri.Password := '';
+  CleanUrl := Uri.ToString;
+  Result := (User <> '') or (Pass <> '');
+  if Result then
+    LogFmt('Download is using basic authentication: %s, ***', [User])
+  else
+    Log('Download is not using basic authentication');
+end;
+
 function DownloadTemporaryFile(const Url, BaseName, RequiredSHA256OfFile: String; const OnDownloadProgress: TOnDownloadProgress): Int64;
 var
   DisableFsRedir: Boolean;
@@ -3514,6 +3564,9 @@ var
   SHA256OfFile: String;
   RetriesLeft: Integer;
   LastError: DWORD;
+  User, Pass, CleanUrl: String;
+  HasCredentials : Boolean;
+  Base64: TBase64Encoding;
 begin
   if Url = '' then
     InternalError('DownloadTemporaryFile: Invalid Url value');
@@ -3522,7 +3575,7 @@ begin
 
   DestFile := AddBackslash(TempInstallDir) + BaseName;
 
-  LogFmt('Downloading temporary file from %s: %s', [Url, DestFile]);
+  LogFmt('Downloading temporary file from %s: %s', [MaskPasswordInURL(Url), DestFile]);
 
   DisableFsRedir := InstallDefaultDisableFsRedir;
 
@@ -3532,7 +3585,7 @@ begin
       Log('  File already downloaded.');
       Result := 0;
       Exit;
-    end;    
+    end;
     SetFileAttributesRedir(DisableFsRedir, DestFile, GetFileAttributesRedir(DisableFsRedir, DestFile) and not FILE_ATTRIBUTE_READONLY);
     DelayDeleteFile(DisableFsRedir, DestFile, 13, 50, 250);
   end else
@@ -3543,11 +3596,15 @@ begin
   TempF := nil;
   TempFileLeftOver := False;
   HandleStream := nil;
+  Base64 := nil;
+
   try
+    HasCredentials := GetCredentialsAndCleanUrl(URL, User, Pass, CleanUrl);
+
     { Setup downloader }
     HTTPDataReceiver := THTTPDataReceiver.Create;
     HTTPDataReceiver.BaseName := BaseName;
-    HTTPDataReceiver.Url := Url;
+    HTTPDataReceiver.Url := CleanUrl;
     HTTPDataReceiver.OnDownloadProgress := OnDownloadProgress;
 
     HTTPClient := THTTPClient.Create; { http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_an_HTTP_Client }
@@ -3569,7 +3626,11 @@ begin
 
     { Download to temporary file}
     HandleStream := THandleStream.Create(TempF.Handle);
-    HTTPResponse := HTTPClient.Get(Url, HandleStream);
+    if HasCredentials then begin
+      Base64 := TBase64Encoding.Create(0);
+      HTTPClient.CustomHeaders['Authorization'] := 'Basic ' + Base64.Encode(User + ':' + Pass);
+    end;
+    HTTPResponse := HTTPClient.Get(CleanUrl, HandleStream);
     if HTTPDataReceiver.Aborted then
       raise Exception.Create(SetupMessages[msgErrorDownloadAborted])
     else if (HTTPResponse.StatusCode < 200) or (HTTPResponse.StatusCode > 299) then
@@ -3617,6 +3678,7 @@ begin
       TempFileLeftOver := False;
     end;
   finally
+    Base64.Free;
     HandleStream.Free;
     TempF.Free;
     HTTPClient.Free;
@@ -3626,27 +3688,58 @@ begin
   end;
 end;
 
-function DownloadTemporaryFileSize(const Url: String): Int64;
+procedure DownloadTemporaryFileSizeAndDate(const Url: String; var FileSize: Int64; var FileDate: String);
 var
   HTTPClient: THTTPClient;
   HTTPResponse: IHTTPResponse;
+  User, Pass, CleanUrl: string;
+  HasCredentials : Boolean;
+  Base64: TBase64Encoding;
 begin
-  if Url = '' then
-    InternalError('DownloadTemporaryFileSize: Invalid Url value');
-
-  LogFmt('Getting size of %s.', [Url]);
-
   HTTPClient := THTTPClient.Create;
+  Base64 := nil;
+  HasCredentials := GetCredentialsAndCleanUrl(Url, User, Pass, CleanUrl);
   try
+    if HasCredentials then begin
+      Base64 := TBase64Encoding.Create(0);
+      HTTPClient.CustomHeaders['Authorization'] := 'Basic ' + Base64.Encode(User + ':' + Pass);
+    end;
     SetUserAgentAndSecureProtocols(HTTPClient);
-    HTTPResponse := HTTPClient.Head(Url);
+    HTTPResponse := HTTPClient.Head(CleanUrl);
     if (HTTPResponse.StatusCode < 200) or (HTTPResponse.StatusCode > 299) then
       raise Exception.Create(FmtSetupMessage(msgErrorDownloadSizeFailed, [IntToStr(HTTPResponse.StatusCode), HTTPResponse.StatusText]))
-    else
-      Result := HTTPResponse.ContentLength; { Could be -1 }
+    else begin
+      FileSize := HTTPResponse.ContentLength;
+      FileDate := HTTPResponse.LastModified;
+    end;
   finally
+    Base64.Free;
     HTTPClient.Free;
   end;
 end;
 
+function DownloadTemporaryFileSize(const Url: String): Int64;
+var
+  FileSize: Int64;
+  FileDate: String;
+begin
+  if Url = '' then
+    InternalError('DownloadTemporaryFileSize: Invalid Url value');
+  LogFmt('Getting size of %s.', [MaskPasswordInUrl(Url)]);
+  DownloadTemporaryFileSizeAndDate(Url, FileSize, FileDate);
+  Result := FileSize;
+end;
+
+function DownloadTemporaryFileDate(const Url: String): String;
+var
+  FileSize: Int64;
+  FileDate: String;
+begin
+  if Url = '' then
+    InternalError('DownloadTemporaryFileDate: Invalid Url value');
+  LogFmt('Getting last modified date of %s.', [MaskPasswordInUrl(Url)]);
+  DownloadTemporaryFileSizeAndDate(Url, FileSize, FileDate);
+  Result := FileDate;
+end;
+
 end.

+ 64 - 69
Projects/Main.pas

@@ -2,7 +2,7 @@ unit Main;
 
 {
   Inno Setup
-  Copyright (C) 1997-2022 Jordan Russell
+  Copyright (C) 1997-2024 Jordan Russell
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
 
@@ -52,6 +52,10 @@ type
     seTask, seDir, seFile, seFileLocation, seIcon, seIni, seRegistry,
     seInstallDelete, seUninstallDelete, seRun, seUninstallRun);
 
+  TShellFolderID = (sfDesktop, sfStartMenu, sfPrograms, sfStartup, sfSendTo,  //these have common and user versions
+    sfFonts, sfAppData, sfDocs, sfTemplates,                                  //
+    sfFavorites, sfLocalAppData, sfUserProgramFiles, sfUserCommonFiles, sfUserSavedGames); //these only have user versions
+
 const
   EntryStrings: array[TEntryType] of Integer = (SetupLanguageEntryStrings,
     SetupCustomMessageEntryStrings, SetupPermissionEntryStrings,
@@ -125,7 +129,7 @@ var
   { 'Constants' }
   SourceDir, TempInstallDir, WinDir, WinSystemDir, WinSysWow64Dir, WinSysNativeDir, SystemDrive,
     ProgramFiles32Dir, CommonFiles32Dir, ProgramFiles64Dir, CommonFiles64Dir,
-    ProgramFilesUserDir, CommonFilesUserDir, SavedGamesUserDir, CmdFilename, SysUserInfoName,
+    CmdFilename, SysUserInfoName,
     SysUserInfoOrg, UninstallExeFilename: String;
 
   { Uninstall 'constants' }
@@ -206,8 +210,7 @@ function ExpandConstEx2(const S: String; const CustomConsts: array of String;
   const DoExpandIndividualConst: Boolean): String;
 function ExpandConstIfPrefixed(const S: String): String;
 function GetCustomMessageValue(const AName: String; var AValue: String): Boolean;
-function GetShellFolder(const Common: Boolean; const ID: TShellFolderID;
-  ReadOnly: Boolean): String;
+function GetShellFolder(const Common: Boolean; const ID: TShellFolderID): String;
 function GetShellFolderByCSIDL(Folder: Integer; const Create: Boolean): String;
 function GetUninstallRegKeyBaseName(const ExpandedAppId: String): String;
 function GetUninstallRegSubkeyName(const UninstallRegKeyBaseName: String): String;
@@ -1021,13 +1024,16 @@ function ExpandIndividualConst(Cnst: String;
   end;
 
 const
-  FolderConsts: array[Boolean, TShellFolderID] of String =
-    (('userdesktop', 'userstartmenu', 'userprograms', 'userstartup',
-      'usersendto', 'commonfonts', 'userappdata', 'userdocs', 'usertemplates',
-      'userfavorites', 'localappdata'),
-     ('commondesktop', 'commonstartmenu', 'commonprograms', 'commonstartup',
-      'usersendto', 'commonfonts', 'commonappdata', 'commondocs', 'commontemplates',
-      'commonfavorites' { not accepted anymore by the compiler }, 'localappdata'));
+  FolderConsts: array[Boolean, TShellFolderID] of String = (
+    { Also see FolderIDs }
+    { User }
+    ('userdesktop', 'userstartmenu', 'userprograms', 'userstartup',
+     'usersendto', 'commonfonts', 'userappdata', 'userdocs', 'usertemplates',
+     'userfavorites', 'localappdata', 'userpf', 'usercf', 'usersavedgames'),
+    { Common }
+    ('commondesktop', 'commonstartmenu', 'commonprograms', 'commonstartup',
+     'usersendto', 'commonfonts', 'commonappdata', 'commondocs', 'commontemplates',
+     'commonfavorites' { not accepted anymore by the compiler }, '', '', '', ''));
   NoUninstallConsts: array[0..6] of String =
     ('src', 'srcexe', 'userinfoname', 'userinfoorg', 'userinfoserial', 'hwnd',
      'wizardhwnd');
@@ -1079,24 +1085,12 @@ begin
   else if Cnst = 'srcexe' then Result := SetupLdrOriginalFilename
   else if Cnst = 'tmp' then Result := TempInstallDir
   else if Cnst = 'sd' then Result := SystemDrive
-  else if Cnst = 'userpf' then begin
-    if ProgramFilesUserDir <> '' then
-      Result := ProgramFilesUserDir
-    else
-      Result := ExpandConst('{localappdata}\Programs'); { supply default, same as Window 7 and newer }
-  end
   else if Cnst = 'commonpf' then begin
     if Is64BitInstallMode then
       Result := ProgramFiles64Dir
     else
       Result := ProgramFiles32Dir;
   end
-  else if Cnst = 'usercf' then begin
-    if CommonFilesUserDir <> '' then
-      Result := CommonFilesUserDir
-    else
-      Result := ExpandConst('{localappdata}\Programs\Common'); { supply default, same as Window 7 and newer }
-  end
   else if Cnst = 'commoncf' then begin
     if Is64BitInstallMode then
       Result := CommonFiles64Dir
@@ -1117,7 +1111,6 @@ begin
     else
       InternalError('Cannot expand "' + OriginalCnst + '" constant on this version of Windows');
   end
-  else if Cnst = 'usersavedgames' then Result := SavedGamesUserDir
   else if Cnst = 'userfonts' then Result := ExpandConst('{localappdata}\Microsoft\Windows\Fonts') { supported by Windows 10 Version 1803 and newer. doesn't have a KNOWNFOLDERID. }
   else if Cnst = 'dao' then Result := ExpandConst('{cf}\Microsoft Shared\DAO')
   else if Cnst = 'cmd' then Result := CmdFilename
@@ -1151,7 +1144,7 @@ begin
       if WizardGroupValue = '' then
         InternalError('An attempt was made to expand the "' + OriginalCnst + '" constant before it was initialized');
       ShellFolder := GetShellFolder(not(shAlwaysUsePersonalGroup in SetupHeader.Options) and IsAdminInstallMode,
-        sfPrograms, False);
+        sfPrograms);
       if ShellFolder = '' then
         InternalError('Failed to expand "' + OriginalCnst + '" constant');
       Result := AddBackslash(ShellFolder) + WizardGroupValue;
@@ -1205,7 +1198,7 @@ begin
     for Common := False to True do
       for ShellFolderID := Low(ShellFolderID) to High(ShellFolderID) do
         if Cnst = FolderConsts[Common, ShellFolderID] then begin
-          ShellFolder := GetShellFolder(Common, ShellFolderID, False);
+          ShellFolder := GetShellFolder(Common, ShellFolderID);
           if ShellFolder = '' then
             InternalError(Format('Failed to expand shell folder constant "%s"', [OriginalCnst]));
           Result := ShellFolder;
@@ -1340,13 +1333,6 @@ procedure InitMainNonSHFolderConsts;
     end;
   end;
 
-const
-  FOLDERID_UserProgramFiles: TGUID = (D1:$5CD7AEE2; D2:$2219; D3:$4A67; D4:($B8,$5D,$6C,$9C,$E1,$56,$60,$CB));
-  FOLDERID_UserProgramFilesCommon: TGUID = (D1:$BCBD3057; D2:$CA5C; D3:$4622; D4:($B4,$2D,$BC,$56,$DB,$0A,$E5,$16));
-  FOLDERID_SavedGames: TGUID = (D1:$4C5C32FF; D2:$BB9D; D3:$43B0; D4:($B5,$B4,$2D,$72,$E5,$4E,$AA,$A4));
-  KF_FLAG_CREATE = $00008000;
-var
-  Path: PWideChar;
 begin
   { Read Windows and Windows System dirs }
   WinDir := GetWinDir;
@@ -1384,31 +1370,6 @@ begin
       InternalError('Failed to get path of 64-bit Common Files directory');
   end;
 
-  { Get dirs which have no CSIDL equivalent and cannot be retrieved using SHGetFolderPath. }
-  if Assigned(SHGetKnownFolderPathFunc) and (WindowsVersion shr 16 >= $0600) then begin
-    if SHGetKnownFolderPathFunc(FOLDERID_UserProgramFiles {Windows 7+}, KF_FLAG_CREATE, 0, Path) = S_OK then begin
-      try
-        ProgramFilesUserDir := WideCharToString(Path);
-      finally
-        CoTaskMemFree(Path);
-      end;
-    end;
-    if SHGetKnownFolderPathFunc(FOLDERID_UserProgramFilesCommon {Windows 7+}, KF_FLAG_CREATE, 0, Path) = S_OK then begin
-      try
-        CommonFilesUserDir := WideCharToString(Path);
-      finally
-        CoTaskMemFree(Path);
-      end;
-    end;
-    if SHGetKnownFolderPathFunc(FOLDERID_SavedGames {Vista+}, KF_FLAG_CREATE, 0, Path) = S_OK then begin
-      try
-        SavedGamesUserDir := WideCharToString(Path);
-      finally
-        CoTaskMemFree(Path);
-      end;
-    end;
-  end;
-  
   { Get path of command interpreter }
   if IsNT then
     CmdFilename := AddBackslash(WinSystemDir) + 'cmd.exe'
@@ -1562,6 +1523,8 @@ var
   Res: HRESULT;
   Buf: array[0..MAX_PATH-1] of Char;
 begin
+  { Note: Must pass Create=True or else SHGetFolderPath fails if the
+    specified CSIDL is valid but doesn't currently exist. }
   if Create then
     Folder := Folder or CSIDL_FLAG_CREATE;
 
@@ -1592,8 +1555,28 @@ begin
   end;
 end;
 
-function GetShellFolder(const Common: Boolean; const ID: TShellFolderID;
-  ReadOnly: Boolean): String;
+function GetShellFolderByGUID(Folder: TGUID; const Create: Boolean): String;
+begin
+  if Assigned(SHGetKnownFolderPathFunc) and (WindowsVersion shr 16 >= $0600) then begin
+    var dwFlags: DWORD := 0;
+    if Create then
+      dwFlags := dwFlags or KF_FLAG_CREATE;
+    var Path: PWideChar;
+    { Note: Must pass Create=True or else SHGetKnownFolderPath fails if the
+      specified GUID is valid but doesn't currently exist. }
+    var Res := SHGetKnownFolderPathFunc(Folder, dwFlags, 0, Path);
+    if Res = S_OK then begin
+      Result := WideCharToString(Path);
+      CoTaskMemFree(Path);
+    end else begin
+      Result := '';
+      LogFmt('Warning: SHGetKnownFolderPath failed with code 0x%.8x', [Res]);
+    end;
+  end else
+    Result := '';
+end;
+
+function GetShellFolder(const Common: Boolean; const ID: TShellFolderID): String;
 const
   CSIDL_COMMON_STARTMENU = $0016;
   CSIDL_COMMON_PROGRAMS = $0017;
@@ -1606,24 +1589,36 @@ const
   CSIDL_COMMON_TEMPLATES = $002D;
   CSIDL_COMMON_DOCUMENTS = $002E;
   FolderIDs: array[Boolean, TShellFolderID] of Integer = (
+    { Values must match FolderConsts }
     { User }
     (CSIDL_DESKTOPDIRECTORY, CSIDL_STARTMENU, CSIDL_PROGRAMS, CSIDL_STARTUP,
      CSIDL_SENDTO, CSIDL_FONTS, CSIDL_APPDATA, CSIDL_PERSONAL,
-     CSIDL_TEMPLATES, CSIDL_FAVORITES, CSIDL_LOCAL_APPDATA),
+     CSIDL_TEMPLATES, CSIDL_FAVORITES, CSIDL_LOCAL_APPDATA, 0, 0, 0),
     { Common }
     (CSIDL_COMMON_DESKTOPDIRECTORY, CSIDL_COMMON_STARTMENU, CSIDL_COMMON_PROGRAMS, CSIDL_COMMON_STARTUP,
      CSIDL_SENDTO, CSIDL_FONTS, CSIDL_COMMON_APPDATA, CSIDL_COMMON_DOCUMENTS,
-     CSIDL_COMMON_TEMPLATES, CSIDL_COMMON_FAVORITES, CSIDL_LOCAL_APPDATA));
+     CSIDL_COMMON_TEMPLATES, CSIDL_COMMON_FAVORITES, 0, 0, 0, 0));
+  FOLDERID_UserProgramFiles: TGUID = (D1:$5CD7AEE2; D2:$2219; D3:$4A67; D4:($B8,$5D,$6C,$9C,$E1,$56,$60,$CB));
+  FOLDERID_UserProgramFilesCommon: TGUID = (D1:$BCBD3057; D2:$CA5C; D3:$4622; D4:($B4,$2D,$BC,$56,$DB,$0A,$E5,$16));
+  FOLDERID_SavedGames: TGUID = (D1:$4C5C32FF; D2:$BB9D; D3:$43B0; D4:($B5,$B4,$2D,$72,$E5,$4E,$AA,$A4));
 var
   ShellFolder: String;
 begin
   if not ShellFoldersRead[Common, ID] then begin
-    { Note: Must pass Create=True or else SHGetFolderPath fails if the
-      specified CSIDL is valid but doesn't currently exist. }
-    ShellFolder := GetShellFolderByCSIDL(FolderIDs[Common, ID], not ReadOnly);
+    if ID = sfUserProgramFiles then begin
+      ShellFolder := GetShellFolderByGUID(FOLDERID_UserProgramFiles {Windows 7+}, True);
+      if ShellFolder = '' then
+        ShellFolder := ExpandConst('{localappdata}\Programs'); { supply default, same as Window 7 and newer }
+    end else if ID = sfUserCommonFiles then begin
+      ShellFolder := GetShellFolderByGUID(FOLDERID_UserProgramFilesCommon {Windows 7+}, True);
+      if ShellFolder = '' then
+        ShellFolder := ExpandConst('{localappdata}\Programs\Common'); { supply default, same as Window 7 and newer }
+    end else if ID = sfUserSavedGames then
+      ShellFolder := GetShellFolderByGUID(FOLDERID_SavedGames {Vista+}, True)
+    else
+      ShellFolder := GetShellFolderByCSIDL(FolderIDs[Common, ID], True);
     ShellFolders[Common, ID] := ShellFolder;
-    if not ReadOnly or (ShellFolder <> '') then
-      ShellFoldersRead[Common, ID] := True;
+    ShellFoldersRead[Common, ID] := True;
   end;
   Result := ShellFolders[Common, ID];
 end;
@@ -3810,8 +3805,8 @@ begin
   S := SetupTitle + ' version ' + SetupVersion + SNewLine;
   if SetupTitle <> 'Inno Setup' then
     S := S + (SNewLine + 'Based on Inno Setup' + SNewLine);
-  S := S + ('Copyright (C) 1997-2022 Jordan Russell' + SNewLine +
-    'Portions Copyright (C) 2000-2022 Martijn Laan' + SNewLine +
+  S := S + ('Copyright (C) 1997-2024 Jordan Russell' + SNewLine +
+    'Portions Copyright (C) 2000-2024 Martijn Laan' + SNewLine +
     'All rights reserved.' + SNewLine2 +
     'Inno Setup home page:' + SNewLine +
     'https://www.innosetup.com/');

+ 108 - 0
Projects/Projects.groupproj

@@ -0,0 +1,108 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{C0278F77-1554-45D9-B1E9-69FB923E8771}</ProjectGuid>
+    </PropertyGroup>
+    <ItemGroup>
+        <Projects Include="Compil32.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="ISCC.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="ISCmplr.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="ISPP\ISPP.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="Setup.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="SetupLdr.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="..\ISHelp\ISHelpGen\ISHelpGen.dproj">
+            <Dependencies/>
+        </Projects>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Default.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Default.Personality/>
+        </BorlandProject>
+    </ProjectExtensions>
+    <Target Name="Compil32">
+        <MSBuild Projects="Compil32.dproj"/>
+    </Target>
+    <Target Name="Compil32:Clean">
+        <MSBuild Projects="Compil32.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="Compil32:Make">
+        <MSBuild Projects="Compil32.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="ISCC">
+        <MSBuild Projects="ISCC.dproj"/>
+    </Target>
+    <Target Name="ISCC:Clean">
+        <MSBuild Projects="ISCC.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="ISCC:Make">
+        <MSBuild Projects="ISCC.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="ISCmplr">
+        <MSBuild Projects="ISCmplr.dproj"/>
+    </Target>
+    <Target Name="ISCmplr:Clean">
+        <MSBuild Projects="ISCmplr.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="ISCmplr:Make">
+        <MSBuild Projects="ISCmplr.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="ISPP">
+        <MSBuild Projects="ISPP\ISPP.dproj"/>
+    </Target>
+    <Target Name="ISPP:Clean">
+        <MSBuild Projects="ISPP\ISPP.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="ISPP:Make">
+        <MSBuild Projects="ISPP\ISPP.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="Setup">
+        <MSBuild Projects="Setup.dproj"/>
+    </Target>
+    <Target Name="Setup:Clean">
+        <MSBuild Projects="Setup.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="Setup:Make">
+        <MSBuild Projects="Setup.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="SetupLdr">
+        <MSBuild Projects="SetupLdr.dproj"/>
+    </Target>
+    <Target Name="SetupLdr:Clean">
+        <MSBuild Projects="SetupLdr.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="SetupLdr:Make">
+        <MSBuild Projects="SetupLdr.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="ISHelpGen">
+        <MSBuild Projects="..\ISHelp\ISHelpGen\ISHelpGen.dproj"/>
+    </Target>
+    <Target Name="ISHelpGen:Clean">
+        <MSBuild Projects="..\ISHelp\ISHelpGen\ISHelpGen.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="ISHelpGen:Make">
+        <MSBuild Projects="..\ISHelp\ISHelpGen\ISHelpGen.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="Build">
+        <CallTarget Targets="Compil32;ISCC;ISCmplr;ISPP;Setup;SetupLdr;ISHelpGen"/>
+    </Target>
+    <Target Name="Clean">
+        <CallTarget Targets="Compil32:Clean;ISCC:Clean;ISCmplr:Clean;ISPP:Clean;Setup:Clean;SetupLdr:Clean;ISHelpGen:Clean"/>
+    </Target>
+    <Target Name="Make">
+        <CallTarget Targets="Compil32:Make;ISCC:Make;ISCmplr:Make;ISPP:Make;Setup:Make;SetupLdr:Make;ISHelpGen:Make"/>
+    </Target>
+    <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
+</Project>

+ 1 - 0
Projects/ScriptClasses_C.pas

@@ -556,6 +556,7 @@ begin
     RegisterProperty('AbortButton', 'TNewButton', iptr);
     RegisterProperty('AbortedByUser', 'Boolean', iptr);
     RegisterMethod('procedure Add(const Url, BaseName, RequiredSHA256OfFile: String)');
+    RegisterMethod('procedure AddEx(const Url, BaseName, RequiredSHA256OfFile, UserName, Password: String)');
     RegisterMethod('procedure Clear');
     RegisterMethod('function Download: Int64');
     RegisterMethod('procedure Show'); { Without this TOutputProgressWizardPage's Show will be called }

+ 1 - 0
Projects/ScriptClasses_R.pas

@@ -338,6 +338,7 @@ begin
   begin
     RegisterPropertyHelper(@TDownloadPageAbortedByUser_R,nil,'AbortedByUser');
     RegisterMethod(@TDownloadWizardPage.Add, 'Add');
+    RegisterMethod(@TDownloadWizardPage.AddEx, 'AddEx');
     RegisterMethod(@TDownloadWizardPage.Clear, 'Clear');
     RegisterMethod(@TDownloadWizardPage.Download, 'Download');
     RegisterMethod(@TDownloadWizardPage.Show, 'Show');

+ 11 - 1
Projects/ScriptDlg.pas

@@ -189,6 +189,7 @@ type
       procedure Initialize; override;
       property AbortedByUser: Boolean read FAbortedByUser;
       procedure Add(const Url, BaseName, RequiredSHA256OfFile: String);
+      procedure AddEx(const Url, BaseName, RequiredSHA256OfFile, UserName, Password: String);
       procedure Clear;
       function Download: Int64;
       property OnDownloadProgress: TOnDownloadProgress write FOnDownloadProgress;
@@ -922,7 +923,7 @@ end;
 
 type
   TDownloadFile = class
-    Url, BaseName, RequiredSHA256OfFile: String;
+    Url, BaseName, RequiredSHA256OfFile, UserName, Password: String;
   end;
 
 procedure TDownloadWizardPage.AbortButtonClick(Sender: TObject);
@@ -1014,6 +1015,11 @@ begin
 end;
 
 procedure TDownloadWizardPage.Add(const Url, BaseName, RequiredSHA256OfFile: String);
+begin
+  AddEx(Url, BaseName, RequiredSHA256OfFile, '', '');
+end;
+
+procedure TDownloadWizardPage.AddEx(const Url, BaseName, RequiredSHA256OfFile, UserName, Password: String);
 var
   F: TDownloadFile;
 begin
@@ -1021,6 +1027,8 @@ begin
   F.Url := Url;
   F.BaseName := BaseName;
   F.RequiredSHA256OfFile := RequiredSHA256OfFile;
+  F.UserName := UserName;
+  F.Password := Password;
   FFiles.Add(F);
 end;
 
@@ -1040,8 +1048,10 @@ begin
   for I := 0 to FFiles.Count-1 do begin
     F := TDownloadFile(FFiles[I]);
     { Don't need to set DownloadTemporaryFileProcessMessages before downloading since we already process messages ourselves. }
+    SetDownloadCredentials(F.UserName, F.Password);
     Result := Result + DownloadTemporaryFile(F.Url, F.BaseName, F.RequiredSHA256OfFile, InternalOnDownloadProgress);
   end;
+  SetDownloadCredentials('', '');
 end;
 
 {$ENDIF}

+ 6 - 3
Projects/ScriptFunc.pas

@@ -129,7 +129,7 @@ const
 
   { Install }
 {$IFNDEF PS_NOINT64}
-  InstallTable: array [0..3] of AnsiString =
+  InstallTable: array [0..5] of AnsiString =
 {$ELSE}
   InstallTable: array [0..2] of AnsiString =
 {$ENDIF}
@@ -138,7 +138,9 @@ const
     'function ExtractTemporaryFiles(const Pattern: String): Integer;',
 {$IFNDEF PS_NOINT64}
     'function DownloadTemporaryFile(const Url, FileName, RequiredSHA256OfFile: String; const OnDownloadProgress: TOnDownloadProgress): Int64;',
-    'function DownloadTemporaryFileSize(const Url: String): Int64;'
+    'function DownloadTemporaryFileSize(const Url: String): Int64;',
+    'function DownloadTemporaryFileDate(const Url: String): String;',
+    'procedure SetDownloadCredentials(const User, Pass: String);'
 {$ENDIF}
   );
 
@@ -347,7 +349,7 @@ const
   );
 
   { Other }
-  OtherTable: array [0..33] of AnsiString =
+  OtherTable: array [0..34] of AnsiString =
   (
     'procedure BringToFrontAndRestore;',
     'function WizardDirValue: String;',
@@ -377,6 +379,7 @@ const
     'function SaveStringToFile(const FileName: String; const S: AnsiString; const Append: Boolean): Boolean;',
     'function SaveStringsToFile(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;',
     'function SaveStringsToUTF8File(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;',
+    'function SaveStringsToUTF8FileNoPreamble(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;',
     'function EnableFsRedirection(const Enable: Boolean): Boolean;',
     'function GetUninstallProgressForm: TUninstallProgressForm;',
     'function CreateCallback(Method: AnyMethod): Longword;',

+ 0 - 1
Projects/ScriptFunc_C.pas

@@ -109,7 +109,6 @@ begin
     'end');
 
   RegisterRealEnum('TMsgBoxType', TypeInfo(TMsgBoxType));
-  RegisterRealEnum('TShellFolderID', TypeInfo(TShellFolderID));
   RegisterRealEnum('TSetupMessageID', TypeInfo(TSetupMessageID));
   RegisterRealEnum('TSetupStep', TypeInfo(TSetupStep));
   RegisterRealEnum('TUninstallStep', TypeInfo(TUninstallStep));

+ 12 - 4
Projects/ScriptFunc_R.pas

@@ -811,9 +811,12 @@ begin
     else
       OnDownloadProgress := nil;
     Stack.SetInt64(PStart, DownloadTemporaryFile(Stack.GetString(PStart-1), Stack.GetString(PStart-2), Stack.GetString(PStart-3), OnDownloadProgress));
+  end else if Proc.Name = 'SETDOWNLOADCREDENTIALS' then begin
+    SetDownloadCredentials(Stack.GetString(PStart),Stack.GetString(PStart-1));
   end else if Proc.Name = 'DOWNLOADTEMPORARYFILESIZE' then begin
     Stack.SetInt64(PStart, DownloadTemporaryFileSize(Stack.GetString(PStart-1)));
-{$ENDIF}
+  end else if Proc.Name = 'DOWNLOADTEMPORARYFILEDATE' then begin
+    Stack.SetString(PStart, DownloadTemporaryFileDate(Stack.GetString(PStart-1)));{$ENDIF}
   end else
     Result := False;
 end;
@@ -1790,7 +1793,7 @@ function OtherProc(Caller: TPSExec; Proc: TPSExternalProcRec; Global, Stack: TPS
     end;
   end;
 
-  function SaveStringsToFile(const FileName: String; const Arr: PPSVariantIFC; Append, UTF8: Boolean): Boolean;
+  function SaveStringsToFile(const FileName: String; const Arr: PPSVariantIFC; Append, UTF8, UTF8NoPreamble: Boolean): Boolean;
   var
     F: TTextFileWriter;
     I, N: Integer;
@@ -1806,6 +1809,8 @@ function OtherProc(Caller: TPSExec; Proc: TPSExternalProcRec; Global, Stack: TPS
       else
         F := TTextFileWriterRedir.Create(ScriptFuncDisableFsRedir, FileName, fdCreateAlways, faWrite, fsNone);
       try
+        if UTF8 and UTF8NoPreamble then
+          F.UTF8NoPreamble := UTF8NoPreamble;
         N := PSDynArrayGetLength(Pointer(Arr.Dta^), Arr.aType);
         for I := 0 to N-1 do begin
           S := VNGetString(PSGetArrayField(Arr^, I));
@@ -2024,10 +2029,13 @@ begin
     Stack.SetBool(PStart, SaveStringToFile(Stack.GetString(PStart-1), StackGetAnsiString(Stack, PStart-2), Stack.GetBool(PStart-3)));
   end else if Proc.Name = 'SAVESTRINGSTOFILE' then begin
     Arr := NewTPSVariantIFC(Stack[PStart-2], True);
-    Stack.SetBool(PStart, SaveStringsToFile(Stack.GetString(PStart-1), @Arr, Stack.GetBool(PStart-3), False));
+    Stack.SetBool(PStart, SaveStringsToFile(Stack.GetString(PStart-1), @Arr, Stack.GetBool(PStart-3), False, False));
   end else if Proc.Name = 'SAVESTRINGSTOUTF8FILE' then begin
     Arr := NewTPSVariantIFC(Stack[PStart-2], True);
-    Stack.SetBool(PStart, SaveStringsToFile(Stack.GetString(PStart-1), @Arr, Stack.GetBool(PStart-3), True));
+    Stack.SetBool(PStart, SaveStringsToFile(Stack.GetString(PStart-1), @Arr, Stack.GetBool(PStart-3), True, False));
+  end else if Proc.Name = 'SAVESTRINGSTOUTF8FILENOPREAMBLE' then begin
+    Arr := NewTPSVariantIFC(Stack[PStart-2], True);
+    Stack.SetBool(PStart, SaveStringsToFile(Stack.GetString(PStart-1), @Arr, Stack.GetBool(PStart-3), True, True));
   end else if Proc.Name = 'ENABLEFSREDIRECTION' then begin
     Stack.SetBool(PStart, not ScriptFuncDisableFsRedir);
     if Stack.GetBool(PStart-1) then

+ 6 - 6
Projects/SelFolderForm.pas

@@ -61,13 +61,13 @@ begin
     if StartMenu then begin
       with Form.FFolderTreeView as TStartMenuFolderTreeView do
         if IsNT then
-          SetPaths(GetShellFolder(False, sfPrograms, False),
-            GetShellFolder(True, sfPrograms, False),
-            GetShellFolder(False, sfStartup, False),
-            GetShellFolder(True, sfStartup, False))
+          SetPaths(GetShellFolder(False, sfPrograms),
+            GetShellFolder(True, sfPrograms),
+            GetShellFolder(False, sfStartup),
+            GetShellFolder(True, sfStartup))
         else
-          SetPaths(GetShellFolder(False, sfPrograms, False),
-            '', GetShellFolder(False, sfStartup, False), '');
+          SetPaths(GetShellFolder(False, sfPrograms),
+            '', GetShellFolder(False, sfStartup), '');
       TidyUpGroupName(Path);
     end
     else

+ 0 - 45
Projects/Setup.dof

@@ -1,45 +0,0 @@
-[Compiler]
-A=1
-B=0
-C=0
-D=1
-E=0
-F=0
-G=1
-H=1
-I=1
-J=1
-K=0
-L=1
-M=0
-N=1
-O=1
-P=1
-Q=0
-R=0
-S=0
-T=0
-U=0
-V=1
-W=0
-X=1
-Y=0
-Z=1
-ShowHints=1
-ShowWarnings=1
-UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-[Linker]
-MapFile=0
-OutputObjs=0
-ConsoleApp=1
-DebugInfo=0
-MinStackSize=16384
-MaxStackSize=1048576
-ImageBase=4194304
-ExeDescription=
-[Directories]
-OutputDir=
-SearchPath=..\components;..\components\ps\source
-Conditionals=PS_MINIVCL;PS_NOWIDESTRING;PS_NOINT64;PS_NOGRAPHCONST
-[Parameters]
-RunParams=

+ 8 - 12
Projects/Setup.dpr

@@ -9,11 +9,6 @@ program Setup;
   Setup program
 }
 
-{$SetPEFlags 1} 
-{$SETPEOSVERSION 6.1}
-{$SETPESUBSYSVERSION 6.1}
-{$WEAKLINKRTTI ON}
-
 uses
   SafeDLLPath in 'SafeDLLPath.pas',
   XPTheme in 'XPTheme.pas',
@@ -74,13 +69,14 @@ uses
   SpawnClient in 'SpawnClient.pas',
   TaskDialog in 'TaskDialog.pas';
 
-{$R *.RES}
-{$IFDEF UNICODE}
-{$R SetupVersionUnicode.res}
-{$ELSE}
-{$R SetupVersion.res}
-{$ENDIF}
-{$R IMAGES.RES}
+{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
+{$SETPEOSVERSION 6.1}
+{$SETPESUBSYSVERSION 6.1}
+{$WEAKLINKRTTI ON}
+
+{$R Setup.icon.res}
+{$R Setup.images.res}
+{$R Setup.version.res}
 
 {$I VERSION.INC}
 

+ 174 - 175
Projects/Setup.dproj

@@ -1,175 +1,174 @@
-	<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-		<PropertyGroup>
-			<ProjectGuid>{FD254B03-7073-488D-990E-F96D4339E0C4}</ProjectGuid>
-			<MainSource>Setup.dpr</MainSource>
-			<Config Condition="'$(Config)'==''">Debug</Config>
-			<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
-			<ProjectVersion>12.0</ProjectVersion>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
-			<Cfg_1>true</Cfg_1>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
-			<Cfg_2>true</Cfg_2>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Base)'!=''">
-			<DCC_UnitSearchPath>..\components;..\components\unips\source;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
-			<DCC_DependencyCheckOutputName>Setup.exe</DCC_DependencyCheckOutputName>
-			<DCC_ImageBase>00400000</DCC_ImageBase>
-			<DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
-			<DCC_Alignment>1</DCC_Alignment>
-			<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
-			<DCC_Platform>x86</DCC_Platform>
-			<DCC_WriteableConstants>true</DCC_WriteableConstants>
-			<DCC_K>false</DCC_K>
-			<DCC_N>true</DCC_N>
-			<DCC_S>false</DCC_S>
-			<DCC_F>false</DCC_F>
-			<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
-			<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
-			<DCC_E>false</DCC_E>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_1)'!=''">
-			<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
-			<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
-			<DCC_DebugInformation>false</DCC_DebugInformation>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_2)'!=''">
-			<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
-		</PropertyGroup>
-		<ItemGroup>
-			<DelphiCompile Include="Setup.dpr">
-				<MainSource>MainSource</MainSource>
-			</DelphiCompile>
-			<DCCReference Include="SafeDLLPath.pas"/>
-			<DCCReference Include="XPTheme.pas"/>
-			<DCCReference Include="D2009Win2kFix.pas"/>
-			<DCCReference Include="CmnFunc.pas"/>
-			<DCCReference Include="CmnFunc2.pas"/>
-			<DCCReference Include="Main.pas">
-				<Form>MainForm</Form>
-			</DCCReference>
-			<DCCReference Include="Install.pas"/>
-			<DCCReference Include="Msgs.pas"/>
-			<DCCReference Include="MsgIDs.pas"/>
-			<DCCReference Include="Undo.pas"/>
-			<DCCReference Include="Struct.pas"/>
-			<DCCReference Include="NewDisk.pas">
-				<Form>NewDiskForm</Form>
-			</DCCReference>
-			<DCCReference Include="InstFunc.pas"/>
-			<DCCReference Include="InstFnc2.pas"/>
-			<DCCReference Include="Wizard.pas">
-				<Form>WizardForm</Form>
-			</DCCReference>
-			<DCCReference Include="ScriptFunc_R.pas"/>
-			<DCCReference Include="ScriptFunc.pas"/>
-			<DCCReference Include="SetupTypes.pas"/>
-			<DCCReference Include="ScriptRunner.pas"/>
-			<DCCReference Include="ScriptDlg.pas"/>
-			<DCCReference Include="ScriptClasses_R.pas"/>
-			<DCCReference Include="SelLangForm.pas">
-				<Form>SelectLanguageForm</Form>
-			</DCCReference>
-			<DCCReference Include="Extract.pas"/>
-			<DCCReference Include="Int64Em.pas"/>
-			<DCCReference Include="SelFolderForm.pas">
-				<Form>SelectFolderForm</Form>
-			</DCCReference>
-			<DCCReference Include="Compress.pas"/>
-			<DCCReference Include="CompressZlib.pas"/>
-			<DCCReference Include="bzlib.pas"/>
-			<DCCReference Include="LZMADecomp.pas"/>
-			<DCCReference Include="FileClass.pas"/>
-			<DCCReference Include="MD5.pas"/>
-			<DCCReference Include="SHA1.pas"/>
-			<DCCReference Include="Logging.pas"/>
-			<DCCReference Include="DebugClient.pas"/>
-			<DCCReference Include="DebugStruct.pas"/>
-			<DCCReference Include="ArcFour.pas"/>
-			<DCCReference Include="Uninstall.pas"/>
-			<DCCReference Include="UninstProgressForm.pas">
-				<Form>UninstProgressForm</Form>
-			</DCCReference>
-			<DCCReference Include="UninstSharedFileForm.pas">
-				<Form>UninstSharedFileForm</Form>
-			</DCCReference>
-			<DCCReference Include="SimpleExpression.pas"/>
-			<DCCReference Include="UIStateForm.pas"/>
-			<DCCReference Include="SetupForm.pas"/>
-			<DCCReference Include="RegSvr.pas"/>
-			<DCCReference Include="BrowseFunc.pas"/>
-			<DCCReference Include="RedirFunc.pas"/>
-			<DCCReference Include="SecurityFunc.pas"/>
-			<DCCReference Include="Helper.pas"/>
-			<DCCReference Include="VerInfo.pas"/>
-			<DCCReference Include="RegDLL.pas"/>
-			<DCCReference Include="ResUpdate.pas"/>
-			<DCCReference Include="SpawnCommon.pas"/>
-			<DCCReference Include="SpawnServer.pas"/>
-			<DCCReference Include="SpawnClient.pas"/>
-			<BuildConfiguration Include="Base">
-				<Key>Base</Key>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Debug">
-				<Key>Cfg_2</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Release">
-				<Key>Cfg_1</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-		</ItemGroup>
-		<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
-		<ProjectExtensions>
-			<Borland.Personality>Delphi.Personality.12</Borland.Personality>
-			<Borland.ProjectType>VCLApplication</Borland.ProjectType>
-			<BorlandProject>
-				<Delphi.Personality>
-					<Source>
-						<Source Name="MainSource">Setup.dpr</Source>
-					</Source>
-					<Parameters>
-						<Parameters Name="UseLauncher">False</Parameters>
-						<Parameters Name="LoadAllSymbols">True</Parameters>
-						<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
-					</Parameters>
-					<VersionInfo>
-						<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
-						<VersionInfo Name="AutoIncBuild">False</VersionInfo>
-						<VersionInfo Name="MajorVer">1</VersionInfo>
-						<VersionInfo Name="MinorVer">0</VersionInfo>
-						<VersionInfo Name="Release">0</VersionInfo>
-						<VersionInfo Name="Build">0</VersionInfo>
-						<VersionInfo Name="Debug">False</VersionInfo>
-						<VersionInfo Name="PreRelease">False</VersionInfo>
-						<VersionInfo Name="Special">False</VersionInfo>
-						<VersionInfo Name="Private">False</VersionInfo>
-						<VersionInfo Name="DLL">False</VersionInfo>
-						<VersionInfo Name="Locale">1043</VersionInfo>
-						<VersionInfo Name="CodePage">1252</VersionInfo>
-					</VersionInfo>
-					<VersionInfoKeys>
-						<VersionInfoKeys Name="CompanyName"/>
-						<VersionInfoKeys Name="FileDescription"/>
-						<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="InternalName"/>
-						<VersionInfoKeys Name="LegalCopyright"/>
-						<VersionInfoKeys Name="LegalTrademarks"/>
-						<VersionInfoKeys Name="OriginalFilename"/>
-						<VersionInfoKeys Name="ProductName"/>
-						<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="Comments"/>
-					</VersionInfoKeys>
-				</Delphi.Personality>
-			</BorlandProject>
-			<ProjectFileVersion>12</ProjectFileVersion>
-		</ProjectExtensions>
-	</Project>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{BB7C6F6A-AC62-46BB-A790-0CF4A74B649E}</ProjectGuid>
+        <MainSource>Setup.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <FrameworkType>VCL</FrameworkType>
+        <ProjectVersion>19.5</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <DCC_Alignment>1</DCC_Alignment>
+        <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
+        <DCC_DebugInformation>1</DCC_DebugInformation>
+        <DCC_WriteableConstants>true</DCC_WriteableConstants>
+        <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
+        <DCC_UnitSearchPath>..\Components;..\Components\UniPs\Source;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
+        <DCC_Define>PS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS;$(DCC_Define)</DCC_Define>
+        <SanitizedProjectName>Setup</SanitizedProjectName>
+        <VerInfo_Locale>1043</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
+        <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;System.Bindings;$(DCC_Namespace)</DCC_Namespace>
+        <DCC_SYMBOL_DEPRECATED>false</DCC_SYMBOL_DEPRECATED>
+        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
+        <DCC_UNSAFE_CAST>false</DCC_UNSAFE_CAST>
+        <DCC_EXPLICIT_STRING_CAST>false</DCC_EXPLICIT_STRING_CAST>
+        <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
+        <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
+        <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_DcuOutput>Dcu\$(MainSource)</DCC_DcuOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>(None)</Manifest_File>
+        <OutputExt>e32</OutputExt>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_ExeOutput>..\Files</DCC_ExeOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="SafeDLLPath.pas"/>
+        <DCCReference Include="XPTheme.pas"/>
+        <DCCReference Include="CmnFunc.pas"/>
+        <DCCReference Include="CmnFunc2.pas"/>
+        <DCCReference Include="Main.pas">
+            <Form>MainForm</Form>
+        </DCCReference>
+        <DCCReference Include="Install.pas"/>
+        <DCCReference Include="Msgs.pas"/>
+        <DCCReference Include="MsgIDs.pas"/>
+        <DCCReference Include="Undo.pas"/>
+        <DCCReference Include="Struct.pas"/>
+        <DCCReference Include="NewDisk.pas">
+            <Form>NewDiskForm</Form>
+        </DCCReference>
+        <DCCReference Include="InstFunc.pas"/>
+        <DCCReference Include="InstFnc2.pas"/>
+        <DCCReference Include="Wizard.pas">
+            <Form>WizardForm</Form>
+        </DCCReference>
+        <DCCReference Include="ScriptFunc_R.pas"/>
+        <DCCReference Include="ScriptFunc.pas"/>
+        <DCCReference Include="SetupTypes.pas"/>
+        <DCCReference Include="ScriptRunner.pas"/>
+        <DCCReference Include="ScriptDlg.pas"/>
+        <DCCReference Include="ScriptClasses_R.pas"/>
+        <DCCReference Include="SelLangForm.pas">
+            <Form>SelectLanguageForm</Form>
+        </DCCReference>
+        <DCCReference Include="Extract.pas"/>
+        <DCCReference Include="Int64Em.pas"/>
+        <DCCReference Include="SelFolderForm.pas">
+            <Form>SelectFolderForm</Form>
+        </DCCReference>
+        <DCCReference Include="Compress.pas"/>
+        <DCCReference Include="CompressZlib.pas"/>
+        <DCCReference Include="bzlib.pas"/>
+        <DCCReference Include="LZMADecomp.pas"/>
+        <DCCReference Include="FileClass.pas"/>
+        <DCCReference Include="MD5.pas"/>
+        <DCCReference Include="SHA1.pas"/>
+        <DCCReference Include="Logging.pas"/>
+        <DCCReference Include="DebugClient.pas"/>
+        <DCCReference Include="DebugStruct.pas"/>
+        <DCCReference Include="ArcFour.pas"/>
+        <DCCReference Include="Uninstall.pas"/>
+        <DCCReference Include="UninstProgressForm.pas">
+            <Form>UninstProgressForm</Form>
+        </DCCReference>
+        <DCCReference Include="UninstSharedFileForm.pas">
+            <Form>UninstSharedFileForm</Form>
+        </DCCReference>
+        <DCCReference Include="SimpleExpression.pas"/>
+        <DCCReference Include="UIStateForm.pas"/>
+        <DCCReference Include="SetupForm.pas"/>
+        <DCCReference Include="RegSvr.pas"/>
+        <DCCReference Include="BrowseFunc.pas"/>
+        <DCCReference Include="RedirFunc.pas"/>
+        <DCCReference Include="SecurityFunc.pas"/>
+        <DCCReference Include="Helper.pas"/>
+        <DCCReference Include="VerInfo.pas"/>
+        <DCCReference Include="RegDLL.pas"/>
+        <DCCReference Include="ResUpdate.pas"/>
+        <DCCReference Include="SpawnCommon.pas"/>
+        <DCCReference Include="SpawnServer.pas"/>
+        <DCCReference Include="SpawnClient.pas"/>
+        <DCCReference Include="TaskDialog.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">Setup.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>

+ 0 - 0
Projects/Setup.res → Projects/Setup.icon.res


+ 0 - 0
Projects/Images.res → Projects/Setup.images.res


+ 0 - 0
Projects/SetupVersionUnicode.rc → Projects/Setup.version.rc


+ 0 - 0
Projects/SetupVersionUnicode.res → Projects/Setup.version.res


+ 0 - 45
Projects/SetupLdr.dof

@@ -1,45 +0,0 @@
-[Compiler]
-A=1
-B=0
-C=0
-D=1
-E=0
-F=0
-G=1
-H=1
-I=1
-J=1
-K=0
-L=1
-M=0
-N=1
-O=1
-P=1
-Q=0
-R=0
-S=0
-T=0
-U=0
-V=1
-W=0
-X=1
-Y=0
-Z=1
-ShowHints=1
-ShowWarnings=1
-UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-[Linker]
-MapFile=0
-OutputObjs=0
-ConsoleApp=1
-DebugInfo=0
-MinStackSize=16384
-MaxStackSize=1048576
-ImageBase=4194304
-ExeDescription=
-[Directories]
-OutputDir=
-SearchPath=..\components
-Conditionals=
-[Parameters]
-RunParams=

+ 8 - 8
Projects/SetupLdr.dpr

@@ -9,11 +9,6 @@ program SetupLdr;
   Setup Loader
 }
 
-{$SetPEFlags 1} 
-{$SETPEOSVERSION 6.1}
-{$SETPESUBSYSVERSION 6.1}
-{$WEAKLINKRTTI ON}
-
 uses
   SafeDLLPath in 'SafeDLLPath.pas',
   XPTheme in 'XPTheme.pas',
@@ -31,9 +26,14 @@ uses
   InstFunc in 'InstFunc.pas',
   FileClass in 'FileClass.pas';
 
-{$R *.RES}
-{$R SetupLdrVersion.res}
-{$R SetupLdrOffsetTable.res}
+{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED} 
+{$SETPEOSVERSION 6.1}
+{$SETPESUBSYSVERSION 6.1}
+{$WEAKLINKRTTI ON}
+
+{$R Setup.icon.res}
+{$R SetupLdr.version.res}
+{$R SetupLdr.offsettable.res}
 
 procedure RaiseLastError(const Msg: TSetupMessageID);
 var

+ 116 - 118
Projects/SetupLdr.dproj

@@ -1,118 +1,116 @@
-	<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-		<PropertyGroup>
-			<ProjectGuid>{80C4D4F8-BA6F-4702-B539-B4A7371A38A0}</ProjectGuid>
-			<MainSource>SetupLdr.dpr</MainSource>
-			<Config Condition="'$(Config)'==''">Debug</Config>
-			<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
-			<ProjectVersion>12.0</ProjectVersion>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
-			<Cfg_1>true</Cfg_1>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
-			<Cfg_2>true</Cfg_2>
-			<CfgParent>Base</CfgParent>
-			<Base>true</Base>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Base)'!=''">
-			<DCC_DependencyCheckOutputName>SetupLdr.exe</DCC_DependencyCheckOutputName>
-			<DCC_ImageBase>00400000</DCC_ImageBase>
-			<DCC_WriteableConstants>true</DCC_WriteableConstants>
-			<DCC_UnitSearchPath>..\components;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
-			<DCC_Alignment>1</DCC_Alignment>
-			<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
-			<DCC_Platform>x86</DCC_Platform>
-			<DCC_K>false</DCC_K>
-			<DCC_N>true</DCC_N>
-			<DCC_S>false</DCC_S>
-			<DCC_F>false</DCC_F>
-			<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
-			<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
-			<DCC_E>false</DCC_E>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_1)'!=''">
-			<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
-			<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
-			<DCC_DebugInformation>false</DCC_DebugInformation>
-		</PropertyGroup>
-		<PropertyGroup Condition="'$(Cfg_2)'!=''">
-			<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
-		</PropertyGroup>
-		<ItemGroup>
-			<DelphiCompile Include="SetupLdr.dpr">
-				<MainSource>MainSource</MainSource>
-			</DelphiCompile>
-			<DCCReference Include="SafeDLLPath.pas"/>
-			<DCCReference Include="XPTheme.pas"/>
-			<DCCReference Include="Compress.pas"/>
-			<DCCReference Include="LZMADecompSmall.pas"/>
-			<DCCReference Include="SetupEnt.pas"/>
-			<DCCReference Include="CmnFunc2.pas"/>
-			<DCCReference Include="Msgs.pas"/>
-			<DCCReference Include="MsgIDs.pas"/>
-			<DCCReference Include="Struct.pas"/>
-			<DCCReference Include="InstFunc.pas"/>
-			<DCCReference Include="FileClass.pas"/>
-			<BuildConfiguration Include="Base">
-				<Key>Base</Key>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Debug">
-				<Key>Cfg_2</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-			<BuildConfiguration Include="Release">
-				<Key>Cfg_1</Key>
-				<CfgParent>Base</CfgParent>
-			</BuildConfiguration>
-		</ItemGroup>
-		<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
-		<ProjectExtensions>
-			<Borland.Personality>Delphi.Personality.12</Borland.Personality>
-			<Borland.ProjectType>VCLApplication</Borland.ProjectType>
-			<BorlandProject>
-				<Delphi.Personality>
-					<Source>
-						<Source Name="MainSource">SetupLdr.dpr</Source>
-					</Source>
-					<Parameters>
-						<Parameters Name="UseLauncher">False</Parameters>
-						<Parameters Name="LoadAllSymbols">True</Parameters>
-						<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
-					</Parameters>
-					<VersionInfo>
-						<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
-						<VersionInfo Name="AutoIncBuild">False</VersionInfo>
-						<VersionInfo Name="MajorVer">1</VersionInfo>
-						<VersionInfo Name="MinorVer">0</VersionInfo>
-						<VersionInfo Name="Release">0</VersionInfo>
-						<VersionInfo Name="Build">0</VersionInfo>
-						<VersionInfo Name="Debug">False</VersionInfo>
-						<VersionInfo Name="PreRelease">False</VersionInfo>
-						<VersionInfo Name="Special">False</VersionInfo>
-						<VersionInfo Name="Private">False</VersionInfo>
-						<VersionInfo Name="DLL">False</VersionInfo>
-						<VersionInfo Name="Locale">1033</VersionInfo>
-						<VersionInfo Name="CodePage">1252</VersionInfo>
-					</VersionInfo>
-					<VersionInfoKeys>
-						<VersionInfoKeys Name="CompanyName"/>
-						<VersionInfoKeys Name="FileDescription"/>
-						<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="InternalName"/>
-						<VersionInfoKeys Name="LegalCopyright"/>
-						<VersionInfoKeys Name="LegalTrademarks"/>
-						<VersionInfoKeys Name="OriginalFilename"/>
-						<VersionInfoKeys Name="ProductName"/>
-						<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
-						<VersionInfoKeys Name="Comments"/>
-					</VersionInfoKeys>
-				</Delphi.Personality>
-			</BorlandProject>
-			<ProjectFileVersion>12</ProjectFileVersion>
-		</ProjectExtensions>
-	</Project>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{4259E59E-2263-4FE8-8E6C-BFCBC7A6C66D}</ProjectGuid>
+        <MainSource>SetupLdr.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <FrameworkType>None</FrameworkType>
+        <ProjectVersion>19.5</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <DCC_Alignment>1</DCC_Alignment>
+        <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
+        <DCC_DebugInformation>1</DCC_DebugInformation>
+        <DCC_WriteableConstants>true</DCC_WriteableConstants>
+        <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
+        <DCC_UnitSearchPath>..\Components;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
+        <SanitizedProjectName>SetupLdr</SanitizedProjectName>
+        <VerInfo_Locale>1043</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
+        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
+        <DCC_SYMBOL_DEPRECATED>false</DCC_SYMBOL_DEPRECATED>
+        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
+        <DCC_UNSAFE_CAST>false</DCC_UNSAFE_CAST>
+        <DCC_EXPLICIT_STRING_CAST>false</DCC_EXPLICIT_STRING_CAST>
+        <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
+        <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
+        <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_DcuOutput>Dcu\$(MainSource)</DCC_DcuOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>(None)</Manifest_File>
+        <OutputExt>e32</OutputExt>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_ExeOutput>..\Files</DCC_ExeOutput>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="SafeDLLPath.pas"/>
+        <DCCReference Include="XPTheme.pas"/>
+        <DCCReference Include="Compress.pas"/>
+        <DCCReference Include="LZMADecompSmall.pas"/>
+        <DCCReference Include="SetupEnt.pas"/>
+        <DCCReference Include="CmnFunc2.pas"/>
+        <DCCReference Include="Msgs.pas"/>
+        <DCCReference Include="MsgIDs.pas"/>
+        <DCCReference Include="Struct.pas"/>
+        <DCCReference Include="InstFunc.pas"/>
+        <DCCReference Include="FileClass.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">SetupLdr.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>

+ 0 - 0
Projects/SetupLdrOffsetTable.res → Projects/SetupLdr.offsettable.res


BIN
Projects/SetupLdr.res


+ 0 - 0
Projects/SetupLdrVersion.rc → Projects/SetupLdr.version.rc


+ 0 - 0
Projects/SetupLdrVersion.res → Projects/SetupLdr.version.res


+ 1 - 0
Projects/SetupSectionDirectives.pas

@@ -136,6 +136,7 @@ type
     ssUninstallDisplaySize,
     ssUninstallFilesDir,
     ssUninstallIconFile,
+    ssUninstallLogging,
     ssUninstallLogMode,
     ssUninstallRestartComputer,
     ssUninstallStyle,

+ 0 - 3
Projects/SetupTypes.pas

@@ -37,9 +37,6 @@ const
   wpFinished = 14;
 
 type
-  TShellFolderID = (sfDesktop, sfStartMenu, sfPrograms, sfStartup, sfSendTo,
-    sfFonts, sfAppData, sfDocs, sfTemplates, sfFavorites, sfLocalAppData);
-
   TInstallOnThisVersionResult = (irInstall, irNotOnThisPlatform,
     irVersionTooLow, irServicePackTooLow, irVerTooHigh);
     

+ 0 - 37
Projects/SetupVersion.rc

@@ -1,37 +0,0 @@
-// Setup version resource
-// Compiled with RC.EXE from the Platform SDK
-//
-// Note: The \0's in the values are to make this resource script compatible
-// with Borland's BRCC32 as well. BRCC32 does not automatically null-terminate
-// string values like Microsoft's RC does, resulting in garbage characters on
-// Explorer's Version tab (on Windows 2000) if \0's aren't included.
-
-1 VERSIONINFO
- FILEVERSION 51,52,0,0
- PRODUCTVERSION 0,0,0,0
- FILEFLAGSMASK 0x3fL
- FILEFLAGS 0x0L
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "000004b0"
-        BEGIN
-            VALUE "FileDescription", "Setup/Uninstall\0"
-            VALUE "FileVersion", "51.52.0.0\0"
-                  // NOTE: Be sure to keep FILEVERSION in sync!
-            VALUE "Comments", "This installation was built with Inno Setup.\0"
-            VALUE "CompanyName", "                                                            \0"
-            VALUE "LegalCopyright", "                                                                                                    \0"
-            VALUE "OriginalFileName", "                                                  \0"
-            VALUE "ProductName", "                                                            \0"
-            VALUE "ProductVersion", "                                                  \0"
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x0, 1200
-    END
-END

BIN
Projects/SetupVersion.res


+ 3 - 3
Projects/Struct.pas

@@ -17,8 +17,8 @@ uses
 
 const
   SetupTitle = 'Inno Setup';
-  SetupVersion = '6.2.1';
-  SetupBinVersion = (6 shl 24) + (2 shl 16) + (1 shl 8) + 0;
+  SetupVersion = '6.3.0';
+  SetupBinVersion = (6 shl 24) + (3 shl 16) + (0 shl 8) + 0;
 
 type
   TSetupID = array[0..63] of AnsiChar;
@@ -66,7 +66,7 @@ type
     shSignedUninstaller, shUsePreviousLanguage, shDisableWelcomePage,
     shCloseApplications, shRestartApplications, shAllowNetworkDrive,
     shForceCloseApplications, shAppNameHasConsts, shUsePreviousPrivileges,
-    shWizardResizable);
+    shWizardResizable, shUninstallLogging);
   TSetupLanguageDetectionMethod = (ldUILanguage, ldLocale, ldNone);
   TSetupCompressMethod = (cmStored, cmZip, cmBzip, cmLZMA, cmLZMA2);
   TSetupSalt = array[0..7] of Byte;

+ 9 - 0
Projects/Version.inc

@@ -59,6 +59,15 @@
                                                 {$DEFINE IS_D102TOKYO}  { then it must be at least Delphi 10.2 Tokyo }
                                                 {$IFNDEF VER320}  { if it's not Delphi 10.2 Tokyo }
                                                   {$DEFINE IS_D103RIO}  { then it must be at least Delphi 10.3 Rio }
+                                                  {$IFNDEF VER330}  { if it's not Delphi 10.3 Rio }
+                                                    {$DEFINE IS_D104SYDNEY}  { then it must be at least Delphi 10.4 Sydney }
+                                                    {$IFNDEF VER340}  { if it's not Delphi 10.4 Sydney }
+                                                      {$DEFINE IS_D11}  { then it must be at least Delphi 11 Alexandria }
+                                                      {$IFNDEF VER350}  { if it's not Delphi 11 Alexandria }
+                                                        {$DEFINE IS_D12}  { then it must be at least Delphi 12 }
+                                                      {$ENDIF}
+                                                    {$ENDIF}
+                                                  {$ENDIF}
                                                 {$ENDIF}
                                               {$ENDIF}
                                             {$ENDIF}

+ 1 - 0
Projects/XPTheme.manifest

@@ -42,6 +42,7 @@
 <file name="mpr.dll" loadFrom="%SystemRoot%\system32\" />
 <file name="netapi32.dll" loadFrom="%SystemRoot%\system32\" />
 <file name="netutils.dll" loadFrom="%SystemRoot%\system32\" />
+<file name="textshaping.dll" loadFrom="%SystemRoot%\system32\" />
 <file name="version.dll" loadFrom="%SystemRoot%\system32\" />
 <file name="winhttp.dll" loadFrom="%SystemRoot%\system32\" />
 </assembly>

BIN
Projects/XPTheme.res


+ 52 - 33
README.md

@@ -1,8 +1,8 @@
 Inno Setup
 ==========
 
-Copyright (C) 1997-2022 Jordan Russell. All rights reserved.  
-Portions Copyright (C) 2000-2022 Martijn Laan. All rights reserved.  
+Copyright (C) 1997-2024 Jordan Russell. All rights reserved.
+Portions Copyright (C) 2000-2024 Martijn Laan. All rights reserved.
 For conditions of distribution and use, see LICENSE.TXT.
 
 Source code README
@@ -38,22 +38,21 @@ Getting Started
 
 2. **Install Embarcadero Delphi**
 
-   We compile all of Inno Setup's projects under Delphi 10.3.3 Rio.
+   We compile all of Inno Setup's projects under Delphi 11.3 Alexandria.
 
    If you do not have access to this version of Delphi, you should be
-   able to compile the projects on later versions, however complete
+   able to compile the projects on other versions, however complete
    compatibility is NOT guaranteed. We try to make Inno Setup compilable on
-   the later versions when possible, but do not have the resources to test
+   the other versions when possible, but do not have the resources to test
    every change on every Delphi version.
   
    There's a free version of Delphi available called the Community Edition.
-   See https://www.embarcadero.com/products/delphi/starter/free-download
-
+   See https://www.embarcadero.com/products/delphi/starter/free-download.
 
 3. **Install Microsoft HTML Help Workshop**
 
    Install Microsoft HTML Help Workshop if you haven't already done so.
-   See https://docs.microsoft.com/en-us/previous-versions/windows/desktop/htmlhelp/microsoft-html-help-downloads and 
+   See https://docs.microsoft.com/en-us/previous-versions/windows/desktop/htmlhelp/microsoft-html-help-downloads and
    http://web.archive.org/web/20160201063255/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe
 
    Note: Microsoft HTML Help Workshop is only needed to be able to compile the
@@ -62,17 +61,28 @@ Getting Started
 
 4. **Build Inno Setup**
 
-   To build all files run **build.bat** and follow the instructions.
+   Unfortunately, Embarcadero has removed command line compilation support
+   from the Community Edition, which means there's two different build
+   scripts.
+
+   Community Edition: To build all files run **build-ce.bat** and follow the
+   instructions.
+
+   Otherwise: To build all files run **build.bat** and follow the instructions.
 
    To just compile Inno Setup run **compile.bat** and follow the instructions.
+   This batch file cannot be used with the Community Edition, open
+   Projects\Projects.groupproj instead.
 
    To just compile the Inno Setup help file and its web version run
    **ISHelp\ISHelpGen\compile.bat** and **ISHelp\compile.bat** and follow the
-   instructions.
+   instructions. The former batch file cannot be used with the
+   Community Edition, open Projects\Projects.groupproj instead.
 
    To just compile the Inno Setup Preprocessor help file and its web version run
    **ISHelp\ISHelpGen\compile.bat** and **Projects\Ispp\Help\compile.bat** and
-   follow the instructions.
+   follow the instructions. The former batch file cannot be used with the
+   Community Edition, open Projects\Projects.groupproj instead.
 
 
 Component Installation
@@ -151,10 +161,6 @@ How do the projects link together?
 Source code tips
 ----------------
 
-- If you modify the Setup or SetupLdr projects and want to be able to compile
-  your installations with the new code, you'll need to copy the new EXE
-  file(s) to the Setup Compiler directory under the extension .E32.
-
 - When debugging the Setup project you should set ``UseSetupLdr=no`` and
   ``OutputBaseFilename=setup`` in your script, and copy the resulting setup-*.bin
   files to the source code directory. This way you can simulate an actual
@@ -169,9 +175,6 @@ Source code tips
   SETUP-1.BIN to the end of the SETUP.EXE, and finally modifying an internal
   data block in SETUP.EXE so it knows it's in "single EXE" form.
 
-- For compiler debugging purposes define ``STATICCOMPILER`` in CompForm.pas
-  and for preprocessor debugging also ``STATICPREPROC`` in Compile.pas.
-
 - To debug the uninstaller first run Setup.exe to completion with the
   ``/DETACHEDMSG`` command line parameter set. Afterwards copy uninst000.dat and
   uninst000.msg as setup.dat and setup.msg to the Projects directory in your
@@ -223,20 +226,18 @@ Inno Setup-specific editing guidelines for the help files
 Setting up Continuous Integration
 ---------------------------------
 
-Delphi is not offered for download via a public link, and while there is a
-free-of-charge community version, its license terms forbid sharing it with others, or
-even let other developers (outside your direct teammates) use it. However, what _is_
-allowed is to copy the files (or a subset thereof) to another machine for the specific
-purpose of supporting unattended builds.
-
-Inno Setup's source code includes a GitHub workflow that performs such unattended
-builds upon `push` events, it requires some setting up, though.
+Inno Setup's source code includes a GitHub workflow that performs unattended builds
+upon `push` events, it requires some setting up, though.
 
 Note: The following instructions assume that you have a correctly-licensed version
-of Delphi installed into `C:\Program Files (x86)\Embarcadero\Studio\20.0`.
+of Delphi installed into `C:\Program Files (x86)\Embarcadero\Studio\20.0`. This may
+not be a Community Edition because it does not support command line compilation.
+Also ensure your current Delphi license still allows you to copy a subset of the
+Delphi files to another machine for the specific purpose of supporting unattended
+builds.
 
-To generate the (encrypted) `.zip` file containing the files needed to build
-Inno Setup, use [7-Zip](https://www.7-zip.org/):
+First, generate an encrypted `.zip` file containing the files needed to build
+Inno Setup using [7-Zip]:
 
 ```
 cd C:\Program Files (x86)\Embarcadero\Studio\20.0
@@ -251,10 +252,9 @@ cd C:\Program Files (x86)\Embarcadero\Studio\20.0
 	lib/win32/release/Winapi.*.dcu
 ```
 
-Then, upload this somewhere public, e.g. by attaching it to a comment in a
-GitHub issue. After that, add this URL as a new repository
-[secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets)
-(at https://github.com/YOUR-USER-NAME/issrc/settings/secrets/actions), under the name
+Then, upload this encrypted file somewhere public, e.g. by attaching it to a comment
+in a GitHub issue. After that, add this URL as a new repository
+[secret] (at https://github.com/YOUR-USER-NAME/issrc/settings/secrets/actions), under the name
 `ISSRC_BUILD_ENV_ZIP_URL`, and the password as `ISSRC_BUILD_ENV_ZIP_PASSWORD`.
 
 Finally, indicate that your fork of the repository has those secrets, by adding the
@@ -264,6 +264,23 @@ https://github.com/YOUR-USER-NAME/issrc to add the topic).
 Once that's done, you're set! The next time you push a branch to your fork, the
 workflow will be triggered automatically.
 
+### Setting up code-signing with Continuous Integration
+
+If you have a code-signing certificate, you can use that in the Continuous
+Integration to produce artifacts that are code-signed, too, as long as the
+certificate does not require any local-only security factor such as a USB
+security key. To use the certificate, you first have to add the repository
+[secret] `CODESIGN_P12`, using as value the base64-encoded file contents of the
+certificate's `.p12` file (obtain this value e.g. by running `base64 -w 0
+<my-certificate.p12`). Then, add the corresponding certificate password as
+repository secret named `CODESIGN_PASS`.
+
+Once these two repository secrets are set, the Continuous Integration will
+automatically pick them up and code-sign the generated executable files.
+
+Note: These repository secrets are only _used_ in the Continuous Integration,
+and will _not_ be included in the build artifacts.
+
 <!-- Link references -->
 [CONTRIBUTING.md]: <CONTRIBUTING.md>
 [Projects\Lzma2\Encoder]: <Projects/Lzma2/Encoder>
@@ -271,3 +288,5 @@ workflow will be triggered automatically.
 [Examples\MyProg]: <Examples/MyProg>
 [Projects\LzmaDecode\compiling.txt]: <Projects/LzmaDecode/compiling.txt>
 [Projects\Lzma2\Decoder\compiling.txt]: <Projects/Lzma2/Decoder/compiling.txt>
+[7-Zip]: https://www.7-zip.org/
+[secret]: https://docs.github.com/en/actions/security-guides/encrypted-secrets

+ 115 - 0
build-ce.bat

@@ -0,0 +1,115 @@
+@echo off
+
+rem  Inno Setup
+rem  Copyright (C) 1997-2024 Jordan Russell
+rem  Portions by Martijn Laan
+rem  For conditions of distribution and use, see LICENSE.TXT.
+rem
+rem  Batch file to prepare a release
+rem
+rem  Calls setup-sign.bat if it exists, else creates setup.exe without signing
+rem
+rem  This batch files does the following things:
+rem  -Ask the user to compile Inno Setup and ISHelpGen after clearing output first
+rem  -Compile ISPP.chm
+rem  -Compile ISetup.chm
+rem  -Create Inno Setup installer
+rem
+rem  Once done the installer can be found in Output
+
+setlocal
+
+set VER=6.3.0
+
+echo Building Inno Setup %VER%...
+echo.
+
+cd /d %~dp0
+
+if "%1%"=="setup" goto setup
+if not "%1%"=="" goto failed
+
+call :deletefile files\compil32.exe
+call :deletefile files\iscc.exe
+call :deletefile files\iscmplr.dll
+call :deletefile files\ispp.dll
+call :deletefile files\setup.e32
+call :deletefile files\setupldr.e32
+call :deletefile ishelp\ishelpgen\ishelpgen.exe
+
+echo.
+echo Clearing compilation output done
+echo Now open Projects\Projects.groupproj and build all projects in Release mode
+
+echo Waiting for files...
+call :waitforfile files\compil32.exe
+call :waitforfile files\iscc.exe
+call :waitforfile files\iscmplr.dll
+call :waitforfile files\ispp.dll
+call :waitforfile files\setup.e32
+call :waitforfile files\setupldr.e32
+call :waitforfile ishelp\ishelpgen\ishelpgen.exe
+
+echo Found all, waiting 2 seconds more...
+timeout /t 2 /nobreak >nul
+
+cd projects\ispp\help
+if errorlevel 1 goto failed
+call .\compile.bat
+if errorlevel 1 goto failed
+cd ..\..\..
+if errorlevel 1 goto failed
+echo Compiling ISPP.chm done
+pause
+
+cd ishelp
+if errorlevel 1 goto failed
+call .\compile.bat
+if errorlevel 1 goto failed
+cd ..
+if errorlevel 1 goto failed
+echo Compiling ISetup.chm done
+pause
+
+:setup
+echo - Setup.exe
+if exist .\setup-sign.bat (
+  call .\setup-sign.bat
+) else (
+  files\iscc setup.iss
+)
+if errorlevel 1 goto failed
+echo - Renaming files
+cd output
+if errorlevel 1 goto failed
+move /y mysetup.exe innosetup-%VER%.exe
+if errorlevel 1 goto failed
+cd ..
+if errorlevel 1 goto failed
+echo Creating Inno Setup installer done
+powershell.exe -Command "Write-Host -NoNewline 'SHA256 hash: '; (Get-FileHash -Algorithm SHA256 -Path output\innosetup-%VER%.exe).Hash.ToLower()"
+
+echo All done!
+pause
+exit /b 0
+
+:failed
+echo *** FAILED ***
+pause
+exit /b 1
+
+:deletefile
+if exist "%~1" (
+    del "%~1"
+    if exist "%~1" goto failed
+    echo Cleared %~1
+) 
+exit /b
+
+:waitforfile
+if not exist "%~1" (
+    timeout /t 1 /nobreak >nul
+    goto waitforfile
+)
+echo Found %~1
+exit /b

+ 2 - 1
build.bat

@@ -20,7 +20,7 @@ rem  Once done the installer can be found in Output
 
 setlocal
 
-set VER=6.2.1
+set VER=6.3.0
 
 echo Building Inno Setup %VER%...
 echo.
@@ -78,6 +78,7 @@ if errorlevel 1 goto failed
 cd ..
 if errorlevel 1 goto failed
 echo Creating Inno Setup installer done
+powershell.exe -Command "Write-Host -NoNewline 'SHA256 hash: '; (Get-FileHash -Algorithm SHA256 -Path output\innosetup-%VER%.exe).Hash.ToLower()"
 
 echo All done!
 pause

+ 1 - 1
compile.bat

@@ -14,7 +14,7 @@ if exist compilesettings.bat goto compilesettingsfound
 echo compilesettings.bat is missing or incomplete. It needs to be created
 echo with the following line, adjusted for your system:
 echo.
-echo   set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\20.0 [Path to Delphi 10.3 Rio (or later)]
+echo   set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\20.0 [Path to Delphi 10.4 Sydney (or later)]
 goto failed2
 
 :compilesettingsfound

+ 2 - 2
license.txt

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

+ 4 - 4
setup.iss

@@ -2,8 +2,8 @@
 ; Inno Setup's own Setup script
 
 ; Inno Setup
-; Copyright (C) 1997-2022 Jordan Russell. All rights reserved.
-; Portions Copyright (C) 2000-2022 Martijn Laan. All rights reserved.
+; Copyright (C) 1997-2024 Jordan Russell. All rights reserved.
+; Portions Copyright (C) 2000-2024 Martijn Laan. All rights reserved.
 ; For conditions of distribution and use, see LICENSE.TXT.
 
 #include "iscrypt.iss"
@@ -15,12 +15,12 @@
 [Setup]
 AppName=Inno Setup
 AppId={code:GetAppId|Inno Setup 6}
-AppVersion=6.2.1
+AppVersion=6.3.0
 AppPublisher=jrsoftware.org
 AppPublisherURL=https://www.innosetup.com/
 AppSupportURL=https://www.innosetup.com/
 AppUpdatesURL=https://www.innosetup.com/
-VersionInfoCopyright=Copyright (C) 1997-2022 Jordan Russell. Portions Copyright (C) 2000-2022 Martijn Laan.
+VersionInfoCopyright=Copyright (C) 1997-2024 Jordan Russell. Portions Copyright (C) 2000-2024 Martijn Laan.
 AppMutex=InnoSetupCompilerAppMutex,Global\InnoSetupCompilerAppMutex
 SetupMutex=InnoSetupCompilerSetupMutex,Global\InnoSetupCompilerSetupMutex
 WizardStyle=modern

+ 39 - 4
whatsnew.htm

@@ -21,16 +21,51 @@
 
 <div class="bluehead"><span class="head1">Inno Setup 6</span><br /><span class="head2">Revision History</span></div>
 
-<p>Copyright &copy; 1997-2022 <a href="https://jrsoftware.org/">Jordan Russell</a>. All rights reserved.<br />
-Portions Copyright &copy; 2000-2022 Martijn Laan. All rights reserved.<br />
+<p>Copyright &copy; 1997-2024 <a href="https://jrsoftware.org/">Jordan Russell</a>. All rights reserved.<br />
+Portions Copyright &copy; 2000-2024 Martijn Laan. All rights reserved.<br />
 For conditions of distribution and use, see <a href="https://jrsoftware.org/files/is/license.txt">LICENSE.TXT</a>.
 </p>
 
 <p><b>Want to be notified by e-mail of new Inno Setup releases?</b> <a href="https://jrsoftware.org/ismail.php">Subscribe</a> to the Inno Setup Mailing List!</p>
 
-<p><a name="6.2.1"></a><span class="ver">6.2.1 </span><span class="date">(?)</span></p>
+<p><a name="6.3.0"></a><span class="ver">6.3.0-dev </span><span class="date">(?)</span></p>
 <ul>
-  <li>Changes to further help protect uninstallers against potential DLL preloading attacks when running under the SYSTEM account, contributed by Johannes Schindelin from the Git for Windows team.</li>
+  <li>Inno Setup now supports UTF-8 encoded .iss script files and .isl messages files without an UTF-8 preamble (also called BOM).</li>
+  <li>Compiler IDE changes:
+  <ul>
+  <li>Added new <i>UTF-8 without BOM</i> menu item to the <i>Save Encoding</i> submenu of the <i>File</i> menu.</li>
+  <li>New script files are now saved as UTF-8 with BOM by default. Existing files are still saved as they were.</li>
+  <li>Added new <i>[Files] Entries Designer</i> menu item to the <i>Tools</i> menu to design and insert extra entries to the [Files] section.</li>
+  </ul>
+  </li>
+  <li>Added new [Setup] section directive <tt>UninstallLogging</tt>, which defaults to <tt>no</tt>. If set to <tt>yes</tt>, the uninstaller will always create a log file if it is launched from the <i>Add/Remove Programs</i> Control Panel applet. Equivalent to passing /LOG on the command line.</li>
+  <li>During startup Setup would always ask Windows to create any missing <tt>{usercf}</tt>, <tt>{userpf}</tt>, and <tt>{usersavedgames}</tt> folders. It no longer does until the script asks for the folder. Note that scripts running in administrative install mode should not do this because it violates the <a href="https://jrsoftware.org/ishelp/index.php?topic=setup_useduserareaswarning">used user areas warning</a>.</li>
+  <li>Added support for IIS group users identifiers (<tt>iisiusrs</tt>) for use in <tt>Permissions</tt> parameters, contributed by Achim Stuy.</li> 
+  <li>Pascal Scripting changes:
+  <ul>
+    <li>Support function <tt>LoadStringsFromFile</tt> now also supports UTF8-encoded files without an UTF-8 preamble.</li>
+    <li>Added new <tt>SaveStringsToUTF8FileNoPreamble</tt> support function.</li>
+    <li>Type <tt>TShellFolderID</tt> was removed because it wasn't used by any support function.</li>
+  </ul>
+  </li>
+  <li>Added official Korean translation.</li>
+  <li>Inno Setup is now built using Delphi 11.3 Alexandria instead of Delphi 10.3 Rio.</li>
+</ul>
+
+<p><a name="6.2.2"></a><span class="ver">6.2.2 </span><span class="date">(2023-02-15)</span></p>
+<ul>
+  <li>Changes to further help protect against potential DLL preloading attacks, contributed by Johannes Schindelin from the Git for Windows team.</li>
+  <li>Pascal Scripting changes: Improved support for downloads using basic authentication, contributed by Christian Beck.
+  <ul>
+    <li>Added new <tt>AddEx</tt> function to the <tt>TDownloadWizardPage</tt> support class.</li>
+    <li>Added new <tt>SetDownloadCredentials</tt> support function.</li>
+  </ul>
+  <li>Added official Hungarian translation.</li>
+</ul>
+
+<p><a name="6.2.1"></a><span class="ver">6.2.1 </span><span class="date">(2022-04-14)</span></p>
+<ul>
+  <li>Changes to further help protect against potential DLL preloading attacks when running installers or uninstallers under the SYSTEM account, contributed by Johannes Schindelin from the Git for Windows team.</li>
   <li>Fixed a cosmetic issue if the icon file specified by the [Setup] section directive <tt>SetupIconFile</tt> contains more than 13 icons. Thanks to Wilenty and Martin Prikryl for the initial investigation.</li>
 </ul>