0

我有一个应用程序,我设法使用罗马尼亚语和英语的翻译。我想按下“英语”按钮并将网站翻译成英文,当按下“罗马尼亚语”时,网站应该翻译成罗马尼亚语。到目前为止,我已经做到了这一点,但是每当我点击英语或罗马尼亚语时,网站都会转到主页。如何将烧瓶页面重定向到当前页面,例如联系页面?现在,如果我在联系页面上并按英语,该网站会被翻译成英语,但会将我重定向到主页。我正在使用 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
4

0 回答 0