如何参与翻译

出自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


Linux

  • KBabel (KDE)
  • GTranslator (Gnome)
  • poEdit
  • Emacs with po-mode
  • Vim with PO plug-in

这些工具除了一般的编辑器功能外,提供在po文件中导航,添加/移除fuzzy标记,统计翻译进度等额外好处。


Mac OS X

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

个人工具