Make your own free website on Tripod.com

梅花三弄

ChinEase 簡體中文化節點
中文化回眸
1999.12.30

    從第一個中文化作品在新起點漢化工作室發表到現在已經整整半年來,恰逢歲末和世紀之交,寫下這些東西也算是對自己最好的交代。掰掰指頭數數,這段日幾也做了大大小小 30 余種 60 多個中文化,不算多也不算太少;唯一值得欣慰的是,自己做的東西都是認真踏實的完成,也絕對沒有敷衍過所有使用過我的中文化的朋友;雖然資歷很淺,中文化技術和英文水平有限,作品也或多或少有許多可商榷之處,但經過不斷的學習和交流以及自己的總結,也多少有些體會;特別是最近兩個月來,對某些方面有自己一些特別的見解,現在寫出來與大家共享,也希望大家對此討論和研究,算是給所有中文化人的新年禮物您。
    事先聲明,這些文字絕對不是教學文章,只是自己思路和頭緒都比較混亂的體會,加上從小對文科沒有重視,許多地方表達不清請見諒。如果您是一位中文化初學者,建議您先將這些東西暫時保存起來以後閱讀,真正適合您的是目前很多中文化站點的優秀教學文章;如果您是一位中文化中級者,水平正處在不斷上升期,我希望您能從中受益,用另一種思路提高您作品質量,或許是捷徑,也或許是歧途;如果您是一位中文化高級者,我希望您能透過本篇舉一反三,將本已出色的中文化做得更出色,真正的「完美版」或許正在等待您的努力。但無論是誰,如果您缺乏信心和毅力,請直接關閉此文檔。
    我只希望這些東西能作為技術資料提高大家的中文化水平,希望不要將它作為某種事情的途徑。因為本身就出招怪異,劍走偏鋒,但確實實在,希望您仔細體會,切莫走火入魔 :)
    因為目前看來,VC ++ 編譯的程式中文化技術比較成熟,可視化界面和面向用戶的可操作軟體非常多,大家中文化起來也比較方便;而 DELPHI 編譯的軟體似乎沒有找到特別方便的工具,製作起來都是若幹工具相互配合,即便如此效果也往往差強人意;再加上除資源之外的 ASCII 字串又多又亂,做起來實在麻煩還極易出錯。我主要就這些方面寫下「梅花三弄」提供給大家一些參考,囉嗦半天,繼續您 !

梅花一弄斷人腸

    確切地說中文化應該稱為本地化工作,在中國大陸也不過兩年左右的時間,從那時起中文化人和中文化作品如雨後春筍般不斷推陳出新,直到現在,我也是受益者,享用了他人無窮的中文化成品。而同時中文化工具也不斷出現,特別是今年下半年以來,大家挖掘出許多極其好用易用的本地化工具,為諸多中文化人提供了極大便利。但是我們也可以看到,在使用諸多中文化人的諸多中文化作品時,仍然會看到許多英文單詞或句幾,甚至是中英文混雜的情況,特別是 DELPHI 編譯的程式更多,這也使得許多優秀的英文軟體至今留下另人生畏的 E 界面。
    目前的中文化工具不可謂不成熟,再加上解密脫殼工具的輔助,對於大多數英文軟體的基本資源中文化已不再成為難事;但無論是 VC 類還是 DELPHI 類軟體即使做完了全部的資源轉化,在程式中仍然保留了大量的 ASCII 碼字串供軟體調用,如果不對這些英文進行特別處理,英文風格的中文化版當然也不可避免。但遺憾的是至今也沒有可以直接處理資源外字串的極佳工具,只有利用一些字串擷取工具將它們擷取出來,再經過排除、翻譯、測試、修正等許多煩瑣的手工操作,這種艱辛是中文化人之外的眾多用戶所難以想像的,也是很多好軟體被放棄中文化或很久才推出的原因。
    以上陳述的內容其實在很多教學文章中涉及,相關工具也可以在很多中文化站下載,同時很多中文化高手在這些方面的處理也有獨到之處,但即便如此在使用他們的一些中文化作品時也會出現礙眼的斷行、換行、文字之間空格和比較難解的翻譯情況發生;請用戶原諒我們,東西方語系的差異阻礙了在字串方面處理的翻譯能力,一方面是翻譯前後文字長短的控制,一方面是中英文語法語序使得我們必須去適應它,而不是它來適應我們。那麼真的沒有辦法解決這個阻礙中文化作品更加精緻完美的辦法嗎 ?
    有 ! 手工處理(我已經看見數人提起殺威棒來) ! 當然我也知道手工操作的複雜煩瑣程度,所以特別提出 HEXWORKSHOP32 這個可以大幅度降低勞動量的工具 ! UE 是大家炒的很熱的 16 進制工具,但從我接觸中文化以來用的多的反而是 HEXWORKSHOP 這個東西,自然有其獨到之處。那麼在中文化之前先下載這個軟體做準備工作您:
V3.02 原版:   http://www.newhua.com.cn/down/hw32v30.exe
V3.02 中文化版: http://chinease.myrice.com/download/local/hw32v302-p.zip

梅花二弄費思量

    中文化步驟當然是先做資源部分,無論 VC 也好 DELPHI 也好,資源方面的中文化已經不是難事,這也是中文化外殼的前提,在這些內容做完調整好之後請備份您,這個界面中文化程式是您成品出來以前須一直保留的,便於您的檢查和測試。假如中文化 1.exe 這個程式,備份為 1-e.exe,然後利用 ASCII 字串擷取工具(目前有一些,但缺乏特別順手的)將所有字串擷取成純文字檔案,用您的法眼從無數的字串中篩選排除您,將比較有把握的英文翻譯過來,需注意的是中文長度不要超過英文長度,否則還原時多餘部分會遺失。那、那 OK 怎麼辦呢 ? 不知道怎麼辦就用「哼」代替您,以示對它的不屑 ! 其它仿照如此進行,不要害怕出錯,後面的校正非常容易;所有字串翻譯完畢之後將純文字檔案儲存,再將它匯入原檔案,這樣 80% 中文化版已經完成(VC 類和 DELPHI 類通用)。如果願意,略微執行測試一下您。下面的工作是關鍵,也是精華 !
    執行 HEXWORKSHOP32,將 1.exe 和 1-exe 同時開啟,在工具選單中使用比較命令對兩個檔案進行對照比較。看見了嗎 ? 在下方的比較區域會順利地將翻譯前後的所有差別列出來,無論是刪除、插入還是替換一覽無餘,因為兩個檔案是同一版本的同一檔案,字節相同,所以 95% 為替換內容,少量為將某地址作為標識頭而判斷為刪除、插入,但因為連續性的緣故也很容易處理。現在大家可以估計到要做什麼了您,在比較欄中任意點擊一項,兩個檔案都會同步跳轉到此差異地址,這對於中文化人來說也算是可視化操作了,隨意舉例如下:
1-e.gif (1875 字節) 這是原版的一段字串
1-p.gif (1950 字節) 這是匯入中文的同址字串
    其實做到這裡已經是中文化界面了,但在中文化顯示時可能會出現「匯出錯誤:     XXX」這樣的情況,空格是另人不快的,調整如下圖:
1-f.gif (1936 字節) 這是最終的中文化結果
    看到了嗎,將最後三個空格覆寫為 00,請放心,這是一種安全操作,其對原程式正常執行的影響率為 0.1%,除非您的運氣太差了。這樣空格和斷行問題就自然解決了,可能出現的顯示就是「匯出錯誤: XXX」;當然無窮的 00 操作是煩瑣而容易出錯的,請仔細一些,那麼那個代替 OK 的「哼」您也知道如何處理了您,只要後面有三個 00 就可以翻譯為「確定」。下面說說換行的問題,隨意舉例如下:
2-e.gif (7506 字節) 這是原版的一段字串
2-p.gif (7758 字節) 這是匯入中文的同址字串
    看到了嗎,這是一警告訊息對話框中的文字,有兩句話組成,如果不做處理,對話框可能很長,而右半截又大多為空白區域,有些不倫不類;請注意兩段話之間的 0A0A 字串,0A 是 VC 類檔案的換行標記,也是可以調整位置的內容,修改後如下:
2-f.gif (7775 字節) 這是最終的中文化結果
    看到了嗎,將 0A0A 以及之後的中文字串直接複製/剪貼到第一句之後(複製和剪貼必須是等長操作),再將後面的內容清為 00 即可,這樣對話框顯示的長度就會跟從每行文字的長度自行調整了;不過癮嗎 ? 您還可以自己定制內容,全當消遣了,如下圖:
2-s.gif (8087 字節) 這是自己定制的結果
    看到了嗎,在上次的基礎上添加 0A 換行標記,想換幾行都行,隨意填充自己的思想您,只要保證 W 前的最後一個 00 不被清除就可以 ! 是不是很簡單,這種規律對 VC 類檔案普遍有效,至少我還沒有發現出過什麼問題。DELPHI 由於比較特殊一些,換行符並不是特別固定,0D、0D0D、0A0D 等等(我也記不太清了)都有可能是換行符,但非常容易辨別出來,也具有類似的定制性,不再贅述。中英文之間的語法差異對中文化造成一定的阻礙,但大多數情況也可以調整,隨意舉例如下:
3-e.gif (5609 字節) 這是原版的一段字串
3-f.gif (6155 字節) 這是最終的中文化結果
    很明顯,訊息處為標題欄顯示文字,有空格也無所謂,%s 可以跟隨中文翻譯調整位置;如果分別調用 %s 和 %d 這樣的函數,語序調整更加方便,如翻譯為「請在驅動器 %d 中插入存有第 %s 個升級檔案的磁碟」等等,請自行體會。
    應該說做完資源部分和上面的工作,中文化工作已經完成 95% 以上,在您體會逐步加深之後會發現很多地方保留空格而不清為 00 對界面是沒有影響的,這也會減少您的工作量。剩下的事情當然是做詳細全面的測試,我認為這比中文化本身更煩瑣和費勁,但對於及時發現錯誤以及中文化過分而導致錯誤的追溯有幫助,也是保證中文化質量的最佳手段。HEXWORKSHOP 的自動跳轉地址和標記選擇為我們提供了方便的複製/剪貼功能,也是調試糾錯最方便快捷的方式。有什麼疑問嗎 ? 我保證以上手段同時適用於 VC 類和 DELPHI 類檔案,特別是 VC 類程式經過處理已經可以算最終完成,而 DELPHI 類的檔案為什麼顯示更亂了呢 ? 請繼續看:

梅花三弄風波起

    我對中文化 DELPHI 類程式只能用討厭來形容,做過幾個,累得要命,而且明明資源部分已經做完,還需要再進行極其大量的 ASCII 修改工作;但即便按照上面的方式進行,很多地方仍然另人不滿,空格、斷行和換行依然存在,甚至顯示效果還不如原版 ! 發現問題的關鍵是在做 XFADER 的時候,在顏色對話框中對六個函數值始終無法調整好,所以 V3.02 保留了英文界面,而經過分析之後 V3.04 迎刃而解:
4-e.gif (4175 字節) 5-e.gif (1656 字節)
這是原版的一段字串和顯示界面
4-p.gif (4313 字節) 5-p.gif (1757 字節)
這是上述過程修改的結果和顯示界面,除了藍色和 Blue 字節比對外其他的顯示都不正常,如果不把空格清為 00 則顯示為「函數數 (飽和度   )」,也差強人意。請注意上面兩個圖中的紅色標記,我經過仔細的分析終於發現它們就是顯示混亂和空格的原因 ! 因為他們是後面一段字串長度的 16 進制數值 ! 對它們進行隨中文的適當修改才可以做真正的完美中文化 ! 見下圖:
4-f.gif (4320 字節) 5-f.gif (1698 字節)
    現在如何了呢 ? 對所有長度標識修改為中文長度的 16 進制數值後,顯示當然與眾不同。有一點需注意一下,原版檔案的「Hue」之後跟隨的是 00FFFFFF 等,修改為「色調」後跟隨 00FFFF 等,從目前我做的程式來看,成功率 80% 以上,有個別會出現程式不穩定的現象發生,請修改後即刻進行儲存並多次測試再繼續,而且請保證最後一個 FF 不被修改,如 0000 0000 FFFF FFFF 最大程度修改為 XXXX XXXX XXXX 00FF,請務必謹慎,盡最大可能不修改 FF !
    如何,DELPHI 的空格問題也順利解決了,中文化界面進一步精彩漂亮。但新的問題又出來了: 如果一段文字的字串非常多,對 16 進制長度值的計算簡直比翻譯字串更讓人頭大,而且極易出錯。不要著急,聽我慢慢道來,當然還是利用 HEXWORKSHOP 這個工具。請先將「選項」選單中的「檔案偏移」選為「十六進制」,在上述基礎上做最後的工作,見下圖:
calc.gif (5325 字節)
    從「要」字或「D2」處拖動滑鼠選擇到「件」字或「2E」處,即黑色區域,查看視窗底部的狀態欄,其中有一欄為 Sel: 0x15 字節,15 即是這段字串的 16 進制長度值,將紅色字串處修改為 15 即大功告成 ! 這樣做既快也不容易出錯,也是目前我認為最方便有效的辦法。
    到目前為止,ASCII 碼的翻譯修改已經全部完成,您的中文化作品是否也會因此而更上層樓呢 ? 但我認為只有這些仍然不夠 !

雲煙深處水茫茫

    優秀的中文化作品效果應該更接近本地開發人員製作的軟體一樣,不僅是語系、語序、語法以及空格斷行和換行的處理,還有就是界面的親和力。VC 類界面並無太大懸念,用工具全部修改為新細明體 9 號即可,除了添加或刪除資源外其它可調整定制性基本沒有,而 DELPHI 的東西修改字型是一個比較煩瑣的過程,包括選單、對話框、主視窗、提示訊息、按鈕等等比較直觀容易引起注意的地方,還包括彈出選單、下拉選單、清單欄、文字輸入區域的字型和清單時的行間距等諸多容易忽略的方面,而這些東西並非我幾句話可以說清楚,只望大家在使用中多多體會,附加幾張圖示範一下:
bad1.gif (1571 字節) good1.gif (2156 字節)
選單及彈出選單字型的調整
bad2.gif (3151 字節) good2.gif (3186 字節)
文字輸入區域的字型調整
bad3.gif (1064 字節) good3.gif (1145 字節)
下拉選單字型以及文字間距的調整

    另外 HEXWORKSHOP 的比較功能極具智能,對於同版本之程式即使檔案字節不同效果也相當好,對於檔案的升級比較雖然比較時間長,差異也非常多,但只要認真篩選也可以事半功倍,但我希望不要把這些功能用在某些投機取巧的方面。
    除了精通批處理外我不懂編程,以上只是自己在使用中的體會,並不一定適合每個人,也不一定適合每個軟體。或許還有更好的處理方法和操作工具進行有針對的工作,即使現在沒有我相信將來也一定會開發出來。從目前的中文化技術和對中文化作品的分析來看,這或許就是一種解決之道您......

    從三月上網、六月加入中文化隊伍中來的日幾是匆忙而充實的,也是值得回味和眷戀的。在此感謝阿濤兄、龍飛兄和學思兄在我建站之前給予上載方面的幫助,感謝與諸位中文化人之間的交流與合作,感謝所有熱心關注我的中文化、我的站的朋友,在此一併謝過 ! 中文化技術博大精深,小弟只是略窺一斑,這些東西由我發掘,也屬偶然。如果能夠為中文化人提供幫助將不勝榮幸,也算間接對所有中文化軟體的用戶提供了幫助。
    在二十世紀即將結束之際,謹以此作為新年新世紀的禮物奉送給大家,歡迎大家研究以繼續開發新的功能。
    明天,明年,下個世紀,我將如何不得而知;我珍惜今天的每個時光,我緬懷逝去的歲月,也更憧憬美好的未來......
    祝大家幸福、快樂、平安,我衷心地祝福您 !

ChinEase 於 1999 歲末

下面是學思兄中文化 DFM 之後給他寫的信,俺看到「關於」對話框裡學思兄的大名擺在標題欄上不爽,呵呵 :)

中間的三段如下:
 object LabOwner: TLabel
    Left = 18
    Top = 180
    Width = 23
    Height = 16
    Caption = 'unk'
    Font.Charset = DEFAULT_CHARSET              ;原來是 RUSSIAN_CHARSET,中文出現亂碼
    Font.Color = clRed
    Font.Height = -14
    Font.Name = '新細明體'
    Font.Style = [fsBold]
    ParentFont = False
  end

  object Lab_HomePage: TLabel                   ;從此段開始複製
    Left = 18
    Top = 120
    Width = 23
    Height = 13
    Caption = '首頁'                             ;首標題
  end
  object HomePage: TLabel
    Left = 58
    Top = 120
    Width = 53
    Height = 13
    Cursor = crHandPoint                         ;手指形指針
    Hint = '如果您希望下載最新版本,請單擊此處'    ;提示訊息
    Caption = 'HomePage'                         ;從標題
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlue                          ;文字顏色: 藍色
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsUnderline]                   ;下劃線
    ParentFont = False
    ParentShowHint = False
    ShowHint = True
    OnClick = HomePageClick                      ;連結,在程式中定義
  end                                            ;複製截止為此,任意剪貼到某 END 之後
以下為剪貼後改動內容
  object Lab_ZXS: TLabel                         ;隨意改個不重複的標籤
    Left = 18
    Top = 140
    Width = 53
    Height = 13
    Caption = '中文化製作'                         ;隨意改個首標題
  end
  object ZXS: TLabel                            ;隨意改個不重複的標籤    
    Left = 78
    Top = 140
    Width = 53
    Height = 13
    Hint = '歡迎訪問張學思的中文化小屋'             ;隨意改個提示訊息
    Caption = '張學思: http://zxs99.yeah.net     ;隨意改個從標題
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clRed                          ;隨意改個顏色
    Font.Height = -13
    Font.Name = '新細明體'
    ParentFont = False
    ParentShowHint = False
    ShowHint = True
  end

    中文字帶下劃線不美觀,刪除;手形指針隨您可保留;點擊連結刪除,否則仍然進入作者首頁;將字串表中的 UNREGISTERED 改為「尚未註冊版本」即可。字型、單元位置和視窗調整您更熟練 : )

    一般來說,可在任意視窗中隨意加入的語法應該是: (前五行是最基本的)
  object Lab_ZXS: TLabel
    Left = 18
    Top = 140
    Width = 53
    Height = 13
    Caption = '中文化製作'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clRed
    Font.Height = -12
    Font.Name = '新細明體'
    Font.Style = []
    ParentFont = False
 end
    大多數情況不會出錯,運氣好的化,甚至可以實現點擊後直接訪問首頁的功能,最好在該視窗內複製一段語法,再修改,如果連結在軟體中另外定義,則無法;如果以 TLINK 的形式出現則可大功告成,別忘了改標籤名。具體可以參照我最近做的 WATERWALL、WHD233 和昨天的 CONTACT 等,雖然麻煩些,但感覺比把名字放在標題欄那麼奪人耳目要好些 : )
    另外用 EXESCOPE 匯入時在 9X 下允許增加字節非常容易出錯 (看下一個視窗亂沒有) ,在 NT 下穩定,怪 ! 及時儲存備份,慢慢調整您。

打包下載所有內容和一些附加 DFM 視窗資原始檔案,用學思兄中文化的 DFM VIEWER 可以開啟查看預覽。
http://chinease.myrice.com/teach/meihua.zip
http://grwy.online.ha.cn/chinease/teach/meihua.zip

 

 



回教學