多国语言字库原理

多国语言字库原理

多国言字原理

一、        移植多国
移植多国言主要牵涉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,         /* NVRAM_SETTING_LANG,//17 */
0x00指的就是言界面某种语言所的位置。如果我想修改默认显为简体中文,而言界面中文在第6的位置,那0x000x05即可。

二、        移植zi入法
1
、打zi开关
       1
)文件:..//make//ZTENC26_07B_GPRS.mak
修改入法MMI_ZI;
         INPUT_METHOD = MMI_ZI                # Input methods: NONE, MMI_T9, or MMI_ZI

       2
)在mmi_features.h里面打zi入法宏开关,形如__MMI_ZI_PRC_ENG
LISH__


2、添加zi
 ..//zi  
 Zi
添加到工程根目.
3
、添加zi编译选项
 
工程文件要最makefile编译成目文件,个模编译路径都写入编译中。
 
..//make//zi  包含文件:
zi.def
zi.inc
zi.lis
zi.pth

另外几个模用到了zi的文件,因此必zi文件目:zi//include 包含到下面几个文件中,否则编译时报错不能打xxx.h文件。(个是07b版本中修改遇到编译错误后再加上去的,其他版本也可以似地修改)
make//gdi_arm//gdi_arm.inc
make//mmiresource//mmiresource.inc
make//vendorapp//vendorapp.inc
make//plutommi//conn_app.inc
make//plutommi//inet_app.inc
make//plutommi//media_app.inc
make//plutommi//mmi_framework.inc
4
、添加zi入法文件
 
make//option.mak文件里面,MMI_ZI,找到似如下代
 ifeq ($(strip $(INPUT_METHOD)),MMI_ZI)
   CUSTOM_COMMINC  +=      
vendor//InputMethod//ZI//project//$(strip $(INPUT_METHOD_BASE))//v6_official//inc
   COMPOBJS          +=
vendor//InputMethod//ZI//project//$(strip $(INPUT_METHOD_BASE))//v6_official//lib//zi8clib.a
CUS_REL_OBJ_LIST          +=
vendor//InputMethod//ZI//project//$(strip $(INPUT_METHOD_BASE))//v6_official//lib//zi8clib.a
   CUS_INPUTMETHOD_BASE         =
vendor//InputMethod//ZI//project//$(strip $(INPUT_METHOD_BASE))//v6_official
 endif

 
从上面的脚本中可以看到,zi入法的文件的存放位置:
 C://ZTENC26_07B_V4//vendor//InputMethod//ZI//project//plutommi//v6_official//lib
 
文件存放位置:
 C://ZTENC26_07B_V4//vendor//InputMethod//ZI//project//plutommi//v6_official//inc

 
因此我们开始添加zi入法的文件和文件到上面的目,如果目不存在,自己建。其中,文件放在inc文件下,.lib.a文件放在lib文件下。

(当然,版本不同,文件和文件存放的路径也不同,到参照上面的步骤就是了,上面的展示是依据07b的。)

三、        移植手写hanwang入法
1
、打hanwang开关
 
文件:..//make//ZTENC26_07B_GPRS.mak
修改手写入法MMI_HANWANG;
 HAND_WRITING    = MMI_HANWANG # MMI_HANWANG,  MMI_PENPOWER
2
、添加hanwang
 ..//hanwang  
 hanwang
添加到工程根目.
3
、添加hanwang编译选项
 
工程文件要最makefile编译成目文件,个模编译路径都写入编译中。
 
..//make//hanwang  包含文件:
hanwang.def
hanwang.inc
hanwang.lis
hanwang.pth

4
、添加hanwang入法文件
 
make//option.mak文件里面,MMI_HANWANG,找到似如下代
 ifeq ($(strip $(HAND_WRITING)),MMI_HANWANG)
   COM_DEFS    += __MMI_HANWANG__
   COMPLIST    += hanwang
   CUS_REL_SRC_COMP += hanwang
   COMPOBJS    += vendor//handwriting//hanwang//v1_official//lib//hw.a
   CUS_REL_OBJ_LIST    += vendor//handwriting//hanwang//v1_official//lib//hw.a
   CUS_REL_OBJ_LIST    += vendor//handwriting//hanwang//v1_official//lib//hw.lib
   CUS_REL_OBJ_LIST    += vendor//handwriting//hanwang//v1_official//lib//hw.dll
   CUS_REL_OBJ_LIST    += vendor//handwriting//hanwang//v1_official//lib//hws.lib
   CUSTOM_COMMINC  +=        vendor//handwriting//hanwang//v1_official//inc
 endif
 
从上面的脚本中可以看到,hanwang入法的文件的存放位置:
 C://ZTENC26_07B_V4//vendor// handwriting//hanwang//v1_official//lib
 
文件存放位置:
 C://ZTENC26_07B_V4//vendor// handwriting//hanwang//v1_official//inc

 
因此我们开始添加hanwang入法的文件和文件到上面的目,如果目不存在,自己建。其中,文件放在inc文件下,.lib.a文件放在lib文件下。

(当然,版本不同,文件和文件存放的路径也不同,到参照上面的步骤就是了,上面的展示是依据07b的。)

四、打MTK带输入法支持
mmi_features.h里面打形如__MMI_MULTITAP_THAI__的宏开关每种语言都对应着一个宏开关,根据需要打

五、添加不同入法的虚拟键盘
1
、添加虚拟键盘
       
这种文件比特殊,目前我没有去研究自己怎制作这种文件,我用的字文件来源主要是07b上面的虚拟键盘(因07b上面虚拟键盘很全)。同,我也试过直接用我自己生成的普通字果虚拟键盘示出方框,明字不支持。
       
按照07b上的代模式,直接把对应于虚拟键盘的所有代贝过来就是。
2
、添加虚拟键盘布局
       
个主要是要去修改Wgui_virtual_keyboard.c文件,里面有写好的键盘布局模式,可以参考其代自己写其他言的虚拟键盘 局模式。另外我也可以比07b的代,将对应的虚拟键盘布局代贝过来即可。注意,加漏了,个文件里面有好几都需要添加代的,自己搜言宏 控来加代就是了。
3
、虚拟键盘示与
       
拟键盘示与藏主要体入法的切方面,因此需要修改代的地方在个叫EditorPen.c里面。主要修改的函数是 mmi_pen_editor_vk_show mmi_pen_editor_set_virtual_keyboard_by_input_mode。大家按照函数里面已写好的代模式很容易就加 上其他言虚拟键盘的支持代的。

六、入界面底部条中间输入法提示符的
       
个主要用的是EditorPen.c文件中的mmi_pen_editor_set_CSK_content函数来行文字、图标置以及制的。如果入界面底部条中入法提示符的示出现问题,大家调试该函数就是了。

七、入界面左上角入法提示符的
       
个主要用的是wgui_categories_inputs.c文件中的wgui_get_inputbox_information_ic
on
函数和wgui_redraw_input_information_bar函数,具体的步骤哪个地方出问题了,就大家用模器打断点

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值