MozTW 討論區
https://forum.moztw.org/

有人會 NSIS 嗎?
https://forum.moztw.org/viewtopic.php?f=8&t=20843
1 頁 (共 2 頁)

發表人:  冰漾 [ 2007-11-02, 18:16 ]
文章主題 :  有人會 NSIS 嗎?

寫 MultiLanguage 腳本寫到快抓狂...
不知道有沒有對 NSIS 比較熟?

以下是我想讓安裝程式做的動作:
安裝時按照選擇的語系輸出對應語系的檔案。

發表人:  roytam1 [ 2007-11-02, 18:25 ]
文章主題 : 

冰漾 寫:
寫 MultiLanguage 腳本寫到快抓狂...
不知道有沒有對 NSIS 比較熟?

以下是我想讓安裝程式做的動作:
安裝時按照選擇的語系輸出對應語系的檔案。

Inno Setup在這方面比較好掌握一點呢…

發表人:  冰漾 [ 2007-11-02, 18:44 ]
文章主題 : 

roytam1 寫:
冰漾 寫:
寫 MultiLanguage 腳本寫到快抓狂...
不知道有沒有對 NSIS 比較熟?

以下是我想讓安裝程式做的動作:
安裝時按照選擇的語系輸出對應語系的檔案。

Inno Setup在這方面比較好掌握一點呢…
我也想,但礙於現實沒辦法換過去,除非 Inno 可以偵測 CPU。

這已經是第三次著手將 Pigfoot's Firefox Multiple 多國語言化,不會又要失敗了吧= =

發表人:  kourge [ 2007-11-03, 06:45 ]
文章主題 : 

試試:
http://hmne.sourceforge.net/

發表人:  冰漾 [ 2007-11-03, 07:43 ]
文章主題 : 

kourge 寫:
我是用它沒錯,還是中文版的!

寫 script 我一向不是很在行,幾乎都是拼拼湊湊,湊巧拼出結果就大功告成,拼不出來就陷入無限迴圈...拼不完= =

發表人:  s793016 [ 2007-11-03, 09:06 ]
文章主題 : 

NSIS 多國語系是很煩人的,因為他是用純 ansi 程式去作,結果就是要自己產生一堆各國語系檔。也因為如此,雖然 nsis 有提供手動選語系的 plug-in,該 plug-in 本身選單也可以用多國語言顯示,但是因為他無法即時換語系,所以呈現出來的效果非常不理想。

還有就是,他的語系只能跟著系統設定的「非 unicode 程式語系」走,所以如果有人用繁中 XP 但是語系調成「日文」,NSIS 就會當您是要用「日文」。

最後一個問題是 nsis 不會自動切英文,nsis 雖然會自己偵測語系,但如果他測出來的語系您並沒有提供對應的語系檔的話,執行時就會掛掉。這個情況一般發生在,假設您原先只想要讓中日韓系統執行,結果有人在泰語XP上執行。

寫一堆好像都在說 nsis 不好,不過現今以 setup 封裝程式能拿去作小型程式開發的,應該也只有 nsis 能辦到吧,呵呵。

發表人:  s793016 [ 2007-11-03, 09:46 ]
文章主題 : 

如果您有裝 補完計畫 2.50,在您的安裝路徑 (預設是 program files\unicode-at-on) 中可以找到下列檔案:
  • umake.nsi:補完計畫用的 nsis 腳本檔。其中有一半的註解是 KA 寫的。
  • langus.nsh:英文語系。
  • langgb.nsh:簡中語系。
  • langtw.nsh:繁中語系。
  • langjp.nsh:日文語系。
語系檔獨立後,可以各別的用 emeditor 去編輯,然後再用 !include 包進來即可,這部份可以參考 umake.nsi line 269。

我的作法是:不使用 nsis 提供的語系偵測,改用 system plug-in 直接取系統語系,然後再自己去判斷要用哪個語系,如果偵測出來的語系是自己沒有提供的語系,則強制用「英文」語系。這部份可以參考 umake.nsi line 1518。

至於另一個問題是,根據語系去提取對應的檔案,您可以用內定的 language 變數,或學我把偵測到的語系放在自己的變數中,然後用用 StrCMP 去比對語系,如果是就解哪些檔案,不是就解哪些檔案。這部份可以參考 umake.nsi line 406。

還有一種是,根據語系去決定您的檔案的名字,這個有兩種作法。
  • 先把用英文命名的檔案用 file 解開,再用 CreateShortCut 配合 language 功能直接建各語系的捷徑,這部份可以參考 umake.nsi line 1203。
  • 直接用 file /oname 配合 language 功能,解出檔時用新的名字命名,這部份可以參考 umake.nsi line 396


大致上就這樣,對 nsis 命令不熟的建議看 nsis 的英文說明或去英文論壇找範例來看。

謹供參考。

發表人:  文華曉淵 [ 2007-11-03, 10:19 ]
文章主題 : 

你去軟體中文化論壇問問吧,做中文化的經常會用到NSIS……

CPATCH.org

發表人:  冰漾 [ 2007-11-03, 14:43 ]
文章主題 : 

謝謝 s793016、文華曉淵,我再試試看。

我目前要做的只是把安裝程式介面多國語系化,然後能夠依照選擇的語言輸出對應的語系檔案,找不到語法可以用...Orz

CPATCH 我也有去,只是討論封裝的人實在太少= =

發表人:  s793016 [ 2007-11-03, 15:16 ]
文章主題 : 

冰漾 寫:
我目前要做的只是把安裝程式介面多國語系化,然後能夠依照選擇的語言輸出對應的語系檔案,找不到語法可以用...Orz

補完計畫的安裝程式腳本支援 簡中、繁中、日文、英文 四種介面,您真有需要可以去找來研究。

覺得寫得太複雜的話也可以去看您的 nsis\examples\language.nsi,這是官方丟出來的多國語言使用範例檔。

發表人:  訪客 [ 2007-11-03, 15:27 ]
文章主題 : 

冰漾 寫:
我目前要做的只是把安裝程式介面多國語系化,然後能夠依照選擇的語言輸出對應的語系檔案,找不到語法可以用...Orz

要不要朝登錄檔的方向走,因為語系檔也要對應到登錄碼。

發表人:  冰漾 [ 2007-11-03, 15:39 ]
文章主題 : 

豐臣秀吉 寫:
冰漾 寫:
我目前要做的只是把安裝程式介面多國語系化,然後能夠依照選擇的語言輸出對應的語系檔案,找不到語法可以用...Orz

要不要朝登錄檔的方向走,因為語系檔也要對應到登錄碼。
安裝程式跟登錄檔無關,不需要寫入登錄檔。
安裝程式的介面只是讀取選擇的(安裝程式)語系檔將對應的字顯示到安裝介面中,然後對應安裝程式內要輸出的(Firefox)語系資料,輸出到安裝目錄中而已。

不要想的太複雜 8-)

發表人:  冰漾 [ 2007-11-03, 15:43 ]
文章主題 : 

s793016 寫:
補完計畫的安裝程式腳本支援 簡中、繁中、日文、英文 四種介面,您真有需要可以去找來研究。

我會試試的。

s793016 寫:
覺得寫得太複雜的話也可以去看您的 nsis\examples\language.nsi,這是官方丟出來的多國語言使用範例檔。
language.nsi 我也看過了,還是沒成功,更奇怪的是我做出來的程式,選擇簡體會顯示繁體,選擇正體還是正體...
有時候選英文會變成正體,有時候仍然是英文...
只有日文最少發生錯誤...Orz

發表人:  訪客 [ 2007-11-03, 16:06 ]
文章主題 : 

冰漾 寫:
不要想的太複雜 8-)

你確定不是登錄檔,不然這個 install.js 東西是什麼。

發表人:  冰漾 [ 2007-11-03, 16:19 ]
文章主題 : 

豐臣秀吉 寫:
冰漾 寫:
不要想的太複雜 8-)

你確定不是登錄檔,不然這個 install.js 東西是什麼。
呃...
我不是走 Mozilla Firefox 那樣的安裝方式。

這篇下載來執行看看就知道了。

Mozilla Firefox 那樣的安裝方式沒辦法自動判別 CPU,也沒辦法跑多國語系。

1 頁 (共 2 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/