Fontmap.dat——关联语言种类和字体文件

From Stellarium Wiki
Jump to: navigation, search

有了中文字体文件后,还要告诉 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 的帮助窗口,分栏列出了各个快捷键的用法,如果字母宽度不同,分栏的显示将无法对齐。所以,最好能够找到一个英文字母是定宽的中文字体。当然不使用定宽字体也不是什么大问题。


help_dialog.png


是否是定宽字体的鉴别十分简单,双击这个字体查看它,会显示这个字体的英文和中文示例字。示例字中有大小写的英文字母表,如果示例中上面一排大写字母与其下面一排小写字母长度一样,那么这个字体基本上可以肯定是英文定宽的了。

(2)字体显示比例可以设为小数,如1.2就表示比原设置字体(在 config.ini 配置文件中)大20%显示。推荐值为1,因为如果过大,将会使字体显示放大,从而使某些不具有滚动功能的窗口(如帮助窗口)无法完全显示所有的信息。

通过上面2步,在你设置了界面语言或星空语言为中文后,就可以看见中文化的stellarium 了。但是,还有一些小的问题,如有些界面没有汉化完全,星名的显示看不到希腊字母等。下面,让我们做到完美!





  • 2. fontmap.dat——关联语言种类和字体文件


涉及到的有关文件 请发邮件 liu_chunbin@126.com。共勉!

Personal tools
Namespaces
Variants
Actions
in this wiki
other languages
Toolbox