以INI檔實現多國語言的小範例 |
|
ddy
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
一個實現多國語言的小範例
相關的討論文章在『難以歸類主題的討論區』
歡迎各位先進賜教 噓~~~~~~沉思中…
|
umm
一般會員 ![]() ![]() 發表:7 回覆:12 積分:3 註冊:2002-07-19 發送簡訊給我 |
|
jimmychn
一般會員 ![]() ![]() 發表:3 回覆:21 積分:19 註冊:2002-09-09 發送簡訊給我 |
|
ddy
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
jimmychn
一般會員 ![]() ![]() 發表:3 回覆:21 積分:19 註冊:2002-09-09 發送簡訊給我 |
|
amide
一般會員 ![]() ![]() 發表:4 回覆:13 積分:13 註冊:2002-07-11 發送簡訊給我 |
|
ddy
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
引言: 用INI來做多國語言是一種很方便的方法,因為我以前也是這樣用的,但是有些問題需要解決的,例如: 1.字型的問題,像簡体中文與繁的中文就不一樣,不是只有改文字內容就可以的. 2.不同的語言,所翻譯出來的文字字數不一,軟體的畫面上所展現的狀況會有很多問題,有可能部份文字被截斷. 以上是小弟對這個問題的一些看法,不知道各位先學有沒有更好的解決方法呢?!amide兄 謝謝你的認同 關於你的二個問題,我也曾困擾過,僅將我的做法分享出來參考 一、字型的問題,是可以透過word 2000 轉換,經存成編碼文字檔(GB)後,在簡體環境下一切正常。 二、字數的長度的確容易影響程式的畫面,以中英畫面為例,有三個方向可以改進 1、使用Menu/Treelist 代替有系統的button 2、使用圖示代替button,原button之caption變成說明(hint) 3、若仍需使用label /button 相關之無法換行之元件,就需要簡化英文翻譯 或是預留較寬之空間(以英文翻譯長度為準) =============================================================================== 提醒您,貼錯文章可立即傳訊通知該版版主/站長/副站長協助處理,不要放著不管喔 |
uhlin
一般會員 ![]() ![]() 發表:8 回覆:6 積分:2 註冊:2003-07-04 發送簡訊給我 |
|
gavinj123
初階會員 ![]() ![]() 發表:88 回覆:48 積分:27 註冊:2002-10-15 發送簡訊給我 |
|
andychang1690
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
我在此引用ddy版大的以INI檔實現多國語言的我的作法。 因兩岸關係我常需要繁簡互轉,我原使用TCvCode元件(本園地可下載)。 但程式上撰寫還是很麻煩,我參考了ddy版大的以INI檔實現多國語言我撰寫程式方便很多。 我的作法是先寫出一個DFM檔轉INI檔的程式(適用繁簡體及Unicode)。 專案內的DFM檔一下就轉出如ddy版大的格式(有一點點不同而已)。 ; ; 翻譯的一些規則: ; 翻譯前,拷貝 Big5.ini 改名到 Big5.bak ; 僅僅翻譯符號'='後的文字 ; ; [Component] ; Form1.Caption = OpenDFM Form1.Button1.Hint = 轉換DFM檔 Form1.Button1.Caption = 轉換 Form1.RadioGroup1.Caption = Code Form1.CheckBox1.Caption = 置換原有DFM Form1.N1.Caption = 好玩 Form1.N2.Caption = 沒事 Form1.N3.Caption = 結束 ; [Strings] 經過MS-Word繁簡互轉,我可以很輕鬆的得到我要的INI語言檔。 程式內我稍微修改了ddy版大的方式。我寫成副程式並以傳遞Form的方式處理。 // 傳入Form,ini檔名 void LoadINIForm(TForm *WForm,AnsiString INIFILE) { // 轉換......... } 程式一開始我先呼叫內定語言檔(也是存於INI檔)使用者可以決定好語言後 以LoadINIForm(Form1,INIFILE); //將Form1翻譯,INIFILE是檔名 效果不錯。 ddy版大的以INI檔實現多國語言的小範例,是可以處理各種語言。而且我發現 有部份軟體也是採用這種方式。Andy Chang
------
Andy Chang |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |