* updated by Kii Ali, 12-11-2001 X-MAILFROM: Date: Wed, 19 Aug 1998 20:16:56 +0800 From: Camel Ko To: patch-author@cpatch.org Subject: Re: 抉擇!Hot Key的去留!? References: Sender: patch-author-request@cpatch.org Resent-Message-Id: Resent-From: patch-author@cpatch.org X-Unsub: To leave, send text 'LEAVE' to On Mon, 17 Aug 1998 23:48:12 +0800 "(浮雲浪子)" wrote: > 本來 &File --->"&"是啥?大家應都知道吧! > 轉換後, > 本應變成 檔案(&F) --->"&F"是"F"之下有底線"_"囉! > 卻只能達到 > 檔案(&F --->少了右括號.....難看..... 首先聲明這是我試誤出來的方法, 但不保證每個軟體都能適用. 如果你的中文化工具是 VC++ 或 BC++ 那麼這篇文章對你將是多餘的. 1. 解決 Hot Key(熱鍵)被截斷的方法: 通常經由 Chation 或 Cpatch 轉換後總受限於英文字串的長度, 而無法 容納過多的中文字串, 何況多添加出來的熱鍵括號()等. 首先將功能表選單的段落給定義出, 一般起頭不外乎是 &File 依序為 &New &Open &Save 等等, 結尾則是 &About XXXXX(軟體名稱) 手工修改法: 使用 Hex 編輯器分別開啟原始檔與轉換成中文的檔案, 進行兩個檔案 的比較, 如此相互對照較能掌握要修改的正確位置. (推薦 Hex Workshop 2.54 最新版本, 支援搜尋 Unicode) 將轉換的中文檔所遭到截斷的字串或括號分別以『插入』功能填進 Unicode, 例: &File 英文Unicode為2600460069006C006500 檔案(&F) 中文Unicode為946A48682800260046002900 顯然 ) 符號超出原字串長度, 因此轉換後少了右括號, 沒關係我們使用 Hex 編輯器的『插入』功能硬將 ) 符號插入, 也就是 Unicode 的 2900, 但如此將會使檔案多擠出 4 byte, 沒關係我們由插入的 2900 之後, 尋找 多餘的空白處, 也就是 Unicode 的 2000, 再將這個多餘的 2000 給刪除, 如此抵銷了多擠出來的 4 byte, 也就自然回復了原始檔案的大小(size). 當然這些多餘出來的空白處在原始檔裡是不存在的, 因為它們都是經由轉換 之後所餘留下的適當空白. 例: Find &Previous 英文Unicode為460069006E00640020002600500072006500760069006F007 5007300 尋找前個(&P) 中文Unicode為0B5C7E624D520B50280026005000290020002000200020002 0002000 【轉換後將會留下 6 處空白可供刪除抵銷插入】 Select &All 英文Unicode為530065006C006500630074002000260041006C006C00 選擇全部(&A) 中文Unicode為7890C7646851E8902800260041002900200020002000 【轉換後將會留下 3 處空白可供刪除抵銷插入】 全選(&A) 中文Unicode為68517890280026004100290020002000200020002000 【也可如此簡短翻譯留下較多的 5 處空白供刪除抵銷插入】 &Replace 英文Unicode為26005200650070006C00610063006500 取代(&R) 中文Unicode為D653E34E280026005200290020002000 【轉換後將會留下 2 處空白可供刪除抵銷插入】 &Search 英文Unicode為2600530065006100720063006800 搜尋(&S) 中文Unicode為1C640B5C28002600530029002000 【轉換後將會留下 1 處空白可供刪除抵銷插入】 請注意: 這些插入與刪除的範圍必須是在同一個段落的定義, 只要你謹慎耐心的去做, 相信可以解決大部份 Hot Key 的問題, 此法僅有效於功能表選單, 但是對於設定選項裡蹦出對話框上的 熱鍵或是其他對話框等等, 成功的機率則因軟體而異, 我不敢對 你保證上面所說的手工修改方法百分之百有效. 另外要注意的是段落的定義, 通常功能表選單為一個段落, 在版面某處 按下滑鼠右鍵蹦彈出的快捷功能表為另一個段落, 而且這些快捷功能表 因軟體而異會出現多個不同或雷同的選單, 你可得仔細別混淆弄錯了. 2. 下拉選單美容瘦身: 你是否覺得中文化之後有些功能表的下拉選單或是右鍵快捷功能表會因 字串尾端過多的空白而造成選單版面過寬的問題, 有時甚至遮蔽大半個 視窗妨礙到展現的內容, 雖無大礙但總覺得不美觀呢. 在此仍然採用前述段落的定義, 前提是最好先將所有的熱鍵先補齊, 且執行無誤之後再作美容瘦身這一步驟. 從啟始端的 檔案(&F) 一直延續到 說明(&H) 之下終端的 關於 XXXXX(&A)... 將這個範圍內的所有空白碼 2000 全數刪除, 再將所刪除 byte 的全部數量 『插入』到 關於 XXXXX(&A)... 之後, 請切記所有插入的碼不可為 0000 必須要是 2000 才行, 如此一來就完成了選單的美容瘦身, 如果沒有明顯 的瘦身差別, 那麼問題是出在其中某個過長的翻譯字串, 若要寬度同齊平 則必須試著去精簡翻譯的字串長度, 其實很簡單的, 有興趣試做看看, 最後別忘了補充插入的長度必須要與原檔案大小相同. 以上是我中文化的心得, 並沒有絕對的理論支持, 全是我用試誤法摸出來的規律, 如果使用上述方法行不通可別怪我亂說, 也許是因軟體而異吧! CcuteFTP3220.zip 是我於 11/15/1997 釋出的中文化修改程式, 完全採用上述 方法完成, 有興趣你可取回並比對原英文檔, 以便觀察其中修改位置. ftp://ftp.nsysu.edu.tw/cpatch/patchutil/ftp/cuteftp/CcuteFTP3220.zip 【註1】 如何能得知 英文與中文的 Unicode 呢? &=2600 (=2800 )=2900 ...=2E002E002E00 檔案(&F)=946A48682800260046002900 請下載 UC 1.0 Unicode Converter 字串、Unicode 轉換器 須 VB 5.0 RunTime Library, 請一並抓 vb50req.zip ftp://ftp.nsysu.edu.tw/cpatch/patchutil/uc10.zip ftp://ftp.nsysu.edu.tw/cpatch/patchutil/vb50req.zip 【註2】 軟體自動修改 Hot Key(熱鍵)被截斷的方法 請下載 CMF 1.0 beta2 Chinese Menu Fixer A Utility to fix missing ) after Chation. ftp://ftp.nsysu.edu.tw/cpatch/patchutil/cmf10b2.zip == camelko@skydome.net.tw 駱駝客 == 08/19/1998