《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于數(shù)據(jù)庫設(shè)計的中英文雙語網(wǎng)站開發(fā)模式
基于數(shù)據(jù)庫設(shè)計的中英文雙語網(wǎng)站開發(fā)模式
來源:微型機(jī)與應(yīng)用2011年第23期
王 敏
(武昌理工學(xué)院 信息工程學(xué)院,湖北 武漢 430223)
摘要: 傳統(tǒng)的中英文網(wǎng)站開發(fā)采用兩套代碼兩個數(shù)據(jù)庫或者一套代碼兩套資源文件的開發(fā)模式,在軟硬件開銷、代碼與信息分離和系統(tǒng)的維護(hù)性方面均存在不同程度的缺陷。針對這一問題,把頁面設(shè)計與數(shù)據(jù)庫設(shè)計結(jié)合起來,利用編程技術(shù),用一套代碼一個數(shù)據(jù)庫實現(xiàn)中英文雙語網(wǎng)站的開發(fā),以提高開發(fā)及維護(hù)效率,降低軟件成本。
Abstract:
Key words :

摘  要: 傳統(tǒng)的中英文網(wǎng)站開發(fā)采用兩套代碼兩個數(shù)據(jù)庫或者一套代碼兩套資源文件的開發(fā)模式,在軟硬件開銷、代碼與信息分離和系統(tǒng)的維護(hù)性方面均存在不同程度的缺陷。針對這一問題,把頁面設(shè)計與數(shù)據(jù)庫設(shè)計結(jié)合起來,利用編程技術(shù),用一套代碼一個數(shù)據(jù)庫實現(xiàn)中英文雙語網(wǎng)站的開發(fā),以提高開發(fā)及維護(hù)效率,降低軟件成本。
關(guān)鍵詞: 雙語網(wǎng)站;內(nèi)容管理系統(tǒng);數(shù)據(jù)庫;靜態(tài)內(nèi)容;動態(tài)內(nèi)容

 我國一些具有國際戰(zhàn)略眼光的企業(yè),不僅建立了企業(yè)品牌中文網(wǎng)站,而且還建設(shè)了網(wǎng)站外文版[1]。英語是當(dāng)今世界上主要的國際通用語言之一,為了逾越系統(tǒng)使用者中文要求的限制以及滿足企業(yè)業(yè)務(wù)的需要,建立中英文雙語管理信息系統(tǒng)網(wǎng)站是企業(yè)實現(xiàn)國際化管理的有效途徑[1]。
 目前通常采用的方法有以下兩種[2]:第一種是開發(fā)兩套系統(tǒng),即中英文系統(tǒng)自成體系,用兩套程序和兩個數(shù)據(jù)庫分別實現(xiàn);第二種是使用一套程序,針對每個頁面分別生成中英文兩個資源文件以實現(xiàn)兩種語言之間的切換,數(shù)據(jù)庫可以用兩個,也可以用一個。第一種方法實現(xiàn)容易,但是其開發(fā)、測試及維護(hù)效率均很低下;第二種方法開發(fā)效率相對較高,但由于存放中英文靜態(tài)內(nèi)容的資源文件與代碼密不可分,不利于系統(tǒng)的維護(hù)。為克服上述開發(fā)模式的不足,本文選擇Microsoft Visual Studio.Net平臺的C#,提出一套基于C#的雙語網(wǎng)站設(shè)計模式,設(shè)計一個靜態(tài)信息表,將中英文靜態(tài)內(nèi)容存放于該表的不同字段,系統(tǒng)啟動時一次性讀出中英文靜態(tài)內(nèi)容并存放于DataTable對象中,各頁面啟動時依據(jù)頁面編號和語言標(biāo)志從DataTable中讀取并顯示靜態(tài)內(nèi)容;對頁面動態(tài)內(nèi)容,在各信息表中設(shè)計兩個字段分別存放需要顯示的中英文內(nèi)容,根據(jù)頁面的語言標(biāo)志來讀取對應(yīng)字段內(nèi)容動態(tài)顯示于頁面。即用一套代碼一個數(shù)據(jù)庫實現(xiàn)中英文雙語網(wǎng)站的開發(fā)。
1 系統(tǒng)需求
 本文以某企業(yè)的法律規(guī)章制度的管理信息系統(tǒng)為例來說明雙語網(wǎng)站的實現(xiàn)。
 (1)在業(yè)務(wù)需求方面,該系統(tǒng)旨在通過各地區(qū)(不同國家或區(qū)域)工作人員將各地區(qū)與本企業(yè)產(chǎn)品相關(guān)的產(chǎn)品安全標(biāo)準(zhǔn)和法律規(guī)章制度提取出來,按本企業(yè)的管理方式以中英文雙語錄入系統(tǒng),經(jīng)過主管部門確認(rèn)后,向本企業(yè)各部門及業(yè)務(wù)往來公司公開,使企業(yè)產(chǎn)品在不違反銷售對象國家及區(qū)域的法律制度的條件下進(jìn)行合法營銷。而目前的管理完全是通過手工制作Html文件的方式實現(xiàn)信息共享,這種方式既繁瑣且工作量大。為了優(yōu)化系統(tǒng)管理,本文提出利用數(shù)據(jù)庫及網(wǎng)站開發(fā)平臺來進(jìn)行系統(tǒng)的設(shè)計及開發(fā)。
 (2)在功能需求方面,該系統(tǒng)用來管理與企業(yè)相關(guān)產(chǎn)品的法律規(guī)章制度,類似于一般管理信息系統(tǒng)的功能:法律規(guī)章制度的追加、修改、刪除、查詢及報表的制作。此外,由于規(guī)章制度類信息篇幅較長,以電子文檔方式保存的較多,因此,本系統(tǒng)還涉及電子文檔的追加、修改、刪除、查詢功能,即上傳、下載及文件瀏覽功能。
 (3)在環(huán)境需求方面,由于雙語網(wǎng)站面向的用戶的多樣性,要求客戶端在以下4種組合的環(huán)境下能正常動作,因此,集成測試及系統(tǒng)測試也必須在這4種組合環(huán)境下進(jìn)行:①中文WindowsXP、中文IE6;②英文WindowsXP、英文IE6;③中文WindowsVista、中文IE7;④英文WindowsVista、英文IE7。
 (4)在安全需求方面,只有獲得本系統(tǒng)用戶名和密碼的用戶通過登錄頁面驗證方可進(jìn)入主菜單頁面,但進(jìn)入主菜單的用戶權(quán)限各不相同,即不是進(jìn)入主菜單的用戶就能進(jìn)入所有菜單項,通過對用戶進(jìn)行使用權(quán)限的設(shè)置及檢查,控制不同用戶對不同菜單項的使用權(quán)限;同時需要有效防止不經(jīng)過菜單頁面權(quán)限檢查,在IE地址欄直接輸入IP地址非法進(jìn)入各業(yè)務(wù)頁面訪問。
2 雙語對應(yīng)設(shè)計
 為了提高雙語網(wǎng)站的可維護(hù)性,利用一套代碼、一個數(shù)據(jù)庫實現(xiàn)雙語網(wǎng)站的構(gòu)建。其主要實現(xiàn)技術(shù)主要包括頁面設(shè)計、數(shù)據(jù)庫表的設(shè)計和文件管理設(shè)計三個方面。
2.1 頁面設(shè)計
 利用C#進(jìn)行網(wǎng)站開發(fā),其頁面顯示的內(nèi)容主要包含靜態(tài)內(nèi)容和動態(tài)內(nèi)容兩類。在設(shè)計中,頁面靜態(tài)內(nèi)容并非像通常設(shè)計那樣設(shè)置為固定值,而是從數(shù)據(jù)庫的“靜態(tài)信息表”讀?。豁撁嬷型豢丶娘@示屬性可以根據(jù)不同環(huán)境分別顯示為中文與英文。為了便于設(shè)計及編程實現(xiàn),將各頁面的控件按統(tǒng)一方式進(jìn)行編號設(shè)計,本文用5位符號字符對控件進(jìn)行編號,編號規(guī)則如下:
 第1位:用@表示所有頁面共同的顯示項,用#表示各頁面專用的顯示項。
 第2、3位:按控件種類劃分,用字符表示:
 ID:頁面名;
 NV:向?qū)淖郑?br />  LI:文字+鏈接;
 FL:文字+輸入(文本框,單、復(fù)選按鈕,組合框等);
 NA:僅顯示文字;
 BT:按鈕名;
 IM:畫像文件名。
 第4、5位:同種類控件按序編號,用數(shù)字表示。
 頁面設(shè)計中的上述編號,對應(yīng)數(shù)據(jù)庫的“靜態(tài)信息表”的字段“頁面控件編號”,不同頁面的控件編號基本一致,以“頁面編號”和“頁面控件編號”為主鍵來區(qū)分不同記錄。
 設(shè)計示例如圖1所示(假設(shè)頁面編號為WWDG001),圖中DA01和DA02為動態(tài)內(nèi)容項,其編號不存放于數(shù)據(jù)庫表的某一字段,只作為設(shè)計和編程中動態(tài)項目的對照依據(jù)。

2.2 數(shù)據(jù)庫相關(guān)表的設(shè)計
 本系統(tǒng)雙語功能的實現(xiàn)主要借助于數(shù)據(jù)庫設(shè)計。首先定義了一個“靜態(tài)信息表”,在該表中定義了頁面編號、頁面控件編號、中英文名稱等字段,主鍵為頁面編號和頁面控件編號,該表用來存放各個頁面所有靜態(tài)內(nèi)容的中英文顯示內(nèi)容。針對WWDG001頁面,靜態(tài)信息表內(nèi)容如表1所示。

 

 

 對于頁面動態(tài)內(nèi)容,在每一個數(shù)據(jù)庫的表中,對需要雙語顯示的信息分別設(shè)置了中英文兩個字段來存放相應(yīng)的信息。針對WWDG001頁面,其動態(tài)顯示內(nèi)容來自于商品管理表,其內(nèi)容如表2所示。頁面動態(tài)消息和消息框消息也以中英文存放于消息管理表中,其內(nèi)容如表3所示。

 根據(jù)數(shù)據(jù)庫內(nèi)容,中英文頁面內(nèi)容顯示如圖2所示。

2.3 中英文文件管理
 本系統(tǒng)管理的對象信息除數(shù)據(jù)庫信息之外,還涉及篇幅較大的中英文文檔信息。本文將這些文件存放于Web服務(wù)器一指定路徑下,將中英文文件分別存放于“CHN”和“EN”兩個不同的文件夾下面(各文件夾內(nèi)部根據(jù)類別建立不同文件夾以便分類管理),實現(xiàn)時,根據(jù)當(dāng)前頁面的語言類別,在“CHN”或“EN”文件夾中操作對應(yīng)文件。
2.4 中英文顯示內(nèi)容對應(yīng)
 為了保持頁面布局的美觀和降低編程復(fù)雜度,設(shè)計時,依據(jù)常規(guī)數(shù)據(jù)大小,將頁面顯示項目的位置和大小設(shè)為固定值。通常,英文信息比中文信息長,設(shè)計時以中文信息完全顯示為主,兼顧英文的完全顯示。對于中英文長度差別較大的頁面項目(或太長的中英文顯示項目),本設(shè)計按照頁面預(yù)留長度截取適當(dāng)內(nèi)容顯示于頁面,利用<acronym>Tag,當(dāng)鼠標(biāo)置于未完全顯示文字之上時,使其以工具提示的方式顯示全部內(nèi)容。
2.5 頁面語言選擇依據(jù)
 根據(jù)以下三方面決定各頁面語言的切換:(1)系統(tǒng)啟動時,啟動用戶登錄頁面,將根據(jù)用戶所處區(qū)域決定打開系統(tǒng)登錄頁面的顯示語言;(2)用戶登錄時,通過輸入用戶名和密碼進(jìn)入系統(tǒng),系統(tǒng)根據(jù)用戶名檢索用戶的語言標(biāo)志,決定進(jìn)入系統(tǒng)的顯示語言;(3)各頁面設(shè)置了語言切換按鈕,用戶可根據(jù)需要隨時進(jìn)行語言切換[5]。為保證頁面切換過程中顯示語言的一致性,將語言標(biāo)志設(shè)置在母版頁WWDGBaseMasterPage.master的不可視文本框中,并利用context.Handler實現(xiàn)頁面間的語言標(biāo)志及其他值的傳遞。
3 系統(tǒng)實現(xiàn)
 在系統(tǒng)實現(xiàn)中,注重執(zhí)行效率及代碼重用[3],其網(wǎng)站路徑構(gòu)成如圖3所示。圖中,Properties文件夾的AssemblyInfo.cs類文件用于保存程序集的名稱、版本等信息;Reference文件夾包含本系統(tǒng)的所有引用;App中包含若干公用類的代碼文件,其中Map文件夾包含若干存放著SQL腳本的XML文件;css文件夾中包含各類的疊層式樣表;Help文件夾中包含系統(tǒng)的幫助頁面;img文件夾中包含系統(tǒng)用到的所有圖片文件;Info文件夾中包含了本系統(tǒng)所有Web頁面,頁面設(shè)計及業(yè)務(wù)邏輯控制主要集中在這部分;js文件夾中包含各類JavaScript代碼文件。

3.1 Application_Start事件處理
 頁面靜態(tài)顯示內(nèi)容是在頁面打開時根據(jù)語言標(biāo)志動態(tài)設(shè)定的。為加快頁面顯示速度,頁面靜態(tài)內(nèi)容在系統(tǒng)啟動時,一次性從數(shù)據(jù)庫讀出待用。因此,本設(shè)計在Global.asax的Application_Start事件中將所有靜態(tài)內(nèi)容從數(shù)據(jù)庫讀出保存于DataTable對象中,抽出信息包括:頁面編號、頁面控件編號、中文名稱和英文名稱。在各頁面初始顯示時,以頁面編號和語言標(biāo)志為參數(shù),從DataTable對象中讀取對應(yīng)內(nèi)容,并設(shè)置頁面靜態(tài)內(nèi)容。此外,執(zhí)行過程中的Message也采用同樣的方式處理。其程序如下:
protected void Application_Start(object sender,EventArgs e
{ try
      {  //WWDGCCommon公用類實例化
        Camon.WWDG.App.Common.WWDGCCommon  wwdgCCommon=new Camon.WWDG.App.Common.
WWDGCCommon();
//GetLabelInfo調(diào)用,取得靜態(tài)信息
  wwdgCCommon.GetLabelInfo();//頁面首部URL取得
  wwdgCCommon.GetheaderUrl();
//GetMessageList調(diào)用取得執(zhí)行過程中顯示的Message
  wwdgCCommon.GetMessageList();
 }
catch (Exception ex)
{ Camon.WWDG.App.Common.WWDGLog.GetLogger().errorLog(null,ex);}
}
3.2 母版頁及內(nèi)容頁基類的設(shè)計
 將各個內(nèi)容頁相同的通用外觀提取出來,做成一個母版頁WWDGBaseMasterPage.master。本系統(tǒng)的母版頁中包含頁眉、頁腳、導(dǎo)航菜單、返回按鈕、語言切換按鈕和一些靜態(tài)圖標(biāo)。只要將各內(nèi)容頁的MasterPageFile屬性設(shè)為“WWDGBaseMasterPage.master”,各內(nèi)容頁只需設(shè)計本頁面專用的內(nèi)容即可。母版頁對應(yīng)的后臺服務(wù)器代碼主要針對母版頁中控件的事件處理和靜態(tài)內(nèi)容的設(shè)定。此外,定義基類WWDGCBaseWebPage.cs,在該類的定義中包含各內(nèi)容頁通用的用戶信息及其他信息變量的定義和各頁面通用的事件處理(頁面初始化處理、數(shù)據(jù)新增、修改、刪除處理)等。WWDGCBaseWebPage.cs的代碼構(gòu)成為:

 省略部分的處理包括:對WWDGCBaseWebPage繼承成員的派生以及新增加的成員定義。
3.3 系統(tǒng)安全控制
 由于安全控制集中在登錄頁面及主菜單頁面,為了防止在IE地址欄直接輸入IP地址非法進(jìn)入各內(nèi)容頁訪問,在母版頁的各級頁面打開前均需驗證打開該頁面前是否已經(jīng)過主菜單的權(quán)限驗證[4]。在母版頁WWDGBase MasterPage.master中添設(shè)不可視文本框menuFlg,當(dāng)菜單頁面檢查通過時,就將menuFlg的值設(shè)為有效值1,頁面切換時通過頁面?zhèn)髦?從上級頁面?zhèn)魅胂乱豁撁?。在基類頁面初始化處理中進(jìn)行是否經(jīng)過主菜單的安全驗證,驗證通過則可進(jìn)入相應(yīng)頁面,否則顯示錯誤提示頁面。
4 測試
 在測試中發(fā)現(xiàn)的主要問題有:(1)單元測試中,發(fā)現(xiàn)通過瀏覽器打開服務(wù)器上的文件瀏覽時,瀏覽器的標(biāo)題顯示了文件存放服務(wù)器的IP地址,屬安全性Bug,采用Iframe打開文件對應(yīng)了瀏覽器標(biāo)題的非實名設(shè)定;(2)由于開發(fā)環(huán)境和單元測試使用的IE6,在集成測試時,發(fā)現(xiàn)在IE7中,頁面顯示出現(xiàn)異常。這是由于IE6和IE7對DIV Tag的寬默認(rèn)不一致導(dǎo)致,通過修改css的定義實現(xiàn)了本Bug的對應(yīng)。
本設(shè)計模式在日本Canon打印機(jī)及配件法規(guī)制管理系統(tǒng)的日英雙語網(wǎng)站開發(fā)中使用,利用數(shù)據(jù)庫設(shè)計成功地實現(xiàn)了日英文雙語網(wǎng)站的開發(fā),實際使用證明其性能良好、維護(hù)方便。采用這一設(shè)計模式,模擬實現(xiàn)了中英文雙語網(wǎng)站的設(shè)計與開發(fā),與日英雙語網(wǎng)站開發(fā)類似,存在同一內(nèi)容中英文文字長短差異較大、部分英文頁面存在顯示內(nèi)容不完整的現(xiàn)象,只能通過鼠標(biāo)移上去才能瀏覽完整內(nèi)容。這一問題還有待尋找一種更好的方法來克服,以求美觀和內(nèi)容完全顯示。
參考文獻(xiàn)
[1] 舒詠平,王偉瑋.缺憾的自主傳播——自主品牌網(wǎng)站英文版的實證分析[J].現(xiàn)代傳播(中國傳媒大學(xué)學(xué)報),2010(6):117-118.
[2] 張亞娟,付輝,王學(xué)春.基于動態(tài)技術(shù)的多語言網(wǎng)站研究與設(shè)計[J].現(xiàn)代計算機(jī)(專業(yè)版),2010(3):128-130.
[3] 肖治國.基于J2EE的內(nèi)容管理系統(tǒng)的研究與開發(fā)[D]. 北京:中國航天第二研究院,2008.
[4] Liu Dongfei, Su Bi. Research in identification and purification of the bilingual web page[C]. International Colloquium on Computing, Communication, Control, and Management.USA:ISECS Press, 2008: 576-579.
[5] 陳偉.雙語平行網(wǎng)頁挖掘系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程,2009(7):2678-269.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。