Я использую Jinja2 и Babel вне рамок.
Я генерирую файлы перевода (.po
) с Babel для русского и английского языков.
У меня есть этот код в 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'