多國語言,國際化開發需求分析

 

引言

要確定工作內容,評估工作時間,首先我們要對需求及問題進行分析,下面給出對多國語言支持,這個需求的分析步驟、結果及一些參考資料。

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

我們最終的目的是:在用戶當前的操作系統環境下

1、  可以正常的顯示軟件的界面

2、  用戶可以用多語言進行輸入

3、  可以從外部各種語言的外部數據進行導入

4、  可以指定某種語言環境進行輸出(可以統一爲unicode輸出)

一、多國語言問題的起因及發展

1)最初文字的保存

0x20以下的字節狀態稱爲"控制碼",一直編到了第127號,這樣計算機就可以用不同字節來存儲英語的文字了,這個方案叫做 ANSI "AscII"編碼,當時世界上所有的計算機都用同樣的ASCII方案來保存英文文字

2)擴展字符集

但是很多國家用的不是英文,他們的字母裏有許多是ASCII裏沒有的,爲了可以在計算機保存他們的文字,他們決定採用127號之後的空位來表示這些新的字母、符號,還加入了很多畫表格時需要用下到的橫線、豎線、交叉等形狀,一直把序號編到了最後一個狀態255。從128255這一頁的字符集被稱"擴展字符集"

 

3)各個國家的本地化編碼(例如中國的GB2312BIG5

4UINICODE的出現

ISO (國際標誰化組織)的國際組織決定着手解決這個問題。他們採用的方法很簡單:廢了所有的地區性編碼方案,重新搞一個包括了地球上所有文化、所有字母和符號的編碼!他們打算叫它"Universal Multiple-Octet Coded Character Set",簡稱 UCS, 俗稱 "UNICODE"

5)從NT開始WIN系列已支持UNICODE

於是從 Windows NT 開始,MS 趁機把它們的操作系統改了一遍,把所有的核心代碼都改成了用 UNICODE 方式工作的版本,從這時開始,WINDOWS 系統終於無需要加裝各種本的語言系統,就可以顯示全世界上所有文化的字符了。

6UTF-8解決網絡傳輸中的,大小端問題

UTF8就是每次8個位傳輸數據,而UTF16就是每次16個位,了覈對雙方對於高低位的認識是否是一致的,採用了一種很簡便的方法,就是在文本流的開始時向對方發送一個標誌符——如果之後的文本是高位在位,那就發送"FEFF",反之,則發送"FFFE"

7)亂碼---各地區自有的編碼標準之間的衝突

而當你新建一個文本文件時,早期的記事本的編碼默認是ANSI, 如果你在ANSI的編碼輸入漢字,那麼他實際就是GB系列的編碼方式,所以不能正常顯示

二、多國語言支持需要解決哪幾方面的問題

1.         操作系統,需要支持UNICODE,目前WINDOWSXP,WIN2003都已經支持

2.         編寫的用戶界面軟件需要編譯unicode方式

VC中設置如下

Project->Settings->C/C++ TAB中,增加Preprocessor definitions:_UNICODE

Project->Settings->link TAB中,增加Project Options:/entry:"wWinMainCRTStartup"

C++ BULIDER中應該也有相應的編譯選項,以保證編譯出來的執行文件是支持UNICODE的輸入和輸出的,具體資料可在網上查找

編譯方式的選擇會直接決定,所有使用控件是否能支持多國語言的輸入

3.         界面顯示

需要以資源的方式來保存各種語言的用戶界面,並對資源進行動態加載

4.         用戶輸入

當應用程序是UNICODE的方式進行編譯的,則用戶的輸入都可以正常處理。

用戶所輸入的語言文字是由相應的輸入法保證的

對程序中關於用戶輸入的處理,需要修改爲,保存這些輸入的內存對象,需要以雙字節(寬字節)的方式進行保存、運算

5.         外部數據的輸入

如果外部數據是直接輸入到內存中進行操作,則需要明確輸入源的編碼方式,並在內存處理中以寬字節處理

如果外部數據是直接以複製粘貼的方式進行,因爲編譯方式保證了UNICODE,則可以不用做特殊處理

6.         數據的輸出

如果是和STB相關,請參後文對STB處理的描述

三、操作系統支持多國語言的步驟及條件

必須添加語言支持

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

必須添加語言包

有相應語言的字體,以確保編碼方式(UNICODE)能對應到顯示方式

運行的執行程序是UNICODE標準的,即前面踢到的運行程序是一UNICODE方式編譯的

 

 

 

 

 

 

 

 

三、多國語言問題在系統中的分佈

1、客戶端

UNICODE編譯

對用戶的輸入需要以寬字節來處理

多國語言界面的製作及動態加載

2、服務端

UNICODE編譯

四、如何進行測試

下面的網站有各種語言的文字,可從頁面種複製相應的文字,

日語取至:http://www.ruby-lang.org/ja/

韓文取至:http://www.ruby-lang.org/ko/

是否能在我們的系統中:輸入輸出,STB顯示

 

建立英文操作系統環境,我們的應用程序,

是否能正常的顯示界面,輸入輸出

五、參考資料

語系

http://baike.baidu.com/view/67325.htm

 

字符集和編碼

http://zhidao.baidu.com/question/7057627.html

 

漢字編碼轉換

http://game.ali213.net/thread-142937-1-1.html

 

UTF-8 and Unicode FAQ

http://www.linuxforum.net/books/UTF-8-Unicode.html

 

WINDWOS XP對多語言的支持

http://www.yesadmin.com/295/174267/index.html

 

WIN2000中對多國語言的支持

http://www.cndw.com/tech/server/2006040328995.asp

 

一步一步教你用VC純資源dll解決國際化問題

http://www.vckbase.com/document/viewdoc/?id=1567

 

爲軟件添加多國語言支持的經驗總結

http://i.cn.yahoo.com/cn.chaohuilin/blog/p_10/

 

編寫支持多國語言的程序(delphi相關,c++builder可參考)

http://www.programfan.com/article/181.html

發佈了34 篇原創文章 · 獲贊 33 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章