NSIS多语言安装,很多教程提供了详细的代码,但是代码中某些语句的含义我还是不很明白,作为一个吃螃蟹的人,我做一个解释,避免很多小伙伴和我哟U一样的误区,以下结论都是自己根据实践得来,若发现理解错误,请联系我7-7-2-7-0-6-5-4-8#qq.com(为了避免不法分子查信息,已经经过模糊处理,请把“-”去掉,”#“换成“@”)。
先上一段代码:
OutFile "Language.exe" LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" Section "" SectionEnd Function .onInit ;Language selection dialog Push "" Push ${LANG_ENGLISH} Push English Push ${LANG_SIMPCHINESE} Push "Simplified Chinese" Push ${LANG_SIMPCHINESE} Push "Simplified Chinese" Push ${LANG_SIMPCHINESE} Push "Simplified Chinese" Push ${LANG_SIMPCHINESE} Push "Simplified Chinese" Push ${LANG_SIMPCHINESE} Push "Simplified Chinese" Push ${LANG_SIMPCHINESE} Push "Simplified Chinese" 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
多语言安装的步骤是:
一、加载所需要的语言包,也就是上面的LoadlanguageFile,用到什么语言,加载什么语言;
二、语言加入堆栈,作为下面dll接口的参数,即一堆push操作,由于指针和标号问题,要亚茹一个空push “”,下面就是加入语言和语言id,即后面成对压入情况,push A中的A是all的意思,就是说下拉框要展示所有$LANGUAGE的内容,这个A可以是数字2~所有栈中的语言数;
三、调用dll对话框,
四、pop语言变量。