在渲染模板Jinja2之前如何指定Babel翻译语言?

时间:2019-01-14 21:27:00

标签: python python-3.x jinja2 babel

我在任何框架之外都使用Jinja2和Babel。 我使用Babel生成了俄语和英语的翻译(.po)文件。 我在main.py

中有此代码
if __name__ == '__main__':
    templateLoader = FileSystemLoader(searchpath="templates")

    env = Environment(
        loader=templateLoader,
        extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape'],
        autoescape=select_autoescape(['html', 'xml'])
    )

    translations = Translations.load('locale', ['ru', 'en'])
    env.install_gettext_translations(translations)

    template = env.get_template('start.html')

以及start.html

的内容
{% trans %}Hey! Enter some text{% endtrans %}

如何在渲染模板之前指定语言?

例如将参数传递到template.render()

template.render(lang='ru')
>>> 'Привет! Введите какой-нибудь текст'

template.render(lang='en')
>>> 'Hey! Enter some text'

0 个答案:

没有答案