操作系统:Ubuntu(Linux)
Linux 下 Python 是已经安装好的。
###1.生成翻译文件模板并修改相应内容
Python 有个 gettext
模块用以支持 i18n
,在终端中直接通过命令 pygettext
使用。
user@ubuntu: pygettext -o lang.po
运行命令后会生成翻译文件模板 lang.pot,如果不提供 -o 参数,直接运行命令,生成的文件名默认为 messages.pot,内容如下:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2014-08-19 16:37+CST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
将 charset=CHARSET
和 Content-Transfer-Encoding: ENCODING
改为自己需要的编码,
如 Linux 下改为 charset=utf-8、Content-Transfer-Encoding: utf-8
,其他选项可根据需要自行修改;
修改完成后内容如下:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2014-08-19 16:37+CST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: utf-8\n"
"Generated-By: pygettext.py 1.5\n"
###2.建立翻译文件目录结构
建立翻译文件路径,如,我们翻译中英文的话,需要建立一个翻译文件目录结构,如下:
中文./locale/cn/LC_MESSAGES
英文./locale/en/LC_MESSAGES
###3.添加翻译内容并生成二进制翻译文件
在 lang.po 文件后面添加要翻译原文和翻译结果,格式如下:
msgid "Hello" # 原文
msgstr "你好" # 译文
生成翻译文件的二进制文件
msgfmt lang.po -o ./locale/cn/LC_MESSAGES/lang.mo
msgfmt lang.po -o ./locale/en/LC_MESSAGES/lang.mo
# 通过未添加任何翻译内容的 lang.po 得到
###4.python 使用翻译文件的方法
最后由 Python 进行调用,完成国际化:
###5.示例代码下载