多語言網(wǎng)站建設(shè)實(shí)現(xiàn)方案-網(wǎng)站建設(shè)使用靜態(tài)頁面和動態(tài)頁面的區(qū)別。
1,靜態(tài):就是為每種語言分別準(zhǔn)備一套頁面文件,要么通過文件后綴名來區(qū)分不同語言,要么通過子目錄來區(qū)分不同語言。
例如對于首頁文件index_en.htm提供英語界面,ccxcn.index_gb.htm提供簡體中文界面,index_big.htm提供繁體中文界面,或 者是 en/index.htm提供英語界面,gb/index.htm提供簡體中文界面,big/index.htm提供繁體中文界面,一旦用戶選擇了需要的 語言后,自動跳轉(zhuǎn)到相應(yīng)的頁面,首頁以下其他鏈接也是按照同樣方式處理。從維護(hù)的角度來看,通過子目錄比通過文件后綴名來區(qū)分不同語言版本顯得要簡單明 了。
2,動態(tài):站點(diǎn)內(nèi)所有頁面文件都是動態(tài)頁面文件(PHP,ASP等)而不是靜態(tài)頁面文件,在需要輸出語言文字的地方統(tǒng)一采用語言變量來表示,這些語言變量可以根據(jù)用戶選擇不同的語言賦予不同的值,從而能夠?qū)崿F(xiàn)在不同的語言環(huán)境下輸出不同的文字。
例如:語言變量ln_name,當(dāng)用戶選擇的語言是英語時賦值為“Name”,當(dāng)用戶選擇的語言是簡體中文時賦值為“姓名”,這樣就可以適應(yīng)不同語言時的輸出。
采用靜態(tài)方式的優(yōu)點(diǎn)是頁面直接輸出到客戶端,不需要在服務(wù)器上運(yùn)行,占用服務(wù)器的資源比較少,系統(tǒng)能夠支持的并發(fā)連接數(shù)較多,缺點(diǎn)是要為每種語言制作一套頁面文件,很多內(nèi)容即使是和語言無關(guān)的也要分不同語言來存儲,因此占用的存儲空間較多。
采用動態(tài)方式和靜態(tài)方式的優(yōu)缺點(diǎn)正好相反,它的優(yōu)點(diǎn)是動態(tài)頁面文件只有一套,不同語言的文字使用語言變量來存儲,和語言無關(guān)的內(nèi)容只存儲一份,占用的存 儲空間較少,并且擴(kuò)展新語言比較容易,缺點(diǎn)需要在服務(wù)器上運(yùn)行,然后把結(jié)果輸入到客戶端,占用服務(wù)器的資源比較多,系統(tǒng)能夠支持的并發(fā)連接數(shù)較少。
動態(tài)數(shù)據(jù)存貯涉及的一些技術(shù)問題
由于現(xiàn)在網(wǎng)站上動態(tài)應(yīng)用日益增多,相當(dāng)多的網(wǎng)站還會使用文件或者數(shù)據(jù)庫來存儲應(yīng)用信息,因此如果文件或者數(shù)據(jù)庫中存儲的內(nèi)容與語言相關(guān)時,還需要特別注意。對于存儲在數(shù)據(jù)庫中信息,可以采取以下幾種方式支持多語言:
1,在數(shù)據(jù)庫級別支持多語言:為每種語言建立獨(dú)立的數(shù)據(jù)庫,不同語言的用戶操作不同的數(shù)據(jù)庫。
2,在表級別支持多語言:為每種語言建立獨(dú)立的表,不同語言的用戶操作不同的表,但是它們在同一個數(shù)據(jù)庫中。
3,在字段級別支持多語言:在同一個表中為每種語言建立獨(dú)立的字段,不同語言的用戶操作不同的字段,它們在同一個表中。
由于數(shù)據(jù)庫中有大量的信息(如標(biāo)志,編碼,數(shù)字等)是用于內(nèi)部處理使用的,與語言無關(guān)的,因此在數(shù)據(jù)庫級別支持多語言會導(dǎo)致空間的極大浪費(fèi),在字段級別支持多語言最大的問題是一旦需要支持新的語言,由于需要修改表結(jié)構(gòu),維護(hù)起來非常麻煩,可擴(kuò)展性不好。
相比之下,在表級別支持多語言比較好,因?yàn)椴⒉皇撬械谋矶夹枰С侄嗾Z言,對于與語言無關(guān)的表,不同語言的用戶共用一套,那些和語言相關(guān)的表根據(jù)支持 語言的種類來建立,不同語言的用戶存取訪問不同的表格。這樣使得維護(hù)簡單,節(jié)省了存儲空間,即使是擴(kuò)展起來也比較方便,只要把需要支持多語言的表,多建立 一套即可。
還需要注意的問題是:有些表中某些字段是不同語言版本的表共享的(例如庫存量),由于各種語言的表之間的相對獨(dú)立性,使得數(shù)據(jù)共享有些困難。解決的方法有兩個:
1,不同語言的表的共享字段同步:也就是說,只要修改了其中一個表的共享字段,其他語言表中該字段也作相應(yīng)改變,實(shí)際上當(dāng)不同語言的用戶同時訪問時處理還是比較麻煩的,并且擴(kuò)充新語言時修改工作比較大。
2,增加一個新的表:把所有語言共享的字段(例如貨物編號,產(chǎn)地編碼等)全部放在這個表,支持多語言的表只存放與各種語言相關(guān)的字段。不同語言的用戶在使用數(shù)據(jù)庫時,需要操作兩個數(shù)據(jù)表。
比較而言,第二種方法比較簡單,并且效率比較高,維護(hù)也比較方便。