2009-07
08

很多软件都支持gettext,比如WordPress、ZenPhoto等。那么要想做个语言包,就得用到gettext这个工具。以ZenPhoto为例,使用方法如下:

首先要找出所有需要翻译的文件:

$ cd zenphoto
$ find . -name "*.php" > filelist.txt

然后从所有需要翻译的文件中提取出英文字符串。

$ xgettext --from-code utf-8 -f filelist.txt -d zenphoto

这样,xgettext命令就会分析所有文件,找出其中需要翻译的字符串(即php中调用gettext所用的字符串)并输出到zenphoto.po中。--from-code参数指定源代码的编码格式。ZenPhoto的源代码中,gettext函数参数中含有一些UTF-8的字符(实际上应该没有),如果不指定这个参数,xgettext就无法正确识别这些UTF-8字符。-f 指定要分析的文件列表。-d指明输出文件的名称,扩展名为.po。

然后创建语言文件夹,把.po文件放进去。ZenPhoto的话,操作方法如下(当前目录为zenphoto根目录):

$ mkdir -p locale/zh-CN/LC_MESSAGES
$ mv zenphoto.po locale/zh-CN/LC_MESSAGES
$ cd locale/zh-CN/LC_MESSAGES

接下来翻译zenphoto.po文件就行了。

翻译完成后,执行如下命令将.po文件编译成.mo文件:

$ msgfmt -o zenphoto.mo zenphoto.po

然后重启httpd就能看到翻译的效果。

忘了说了,如果系统上没有xgettext和msgfmt命令,只需安装gettext包即可。



这篇文章有 4 条评论了,快来一起讨论讨论吧!
#1
lala
2009-07-09 10:33

做多语言版的必备工具

#2
午夜兰花手札
2009-07-18 01:13

尊敬的博主:
您好。
我来自午夜兰花手札。我非常希望同贵站交换友情链接,不知您是否同意?
如果您同意和我的小站(专注精典财金资讯及财金名人名言整理)交换友情链接,烦请您在我的留言板给我一个回复;如果我的小站入不了您的法眼,还请您原谅我的打扰。
(留言板地址:http://www.xyzlove.com/Plug/MessageBoard/index.asp)
顺祝:万事如意!
xyzLove 敬呈
2009.07.17

#3
charlee
2009-07-22 19:23

@午夜兰花手札 谢谢,已加入您的网站的链接!

#4
午夜兰花手札
2009-07-22 21:03

charlee兄太客气了!
感谢charlee兄对小弟的提携,小弟也已做上charlee兄的链接,欢迎charlee兄随时“检阅”。
顺祝charlee兄:工作顺利,万事如意!

添加评论

Security Code: