一步一步學做軟體漢化—-直擊VB(1)

來源:互聯網
上載者:User
一步一步學做軟體漢化----直擊VB(1)
新起點漢化工作室--阿濤
(一)

一、概述:

常做漢化的人都知道,VB程式的漢化是一個令人很頭疼的問題。現在有關VC、DELPHI程式的漢化技術已經相當成熟和完善,可是要想完美漢化一個VB程式卻是難上加難。首先VB程式中要漢化的字串非常分散和無序,而且夾雜了不少Unicode 字元,目前也沒有一個工具能夠很方便的處理它。當然這個問題還是可以解決的,字串照樣可以漢化,只不過麻煩一些而已。真正最讓人感到頭疼的是漢化後的字串如何修改其字型和字型大小。你可以想象一下,一大塊中國的方塊文字卻用的是8號英文字型,那將是多麼的難看,還不如不漢化呢!

從上個世紀我學漢化開始到現在,有關VB程式漢化的技術文章基本上沒有,如何漢化和修改字型的問題也始終沒有得到解決,真正稱得上是一個“世紀難題”了。我曾為此多方求助過許多編程高手,但均無結果,或許VB這種編程工具太爛了,高手們不屑於用的緣故吧。沒辦法,只好自己安裝了一個VB50,期望能找出些辦法。

說起來實在是有些意外,我原以為會花費很多的時間才能解決這個問題,但事實是花費了……兩天,字型的問題就已經基本解決了。不知是我悟性太好還是問題太簡單,“世紀難題”就這樣被解決掉真有些戲劇性,當然也很難理解以前那麼長的時間內為什麼就沒人解決這個問題呢?

二、一些聲明:

回到正題吧。既然是兩天內解決的,自然我不能100%保證這種辦法的絕對可靠性和適應性了,所以先聲明一些事情:

1、我使用的研究工具是VB50,研究的程式也都是VB50編製的,所以我的辦法能否完全適用於VB60或其他版本VB編製的程式還有待大家驗證。不過本人認為基本的東西應該是通用的,只可能有個別相關檔案的名稱會有些變化,我會在以下的論述中加以說明的。

2、這篇文章僅僅論述如何修改字型名稱和字型大小等方面的問題,至於字串如何漢化的問題我將考慮在以後的文章當中進行詳細的講解,本文就不涉及了。

3、我修改字型採用的工具是 UltraEdit 5.0,建議你也使用它,因為目前還沒有一個更方便的工具。當然請你一定注意其版本是 5.0,其他版本的 UltraEdit 我不推薦你使用。

4、本著夠用就行的宗旨,本文詳細講述了在修改字型過程中所有我可以想得到的問題,對於其他不需要改動的項目我就沒有仔細研究,如果你是一個編程高手,有意編製一個VB漢化工具的話,可以與我聯絡,我們可以進一步研究。

5、……想不起來了,還是邊說邊想吧……

三、字串的分類:

根據本人的分析,從字型的角度分類的話,我認為一個VB編製的程式中通常存在兩種字串。一種是明確定義了字型名稱和字型大小的字串,另一種就是沒有定義字型名和字型大小的字串。兩種字串有可能同時存在於一個VB程式中,也可能只存在其中的一種。

從漢化的角度來看,兩種字串都是可以漢化和修改字型的,當然第一種修改更為容易些,而對於沒有定義字型的字串來說,就要麻煩一些了。接下來我就分別講述吧。

四、已定義了字型的字串:

如果一個字串已經明確定義了字型,那麼修改起來就會容易的多。在VB程式中,表示字型名稱和字型大小的字元通常都是跟在每一個被定義的字串後面的,所以,如果你在一個字串後面的不遠處還沒有發現有字型符號的話,那這個字串就是未明確定義字型的了:-)

看看:



我們現在看到的是一個字串“歡迎訪問新起點漢化工作室”。在它後面不遠處,就是對它進行定義的字型符號,我已經用藍色表示了。現在我具體說一下上面六個箭頭表示的意思:

(1):語系。“00”表示西文語系,“86”表示 GB_2312語系。這一項我們漢化時需要修改,即改成“86”。

(2):字型。“00”表示普通字型,“02”表示斜體。這一項通常可以不需要修改,以保持和原作的風格一致。

(3):字型。“90 01”表示正常字型,“BC 02”表示粗體。這一項同樣也可以不修改。

(4):字型大小。這是我們最需要關注的一項,它就是你需要更改字型大小的地方,它由三個位元組組成,中所示的“44 42 01”。至於字型大小的具體表示,請參考:
 


字型大小 代碼 字型大小 代碼 字型大小 代碼 字型大小 代碼
2 E4 57 00 12 C0 D4 01 28 FC 3B 04 三號 3C 67 02
3 30 75 00 14 A4 2C 02 36 40 7E 05 小三 F0 49 02
4 7C 92 00 15 F0 49 02 48 00 53 07 四號 A4 2C 02
5 14 CD 00 16 3C 67 02 72 80 FC 0A 小四 C0 D4 01
6 60 EA 00 18 20 BF 02 初號 A0 68 06 五號 28 9A 01
7 AC 07 01 19 6C DC 02 小初 40 7E 05 小五 90 5F 01
8 44 42 01 20 04 17 03 一號 64 01 04 六號 F8 24 01
9 90 5F 01 22 9C 51 03 小一 80 A9 03 小六 AC 07 01
10 DC 7C 01 24 80 A9 03 二號 9C 51 03 七號 14 CD 00
11 74 B7 01 26 64 01 04 小二 20 BF 02 八號 14 CD 00


(5):字型名稱的長度值。它表示後面的字型名稱的長度(字元數),這是一個16進位值,這個值一定不能修改!

(6):字型名。通常在英文的VB程式中 “Arial”字型用的較多,而中文我們需要的是宋體,所以可以把它直接改成宋體或其他中文字型名稱。要注意的是,中文字型名的長度不能大於這個英文字型名的長度,如果中文字型名短於英文字型名,那麼多餘的位置怎麼辦呢?用“00”替換掉,知道嗎?當然也可以用“20”替換,但有些情況下就不能產生諸如粗體之類的字型效果了,所以還是用“00”替換好一些,應該不會出錯的。

還有就是字型名後面的字元千萬別修改,所以改成中文字型名時要看清楚,別不小心把字型名後面的字元給覆蓋了。

有人問,上面這些代表字型的字元很分散,我如何找到它們呢?其實很簡單,你可以先找到字型名,然後往前回朔,這些字型符號就全部找出來了,當然你應該注意每個字型符號之間是否有“00”分隔了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.