NSIS: 結構化的 LangString 寫作
範例: NIS EDIT 2.0b3 中文化多語言包裝。
環境: NSIS 2.0b4, Modern UI 1.64 MAKENSIS.EXE 2003-05-09
新版的 (1021) 與 Modern UI 1.66 理論上也可以用。自己用死
了,自己要負責喔。如果你實在不想學多語言安裝,以及如何用
LangString 「騙」 NSIS ,那麼這一段對你來說,就是垃圾,你
可以不看。如同 IC 所言,在硬碟毀掉之後還真是個新思維。
重點祇有這個字: LangString
──其 布局 / 放置變數 / 區段位置統整
當然許多人在?#124;疑多語言需要或不需要。我不想多說什麼,你可
以看作品本身,讓使用人的「爽快程度」。當一個語言的統整關
卡突破時,剩下來的,你要加十個語言也沒有關係。你的程式控
制思路,會更加清晰。
回到原題。在 NSIS 2.0b1 之前,多語言之下需要寫「字串比
較」的一大堆巨集,如下
StrCmp $LANGUAGE ${LANGID} "" +3;
而目前則以 LangString 或 LangStringUp 取代,簡潔許多。說來
簡單,但要把自己寫的舊巨集改換結構,那實在是有點痛苦。為
什麼要改?舊的巨集很方便,一路思路順暢,但多語言除錯時就
像大海撈針一樣。新的方式,會強制把 LangString 全部歸在同
一個位置。
有了 LangString ,可以騙到的?#124;西,太多太多了。
LangString 祇能用在對話顯示嗎?不能用在捷徑嗎?不能用在節
段名稱控制嗎?不能用在註冊表項,讓他隨著作業系統的不同而寫
入不同的數值嗎?