POEdit

这几天用POEdit做Wordpress中文包,积累了一点POEdit使用心得,在这里记录下来。

以Wordpress为例子写个使用说明:

这个软件支持Windows和UNIX平台,我以Windows为例。先去POEdit网站下载POEdit 1.3.4,安装,运行。

第一次运行的时候会让你选择界面使用的语言,并输入您的姓名和email地址,不过不用担心,这些信息以后都可以更改。我选择的是简体中文界面,以下描述使用简体中文界面中的文字。

POEdit里有个目录档管理员,其实就是选择一个名称,再选择你存放po文件的目录,程序会自动显示所有po文件的翻译状况。不怎么好玩。

先新建一个po文件,点文件->新建消息目录文档,弹出设置对话框。在“项目信息”里填入项目名称、团队、团队电子邮件、语言、国家、字符集(建议用utf-8),这样POEdit会将他们写入po文件里。注意这里填的是团队和团队电子邮件,可以填上一起翻译的人的信息,而你自己的信息将从你的设置里自动复制到po文件里。

第二项是路径,是指源程序存放的路径。你可以先填上基本路径,再在下面填上源程序存放的相对路径。我就在基本路径里填上D:\Wordpress,相对路径填上”.”,他会自动搜索子目录的。第三项是关键字,是指程序中使用怎样的关键字来标明要翻译的字符串。默认的关键字是”_”,而我翻译的Wordpress使用的关键字是”__”和”_e”。POEdit会将这些关键字传给xgettext程序来提取源程序中要翻译的文本。

这些信息也不用担心,以后也可以随时更改。如果需要从源程序更新,则这两项必填;如果要从pot文件更新,则这两项就不用填了。全部填好后,点确定,选择po文件存放的目录和文件名,这样就建立好了po文件。

建好的po文件里一个字符串也没有,要获得需要翻译的字符串有两个办法:一是从pot文件更新,只要下载到该源程序对应的pot文件(一般由官方提供),点类目->从pot文件更新即可。二是从源程序更新。这时要保证要翻译的源程序完整存放在选择的目录中,点类目->自源更新,POEdit会自动分析源程序,提取出字符串。POEdit会调用xgettext程序解析C/C++,Java,Perl,PHP,Python,TCL程序,调用dxgettext解析Delphi程序。

接着就可以开始翻译了。点击要翻译的字符串,左下方的两个窗口,上面显示原文,下面需要你填入译文。未翻译的条目会被用蓝色标出来,状态栏也会显示总字符串数和未翻译的字符串数。状态栏右侧还有进度条,可以看到翻译的进度。

翻译好后点击保存,POEdit会自动编译生成mo文件。

4 条评论 »

  1. joomlagate said,

    六月 27, 2008 at 3:36 下午

    如何自源更新 po 文件?

    我下载并安装了 Xchat for Windows 软件,发现其中文语言文件 xchat.mo 有些地方没有汉化完全。我转换成 po 文件准备更新。用 POedit 打开后发现缺少几行代码,但是无法插入新的。

    看来只能用“更新”的方法来增加新条目。但是官方网站找不到 POT 文件。我想用“自源更新”方式,但是菜单上那个命令是灰色的,不能用。

    我怎样才能使用“自源更新”方式?是否将 po 文件复制到 Xchat 的安装目录去?

    谢谢!

  2. sam said,

    五月 28, 2009 at 6:42 下午

    端午节快乐。
    我在PHP里用了MO%!#¥……!#¥%@#%@#¥

    当我把浏览器编码改成UTF-8的时候,中文会显示乱码,然后改成了GBK,看起来正常,没有乱码。

    但是这样的话,我就不能向MYSQL插入中文了,只能插入英文,如果插入中文就是空白的。

    我得改成UTF-8才行,但是有乱码,应该是我的MO文件有问题吧?
    但是我已经把PO文件能改成UTF-8的两个地方都改成了UTF-8了。

    这是什么原因呢?

  3. Kim Chow said,

    五月 29, 2009 at 1:26 上午

    好象直接使用PHP自动的Gettext工具有问题,我是提取了Wordpress处理多语言的代码实现的。所以还没有出现你说的情况。

    还有,你提到的插入数据库乱码或空白问题,你应该确保输入的源是UTF-8,PHP的程序为UTF-8,如果Mysql是4.1以上的,也需要为UTF-8才不会有乱码或空白的现象的。

  4. nietsche said,

    十二月 1, 2009 at 12:33 下午

    为何翻译之后总是有gbk无法转换的问题?我Poedit设置的是utf8,为何又成了gbk呢?

RSS feed for comments on this post · TrackBack URL

留下评论