为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > Stellarium 中文专业版——完全汉化DIY指南

Stellarium 中文专业版——完全汉化DIY指南

2010-11-25 13页 pdf 315KB 259阅读

用户头像

is_999153

暂无简介

举报
Stellarium 中文专业版——完全汉化DIY指南 1 Stellarium 中文专业版 —— 完全汉化DIY指南 Stellarium 是一款功能强大的电子星图软件,其界面的精美程度目前尚无出于其右者。但是你是否会看着她满眼英文的界面而发 呆呢?来,动手一起把这个美丽的东西汉化了吧! 打开 Stellarium 配置窗口的语言标签,可以看到 Stellarium 已经为中文版做好了准备。界面语言、星空语言和星空文化中都 有中国的选项(包括 zh_CN、zh_HK和 zh_TW)。但是,她的中文化工作做得并不细致,还有很多差强人意的地方。 Stell...
Stellarium 中文专业版——完全汉化DIY指南
1 Stellarium 中文专业版 —— 完全汉化DIY指南 Stellarium 是一款功能强大的电子星图软件,其界面的精美程度目前尚无出于其右者。但是你是否会看着她满眼英文的界面而发 呆呢?来,动手一起把这个美丽的东西汉化了吧! 打开 Stellarium 配置窗口的语言标签,可以看到 Stellarium 已经为中文版做好了准备。界面语言、星空语言和星空文化中都 有中国的选项(包括 zh_CN、zh_HK和 zh_TW)。但是,她的中文化工作做得并不细致,还有很多差强人意的地方。 Stellarium 是开源软件,其技术文档是公开的。在其用户手册中,详细介绍了各种配置文件的用途和格式。这为希望自己订制这 款软件的 DIY玩家提供了详尽的参考。 0. 如何将 Stellarium 调整为中文版 这是一个入门级的问题,如果你还想更详细地了解设置过程,可以参考《Stellarium 用户使用手册》中的相关章节。 (1) 启动 Stellarium。 (2) 按主工具条上的扳手图标 打开设置窗口(configration window)。 (3) 选择语言(Language)标签。 (4) 在界面语言(Program Language)下拉列中,选择 zh_CN(中国大陆汉语)。这将使程序界面(包括工具条按钮帮助提 示、天体信息等)的文字编码转换为中文。另:列表中 zh_HK 表示香港汉语,zh_TW 表示台湾汉语。这两种语言和 zh_CN 大陆汉语 2 的主要区别是使用繁体字。 (5) 在星空语言(Sky Language)下拉列表中,选择 zh_CN。这将使星 空中的星座名称、方向标识等的文字编码转换为汉字。 (6) 星空文化(Sky Culture)可以先不调整,因为这里的更改只涉及 星座的划分和星名的命名等。即使将星空文化调整为 Chinese,但如果星空语 言仍然是英文,那么星空上显示的中国星座名称仍将是英文的。如五车,显示 为 Five Chariots。同样,如果星空语言是中文,而星空文化是西方(WESTERN), 那么星空的划分将是国际通行的 88 星座,而每个星座的名称标识则是汉语 的,如“猎户”等。 1. 中文字体文件——Stellarium 汉化的基础 如果你将刚刚装好的 Stellarium 按照上述步骤调整为中文版,那么你会对结果很失望,因为你并没有看到汉字。所有应该是汉 字的地方都是小方框!编码是转换为中文的了,但是这个编码没有显示出字来,问题的原因是 Stellarium 没有提供汉字字库。 在 Stellarium Wiki 知识库的《常见问题集 (FAQ)》中我们可以知道,Stellarium 为了减小发布软件的体积,对于不常用的字 体文件便没有附在软件中提供——而中文字体恰恰也被发布者认为是不常用的。 不过解决的方法很简单,到你的 Windows 系统目录的 fonts 子目录下,随便找一个中文字体将其复制到 Stellarium 安装目 3 录\data 子目录下就可以了。非 Windows 系统的用户,可以参考 Windows 的操作方式。 操作要点: (1) 找一个中文字体文件,注意一定要是汉字的字体,由于汉字数量庞大,所以中文字体文件要比英文字体文件大得多,一般 而言,3M以下的字体文件不会是中文字体。 (2) 中文字体文件应以 .ttf 为扩展名。 我的 Fonts 文件夹中有这些中文字体文件符合要求: STKAITI.TTF STZHONGS.TTF STSONG.TTF STFANGSO.TTF simhei.ttf STXIHEI.TTF SIMLI.TTF FZSTK.TTF SIMYOU.TTF STCAIYUN.TTF simkai.ttf STLITI.TTF STXINWEI.TTF STXINGKA.TTF simfang.ttf STHUPO.TTF (3) 将这个中文字体文件复制到 Stellarium安装目录\data 子目录下。 2. fontmap.dat——关联语言种类和字体文件 有了中文字体文件后,还要告诉 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. 4 # 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)为例,应为: 5 # 默认字体 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 的帮助窗口, 6 分栏列出了各个快捷键的用法(如右图),如果字母宽度不同,分栏的显示将 无法对齐。所以,最好能够找到一个英文字母是定宽的中文字体。当然不使 用定宽字体也不是什么大问题。 是否是定宽字体的鉴别十分简单,双击这个字体查看它,会显示这个字 体的英文和中文示例字。示例字中有大小写的英文字母表,如果示例中上面 一排大写字母与其下面一排小写字母长度一样,那么这个字体基本上可以肯 定是英文定宽的了。 (2) 字体显示比例可以设为小数,如 1.2 就表示比原设置字体(在 config.ini 配置文件中)大 20%显示。推荐值为 1,因为如果过大,将会使 字体显示放大,从而使某些不具有滚动功能的窗口(如帮助窗口)无法完全 显示所有的信息。 通过上面 2 步,在你设置了界面语言或星空语言为中文后,就可以看见中文化的 stellarium 了。但是,还有一些小的问题,如 有些界面没有汉化完全,星名的显示看不到希腊字母等。下面,让我们做到完美! 3. Stellarium.mo——程序界面完全汉化 程序界面的汉化基础是在 Stellarium 安装目录\locale\zh_CN\LC_MESSAGES 中的 Stellarium.mo 文件保存有相关英 7 文字串的中文翻译。但是由于 Stellarium 还在完善中,所以随软件提供的 Stellarium.mo 文件的翻译仍不完备,所以追求完美的你 需要自己进行修改。 Stellarium.mo 文件是编译过的资源文件,无法直接修改。你可以下载英—中对照的翻译源文件(扩展名为 .po),然后自己翻 译相应的词汇,再编译成 .mo 文件,替换掉原来的不是尽如人意的 Stellarium.mo。 对应的中文翻译源文件的名称是 zh_CN.po,下载的地址如下,点击左上部的 download就可以了,下载前需要注册一个用户。 https://translations.launchpad.net/stellarium/0.9/+pots/stellarium/zh_CN/ .po 文件的编辑和编译工具是名为 poEdit 的程序,请到 http://www.poedit.org下载。 .po 文件的内容为一个个英文与一个个中文的词条翻译对应,其中一个词条的翻译内容大概像这样: #: src/StarMgr.cpp:945 msgid "Parallax: " msgstr "视差: " 如果使用其他的文本编辑器编辑 .po 文件,请仅仅修改中文部分,即 msgstr 之后两个引号之间的部分。如果修改了英文部分 ( msgid 行),则将使该词条中文译文无法在原文中找到对应的英文,从而导致该词条翻译失败。 一个保险的、也是更便利的方法是直接使用 poEdit 修改.po文件,可以保证英文原文的只读。 8 在 poEdit 的菜单中选择 文件 — 首选 ,在 编辑器 标签中勾选 保存 时自动编译.mo文件(如图),这样,在保存对 .po 文件的更改时,就会在 相同的目录下生成同名的编译过的 .mo 文件。 操作要点: (1) 到 下面的网址下载中文翻译的 PO 源文件 zh_CN.po 。 https://translations.launchpad.net/stellarium/0.9/+pots/stellarium /zh_CN/ (2) 到 http://www.poedit.org 下载 poEdit 工具。 (3) 设置 poEdit 为保存时自动编译 .mo 文件。 (4) 使用 poEdit 对 zh_CN.po 进行修改,并保存。这将生成 zh_CN.mo 文件。 (5) 备份 Stellarium安装目录\locale\zh_CN\LC_MESSAGES 目录下的 Stellarium.mo 文件。 (6) 将 zh_CN.mo 文件更名为 Stellarium.mo ,将其复制到 Stellarium安装目录\locale\zh_CN\LC_MESSAGES 目录下替换原 来的同名文件。 (7) 如果您对您的翻译很自信,并愿意让别人分享您的翻译成果,您可以到下载 PO 文件的网页上传您翻译的 zh_CN.po 文件。 恭喜您,您加入到 Stellarium 项目的国际化工作中来了,说不定您的贡献会随新版本的 Stellarium 提供给全世界的同道下载了。 9 4. name.fab——默认星名的汉化 通过上面三步,甚至是前面两步,你的 Stellarium 已经可以显示中文了。当你选中了某颗恒星时,该恒星的基本数据将会显示 在界面的左上角,这些数据显示的排列为: 恒星在本星空文化中的专有名 左括号 恒星 Bayer 命名法名称或 Flamsteed命名法名称 右括号 恒星的 Hipparcos (伊巴谷)星表编号 星等 以儒略日 2000.0为基本坐标系的恒星赤经、赤纬 以当前时间为基本坐标系的恒星赤经、赤纬 当前观测位置及观测时间该恒星所在的方位角、高度角 视差 距离 光谱型 恒星 Bayer 命名法名称是指国际通用的以希腊字母表示的星名。恒星 Flamsteed 命名法名称是指以数字表示的星名。 问题出现了,选中一颗恒星后,如果显示其 Bayer 名称,则希腊字母的显示是方框。这是 Stellarium 中文显示的一个 bug。 请使用支持 UTF-8 的文本编辑器编辑 Stellarium安装目录\stars\default\name.fab 文件。该文件的格式是每行一个恒 星的命名,包括 2个以 管道符(|) 分隔的字段,格式为: HP星表编号|恒星名 HP (Hipparcos 伊巴谷)星表编号可以重复出现,但只有最后一个起作用。恒星名是指国际通用命名法的命名,即 Bayer 名 10 称(希腊字母+星座名)或 Flamsteed 名称(数字+星座名),而恒星的专有名(外文俗名,或中文的传统名)保存在星空文化(Sky Culture) 的相关设置中,不要写在这个文件中。 星空文化的具体设置见后文《star_names.fab、constellation_names.eng.fab、constellationship.fab——中国传统文化星名 扩展》一节的介绍。 下面解决 Bayer 名称中的希腊字母显示为方框的 bug 。 方法 1:使用编辑器的替换功能,将管道符(|)全部替换为管道符+下划线(|_)。如 9884|α_Ari 改为 9884|_α_Ari。 方法 2:使用编辑器的替换功能,将下划线(_)全部替换为空格。如 9884|α_Ari改为 9884|α Ari。 希望深度的汉化吗?把三个字母缩写的星座名称更改为中文吧,如 9884|α Ari,改为 9884|白羊座 α。这样,当你选中了 HP9884 号恒星(白羊座α星)的时候,就会在屏幕的左上方显示 白羊座α ,而不是 α Ari 了。 88 个星座的 88 种替换、星座名和希腊字母的位置颠倒是比较费功夫的,我使用了 n种 excel的技巧做好了替换,该 name.fab 文 件可供大家索取。取得后直接替换掉 Stellarium安装目录\stars\default\name.fab 文件就可以了。 我的 name.fab 包括了如下修改: (1) 星座名称修改为中文,同时附加英文缩写。 (2) Bayer 希腊字母名称和 Flamsteed 数字名称同时显示(原来只能显示其中一种名称)。 11 显示示例为: 仙后座 β, 11 Cas 这个文件也有一个问题,就是 name.fab 中的英文星座缩写替换为中文星座名后汉化过度了,即使将界面语言设置为其他语言, 屏幕左上角的恒星数据中,仍然显示中文星座名(当然,还是同时显示有英文的)。如果你的 Stellarium 没有中文字体,这里将有乱 码显示。所以如果还要使用其他语言,或者希望一个单纯的英文界面,那么建议您不要做这个文件替换。 5. star_names.fab、constellation_names.eng.fab、constellationship.fab——中国传统文化星名 最激动人心的时刻到了! 下面的工作已经超出程序汉化的范畴了,我们要扩充 Stellarium 的中国传统星座体系,用她绘制中国传统星图。 Stellarium 其实已经包括中国传统星座体系的基本数据了。在 .mo 文件中有一个中英文对照的中国传统三垣二十八宿名称,查 阅其来历,大概是香港太空馆。但是 Stellarium 提供的中文星名数据较少,下面我们 DIY扩展。 在 Stellarium安装目录\skycultures\chinese 目录中,有 3 个文件同中国星空文化数据相关: star_names.fab :中国传统星名列表 constellation_names.eng.fab :中国传统星座名称 12 constellationship.fab :中国传统星座(星官)连线 三个文件都是 UTF-8 格式的文本文件,可以进行修改。其格式分别如下: (1) star_names.fab 每行为一个记录,描述恒星的中文星名,格式为: 恒星 HP编号|恒星中文名称(中国星空文化中的专有名) 这里的设置会显示在星空左上角的恒星数据中,当您选中具有中文星名的某一颗恒星时,左上角会显示: star_names.fab中记录的中文星名 左括号 name.fab中记录的默认星名 右括号 举例:Stellarium安装目录\stars\default\name.fab 文件中有记录: 7588|波江座 α,α Eri Stellarium安装目录\skycultures\chinese\ star_names.fab 文件中有记录: 7588|水委一 则在选中了波江座α星(HP编号 7588)后,星空左上角会显示: 水委一 (波江座 α, α Eri) (2) constellation_names.eng.fab 指明星座的名称。每行为一个星座名称,前面 3个字符为星座索引,这个索引用来与 constellationship.fab 文件中的星座 连线关联,可以任意填写。后面接 5个空格(或 TAB键)。然后是星座的显示名称。 13 举例: BD7 北斗 (3) constellationship.fab 描述星座连线,每行为一个星座,内容分为 3个部分,各部分间用空格分隔: l 第一部分是星座索引,关联到 constellation_names.eng.fab 文件,指明该星座的名称。 l 第二部分是星座连线的条数。 l 第三部分为星座连线描述。连线使用 HP 星表编号描述恒星,每个恒星编号之间用空格分隔,Stellarium 将在第一个恒星 到第二个恒星之间划线、第三个恒星到第四个恒星之间划线、第五个恒星到第六个恒星之间划线……依此类推。 举例: BD7 6 54061 53910 53910 58001 58001 59774 59774 62956 62956 65378 65378 67301 表明该星座的名称为 constellation_names.eng.fab 文件中 BD7 所对应的名称(上例中的“北斗” ),该星座共 6 根连线,分 别是 HP54061 到 HP53910、HP53910 到 HP58001、58001 到 59774 等。 经过整理相关的资料,我制作了上面 3 个文件,内容包括 200 多个星座(中国古代称为星官)的连线(有些只有一颗星或者亮 星不多的星官就没有连线了)和有资料可查的近 1500 颗恒星的中文名。 文中涉及的文件,有需要者可以联系我,发邮件至 liu_chunbin@126.com。数据还在不断充实中,请有资源的同道请不吝赐教。 0 如何将 Stellarium 调整为中文版 1 中文字体文件——Stellarium 汉化的基础 2 fontmap.dat——关联语言种类和字体文件 3 Stellarium.mo——程序界面完全汉化 4 name.fab——默认星名的汉化 5 star_names.fab、constellation_names.eng.fab、constellationship.fab——中国传统文化星名
/
本文档为【Stellarium 中文专业版——完全汉化DIY指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索