ZPT テンプレートで Pyramid を使用して Web アプリを作成しています。フォーム フィールドの現在の値の設定などを簡単にするために、フォーム テンプレート マクロ ライブラリを作成しようとしています。また、リンガ メッセージ エクストラクタを使用して、ローカリゼーション用の文字列を自動的に取得しています。ただし、エクストラクタをマクロ タグの属性で動作させる方法がわかりません。たとえば、次のようなマクロがあるとします。
<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']"/>
テキスト「初期値」は、メッセージ エクストラクタによって取得されません。これを実現する方法はありますか?可能であれば、文字列をテンプレート内に保持したいのですが、ビューで生成されたデフォルト値のすべての文字列を呼び出し可能にすることで、これを回避できることがわかっています。属性で使用するマクロに値を渡すためのより良い方法があるでしょうか?