手动更改 Flask Babel 语言

Ver*_*nce 3 python flask flask-babel

我正在使用 Flask Babel 来翻译我的 Flask Python 应用程序。目前我只有区域设置的翻译机制,但是如果用户除了他的位置之外还想将位置更改为英语怎么办?有什么办法可以手动更改区域设置吗?

这是我的 Flask Babel 函数,它获取用户区域设置并返回语言。它位于我的__init__.py文件中。

@babel.localeselector
def get_locale():
    print "LANGUAGE PT"
    #return 'de' -> manually change to the desired language
    request.accept_languages.best_match(LANGUAGES.keys()) 
Run Code Online (Sandbox Code Playgroud)

我真的很感谢任何帮助!

此致

MrL*_*eeh 6

Flask-Admin的文档中显示了执行此操作的好方法

@babel.localeselector
def get_locale():
    if request.args.get('lang'):
        session['lang'] = request.args.get('lang')
    return session.get('lang', 'en')
Run Code Online (Sandbox Code Playgroud)

现在,您可以在以下位置尝试该应用程序的法语版本:http://localhost:5000/admin/?lang=fr

您仍然可以通过 BABEL_DEFAULT_LOCALE 指定默认语言。