红联Linux门户
Linux帮助

gettext国际化用法示例

发布时间:2015-11-06 15:54:52来源:linux网站作者:w妙音

安装gettext

sudo yum install gettext


gettext工具

gettext: 进行translate。

xgettext: 从程序中抽取调用gettext进行本地化的字符串,生成一份.po结尾的配置文件。

msgfmt: 将配置好的本地化配置文件进行转换成gettext使用的格式。


准备demo.py

#encoding=utf-8
import gettext

# demo对应mo文件名,locale为locale目录地址,zh_CN为locale目录下目录名
zh = gettext.translation("demo", "locale", languages=["zh_CN"])
# 激活_()
zh.install(True)
print _("hello world")


生成po文件

从程序文件中抽取,使用gettext的字符串,生成po文件

xgettext -L python -o zh_CN.po demo.py


编辑po文件

...
#修改编码为utf-8
"Content-Type: text/plain; charset=utf-8\n"
...

#加上翻译
#: demo.py:6
msgid "hello world"
msgstr "你好,世界"


创建locale目录

mkdir -p locale/zh_CN/LC_MESSAGES


编译po文件

msgfmt -o ~/locale/zh_CN/LC_MESSAGES/demo.mo zh_CN.po


查看结果

➜  ~  python demo.py
你好,世界


Linux下安装php的gettext扩展:http://www.linuxdiyf.com/linux/5048.html