reactos操作系统实现(187)

前端之家收集整理的这篇文章主要介绍了reactos操作系统实现(187)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

随着全球化的发展,开发软件都是面向多语言的环境。目前大多数程序都是采用不同字体来显示不同语言的办法,那么有没有一种更好的办法,一种字体就可以解决全球语言的显示呢?答案肯定的,它就是采用逻辑字体MS Shell DlgMS Shell Dlg2。比如开发应用程序时,就看到在资源里可以设置MS Shell DlgMS Shell Dlg2作为字体,并且可以设置不同的语言标识号,这样一个应用程序里就可以包括N种语言的资源,当这个应用程序运行在不同本地化设置地区时,操作系统就可以根据当前语言标识号去查找应用程序里的资源,如果找到一致的语言标识时就可以使用这种资源来显示。这时操作系统,就会使用注册表里标记MS Shell DlgMS Shell Dlg2相对应的字体文件作为应用程序里的文字显示出来。ReactOS里就是使用这种方式来显示中文界面的。可以看到ReactOS注册表里如下:

70 [Font.CJK.Reg]

71 HKLM,"SOFTWARE/Microsoft/Windows NT/CurrentVersion/SysFontSubstitutes","Arial",0x00000000,"Liberation Sans"

72 HKLM,"Courier","FreeMono"

73 HKLM,"Courier New","FreeMono"

74 HKLM,"Times New Roman","Liberation Serif"

75 HKLM,"Tahoma","Droid Sans Fallback"

76 HKLM,"MS Sans Serif","Tahoma"

77 HKLM,"MS Shell Dlg","Droid Sans Fallback"

78 HKLM,"MS Shell Dlg 2","Droid Sans Fallback"

79 HKLM,"MS UI Gothic","Droid Sans Fallback"

80 HKLM,"MS UI Gothic 2","Droid Sans Fallback"

81 HKLM,"Helv","Tahoma"

在这里设置的字体为Droid Sans Fallback,是否很眼熟呢?是的,它就是Googleandroid字体,在小小的3M大小的文件包括CJK基本的字体显示,缺省的字在文泉驿里也添加了不少,如果要显示多的字,就需要替换为它了。当在ReactOS编译过程制作安装包时,就会从reactos/boot/bootdata/packages/reactos.dff里拷贝字体到ISO文件里。在安装时可以选择这种字体,就是修改下面这段代码

62 MUI_SUBFONT CJKFonts[] =

63 {

64 { L"Arial", L"Liberation Sans" },

65 { L"Courier", L"FreeMono" },

66 { L"Courier New",

67 { L"Times New Roman",L"Liberation Serif" },

68 { L"Tahoma", L"Droid Sans Fallback" },

69 { L"MS Sans Serif", L"Tahoma" },

70 { L"MS Shell Dlg",

71 { L"MS Shell Dlg 2",

72 { L"MS UI Gothic",

73 { L"MS UI Gothic 2",

74 { L"Helv",

75 { NULL,NULL }

76 };

168 {L"00000404",L"950", L"950",L"10008",L"Chinese (Taiwan)", L"886",enUSPages,enUSErrorEntries,enUSStrings,CJKFonts, zhTWLayouts },

169 {L"00000804",L"936", L"936",L"Chinese (PRC)", L"86", enUSPages, zhCNLayouts },

170 {L"00000C04",L"Chinese (Hong Kong S.A.R.)", L"1", zhHKLayouts },

通过上面的修改,就可以让 ReactOS 支持 CJK 的字体显示了。 原文链接:https://www.f2er.com/react/308333.html

猜你在找的React相关文章