MTK字库添加

MTK字库添加
2010年06月21日 星期一 08:11 P.M.

1、MMI_featuresPLUTO.h (plutommi/customer/custresource/pluto_mmi)
#define __MMI_LANG_SM_CHINESE__ //定义宏开关

2、FontRes.c (plutommi/customer/lcdresource/mainlcd240x320)
<1>
#ifdef __MMI_16X16_CHINESE_FONT__
#include "L_Pluto_16x16_ch.h" //引入字库头文件
#else

<2>
const RangeData XXX_RangeData[a]={。。。}

<3>
const U16 mtk_gMaxDeployedLangs = 1;

<4>
#if defined(__MMI_LANG_SM_CHINESE__)
sFontFamily pluto_ch_standardFamily = {6,{&Pluto_ch, &Pluto_ch, &Pluto_ch, &Pluto_ch, &Pluto_ch,&gVirtualKeyboardFont}};
#endif

<5>
#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},//Language Name
"*#0086#",//SSC string name
0,
{ &pluto_ch_standardFamily },
"zh"
},
#endif

附注:<2> 中对应字体的长,宽,高,偏离值等,
<3> 对应添加的语言的种类数,
<4> 定义了界面中具体模块的字体,如gVirtualKeyboardFont对应与虚拟键盘中字体的显示问题
<5> (mtk_gLanguageArray)中对应要添加的语言以及其在手机语言列表中的显示顺序(注意各种语言的顺序)

我们通常遇到的问题是在真机中有些地方的字体显示有问题(如虚拟键盘,日历等,还未探索清楚),每个语言都有相对应的语系(如pluto_en_standardFamily pluto_ch_standardFamily),当(虚拟键盘)有问题时,首先定位到有问题的语言(),寻找其中利用的语系中的相应模块(virtual_keyboard_latin),对其进行修改(可参考其他显示正确的相近工程中的相应模块拷贝修改(virtual_keyboard_latin),缺少相应字库时添加字库并在fontres.c中添加)

MTK多国语言相关经验总结
一、移植多国语言
移植多国语言主要牵涉到对mmi_features.h(整个工程的宏控定义文件)、fontres.c(字体资源文件)的修改,并添加相应的字库文件。

1、语言宏控的修改
在mmi_features.h文件中,用于控制各种语言的开关是类似于__MMI_LANG_ENGLISH__的宏,打开该宏,那么工程就支持该种语言。有时侯,需要同时打开与该语言相关的一些宏,比如阿拉伯语的编码模式、汉语的编码模式。(当然这个编码模式一般都是设置好了的,但也有些许例外,自己看着办)

2、字库文件的添加
在mtk中,字库主要是两个文件,一个是*.h文件,还有一个是对应的fontres.c文件。
①字库的获取
有两个方式:1)直接去网上找对应语言的字库文件。2)自己利用mtk公司所提供的MCT 6.0工具来制作字库。不过mct6.0制作字库需要.bdf的点阵字库源文件,而网上能找的基本上都是.ttf的矢量字库文件,这就存在一个需要将ttf文件转换成bdf文件的第三方软件,并且转换的好坏将直接影响到最终用mct6.0生成的字库文件(目前我们用的是otf2bdf3,免费的,因此效果不是很好)。

②字库的使用。首先我们查看下mtk版本中自带的英文字库L_1_Pluto_Large.h是存放在什么位置的,然后将我们的*.h也放入相同的文件夹下;接下来我们需要将我们的fontres.c文件与mtk中原有的fontres.c文件合并为一个fontres.c文件:合并的方法就是参考原有的fontres.c文件中英文字库的代码分布方式,将我们的fontres.c文件里面的代码利用语言宏控拷入mtk原有的fontres.c文件中。

3、修改默认显示语言
这个只需要修改C:/NEOTEL26_06B_W07.20.MP.V21_MMI/custom/app/NEOTEL26_06B_BB这个目录下面的nvram_cust_pack.c文件(不同的版本,该文件所处位置不一样,这里是6225的版本)。在该文件里面有如下一处:
0x00,
这个0x00值指的就是设置语言界面某种语言所处的位置。如果我们想修改默认显示语言为简体中文,而设置语言界面中文在第6的位置,那么我们将0x00这个值改为0x05即可。

v1.11 (08/14/2012) 1. 增加注册年限选择。 v1.10 (06/26/2012) 1. 精简字库检索表。 2. 增加 GBK 字库输出。 3. 增加一种点阵数据存储格式(只存有效像素数据--not fixed, 不支持MBCS编码格式的中日韩), 对泰文,缅甸文等特殊语种显示非常便捷。 v1.09 (06/15/2012) 1. 增加输出 C 语言(数组) 字体格式。 V1.08 (05/17/2012) 1. 增加了两个版本(免费和试用版) 免费版 只对 16点阵有效。 试用版 对所有点阵有效,但是会缺部分字符。 2. 增加热键功能。 3. 修改了多国语言生成.h文件时,start 与 end 不匹配的bug。 4. 完善文档《GuiTool 使用说明》, 增加更多图解说明。 文档下载地址: http://ishare.iask.sina.com.cn/f/24472766.html v1.07 (05/02/2012) 1. 修改注册方式(改为文件)。 2. 增加bdf格式编码过滤功能,主要是为了支持 MTK 手机点阵字库。 3. 增加xp控件属性。 4. 增加扫描模式图解。 5. 修改了 bdf 2 bin 的一个bug。(选择输出位图时,会输出n个位图文件) 6. 修改了 BDF 文件中当字符显示宽度为0,存位图(所有字符存一张图片)失败的错误。 v1.06 (04/10/2012) 1. 增加系统字体支持,操作更简便,快捷。 枚举所有已安装系统字体,直接选择即可。 v1.05 (03/24/2012) Fontmaker(点阵字库) 1. 修正了字符对齐问题。 2. 增加了单个字符或多个字符输出成位图文件设定。 3. 完善了阿拉伯文字库(unicode 字库有效)。 4. 增加自定义字符功能(unicode 字库有效)。 Multi-language(多国语言) 1. 增加输出编码格式 (mbcs, utf16-lb, utf8)设置 2. 增加数组格式输出。 Image Manager(图像管理) 1. 该页为新增功能,支持图片图像的数据转换。主要应用在做产品logo图片方面。 V1.04 (07/16/2011) 1. 增加了一个字符串mbcs2unicode(内码转统一码)的功能。 (支持转:U16-LE, U16-BE, UTF8) V1.03 (07/05/2011) 1. 修改了 Example 中点阵字库解析源码,更加便于移植。(基本做到只需修改font_file.c 即可) 2. 修改了内码(MBCS)字库点阵信息读取的一个错误。 3. 增加了多语言支持(简中,英文),还有待完善。。。 V1.02 (07/01/2011) 1. FontMaker V2.03 a. 增加字符宽高比调节(HorR & VerR) b. 增加对*.ttc 字库的支持。 c. 增加bdf(*.bdf)文件格式转Simple Unicode编码格式的bin文件。 V1.01 (06/29/2011) 1. FontMaker V2.02 a. 增加了 Simple Unicode功能。(适合小字库) b. 增加了 “扫描方向及反显”设置。 2. Multi-Language V1.01 a. 修改了除 office 2000 外,其它不能支持的问题。 V1.00: (2007-2011) 1. 继承 FontMaker V2.01 的所有功能。 2. 增加了一个 Multi-Languge V1.00 的打包转换功能。 FontMaker 基本功能: 1.支持所有 windows 字符集:CP932(日文Shift-JIS)CP936(简体中文GBK)CP949(韩文)CP950(繁体中文 Big5),CP874(泰文),CP1250(中欧)CP1251(西里尔文),CP1252(西欧--"拉丁文I"),CP1253(希腊文), CP1254(土耳其文),CP1255(希伯来文),CP1256(阿拉伯文),CP1257(波罗的海文),CP1258(越南) 2.支持非等宽字库。 3.支持BIN,TXT,BMP,BDF 文件输出。 4.支持unicode字库输出,即可以做到在一个窗口中同时显示多国语言(文字) 5.支持单个字符编辑,预览(所见即所得)。 6.支持字库文件和输出路径记忆功能. 7. 支持从bdf格式转换自定义字库(bin文件)格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值