Я локализую контент / страницы своего приложения с помощью flask-babel и хотел бы локализовать URL-адреса вместе с ним (локализованные URL-адреса приведут к бета-производительности SEO).
Так что в итоге я получу URL-адресавот так:
- www.example.com / about
- www.example.com / nl / over-ons (голландский)
Теперь яможет иметь следующий маршрут на мой взгляд.
@site.route('/about', endpoint="about_en")
@site.route('/over-ons', endpoint="about_nl")
def about_page():
return render_template('about.html', title=gettext(u'About'))
и затем удобно вызвать маршрут из Джинджи, выполнив,
<a href="{{ url_for('site.about_'+ session['lang_code']) }}">{{ title }}</a>
Теперь это работает отлично и служит своей цели.Но я бы хотел найти абстрактное решение, так как этот подход вскоре приведет меня к не-СУХОМУ коду.Например, если мне нужно добавить новый язык на свой сайт, то мне придется обновить несколько видов и маршрутов, что, безусловно, нежелательно.
Можно ли как-нибудь это сделать?Я понимаю, что следующее не будет работать, потому что маршрут не является динамическим.
@site.route(gettext(u'/about'))
def about_page():
return render_template('about.html', title=gettext(u'About'))