手动更改语言Flask Babel

时间:2017-01-16 23:38:24

标签: python flask flask-babel

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

这是我的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()) 

我非常感谢任何帮助!

祝你好运

1 个答案:

答案 0 :(得分:2)

Flask-Admin

的文档中显示了执行此操作的好方法
@babel.localeselector
def get_locale():
    if request.args.get('lang'):
        session['lang'] = request.args.get('lang')
    return session.get('lang', 'en')

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

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