推荐答案
-- -------------------- ---- ------- ---- ----- ------ ------ --------------- ---- ----------- ------ ------ ------- --- - --------------- ---------------------------------- - ---- ------------------------------------------- - -------------- ----- - ---------- --------------------- --- ------------- ------ ---- --------------- --- -------- ------ ----------------------------- ----------------------- --------- -- -------- -- ----------- -------------------
本题详细解读
1. 安装 Flask-Babel
首先,你需要安装 Flask-Babel 扩展。可以通过 pip 安装:
pip install Flask-Babel
2. 配置 Flask-Babel
在 Flask 应用中,你需要配置 BABEL_DEFAULT_LOCALE
和 BABEL_TRANSLATION_DIRECTORIES
。BABEL_DEFAULT_LOCALE
用于设置默认的语言,BABEL_TRANSLATION_DIRECTORIES
用于指定翻译文件的存放目录。
app.config['BABEL_DEFAULT_LOCALE'] = 'zh' app.config['BABEL_TRANSLATION_DIRECTORIES'] = 'translations'
3. 初始化 Babel
在 Flask 应用中初始化 Babel 扩展:
babel = Babel(app)
4. 设置语言选择器
通过 @babel.localeselector
装饰器定义一个函数来设置当前的语言。这个函数返回一个语言代码,例如 'zh'
表示中文。
@babel.localeselector def get_locale(): return 'zh'
5. 使用 gettext 进行翻译
在视图函数中,使用 gettext
函数来标记需要翻译的字符串。例如:
@app.route('/') def index(): return render_template('index.html', message=gettext('Hello, World!'))
6. 生成翻译文件
使用 pybabel
命令生成翻译文件:
pybabel extract -F babel.cfg -o messages.pot . pybabel init -i messages.pot -d translations -l zh
然后编辑生成的 .po
文件,添加翻译内容,最后编译翻译文件:
pybabel compile -d translations
7. 运行应用
最后,运行 Flask 应用,访问 /
路由,你将看到翻译后的内容。
python app.py