WINCE6.0支持阿塞拜疆语(Azeri或Azerbaijani)

WINCE6.0支持阿塞拜疆语(AzeriAzerbaijani)

 

客户要求在WINCE6.0上能够正常显示阿塞拜疆语,但PB6.0下面没有阿塞拜疆语自己的字库,只能在系统工程属性界面上找到阿塞拜疆语的,如下图:


图1

然后选择clean sysgen重新编译系统,到网上找了一段阿塞拜疆语“我不明白-Mənsizi başa düşürəm (düşmürəm)”,把此内容拷贝到新建的txt文件中,选择保存的时候弹出下面的对话框:

WINCE6.0支持阿塞拜疆语(Azeri或Azerbaijani)_第1张图片

图2

选择取消,弹出下面的对话框:

WINCE6.0支持阿塞拜疆语(Azeri或Azerbaijani)_第2张图片

图3

选择Unicode编码格式保存,然后把此文件拷贝到编译后的CE6.0系统中,但实际显示的是:


图4

发现"ə"出来是个"□"字,其他的显示都正常。为什么会这样呢?经过上网搜查一些资料和网友的交流,可能是因为WINCE下的字库不是很全引起的,需要用windows下对应的字库。先到WIN7下C:/windows/Fonts下查看字体文件,找到下面的字体文件

WINCE6.0支持阿塞拜疆语(Azeri或Azerbaijani)_第3张图片

图5

http://zh.wikipedia.org/wiki/%E9%98%BF%E5%A1%9E%E6%8B%9C%E7%96%86%E8%AF%AD链接、链接http://en.wikipedia.org/wiki/Schwa_(Cyrillic)和图1,见下图:


图6

可知从1991年后阿塞拜疆语主要采用拉丁文字母,再结合图5,决定采用xp系统下的Arial字体文件来替换掉WINCE6.0下的。Xp系统下的arial.tff文件比CE6.0下大很多,见下图:


图7

也要确保系统工程上选上Arial字体:


图8

然后把xp下的arial.tff改名为arial_1_30.ttf,并替换掉F:\WINCE600\PUBLIC\COMMON\OAK\FILES下同名文件,并且在platform.reg中增加下面的注册表项:

IF LOCALE==042c

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]

     "Tahoma"="\\Windows\\arial.ttf,Arial"

     "Arial"="\\Windows\\arial.ttf,Arial"

     "Courier New"="\\Windows\\arial.ttf,Arial"

     "Times New Roman"="\\Windows\\arial.ttf,Arial"

     "Symbol"="\\Windows\\arial.ttf,Arial"

     

 [HKEY_LOCAL_MACHINE\SYSTEM\GDI\SYSFNT]

       "Nm"="Arial"

 [HKEY_LOCAL_MACHINE\SYSTEM\GWE\Menu\BarFnt]

       "Nm"="Arial"

 [HKEY_LOCAL_MACHINE\SYSTEM\GWE\Menu\PopFnt]

       "Nm"="Arial"

 [HKEY_LOCAL_MACHINE\SYSTEM\GWE\OOMFnt]

       "Nm"="Arial"

ENDIF

这里需要注意的是042c而不是042C(注意大小写),通过msdn 相关主题Language Identifiers and Locales (Windows Embedded CE 6.0)找到下面的链接

http://msdn.microsoft.com/en-US/library/ee491651(v=winembedded.60).aspx

从而知道阿塞拜疆语(拉丁文)的LOCALE是0x042c,然后重新clean sysgen编译重新测试OK。

 

到此我们验证了的确是CE6.0下字库不全的问题引起,在PB6.0组件列表中还可以看到Arial(subset 1_08),结合图7可知arial_1_08.ttf只比xp下的arial.ttf少了58KB,改为选择

Arial(subset 1_08):

WINCE6.0支持阿塞拜疆语(Azeri或Azerbaijani)_第4张图片

图9

但"ə"还是显示为"□"字,图5的calibria和cambria是否正常支持阿塞拜疆语的显示,就留给大家验证了。

你可能感兴趣的:(WINCE6.0支持阿塞拜疆语(Azeri或Azerbaijani))