多語言版本網(wǎng)站建設(shè)數(shù)據(jù)庫設(shè)計(jì)和考慮的因素
由于現(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ò)展起來也比較方便,只要把需要支持多語言的表,多建立一套即可。
在設(shè)計(jì)和開發(fā)一個多語言版本的網(wǎng)站前,需要考慮下列因素:
1、應(yīng)用字符集的選擇
一個定位于不同語言國家的企業(yè)網(wǎng)站勢必需要提供多種語言版本的產(chǎn)品和銷售信息來滿足其世界各地使用不同語言的客戶和合作伙伴,其中包括法語、德語、意大利語、葡萄牙語、西班牙語、阿拉伯語等等。但有一個問題卻極易被網(wǎng)站設(shè)計(jì)者們所忽略。這就是網(wǎng)站的字符集設(shè)置問題。
一般我們使用的是簡體中文(GB2312)字符集,而對多語言網(wǎng)站來說,中文字符集卻可能會使你辛辛苦苦的努力功虧一簣。原因很簡單:就是這個毫不起眼的小小字符集在作怪。
計(jì)算機(jī)應(yīng)用領(lǐng)域中存在著幾十種互不相同的字符集,而不同語言客戶在瀏覽不同語言網(wǎng)頁時,往往會因?yàn)橄嗷ラg所使用字符集無法兼容而出現(xiàn)亂碼情況。我們在瀏覽國外一些網(wǎng)站時,往往也會出現(xiàn)為了能正常地看到網(wǎng)站上的信息而不得不在各種字符集之間來回切換的情況。
試想一下:如果一個網(wǎng)站提供了中,英,法,德等多種語言版本的內(nèi)容,內(nèi)容全之又全,設(shè)計(jì)美侖美奐。我們在中文編碼環(huán)境下瀏覽這些非中文版本的頁面覺得非常完美,現(xiàn)在一個法國客戶對你的產(chǎn)品發(fā)生了興趣,當(dāng)他進(jìn)到法語版面一看—亂碼多多,甚至可能整個版面都一塌里糊涂。你的網(wǎng)站再下大工夫又有什么意義呢?
所以對提供了多語言版本的網(wǎng)站來說,Unicode字符集應(yīng)該是最理想的選擇。
它是一種雙字節(jié)編碼機(jī)制的字符集,不管是東方文字還是西方文字,在Unicode中一律用兩個字節(jié)來表示,因而至少可以定義65536個不同的字符,幾乎可以涵蓋世界上目前所有通用的語言的每一種字符。所以在設(shè)計(jì)和開發(fā)多語言網(wǎng)站時,一定要注意先把非中文頁面的字符集定義為“utf-8”格式,即:
√:
×:
這一步非常重要,原因在于若等頁面做好之后再更改字符集設(shè)置,可說是一件非常非常吃力不討好的工作,有時候甚至可能需要從頭再來,重新輸入網(wǎng)站的文字內(nèi)容。
2、語言書寫習(xí)慣&導(dǎo)航結(jié)構(gòu)
有些國家的語言書寫習(xí)慣是從右到左,例如許多中東地區(qū)所使用的阿拉伯語,波斯語和希伯來語等等。如果你的市場目標(biāo)是這些語言的國家,那么在網(wǎng)站設(shè)計(jì)中就需要考慮這些特殊的語言書寫習(xí)慣。而且如果你在網(wǎng)站導(dǎo)航結(jié)構(gòu)設(shè)計(jì)中使用的是一個豎直導(dǎo)航欄,這時候就應(yīng)該把它放在右邊,而不是象我們習(xí)慣的那樣放在左邊了。
3、數(shù)據(jù)庫驅(qū)動型網(wǎng)站
對一個數(shù)據(jù)庫驅(qū)動型的網(wǎng)站,尤其是當(dāng)客戶可以留言并向數(shù)據(jù)庫添加信息時,則應(yīng)當(dāng)考慮如何從技術(shù)上實(shí)現(xiàn)對不同語言數(shù)據(jù)信息的收集和檢索。
4、搜索引擎&市場推廣
對多語言網(wǎng)站來說,搜索引擎優(yōu)化(SEO)確實(shí)是個大問題。而且還需要注意的是:并非所有的主流搜索引擎都會支持多語言網(wǎng)頁,這也就是為什么一個多語言的網(wǎng)站不一定被所有的主流搜索引擎收錄。當(dāng)然Google不存在這樣的問題。
其次需要考慮,不同語言所面向的不同市場目標(biāo)國家和客戶群體中習(xí)慣使用什么搜索引擎或門戶網(wǎng)站進(jìn)行搜索? 就象我們習(xí)慣用土生土長的百度搜索一樣,在一些語言國家使用最為廣泛的可能仍然是其本國的搜索引擎或門戶網(wǎng)站。