我们在使用 WordPress 及其插件时,经常可以找到汉化的版本,一般是通过一个汉化过(翻译过)的 mo 文件来实现( WordPress 仅可识别 mo 文件),实际上不单 WordPress ,包括很多桌面应用程序都是是依靠 po 文件或 mo 文件来实现多语言版本.如果原作者提供了一个 po 文件或 mo 文件,那么我们就可以通过相关工具来自行汉化,或者翻译成其他语言版本.因为 mo 文件不能直接编辑,所以我们得编辑 po 文件,若仅有 mo 文件,那么就应该先把它转换成 po 文件后再进行编辑翻译.
php学习之家http://www.444p.com
至于编辑工具,由于 po 文件本身就是一个文本文件,所以任何文本编辑器都可以使用.除了专门编辑 po 文件的 poEdit ,还推荐使用 poEdit 、EditPlus、UltraEdit或者你喜欢的 vi 或 vim. www.444p.com
我们来看一个 po 文件,这是 yskin 制作的 WordPress 2.11 中文版 po 文件 中的一部分 www.444p.com
msgid ""
msgstr ""
"Project-Id-Version: WordPress 2.1-1.0\n"
"PO-Revision-Date: 2007-02-22 12:35+0800\n"
"Last-Translator: yskin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Basepath: d:/wordpress\n"
"X-Poedit-Language: Simplified Chinese\n"
"X-Poedit-Country: China\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _e;__;__ngettext:1,2\n"
"Language-Team: \n"
"POT-Creation-Date: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SearchPath-0: .\n" www.444p.com php学习之家
# 第一条要翻译的字符串.
#: wp-comments-post.php:15
msgid "Sorry, comments are closed for this item."
msgstr "对不起,这篇文章禁止评论."
上面是这个 po 文件的最初部分,各行意思一目了然,注意编码尽可能采用UTF-8.
www.444p.com
# 第一条要翻译的字符串.
#: wp-comments-post.php:15
msgid "Sorry, comments are closed for this item."
msgstr "对不起,这篇文章禁止评论." www.444p.com
这段就是po文件的主体结构了,每一个翻译项占一段.#: wp-comments-post.php:15 说明字符串相应的位置; msgid "Sorry, comments are closed for this item." 翻译前的原文; msgstr "对不起,这篇文章禁止评论." 翻译后的字符串.以此类推,即可完成所有资源的翻译.非常简单. php学习之家
那么如何将 po 文件编译成(转换) mo 文件呢?
如如果你使用的是 poEdit ,按 Ctrl + s 保存就会自动生成相应的 po 文件和 mo 文件;
或者在命令提示符界面,使用 msgfmt demo.po 命令将po文件编译为可用的 demo.mo 文件,用 msgunfmt demo.mo 命令转回 demo.po 文件,这些命令在 poEdit 的安裝目录下有,可以拷贝msgunfmt.exe 、msgfmt.exe 及相关链接库文件 gettextlib.dll 、gettextsrc.dll 、iconv.dll 、intl.dll 到 c:/windows/system32 目录下,或者安装 .Net 2.0环境。
另外推荐一款 GUI 界面的转化程序 po2mo.exe ,作者的说明:该程序是调用 msgfmt.exe 和 msgunfmt.exe 文件,从而进行po 、mo 文件互转。文件是用C#写的,需要.Net 2.0环境。 www.444p.com
www.444p.com版权所有
















