实现多语言安装卸载并定义语言相关字符串

!define PRODUCT_NAME ""
 !define PRODUCT_VERSION "1.0"
 !define PRODUCT_PUBLISHER "My company, Inc."
 !define PRODUCT_WEB_SITE "http://www.yhxs3344.net"
 !define PRODUCT_UNINST_KEY "SoftwareMicrosoftWindowsCurrentVersionUninstallmyapp"
 !define PRODUCT_UNINST_ROOT_KEY "HKLM"

SetCompressor lzma
 RequestExecutionLevel admin

!include "MUI2.nsh"

!define MUI_ABORTWARNING
 !define MUI_ICON "${NSISDIR}ContribGraphicsIconsmodern-install.ico"
 !define MUI_UNICON "${NSISDIR}ContribGraphicsIconsmodern-uninstall.ico"

; 语言选择窗口常量设置
 !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
 !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"

!insertmacro MUI_PAGE_WELCOME
 !insertmacro MUI_PAGE_DIRECTORY
 !insertmacro MUI_PAGE_INSTFILES
 !insertmacro MUI_PAGE_FINISH

!insertmacro MUI_UNPAGE_INSTFILES

; 语言设置
 !insertmacro MUI_LANGUAGE "English"
 !insertmacro MUI_LANGUAGE "SimpChinese"
 ; 语言相关字符串
 LangString LNG_AppName ${LANG_ENGLISH} "flighty'app"
 LangString LNG_AppName ${LANG_SIMPCHINESE} "轻狂的程序"
 LangString UNINSTALL_CONFIRM ${LANG_ENGLISH} "Thank you very much! $(^Name) has been successfully removed."
 LangString UNINSTALL_CONFIRM ${LANG_SIMPCHINESE} "非常感謝您的使用! $(^Name) 已成功地从您的计算机中移除。"
 Name "$(LNG_AppName)"
 OutFile "Setup.exe"
 InstallDir "$PROGRAMFILESMy application"
 ShowInstDetails show
 ShowUnInstDetails show

Section "MainSection" SEC01
 StrCpy $0 $(LNG_AppName)
 ${If} $0 == "flighty'app"
 MessageBox MB_OK "ENGLISH"
 ${Else}
 MessageBox MB_OK "简体中文"
 ${EndIf}
SectionEnd

Section -AdditionalIcons
 SetOutPath $INSTDIR
 WriteIniStr "$INSTDIR${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
 CreateDirectory "$SMPROGRAMSMy application"
 CreateShortCut "$SMPROGRAMSMy applicationWebsite.lnk" "$INSTDIR${PRODUCT_NAME}.url"
 CreateShortCut "$SMPROGRAMSMy applicationUninstall.lnk" "$INSTDIRuninst.exe"
SectionEnd

Section -Post
 WriteUninstaller "$INSTDIRuninst.exe"
 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIRuninst.exe"
 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
 SectionEnd
 Function .onInit
 !insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd

Section Uninstall
 Delete "$INSTDIR${PRODUCT_NAME}.url"
 Delete "$INSTDIRuninst.exe"
 Delete "$SMPROGRAMSMy applicationUninstall.lnk"
 Delete "$SMPROGRAMSMy applicationWebsite.lnk"
 RMDir "$SMPROGRAMSMy application"
 RMDir "$INSTDIR"
 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
 SetAutoClose true
 SectionEnd

Function un.onInit
 !insertmacro MUI_UNGETLANGUAGE
 FunctionEnd

Function un.onUninstSuccess
 HideWindow
 MessageBox MB_ICONINFORMATION|MB_OK "$(UNINSTALL_CONFIRM)"
 FunctionEnd
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容