oslo.i18n简介
介绍
gettext模块为Python模块和应用程序提供国际化(i18n)和本地化(l10n)支持。该模块既支持GNU gettext风格的API,也支持更高级的、基于类的API。通过gettext,在应用程序中,可以只使用一种自然语言。之后,在运行时,再将其翻译成多种不同的自然语言。
本文档简单测试gettext模块的基本功能和用法,并研究openstack如何在其环境中集成gettext相关功能。
gettext示例
首先,在python源码包的Tools下面找到i18n的目录,执行其中的pygettext.py生成文件messages.pot,具体如下:
[root@host-10-0-60-40 ~]$ cd Python-2.7.5/Tools/i18n
[root@host-10-0-60-40 i18n]$ python pygettext.py
# 生成模板文件messages.pot
[root@host-10-0-60-40 i18n]$ ls
makelocalealias.py messages.pot msgfmt.py pygettext.py
修改messages.pot文件,设置charset=UTF-8。
接下来添加需要翻译的msgid及msgstr对:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2020-04-22 10:13+CST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
msgid "Testing demo!"
msgstr "测试示例!"
根据pot文件创建mo文件