Почему невозможно локализовать маршруты колб с помощью Flask-Babel? - PullRequest
0 голосов
/ 04 декабря 2018

Я локализую контент / страницы своего приложения с помощью flask-babel и хотел бы локализовать URL-адреса вместе с ним (локализованные URL-адреса приведут к бета-производительности SEO).

Так что в итоге я получу URL-адресавот так:

  1. www.example.com / about
  2. 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'))
...