如何寫多國語言程式 |
|
verbose
一般會員 發表:9 回覆:5 積分:2 註冊:2002-03-13 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 請問有人寫過多國語言程式嗎? 在Delphi上用 Resource DLL Wizard, 要如何才能修改我在程式中宣告 ResourceString 的文字?站長補貼被駭前ccchen會員回覆內容: 主要關鍵在於使所有之Resource String成為獨立之DLL 1. 建立 .rc檔, .rc為純文字檔,詳細說明可看MSDN文件, 以下則為單純String Table之例 --------------xxx.rc----------------------------- STRINGTABLE { 43701, "&D資料連接設定" //Data Setting 43702, "&E匯出" //"&Export" 43703, "&E匯出至檔案" //"&Export To File" 43704, "&F檔案" //"&File" 43705, "&I匯入" // "&Import" 43706, "&I由檔案匯入" // "&Import From File" 43707, "&M合併" //"&Merge" 43708, "&N新增" //"&New" } --------------end of xxx.rc----------------------------- 2. 建立產生Resource之Project 於Delphi中new 一個DLL, 把所有之 .rc檔加入 Build可產生DLL 3. 程式中可用LoadLibrary或LoadLibraryEx載入此模組 用Loadstr載入指定之字串 [NOTE]只要更新Resource之DLL即可使用不同之Language 4. dll可Rename成不同之延伸檔名, 如.cht,.eng,.dft等, 因此程式中也可預留參數設定於RunTime切換 5. Release後可提供客戶Bat檔,於修改.rc後直接建立dll brc32 -r xxx.rc 將.rc檔編譯成 .res dcc32 xxx.dpr 將含.res之project build成 .dll(或指定延伸檔名) [note]於.dpr中加上如 {$E cst} 之option可使output之延伸檔名為 .cst ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
我覺得用Resource 也是有一些些缺點,我的方法是比較土法練鋼的啦…
在任何程式語言都適用 例如要做簡、繁、英…等語言的程式版本,繁體中文與英文倒還好
但是若是在繁體中文的os去編譯用Word翻譯成簡體並存在GB碼的.RC檔時
拿到簡體環境測試,就會發現根本還是亂碼,只有在簡體的環境下編譯.RC檔
才會正常的顯示簡體中文,我不太明白是何故,我原是在用一個RC檔裡,利用Index去區分語系,可能是編譯RC時會去參考國碼吧 不過後來我改用TXT File來實現多國語言的功能
編輯一個文字檔,例如Chinese.Lng
;語系:繁體中文
;版本 1.0
LID_Label_Start=開始
LID_Form_Caption=人事系統 v1.0 只要再編輯英語的,簡體的用Word轉換
其它國家的語系,用英語的傳播,要不要去翻譯…他們自己想辦法…:p
(省去自己要去翻譯其它國家的語系…日、法、俄、義…嚇…八國聯軍…) 然後寫一個開啟文字檔的Function,LoadString
用法…
Self.Caption:=LoadString(LID_Form_Caption);
即可
另主程式可設一個Language的Menu,依據程式執行路徑,找尋存在的Lng檔顯示
,即可供使用者選取語系了 大家參考看看我的做法吧…有什麼可改進的再告訴我^^
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 請問有人寫過多國語言程式嗎? 在Delphi上用 Resource DLL Wizard, 要如何才能修改我在程式中宣告 ResourceString 的文字?可以使用讀取 INI 檔的方式輕易作出多國語言的程式。 使用 Resource DLL 的優點可能是速度會比較快,但要作多國語言轉換的人(以中文來說,就是中文化的作者)必需要有組譯器才行,如果沒有(我想大部分人是沒有),就無法作這樣的工作,即使他很想作。 使用 INI 檔的優點是,任何只要會使用文書處理器的人,只要他想作,都可以作,而且,對於別人翻譯自認不妥的部分,還可以自行修改,彈性較大。
------
http://www.ViewMove.com |
umm
一般會員 發表:7 回覆:12 積分:3 註冊:2002-07-19 發送簡訊給我 |
引言: 我覺得用Resource 也是有一些些缺點,我的方法是比較土法練鋼的啦… 在任何程式語言都適用 例如要做簡、繁、英…等語言的程式版本,繁體中文與英文倒還好 但是若是在繁體中文的os去編譯用Word翻譯成簡體並存在GB碼的.RC檔時 拿到簡體環境測試,就會發現根本還是亂碼,只有在簡體的環境下編譯.RC檔 才會正常的顯示簡體中文,我不太明白是何故,我原是在用一個RC檔裡,利用Index去區分語系,可能是編譯RC時會去參考國碼吧 不過後來我改用TXT File來實現多國語言的功能 編輯一個文字檔,例如Chinese.Lng ;語系:繁體中文 ;版本 1.0 LID_Label_Start=開始 LID_Form_Caption=人事系統 v1.0 只要再編輯英語的,簡體的用Word轉換 其它國家的語系,用英語的傳播,要不要去翻譯…他們自己想辦法…:p (省去自己要去翻譯其它國家的語系…日、法、俄、義…嚇…八國聯軍…) 然後寫一個開啟文字檔的Function,LoadString 用法… Self.Caption:=LoadString(LID_Form_Caption); 即可 另主程式可設一個Language的Menu,依據程式執行路徑,找尋存在的Lng檔顯示 ,即可供使用者選取語系了 大家參考看看我的做法吧…有什麼可改進的再告訴我^^抱歉.......小弟是Delphi新手........ 您ㄉ方法小弟粉喜歡........但是真ㄉ不太會用...... 希望大大能寫ㄍ超簡單ㄉ範例給小弟......感激不盡.......QQ ummchen@yahoo.com.tw |
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
Jack0323
初階會員 發表:22 回覆:70 積分:28 註冊:2002-03-13 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |