Issue #12 new

Babel integration

Andy Mikhailenko
repo owner created an issue

By kossmak:

in {{{foo/init.py:FooPlugin.make_env}}}: {{{ t = self.app.get_feature('templating')

jinja.Environment

self.templenv = t.env['templating_env']

составляем словарь из переводов

self.translations = {} self.translations['ru'] = support.Translations.load( 'solution/translation', ['ru'], 'messages') self.translations['en'] = support.Translations.load( 'solution/translation', ['en'], 'messages')

загружаем дефолтный перевод в jinja

self.templenv.install_gettext_translations( self.translations['ru'], newstyle=False)

t.register_templates(name) }}} in {{{foo/i18n.py}}}: {{{ def changelang(lang=1): """ Смена активного языка в шаблонах jinja2 """ langs = { '1': 'ru', '2': 'en', 'ru': 'ru', 'en': 'en', } # дефолтный перевод: 'ru' lang = langs.get(unicode(lang), 'ru') appf = app.get_feature('distrs') # получаем ссылку на окружение Jinja, используемое в приложении templenv = appf.env.get('templating_env') # получаем ссылку на словарь с переводами translations = appf.env.get('translations') # устанавливаем перевод templenv.install_gettext_translations( translations[lang], newstyle=False) }}}

Comments (0)

  1. Log in to comment