如何點擊按鈕切換flask 的語言

參考鏈接:https://stackoverflow.com/questions/61120324/how-to-change-language-of-flask-babel-on-a-button-click

我的flask-babel都已經(jīng)設(shè)置好了,才能進入一下的代碼工作

首先,您需要將地址存儲在主應(yīng)用程序文件view.py中:

@app.route('/language=<language>')
def set_language(language=None):
      session['language'] = language
      return redirect(url_for('home'))

然后在 init.py 中:

@babel.localeselector
def get_locale():
    if request.args.get('language'):
        session['language'] = request.args.get('language')
    return session.get('language', 'en')

要從模板訪問當前語言,請執(zhí)行以下操作:
如果你自己有config.py文件,并在文件中已設(shè)置app.config['LANGUAGES'],在這里不用設(shè)置了

app.config['LANGUAGES'] =  {
    'en': 'English',
    'ge': 'German',
}
app.secret_key = "super secret key"

 @app.context_processor
 def inject_conf_var():
        return dict(AVAILABLE_LANGUAGES=app.config['LANGUAGES'], CURRENT_LANGUAGE=session.get('language', request.accept_languages.best_match(app.config['LANGUAGES'].keys())))

這里是模板文件:

{% for language in AVAILABLE_LANGUAGES.items() %}
    {% if CURRENT_LANGUAGE == language[0] %}
        {{ language[1] }}
    {% else %}
        <a href="{{ url_for('set_language', language=language[0]) }}" >{{ language[1] }}</a>
    {%  endif %}
{% endfor %}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容