Найти - Пользователи
Полная версия: Pyramid Jinja2 I18n
Начало » Pyramid / Pylons / TurboGears » Pyramid Jinja2 I18n
1 2 3 4
brutka
DcDr
brutka
а макросы - это все равно как функция include в старом добром PHP, и в чем тогда преимущество?
Э? А в чем преимущество наследования?
вместо нескольких инклудов - указывается наследование 1 раз
regall
brutka
вместо нескольких инклудов - указывается наследование 1 раз
Ошибаетесь, наследование - это все равно что использование 1-го макроса вместо нескольких
brutka
regall
brutka
вместо нескольких инклудов - указывается наследование 1 раз
Ошибаетесь, наследование - это все равно что использование 1-го макроса вместо нескольких
не вижу разницы в определении разницы с инклудами
zheromo
Не стоит забывать, что еще есть super() - вставка содержимого наследуемого блока.
К тому же понятие блока более гибче, т.к. они могут быть вложенными.
regall
brutka
не вижу разницы в определении разницы с инклудами
Тогда вам стоит углубится в изучение сути предмета.
brutka
ziro
Да, в ini, по умолчанию они отсутствуют - надо добавить.
покажите, где почитать об этом или дайте, пожалуйста, пример.

я доабвил в .ini строку:
jinja2.extensions = jinja2.ext.i18n

затем в файле вида сделал from gettext import gettext и добавляю в render_to_response переменную gettext

это что - всегда так нужно делать? для каждого вида?
нельзя ли модуль gettext как-то сделать импортируемым в контекст по умолчанию?
zheromo
brutka
то что - всегда так нужно делать? для каждого вида?
Я же говорил - поделка. :)

в контекст как-то так надо:
jinja2_environment.install_gettext_callables(
lambda x: translations.ugettext(x),
lambda s, p, n: translations.ungettext(s, p, n),
newstyle=True
)
brutka
zheromo
brutka
то что - всегда так нужно делать? для каждого вида?
Я же говорил - поделка. :)
так..
не издеваться! я в самом начале пути Jinja (путь начал так как на этом же форуме отзывались о ней хорошо), а вы меня сбиваете :)
zheromo
в контекст как-то так надо:
jinja2_environment.install_gettext_callables(
lambda x: translations.ugettext(x),
lambda s, p, n: translations.ungettext(s, p, n),
newstyle=True
)
не пойму, это где? при запуске в __init__?
а translations - это что? откуда его импортировать?

Спасибо!
zheromo
brutka
не издеваться! я в самом начале пути Jinja
Это я не про Jinja а
zheromo
вопрос только нафига было эту нелепую поделку создавать - это я про jinja2_pyramid
brutka
а translations - это что? откуда его импортировать?
Это сам перевод, например
from babel import support
translations = support.Translations.load(path, [lang])
brutka
не пойму, это где? при запуске в __init__?
Ну jinja2_environment - это окружение Jinja, получить его можно как-то так
jinja2_environment = registry.queryUtility(IJinja2Environment)
и применить
brutka
zheromo
brutka
не издеваться! я в самом начале пути Jinja
Это я не про Jinja а
zheromo
вопрос только нафига было эту нелепую поделку создавать - это я про jinja2_pyramid
brutka
а translations - это что? откуда его импортировать?
Это сам перевод, например
from babel import support
translations = support.Translations.load(path, [lang])
brutka
не пойму, это где? при запуске в __init__?
Ну jinja2_environment - это окружение Jinja, получить его можно как-то так
jinja2_environment = registry.queryUtility(IJinja2Environment)
и применить
блин, ну не получается у меня :(

1. registry - это from pyramid.threadlocal.get_current_registry() ?
2. что значит “.. и применить” ?

делаю в __init__.py так:
registry = get_current_registry()
jinja2_environment = registry.queryUtility(IJinja2Environment)
jinja2_environment.install_gettext_callables(
lambda x: translations.ugettext(x),
lambda s, p, n: translations.ungettext(s, p, n),
newstyle=True
)
получаю ошибку:

jinja2_environment.install_gettext_callables(
AttributeError: ‘NoneType’ object has no attribute ‘install_gettext_callables’
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB