專利名稱:一種嵌入式系統(tǒng)的多語言顯示方法
技術(shù)領(lǐng)域:
本發(fā)明公開了在嵌入式系統(tǒng)領(lǐng)域的一種新型多語言顯示方法,,尤其涉及通訊、電子行業(yè)、智能控制等嵌入式系統(tǒng)領(lǐng)域的多語言人機(jī)界面顯示方法。
背景技術(shù):
當(dāng)前,產(chǎn)品國際化已成大勢所趨,特別是隨著通訊產(chǎn)品這一高技術(shù)含量產(chǎn)品出口量的增加,迫切需要能夠低成本、高效地開發(fā)出能夠支持多種語言的操作界面。對于這種操作界面的開發(fā),一般的思路是開發(fā)兩套功能相同,版本不同的軟件,這樣一來,就大大增加了軟件的開發(fā)和維護(hù)的工作量,相當(dāng)于增加了成本。也有的廠家開發(fā)了中英文合一的版本,但是軟件內(nèi)部實現(xiàn)起來比較羅嗦,經(jīng)常有這樣的語句if(language==CHINESE)DisChinese(″實時數(shù)據(jù)″);elseDisEnglish(″Real Data″);上面的方法對于一些簡單的多語言界面還可以支持,但對于復(fù)雜的界面,則增加了軟件設(shè)計的工作量,同時也浪費了寶貴的程序空間。而對于嵌入式系統(tǒng)來說程序空間、數(shù)據(jù)空間是很寶貴的,盡量用低成本的材料設(shè)計出高質(zhì)量的產(chǎn)品是每個工程師永無止境的追求。
本發(fā)明正是為了克服上述現(xiàn)有技術(shù)的缺陷,而提出一種嵌入式系統(tǒng)的多語言顯示方法。
發(fā)明內(nèi)容
本發(fā)明所解決的技術(shù)問題是實現(xiàn)嵌入式系統(tǒng)的多語言顯示操作界面。
為了達(dá)到上述目的,本發(fā)明提供一種嵌入式系統(tǒng)的多語言顯示方法,通過查詢多語言字符的對照表,根據(jù)相關(guān)定義信息打印不同語言字符,該方法包括以下步驟建立字符串對照表;將所述字符串存儲在存儲單元中;定義所述字符串的打印函數(shù);以及調(diào)用所述打印函數(shù),顯示字符串。
采用本發(fā)明提供的測試方法對多語言顯示方法,可以對嵌入式系統(tǒng)的界面實現(xiàn)多種語言顯示,函數(shù)調(diào)用簡單,通用性強(qiáng),容易實現(xiàn)標(biāo)準(zhǔn)化定義,減少了數(shù)據(jù)冗余量,提高了程序運(yùn)行和編制效率,節(jié)省了軟件開發(fā)人力和成本。
下面將結(jié)合實施例參照附圖進(jìn)行詳細(xì)說明,以便對本發(fā)明的目的、特征及優(yōu)點有更深入的理解。
圖1為本發(fā)明的主流程圖;圖2為本發(fā)明的打印函數(shù)定義流程圖;圖3為本發(fā)明的字符匹配結(jié)構(gòu)示意圖。
具體實施例方式
如圖1所示,本發(fā)明的主流程的具體步驟說明如下首先,建立字符串對照表,步驟101;該對照表的結(jié)構(gòu)參見后面的表1所示;將所述字符串存儲在存儲單元中,步驟102,具體來說,該步驟的任務(wù)是把所有要顯示的語言界面(如中文和英文界面)上的字符串都存儲在存儲單元(如ROM)中,在這種ROM存儲單元中,可以根據(jù)實際情況選擇放在程序空間中還是數(shù)據(jù)空間中,并且分成不同語言的字符串組如中文菜單字符串組和英文菜單字符串組,在兩個組內(nèi)中文意義同英文意義相同的兩個字符串之間的間距是固定相同的;定義所述字符串的打印函數(shù),步驟103,詳細(xì)流程請參見圖2;以及調(diào)用所述打印函數(shù),按照需求在界面上顯示不同語言的字符串,步驟104。
如圖2所示,為本發(fā)明的打印函數(shù)定義流程圖,首先給對照表不同語言字符串組設(shè)置不同的地址偏移量,步驟201;通過指針在對照表中獲得要顯示的字符串的地址,步驟202;根據(jù)用戶輸入的參數(shù),判斷當(dāng)前指針是否需要自動加相應(yīng)地址偏移量,步驟203;如果需要,進(jìn)行步驟204,對字符串指針加上相應(yīng)的地址偏移量,獲得所要顯示的語言的字符串的地址,即根據(jù)選擇的語言,將字符串指針加上不同的偏移量舉例來說,如果語言選擇中文,則選擇中文的偏移量;如果語言選擇英文,則選擇英文的偏移量;最后,調(diào)用不同的函數(shù)來顯示每個要顯示的字符,即根據(jù)選擇的語言,調(diào)用不同的函數(shù)來顯示界面上一個個的字符,步驟205。舉例來說由于在中文字符串中也會有英文字符串和數(shù)字,所以在顯示中文字符串時,應(yīng)該根據(jù)中文區(qū)位碼的特征,將中文和英文ASCII碼區(qū)分出來,單個顯示中文和英文ASCII碼。如圖3所示,為字符匹配結(jié)構(gòu)示意圖。
下面結(jié)合實例對技術(shù)方案的實施作進(jìn)一步的詳細(xì)描述,具體的函數(shù)我們采用C語言來說明首先,我們假定要顯示的界面的語言為中文和英文兩種,中文為256個漢字,采用16*16的字模,那么在一個漢字占用32+2=34個字節(jié),256個漢字占用256*34+2=7978個字節(jié)。英文為128個,包括一些數(shù)字、符號等,采用16*8的字模,那么一個英文的字模占用16個字節(jié),128個英文的字模占用空間128*16=2048個字節(jié),那么總的字模占用的空間為7978+2048=10026個字節(jié)。
其次,我們定義一個函數(shù)PrinStr()。
<pre listing-type="program-listing"> Void PrintStr(char*DispStr,unsigned char IfAutoAddOffset) /*DispStr是一個字符串。 IfAutoAddOffset-是否自動加偏移量 AUTO_ADD_OFFSET-自動加偏移量 NO_OFFSET-------------不加偏移量*/ PrintStr函數(shù)如下 { unsigned char i; unsigned char qu_code,wei_code; unsigned char*pStr; pStr=DispStr; if(IfAutoAddOffset==AUTO_ADD_OFFSET)//是否自動加偏移量 { //根據(jù)語言的類型,選取不同語言類型的字符串。 if(Language==CHINESE) { pStr=DispStr+ChineseOffset; } else if(Language==ENGLISH) { pStr=DispStr+EnglishOffset; } else if(Language==FRENCH)<dp n="d3"/> { pStr=DispStr+FranchOffset; }}//由于不同的語言需要不同的字符,所以不同的語言要調(diào)用不同的函數(shù)來顯示字符串。if(Language==CHINESE){ while(*pStr) { i++; qu_code=*pStr++; wei_code=*pStr++; if((qu_code>0XA0)&amp;&amp;(wei_code>0XA0))//若是漢字,顯示漢字 { PrintHZ(qu_code,wei_code);//打印單個漢字 } else { PrintEnglish(qu_code);//若是英文字母,顯示ASCII碼 str--; } } PrintHz(pStr);}else if(Language==ENGLISH)//是英文顯示英文{ while(*pStr) { PrintEnglish(*pStr);//打印單個英文 }}else if(Language==RUSSIAN)∥是俄文調(diào)用打印俄文的函數(shù){ while(*pStr)<dp n="d4"/> { PrintRussian(*pStr);//打印單個俄文 } } }</pre>最后,在需要顯示字符串的地方,調(diào)用顯示字符串函數(shù)。
假設(shè)中文字符串組和英文字符串組相差10240即相差10K,那么上面提到的PrintStr函數(shù)中的ChineseOffset=0;EnglishOffset=10240;在中文語言的選擇下,Language=CHINESE,例如打印“實時數(shù)據(jù)”,PrinStr(StrRealData,AUTO_ADD_OFFSET);//StrRealData是指向“實時數(shù)//據(jù)”的指針就會打印“實時數(shù)據(jù)”。
在英文語言的選擇下,Language=ENGLISH;例如打印“RealData”,PrintStr(StrRealData,AUTO_ADD_OFFSET);//StrRealData+EnglishiOffset//是指向“RealData”的指針就會打印“RealData”。
以上所述,僅是本發(fā)明的實施方式舉例說明,不應(yīng)被視為是對本發(fā)明范圍的限制,而且本發(fā)明所主張的權(quán)利要求范圍也并不局限于此,凡熟悉此技藝的人士,依據(jù)本發(fā)明所揭露的技術(shù)內(nèi)容,可輕易思及的等效變化,均應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種嵌入式系統(tǒng)的多語言顯示方法,通過查詢多語言字符的對照表,根據(jù)相關(guān)信息打印不同語言字符,該方法包括以下步驟建立字符對照表;將所述字符串存儲在存儲單元中;定義打印函數(shù);及調(diào)用所述打印函數(shù),顯示字符串。
2.如權(quán)利要求1所述的嵌入式系統(tǒng)的多語言顯示方法,其中所述定義打印函數(shù)的步驟,還包括以下步驟給對照表不同語言字符串組設(shè)置不同的地址偏移量;通過指針在對照表中獲得要顯示的字符串的地址;根據(jù)用戶輸入的參數(shù),判斷當(dāng)前指針是否需要自動加相應(yīng)地址偏移量;如果需要,對字符串指針加上相應(yīng)的地址偏移量,獲得所要顯示的語言的字符串的地址;最后,調(diào)用不同的函數(shù)來顯示每個要顯示的字符。
3.如權(quán)利要求1所述的嵌入式系統(tǒng)的多語言顯示方法,其中所述字符為多種語言的字符或字符串。
4.如權(quán)利要求1所述的嵌入式系統(tǒng)的多語言顯示方法,其中所述存儲單元可為只讀存儲器ROM。
5.如權(quán)利要求4所述的嵌入式系統(tǒng)的多語言顯示方法,其中所述存儲單元可為只讀存儲器ROM的程序空間或數(shù)據(jù)空間。
6.如權(quán)利要求1所述的嵌入式系統(tǒng)的多語言顯示方法,當(dāng)顯示中文字符或字符串時,根據(jù)中文區(qū)位碼的特征,將中文和英文ASCII碼區(qū)分出來,單個顯示中文和英文ASCII碼。
7.如權(quán)利要求6所述的嵌入式系統(tǒng)的多語言顯示方法,其中中文采用16*16的字模。
8.如權(quán)利要求6所述的嵌入式系統(tǒng)的多語言顯示方法,其中英文采用16*8的字模。
全文摘要
本發(fā)明提供一種嵌入式系統(tǒng)的多語言顯示方法,通過查詢多語言字符的對照表,并且在屏幕上根據(jù)相關(guān)定義信息打印不同語言的字符,該方法包括以下步驟建立字符串對照表;將所述字符串存儲在存儲單元中;定義所述字符串的打印函數(shù);以及調(diào)用所述打印函數(shù),顯示字符串。采用本發(fā)明提供的測試方法對多語言顯示方法,可以對嵌入式系統(tǒng)的界面實現(xiàn)多種語言顯示,函數(shù)調(diào)用簡單,通用性強(qiáng),容易實現(xiàn)標(biāo)準(zhǔn)化定義,減少了數(shù)據(jù)冗余量,提高了程序運(yùn)行和編制效率,節(jié)省了軟件開發(fā)人力和成本。
文檔編號G06F17/22GK1567296SQ0311340
公開日2005年1月19日 申請日期2003年5月7日 優(yōu)先權(quán)日2003年5月7日
發(fā)明者蘇光明 申請人:中興通訊股份有限公司