NSIS腳本的語言包文件,存放在如下目錄:字體
NSIS安裝目錄\Contrib\Language files
在這個目錄下有不少語言包,通常簡體中文使用的語言包是 SimpChinese.nlf 和 SimpChinese.nsh 兩個文件。ui
在NSIS腳本中,寫入下面這句話,就能夠調用簡體中文語言包了。指針
!insertmacro MUI_LANGUAGE "SimpChinese"
不過,NSIS程序默認的簡體中文語言包有不少問題。這個語言包遣詞很是生硬,難以知足客戶的不少定製化要求。日誌
所以我決定在這個語言包的基礎上,本身新寫一組語言包:CustomizedChinesecode
CustomizedChinese.nlf 代碼以下:進程
# ################################### # nlf file of CustomizedChinese # Author: Tsybius2014 # DateTime: 2016/04/06 # Remark: none # ################################### # Header, don't edit NLF v6 # Language ID 2052 # Font and size - dash (-) means default 字體名稱與大小 宋體 9 # Codepage - dash (-) means ANSI code page ANSI 字碼頁 936 # RTL - anything else than RTL means LTR 由右至左書寫 - # ^Branding Nullsoft Install System %s # ^SetupCaption $(^Name) 安裝 # ^UninstallCaption $(^Name) 卸載 # ^LicenseSubCaption : 受權協議 # ^ComponentsSubCaption : 安裝選項 # ^DirSubCaption : 安裝文件夾 # ^InstallingSubCaption : 正在安裝 # ^CompletedSubCaption : 已完成 # ^UnComponentsSubCaption : 卸載選項 # ^UnDirSubCaption : 卸載文件夾 # ^ConfirmSubCaption : 確認 # ^UninstallingSubCaption : 正在卸載 # ^UnCompletedSubCaption : 完成 # ^BackBtn < 上一步(&P) # ^NextBtn 下一步(&N) > # ^AgreeBtn 我接受(&I) # ^AcceptBtn 我接受「受權協議」中的條款(&A) # ^DontAcceptBtn 我不接受「受權協議」中的條款(&N) # ^InstallBtn 安裝(&I) # ^UninstallBtn 卸載(&U) # ^CancelBtn 取消(&C) # ^CloseBtn 關閉(&L) # ^BrowseBtn 瀏覽(&B)... # ^ShowDetailsBtn 顯示細節(&D) # ^ClickNext 單擊 [下一步(N)] 繼續。 # ^ClickInstall 單擊 [安裝(I)] 開始安裝。 # ^ClickUninstall 單擊 [卸載(U)] 開始卸載。 # ^Name 名稱 # ^Completed 已完成 # ^LicenseText 在安裝 $(^NameDA)以前請檢閱受權協議。若是你接受協議中全部條款,單擊 [我接受(I)] 。 # ^LicenseTextCB 在安裝 $(^NameDA)以前請檢閱受權協議。若是你接受協議中全部條款,單擊下方的勾選框。 $_CLICK # ^LicenseTextRB 在安裝 $(^NameDA)以前請檢閱受權協議。若是你接受協議中全部條款,選擇下方的第一個選項。 $_CLICK # ^UnLicenseText 在卸載 $(^NameDA)以前請檢閱受權協議。若是你接受協議中全部條款,單擊 [我接受(I)] 。 # ^UnLicenseTextCB 在卸載 $(^NameDA)以前請檢閱受權協議。若是你接受協議中全部條款,單擊下方的勾選框。 $_CLICK # ^UnLicenseTextRB 在卸載 $(^NameDA)以前請檢閱受權協議。若是你接受協議中全部條款,選擇下方的第一個選項。 $_CLICK # ^Custom 自定義 # ^ComponentsText 勾選你想要安裝的組件,並解除勾選你不但願安裝的組件。 $_CLICK # ^ComponentsSubText1 選定安裝的類型: # ^ComponentsSubText2_NoInstTypes 選定安裝的組件: # ^ComponentsSubText2 或者,自定義選定想安裝的組件: # ^UnComponentsText 勾選你想要卸載的組件,並解除勾選你不但願卸載的組件。 $_CLICK # ^UnComponentsSubText1 選擇卸載的類型: # ^UnComponentsSubText2_NoInstTypes 選擇要卸載的組件: # ^UnComponentsSubText2 或是,選擇想要卸載的可選項組件: # ^DirText 選擇 $(^NameDA)要安裝的文件夾。要安裝到其餘文件夾,單擊 [瀏覽(B)] 並選擇該文件夾。\r\n\r\n$_CLICK # ^DirSubText 目標文件夾 # ^DirBrowseText 選擇要安裝 $(^NameDA)的文件夾位置: # ^UnDirText 卸載嚮導會將 $(^NameDA)從下面的文件夾中卸載。要卸載不一樣文件夾中的內容,單擊 [瀏覽(B)] 並選擇其餘的文件夾。 $_CLICK # ^UnDirSubText "" # ^UnDirBrowseText 選擇要卸載 $(^NameDA)的文件夾位置: # ^SpaceAvailable "可用空間: " # ^SpaceRequired "所需空間: " # ^UninstallingText 這個嚮導將從你的電腦卸載 $(^NameDA)。 $_CLICK # ^UninstallingSubText 卸載目錄: # ^FileError 不能打開要寫入的文件: \r\n\t"$0"\r\n單擊 [Abort] 放棄安裝,\r\n [Retry] 從新嘗試寫入文件,或\r\n [Ignore] 忽略這個文件。 # ^FileError_NoIgnore 不能打開要寫入的文件: \r\n\t"$0"\r\n單擊 [Retry] 從新嘗試寫入文件,或\r\n [Cancel] 取消安裝。 # ^CantWrite "沒法寫入: " # ^CopyFailed "複製失敗 " # ^CopyTo "複製到: " # ^Registering "正在註冊: " # ^Unregistering "正在解除註冊: " # ^SymbolNotFound "沒法找到符號: " # ^CouldNotLoad "沒法加載: " # ^CreateFolder "建立文件夾: " # ^CreateShortcut "建立快捷方式: " # ^CreatedUninstaller "建立卸載程序: " # ^Delete "刪除文件: " # ^DeleteOnReboot "從新啓動後刪除: " # ^ErrorCreatingShortcut "正在建立快捷方式時發生錯誤: " # ^ErrorCreating "正在建立時發生錯誤: " # ^ErrorDecompressing "正在解壓縮數據發生錯誤!已損壞的安裝程序?" # ^ErrorRegistering "正在註冊 DLL 時發生錯誤" # ^ExecShell "運行外部程序: " # ^Exec "運行: " # ^Extract "抽取: " # ^ErrorWriting "抽取: 沒法寫入文件 " # ^InvalidOpcode "安裝損毀: 無效的操做代碼 " # ^NoOLE "沒有 OLE 用於: " # ^OutputFolder "輸出目錄: " # ^RemoveFolder "移除目錄: " # ^RenameOnReboot "從新啓動後重命名: " # ^Rename "重命名: " # ^Skipped "已跳過: " # ^CopyDetails "複製細節到剪貼板 " # ^LogInstall "日誌安裝進程" # byte B # kilo K # mega M # giga G
CustomizedChinese.nsh 代碼以下ip
;Language: 'Chinese (Customized)' (2052) ;Translator: Tsybius2014 ;Revision date: 2016/04/06 ;Verified by: !insertmacro LANGFILE "CustomizedChinese" "Chinese (Customized)" !ifdef MUI_WELCOMEPAGE ${LangFileString} MUI_TEXT_WELCOME_INFO_TITLE "歡迎使用 $(^NameDA)安裝嚮導" ${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "本嚮導將指引您完成 $(^NameDA)的安裝。$\r$\n$\r$\n在開始安裝以前,建議關閉其餘全部應用程序。此操做將容許「安裝程序」更新指定的系統文件,而不須要從新啓動您的電腦。$\r$\n$\r$\n若您的電腦已安裝 $(^NameDA)程序,請先行卸載再進行安裝。$\r$\n$\r$\n$_CLICK" !endif !ifdef MUI_UNWELCOMEPAGE ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TITLE "歡迎使用 $(^NameDA)卸載嚮導" ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "本嚮導將指引您完成 $(^NameDA)的卸載。$\r$\n$\r$\n在開始卸載以前,請確認 $(^NameDA)已經關閉。$\r$\n$\r$\n$_CLICK" !endif !ifdef MUI_LICENSEPAGE ${LangFileString} MUI_TEXT_LICENSE_TITLE "受權協議" ${LangFileString} MUI_TEXT_LICENSE_SUBTITLE "在安裝 $(^NameDA)以前,請閱讀下面的受權協議。" ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM "若是您接受本協議,單擊 [我接受(I)] 繼續安裝。若是您選定 [取消(C)] ,安裝程序將會關閉。必須接受此協議後才能安裝 $(^NameDA)。" ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "若是您接受「受權協議」,選中下方的勾選框,選中後才能安裝 $(^NameDA)。$_CLICK" ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "若是您接受「受權協議」,選擇下方第一個選項。必需要接受協議才能安裝 $(^NameDA)。$_CLICK" !endif !ifdef MUI_UNLICENSEPAGE ${LangFileString} MUI_UNTEXT_LICENSE_TITLE "受權協議" ${LangFileString} MUI_UNTEXT_LICENSE_SUBTITLE "在卸載 $(^NameDA)以前,請閱讀下面的責任條款。" ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM "若是您接受本協議,單擊 [我接受(I)] 繼續卸載。若是您選定 [取消(C)] ,安裝程序將會關閉。必需要接受此協議後才能卸載 $(^NameDA)。" ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX "若是您接受「受權協議」,單擊下方的勾選框。必需要接受協議才能卸載 $(^NameDA)。$_CLICK" ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "若是您接受「受權協議」,選擇下方第一個選項。必需要接受協議才能卸載 $(^NameDA)。$_CLICK" !endif !ifdef MUI_LICENSEPAGE | MUI_UNLICENSEPAGE ${LangFileString} MUI_INNERTEXT_LICENSE_TOP "按 [PgDn] 閱讀「受權協議」的其他部分。" !endif !ifdef MUI_COMPONENTSPAGE ${LangFileString} MUI_TEXT_COMPONENTS_TITLE "選擇組件" ${LangFileString} MUI_TEXT_COMPONENTS_SUBTITLE "選擇您想要安裝 $(^NameDA)的那些功能。" !endif !ifdef MUI_UNCOMPONENTSPAGE ${LangFileString} MUI_UNTEXT_COMPONENTS_TITLE "選定組件" ${LangFileString} MUI_UNTEXT_COMPONENTS_SUBTITLE "選定 $(^NameDA)當中您想要卸載的功能。" !endif !ifdef MUI_COMPONENTSPAGE | MUI_UNCOMPONENTSPAGE ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "描述" !ifndef NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "移動您的鼠標指針到組件之上,即可見到它的描述。" !else ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "移動您的鼠標指針到組件之上,即可見到它的描述。" !endif !endif !ifdef MUI_DIRECTORYPAGE ${LangFileString} MUI_TEXT_DIRECTORY_TITLE "選擇安裝位置" ${LangFileString} MUI_TEXT_DIRECTORY_SUBTITLE "選擇 $(^NameDA)的安裝文件夾。" !endif !ifdef MUI_UNDIRECTORYPAGE ${LangFileString} MUI_UNTEXT_DIRECTORY_TITLE "選定卸載位置" ${LangFileString} MUI_UNTEXT_DIRECTORY_SUBTITLE "選定 $(^NameDA)要卸載的文件夾。" !endif !ifdef MUI_INSTFILESPAGE ${LangFileString} MUI_TEXT_INSTALLING_TITLE "正在安裝" ${LangFileString} MUI_TEXT_INSTALLING_SUBTITLE "$(^NameDA)正在安裝,請等候..." ${LangFileString} MUI_TEXT_FINISH_TITLE "安裝完成" ${LangFileString} MUI_TEXT_FINISH_SUBTITLE "安裝成功。" ${LangFileString} MUI_TEXT_ABORT_TITLE "安裝己停止" ${LangFileString} MUI_TEXT_ABORT_SUBTITLE "安裝失敗。" !endif !ifdef MUI_UNINSTFILESPAGE ${LangFileString} MUI_UNTEXT_UNINSTALLING_TITLE "正在卸載" ${LangFileString} MUI_UNTEXT_UNINSTALLING_SUBTITLE " $(^NameDA)正在卸載,請等候..." ${LangFileString} MUI_UNTEXT_FINISH_TITLE "卸載已完成" ${LangFileString} MUI_UNTEXT_FINISH_SUBTITLE "卸載成功。" ${LangFileString} MUI_UNTEXT_ABORT_TITLE "卸載已停止" ${LangFileString} MUI_UNTEXT_ABORT_SUBTITLE "卸載失敗。" !endif !ifdef MUI_FINISHPAGE ${LangFileString} MUI_TEXT_FINISH_INFO_TITLE "正在完成 $(^NameDA)安裝嚮導" ${LangFileString} MUI_TEXT_FINISH_INFO_TEXT " $(^NameDA)已安裝在您的電腦。$\r$\n$\r$\n單擊 [完成(F)] 關閉此嚮導。" ${LangFileString} MUI_TEXT_FINISH_INFO_REBOOT "您的系統須要從新啓動,以便完成 $(^NameDA)的安裝。如今要從新啓動嗎?" !endif !ifdef MUI_UNFINISHPAGE ${LangFileString} MUI_UNTEXT_FINISH_INFO_TITLE "正在完成 $(^NameDA)卸載嚮導" ${LangFileString} MUI_UNTEXT_FINISH_INFO_TEXT " $(^NameDA)已從您的電腦卸載。$\r$\n$\r$\n單擊 [完成] 關閉這個嚮導。" ${LangFileString} MUI_UNTEXT_FINISH_INFO_REBOOT "電腦須要從新啓動,以便完成 $(^NameDA)的卸載。如今想要從新啓動嗎?" !endif !ifdef MUI_FINISHPAGE | MUI_UNFINISHPAGE ${LangFileString} MUI_TEXT_FINISH_REBOOTNOW "是,如今從新啓動(&Y)" ${LangFileString} MUI_TEXT_FINISH_REBOOTLATER "否,我稍後再自行從新啓動(&N)" ${LangFileString} MUI_TEXT_FINISH_RUN "運行 $(^NameDA)(&R)" ${LangFileString} MUI_TEXT_FINISH_SHOWREADME "顯示「自述文件」(&M)" ${LangFileString} MUI_BUTTONTEXT_FINISH "完成(&F)" !endif !ifdef MUI_STARTMENUPAGE ${LangFileString} MUI_TEXT_STARTMENU_TITLE "選擇「開始菜單」文件夾" ${LangFileString} MUI_TEXT_STARTMENU_SUBTITLE "選擇「開始菜單」文件夾,用於建立程序的快捷方式。" ${LangFileString} MUI_INNERTEXT_STARTMENU_TOP "選擇「開始菜單」文件夾,建立程序的快捷方式。如輸入的菜單名稱不存在於「開始菜單」中,嚮導會自動建立新文件夾。" ${LangFileString} MUI_INNERTEXT_STARTMENU_CHECKBOX "不建立快捷方式(&N)" !endif !ifdef MUI_UNCONFIRMPAGE ${LangFileString} MUI_UNTEXT_CONFIRM_TITLE "卸載 $(^NameDA)" ${LangFileString} MUI_UNTEXT_CONFIRM_SUBTITLE "從您的電腦卸載 $(^NameDA)" !endif !ifdef MUI_ABORTWARNING ${LangFileString} MUI_TEXT_ABORTWARNING "您肯定要退出 $(^Name)安裝程序嗎?" !endif !ifdef MUI_UNABORTWARNING ${LangFileString} MUI_UNTEXT_ABORTWARNING "您肯定要退出 $(^Name)卸載嗎?" !endif
將這兩個文件,放置到下面目錄:it
NSIS安裝目錄\Contrib\Language files
再在NSIS腳本中加入這句話:io
!insertmacro MUI_LANGUAGE "CustomizedChinese"
就能夠應用這個新的語言包了。假定某程序定義了PRODUCT_NAME以下:基礎
!define PRODUCT_NAME "X系統"
使用makensisw.exe打包完畢後,就能夠看到新語言包的效果了!
注意:
一、在nsh腳本中使用$(^NameDA)和$(^Name)替換PRODUCT_NAME時,NSIS程序會在名稱後面自動添加一個空格。
二、一個安裝嚮導並非全部的文字描述都被寫到語言包裏,好比有些自定義的MessageBox的文字描述,就須要在NSIS腳本中自行編寫。
END