|
为了将FlightGear用上本地系统,我们小组对其进行汉化处理
1.菜单界面等汉化:FG的菜单使用plib库实现,plib使用了自己的txf字体,该字体对西方字库有优势,在菜单上使用了点阵字库,仿照该技术,我们使用了汉字点阵字库,考虑到界面大小,使用16位点阵字库HZK16,该字库及使用方法网上很多。具体工作是对plib的text输出部分修改,使之可以读出双字节内容。但经过试验,发现不能使用MultiByte方式,因为FG在传送字符串时,如果不是英文或数字的话,会采用UTF8方式传送,这会导致靠前区的汉字无法显示,因此,需要把菜单的xml文件改成UTF编码,注意使用无BOM的UTF8方式,可以使用Editplus软件来修改成UTF8方式。然后修改plib的字体显示函数,对utf8汉字编码进行译码,具体就是先对UTF8转成Unicode,在用系统函数把Unicode转成GB码,根据GB码到HZK中定位,后面读出点阵信息。显示部分就不用管了,plib自己做了。
2.txf字体,FG中的splash screen及部分显示部分使用了txf字体,网上有ttf2txf软件,并有部分代码,我们现在是做了一个微软雅黑的txf字库,替换掉了系统的默认字库,实现了汉字支持。
3.服务器, FGMS目前只有Linux系统,为了能在Windows下运行,需要对其进行移植,好在很多代码都是支持双系统的,主要对其Linux特有的函数进行替换,然后对main.cxx函数进行分析,移植核心代码到windows中,我做了一个对话框的MFC程序,启动服务用的servant.loop函数,为防止程序锁死,需要新建一个线程来执行loop,然后就OK了。
4.下一步目标:扩展服务器功能,目前服务器只实现了信息转发功能,需要对其进行扩展,加上客户控制,信息发送,综合显示等功能,再就是开发自己的飞机及场景,适应中国区的使用。 |
|