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語言變量。
