原创 MTK环境中如何新增语言

2009-10-12 13:28 4211 6 6 分类: 工程师职场

vendor\font\MTK\official\project\plutommi\content\src\MainLcd240X320\FontRes.c //以lcd为 240X320 为例.
plutommi\Customer\CustResource\PLUTO_MMI\MMI_features_switchPLUTO.h
plutommi\mmi\Inc\MMI_features.h


以下以简体中文为例
1. 编译开关 :
     __MMI_LANG_SM_CHINESE__ 在 plutommi\mmi\Inc\MMI_features.h 中定义.(07A以前的版本plutommi\mmi\Inc\MMI_features_switch.h中自己定义,)
    CFG_MMI_LANG_SM_CHINESE 在 plutommi\Customer\CustResource\PLUTO_MMI\MMI_features_switchPLUTO.h 中定义.(07A以前的版本没有该文件)
    #define CFG_MMI_LANG_SM_CHINESE (__ON__)  //有简体中文
    #define CFG_MMI_LANG_SM_CHINESE (__OFF__)  //没有简体中文
 注:
     有些语言不带有zi输入法,在将其编译开关改成 (__ON__) 时, 要将相应的zi输入法关掉
 简体中文zi输入法为 #define CFG_MMI_ZI_SM_CHINESE (__AUTO__) //开 (__ON__), 关(__OFF__), 自动(__AUTO__)



2. 添加字库文件包含
  #if defined(__MMI_LANG_SM_CHINESE__) //要将系统本身 __MMI_LANG_SM_CHINESE__ 的使用处删掉.
   #include "L_Chinese_Font_16.h"
   #include "L_Chinese_Font_20.h"
   #include "L_Chinese_Font_24.h"
  #endif
 注:要将字模文件放在 plutommi\Customer\CustResource 下.



3. 系统语言总数的增加
  const U16 mtk_gMaxDeployedLangs //是当前系统的语言总数
  如果添加系统本身支持的语言,mtk_gMaxDeployedLangs 本身不需要任何改动,
  如果增加新的语言,需要将该值 + 1 .


4. 定义每种字体信息
  #if defined(__MMI_LANG_SM_CHINESE__)


  const RangeData GBK_CH_RangeData[3641]={ // 编码段信息数组
  {63,63},         // 第一个编码段
  {164,164},         // 第二个编码段
   .
   .
   .
  {65507,65507},
  {65509,65509},
  };


  const RangeDetails GBK_CH_RangeInfo={ // 总体编码段信息
  3641,         // 编码段个数
  GBK_CH_RangeData      // 编码段信息数组地址
  };


  sCustFontData Chinese_Font_Small = { // 某种字体信息
  16, 16, 14,2,1, 32, 500,    // 字体高、字体宽、不明,不明,是否等宽、每个字模字节数、最大字符数
  (U8*)NULL,
(U32*)NULL, (U8*)GBK_16_Data,
(U32*)GBK_16_RangeOffset, // 每个字符宽度表、数据地址、字模数据、每个字模在数据中的偏移(本行内容通常在字模数据.h
即L_Chinese_Font_16.h中定义)
  {
  {FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
  {0, 0},
  {0, 0},
  {FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
  {0, 0},
  {0, 0}
  },          // 当被设置成某个字体时,支持艺术字的类型
  &GBK_CH_RangeInfo};      // 总体编码段信息


  注: (1) sCustFontData 在07以前,以后和6235的版本中都有所改变,具体内容根据自己环境设定.
   (2) Chinese_Font_Small.pFontType 所支持的字体类型数与 pluto_ch_standardFamily.nTotalFonts 相等.


  #endif


5. 定义所有字体信息
  #if defined(__MMI_LANG_SM_CHINESE__)
  sFontFamily
pluto_ch_standardFamily =
{6,{&Chinese_Font_Small,&Chinese_Font_Medium,&Chinese_Font_Medium,
&Chinese_Font_Small,&Chinese_Font_Medium,&Chinese_Font_Medium}};
  //字体个数、每种字体信息地址
  #endif



6. 添加语言信息
  在 const sLanguageDetails mtk_gLanguageArray[MAX_LANGUAGES] 中添加


  #if defined(__MMI_LANG_SM_CHINESE__)
  {
  {(char)0x80,(char)0x7B,(char)0x53,(char)0x4F,(char)0x2D,(char)0x4E,(char)0x87,(char)0x65,(char)0x00,(char)0x00},// 本语言名称
   "*#0086#", // 用来切换语言的方法
    0,
   { &pluto_ch_standardFamily },// 本语言所有字体信息
   "zh-CN"
  },
  #endif
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条