上一篇:用摄像头+VirtualDub录制视频 - 下一篇:使用Apache做负载均衡
版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2009/07/08/translate-with-gettext/以及本声明。
很多软件都支持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包即可。
2009-07-18 01:13
尊敬的博主:
您好。
我来自午夜兰花手札。我非常希望同贵站交换友情链接,不知您是否同意?
如果您同意和我的小站(专注精典财金资讯及财金名人名言整理)交换友情链接,烦请您在我的留言板给我一个回复;如果我的小站入不了您的法眼,还请您原谅我的打扰。
(留言板地址:http://www.xyzlove.com/Plug/MessageBoard/index.asp)
顺祝:万事如意!
xyzLove 敬呈
2009.07.17
2009-07-22 19:23
@午夜兰花手札 谢谢,已加入您的网站的链接!
2009-07-22 21:03
charlee兄太客气了!
感谢charlee兄对小弟的提携,小弟也已做上charlee兄的链接,欢迎charlee兄随时“检阅”。
顺祝charlee兄:工作顺利,万事如意!

2009-07-09 10:33
做多语言版的必备工具