gettext国际化用法示例


  • 安装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
你好,世界


上篇: django-restful请求的访问限制 下篇: 去掉ssh初次登录询问yes/no