如何在弗拉斯克使用翻译



我有一个应用程序,在其中我设法使用了罗马尼亚语和英语的翻译。我想按下按钮";英语";并将网站翻译成英文,当按下";罗马尼亚语";网站应该翻译成罗马尼亚语。

到目前为止,我已经做到了,但每当我点击英语或罗马尼亚语时,网站都会转到主页。如何将烧瓶页面重定向到当前页面,例如联系人页面?现在,如果我在联系人页面上;英语";,该网站被翻译成英文,但将我重定向到主页。我正在使用Flask Babel进行翻译。

对于按钮,我在index.html中有以下代码:

<a class="dropdown-item" href="/language/en">English</a>
<a class="dropdown-item" href="/language/ro">Romanian</a>

来自app.py的翻译代码是:

LANGUAGES = {
'en': 'English',
'ro': 'Romanian'
}
@app.route('/')
def home():
return render_template("index.html")
@app.route('/language/<language>')
def set_language(language=None):
session['language'] = language
return redirect(url_for('home'))
@babel.localeselector
def get_locale():
try:
language = session['language']
except KeyError:
language = None
if language is not None:
return language
return request.accept_languages.best_match(LANGUAGES.keys())
@app.context_processor
def inject_conf_var():
return dict(
AVAILABLE_LANGUAGES=LANGUAGES,
CURRENT_LANGUAGE=session.get('language', request.accept_languages.best_match(LANGUAGES.keys())))
def redirect_url(default='index'):
return request.args.get('next') or 
request.referrer or 
url_for(default)

@app.route('/language/<language>')
def set_language(language=None):
session['language'] = language
return redirect(redirect_url())  # redirect to current url

这个答案是作为对"如何在Flask使用翻译?"问题的编辑发布的?通过OP moro_922在CC by-SA 4.0下。

最新更新