如何在ZPT宏中提取i18n的属性



我正在使用Pyramid和ZPT模板制作一个web应用程序。我正在尝试制作一个表单模板宏库,以便在设置表单字段的当前值等方面更轻松。我还使用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']"/>

消息提取器不会拾取文本"初始值"。有办法做到这一点吗?如果可能的话,我想把字符串保留在模板中,我知道我可以通过调用视图中生成的默认值的所有字符串来解决这个问题。也许有更好的方法将值传递给宏以用于属性?

您需要使用[lingua]到版本2(或更高版本)来从模板中提取消息,这样才能工作。

最新更新