Установите атрибут html tag lang соответствующим образом, используя babel - PullRequest
0 голосов
/ 18 декабря 2018

Глядя на документы, я не нахожу упоминания об этой довольно простой и распространенной необходимости:

Я хочу установить атрибут html tag lang в соответствии с выбранным языковым стандартом - без явной передачи его каждый разк render_template, например

<html lang="{{ lang }}">

Единственное, что приходит мне в голову, это добавление Babel.locale_selector_func к контексту, что мне кажется чрезмерным

babel = Babel(app)
...
@app.context_processor
def utility_processor():
    return dict(lang=babel.locale_selector_func)

, и тогда я могу сделать

<html lang="{{ lang() }}">

1 Ответ

0 голосов
/ 18 декабря 2018

Я думаю, что введение языка в контекст - это путь.

Только одно небольшое изменение, которое я бы сделал сам, я бы вызвал функцию в python и просто возвратил значение вшаблон вместо вызова функции в шаблоне:

babel = Babel(app)
...
@app.context_processor
def utility_processor():
    return dict(lang=babel.locale_selector_func())

...

<html lang="{{ lang }}">

Я немного просмотрел исходный код babel, но они только вводят функции перевода вшаблон, а не фактический язык.Так что я думаю, что это - только путь.

...