一種軟件系統(tǒng)國際化資源的處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息處理領(lǐng)域,尤其涉及一種軟件系統(tǒng)國際化資源的處理方法。
【背景技術(shù)】
[0002]隨著經(jīng)濟(jì)全球化程度的日益提高,軟件行業(yè)逐漸采用國際統(tǒng)一的標(biāo)準(zhǔn)。在軟件系統(tǒng)的設(shè)計(jì)和開發(fā)過程中,如何實(shí)現(xiàn)軟件國際化,使軟件系統(tǒng)能夠處理多種語言和文化習(xí)俗,滿足不同地區(qū)、不同客戶的需求,成為軟件行業(yè)亟待解決的一個(gè)問題。
[0003]目前,軟件系統(tǒng)國際化一般都是通過properties文件存儲(chǔ)不同語言的國際化資源,properties文件存儲(chǔ)在服務(wù)器上。當(dāng)客戶端發(fā)起請(qǐng)求時(shí),服務(wù)端根據(jù)客戶端請(qǐng)求中的語言類型參數(shù),提供對(duì)應(yīng)的國家化資源文件給客戶端下載;客戶端將下載的資源恩見放在緩存中根據(jù)版本號(hào)判斷是否需要更新資源文件。這種方法存在以下弊端=(I)Properties文件的數(shù)據(jù)格式為鍵-值對(duì),與普通文本文件的內(nèi)容格式差異很大,不易閱讀,也不方便直接快速地查詢、新增、修改、刪除文件中的內(nèi)容,對(duì)沒有程序開發(fā)經(jīng)驗(yàn)的人員來說,很難按照需求快速、準(zhǔn)確地修改properties文件內(nèi)容;(2)服務(wù)端的錯(cuò)誤信息、驗(yàn)證信息以及日志信息一般都存放字properties文件中,而客戶端腳本里面的國際化處理一般都放在客戶端的腳本定義里,服務(wù)端和客戶端是兩套不同的國際化實(shí)現(xiàn),從而存在國際化資源內(nèi)容不能重用和重復(fù)定義、增加工作量以及后期維護(hù)難登問題;(3)資源文件的版本號(hào)和整個(gè)軟件的版本號(hào)綁定,當(dāng)軟件版本升級(jí)時(shí),即使properties文件內(nèi)容沒有任何改變,所有客戶端也會(huì)從服務(wù)端重新下載資源文件,占用較多的網(wǎng)絡(luò)寬帶,影響用戶的體驗(yàn);(4)國際化資源文件存儲(chǔ)在硬盤上,若需要備份,需以手動(dòng)的方式或者編寫比較復(fù)雜的程序完成。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決的問題是提供方法一種軟件系統(tǒng)國際化資源的處理方法,不僅提供可視化的界面操作資源文件,自動(dòng)備份國際化資源內(nèi)容,還實(shí)現(xiàn)服務(wù)端和客戶端國際化信息的共享和互用。
[0005]為了解決上述問題,本發(fā)明提供了一種軟件系統(tǒng)國際化資源的處理方法,包括如下步驟:
[0006](I)客戶端向服務(wù)端發(fā)起處理所述國際化資源的請(qǐng)求;
[0007](2)所述服務(wù)端接收所述請(qǐng)求,并將所述國際化資源的文件在所述服務(wù)端中的哈希值與所述國際化資源的文件在所述客戶端的哈希值進(jìn)行比較;
[0008](3)若所述國際化資源文件在所述客戶端和服務(wù)端中的哈希值不相等,則從所述服務(wù)端中下載所述國際化資源文件到所述客戶端;若所述國際化資源文件在所述客戶端和服務(wù)端中的哈希值相等,則從所述客戶端的緩存中加載所述國際化資源文件;
[0009](4)所述客戶端將所述下載的國際化資源文件進(jìn)行解析,并緩存在所述客戶端。
[0010]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,客戶端向服務(wù)端發(fā)起請(qǐng)求之前,確定所述國際化資源的哈希值,其過程為:
[0011](I)建立資源數(shù)據(jù)表,所述資源數(shù)據(jù)表用于存儲(chǔ)所述國際化資源的內(nèi)容;
[0012](2)將所述資源數(shù)據(jù)表中的所有所述國際化資源的內(nèi)容進(jìn)行可視化;
[0013](3)按照語言分類規(guī)則,查詢所述請(qǐng)求的國際化資源內(nèi)容,并將其寫入資源文件;
[0014](4)計(jì)算所述資源文件的哈希值,并將所述哈希值存入數(shù)據(jù)庫中。
[0015]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,所述國際化資源的內(nèi)容為語言類別、資源代碼以及國際化資源值。
[0016]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,對(duì)所述資源數(shù)據(jù)表中的所有所述國際化資源的內(nèi)容進(jìn)行可視化的過程為:通過數(shù)據(jù)庫查詢語句查詢出所述資源數(shù)據(jù)表中所有的內(nèi)容;將所述所有內(nèi)容與可視化界面上的元素綁定,并在所述可視化界面上顯示所述所有內(nèi)容。
[0017]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,所述哈希值為MD5哈希值。
[0018]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,根據(jù)定義的規(guī)則,定時(shí)備份所述國際化資源的資源文件內(nèi)容。
[0019]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,所述服務(wù)端接收所述請(qǐng)求時(shí),讀取所述國際化資源的資源文件內(nèi)容,并緩存在所述服務(wù)端中,以及用國際化資源文件中的內(nèi)容替換所述服務(wù)端中對(duì)應(yīng)的需國際化的內(nèi)容。
[0020]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,所述服務(wù)端中需國際化的內(nèi)容為所述服務(wù)端中的日志信息,提示信息、警告信息、錯(cuò)誤信息以及所述服務(wù)端頁面中的字符串常量。
[0021]上述所述一種軟件系統(tǒng)國際化資源的處理方法,其中,根據(jù)所述解析的國際化資源的內(nèi)容,所述客戶端替換所述客戶端界面中需國際化顯示的內(nèi)容。
[0022]與現(xiàn)有技術(shù)相比,本發(fā)明通過比較客戶端和服務(wù)端的國際化資源文件的哈希值,判斷國際化資源文件是否有更新,避免客戶端重復(fù)下載國際化資源,釋放了網(wǎng)絡(luò)寬帶,提升了用戶的體驗(yàn);
[0023]進(jìn)一步地,引入資源數(shù)據(jù)表,保存了語言類別、資源代碼和國際化資源值,并采用可視化界面,方便新增、修改、刪除和檢索國際化資源文件內(nèi)容,方便用戶快速地配置國際化內(nèi)容;
[0024]進(jìn)一步地,服務(wù)端和客戶端共享相同的資源文件,達(dá)到服務(wù)端和客戶端資源文件的統(tǒng)一定義、公用,減少重復(fù)工作,節(jié)省維護(hù)成本;
[0025]進(jìn)一步地,采用數(shù)據(jù)庫方式存儲(chǔ)國際化資源文件內(nèi)容,通過數(shù)據(jù)庫的策略,定期自動(dòng)備份。
【附圖說明】
[0026]圖1所示為本發(fā)明實(shí)施例一種軟件系統(tǒng)國際化資源的處理方法的流程示意圖;
[0027]圖2所示為本發(fā)明實(shí)施例確定國際化資源的哈希值的流程示意圖。
【具體實(shí)施方式】
[0028]在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣,因此本發(fā)明不受下面公開的具體實(shí)施的限制。
[0029]其次,本發(fā)明利用示意圖進(jìn)行詳細(xì)描述,在詳述本發(fā)明實(shí)施例時(shí),為便于說明,所述示意圖只是實(shí)例,其在此不應(yīng)限制本發(fā)明保護(hù)的范圍。
[0030]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明一種軟件系統(tǒng)國際化資源的處理方法進(jìn)行詳細(xì)地描述。本發(fā)明實(shí)施例軟件系統(tǒng)國際化資源處理方法如圖1所示,首先,執(zhí)行步驟Si,客戶端向服務(wù)端發(fā)起處理所述國際化資源的請(qǐng)求。其中,所述客戶端向所述服務(wù)端發(fā)起請(qǐng)求之前,確定所述國際化資源的哈希值,如圖2所示,首先,執(zhí)行步驟S201,建立資源數(shù)據(jù)表,所述資源數(shù)據(jù)表用于存儲(chǔ)所述國際化資源的內(nèi)容。其中,所述國際化資源的內(nèi)容為語言類另O、資源代碼以及國際化資源值。具體地,在本實(shí)施例中,將所述語言類別、資源代碼以及國際化資源值進(jìn)行一一對(duì)應(yīng),比如:語言類別為zh-CN,資源代號(hào)和資源值分別為Country.China和中國;語言類別為en_US,資源代號(hào)和資源值分別為Country.China和China ;語言類別為zh-CN,資源代號(hào)和資源值分別為Country.America和美國;語言類別為en_US,資源代號(hào)和資源值分別為Country.America和America。
[0031]接著,執(zhí)行步驟S202,將所述資源數(shù)據(jù)表中的所有所述國際化資源的內(nèi)容進(jìn)行可視化。具體地,對(duì)所述資源數(shù)據(jù)表中的所有所述國際化資源的內(nèi)容進(jìn)行可視化的過程為:通過數(shù)據(jù)庫查詢語句查詢出所述資源數(shù)據(jù)表中所有的內(nèi)容;將所述所有內(nèi)容與可視化界面上的元素綁定,并在所述可視化界面上顯示所述所有內(nèi)容。在本實(shí)施例中,通過數(shù)據(jù)庫的SQL (Structure Query Language,結(jié)構(gòu)化查詢語言)查詢出所述步驟S201中所定義的資源數(shù)據(jù)表中所有的內(nèi)容,將所述查詢中的資源數(shù)據(jù)表中的所有內(nèi)容和可視化界面上的元素(資源代號(hào),資源值,語言類別)綁定,在所述可視化界面上展現(xiàn)出在所述資源數(shù)據(jù)表中查詢出的內(nèi)容。然后,對(duì)所述界面上表格中的每條數(shù)據(jù),根據(jù)實(shí)際的需要,點(diǎn)擊編輯按鈕和刪除按鈕,編輯和刪除展現(xiàn)在所述界面上展現(xiàn)的資源數(shù)據(jù)表中的數(shù)據(jù)。所述可視化界面上的表格的右邊設(shè)置有三個(gè)文本輸入框,在所述文本輸入框中可以輸入用戶所需要錄入的資源代號(hào)、資源值和語言類別,點(diǎn)擊保存按鈕,將上述輸入在文本輸入框中的數(shù)據(jù)保存到資源數(shù)據(jù)表中;點(diǎn)擊重置按鈕,清空所述文本輸入框中的所有的值。
[0032]接著,執(zhí)行步驟S203,按照語言分類規(guī)則,查詢所述請(qǐng)求的國際化資源內(nèi)容,并將其寫入資源文件。具體地,在本實(shí)施例中,運(yùn)用結(jié)構(gòu)化查詢語言語句,按照語言類別分組查詢出所述請(qǐng)求的國際化資源內(nèi)容。然后,通過C#操作文件的輸入輸出接口的方法,將上述查詢出的結(jié)果(所述結(jié)果的格式為“資源代號(hào)=資源值”)寫入資源文件。所述資源文件為一種文本文件,按照鍵-值對(duì)的方式存儲(chǔ)內(nèi)容,后綴名為.properties,文件命名方式為“語言.properties”。在本實(shí)施例中,基于上述的資源數(shù)據(jù)表中的內(nèi)容,導(dǎo)出生成“en_US.properties” 和 “zh_CN.properties” 兩個(gè)資源文件。
[0033]接著,執(zhí)行步驟S204,計(jì)算所述資源文件的哈希值,并將所述哈希值存入數(shù)據(jù)庫中。其中,所