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
由于中间开发过程中又有一些文字的修改,这时候再用Notepad编辑,中间已经有些内容很难定位和识别状态了。以前知道Linux平台下有2个分别在KDE和gnome平台下的PO编辑器:GTranslator和KBabel,我尝试了找了一下,发现了另外一个可以运行在Windows下面的.po编辑器:poEdit,使用界面如图
有了gettext系列工具的支持:翻译后的.po还可以通过工具进行校验
msgfmt --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信息的编辑。
作者:车东 发表于:2006-01-31 18:01 最后更新于:2007-04-15 19:04版权声明:可以转载,转载时请务必以超链接形式标明文章 poEdit: Windows下的.po文件编辑器 的原始出处和作者信息及本版权声明。
http://www.chedong.com/blog/archives/001115.html
Comments
04 年的时候曾经用这个工具给原来的公司汉化过 Audacity .因为给公司做的,汉化包一直没放出来
由: Fenng 发表于 2006年02月01日 下午02时01分
在poEdit里遇到%s这样的字符就编辑不了了,怎么解决呢?
由: 小虎 发表于 2007年04月01日 夜间04时31分