加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactos操作系统实现(187)

发布时间:2020-12-15 04:58:31 所属栏目:百科 来源:网络整理
导读:随着全球化的发展,开发软件都是面向多语言的环境。目前大多数程序都是采用不同字体来显示不同语言的办法,那么有没有一种更好的办法,一种字体就可以解决全球语言的显示呢?答案肯定的,它就是采用逻辑字体 MS Shell Dlg 和 MS Shell Dlg2 。比如开发应用程

随着全球化的发展,开发软件都是面向多语言的环境。目前大多数程序都是采用不同字体来显示不同语言的办法,那么有没有一种更好的办法,一种字体就可以解决全球语言的显示呢?答案肯定的,它就是采用逻辑字体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 的字体显示了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读