新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)多語言文本解決方案

嵌入式系統(tǒng)多語言文本解決方案

作者: 時(shí)間:2012-03-12 來源:網(wǎng)絡(luò) 收藏

開發(fā)中,某些產(chǎn)品可能會(huì)需要跨區(qū)域銷售,因此,通常會(huì)有多的需求。對(duì)于這一類多需求的解決,在產(chǎn)品中有其特殊的地方。以下,給出一種可能的。

本文引用地址:http://www.butianyuan.cn/article/149456.htm

該方案的核心思想是為所有建立索引,通過索引可以得到特定的文字編碼,隨后通過該編碼獲得字庫資源,并進(jìn)行輸出。在這過程中,唯一需要注意的是對(duì)于特殊的某些語言,如阿拉伯語等的處理。(阿拉伯語字符在連寫時(shí),其形狀會(huì)發(fā)生變化。)

1. 字庫的建立:

最終都將輸出給用戶,因此,必須為內(nèi)容指定字庫。本方案中采用UNICODE編碼字庫。字庫文件采用二進(jìn)制存儲(chǔ),按UNICODE編碼順序排列存儲(chǔ)點(diǎn)陣數(shù)據(jù),點(diǎn)陣大小為24*24。

2. 文本資源文件:

文本資源文件描述了特定語言的文本內(nèi)容,以及相關(guān)的字符編碼。例如對(duì)于Chinese.cfg文件來說,就保留了一個(gè)索引為1的文本,該文本內(nèi)容為“確認(rèn)”;相應(yīng)對(duì)于English.cfg文件來說,必然會(huì)同樣有一個(gè)索引為1的文本,該文本內(nèi)容為“CONfirm”。通過對(duì)所有的文本建立索引并生成文本資源文件,就為最終的解決掃清了障礙。

文本資源文件采用二進(jìn)制存儲(chǔ)。文件頭部16個(gè)字節(jié)為描述性信息,之后是文本映射表,緊跟映射表之后為文本的實(shí)際Unicode編碼。

3. 對(duì)文本資源文件進(jìn)行描述的數(shù)據(jù)結(jié)構(gòu)

  typedef STruct _txtres_fileheader {

  LONG lFileType; //文件類型,0x2E434647='.CFG'

  LONG lVersionNum; //適用版本,0x56313032='V102'

  LONG lMapOffset; //偏移量,文件頭到文本映射區(qū)的偏移量

  LONG lDataOffset; //偏移量,文件頭到文本數(shù)據(jù)區(qū)的偏移量

  } APPteXT_FILEHEADER;

4. 文本映射表結(jié)構(gòu)

  typedef struct _txtres_txtmap {

  WORD wTextIndes; //當(dāng)前文本的索引值

  WORD wTextSize; //當(dāng)前文本的Unicode編碼所占用的字節(jié)數(shù)

  LONG lUnicodeOffset; //從文件頭到當(dāng)前文本Unicode編碼存儲(chǔ)位置的偏移量

  } TXTRES_TXTMAP;

5. 特殊語言(阿拉伯語等)的解決

特殊語言在連寫時(shí)可能發(fā)生變化,因此采用固定字庫可能無法解決該問題。針對(duì)這種狀況可以直接新增一個(gè)自定義字庫。以阿拉伯語為例,該字庫的處理過程如下:

a. 首先將阿拉伯的文本內(nèi)容按預(yù)定格式(例如24*24)在windows上顯示輸出,并將內(nèi)容保存為圖片格式。此時(shí)圖片中便為連寫內(nèi)容。

b. 隨后,對(duì)圖片進(jìn)行分割。如按照24*24進(jìn)行分割便可得到特定的24*24大小的字庫內(nèi)容。

c. 最后,將原先的UNICODE編碼轉(zhuǎn)為按照之前生成的字庫來編碼。

d. 之后在程序代碼中就可利用自定義字庫與自定義編碼來顯示阿拉伯語。

最后附上部分示例代碼。

  //定義文本配置文件路徑

  #define TXT_FILE_ENGLISH config/English.cfg

  #define TXT_FILE_CHINASIM config/ChinaSim.cfg

  #define TXT_FILE_CHINATRA config/ChinaTra.cfg

  #define TXT_FILE_KOREAN config/Korean.cfg

  #define TXT_FILE_JAPANESE config/Japanese.cfg

  #define TXT_FILE_SPANISH config/Spanish.cfg

  #define TXT_FILE_RUSSIAN config/Russian.cfg

  #define TXT_FILE_THAI config/Thai.cfg

  #define TXT_FILE_GERMAN config/German.cfg

  #define TXT_FILE_FRANCE config/France.cfg

  #define TXT_FILE_ITALY config/Italy.cfg

  #define TXT_FILE_ARABIA config/Arabia.cfg

  #define TXT_FILE_PORTUGAL config/Portugal.cfg

  #define TXT_FILE_HINDI config/Hindi.cfg

  #define TXT_FILE_TURKISH config/Turkish.cfg

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 4 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉