diff --git a/po/LINGUAS b/po/LINGUAS index 49a7c6dc..cc77dd67 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,2 +1,2 @@ # Set of available languages. -de ar es fr ru pt cz it zh_CN zh_TW no +de ar es fr ru pt cz it zh_CN zh_TW no nl diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 00000000..8dc4b1c1 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,393 @@ +# Dutch translations for gpg4win package. +# Copyright (C) 2018 g10 Code GmbH +# This file is distributed under the same license as the gpg4win package. +# Erwin Bronkhorst , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gpg4win 3.1.2\n" +"Report-Msgid-Bugs-To: gpg4win-devel@wald.intevation.org\n" +"PO-Revision-Date: 2018-05-23 17:34+0200\n" +"Last-Translator: Erwin Bronkhorst \n" +"Language-Team: \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgctxt "T_AlreadyRunning" +msgid "An instance of this installer is already running." +msgstr "Er wordt al een instantie van de installer uitgevoerd." + +msgctxt "T_WelcomeTitleGpg4win" +msgid "Welcome to the installation of Gpg4win" +msgstr "Welkom bij de installatie van Gpg4win" + +msgctxt "T_AboutGpg4win" +msgid "" +"Gpg4win is an installer package for Windows for EMail and file encryption " +"using the core component GnuPG for Windows. Both relevant cryptography " +"standards are supported, OpenPGP and S/MIME. Gpg4win and the software " +"included with Gpg4win is Free Software." +msgstr "" +"Gpg4win is een installatie-pakket voor Windows voor e-mail- en " +"bestandsencryptie, gebruikmakend van het kern-component GnuPG voor Windows. " +"Beide relevante cryptografie-standaarden worden ondersteund, OpenPGP en S/" +"MIME. Gpg4win en de software die Gpg4win bevat is Vrije Software." + +msgctxt "T_AboutGpg4winVersion" +msgid "This is Gpg4win version ${VERSION}" +msgstr "Dit is Gpg4win versie ${VERSION}" + +msgctxt "T_AboutGpg4winFileVersion" +msgid "file version ${PROD_VERSION}" +msgstr "bestandsversie ${PROD_VERSION}" + +msgctxt "T_AboutGpg4winReleaseDate" +msgid "Release date ${_BUILD_ISODATE}" +msgstr "Vrijgavedatum ${_BUILD_ISODATE}" + +msgctxt "T_WelcomeTitleGpg4winSrc" +msgid "Welcome to the installation of the Gpg4win sources" +msgstr "Welkom bij de installatie van de Gpg4win broncode" + +msgctxt "T_AboutGpg4winSrc" +msgid "" +"Gpg4win is an installer package for Windows for EMail and file encryption " +"using the core component GnuPG for Windows. Both relevant cryptography " +"standards are supported, OpenPGP and S/MIME. Gpg4win and the software " +"included with Gpg4win are Free Software." +msgstr "" +"Gpg4win is een installatie-pakket voor Windows voor e-mail- en " +"bestandsencryptie, gebruikmakend van het kern-component GnuPG voor Windows. " +"Beide relevante cryptografie-standaarden worden ondersteund, OpenPGP en S/" +"MIME. Gpg4win en de software die Gpg4win bevat zijn Vrije Software." + +msgctxt "T_AboutGpg4winSrcVersion" +msgid "This is Gpg4win version ${VERSION}" +msgstr "Dit is Gpg4win versie ${VERSION}" + +msgctxt "T_AboutGpg4winSrcFileVersion" +msgid "file version ${PROD_VERSION}" +msgstr "bestandsversie ${PROD_VERSION}" + +msgctxt "T_AboutGpg4winSrcReleaseDate" +msgid "release date ${_BUILD_ISODATE}" +msgstr "vrijgavedatum ${_BUILD_ISODATE}" + +msgctxt "T_RunKleopatra" +msgid "Run Kleopatra" +msgstr "Kleopatra uitvoeren" + +msgctxt "T_RunGPA" +msgid "Run GPA" +msgstr "GPA uitvoeren" + +msgctxt "T_LangCode" +msgid "en" +msgstr "nl" + +msgctxt "T_GPLHeader" +msgid "" +"This software is licensed under the terms of the GNU General Public License " +"(GNU GPL)." +msgstr "" +"Deze software is in licentie gegeven onder de voorwaarden van de GNU General " +"Public License (GNU GPL)." + +msgctxt "T_GPLShort" +msgid "" +"In short: You are allowed to run this software for any purpose. You may " +"distribute it as long as you give the recipients the same rights you have " +"received." +msgstr "" +"In het kort: U mag deze software voor elk doel uitvoeren. U mag het " +"verspreiden zolang u de ontvangers dezelfde rechten geeft als u heeft " +"ontvangen." + +msgctxt "T_MoreInfo" +msgid "Go to Gpg4win's webpage" +msgstr "Naar de website van Gpg4win gaan" + +msgctxt "T_MoreInfoURL" +msgid "https://www.gpg4win.org" +msgstr "https://www.gpg4win.org" + +msgctxt "T_ShowReadme" +msgid "Show the README file" +msgstr "Het README-bestand weergeven" + +msgctxt "T_NoKeyManager" +msgid "No key manager has been installed, thus we can't run one now." +msgstr "" +"Er is geen sleutelbeheerder geïnstalleerd, dus we kunnen er nu geen " +"uitvoeren." + +msgctxt "DESC_Menu_manuals" +msgid "Documentation" +msgstr "Documentatie" + +msgctxt "DESC_Menu_uninstall" +msgid "Uninstall" +msgstr "Verwijderen" + +msgctxt "DESC_Desktop_manuals" +msgid "Gpg4win Documentation" +msgstr "Documentatie van Gpg4win" + +msgctxt "T_InstallOptions" +msgid "Install Options" +msgstr "Installatieopties" + +msgctxt "T_InstallOptLinks" +msgid "Start links" +msgstr "Startmenu snelkoppelingen" + +msgctxt "T_InstOptLabelA" +msgid "Please select where Gpg4win shall install links:" +msgstr "Selecteer waar Gpg4win de snelkoppelingen zal installeren:" + +msgctxt "T_InstOptLabelB" +msgid "(Only programs will be linked into the quick launch bar.)" +msgstr "" +"(Alleen programma's zullen aan de werkbalk Snel starten worden toegevoegd.)" + +msgctxt "T_InstOptFieldA" +msgid "Start Menu" +msgstr "Startmenu" + +msgctxt "T_InstOptFieldB" +msgid "Desktop" +msgstr "Bureaublad" + +msgctxt "T_InstOptFieldC" +msgid "Quick Launch Bar" +msgstr "Werkbalk Snel starten" + +msgctxt "T_FoundExistingVersion" +msgid "" +"Version $R1 has already been installed.\n" +"Do you want to overwrite it with version ${VERSION}?" +msgstr "" +"Versie $R1 is al geïnstalleerd.\n" +"Wilt u deze overschrijven met versie ${VERSION}?" + +msgctxt "T_FoundExistingOldVersion" +msgid "" +"An old version $R1 has already been installed. It is strongly recommended " +"to deinstall previous versions on major upgrades.\n" +"Do you want to continue installing Gpg4win ${VERSION} anyway?" +msgstr "" +"Een oude versie $R1 is al geïnstalleerd. Het wordt met klem aangeraden om " +"voorgaande versies te verwijderen bij grote upgrades.\n" +"Wilt u toch doorgaan met het installeren van Gpg4win ${VERSION}?" + +msgctxt "T_UninstallingOldVersion" +msgid "Uninstalling Gpg4win-" +msgstr "Begin met verwijderen van Gpg4win-" + +msgctxt "T_FoundOldSeeManual" +msgid "" +"Please see the Gpg4win user manual to learn how to migrate existing keys " +"from other GnuPG based installations to Gpg4win." +msgstr "" +"Raadpleeg de Gpg4win gebruikershandleiding voor meer informatie over het " +"migreren van bestaande sleutels van andere GnuPG-gebaseerde installaties " +"naar Gpg4win." + +msgctxt "T_FoundOldGnuPP" +msgid "" +"An old installation of GnuPP (GNU Privacy Project) has been detected. That " +"software is not maintained anymore and thus should be removed.\n" +"\n" +"Do you want to continue installing Gpg4win and take care of the old " +"installation later?" +msgstr "" +"Een oude installatie van GnuPP (GNU Privacy Project) is gedetecteerd. Deze " +"software wordt niet meer onderhouden en moet dus verwijderd worden.\n" +"\n" +"Wilt u doorgaan met het installeren van Gpg4win en later zorg dragen voor de " +"oude installatie?" + +msgctxt "T_FoundOldGnuPT" +msgid "" +"An installation of GnuPT has been detected. This may cause problems when " +"used along with Gpg4win.\n" +"\n" +"Do you want to continue installing Gpg4win?" +msgstr "" +"Een installatie van GnuPT is gedetecteerd. Dit kan problemen opleveren " +"wanneer dit samen met Gpg4win wordt gebruikt.\n" +"\n" +"Wilt u doorgaan met het installeren van Gpg4win?" + +msgctxt "T_FoundOldWinPTSF" +msgid "" +"An old installation of the Sourceforge hosted WinPT has been detected. That " +"software is not maintained anymore and should be removed.\n" +"\n" +"Do you want to continue installing Gpg4win and take care of the old " +"installation later?" +msgstr "" +"Een oude installatie van het op Sourceforge gehoste WinPT is gedetecteerd. " +"Deze software wordt niet meer onderhouden en moet verwijderd worden.\n" +"\n" +"Wilt u doorgaan met het installeren van Gpg4win en later zorg dragen voor de " +"oude installatie?" + +msgctxt "T_FoundOldGnuPack" +msgid "" +"An installation of GnuPG-Pack has been detected. You need to uninstall it " +"before you can continue with Gpg4win installation.\n" +"\n" +"The installation will be aborted now!" +msgstr "" +"Een installatie van GnuPG-Pack is gedetecteerd. U moet deze verwijderen " +"voordat u door kunt gaan met de installatie van Gpg4win.\n" +"\n" +"De installatie zal nu worden afgebroken!" + +msgctxt "T_BetaWarning" +msgid "" +"Note: This is a BETA version of Gpg4win.\n" +"\n" +"Beta versions are only intended for testing and shall not be used in a " +"production environment." +msgstr "" +"Opmerking: Dit is een BETA-versie van Gpg4win.\n" +"\n" +"Beta-versies zijn alleen bedoeld voor testen en moeten niet in een productie-" +"omgeving gebruikt worden." + +msgctxt "T_AdminWanted" +msgid "" +"Warning: It is recommended to install Gpg4win system-wide with administrator " +"rights.\n" +"\n" +"Do you want to continue installing Gpg4win without administrator rights?" +msgstr "" +"Waarschuwing: Het wordt aangeraden om Gpg4win systeem-breed te installeren " +"met beheerdersrechten.\n" +"\n" +"Wilt u doorgaan met het installeren van Gpg4win zonder beheerdersrechten?" + +msgctxt "T_CloseOtherApps" +msgid "" +"Please make sure that other applications are not running. In particular you " +"should close Outlook and all Explorer windows. Gpg4win will try to install " +"anyway but a reboot will be required then." +msgstr "" +"Zorg ervoor dat er geen andere applicaties worden uitgevoerd. In het " +"bijzonder moeten Outlook en alle Verkenner-schermen worden gesloten. Gpg4win " +"zal hoe dan ook proberen te installeren, maar het kan dan nodig zijn om de " +"computer opnieuw op te starten." + +msgctxt "T_ShuttingDownWinPT" +msgid "Trying to shutdown a possible running instance of WinPT." +msgstr "Een mogelijke instantie van WinPT proberen af te sluiten." + +msgctxt "T_FoundOldClaws" +msgid "" +"An old version of Claws Mail was found in your Installation directory.\n" +"Please note that Claws Mail is no longer bundled with Gpg4win and is now " +"available as a standalone package.\n" +"You should uninstall Claws Mail now, and if you wish to continue to use it, " +"install an up-to-date version from:\n" +"http://www.claws-mail.org/win32\n" +"\n" +"Uninstall Claws Mail from Gpg4win now?" +msgstr "" +"Er is een oude versie van Claws Mail gevonden in uw installatiemap.\n" +"Hou er rekening mee dat Claws Mail niet meer met Gpg4win meegeleverd wordt " +"en nu beschikbaar is als alleenstaand pakket.\n" +"U moet Claws Mail nu verwijderen en als u het wilt blijven gebruiken, moet u " +"een up-to-date versie downloaden van:\n" +"http://www.claws-mail.org/win32\n" +"\n" +"Claws Mail van Gpg4win nu verwijderen?" + +msgctxt "T_WinisDeprecated" +msgid "" +"Windows Versions before Windows 7 are no longer maintained by Gpg4win.\n" +"Support for them may be removed in a future version.\n" +"\n" +"Kleopatra is disabled." +msgstr "" +"Windows-versies ouder dan Windows 7 worden niet langer onderhouden door " +"Gpg4win.\n" +"Ondersteuning hiervoor kan verwijderd worden in een toekomstige versie.\n" +"\n" +"Kleopatra is uitgeschakeld." + +msgctxt "T_UPDATE_STR" +msgid "Updating Version" +msgstr "Versie updaten" + +msgctxt "T_Installing_GnuPG" +msgid "Installing GnuPG" +msgstr "GnuPG installeren" + +msgctxt "DESC_SEC_gnupg_w32" +msgid "GNU Privacy Guard" +msgstr "GNU Privacy Guard" + +msgctxt "T_Gpg_Install_failed" +msgid "" +"Failed to install GnuPG.\n" +"Gpg4win will not work properly without GnuPG.\n" +"Please download and install the simple installer for GnuPG from:\n" +"\n" +"https://gnupg.org/download" +msgstr "" +"Installatie van GnuPG mislukt.\n" +"Gpg4win zal niet correct werken zonder GnuPG.\n" +"Download en installeer de simple installer voor GnuPG van:\n" +"\n" +"https://gnupg.org/download" + +msgctxt "DESC_SEC_gpa" +msgid "GNU Privacy Assistant" +msgstr "GNU Privacy Assistant" + +msgctxt "DESC_Menu_gpa" +msgid "Run the GNU Privacy Assistant key management tool." +msgstr "De GNU Privacy Assistant sleutelbeheertool uitvoeren." + +msgctxt "DESC_Menu_gpg4win_readme" +msgid "General information on Gpg4win" +msgstr "Algemene informatie over Gpg4win" + +msgctxt "DESC_Menu_gpg4win_howtosmime" +msgid "Instruction to configure S/MIME" +msgstr "Instructies voor het configureren van S/MIME" + +msgctxt "DESC_Menu_gnupg_faq" +msgid "Show the Frequently Asked Questions document for GnuPG" +msgstr "Het document met veelgestelde vragen voor GnuPG weergeven" + +msgctxt "T_GpgEX_RegFailed" +msgid "Warning: Registration of the GpgEX plugin failed." +msgstr "Waarschuwing: Registratie van de GpgEX invoegtoepassing mislukt." + +msgctxt "DESC_SEC_gpgex" +msgid "GnuPG Shell Extension" +msgstr "GnuPG Shell Extensie" + +msgctxt "T_GpgOL_RegFailed" +msgid "Warning: Registration of the GpgOL Outlook plugin failed." +msgstr "" +"Waarschuwing: Registratie van de GpgOL Outlook invoegtoepassing mislukt." + +msgctxt "DESC_SEC_gpgol" +msgid "GnuPG for Outlook" +msgstr "GnuPG voor Outlook" + +msgctxt "DESC_SEC_kleopatra" +msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs." +msgstr "Sleutelbeheerder voor OpenPGP en X.509 en algemene crypto dialogen." + +msgctxt "DESC_Menu_kleopatra" +msgid "Run the Kleopatra key management tool." +msgstr "De Kleopatra sleutelbeheertool uitvoeren." diff --git a/src/inst-gpgol.nsi b/src/inst-gpgol.nsi index 33eeff64..834803b6 100644 --- a/src/inst-gpgol.nsi +++ b/src/inst-gpgol.nsi @@ -1,103 +1,103 @@ # inst-gpgol.nsi - Installer snippet for gpgol. -*- coding: latin-1; -*- # Copyright (C) 2005 g10 Code GmbH # # This file is part of GPG4Win. # # GPG4Win is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # GPG4Win is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA !ifdef prefix !undef prefix !endif !ifdef exprefix !undef exprefix !endif !define prefix ${ipdir}/gpgol-${gpg4win_pkg_gpgol_version} !define bdir ${bpdir}/gpgol-${gpg4win_pkg_gpgol_version}-build !define exprefix ${exipdir}/gpgol-${gpg4win_pkg_gpgol_version} ${MementoSection} "GpgOL" SEC_gpgol SetOutPath "$INSTDIR" !ifdef SOURCES File "${gpg4win_pkg_gpgol}" !else SetOutPath "$INSTDIR\bin" ClearErrors SetOverwrite try File ${prefix}/bin/gpgol.dll SetOverwrite lastused ifErrors 0 do_reg File /oname=gpgol.dll.tmp ${prefix}/bin/gpgol.dll Rename /REBOOTOK gpgol.dll.tmp gpgol.dll do_reg: # Register the DLL. RegDLL "$INSTDIR\bin\gpgol.dll" ifErrors 0 +2 MessageBox MB_OK "$(T_GpgOL_RegFailed)" SetOutPath "$INSTDIR\share\locale\de\LC_MESSAGES" File ${prefix}/share/locale/de/LC_MESSAGES/gpgol.mo SetOutPath "$INSTDIR\share\locale\sv\LC_MESSAGES" File ${prefix}/share/locale/sv/LC_MESSAGES/gpgol.mo SetOutPath "$INSTDIR\share\locale\pt\LC_MESSAGES" File ${prefix}/share/locale/pt/LC_MESSAGES/gpgol.mo SetOutPath "$INSTDIR\share\locale\fr\LC_MESSAGES" File ${prefix}/share/locale/fr/LC_MESSAGES/gpgol.mo SetOutPath "$INSTDIR\share\locale\zh_CN\LC_MESSAGES" File ${prefix}/share/locale/zh_CN/LC_MESSAGES/gpgol.mo SetOutPath "$INSTDIR\share\locale\zh_TW\LC_MESSAGES" File ${prefix}/share/locale/zh_TW/LC_MESSAGES/gpgol.mo SetOutPath "$INSTDIR\share\gpgol" File "${prefix}/share/gpgol/*.cfg" File "${prefix}/share/gpgol/*.ico" SetOutPath "$INSTDIR\share\doc\gpgol" File "${bdir}/doc/gpgol.pdf" ${If} ${RunningX64} # Install the 64 bit version of the dll. SetOutPath "$INSTDIR\bin_64" ClearErrors SetOverwrite try File ${exprefix}/bin/gpgol.dll SetOverwrite lastused ifErrors 0 do_reg64 File /oname=gpgol.dll.tmp ${exprefix}/bin/gpgol.dll Rename /REBOOTOK gpgol.dll.tmp gpgol.dll do_reg64: # Register the DLL. We need to register both versions. However # RegDLL can't be used for 64 bit and InstallLib seems to be a # registry hack. ClearErrors ExecWait '"$SYSDIR\regsvr32" /s "$INSTDIR\bin_64\gpgol.dll"' ifErrors 0 +2 MessageBox MB_OK "$(T_GpgOL_RegFailed) (64 bit)" ${EndIf} !endif ${MementoSectionEnd} LangString T_GpgOL_RegFailed ${LANG_ENGLISH} \ - "Warning: Registration of the GpgOL Outlook pluginfailed." + "Warning: Registration of the GpgOL Outlook plugin failed." LangString DESC_SEC_gpgol ${LANG_ENGLISH} \ "GnuPG for Outlook" diff --git a/src/installer.nsi b/src/installer.nsi index 9e309b84..340b033a 100644 --- a/src/installer.nsi +++ b/src/installer.nsi @@ -1,800 +1,800 @@ # installer.nsi - Installer for GnuPG 4 Windows. -*- coding: latin-1; -*- # Copyright (C) 2005, 2007 g10 Code GmbH # Copyright (C) 2017 Intevation GmbH # # This file is part of GPG4Win. # # GPG4Win is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # GPG4Win is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # No servicable parts beyond this line. Stay clear :) !ifdef REQUIRE_W32_NSIS !ifdef PACKAGE_LIBRARY !include "Library.nsh" !endif !else !macro InstallLib libtype shared install localfile destfile tempbasedir File "${localfile}" !macroend !endif !include "FileFunc.nsh" !include "WinMessages.nsh" !include "WinVer.nsh" # We use the modern UI 2. !include "MUI2.nsh" !ifdef DEBUG !undef DEBUG !endif # Set the package name. Note that this name should not be sufficed # with the version because this would get displayed in the start menu. Name "${PRETTY_PACKAGE}" OutFile "${PACKAGE}-${VERSION}.exe" BrandingText "${PRETTY_PACKAGE}-${VERSION}" # Details button conflicts with splashscreen ShowInstDetails nevershow # Set the installation directory. !ifndef INSTALL_DIR !define INSTALL_DIR "${PACKAGE}" !endif InstallDir "$PROGRAMFILES\${INSTALL_DIR}" # Add version information to the file properties. VIProductVersion "${PROD_VERSION}" VIAddVersionKey "ProductName" "${PRETTY_PACKAGE_SHORT} (${VERSION})" !ifdef LICENSE_GPL VIAddVersionKey "Comments" \ "${PRETTY_PACKAGE_SHORT} is Free Software; you can redistribute it \ and/or modify it under the terms of the GNU General Public License. \ You should have received a copy of the GNU General Public License \ along with this software; if not, write to the Free Software \ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \ MA 02110-1301, USA" !else VIAddVersionKey "Comments" \ "${PRETTY_PACKAGE_SHORT} is Free Software; you can redistribute it \ and/or modify it under the terms of the GNU Lesser General Public \ License. You should have received a copy of the GNU Lesser General \ Public License along with this software; if not, write to the Free \ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \ MA 02110-1301, USA" !endif VIAddVersionKey "CompanyName" "${COMPANY}" VIAddVersionKey "LegalTrademarks" "" VIAddVersionKey "LegalCopyright" "${COPYRIGHT}" VIAddVersionKey "FileDescription" "${DESCRIPTION}" VIAddVersionKey "FileVersion" "${PROD_VERSION}" # Set to the name of another GnuPG installation if one has been detected Var OtherGnuPGDetected # Interface Settings # !define MUI_ABORTWARNING !define MUI_FINISHPAGE_NOAUTOCLOSE !define MUI_UNFINISHPAGE_NOAUTOCLOSE !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP \ "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-header-install-150x57.bmp" !define MUI_HEADERIMAGE_UNBITMAP \ "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-header-uninstall-150x57.bmp" !define MUI_WELCOMEFINISHPAGE_BITMAP \ "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-wizard-install-164x314.bmp" !define MUI_UNWELCOMEFINISHPAGE_BITMAP \ "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-wizard-uninstall-164x314.bmp" !define MUI_ICON "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-install.ico" !define MUI_UNICON "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-uninstall.ico" # Remember the installer language !define MUI_LANGDLL_REGISTRY_ROOT "SHCTX" !define MUI_LANGDLL_REGISTRY_KEY "Software\${PRETTY_PACKAGE_SHORT}" !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" # No Umlaute, please! !define MUI_LANGDLL_INFO "Please choose a language for the setup.$\r$\n\ Bitte die Sprache des Installations-Vorgangs angeben." # The list of wizard pages. !define MUI_WELCOMEPAGE_TITLE "${WELCOME_TITLE_STR}" !define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomeFunction !define MUI_WELCOMEPAGE_TEXT "${ABOUT_STR}" !insertmacro MUI_PAGE_WELCOME Function WelcomeFunction IfSilent leave ClearErrors ReadRegStr $0 SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "DisplayVersion" IfErrors leave 0 StrCmp $0 "" leave SendMessage $mui.WelcomePage.Text ${WM_SETTEXT} 0 "STR:${ABOUT_STR}$\r$\n$(T_UPDATE_STR) $0" leave: FunctionEnd #!define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)" #!define MUI_PAGE_HEADER_SUBTEXT "$(T_GPLHeader)" #!insertmacro MUI_PAGE_LICENSE "license.blurb" !define MUI_PAGE_CUSTOMFUNCTION_SHOW PrintNonAdminWarning !insertmacro MUI_PAGE_COMPONENTS !define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckExistingVersion !insertmacro MUI_PAGE_DIRECTORY !define MUI_PAGE_CUSTOMFUNCTION_PRE BeforeInstallHooks !insertmacro MUI_PAGE_INSTFILES # Finish page !ifndef SOURCES !define MUI_PAGE_CUSTOMFUNCTION_PRE ShowFinalWarnings !define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishFunction !define MUI_FINISHPAGE_RUN !define MUI_FINISHPAGE_RUN_FUNCTION RunAsUser !define MUI_FINISHPAGE_SHOWREADME "share\gpg4win\README.$(T_LangCode).txt" !define MUI_FINISHPAGE_SHOWREADME_TEXT "$(T_ShowReadme)" !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED !define MUI_FINISHPAGE_LINK "$(T_MoreInfo)" !define MUI_FINISHPAGE_LINK_LOCATION "$(T_MoreInfoURL)" !insertmacro MUI_PAGE_FINISH Function FinishFunction IfSilent leave !insertmacro SectionFlagIsSet ${SEC_kleopatra} \ ${SF_SELECTED} have_kleo check_gpa check_gpa: !insertmacro SectionFlagIsSet ${SEC_gpa} \ ${SF_SELECTED} have_gpa have_nothing have_nothing: ShowWindow $mui.FinishPage.Run ${SW_HIDE} goto leave have_kleo: SendMessage $mui.FinishPage.Run.Text ${WM_SETTEXT} 0 "STR:$(T_RunKleopatra)" goto leave have_gpa: SendMessage $mui.FinishPage.Run.Text ${WM_SETTEXT} 0 "STR:$(T_RunGPA)" leave: FunctionEnd Function RunAsUser !insertmacro SectionFlagIsSet ${SEC_kleopatra} \ ${SF_SELECTED} do_kleo skip_kleo do_kleo: g4wihelp::DesktopShellRun "$INSTDIR\bin\kleopatra.exe" goto leave skip_kleo: !insertmacro SectionFlagIsSet ${SEC_gpa} \ ${SF_SELECTED} do_gpa leave do_gpa: g4wihelp::DesktopShellRun "$INSTDIR\bin\gpa.exe" leave: FunctionEnd LangString T_RunKleopatra ${LANG_ENGLISH} \ "Run Kleopatra" LangString T_RunGPA ${LANG_ENGLISH} \ "Run GPA" # /SOURCES !endif # Uninstaller pages. !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM !ifndef SOURCES !define MUI_PAGE_CUSTOMFUNCTION_PRE un.CloseApps !endif !insertmacro MUI_UNPAGE_INSTFILES #!insertmacro MUI_UNPAGE_FINISH #Page license #Page components #Page directory #Page instfiles #UninstPage uninstConfirm #UninstPage instfiles # Language support. This has to be done after defining the pages, but # before defining the translation strings. Confusing. # Enable this to not filter languages for the current code page. Note # that languages which are then not filtered out may not be displayed # correctly in the Windows version the user is using. Not recommended, # but can be useful for testing. !ifdef DEBUG !define MUI_LANGDLL_ALLLANGUAGES !endif !insertmacro MUI_LANGUAGE "English" !define PO_HEADER !include "../po/catalogs.nsi" !undef PO_HEADER !insertmacro MUI_RESERVEFILE_LANGDLL ReserveFile "${BUILD_DIR}\g4wihelp.dll" !ifdef SOURCES ReserveFile "${TOP_SRCDIR}\doc\logo\gpg4win-logo-400px.bmp" ReserveFile "${TOP_SRCDIR}\src\gpg4win-splash.wav" !endif ReserveFile "${TOP_SRCDIR}\COPYING" ReserveFile "${TOP_SRCDIR}\doc\logo\gpg4win-logo-164x314.bmp" # Language support LangString T_LangCode ${LANG_ENGLISH} "en" # Startup page LangString T_GPLHeader ${LANG_ENGLISH} \ "This software is licensed under the terms of the GNU General Public \ License (GNU GPL)." LangString T_GPLShort ${LANG_ENGLISH} \ "In short: You are allowed to run this software for any purpose. \ You may distribute it as long as you give the recipients the same \ rights you have received." LangString T_MoreInfo ${LANG_ENGLISH} \ "Go to Gpg4win's webpage" LangString T_MoreInfoURL ${LANG_ENGLISH} "https://www.gpg4win.org" LangString T_ShowReadme ${LANG_ENGLISH} \ "Show the README file" LangString T_NoKeyManager ${LANG_ENGLISH} \ "No key manager has been installed, thus we can't run one now." # Used as subdirectory name in Start Menu. LangString DESC_Menu_manuals ${LANG_ENGLISH} \ "Documentation" LangString DESC_Menu_uninstall ${LANG_ENGLISH} \ "Uninstall" # Used as subdirectory name on Desktop. LangString DESC_Desktop_manuals ${LANG_ENGLISH} \ "Gpg4win Documentation" # Functions # Custom functions and macros for gpg4win. !include "g4wihelp.nsi" # Display a warning if this is a Beta version. #Function PrintBetaWarning # MessageBox MB_OK "$(T_BetaWarning)" #FunctionEnd # Display a warning if GnuPP has been detected and allow the user to abort # the installation. Function PrintGnuPPWarning MessageBox MB_YESNO "$(T_FoundOldGnuPP)" IDYES cont Abort cont: StrCpy $OtherGnuPGDetected "GnuPP" FunctionEnd # Display a warning if GnuPT has been detected and allow the user to abort # the installation. Function PrintGnuPTWarning MessageBox MB_YESNO "$(T_FoundOldGnuPT)" IDYES cont Abort cont: StrCpy $OtherGnuPGDetected "GnuPT" FunctionEnd # Display a warning if the Sourceforge WinPT has been detected and # allow the user to abort the installation. Function PrintWinPTSFWarning MessageBox MB_YESNO "$(T_FoundOldWinPTSF)" IDYES cont Abort cont: StrCpy $OtherGnuPGDetected "WinPT-SF" FunctionEnd # Display a warning if GnuPG Pack has been detected and abort the # the installation. This one clobbers our own Registry space. Function PrintGnuPackWarning MessageBox MB_OK "$(T_FoundOldGnuPack)" Abort FunctionEnd # Check whether one of the other GnuPG systems has already been # installed. We do this by looking at the registry. !ifndef SOURCES Function CheckOtherGnuPGApps StrCpy $OtherGnuPGDetected "" ClearErrors ReadRegStr $0 SHCTX "Software\GNU\GnuPP\Settings" "Path" IfErrors +2 0 Call PrintGnuPPWarning EnumRegKey $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\GnuPT" 0 StrCmp $0 "" +2 Call PrintGnuPTWarning ClearErrors ReadRegStr $0 SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Windows Privacy Tools" "DisplayVersion" IfErrors +2 0 Call PrintWinPTSFWarning ReadRegStr $0 SHCTX "Software\GNU\GnuPG" "Install Directory" Push $0 Push "GnuPG-Pack" Call StrStr Pop $0 StrCmp $0 "" +2 Call PrintGnuPackWarning FunctionEnd !endif # Check whether gpg4win has already been installed. This is called as # a leave function from the directory page. A call to abort will get # back to the directory selection. Function CheckExistingVersion ClearErrors FileOpen $0 "$INSTDIR\VERSION" r IfErrors leave FileRead $0 $R0 FileRead $0 $R1 FileClose $0 Push $R1 Call TrimNewLines Pop $R1 # Extract major version. StrCpy $0 $R1 2 StrCmp $0 "1." 0 leave MessageBox MB_YESNO "$(T_FoundExistingOldVersion)" IDYES leave Abort leave: FunctionEnd # PrintNonAdminWarning # Check whether the current user is in the Administrator group or an # OS version without the need for an Administrator is in use. Print a # diagnostic if this is not the case and abort installation. Function PrintNonAdminWarning #Call PrintBetaWarning ClearErrors UserInfo::GetName IfErrors leave Pop $0 UserInfo::GetAccountType Pop $1 StrCmp $1 "Admin" leave +1 MessageBox MB_YESNO "$(T_AdminWanted)" IDNO exit goto leave exit: Quit leave: FunctionEnd # Check for claws mail installation which was shipped in Gpg4win # versions < 2.2.6 Function CheckClawsUninstall IfFileExists $INSTDIR\claws-mail.exe 0 leave MessageBox MB_YESNO "$(T_FoundOldClaws)" IDYES uninstall IDNO leave uninstall: !insertmacro SelectSection ${SecUninstClawsMail} leave: FunctionEnd # Check whether this is a reinstall and popup a message box to explain # that it is better to close other apps before continuing Function PrintCloseOtherApps g4wihelp::KillProc "kleopatra.exe" g4wihelp::KillProc "gpa.exe" g4wihelp::KillProc "gpgme-w32spawn.exe" g4wihelp::KillProc "resolver.exe" g4wihelp::KillProc "overlayer.exe" g4wihelp::KillProc "gpg-agent.exe" g4wihelp::KillProc "gpg.exe" g4wihelp::KillProc "dirmngr.exe" g4wihelp::KillProc "gpgsm.exe" goto leave # TODO check for running outlook and offer to kill it. print_warning: MessageBox MB_OK|MB_ICONEXCLAMATION "$(T_CloseOtherApps)" leave: FunctionEnd Function un.CloseApps g4wihelp::KillProc "kleopatra.exe" g4wihelp::KillProc "gpa.exe" g4wihelp::KillProc "gpgme-w32spawn.exe" g4wihelp::KillProc "resolver.exe" g4wihelp::KillProc "overlayer.exe" g4wihelp::KillProc "gpg-agent.exe" g4wihelp::KillProc "gpg.exe" g4wihelp::KillProc "dirmngr.exe" g4wihelp::KillProc "gpgsm.exe" FunctionEnd # Called right before installation Function BeforeInstallHooks Call PrintCloseOtherApps Call CheckClawsUninstall FunctionEnd # Called right before the final page to show more warnings. Function ShowFinalWarnings StrCmp $OtherGnupgDetected "" +2 MessageBox MB_OK "$(T_FoundOldSeeManual)" leave: FunctionEnd #----------------------------------------------- # Strings pertaining to the install options page #----------------------------------------------- # Installation options title LangString T_InstallOptions ${LANG_ENGLISH} "Install Options" # Installation options subtitle 1 LangString T_InstallOptLinks ${LANG_ENGLISH} "Start links" LangString T_InstOptLabelA ${LANG_ENGLISH} \ "Please select where Gpg4win shall install links:" LangString T_InstOptLabelB ${LANG_ENGLISH} \ "(Only programs will be linked into the quick launch bar.)" LangString T_InstOptFieldA ${LANG_ENGLISH} \ "Start Menu" LangString T_InstOptFieldB ${LANG_ENGLISH} \ "Desktop" LangString T_InstOptFieldC ${LANG_ENGLISH} \ "Quick Launch Bar" #------------------------------------------------ # String pertaining to the existing version check #------------------------------------------------ LangString T_FoundExistingVersion ${LANG_ENGLISH} \ "Version $R1 has already been installed. $\r$\n\ Do you want to overwrite it with version ${VERSION}?" LangString T_FoundExistingOldVersion ${LANG_ENGLISH} \ "An old version $R1 has already been installed. It is \ strongly recommended to deinstall previous versions on \ major upgrades. $\r$\n\ Do you want to continue installing Gpg4win ${VERSION} anyway?" LangString T_UninstallingOldVersion ${LANG_ENGLISH} \ "Uninstalling Gpg4win-" #--------------------------------------------- # From the old installation checking functions #--------------------------------------------- LangString T_FoundOldSeeManual ${LANG_ENGLISH} \ "Please see the Gpg4win user manual to learn how to migrate existing \ keys from other GnuPG based installations to Gpg4win." #--------- LangString T_FoundOldGnuPP ${LANG_ENGLISH} \ - "An old installation of GnuPP (GNU Privacy Project) has been been \ + "An old installation of GnuPP (GNU Privacy Project) has been \ detected. That software is not maintained anymore and thus should \ be removed. $\r$\n\ $\r$\n\ Do you want to continue installing Gpg4win and take care of the old \ installation later?" #--------- LangString T_FoundOldGnuPT ${LANG_ENGLISH} \ - "An installation of GnuPT has been been detected. This may cause \ + "An installation of GnuPT has been detected. This may cause \ problems when used along with Gpg4win. $\r$\n\ $\r$\n\ Do you want to continue installing Gpg4win?" #--------- LangString T_FoundOldWinPTSF ${LANG_ENGLISH} \ - "An old installation of the Sourceforge hosted WinPT has been been \ + "An old installation of the Sourceforge hosted WinPT has been \ detected. That software is not maintained anymore and should \ be removed. $\r$\n\ $\r$\n\ Do you want to continue installing Gpg4win and take care of the old \ installation later?" #-------- LangString T_FoundOldGnuPack ${LANG_ENGLISH} \ - "An installation of GnuPG-Pack has been been detected. You need to \ + "An installation of GnuPG-Pack has been detected. You need to \ uninstall it before you can continue with Gpg4win installation. $\r$\n\ $\r$\n\ The installation will be aborted now!" # From Function PrintBetaWarning LangString T_BetaWarning ${LANG_ENGLISH} \ "Note: This is a BETA version of Gpg4win. $\r$\n\ $\r$\n\ Beta versions are only intended for testing and \ shall not be used in a production environment." # From Function PrintNonAdminWarning LangString T_AdminWanted ${LANG_ENGLISH} \ "Warning: It is recommended to install Gpg4win system-wide with \ administrator rights. \ $\r$\n\ $\r$\n\ Do you want to continue installing Gpg4win without administrator rights?" # From Function PrintCloseOtherApps LangString T_CloseOtherApps ${LANG_ENGLISH} \ "Please make sure that other applications are not running. \ In particular you should close Outlook and all Explorer \ windows. Gpg4win will try to install anyway but a reboot \ will be required then." LangString T_ShuttingDownWinPT ${LANG_ENGLISH} \ "Trying to shutdown a possible running instance of WinPT." # From Function CheckClawsUninstall LangString T_FoundOldClaws ${LANG_ENGLISH} \ "An old version of Claws Mail was found in your Installation directory. \ $\r$\nPlease note that Claws Mail is no longer bundled with Gpg4win \ and is now available as a standalone package.$\r$\n\ You should uninstall Claws Mail now, and if you wish to \ continue to use it, install an up-to-date version from:$\r$\n\ http://www.claws-mail.org/win32 $\r$\n$\r$\n\ Uninstall Claws Mail from Gpg4win now?" # From Function CheckClawsUninstall LangString T_WinisDeprecated ${LANG_ENGLISH} \ "Windows Versions before Windows 7 are no longer maintained by Gpg4win. \ $\r$\nSupport for them may be removed in a future version.\ $\r$\n$\r$\nKleopatra is disabled." # From Function WelcomeFunction LangString T_UPDATE_STR ${LANG_ENGLISH} \ "Updating Version" # FIXME: The GetAfterChar function comes from the NSIS wiki. Function un.GetAfterChar Exch $0 ; chop char Exch Exch $1 ; input string Push $2 Push $3 StrCpy $2 0 loop: IntOp $2 $2 - 1 StrCpy $3 $1 1 $2 StrCmp $3 "" 0 +3 StrCpy $0 "" Goto exit2 StrCmp $3 $0 exit1 Goto loop exit1: IntOp $2 $2 + 1 StrCpy $0 $1 "" $2 exit2: Pop $3 Pop $2 Pop $1 Exch $0 ; output FunctionEnd Function un.SourceDelete Push "/" Call un.GetAfterChar Pop $R0 Delete "$INSTDIR\$R0" FunctionEnd # StrStr - taken from the NSIS reference # input, top of stack = string to search for # top of stack-1 = string to search in # output, top of stack (replaces with the portion of the string remaining) # modifies no other variables. # # Usage: # Push "this is a long ass string" # Push "ass" # Call StrStr # Pop $R0 # ($R0 at this point is "ass string") # !macro StrStr un Function ${un}StrStr Exch $R1 # st=haystack,old$R1, $R1=needle Exch # st=old$R1,haystack Exch $R2 # st=old$R1,old$R2, $R2=haystack Push $R3 Push $R4 Push $R5 StrLen $R3 $R1 StrCpy $R4 0 # $R1=needle # $R2=haystack # $R3=len(needle) # $R4=cnt # $R5=tmp loop: StrCpy $R5 $R2 $R3 $R4 StrCmp $R5 $R1 done StrCmp $R5 "" done IntOp $R4 $R4 + 1 Goto loop done: StrCpy $R1 $R2 "" $R4 Pop $R5 Pop $R4 Pop $R3 Pop $R2 Exch $R1 FunctionEnd !macroend # TrimNewlines - taken from the NSIS reference # input, top of stack (e.g. whatever$\r$\n) # output, top of stack (replaces, with e.g. whatever) # modifies no other variables. Function TrimNewlines Exch $R0 Push $R1 Push $R2 StrCpy $R1 0 loop: IntOp $R1 $R1 - 1 StrCpy $R2 $R0 1 $R1 StrCmp $R2 "$\r" loop StrCmp $R2 "$\n" loop IntOp $R1 $R1 + 1 IntCmp $R1 0 no_trim_needed StrCpy $R0 $R0 $R1 no_trim_needed: Pop $R2 Pop $R1 Exch $R0 FunctionEnd Function .onInit Call G4wRunOnce SetOutPath $TEMP !ifdef SOURCES File /oname=gpgspltmp.bmp "${TOP_SRCDIR}/doc/logo/gpg4win-logo-400px.bmp" # We play the tune only for the source installer File /oname=gpgspltmp.wav "${TOP_SRCDIR}/src/gpg4win-splash.wav" g4wihelp::playsound $TEMP\gpgspltmp.wav g4wihelp::showsplash 2500 $TEMP\gpgspltmp.bmp Delete $TEMP\gpgspltmp.bmp # Note that we delete gpgspltmp.wav in .onInst{Failed,Success} !else ${GetParameters} $R0 ClearErrors ${GetOptions} $R0 /MINIMAL= $is_minimal Var /GLOBAL changed_dir # Check if the install directory was modified on the command line StrCmp "$INSTDIR" "$PROGRAMFILES\${INSTALL_DIR}" unmodified 0 # It is modified. Save that value. StrCpy $changed_dir "$INSTDIR" # MULITUSER_INIT overwrites directory setting from command line !insertmacro MULTIUSER_INIT StrCpy $INSTDIR "$changed_dir" goto initDone unmodified: !insertmacro MULTIUSER_INIT !endif initDone: # Enable this to force a language selection dialog on every run (the # preferred language is the default). Otherwise, the preferred # language is stored in the registry, and the installer does not ask # on upgrades. !ifdef DEBUG !define MUI_LANGDLL_ALWAYSSHOW !endif !insertmacro MUI_LANGDLL_DISPLAY ${IfNot} ${AtLeastWin7} MessageBox MB_OK "$(T_WinisDeprecated)" ${Endif} ${MementoSectionRestore} Call CalcDefaults Call CalcDepends !ifndef SOURCES Call CheckOtherGnuPGApps !endif FunctionEnd Function un.onInit !ifndef SOURCES !insertmacro MULTIUSER_UNINIT !endif # Remove the language preference. !insertmacro MUI_UNGETLANGUAGE !ifndef SOURCES StrCpy $is_update "0" ${un.GetParameters} $R0 ClearErrors ${un.GetOptions} $R0 /UPDATE= $R1 IfErrors +2 StrCpy $is_update "1" !endif FunctionEnd # This must be in a central place. Urgs. !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !ifdef HAVE_PKG_GNUPG_W32 !insertmacro MUI_DESCRIPTION_TEXT ${SEC_gnupg_w32} $(DESC_SEC_gnupg_w32) !endif !ifdef HAVE_PKG_GPGOL !insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpgol} $(DESC_SEC_gpgol) !endif !ifdef HAVE_PKG_GPGEX !insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpgex} $(DESC_SEC_gpgex) !endif !ifdef HAVE_PKG_PAPERKEY !insertmacro MUI_DESCRIPTION_TEXT ${SEC_paperkey} $(DESC_SEC_paperkey) !endif !ifdef HAVE_PKG_GPA !insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpa} $(DESC_SEC_gpa) !endif !ifdef HAVE_PKG_KLEOPATRA !insertmacro MUI_DESCRIPTION_TEXT ${SEC_kleopatra} $(DESC_SEC_kleopatra) !endif !ifdef HAVE_PKG_MAN_NOVICE_EN !insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_novice_en} $(DESC_SEC_man_novice_en) !endif !ifdef HAVE_PKG_MAN_ADVANCED_EN !insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_advanced_en} $(DESC_SEC_man_advanced_en) !endif !ifdef HAVE_PKG_COMPENDIUM !insertmacro MUI_DESCRIPTION_TEXT ${SEC_compendium} $(DESC_SEC_compendium) !endif !ifdef HAVE_PKG_MAN_NOVICE_DE !insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_novice_de} $(DESC_SEC_man_novice_de) !endif !ifdef HAVE_PKG_MAN_ADVANCED_DE !insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_advanced_de} $(DESC_SEC_man_advanced_de) !endif !insertmacro MUI_FUNCTION_DESCRIPTION_END