Flask应用未调用Babel语言环境选择器

用户名

我正在使用Flask-Babel将本地化添加到我的Flask应用程序中,但似乎无法更改语言。我遵循了Babel关于创建po / mo文件的所有说明-我不认为我的问题与翻译数据有关...我不知道如何更改语言...似乎/应该很明显。

我的调试显示babel.localeselector没有被调用。我的实现调用refresh(),我认为应该调用babel.localeselector(以某种方式...因为我看不到它是如何工作的,因为该refresh()命令似乎只是从应用程序上下文中删除了一些键...我不知道该如何触发调用到babel.localeselector

app = Flask(__name__)
babel = Babel(app)

@babel.localeselector
def get_locale():
    # if a user is logged in, use the locale from the user settings
    user = User.get_by_id(session['user_id'])
    if user is not None: return user.lang
    return 'en'

并且,当用户登录时,将调用此函数,

from flask_babel import refresh

def login(user_id):
    # Gets called when user successfully logs in
    refresh()

我已经确认refresh()正在打电话。但是语言没有改变。

更新:也尝试过这个,

from flask import current_app
from common.models import User
from flask_babel import refresh

def login(user_id):
    # Gets called when user successfully logs in
    user = User.get_by_id(user_id)
    current_app.config['BABEL_DEFAULT_LOCALE'] = user.lang
    refresh()
用户名

找出问题所在。我在用

import gettext
_ = gettext.gettext

代替,

from flask_babel import gettext as _

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章