|
七
08
|
本文介绍如何 汉化、翻译 po 文件 及 编译、转换成 mo 文件
我们在使用 WordPress 及其插件时,经常可以找到汉化的版本,一般是通过一个汉化过(翻译过)的 mo 文件来实现( WordPress 仅可识别 mo 文件),实际上不单 WordPress ,包括很多桌面应用程序都是是依靠 po 文件或 mo 文件来实现多语言版本。如果原作者提供了一个 po 文件或 mo 文件,那么我们就可以通过相关工具来自行汉化,或者翻译成其他语言版本。因为 mo 文件不能直接编辑,所以我们得编辑 po 文件,若仅有 mo 文件,那么就应该先把它转换成 po 文件后再进行编辑翻译。
至于编辑工具,由于 po 文件本身就是一个文本文件,所以任何文本编辑器都可以使用。除了专门编辑 po 文件的 poEdit ,还推荐使用 poEdit 、EditPlus、UltraEdit或者你喜欢的 vi 或 vim。
我们来看一个 po 文件,这是 yskin 制作的 WordPress 2.11 中文版 po 文件 中的一部分
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”# 第一条要翻译的字符串。
#: wp-comments-post.php:15
msgid “Sorry, comments are closed for this item.”
msgstr “对不起,这篇文章禁止评论。”
上面是这个 po 文件的最初部分,各行意思一目了然,注意编码尽可能采用UTF-8。
# 第一条要翻译的字符串。
#: wp-comments-post.php:15
msgid “Sorry, comments are closed for this item.”
msgstr “对不起,这篇文章禁止评论。”
这段就是po文件的主体结构了,每一个翻译项占一段。#: wp-comments-post.php:15 说明字符串相应的位置; msgid “Sorry, comments are closed for this item.” 翻译前的原文; msgstr “对不起,这篇文章禁止评论。” 翻译后的字符串。以此类推,即可完成所有资源的翻译。非常简单。
那么如何将 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环境。
名次解释:什么是po文件?、什么是mo文件?、什么是GNU gettext?、什么是 I18N?、什么是 L10N ?、I18N 和 L10N 的区别?、
欢迎各位留言探讨。
3 Pings to “如何汉化 po 文件及编译成 mo 文件”
11 Responses to “如何汉化 po 文件及编译成 mo 文件”
-
1. zEUS. Says:
七月 9th, 2007 at 9:47 下午哇,又是英语,完了完了我又晕了…
-
2. 西岸 Says:
七月 9th, 2007 at 9:52 下午我今天才发现博主居然是医生!(我母亲刚从华西医大退休)
没想到你IT钻研的这么深入,佩服佩服!我最近比较忙碌,不过有时间还是要关注各位博友的日志。
-
3. Yorick Says:
七月 9th, 2007 at 11:47 下午@西岸
见笑了,皮毛而已。 -
4. 瓶子 Says:
七月 10th, 2007 at 8:39 上午啊,多谢Yorick 对PO的剖析,以后看来可以自个修改控制面板了.
-
5. 总而言之,统而言之 Says:
七月 10th, 2007 at 11:35 下午用 poedit 吧,非常方便~
-
6. Yorick Says:
七月 11th, 2007 at 10:55 下午总统,你的博客打不开了。
-
7. 康 Says:
十月 19th, 2007 at 12:12 下午哈哈,poedit的地址错了啊。
ps,没想到在这里见到老道和瓶子的留言^__^
-
8. Xiaodu Says:
六月 15th, 2008 at 5:01 下午唉,poedit是.net不是.org额……进去毛那里了,满屏幕的动物图片……吓人
还是谢谢你的资料~! -
9. bolo Says:
六月 4th, 2009 at 7:39 下午太好了,正需要
-
10. 网络砖家 Says:
十二月 14th, 2009 at 3:08 上午我手上正好有我现在用的主题的MO文件,要改文字,正好到你这里看到了,多谢。。。
-
11. 网络砖家 Says:
十二月 20th, 2009 at 11:57 上午我pingback给成功了没?
十月 25th, 2007 at 9:36 下午
[...] 2.如何汉化 po 文件及编译成 mo 文件 From 行云流水 | Yorick’s Blog 我们在使用 WordPress 及其插件时,经常可以找到汉化的版本,一般是通过一个汉化过(翻译过)的 mo 文件来实现( WordPress 仅可识别 mo 文件),实际上不单 WordPress ,包括很多桌面应用程序都是是依靠 po 文件或 mo 文件来实现多语言版本。如果原作者提供了一个 po 文件或 mo 文件,那么我们就可以通过相关工具来自行汉化,或者翻译成其他语言版本。因为 mo 文件不能直接编辑,所以我们得编辑 po 文件,若仅有 mo 文件,那么就应该先把它转换成 po 文件后再进行编辑翻译。 [...]
九月 13th, 2008 at 9:20 上午
[...] 原文网址:http://www.pihai.net/technology/how-to-translate-po-file.html [...]
一月 5th, 2010 at 3:02 下午
[...] 接着处理备案号的添加,我是在语言文件里改的。可以参考这篇文章。用poedit打开zh_CN.po,在合适的位置加上“浙ICP备09002473号”,当然包括链接代码。例如我是这么写的: ?View Code HTML浙ICP备<a href="http://www.miibeian.gov.cn/" title="浙ICP备09002473号">09002473</a>号 [...]