如何漢化軟體

2021-05-23 19:23:32 字數 3271 閱讀 4144

漢化軟體是一件煩瑣的事。要漢化乙個軟體,一般的流程是這樣:

一、檢測軟體是否加了殼。

如果不會手工優化,可以在脫完殼重建資源後就用漢化工具來漢化,漢化完成後再用 lordpe 這樣的工具來優化一下漢化後的程式就可以了。

二、檢測程式資源型別。

檢測程式資源型別我們同樣可以用 peid、fi 這樣的工具,主要是看程式是用什麼開發工具寫的。各個開發工具編譯出來的程式標準資源型別是不同的。一般可以分以下幾種:

1、vc、masm 這樣的開發工具做出來的程式要漢化的標準資源主要在 menu、dialog、string 等中。

2、delphi、c++builder 這樣的 borland 公司開發工具做出來的東西要漢化的標準資源主要在 rcdata 和 string 中。

3、vb 開發的程式,這種程式我們一般所說的標準資源是指 form 中的資源,這種 vb 編的程式目前還沒有可以視覺化編輯介面資源的工具,相比較而言漢化起來不是很痛快;)

4、上面說的主要是標準資源,再說一下一般定義的非標準資源。非標準資源一般簡稱為非標,指在程式中出現,但又不在標準資源中的 unicode 字串或 ascii 字串,這類字串漢化需要其他的工具。

判斷完程式是什麼開發工具做的,我們就對資源型別大致有數了。下面就可以開始著手漢化了。

三、使用合適的漢化工具

這裡首先要說明一下,像什麼 exescope、resscope、reshacker、pe explorer 這樣的工具嚴格來講都不是漢化工具,只能說是資源修改工具。一般所說的漢化工具是指如 visual localize、passolo、multilizer、alchemy catalyst 這樣的工具。這些工具都是可以視覺化調整調整介面的,不過這些工具都不能用來漢化 vb 編的程式,關於漢化 vb 編的程式要使用其他的工具。現在針對上面所說的資源型別來談談工具的選用:

1、vc、masm 類程式:這種程式可以用上面提到的任何一款漢化工具漢化,就我個人來講,我比較喜歡用 passolo,visual localize 也是個很不錯的選擇。

2、delphi、c++builder 類程式:這種程式可以使用 passolo、multilizer 來漢化,一般用 passolo 時應該選擇 passolo 的 unicode 版本。對這類程式,還可以採用外掛程式語言包的方式來漢化標準資源。這種外掛程式語言檔案的方法對一些加了猛殼,且又不想脫殼或不好脫殼的程式非常有用。因為 borland 公司的編譯器編譯出來的程式預設對語言檔案支援,編譯好的程式會自動檢測是否有語言檔案。一般的未加殼的此類程式,要採用語言檔案漢化標準資源的話,只需生成對應的語言檔案放到原程式目錄就可以了。對於加了猛殼的此類程式,如果只是漢化標準資源的話,不需要脫殼,只要用 freeres 這樣的工具釋放一下壓縮資源,再漢化釋放資源後的程式,生成語言檔案後放到原程式目錄下就可以讓主介面顯示對應語言了。用 passolo、multilizer 來漢化這樣的程式,還有一些區別的地方:

(1)、passolo,漢化這類程式時選目標為簡體中文時預設生成的目標是字尾名為 chs 的檔案。不過生成的檔案其實只是改了字尾名的漢化後的 exe 或 dll 等可執行檔案。這可以預先設定一下目標檔案的字尾名,使生成的漢化後的檔案字尾名為 exe 或 dll 等這樣的可執行檔案。如果只是想生成語言檔案,最好在生成目標檔案的高階選項中設定一下,把生成純資源 dll 的選項選上,再把漢化生成的chs檔案的和漢化資源無關的項如圖示、點陣圖等刪掉,減小體積。

(2)、multilizer,這個工具漢化此類的程式時,預設生成的就是語言檔案,要想生成漢化後的可執行檔案,要在工程選項中把輸出檔案中的「已本地化的檔案」選項選上。而生成的簡體中文語言檔案一般也使以 chs 為字尾名。

採用語言檔案方式漢化的話,只要把漢化完標準資源的語言檔案和原程式放在同一目錄就可以讓主介面顯示中文了,不受主程式是否加殼的影響。這裡要注意的是語言檔名要與原程式名稱一致,如你要漢化 test.exe,語言檔名就要是 test.chs,同樣,你要是把 test.exe 改名為 test1.exe,語言檔名也相應要改為 test1.chs。

3、vb 類程式:這種程式目前可以用來漢化的工具有 vb 窗體漢化器、getvbres、新出的 vblocalize 等。缺點就是沒有可以視覺化調整漢化後介面的工具。

4、非標準資源:這類非標資源的漢化主要採用的工具有點睛字串替換器、cxa、楓葉字元替換器等。主要功能是把原程式需要漢化的非標字串提取出來,漢化完後再寫入。漢化非標資源要求程式必須沒有加殼,且這個地方漢化不當的話容易讓程式出現問題,比如不能漢化的字串漢化了等等這樣的情況,會讓程式執行出錯,也就是常說的漢化過度。所以漢化非標資源時要特別注意,要多測試,防止出現因漢化引起的 bug。

四、漢化標準資源中的字串

一般的漢化工具都支援字典及匯入匯出功能,字典主要靠自己積累,你漢化的軟體越多,生成的字典越多,漢化起其他程式來就越快。因為很多內容都可以直接用字典來漢化完成。如果是漢化乙個新的程式,且又沒有什麼可用的字典怎麼辦?我一般的做法是採用漢化工具的匯出功能,把沒翻譯的源英文本串直接匯出(這裡注意如果是用 multilizer 匯出的話,需要把目標翻譯語言欄全選,再貼上原始語言,這樣匯出的採用 tab 分隔的 ascii 文字才好轉換為對照文字),再用字典轉換工具如 fantasy editor 或開心字典轉換工具把匯出的檔案轉換為對照文字,這樣就可以採用 seatools 這樣的工具來進行機器翻譯,機器翻譯完後再進行手工修改,全部翻譯好後再用上面說的字典轉換工具轉換為對應漢化工具的字典檔案,現在就可以用這樣的字典檔案來翻譯原程式了。

五、調整介面,設定對話方塊字型,漢化其他內容

設定字型一些漢化工具在建立工程時就可以完成,如用 visual localize 的話需要在工程中設定一下對話方塊字型。字串漢化完後要做的工作就是調整介面,因為漢化後有些對話方塊的字串會顯示不全,按鈕過大或過小,對話方塊大小不合適等等都要調整。如果還有什麼其他的資源如等要漢化的,可以匯出後修改了再匯入。

六、漢化非標資源中的字串

標準資源漢化完成後就要開始漢化非標準資源字串了。漢化方法與漢化標準資源類似,用我上面所說的非標資源提取工具先把非標字串提取出來,刪除不需要翻譯的,再做一下字典轉換(對於點睛字串替換器、cxa 這樣的工具,如果有當前漢化的程式以前的非標字串翻譯,可以直接作為字典匯入),先機器翻譯,再手工修改後匯入。漢化非標字串如果有經驗的話比較好,一般可以看出那些東西是需要翻譯的哪些是不需要翻譯的,哪些翻譯後字串長度比原字串短時補 0 還是空格。如果沒什麼經驗,就要多測試了。

七、漢化後程式測試及字型調整

這個地方是比較繁瑣的,因為漢化後有可能造成程式出錯,這裡就要重點檢測非標部分。另外漢化後有些地方的字型比較難看,這些地方是無法通過在標準資源中設定字型來修改的,這時就要通過除錯來設定字型了。設定字型在 od 中主要斷這幾個函式:createfonta(w)、createfontindirecta(w)、getstockobject。找到地方再作修改。

如何漢化ASCII碼軟體

一 在前面要說的 現在對於s60軟體漢化有興趣的人越來越多了,這對於我們中國人來說是個非常好的現象,如今的軟體絕大多數是英文的,雖然用起來也不是很費力 那證明咱們有一定的英文知識水平 但是英文水平再高也沒有看著咱們自己的母語舒服啊,所以說漢化是一項必然要做的工作。在這裡講的是難度相對較高的ascii...

如何漢化wine

wine的中文化方案,看下面的 wine中文亂碼的解決方法 新裝的wine中文全是亂碼,需要修改一下幾個配置檔案,找到一篇比較詳細的配置說明,分享一下 wine下中文的配置方案 步驟 1.初始設定 執行 winecfg,把模擬的 windows 系統設定為 windows xp 或者 windows...

如何漢化MyEclipse

如何漢化myeclipse?筆者以myeclipse5.5為例,說明漢化過程。1,安裝myeclipse5.5.略 3,在myeclipse所在目錄中的eclipse資料夾 eclipse,表示當前目錄,以我的電腦為例,eclipse表示 c program files myeclipse 5.5....