推荐的drupal PO文件编辑器有(没有优先顺序这里):
注意,一定要下载最新的版本,复数形式是gettext标准最近新加的.
假如你有一个fr.po文件,里面包含了几个drupal模块的翻译.这些drupal模块更新了,有些字符串被修改了.那么现在更新后的module.pot文件里面就是空的.你需要把这些修改,合并到你的翻译中,从而 充分的利用原有的翻译成果.
首先,检查你使用的PO编辑器,看它是不是有一个合并的功能.
没有的话,你可以试试UNIX CLI工具msgmerge,它和GNU gettext是一起的.
更好的方式是,你可以使用merge.sh,这个是KDE小组对msgmerge提供的一个封装好的批量处理函数.下载这个文件,把它放到你的bin/ folder(你的$PATH所在的目录).在你的系统上,至少需要安装一个GNU gettext 0.16版,或者更高版本.然后运行以下命令:
merge.sh fr.po module.pot
其中fr.po是已有的翻译, module.pot为该模块更新后的pot文件.然后,使用PO编辑器打开你的fr.po文件.
参看msgmerge文档.
相关链接: http://drupal.org/node/205049 , Think in Drupal
poEdit的windows版本1.3.1(原作者写作时的最新版本,现在1.4.2了),看起来需要额外的步骤才能识别复数形式(如果你编辑的一个词语是复数形式的话,即便是你翻译了它,当你移到其它词语时,翻译的结果也不会出现在poedit中,同样即便是你保存了,也不会)
复数解决方案#1
如果你找到了一个复数形式的单词,那么关闭poedit,使用一个普通的文本编辑器比如写字板(不能用word)来打开你正在翻译的文件,然后查找复数形式的单词,比如你可以看到类似下面的形式:
#: modules/comment.module:187 modules/node.module:89
msgid "1 comment"
msgid_plural "%count comments"
msgstr[0] "1 commento"
msgstr[1] "%count commenti"
这个时候,我们只需要简单得把msgid文本翻译到msgstr[0],把msgid_plural文本翻译到msgstr[1]中,保存文件,然后关闭编辑器,然后再使用poedit打开.这种方案就是,把复数形式的提前用别的编辑器翻译好后,然后再使用poedit编辑器.
复数解决方案#2
为了在poedit中使用复数,你可以先在类目里面将语言设为英语,之后再对其修改.
语法是:
nplurals=2; plural=(n != 1);
这样就解决了我在翻译成瑞典语时的问题:
#: modules/aggregator.module:100;711;722
msgid "1 item"
msgid_plural "items"
msgstr[0] "1 inlägg"
msgstr[1] "%count inlägg"
我在PO Edit 1.3.1中这样用,没有报错,即便是保存时也不出错.
复数解决方案#2
你可以在类目设置里看到PO edit用到的复数形式:
nplural=INTEGER; plural=EXPRESSION
仅有一种形式的情况:
有些语言,单复数同形,就是没有分别.此时PO edit用到的复数形式就应该为:
Plural-Forms: nplurals=1; plural=0;
此类语言包括:
芬兰乌戈尔语系
匈牙利语
亚洲语系
日语,
韩语
汉语
突厥/阿尔泰语系
土耳其语
译者注:
下面所讲的就是其它类别的语言的设置了,我们用不到,我在poedit1.4.2把复数形式设为nplurals=1; plural=0就搞定了。
XEmacs很早就支持Windows,你可以在这里下载它http://www.xemacs.org/Download/win3. XEmacs绑定了po模式(po-mode)(无需GNU gettext).
然而如果要编辑UTF-8编码的PO文件的话,还是会遇到一点麻烦的,我是这样设置的:
1,使用Netinstall安装XEmacs 21.4.13. http://www.xemacs.org/Download/win32/setup.exe
2,使用文件http://www.suiyokai.org/tomonori/xemacs/xemacs-i586-pc-win32-21.4.13-mul...里的文件来替换C:\Program Files\XEmacs\XEmacs-21.4.13目录下面的对应文件.
3,将MULE包安装到C:\Program Files\XEmacs\mule-packages目录下(可从http://ftp.xemacs.org/xemacs/packages/xemacs-all-mule-packages.tar.gz下载该文件)
4,将环境变量EMACSPACKAGEPATH的值设为:
C:\Program Files\XEmacs\site-packages;C:\Program Files\XEmacs\mule-packages;C:\Program Files\XEmacs\xemacs-packages
5,为了确保在打开文件时能够自动的探测到Unicode,需在你的初始化文件(init.el)添加以下几行:
(require 'un-define)
(set-coding-priority-list '(utf-8))
(set-coding-category-system 'utf-8 'utf-8)
6,最后添加下面这行,以自动启用po-mode:
(require 'po-mode)
这可能有点麻烦…,不过XEmacs还是功能很强大的。如果你以前没有用过XEmacs,那么还需要多花点时间学习一下。
另外,你的安装目录不一定是C:\Program Files\XEmacs。我在这里仅仅用来说明问题。