如何参与翻译
出自Wiki.wesnoth.cn
目录 |
一般说明
Wesnoth需要翻译的内容是按包分开的,主要的包有:
- 主程序
- wesnoth wesnoth 主程序
- wesnoth-editor wesnoth 地图编辑器
- wesnoth-lib 主程序和地图编辑器共享的
- wesnoth-manpages GNU 标准文档页
- wesnoth-manual wesnoth 使用手册
- wesnoth-multiplayer 多人对战相关
- wesnoth-tutorial 教学关
- wesnoth-units 游戏单位
- 官方战役(Scenario)
- wesnoth-aoi An Orcish Incursion
- wesnoth-did Descent Into Darkness
- wesnoth-dm Delfador's Memoir
- wesnoth-ei The Eastern Invasion
- wesnoth-httt Heir To The Throne
- wesnoth-l Liberty
- wesnoth-nr Northern Rebirth
- wesnoth-sof Sceptre of Fire
- wesnoth-sotbe Son of the Black-Eye
- wesnoth-tb A Tale Of Two Brothers
- wesnoth-trow The Rise of Wesnoth
- wesnoth-tsg The South Guard
- wesnoth-utbs Under the Burning Suns
- 第三方战役(WesCamp)
- 不列举名称了,参见翻译进度页面。
你可以到翻译进度页面查看所有别人的翻译成果和待翻译内容。
翻译过程简述
由于这个程序制作之初就考虑了支持多种语言,所以翻译不需要特别的技术手段,只需要将与程序一起提供的语言文件翻译好就OK。
每一个包都有一个对应的.po文件,描述与语言相关的字符串。
po文件是utf-8编码的文本文件,格式如下:
#注释或者描述控制符 msgid "英文内容" msgstr "对应上一个msgid的中文内容" #注释或者描述控制符 msgid "英文内容" msgstr "对应上一个msgid的中文内容" ...
一个实际的例子:
# type: Content of: <book><chapter><title> #: ../../doc/manual/manual.en.xml:39 msgid "Getting Started" msgstr "新手上路" # type: Content of: <book><chapter><section><title> #: ../../doc/manual/manual.en.xml:41 msgid "The World" msgstr "世界" # type: Content of: <book><chapter><section><simpara> #: ../../doc/manual/manual.en.xml:42 msgid "" "The known portion of the Great Continent, on which Wesnoth abides, is " "generally divided into three areas: the northlands, which are generally " "lawless; the kingdom of Wesnoth and its occasional principality, Elensefar; " "and the domain of the Southwest Elves in the Aethenwood and beyond." msgstr "" "Wesnoth所在大陆已知的部分主要有3大块:北方大陆,这个地方渐渐失去了统治秩序;" "Wesnoth王国和它目前的诸侯国Elensefar;以及西南部Aethenwood丛林中的精灵族。"
翻译者只需将msgid的字符串翻译,并填写到msgstr后面。然后上传译好的po文件到论坛即可。
注意
1. 有些段落里面会有一些tag,这些tag必须保持原状,包括tag里面的英文引号。
tag里面只有text="xxx"里面xxx需要翻译,别的都不要动。
2. 有些条目里面有^符号,这个符号前面的内容是表明上下文内容的,翻译时只需要翻译^之后的内容。
获取po文件
通过SVN获取po文件
提示:如果你需要整个游戏,而不仅仅是翻译文件,可以checkout整个Wesnoth的源代码,里面有所有的pot和po文件。
请通过网页方式访问官方SVN服务器
进入你希望翻译的包的对应目录,然后下载po文件夹下的zh_CN.po文件。
你也可以下载别人翻译好的po文件看看,作为参考。
提示:如果要更新po文件你需要对应包的新版本pot文件,pot文件也可以通过这种方式获取。
这种方式无法取得第三方战役的po文件。
通过Wesnoth translation stats页面获取po文件
访问翻译情况页面,选择 development(开发版本)|| x.x (当前稳定版本),单击上方Official或UnOfficial后面的包名,即可得到po文件。
这种方法无法取得pot文件。
从Wesnoth简体中文翻译版本库获取po文件
现在Wesnoth 1.8稳定分支的所有官方po文件都已经导入google code上的wesnoth-tranlation-cn项目。CloudiDust通过本项目对自己的翻译工作进行维护,欢迎大家加入本项目。
所使用的版本管理系统是Mercurial,版本库地址为:https://wesnoth-translation-cn.googlecode.com/hg/
如果只想获得当前po文件,请访问此页面,选择相应的po文件下载,注意这些文件很可能已经与官方SVN中的文件不同,包含有更多的翻译和修正。
CloudiDust会负责po文件和新的官方pot的归并工作,但只有比较稳定的翻译版本才会提交到官方。
PO文件编辑器
PO是GNU gettext的产物,故Gnu/Linux下工具最多。
Windows
Windows下通常使用poEdit
- poEdit 下载poEdit的Windows版本
- Emacs with po-mode
- Vim with PO plug-in
Linux
- KBabel (KDE)
- GTranslator (Gnome)
- poEdit
- Emacs with po-mode
- Vim with PO plug-in
这些工具除了一般的编辑器功能外,提供在po文件中导航,添加/移除fuzzy标记,统计翻译进度等额外好处。
Mac OS X
- poEdit 下载poEdit的Mac OS版本
- Emacs with po-mode
- Vim with PO plug-in
PS:如果大家还没有听说过Emacs和Vim这两个编辑器的,推荐大家学习其中的一种。如果经常要编辑文件,不是为了翻译也应该学一个。 推荐程序员学emacs,非程序员学vim。
开始翻译
选择一个你拿手的支持utf-8的文本编辑器,打开po文件。就可以开始修改每个词条的msgstr了。 剩下的不用多说,翻译过程中记得不时保存。
维护翻译文件
程序总会有更新,更新后可能会产生新的字符串或者改动原来的字符串。更新后程序会提供一个pot文件,这时你需要根据这个文件更新你的po文件。 更新po文件需要使用GNU gettext里面的工具,安装这个工具后运行下面的命令可以更新po文件:
msgmerge -o zh_CNnew.po zh_CNold.po potfile.pot
这个命令按照下面的规则来更新po文件:
- msgid不变的,msgstr保留。[不需要更新。]
- msgid有小改动,msgstr保留,标记为fuzzy词条。[需要检查翻译是否得当后移除fuzzy标记。]
- 新增的msgid,msgstr为空。[需要翻译]。
注:被标记为fuzzy的词条游戏中当作未翻译处理,不会显示为翻译后的文字(msgstr)。所以翻译后需要移除fuzzy标记。
提交翻译结果
一般来说只要将自己翻译好的po文件上传到论坛即可。
文件名建议是"包名.po"格式,比如wesnoth包,翻译文件最好命名为wesnoth.po。
同时建议用户更新wiki翻译进度页,添加发布地址和负责人id。提示:wiki不需要注册就能修改。
目前中文翻译负责人是sylecn。如果需要提交自己的翻译,或者有其它疑问,请通过论坛或者email和他联系。
Last update: 2009-4-4
