poEdit: Windows下的.po文件编辑器
twiki在DakarRelease中加强了本地化的支持,可以给TWiki设置不同的本地语言界面,这个设置是通过locale/目录下的.po文件实现的,.po是GNU gettext项目的一套应用规范。是一种比较规范的l10n方案。’.po’是: Portable Object(可跨平台对象)的缩写,而创建/编辑.po文件过程中会生成相应的机器码binary的格式文件:’.mo’ MO是Machine Object。
元旦放假时翻译是用Notepad对着德文版的翻译一行一行翻译的。几个星期过去了,2月1日TWiki 4.0(DakarRelease)就要发布了,目前的状态是:
Our current status is this: locale/da.po: 628 translated messages. locale/de.po: 628 translated messages. locale/es.po: 270 translated messages, 58 fuzzy translations, 300 untranslated messages. locale/fr.po: 542 translated messages, 58 fuzzy translations, 28 untranslated messages. locale/nl.po: 626 translated messages, 2 untranslated messages. locale/pt.po: 628 translated messages. **locale/zh-cn.po: 548 translated messages, 72 fuzzy translations, 8 untranslated messages. locale/zh-tw.po: 548 translated messages, 72 fuzzy translations, 8 untranslated messages.** Instructions for posting patch against translations are available at: [http://twiki.org/cgi-bin/view/Codev/DakarReleaseTranslations](http://twiki.org/cgi-bin/view/Codev/DakarReleaseTranslations)
由于中间开发过程中又有一些文字的修改,这时候再用Notepad编辑,中间已经有些内容很难定位和识别状态了。以前知道Linux平台下有2个分别在KDE和gnome平台下的PO编辑器:GTranslator和KBabel,我尝试了找了一下,发现了另外一个可以运行在Windows下面的.po编辑器:poEdit,使用界面如图

有了gettext系列工具的支持:翻译后的.po还可以通过工具进行校验
[msgfmt](http://www.chedong.com/phpMan.php/man/msgfmt/1) --statistics --output=/dev/null zh-cn.po
和以前其他的一些应用翻译不一样,比如,AWStats的翻译:内容都是用固定的字符串ID进行标记的。直接使用文本编辑器对照的进行翻译就可以了:
message65=六月 message65=Jun message66=七月 message66=Jul message67=八月 message67=Aug message68=九月 message68=Sep message69=十月 message69=Oct message70=十一月 message70=Nov message71=十二月 message71=Dec message72=浏览器统计 message72=Navigation message73=文件类别 message73=File type message74=立即更新 message74=Update now message75=字节 message75=Bandwidth message76=回到主页 message76=Back to main page
而.po中对应的是相对比较复杂多变的字符设置,对于变更较多的项目来说,.po可管理性还是很强的。尤其是其中的meta信息的编辑。
💬 历史评论
以下 2 条评论从旧版 Movable Type 博客迁移而来。 原始评论时间:2002–2016 年。
Fenng · 2006-02-01 14:01
04 年的时候曾经用这个工具给原来的公司汉化过 Audacity .因为给公司做的,汉化包一直没放出来
小虎 · 2007-04-01 04:31
在poEdit里遇到%s这样的字符就编辑不了了,怎么解决呢?