新聞中心

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

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

        作者: 時間:2012-03-12 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/149456.htm

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

        1. 字庫的建立:

        最終都將輸出給用戶,因此,必須為內容指定字庫。本方案中采用UNICODE編碼字庫。字庫文件采用二進制存儲,按UNICODE編碼順序排列存儲點陣數據,點陣大小為24*24。

        2. 文本資源文件:

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

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

        3. 對文本資源文件進行描述的數據結構

          typedef STruct _txtres_fileheader {

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

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

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

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

          } APPteXT_FILEHEADER;

        4. 文本映射表結構

          typedef struct _txtres_txtmap {

          WORD wTextIndes; //當前文本的索引值

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

          LONG lUnicodeOffset; //從文件頭到當前文本Unicode編碼存儲位置的偏移量

          } TXTRES_TXTMAP;

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

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

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

        b. 隨后,對圖片進行分割。如按照24*24進行分割便可得到特定的24*24大小的字庫內容。

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

        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 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 运城市| 鄂伦春自治旗| 宁武县| 泰来县| 三门县| 花莲县| 金山区| 沙坪坝区| 内丘县| 云安县| 开阳县| 申扎县| 葵青区| 娱乐| 汪清县| 泰安市| 依安县| 平谷区| 三都| 罗田县| 安义县| 若羌县| 龙陵县| 金溪县| 棋牌| 海丰县| 苏尼特左旗| 溧水县| 甘洛县| 新密市| 吴桥县| 博爱县| 太白县| 三门峡市| 虹口区| 十堰市| 平凉市| 开鲁县| 安溪县| 仪征市| 长乐市|