Fontmap.dat——关联语言种类和字体文件
From Stellarium
有了中文字体文件后,还要告诉 Stellarium 这个字体文件要和哪种语言关联。这就需要编辑文件 Stellarium安装目录\data\fontmap.dat。你可以使用任何支持 UTF-8 编码的纯文本编辑器编辑它。这个文件看起来大概是下面的样子:
# This file defines what font Stellarium should use for a given locale # # Format is: locale font_file font_scale fixed_width_font_file fixed_width_font_scale # Font files must be ttf format, located in the data directory. # Absolute path can be given by starting file adress with a '/' # # Default font # default DejaVuSans.ttf 1 DejaVuSansMono.ttf 1 # # Overrides per locale # zh_HK ukai.ttf 1.2 ukai.ttf 1.2 zh_TW ukai.ttf 1.2 ukai.ttf 1.2 zh_CN ukai.ttf 1.2 ukai.ttf 1.2 ja ukai.ttf 1.2 ukai.ttf 1.2 ja_JP ukai.ttf 1.2 ukai.ttf 1.2 ko ukai.ttf 1.2 ukai.ttf 1.2
以 井号(#) 开头的行是注释语句,将在程序读取时被忽略,所以你可以在 # 后面写任何东西。这个文件的注释说明了文件的使用方式,大意是:
# 本文件用来定义指定语言所使用的字体 # # 格式为:语言 字体 字体显示比例 定宽字体 定宽字体显示比例 # 字体文件必须为ttf格式,保存在 data 目录下 # 也可以使用以“/”开头的绝对目录指定文件位置
以 default 语句开头的行,定义了默认字体。请在这里将 DejaVuSans.ttf 改为你复制过来的中文字体的文件名称,以华文细黑(STXIHEI.TTF)为例,应为:
# 默认字体 default STXIHEI.TTF 1 STXIHEI.TTF 1
实际上,下面几行的字体设置会覆盖上述默认字体设置。所以不修改 default 的设置对程序的语言使用不会产生大的问题。但是 Stellarium 有一个小小的 bug :Stellarium 启动封面下方的加载信息是使用默认字体显示的。所以,如果这里不修改为中文字体,则会出现在启动封面上显示乱码方框的小问题。
接下来,修改 zh_CN 语言的字体设置。原来文件中的所谓 ukai.ttf 字体也是一种中文大字集字体,可供简繁中文、日语和韩语使用。如果你有这个字体,那么就按照 中文字体文件——Stellarium 汉化的基础 的介绍将它直接复制到 data 目录下,不用修改这里的配置了。如果你没有这个字体,或者想使用自己的字体,则应修改这里的配置:
# Overrides per locale 每个语言的字体设置,以下设置将覆盖默认字体 zh_CN STXIHEI.TTF 1 STXIHEI.TTF 1
其他几个语言的字体也可以一并修改,这样你就可以看到繁体字(zh_HK、zh_TW)、的或日(ja、ja_JP)韩(ko)语的界面。
zh_HK STXIHEI.TTF 1 STXIHEI.TTF 1 zh_TW STXIHEI.TTF 1 STXIHEI.TTF 1 ja STXIHEI.TTF 1 STXIHEI.TTF 1 ja_JP STXIHEI.TTF 1 STXIHEI.TTF 1 ko STXIHEI.TTF 1 STXIHEI.TTF 1
需注意的几个问题:
(1)配置中,第二个字体是 stellarium 使用的 定宽字体。所谓定宽字体就是每个字宽度一样的字体。这对中文不成问题,但是对于很多英文字体而言,大写 W 和小写 i 的宽度是不同的。这就造成了在屏幕显示上的某些问题。如 Stellarium 的帮助窗口,分栏列出了各个快捷键的用法,如果字母宽度不同,分栏的显示将无法对齐。所以,最好能够找到一个英文字母是定宽的中文字体。当然不使用定宽字体也不是什么大问题。
是否是定宽字体的鉴别十分简单,双击这个字体查看它,会显示这个字体的英文和中文示例字。示例字中有大小写的英文字母表,如果示例中上面一排大写字母与其下面一排小写字母长度一样,那么这个字体基本上可以肯定是英文定宽的了。
(2)字体显示比例可以设为小数,如1.2就表示比原设置字体(在 config.ini 配置文件中)大20%显示。推荐值为1,因为如果过大,将会使字体显示放大,从而使某些不具有滚动功能的窗口(如帮助窗口)无法完全显示所有的信息。
通过上面2步,在你设置了界面语言或星空语言为中文后,就可以看见中文化的stellarium 了。但是,还有一些小的问题,如有些界面没有汉化完全,星名的显示看不到希腊字母等。下面,让我们做到完美!
- 2. fontmap.dat——关联语言种类和字体文件
涉及到的有关文件 请发邮件 liu_chunbin@126.com。共勉!

