Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 5, 2011 15:42:54

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

DcDr
brutka
а макросы - это все равно как функция include в старом добром PHP, и в чем тогда преимущество?
Э? А в чем преимущество наследования?
вместо нескольких инклудов - указывается наследование 1 раз



Офлайн

#2 Апрель 5, 2011 15:54:18

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

brutka
вместо нескольких инклудов - указывается наследование 1 раз
Ошибаетесь, наследование - это все равно что использование 1-го макроса вместо нескольких



Офлайн

#3 Апрель 5, 2011 18:47:38

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

regall
brutka
вместо нескольких инклудов - указывается наследование 1 раз
Ошибаетесь, наследование - это все равно что использование 1-го макроса вместо нескольких
не вижу разницы в определении разницы с инклудами



Офлайн

#4 Апрель 5, 2011 19:04:30

zheromo
От:
Зарегистрирован: 2010-10-02
Сообщения: 356
Репутация: +  2  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

Не стоит забывать, что еще есть super() - вставка содержимого наследуемого блока.
К тому же понятие блока более гибче, т.к. они могут быть вложенными.



Отредактировано (Апрель 5, 2011 21:44:22)

Офлайн

#5 Апрель 5, 2011 20:16:57

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

brutka
не вижу разницы в определении разницы с инклудами
Тогда вам стоит углубится в изучение сути предмета.



Офлайн

#6 Апрель 6, 2011 00:17:48

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

ziro
Да, в ini, по умолчанию они отсутствуют - надо добавить.
покажите, где почитать об этом или дайте, пожалуйста, пример.

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

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

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



Отредактировано (Апрель 6, 2011 00:24:11)

Офлайн

#7 Апрель 6, 2011 07:06:39

zheromo
От:
Зарегистрирован: 2010-10-02
Сообщения: 356
Репутация: +  2  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

brutka
то что - всегда так нужно делать? для каждого вида?
Я же говорил - поделка. :)

в контекст как-то так надо:
jinja2_environment.install_gettext_callables(
lambda x: translations.ugettext(x),
lambda s, p, n: translations.ungettext(s, p, n),
newstyle=True
)



Офлайн

#8 Апрель 6, 2011 11:40:59

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

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 - это что? откуда его импортировать?

Спасибо!



Отредактировано (Апрель 6, 2011 11:49:52)

Офлайн

#9 Апрель 6, 2011 12:13:47

zheromo
От:
Зарегистрирован: 2010-10-02
Сообщения: 356
Репутация: +  2  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

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)
и применить



Офлайн

#10 Апрель 6, 2011 15:54:38

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyramid Jinja2 I18n

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’



Отредактировано (Апрель 6, 2011 16:19:29)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version