我在任何框架之外都使用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'