Я использую Pyramid с шаблонами ZPT для создания веб-приложения. Я пытаюсь создать библиотеку макросов шаблонов форм, чтобы упростить жизнь таким вещам, как установка текущих значений полей формы и т. Д. Я также использую экстракторы сообщений lingua для автоматического выбора строк для локализации. Однако я не могу понять, как заставить экстракторы работать с атрибутами в макросах. Например, скажем, у меня есть макрос, который выглядит так:
<tal:block metal:define-macro="text">
<input type="text" name="${field}" value="${request.params.get(field) or default_value}"/>
</tal:block>
И я использую его в шаблоне страницы следующим образом:
<tal:block tal:define="field 'fred'; default_value _('initial value')" metal:use-macro="form.macros['text']"/>
Текст "начальное значение" не будет получен экстрактором сообщений. Есть ли способ сделать это? Я хотел бы сохранить строки внутри шаблона, если это возможно, я знаю, что мог бы обойти это, имея все строки для значений по умолчанию, сгенерированных в представлении, вызываемом. Может быть, есть лучший способ передачи значений в макросы для использования в атрибутах?