2002-10-07 19:59:01 +00:00
;NSIS Modern UI version 1.3
;MultiLanguage & LangDLL Example Script
2002-08-29 10:31:13 +00:00
;Written by Joost Verburg
!define NAME " Test Software " ;Define your own software name here
!define VERSION " 1.0 " ;Define your own software version here
!verbose 3
2002-10-07 19:59:01 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\System.nsh "
2002-08-29 10:31:13 +00:00
!verbose 4
;--------------------------------
2002-09-22 13:33:53 +00:00
;Configuration
2002-08-29 10:31:13 +00:00
2002-10-08 09:29:03 +00:00
!define MUI_LICENSEPAGE
!define MUI_COMPONENTPAGE
!define MUI_DIRSELECTPAGE
2002-10-13 18:28:38 +00:00
!define MUI_ABORTWARNING
2002-10-08 09:29:03 +00:00
!define MUI_UNINSTALLER
;Languages
2002-10-07 19:59:01 +00:00
;English
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\English.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\English.nsh "
2002-10-08 20:53:32 +00:00
;French
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\French.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\French.nsh "
2002-10-08 20:53:32 +00:00
;German
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\German.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\German.nsh "
2002-10-07 19:59:01 +00:00
;Dutch
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\Dutch.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\Dutch.nsh "
2002-10-08 09:29:03 +00:00
2002-10-11 13:20:03 +00:00
;Polish
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\Polish.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\Polish.nsh "
2002-10-11 13:20:03 +00:00
2002-10-08 18:06:22 +00:00
;Greek
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\Greek.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\Greek.nsh "
2002-10-10 20:17:36 +00:00
;Simplified Chinese
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\SimpChinese.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\SimpChinese.nsh "
2002-10-10 20:17:36 +00:00
;Traditional Chinese
LoadLanguageFile " ${NSISDIR} \Contrib\Language files\TradChinese.nlf "
2002-10-12 15:36:37 +00:00
!include " ${NSISDIR} \Contrib\Modern UI\Language files\TradChinese.nsh "
2002-08-29 10:31:13 +00:00
;General
2002-09-26 18:00:16 +00:00
Name /LANG = ${LANG_ENGLISH} " ${NAME} ${VERSION} "
2002-10-08 09:29:03 +00:00
Name /LANG = ${LANG_FRENCH} " ${NAME} ${VERSION} "
2002-10-08 20:53:32 +00:00
Name /LANG = ${LANG_GERMAN} " ${NAME} ${VERSION} "
Name /LANG = ${LANG_DUTCH} " ${NAME} ${VERSION} "
2002-10-11 13:20:03 +00:00
Name /LANG = ${LANG_POLISH} " ${NAME} ${VERSION} "
2002-10-08 18:06:22 +00:00
Name /LANG = ${LANG_GREEK} " ${NAME} ${VERSION} "
2002-10-10 20:17:36 +00:00
Name /LANG = ${LANG_SIMPCHINESE} " ${NAME} ${VERSION} "
Name /LANG = ${LANG_TRADCHINESE} " ${NAME} ${VERSION} "
2002-10-07 19:59:01 +00:00
OutFile " MultiLanguage.exe "
2002-08-29 10:31:13 +00:00
2002-10-07 19:59:01 +00:00
;User interface - icons, ui file, check bitmap, progress bar etc.
2002-10-12 18:33:28 +00:00
!insertmacro MUI_INTERFACE " modern.exe " " modern-install.ico " " modern-uninstall.ico " " modern.bmp " " smooth " " Tahoma " " $9 " ;$9 is the variable used to store the current page, do not use this var!
2002-09-02 19:50:25 +00:00
2002-08-29 10:31:13 +00:00
;License dialog
2002-10-12 16:16:46 +00:00
LicenseData /LANG = ${LANG_ENGLISH} " ${NSISDIR} \Contrib\Modern UI\License.txt "
LicenseData /LANG = ${LANG_FRENCH} " ${NSISDIR} \Contrib\Modern UI\License.txt "
LicenseData /LANG = ${LANG_GERMAN} " ${NSISDIR} \Contrib\Modern UI\License.txt "
LicenseData /LANG = ${LANG_DUTCH} " ${NSISDIR} \Contrib\Modern UI\License.txt "
LicenseData /LANG = ${LANG_POLISH} " ${NSISDIR} \Contrib\Modern UI\License.txt "
LicenseData /LANG = ${LANG_GREEK} " ${NSISDIR} \Contrib\Modern UI\License.txt "
LicenseData /LANG = ${LANG_SIMPCHINESE} " ${NSISDIR} \Contrib\Modern UI\License.txt "
LicenseData /LANG = ${LANG_TRADCHINESE} " ${NSISDIR} \Contrib\Modern UI\License.txt "
2002-08-29 10:31:13 +00:00
;Component-select dialog
2002-10-07 19:59:01 +00:00
;Titles
LangString TITLE_SecCopyUI ${LANG_ENGLISH} " modern.exe "
2002-10-08 09:29:03 +00:00
LangString TITLE_SecCopyUI ${LANG_FRENCH} " modern.exe "
2002-10-08 20:53:32 +00:00
LangString TITLE_SecCopyUI ${LANG_GERMAN} " modern.exe "
LangString TITLE_SecCopyUI ${LANG_DUTCH} " modern.exe "
2002-10-11 13:20:03 +00:00
LangString TITLE_SecCopyUI ${LANG_POLISH} " modern.exe "
2002-10-08 18:06:22 +00:00
LangString TITLE_SecCopyUI ${LANG_GREEK} " modern.exe "
2002-10-10 20:17:36 +00:00
LangString TITLE_SecCopyUI ${LANG_SIMPCHINESE} " modern.exe "
LangString TITLE_SecCopyUI ${LANG_TRADCHINESE} " modern.exe "
2002-10-08 18:06:22 +00:00
LangString TITLE_SecCreateUninst ${LANG_ENGLISH} " Uninstaller (English) "
LangString TITLE_SecCreateUninst ${LANG_FRENCH} " Uninstaller (French) "
2002-10-08 20:53:32 +00:00
LangString TITLE_SecCreateUninst ${LANG_GERMAN} " Uninstaller (German) "
LangString TITLE_SecCreateUninst ${LANG_DUTCH} " Uninstaller (Dutch) "
2002-10-11 13:20:03 +00:00
LangString TITLE_SecCreateUninst ${LANG_POLISH} " Uninstaller (Polish) "
2002-10-08 18:06:22 +00:00
LangString TITLE_SecCreateUninst ${LANG_GREEK} " Uninstaller (Greek) "
2002-10-10 20:17:36 +00:00
LangString TITLE_SecCreateUninst ${LANG_SIMPCHINESE} " Uninstaller (Simp Chinese) "
LangString TITLE_SecCreateUninst ${LANG_TRADCHINESE} " Uninstaller (Trad Chinese) "
2002-10-11 13:20:03 +00:00
2002-10-07 19:59:01 +00:00
;Descriptions
2002-10-08 09:29:03 +00:00
LangString DESC_SecCopyUI ${LANG_ENGLISH} " modern.exe: English description "
2002-10-08 18:06:22 +00:00
LangString DESC_SecCopyUI ${LANG_FRENCH} " modern.exe: French description "
2002-10-08 20:53:32 +00:00
LangString DESC_SecCopyUI ${LANG_GERMAN} " modern.exe: German description "
LangString DESC_SecCopyUI ${LANG_DUTCH} " modern.exe: Dutch description "
2002-10-11 13:20:03 +00:00
LangString DESC_SecCopyUI ${LANG_POLISH} " modern.exe: Polish description "
2002-10-08 18:06:22 +00:00
LangString DESC_SecCopyUI ${LANG_GREEK} " modern.exe: Greek description "
2002-10-10 20:17:36 +00:00
LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} " modern.exe: Simplified Chinese description "
LangString DESC_SecCopyUI ${LANG_TRADCHINESE} " modern.exe: Traditional Chinese description "
2002-10-08 09:29:03 +00:00
LangString DESC_SecCreateUninst ${LANG_ENGLISH} " Uninstaller: English description "
2002-10-08 18:06:22 +00:00
LangString DESC_SecCreateUninst ${LANG_FRENCH} " Uninstaller: French description "
2002-10-08 20:53:32 +00:00
LangString DESC_SecCreateUninst ${LANG_GERMAN} " Uninstaller: German description "
LangString DESC_SecCreateUninst ${LANG_DUTCH} " Uninstaller: Dutch description "
2002-10-11 13:20:03 +00:00
LangString DESC_SecCreateUninst ${LANG_POLISH} " Uninstaller: Polish description "
2002-10-08 18:06:22 +00:00
LangString DESC_SecCreateUninst ${LANG_GREEK} " Uninstaller: Greek description "
2002-10-10 20:17:36 +00:00
LangString DESC_SecCreateUninst ${LANG_SIMPCHINESE} " Uninstaller: Simplified Chinese description "
LangString DESC_SecCreateUninst ${LANG_TRADCHINESE} " Uninstaller: Traditional Chinese description "
2002-08-29 10:31:13 +00:00
;Folder-select dialog
InstallDir " $PROGRAMFILES \${NAME} "
2002-10-08 09:29:03 +00:00
2002-08-29 10:31:13 +00:00
;--------------------------------
;Installer Sections
2002-10-07 19:59:01 +00:00
Section $ ( TITLE_SecCopyUI) SecCopyUI
2002-08-29 10:31:13 +00:00
;Add your stuff here
SetOutPath " $INSTDIR "
File " ${NSISDIR} \Contrib\UIs\modern.exe "
SectionEnd
2002-10-07 19:59:01 +00:00
Section $ ( TITLE_SecCreateUninst) SecCreateUninst
2002-09-25 18:46:36 +00:00
2002-08-29 10:31:13 +00:00
;Add your stuff here
WriteUninstaller " $INSTDIR \Uninstall.exe "
SectionEnd
Section " "
2002-10-08 18:06:22 +00:00
;Invisible section to display the Finish header & write the language to the registry
WriteRegStr HKCU " Software\${NAME} " " Installer Language " $LANGUAGE
2002-09-19 15:50:37 +00:00
!insertmacro MUI_FINISHHEADER SetPage
2002-09-02 19:50:25 +00:00
2002-08-29 10:31:13 +00:00
SectionEnd
;--------------------------------
;Installer Functions
Function .onInit
2002-10-10 20:26:17 +00:00
Push Tahoma
Push 8
Push ${LANG_ENGLISH}
2002-10-15 19:02:30 +00:00
Push " ${MUI_ENGLISH_LANGNAME} "
2002-10-10 20:26:17 +00:00
Push ${LANG_FRENCH}
2002-10-15 19:02:30 +00:00
Push " ${MUI_FRENCH_LANGNAME} "
2002-10-10 20:26:17 +00:00
Push ${LANG_GERMAN}
2002-10-15 19:02:30 +00:00
Push " ${MUI_GERMAN_LANGNAME} "
2002-10-10 20:26:17 +00:00
Push ${LANG_DUTCH}
2002-10-15 19:02:30 +00:00
Push " ${MUI_DUTCH_LANGNAME} "
2002-10-11 13:20:03 +00:00
Push ${LANG_POLISH}
2002-10-15 19:02:30 +00:00
Push " ${MUI_POLISH_LANGNAME} "
2002-10-10 20:26:17 +00:00
Push ${LANG_GREEK}
2002-10-15 19:02:30 +00:00
Push " ${MUI_GREEK_LANGNAME} "
2002-10-10 20:26:17 +00:00
Push ${LANG_TRADCHINESE}
2002-10-15 19:02:30 +00:00
Push " ${MUI_TRADCHINESE_LANGNAME} "
2002-10-10 20:26:17 +00:00
Push ${LANG_SIMPCHINESE}
2002-10-15 19:02:30 +00:00
Push " ${MUI_SIMPCHINESE_LANGNAME} "
2002-10-10 20:26:17 +00:00
2002-10-11 13:20:03 +00:00
Push 8F ; 8 is the number of languages, F = change font
2002-10-10 20:26:17 +00:00
LangDLL :: LangDialog " Installer Language " " Please select a language. "
2002-09-22 12:52:32 +00:00
2002-09-26 18:00:16 +00:00
Pop $LANGUAGE
StrCmp $LANGUAGE " cancel " 0 + 2
Abort
2002-08-29 10:31:13 +00:00
FunctionEnd
Function .onInitDialog
2002-10-08 18:06:22 +00:00
2002-10-07 19:59:01 +00:00
!insertmacro MUI_INNERDIALOG_INIT
2002-08-29 10:31:13 +00:00
!insertmacro MUI_INNERDIALOG_START 1
2002-10-07 19:59:01 +00:00
!insertmacro MUI_INNERDIALOG_TEXT 1040 $ ( MUI_INNERTEXT_LICENSE)
2002-08-29 10:31:13 +00:00
!insertmacro MUI_INNERDIALOG_STOP 1
!insertmacro MUI_INNERDIALOG_START 2
2002-10-07 19:59:01 +00:00
!insertmacro MUI_INNERDIALOG_TEXT 1042 $ ( MUI_INNERTEXT_DESCRIPTION_TITLE)
!insertmacro MUI_INNERDIALOG_TEXT 1043 $ ( MUI_INNERTEXT_DESCRIPTION_INFO)
2002-08-29 10:31:13 +00:00
!insertmacro MUI_INNERDIALOG_STOP 2
!insertmacro MUI_INNERDIALOG_START 3
2002-10-07 19:59:01 +00:00
!insertmacro MUI_INNERDIALOG_TEXT 1041 $ ( MUI_INNERTEXT_DESTINATIONFOLDER)
2002-08-29 10:31:13 +00:00
!insertmacro MUI_INNERDIALOG_STOP 3
!insertmacro MUI_INNERDIALOG_END
2002-10-08 18:06:22 +00:00
2002-08-29 10:31:13 +00:00
FunctionEnd
Function .onNextPage
2002-10-08 18:06:22 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_NEXTPAGE SetPage
2002-10-08 18:06:22 +00:00
2002-08-29 10:31:13 +00:00
FunctionEnd
Function .onPrevPage
2002-10-08 18:06:22 +00:00
2002-09-20 20:21:00 +00:00
!insertmacro MUI_PREVPAGE SetPage
2002-10-08 18:06:22 +00:00
2002-08-29 10:31:13 +00:00
FunctionEnd
2002-09-19 15:50:37 +00:00
Function SetPage
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_INIT
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_START 1
2002-10-07 19:59:01 +00:00
!insertmacro MUI_HEADER_TEXT $ ( MUI_TEXT_LICENSE_TITLE) $ ( MUI_TEXT_LICENSE_SUBTITLE)
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_STOP 1
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_START 2
2002-10-07 19:59:01 +00:00
!insertmacro MUI_HEADER_TEXT $ ( MUI_TEXT_COMPONENTS_TITLE) $ ( MUI_TEXT_COMPONENTS_SUBTITLE)
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_STOP 2
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_START 3
2002-10-07 19:59:01 +00:00
!insertmacro MUI_HEADER_TEXT $ ( MUI_TEXT_DIRSELECT_TITLE) $ ( MUI_TEXT_DIRSELECT_SUBTITLE)
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_STOP 3
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_START 4
2002-10-07 19:59:01 +00:00
!insertmacro MUI_HEADER_TEXT $ ( MUI_TEXT_INSTALLING_TITLE) $ ( MUI_TEXT_INSTALLING_SUBTITLE)
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_STOP 4
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_START 5
2002-10-07 19:59:01 +00:00
!insertmacro MUI_HEADER_TEXT $ ( MUI_TEXT_FINISHED_TITLE) $ ( MUI_TEXT_FINISHED_SUBTITLE)
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_STOP 5
2002-08-29 10:31:13 +00:00
2002-10-07 19:59:01 +00:00
!insertmacro MUI_PAGE_END
2002-08-29 10:31:13 +00:00
FunctionEnd
Function .onMouseOverSection
!insertmacro MUI_DESCRIPTION_INIT
2002-10-07 19:59:01 +00:00
!insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $ ( DESC_SecCopyUI)
!insertmacro MUI_DESCRIPTION_TEXT ${SecCreateUninst} $ ( DESC_SecCreateUninst)
2002-08-29 10:31:13 +00:00
2002-10-07 19:59:01 +00:00
!insertmacro MUI_DESCRIPTION_END
2002-08-29 10:31:13 +00:00
FunctionEnd
Function .onUserAbort
2002-10-07 19:59:01 +00:00
!insertmacro MUI_ABORTWARNING
2002-09-02 19:50:25 +00:00
2002-08-29 10:31:13 +00:00
FunctionEnd
;--------------------------------
;Uninstaller Section
Section " Uninstall "
;Add your stuff here
Delete " $INSTDIR \modern.exe "
Delete " $INSTDIR \Uninstall.exe "
RMDir " $INSTDIR "
2002-10-08 18:06:22 +00:00
2002-10-08 20:08:07 +00:00
DeleteRegValue HKCU " Software\${NAME} " " Installer Language "
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_FINISHHEADER un.SetPage
2002-08-29 19:48:16 +00:00
2002-08-29 10:31:13 +00:00
SectionEnd
;--------------------------------
;Uninstaller Functions
2002-10-08 18:06:22 +00:00
Function un.onInit
ReadRegStr $LANGUAGE HKCU " Software\${NAME} " " Installer Language "
FunctionEnd
2002-08-29 10:31:13 +00:00
Function un.onNextPage
2002-10-08 18:06:22 +00:00
2002-10-08 20:08:07 +00:00
!insertmacro MUI_NEXTPAGE un.SetPage
2002-10-08 18:06:22 +00:00
2002-08-29 10:31:13 +00:00
FunctionEnd
2002-09-19 15:50:37 +00:00
Function un.SetPage
2002-10-07 19:59:01 +00:00
!insertmacro MUI_PAGE_INIT
!insertmacro MUI_PAGE_START 1
!insertmacro MUI_HEADER_TEXT $ ( MUI_UNTEXT_INTRO_TITLE) $ ( MUI_UNTEXT_INTRO_SUBTITLE)
!insertmacro MUI_PAGE_STOP 1
2002-08-29 10:31:13 +00:00
2002-10-07 19:59:01 +00:00
!insertmacro MUI_PAGE_START 2
!insertmacro MUI_HEADER_TEXT $ ( MUI_UNTEXT_UNINSTALLING_TITLE) $ ( MUI_UNTEXT_UNINSTALLING_SUBTITLE)
!insertmacro MUI_PAGE_STOP 2
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_START 3
2002-10-07 19:59:01 +00:00
!insertmacro MUI_HEADER_TEXT $ ( MUI_UNTEXT_FINISHED_TITLE) $ ( MUI_UNTEXT_FINISHED_SUBTITLE)
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_STOP 3
2002-08-29 10:31:13 +00:00
2002-09-19 15:50:37 +00:00
!insertmacro MUI_PAGE_END
2002-08-29 10:31:13 +00:00
FunctionEnd
2002-10-07 19:59:01 +00:00
;eof