- 安装依赖包
pip install babel
- 创建程序入口
main.py
import os
import gettext
"""
1. 根据用户系统的语言配置(系统的环境变量LANGUAGE, LC_ALL, LC_MESSAGES, LANG),自动选择语言
2. 在程序中实时切换语言
"""
"""
pybabel --list-locales
mkdir locale
pybabel extract . -o locale/base.pot
pybabel init -l zh -i locale/base.pot -d locale
pybabel compile -d locale
pybabel update -i locale/base.pot -d locale
"""
APP_NAME = "messages" # 必须和本地化文件中.mo文件名称相同
LOCALE_DIR = os.path.abspath("locale")
# gettext.bindtextdomain(APP_NAME, LOCALE_DIR)
# gettext.textdomain(APP_NAME)
# _ = gettext.gettext
# 这条语句会将_()函数自动放到python的内置命名空间中
gettext.install(APP_NAME, LOCALE_DIR)
# 获取简体中文翻译类的实例
lang_zh_CN = gettext.translation(APP_NAME, LOCALE_DIR, ["zh"])
# 这条语句会将_()函数自动放到python的内置命名空间中
# gettext.install(APP_NAME, LOCALE_DIR)
# 获取简体中文翻译类的实例
# lang_zh_CN = gettext.translation(APP_NAME, LOCALE_DIR, ["zh_CN"])
# 获取英文翻译类的实例
# lang_en = gettext.translation(APP_NAME, LOCALE_DIR, ["en"])
lang_zh_CN.install()
print(_("This is a translatable string."))
- 创建本地化翻译文件
pybabel --list-locales
mkdir locale
pybabel extract . -o locale/base.pot
pybabel init -l zh -i locale/base.pot -d locale
pybabel compile -d locale
pybabel update -i locale/base.pot -d locale
- 运行程序