1.多语言支持
只需要在打包文件开头添加如下命令即可支持多语言,以下里例子,如需要添加其它语言只需要在NSIS安装目录下的Contrib\Language files目录中查找对应语言。
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_RESERVEFILE_LANGDLL
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY ;弹出语言选择对话框
FunctionEnd
2.通过打包命令实现定制多语言显示的名称
先定义一下函数,然后在打包初始化(Function .onInit )函数中进行调用(call .onSelLang)即可,Push中的名称可以自己定义。
;下面函数为将相应的语言添加到语言选择界面,然后在初始化函数里调用该函数即可
Function .onSelLang
Push ""
Push ${LANG_SIMPCHINESE}
Push "中文(简体)"
Push ${LANG_ENGLISH}
Push English
Push ${LANG_TRADCHINESE}
Push "中文(繁體)"
Push A ; A means auto count languages ; for the auto count to work the first empty push (Push "") must remain
LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
Pop $LANGUAGE
StrCmp $LANGUAGE "cancel" 0 +2
Abort
FunctionEnd
3.通过修改NSIS安装后的文件实现定制多语言显示的名称
如果我需要修改多语言显示的名称,需要修改对应的NSIS文件,例如,修改\Contrib\Language files目录下的SimpChinese.nsh文件中的!insertmacro LANGFILE "SimpChinese" "Chinese (Simplified)"修改为!insertmacro LANGFILE "SimpChinese" "中文简体",即可实现在多语言选择的时候显示“中文简体”。
4.修改安装过程中页面的显示字串
通过修改Contrib\Language files目录下的.nlf和.nsh文件就可以修改安装字串。
5.删除桌面快捷方式
Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
6.删除开始菜单中的快捷方式
Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk"
RMDir /r /REBOOTOK "$SMPROGRAMS\${PRODUCT_NAME}"
7.刷新桌面
System::Call 'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)'
8.设置是否自动关闭
SetAutoClose true
9.设置是否重启电脑
SetRebootFlag true
10.提升打包文件的执行权限
RequestExecutionLevel admin
11.设置安装界面的标题
Caption "安装标题"
12.设置卸载界面的标题
UninstallCaption "卸载标题"
13.获取当前账户的本地缓存(Local\VirtualStore)
"$PROFILE\AppData\Local\VirtualStore\Program Files\NAME"(32为系统)
"$PROFILE\AppData\Local\VirtualStore\Program Files (x86)\NAME"(64位系统)
14.无法删除开始菜单中的快捷文件夹
RMDir /r /REBOOTOK "$SMPROGRAMS\${PRODUCT_NAME}" 无法删除需要把PRODUCT_NAME换成指定的文件夹名称。
RMDir /r /REBOOTOK "$SMPROGRAMS\${指定的文件夹名称}"无法删除,需要查看在创建前CreateDirectory "$SMPROGRAMS\$InstallPath"是否调用SetShellVarContext all。
15.添加或修改打包后的文件的属性信息
VIProductVersion "1.2.3.4"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "A test comment"
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Test Application is a trademark of Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "?Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "1.2.3” 欢迎光临
注.如果要修改属性中的语言,那么只需要正确的书写以上LANG_ENGLISH对应的语言值就可以了。