

| 語(yǔ)言是信息傳播的主要障礙。 多語(yǔ)言網(wǎng)站,顧名思義就是能夠以多種語(yǔ)言(而不是單種語(yǔ)言)為用戶(hù)提供信息服務(wù),讓使用不同語(yǔ)言的用戶(hù)都能夠從同個(gè)網(wǎng)站獲得內容相同的信息。 多語(yǔ)言網(wǎng)站實(shí)現方案 1,靜態(tài):就是為每種語(yǔ)言分別準備一套頁(yè)面文件,要么通過(guò)文件后綴名來(lái)區分不同語(yǔ)言,要么通過(guò)子目錄來(lái)區分不同語(yǔ)言。 例如對于首頁(yè)文件index_en.htm提供英語(yǔ)界面,index_gb.htm提供簡(jiǎn)體中文界面,index_big.htm提供繁體中文界面,或者是en/index.htm提供英語(yǔ)界面,gb/index.htm提供簡(jiǎn)體中文界面,big/index.htm提供繁體中文界面,一旦用戶(hù)選擇了需要的語(yǔ)言后,自動(dòng)跳轉到相應的頁(yè)面,首頁(yè)以下其他鏈接也是按照同樣方式處理。從維護的角度來(lái)看,通過(guò)子目錄比通過(guò)文件后綴名來(lái)區分不同語(yǔ)言版本顯得要簡(jiǎn)單明了。 2,動(dòng)態(tài):站點(diǎn)內所有頁(yè)面文件都是動(dòng)態(tài)頁(yè)面文件(PHP,ASP等)而不是靜態(tài)頁(yè)面文件,在需要輸出語(yǔ)言文字的地方統一采用語(yǔ)言變量來(lái)表示,這些語(yǔ)言變量可以根據用戶(hù)選擇不同的語(yǔ)言賦予不同的值,從而能夠實(shí)現在不同的語(yǔ)言環(huán)境下輸出不同的文字。 例如:語(yǔ)言變量ln_name,當用戶(hù)選擇的語(yǔ)言是英語(yǔ)時(shí)賦值為“Name”,當用戶(hù)選擇的語(yǔ)言是簡(jiǎn)體中文時(shí)賦值為“姓名”,這樣就可以適應不同語(yǔ)言時(shí)的輸出。 采用靜態(tài)方式的優(yōu)點(diǎn)是頁(yè)面直接輸出到客戶(hù)端,不需要在服務(wù)器上運行,占用服務(wù)器的資源比較少,系統能夠支持的并發(fā)連接數較多,缺點(diǎn)是要為每種語(yǔ)言制作一套頁(yè)面文件,很多內容即使是和語(yǔ)言無(wú)關(guān)的也要分不同語(yǔ)言來(lái)存儲,因此占用的存儲空間較多。 采用動(dòng)態(tài)方式和靜態(tài)方式的優(yōu)缺點(diǎn)正好相反,它的優(yōu)點(diǎn)是動(dòng)態(tài)頁(yè)面文件只有一套,不同語(yǔ)言的文字使用語(yǔ)言變量來(lái)存儲,和語(yǔ)言無(wú)關(guān)的內容只存儲一份,占用的存儲空間較少,并且擴展新語(yǔ)言比較容易,缺點(diǎn)需要在服務(wù)器上運行,然后把結果輸入到客戶(hù)端,占用服務(wù)器的資源比較多,系統能夠支持的并發(fā)連接數較少。 動(dòng)態(tài)數據存貯涉及的一些技術(shù)問(wèn)題 由于現在網(wǎng)站上動(dòng)態(tài)應用日益增多,相當多的網(wǎng)站還會(huì )使用文件或者數據庫來(lái)存儲應用信息,因此如果文件或者數據庫中存儲的內容與語(yǔ)言相關(guān)時(shí),還需要特別注意。對于存儲在數據庫中信息,可以采取以下幾種方式支持多語(yǔ)言: 1,在數據庫級別支持多語(yǔ)言:為每種語(yǔ)言建立獨立的數據庫,不同語(yǔ)言的用戶(hù)操作不同的數據庫。 2,在表級別支持多語(yǔ)言:為每種語(yǔ)言建立獨立的表,不同語(yǔ)言的用戶(hù)操作不同的表,但是它們在同一個(gè)數據庫中。 3,在字段級別支持多語(yǔ)言:在同一個(gè)表中為每種語(yǔ)言建立獨立的字段,不同語(yǔ)言的用戶(hù)操作不同的字段,它們在同一個(gè)表中。 由于數據庫中有大量的信息(如標志,編碼,數字等)是用于內部處理使用的,與語(yǔ)言無(wú)關(guān)的,因此在數據庫級別支持多語(yǔ)言會(huì )導致空間的極大浪費,在字段級別支持多語(yǔ)言最大的問(wèn)題是一旦需要支持新的語(yǔ)言,由于需要修改表結構,維護起來(lái)非常麻煩,可擴展性不好。 相比之下,在表級別支持多語(yǔ)言比較好,因為并不是所有的表都需要支持多語(yǔ)言,對于與語(yǔ)言無(wú)關(guān)的表,不同語(yǔ)言的用戶(hù)共用一套,那些和語(yǔ)言相關(guān)的表根據支持語(yǔ)言的種類(lèi)來(lái)建立,不同語(yǔ)言的用戶(hù)存取訪(fǎng)問(wèn)不同的表格。這樣使得維護簡(jiǎn)單,節省了存儲空間,即使是擴展起來(lái)也比較方便,只要把需要支持多語(yǔ)言的表,多建立一套即可。 還需要注意的問(wèn)題是:有些表中某些字段是不同語(yǔ)言版本的表共享的(例如庫存量),由于各種語(yǔ)言的表之間的相對獨立性,使得數據共享有些困難。解決的方法有兩個(gè): 1,不同語(yǔ)言的表的共享字段同步:也就是說(shuō),只要修改了其中一個(gè)表的共享字段,其他語(yǔ)言表中該字段也作相應改變,實(shí)際上當不同語(yǔ)言的用戶(hù)同時(shí)訪(fǎng)問(wèn)時(shí)處理還是比較麻煩的,并且擴充新語(yǔ)言時(shí)修改工作比較大。 2,增加一個(gè)新的表:把所有語(yǔ)言共享的字段(例如貨物編號,產(chǎn)地編碼等)全部放在這個(gè)表,支持多語(yǔ)言的表只存放與各種語(yǔ)言相關(guān)的字段。不同語(yǔ)言的用戶(hù)在使用數據庫時(shí),需要操作兩個(gè)數據表。 比較而言,第二種方法比較簡(jiǎn)單,并且效率比較高,維護也比較方便。 應用字符集的選擇 一個(gè)定位于不同語(yǔ)言國家的企業(yè)網(wǎng)站勢必需要提供多種語(yǔ)言版本的產(chǎn)品和銷(xiāo)售信息來(lái)滿(mǎn)足其世界各地使用不同語(yǔ)言的客戶(hù)和合作伙伴,其中包括法語(yǔ)、德語(yǔ)、意大利語(yǔ)、葡萄牙語(yǔ)、西班牙語(yǔ)、阿拉伯語(yǔ)等等。但有一個(gè)問(wèn)題卻極易被網(wǎng)站設計者們所忽略。這就是網(wǎng)站的字符集設置問(wèn)題。 一般我們使用的是簡(jiǎn)體中文(GB2312)字符集,而對多語(yǔ)言網(wǎng)站來(lái)說(shuō),中文字符集卻可能會(huì )使你辛辛苦苦的努力功虧一簣。原因很簡(jiǎn)單:就是這個(gè)毫不起眼的小小字符集在作怪。 計算機應用領(lǐng)域中存在著(zhù)幾十種互不相同的字符集,而不同語(yǔ)言客戶(hù)在瀏覽不同語(yǔ)言網(wǎng)頁(yè)時(shí),往往會(huì )因為相互間所使用字符集無(wú)法兼容而出現亂碼情況。我們在瀏覽國外一些網(wǎng)站時(shí),往往也會(huì )出現為了能正常地看到網(wǎng)站上的信息而不得不在各種字符集之間來(lái)回切換的情況。 試想一下:如果一個(gè)網(wǎng)站提供了中,英,法,德等多種語(yǔ)言版本的內容,內容全之又全,設計美侖美奐。我們在中文編碼環(huán)境下瀏覽這些非中文版本的頁(yè)面覺(jué)得非常完美,現在一個(gè)法國客戶(hù)對你的產(chǎn)品發(fā)生了興趣,當他進(jìn)到法語(yǔ)版面一看—亂碼多多,甚至可能整個(gè)版面都一塌里糊涂。你的網(wǎng)站再下大工夫又有什么意義呢? 所以對提供了多語(yǔ)言版本的網(wǎng)站來(lái)說(shuō),Unicode字符集應該是最理想的選擇。它是一種雙字節編碼機制的字符集,不管是東方文字還是西方文字,在Unicode中一律用兩個(gè)字節來(lái)表示,因而至少可以定義65536個(gè)不同的字符,幾乎可以涵蓋世界上目前所有通用的語(yǔ)言的每一種字符。 所以在設計和開(kāi)發(fā)多語(yǔ)言網(wǎng)站時(shí),一定要注意先把非中文頁(yè)面的字符集定義為“utf-8”格式。 這一步非常重要,原因在于若等頁(yè)面做好之后再更改字符集設置,可說(shuō)是一件非常非常吃力不討好的工作,有時(shí)候甚至可能需要從頭再來(lái),重新輸入網(wǎng)站的文字內容。 HTML中的META標簽: <META HTTP-EQUIV=“Content-Type” CONTENT=“text/html; CHARSET=字符集">
ASP與腳本引擎頁(yè)碼的概念 由于我們傳統使用的內碼像Big5,GB2312與unicode并不是一一對應,故兩者之間的轉換要靠codepage(頁(yè)碼)來(lái)實(shí)現 <%@ Language=VBScript CodePage=xxx%>
建議采用utf8的靜態(tài)和動(dòng)態(tài)文檔。即:
[Edit on 2005-5-19 9:11:41 By cnbruce] |
| By [cnbruce] at 11:32:13 | Comments [2] | 3763 views| Go Top |
| 9 M$ Expression V... ∴ | ∵ Unicode、UCS、UTF... : |
![]() |
| 借用寶地提個(gè)問(wèn)題困擾我幾天了asp的 比如如下字符串 <span class="f3"><font color="#000099"> <a href="http://news.sanhaostreet.com/NewsData//2005/5/20055141741318781.shtml" target="_blank" Class="NewsList" Title="市場(chǎng)快報:CPU、內存全面回穩 硬盤(pán)價(jià)格小幅波動(dòng)">市場(chǎng)快報:CPU、內存全面回穩 硬盤(pán)價(jià)格小..</a> </span> 如何用asp截取其中的<a>......</a>部分呢?謝謝 |
聯(lián)系客服