專利名稱:阿拉伯語、波斯語屏幕顯示菜單的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù),特別涉及屏幕顯示菜單中的文字制作方法。
背景技術(shù):
屏幕顯示菜單即OSD(On Screen Display)是用戶與產(chǎn)品之間的一個不可或缺的重要接口用戶通過OSD的操作完成對顯示類產(chǎn)品的控制,顯示類產(chǎn)品則通過OSD顯示相應(yīng)的信息;所以O(shè)SD中的語言就必須本地化。
開發(fā)OSD語言的過程,首先要為該產(chǎn)品支持的所有語言中包含的字符建立一個字符編碼表,字符表格中包含各個字符的字形,并為每個字符定義一個索引編號,然后將某種OSD語言詞條中的字符用索引編號代替寫入到機芯程序當(dāng)中,OSD顯示時就會將這些索引號所對應(yīng)的字形顯示出來,樣就完成了該語言的OSD制作。但這種方式運用到閃含語系上時就會出現(xiàn)問題,以阿拉伯語為例,該語言雖然只有28個基本的字符,但字符之間的組合不同時,其基本形狀就會發(fā)生變化,甚至變得面目全非,如字符 在其前面加上字符 則為 即 變成了 而 變?yōu)榱?而且其書寫方式從右至左,書寫中字符與字符很多都連成了一片。如“正?!钡陌⒗Z詞條 正因為閃含語系的這些特征,如果按通常的OSD語言做法,以上述阿拉伯語詞條 為例,從右到左組成該詞條的基本字符是 如果我們將這些基本字符的索引號按從右至左的順序?qū)懭氤绦?,那么看到的OSD效果將會成 所以對于阿拉伯語、波斯語這類會變形的字體,大部分機芯都無法直接分解。
以往在OSD中加入閃含語系,變形字符的字形常依靠手工繪制,對每個OSD詞條分解成字符時也只能人工方法拆開,且往往需要懂阿拉伯語的專業(yè)人士的協(xié)助,這一過程不能確保其準(zhǔn)確性,需要耗費大量的時間來反復(fù)確認(rèn),大大延長了產(chǎn)品的開發(fā)周期,不利于產(chǎn)品的移植與維護。
所以,探索出一種通用簡便的方法來完成這類閃含語系的語言添加對加快產(chǎn)品開發(fā)速度、提高產(chǎn)品通用性及市場競爭能力有著極大的促進作用。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,克服現(xiàn)有技術(shù)中制作阿拉伯語、波斯語OSD的變形字形制作復(fù)雜,詞條拆分準(zhǔn)確性不高、耗費時間長的缺點,提供一種通用簡便的方法來完成阿拉伯語的OSD制作。
本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)手段是,阿拉伯語、波斯語OSD的制作方法,包括以下步驟a、生成字符編碼表,導(dǎo)入機芯;b、將阿拉伯語、波斯語詞條從右到左依次進行拆分,判斷字符在詞條中的位置,并根據(jù)字符在詞條中的位置,查找字符索引號;c、判斷該字符是否屬于特殊字符,如是根據(jù)變形規(guī)律改變索引號;e、將字符索引號依次寫入機芯。
所述步驟a中所述字符編碼表包含變形字符的全部字符形狀及對應(yīng)索引碼。
優(yōu)選的,所述步驟a中通過將windows系統(tǒng)中的阿拉伯語、波斯語的字符形狀以及對應(yīng)的Unicode碼導(dǎo)入機芯,直接生成字符編碼表,字符的索引號為該字符的Unicode碼。
優(yōu)選的,所述步驟a中通過將windows系統(tǒng)中的阿拉伯語、波斯語的字符形狀先轉(zhuǎn)化為位圖,再手工為這些字符形狀編寫一個索引號,生成字符編碼表。
所述步驟b中判斷字符在詞條中的位置,判斷方法如下b1、該字符是否為A類字符,若是進入步驟b2,若否進入步驟b5;b2、該字符右邊的字符是否為A類字符,若是進入步驟b3,若否進入步驟b4;b3、該字符左邊的字符是否為C類字符,若是該字符為詞尾字符,若否該字符為詞中字符;b4、該字符左邊的字符是否為C類字符,若是該字符為獨立字符,若否該字符為詞首字符;b5、該字符右邊的字符是否為A類字符,若是該字符為詞尾字符,若否該字符為獨立字符;其中,A類字符表示有4種字形的字符;B類字符表示有2種字形的字符;C類字符表示一種字形的阿拉伯字符如標(biāo)點,以及其它所有字符如英文字符、空格,數(shù)字等。
所述步驟b中所述根據(jù)字符在詞條中的位置,查找字符索引號,方法如下字符為獨立字符,其索引號為該字符的獨立字符對應(yīng)的Unicode碼;字符為詞尾字符,其索引號為該字符的獨立字符對應(yīng)的Unicode碼加1;字符為詞首字符,其索引號為該字符的獨立字符對應(yīng)的Unicode碼加2;字符為詞中字符,其索引號為該字符的獨立字符對應(yīng)的Unicode碼加3。
輸入的詞條由基本字符組成,通過判斷詞條中基本字符的Unicode碼從而確定該字符的獨立字符的Unicode碼。
本發(fā)明的有益效果是,采用本發(fā)明所述的方法能簡便地完成這類閃含語系的語言添加對加快產(chǎn)品開發(fā)速度、提高產(chǎn)品通用性。
以下結(jié)合附圖與實施例對本發(fā)明做進一步說明。
圖1為本發(fā)明的流程;圖2為拆分字符,查找字符索引號的流程;圖3為判斷字符位置,查找字符索引號的具體流程圖。
具體實施例方式
要在OSD添加阿拉伯語、波斯語,在機芯中必須添加兩個資源字符編碼表和詞條拆分后的字符對應(yīng)的索引碼。其中字符編碼表包含阿拉伯語、波斯語基本字符、變形字符形狀及與之對應(yīng)的索引碼。
阿拉伯語、波斯語每個基本字符有4種或2種字形,有4種字形的字符分別有獨立字符、詞尾字符、詞首字符、詞中字符4種形式;有2種字形的字符有獨立字符、詞尾字符這2種形式。其中獨立字符的形狀與基本字符的形狀一致。獨立字符、詞尾字符、詞首字符、詞中字符統(tǒng)稱為變形字符。阿拉伯語、波斯語所有詞條的字符都可由變形字符組成。
如圖1所示,本發(fā)明的流程如下a、生成字符編碼表,導(dǎo)入機芯;b、將阿拉伯語、波斯語詞條從右到左依次進行拆分,判斷字符在詞條中的位置,并根據(jù)字符在詞條中的位置,查找字符索引號;
c、判斷該字符是否屬于特殊字符,如是根據(jù)變形規(guī)律改變索引號;e、將字符索引號依次寫入機芯。
實施例步驟a,在機芯中添加阿拉伯語、波斯語的字符編碼表利用windows系統(tǒng)中能夠正確顯示閃含語系的特點,通過對windows操作系統(tǒng)附帶的“字符映射表”工具進行分析,找到了阿拉伯語及波斯語的字符國際編碼(Unicode碼)。其中在范圍在0X060C-0x06FE的Unicode碼包含有阿拉伯語及波斯語的所有字符;范圍在0XFB56-0XFEFC的Unicode碼包含了阿拉伯語及波斯語的全部變形字符。變形字符為基本字符對應(yīng)全部字形,即獨立字符、詞尾字符、詞首字符、詞中字符。
通?,F(xiàn)有許多機芯的OSD開發(fā)工具都可以直接從操作系統(tǒng)中導(dǎo)入字體,自動生成這些點陣圖形,每個字符的索引碼就是其Unicode碼,直接生成字符編碼表,不再需要手工編碼。
但是也有些機芯開發(fā)工具不夠強大,就提供不了這樣的支持,無法導(dǎo)入這些字符形狀。為此,必須要將windows字體中的Unicode碼或文字對應(yīng)的字符形狀轉(zhuǎn)化成位圖,然后利用機芯的開發(fā)工具就可以直接將位圖導(dǎo)入成為一個字符形狀,再手工為這些字符形狀編寫一個索引號。在導(dǎo)入這些字符形狀時可根據(jù)需要改變字符的字體,風(fēng)格,設(shè)置字符的高度。
步驟b,分析、拆分詞條,確定字符的索引碼利用Excel中的VBA開發(fā)工具實現(xiàn)詞條的拆分,在Excel文件中建立字符信息表,將具體所有的基本及變形的字符、字形種數(shù)、及其變形字符中獨立字符的Unicode碼放在Excel文件中。這些字符的形狀與其在詞條中的位置相關(guān)聯(lián)的,不同的位置有不同的形狀。每個字符最多有4種位置,獨立、詞中、詞尾、詞首。字符在不同位置,其字形也會變化。為表述方便,有4種字形的基本字符稱其為A類字符;有2種字形的基本字符稱其為B類字符;還有一類字符表示一種字形的阿拉伯字符如標(biāo)點,以及其它的所有字符如英文字符、空格,數(shù)字等,稱其為C類字符。字符類別是判斷字符在詞條中位置的重要依據(jù),而判斷C類字符的依據(jù)是能否從字符信息表中找到該字符。
如圖2所示,將需要在OSD中顯示的阿拉伯語、波斯語的詞條中的每個字符的基本字符形式輸入到Excel文件中,字符信息表通過識別該基本字符對應(yīng)的Unicode碼,查找對應(yīng)在字符信息表中該字符的獨立字符所對應(yīng)的Unicode碼,以這個Unicode碼作為該字符索引碼的基礎(chǔ),再通過判斷字符在詞條中的位置確定該字符的索引碼。
如果一個字符前面或后面沒有字母,則看作其前面或后面有C類型的字符,加粗字符為當(dāng)前判斷的字符,這種判斷字符在詞條中位置的方法說明如下①.一個B類字符右邊為一個B類字符或C類字符,即B(B|C)的形式,那么該B類字符為獨立字符。
②.一個B類字符右邊為一個A類字符,即BA的形式,那么該B類字符為詞尾字符。
③.一個A類字符右邊為B類字符或C類字符,且后面沒有C類字符,即(A |B)A(B|C),那么該字符為詞首。
④.一個A類字符右邊為A類字符,且后面為C類字符,即CAA,那么該字符為詞尾字符。
⑤.一個A類字符右邊為B類字符或C類字符,且后面為C類字符,即CA(C|B),那么該字符為獨立字符。
⑥.一個A類字符右邊為A類字符,且后面無C類字符,即(A|B)AA,那么該字符為詞中字符。
如圖3所示,通過判斷字符位置得到該字符索引碼的流程如下從OSD詞條所在的Excel文件中讀取詞條,從右至左分析字符,字符的長度為m_length,設(shè)i=1,PrevPos=1代表右邊的字符是B、C類,PrevPos=0代表左邊的字符是A類。通過判斷字符信息表中字符對應(yīng)的字形總數(shù)來確定字符是A類字符還是B類字符,設(shè)當(dāng)前分析的字符即第i個字符為wChar,從最右邊的字符開始分析。
判斷當(dāng)前分析的字符位置i是否小于或等于m_length,若否則分析完畢;若是則進入下一步;判斷當(dāng)前分析的字符wChar即第i個字符是否在字符信息表中查找得到,若否則wChar為C類字符,該字符的索引號為該字符的Unicode碼;若是則進入下一步;將字符信息表中該字符的獨立字符Unicode碼讀取出,以這個Unicode碼作為該字符索引碼的基礎(chǔ),通過位置判斷確定該字符的索引碼,具體步驟為b1、該字符是否為A類字符,若是進入步驟b2,若否進入步驟b5;b2、該字符右邊的字符是否為A類字符(PrevPos是否為0),若是進入步驟b3,若否進入步驟b4;b3、該字符左邊的字符是否為C類字符,若是該字符為詞尾字符(Position=1),若否該字符為詞中字符(Position=3);b4、該字符左邊的字符是否為C類字符,若是該字符為獨立字符(Position=0),若否該字符為詞首字符(Position=2);b5、該字符右邊的字符是否為A類字符(PrevPos是否為0),若是該字符為詞尾字符(Position=1),若否該字符為獨立字符(Position=3)。
字符處于獨立位置時為獨立字符,該字符的索引碼為該字符的獨立字符所對應(yīng)的Unicode碼;處于詞尾時其索引碼為獨立字符的Unicode碼加1,處于詞首時其索引碼為獨立字符的Unicode碼加2,處于詞中時其索引碼為基本字符Unicode碼加3。
字符wChar的索引碼查找完畢后,將i+1賦值給當(dāng)前字符位置(i=i+1)。
步驟c,判斷該字符是否屬于特殊字符,如是根據(jù)變形規(guī)律改變索引號有幾個特殊的字符,連寫在一起時就變成了新的字符,這幾個新字符Unicode碼為0xFEF5-0xFEFC。利用上6條規(guī)律處理完后,這種變形規(guī)律0xfe82緊隨0xfedf變成0xfef6,0xfe82緊隨0xfee0變成0xfef5;0xfe84緊隨0xfedf變成0xfef8,0xfe84緊隨0xfee0變成0xfef7;0xfe88緊隨0xfee0變成0xfefa,0xfe88緊隨0xfedf變成0xfef9;0xfe8e緊隨0xfee0變成0xfefc,0xfe8e緊隨0xfedf變成0xfefb。
將OSD詞條放置在Excel中,依據(jù)放置于Excel中的“字符信息表”,利用其變形規(guī)律,通過Excel中的二次開發(fā)工具VBA便可編寫出程序,依據(jù)上面①~⑥的規(guī)律使得OSD的詞條拆分開來。拆分完后再依據(jù)上述變形規(guī)律將利用VBA中的Replace函數(shù)就可以將這些特殊的字符替換成一個新的字符。將最終確定的字符Unicode碼導(dǎo)入機芯,便可完成OSD語言的制作。
程序只需稍作改動就可以完成不同機芯之間的移植??梢詫Υ笈康脑~條一次性處理,能方便快捷地在各機芯間移植。而對于其他類型的含OSD顯示產(chǎn)品也有很強的借鑒意義。
權(quán)利要求
1.阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,包括以下步驟a、生成字符編碼表,導(dǎo)入機芯;b、將阿拉伯語、波斯語詞條從右到左依次進行拆分,判斷字符在詞條中的位置,并根據(jù)字符在詞條中的位置,查找字符索引號;c、判斷該字符是否屬于特殊字符,如否進入步驟d;如是根據(jù)變形規(guī)律改變索引號后進入步驟d;d、將字符索引號依次寫入機芯。
2.如權(quán)利要求1所述的阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,步驟a中所述字符編碼表包含變形字符的全部字符形狀及對應(yīng)索引碼。
3.如權(quán)利要求2所述的阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,所述步驟a中通過將windows系統(tǒng)中的阿拉伯語、波斯語的字符形狀及對應(yīng)的Unicode碼導(dǎo)入機芯,直接生成字符編碼表,該字符的Unicode碼為字符的索引號。
4.如權(quán)利要求2所述的阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,所述步驟a中通過將windows系統(tǒng)中的阿拉伯語、波斯語的字符形狀先轉(zhuǎn)化為位圖,再手工為這些字符形狀編寫一個索引號,生成字符編碼表。
5.如權(quán)利要求3或4所述的阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,所述步驟b中判斷字符在詞條中的位置,判斷方法如下b1、該字符是否為A類字符,若是進入步驟b2,若否進入步驟b5;b2、該字符右邊的字符是否為A類字符,若是進入步驟b3,若否進入步驟b4;b3、該字符左邊的字符是否為C類字符,若是該字符為詞尾字符,若否該字符為詞中字符;b4、該字符左邊的字符是否為C類字符,若是該字符為獨立字符,若否該字符為詞首字符;b5、該字符右邊的字符是否為A類字符,若是該字符為詞尾字符,若否該字符為獨立字符;其中,A類字符表示有4種字形的字符;B類字符表示有2種字形的字符;C類字符表示一種字形的阿拉伯字符如標(biāo)點,以及其它所有字符如英文字符、空格、數(shù)字等。
6.如權(quán)利要求5所述的阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,所述步驟b中所述根據(jù)字符在詞條中的位置,查找字符索引號,方法如下字符為獨立字符,其索引號為該獨立字符對應(yīng)的Unicode碼;字符為詞尾字符,其索引號為該字符的獨立字符對應(yīng)的Unicode碼加1;字符為詞首字符,其索引號為該字符的獨立字符對應(yīng)的Unicode碼加2;字符為詞中字符,其索引號為該字符的獨立字符對應(yīng)的Unicode碼加3。
7.如權(quán)利要求6所述的阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,所述詞條由基本字符組成,通過判斷詞條中基本字符的Unicode碼從而查找該字符的獨立字符的Unicode碼。
8.如權(quán)利要求1或7所述的阿拉伯語、波斯語屏幕顯示菜單的制作方法,其特征在于,所述步驟b和c通過Excel中的VBA開發(fā)工具實現(xiàn)。
全文摘要
阿拉伯語、波斯語屏幕顯示菜單的制作方法,涉及計算機技術(shù),特別涉及屏幕顯示菜單中的文字制作方法。本發(fā)明所要解決的技術(shù)問題是,克服現(xiàn)有技術(shù)中制作阿拉伯語、波斯語屏幕顯示菜單時變形字形制作復(fù)雜,詞條拆分準(zhǔn)確性不高、耗費時間長的缺點。本發(fā)明采用的技術(shù)方案,包括以下步驟a.生成字符編碼表,導(dǎo)入機芯;b.將阿拉伯語、波斯語詞條從右到左依次進行拆分,判斷字符在詞條中的位置,并根據(jù)字符在詞條中的位置,查找字符索引號;c.判斷該字符是否屬于特殊字符,如是根據(jù)變形規(guī)律改變索引號;d.將字符索引號依次寫入機芯。本發(fā)明的有益效果是,采用本發(fā)明所述的方法能簡便地完成這類閃含語系的語言添加對加快產(chǎn)品開發(fā)速度、提高產(chǎn)品通用性。
文檔編號G06F9/44GK1831765SQ200610020790
公開日2006年9月13日 申請日期2006年4月25日 優(yōu)先權(quán)日2006年4月25日
發(fā)明者周建波, 郭偉, 范曉霞, 王海兵, 黨春楊, 江劍鋒 申請人:四川長虹電器股份有限公司