多國語言如何讓VCL位置不變動? |
尚未結案
|
pireer
初階會員 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
pireer 您好: 以下是我個人的經驗與看法: 透過外部文字檔進行多語操作界面變更的方式,本身就存在著一定的問題,因為這是 "開放" 的型態,如果某個作品是非常受歡迎的,那麼作者更是很難去規範眾多使用者的不同環境與想法,因此想要解決這些問題就必須要自己訂定遊戲規則,讓其他人來遵循。 程式的版面設計可多角度來考量,有字樣顯示功能的物件不一定要啟用自動調整大小 (AytoSize) 的功能,而為了版面的整齊、美觀,可以將某些元件的字樣對齊方向屬性 (Alignment) 設為向右方對齊 (taRightJustify),例如:
姓名:__________
行動電話:________________
為了避免不同語系環境中,會出現一些不可預期的怪現象,語系設定檔可以考慮將語系代碼 (Charset)、使用字型名稱 (Font Name)、字型大小(Font SIze)....等屬性開放出來供使用者設定,使用者可以自行調整參數,以便取得最佳的顯示效果。 設計者本身的思維也要做些調整,通常顯示於版面上的功能或欄位標示字樣,本來就應該要精簡,以免版面過於雜亂,如果簡短字樣無法表達出項目或欄位的作用要義,那就透過 Hint、Statusbar、Label、Help 等方式來加強說明,所以設計程式者無需企求 Caption 顯示的字樣一定要很長。 訂定好遊戲規則之後,使用者就應該要在現有的條件之下去設定各個字樣,如果訊息字樣過長,無法完整的顯示出來,那麼使用者就應該要設法自行縮減字樣長度,如果某個項目能容納的顯示字數確實過少,無論如何精簡字樣都無法滿足所需,設計者可以在收到使用者的反應之後,做些測試及評估,然後酌情在後續版本做個補強或調整。 以上個人拙見請參考,另外若是您有那些特殊的狀況會讓元件的位置超出預期而做出變動,不妨將狀況描述出來,讓大家針對特定問題來提供意見。 7 天天敲鍵盤 v 時時按滑鼠 8 發表人 - RedSnow 於 2005/10/20 13:59:02
|
pireer
初階會員 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
RedSnow兄 看了您的解析.讓我在design時.又清楚了許多.
不過目前讓我困擾的問題.如下圖
在繁體中文狀態時.Label元件的大小位置與內容都設定剛好.
但依切換到英文時.由於英文字大部份會比中文長.就會出現文字長度大小不符合設計時的想法.這是在使用外部文字檔進行多語操作界面變更的方式時.會出現的問題.
只要換語言.在design時設定VCL文字的長度一定會超出或小於原先語言.
導致畫面格式變亂..除非在design時.設定VCL文字就以最長的語言去設定.
不過會出現下圖問題. 原先英文長度比較長.變成中文後.Label內的字縮短很多.文字不會看不到.
但Label與旁邊的Edit距離變遠.感覺就不是那麼的好.如果遇到更長的英文.那差距更大.但這是解決切換語言導致文字長度被覆蓋的方法之一. 或是如果第一樓說的.依照語言不同.建立專屬的FORM.
也就是說一個FORM需要建立3個(以繁體.簡體.英文三種來說).
這樣也可以解決這問題.不過一個FORM要依照語言數量.來建立.
也蠻費工的.. 除上述兩種方法.還有更好的方法嗎?
請前輩指點...謝謝
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
pireer 您好: 以您前一篇貼圖的例子來講,正好適合使用我前一篇第二段所提到的 "向右對齊" 的方式,在那種狀況下,將 Label 元件的 AutoSize 設為 true、Alignment 屬性設為 taRightJustify,在視覺感受上來講就比較舒服多了。 如果字樣的精簡並不影響其代表的意義或提示效果,應該也不會有您所描述的問題,例如 "Select Language:" 改成 "Language:",而 "Input your name:" 改成 "Your name:" 或是 "Name:",這樣子並不會很難識別或理解吧? 另外您也可以將 "請選擇語言" 的字樣,改成置放於 ListBox 的上方,這樣子也比較不會受到字樣長短的影響,總之;良好的版面編排設計可以避免掉一些不必要的困擾。 至於是使用那一種方式來切換使用語系,我個人覺得並不是很重要,重要的是您必須要確定您的 "規格" 與 "限制",然後再來考慮使用何者方式較合適?如果您想要開放供各種語系環境來使用,那麼做成開放式的環境會比較方便,如果您就是限制成三種語系的環境,那麼使用三組 .dfm 檔案來處理也行,但是維護上會很不方便,如何個不方便?您試過就知道了。 7 天天敲鍵盤 v 時時按滑鼠 8
|
pireer
初階會員 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |