一種實(shí)現(xiàn)國際化軟件的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種實(shí)現(xiàn)國際化軟件的方法和系統(tǒng)。
【背景技術(shù)】
[0002]國際化是設(shè)計(jì)和制造適應(yīng)不同區(qū)域要求產(chǎn)品的一種方式。目前軟件系統(tǒng)的國際化趨勢越來越重要,許多軟件系統(tǒng)都要求支持各種語言。但是,在國際化的設(shè)計(jì)中,通常是針對每種語言將軟件系統(tǒng)進(jìn)行分流開發(fā),需要投入太大成本,且后期維護(hù)困難;而且,各種語言版本的軟件系統(tǒng)使用風(fēng)格不一樣,也會造成多種不同語言版本的內(nèi)容,甚至業(yè)務(wù)邏輯都會出現(xiàn)不同,使軟件系統(tǒng)的通用性和擴(kuò)展性都變得很差。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明實(shí)施例期望提供一種實(shí)現(xiàn)國際化軟件的方法和系統(tǒng),不但能滿足多語言版本之間風(fēng)格和邏輯有差異的要求,而且能提高研發(fā)效率,降低維護(hù)成本,具有良好的擴(kuò)展性和靈活度。
[0004]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0005]第一方面,本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)國際化軟件的方法,所述方法包括:
[0006]接收用戶界面(UI, User Interface)層傳入的用戶請求,所述用戶請求包括請求參數(shù);
[0007]獲取語言標(biāo)識,根據(jù)所述語言標(biāo)識對所述請求參數(shù)進(jìn)行譯碼,得到譯碼后的參數(shù);
[0008]將所述譯碼后的參數(shù)傳輸至業(yè)務(wù)邏輯層;
[0009]接收所述業(yè)務(wù)邏輯層根據(jù)所述譯碼后的參數(shù)進(jìn)行業(yè)務(wù)邏輯處理后返回的數(shù)據(jù)對象;
[0010]根據(jù)所述語言標(biāo)識對所述數(shù)據(jù)對象進(jìn)行譯碼,得到譯碼后的數(shù)據(jù)對象;
[0011]將所述譯碼后的數(shù)據(jù)對象傳輸至所述π層。
[0012]根據(jù)第一種可能的實(shí)現(xiàn)方式,結(jié)合第一方面,所述根據(jù)所述語言標(biāo)識對所述請求參數(shù)進(jìn)行譯碼,得到譯碼后的參數(shù),包括:
[0013]通過反射編程方法,獲取所述請求參數(shù)的屬性;其中,所述請求參數(shù)的屬性包括所述請求參數(shù)的資源標(biāo)識;
[0014]根據(jù)所述語言標(biāo)識以及所述請求參數(shù)的資源標(biāo)識查詢第一映射關(guān)系,獲取所述請求參數(shù)的資源信息,并將所述請求參數(shù)的資源信息作為譯碼后的參數(shù);其中,所述第一映射關(guān)系包括所述語言標(biāo)識、所述請求參數(shù)的資源標(biāo)識和所述請求參數(shù)的資源信息之間的對應(yīng)關(guān)系。
[0015]根據(jù)第二種可能的實(shí)現(xiàn)方式,結(jié)合第一方面,將所述數(shù)據(jù)對象根據(jù)所述語言標(biāo)識進(jìn)行譯碼,得到譯碼后的數(shù)據(jù)對象,包括:
[0016]通過反射編程方法,獲取所述數(shù)據(jù)對象的屬性;其中,所述數(shù)據(jù)對象的屬性包括所述數(shù)據(jù)對象的資源標(biāo)識;
[0017]根據(jù)所述語言標(biāo)識以及所述數(shù)據(jù)對象的資源標(biāo)識查詢第二映射關(guān)系,獲取所述數(shù)據(jù)對象的資源信息,并將所述數(shù)據(jù)對象的資源信息作為所述譯碼后的數(shù)據(jù)對象;其中,所述第二映射關(guān)系包括所述語言標(biāo)識、所述數(shù)據(jù)對象的資源標(biāo)識和所述數(shù)據(jù)對象的資源信息之間的對應(yīng)關(guān)系。
[0018]根據(jù)第三種可能的實(shí)現(xiàn)方式,結(jié)合第一方面,所述方法還包括:
[0019]所述Π層接收到所述譯碼后的數(shù)據(jù)對象之后,將所述譯碼后的數(shù)據(jù)對象進(jìn)行展
/Jn ο
[0020]第二方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)可讀存儲介質(zhì),所述存儲介質(zhì)包括一組指令,當(dāng)執(zhí)行所述指令時(shí),引起至少一個處理器執(zhí)行與第一方面中任一項(xiàng)所述方法對應(yīng)的操作。
[0021]第三方面,本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)國際化軟件的系統(tǒng),所述系統(tǒng)包括位于UI層和業(yè)務(wù)邏輯層之間的代理層所述代理層包括:接收單元、獲取單元、譯碼單元和傳輸單元;其中,
[0022]所述接收單元,用于接收Π層傳入的用戶請求,所述用戶請求中包括請求參數(shù);還用于接收所述業(yè)務(wù)邏輯層根據(jù)譯碼后的參數(shù)進(jìn)行業(yè)務(wù)邏輯處理后返回的數(shù)據(jù)對象;
[0023]所述獲取單元,用于獲取語言標(biāo)識;
[0024]所述譯碼單元,用于根據(jù)所述語言標(biāo)識對所述請求參數(shù)進(jìn)行譯碼,得到譯碼后的參數(shù);還用于根據(jù)所述語言標(biāo)識對所述數(shù)據(jù)對象進(jìn)行譯碼,得到譯碼后的數(shù)據(jù)對象;
[0025]所述傳輸單元,用于將所述譯碼后的參數(shù)傳輸至業(yè)務(wù)邏輯層;還用于將所述譯碼后的數(shù)據(jù)對象傳輸至所述Π層。
[0026]根據(jù)第一種可能的實(shí)現(xiàn)方式,結(jié)合第三方面,所述譯碼單元用于,通過反射編程方法,獲取所述請求參數(shù)的屬性;其中,所述請求參數(shù)的屬性包括所述請求參數(shù)的資源標(biāo)識;
[0027]根據(jù)所述語言標(biāo)識以及所述請求參數(shù)的資源標(biāo)識查詢第一映射關(guān)系,獲取所述請求參數(shù)的資源信息,并將所述請求參數(shù)的資源信息作為譯碼后的參數(shù);其中,所述第一映射關(guān)系包括所述語言標(biāo)識、所述請求參數(shù)的資源標(biāo)識和所述請求參數(shù)的資源信息之間的對應(yīng)關(guān)系。
[0028]根據(jù)第二種可能的實(shí)現(xiàn)方式,結(jié)合第三方面,所述譯碼單元用于,通過反射編程方法,獲取所述數(shù)據(jù)對象的屬性;其中,所述數(shù)據(jù)對象的屬性包括所述數(shù)據(jù)對象的資源標(biāo)識;
[0029]根據(jù)所述語言標(biāo)識以及所述數(shù)據(jù)對象的資源標(biāo)識查詢第二映射關(guān)系,獲取所述數(shù)據(jù)對象的資源信息,并將所述數(shù)據(jù)對象的資源信息作為所述譯碼后的數(shù)據(jù)對象;其中,所述第二映射關(guān)系包括所述語言標(biāo)識、所述數(shù)據(jù)對象的資源標(biāo)識和所述數(shù)據(jù)對象的資源信息之間的對應(yīng)關(guān)系。
[0030]根據(jù)第三種可能的實(shí)現(xiàn)方式,結(jié)合第三方面,所述系統(tǒng)還包括:
[0031]展示單元,位于所述Π層,用于接收到所述譯碼后的數(shù)據(jù)對象之后,將所述譯碼后的數(shù)據(jù)對象進(jìn)行展示。
[0032]本發(fā)明實(shí)施例所提供的一種實(shí)現(xiàn)國際化軟件的方法和系統(tǒng),在軟件系統(tǒng)的UI層和業(yè)務(wù)邏輯層之間設(shè)置代理層,將Π層向業(yè)務(wù)邏輯層傳入的參數(shù)、以及業(yè)務(wù)邏輯層向Π層返回的數(shù)據(jù)對象進(jìn)行統(tǒng)一的譯碼處理,不但能滿足多語言版本之間風(fēng)格和邏輯有差異的要求,而且能提高研發(fā)效率,降低維護(hù)成本,具有良好的擴(kuò)展性、通用性和靈活度。
【附圖說明】
[0033]圖1為軟件系統(tǒng)三層架構(gòu)模型的示意圖;
[0034]圖2為本發(fā)明實(shí)施例提出的軟件系統(tǒng)的架構(gòu)模型示意圖;
[0035]圖3為本發(fā)明實(shí)施例提出的實(shí)現(xiàn)國際化軟件的方法流程示意圖;
[0036]圖4為本發(fā)明實(shí)施例提供的映射關(guān)系不意圖;
[0037]圖5為本發(fā)明實(shí)施例提供的一種實(shí)現(xiàn)國際化軟件的系統(tǒng)的結(jié)構(gòu)示意圖;
[0038]圖6為本發(fā)明實(shí)施例提供的另一種實(shí)現(xiàn)國際化軟件的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
[0040]在軟件系統(tǒng)架構(gòu)中,通常使用如圖1所示的三層架構(gòu)模型,從上到下依包括:UI層11,業(yè)務(wù)邏輯層12和數(shù)據(jù)訪問層13 ;其中,
[0041]Π層11,主要是指與用戶交互的界面,用于接收用戶輸入的數(shù)據(jù)和顯示處理后用戶需要的數(shù)據(jù);
[0042]業(yè)務(wù)邏輯層12,為Π層11和數(shù)據(jù)訪問層13之間的橋梁,用于實(shí)現(xiàn)業(yè)務(wù)邏輯;所述業(yè)務(wù)邏輯可以包含:驗(yàn)證、計(jì)算、業(yè)務(wù)規(guī)則等等;
[0043]數(shù)據(jù)訪問層13,用于直接操作數(shù)據(jù)庫,主要實(shí)現(xiàn)對數(shù)據(jù)的增、刪、改、查等更新操作;可以理解的,數(shù)據(jù)訪問層13不僅將存儲在數(shù)據(jù)庫中的數(shù)據(jù)提交給業(yè)務(wù)邏輯層12,同時(shí)也將業(yè)務(wù)邏輯層12處理后的數(shù)據(jù)保存到數(shù)據(jù)庫中。
[0044]在圖1中,這三層下方的圓柱體可以表示各種類型的數(shù)據(jù)庫,例如:微軟(MS,Microsoft)的結(jié)構(gòu)化查詢語言(SQL, Structured Query Language)數(shù)據(jù)庫(DB,Database)和甲骨文(Oracle)數(shù)據(jù)庫等,各層的具體作用為本領(lǐng)域技術(shù)人員的常規(guī)技術(shù)手段,在此不再贅述。
[0045]三層架構(gòu)模型可以實(shí)現(xiàn)軟件系統(tǒng)高內(nèi)聚低耦合的要求,當(dāng)面對軟件國際化的要求時(shí),本發(fā)明實(shí)施例在如圖1所示架構(gòu)的基礎(chǔ)上,在π層11和業(yè)務(wù)邏輯層12之間增加設(shè)置了代理層14,如圖2所示,代理層14可以用于將Π層11向業(yè)務(wù)邏輯層12傳入的參數(shù)、以及業(yè)務(wù)邏輯層12向Π層11返回的數(shù)據(jù)對象進(jìn)行統(tǒng)一的譯碼處理。
[0046]參見圖3,為本發(fā)明實(shí)施例提供的一種實(shí)現(xiàn)國際化軟件的方法,結(jié)合圖2所示的軟件架構(gòu)進(jìn)行說明,該方法可以包括:
[0047]S301:接收Π層傳入的用戶請求;
[0048]示例性的,當(dāng)軟件的UI層接收到用戶發(fā)送的用戶請求時(shí),例如:對控件的操作、對文本框的輸