документация Pyramid показывает как использовать внутренние представления i18n (и шаблоны). Но как его использовать вне представлений и шаблонов, где у нас нет доступа к текущим request
(например, в forms
и models
)?
@Michael сказал передать request
моделям и формам. Но так ли это? Я имею в виду, если поля формы определены до вызова метода __init__()
, то же самое с моделями. Они не видят никаких параметров из представлений...
В Pylons мы могли бы просто использовать get_lang()
и set_lang()
и определить предпочтительный язык в родительском контроллере, а затем использовать ugettext()
и ungettext()
в любом месте, которое мы хотим, не вызывая их напрямую из request
каждый раз (в представлениях).
Как это сделать в Пирамиде? Обратите внимание, что язык должен быть установлен в настройках пользователя (сеанс, файлы cookie, БД и т. д.).