如何在 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']"/>
消息提取器不会拾取文本“初始值”。有办法实现这一点吗?如果可能的话,我想将字符串保留在模板内,我知道我可以通过在可调用视图中生成默认值的所有字符串来解决这个问题。也许有更好的方法将值传递给宏以在属性中使用?
I'm using Pyramid with ZPT templates to make a web app. I'm attempting to make a form template macro library to make life easier for things like setting current values of form fields, etc. I'm also using the lingua message extractors to automatically pick up strings for localization. I can't figure out how to make the extractors work with attributes on macro tags though. For example, say I have a macro that looks like this:
<tal:block metal:define-macro="text">
<input type="text" name="${field}" value="${request.params.get(field) or default_value}"/>
</tal:block>
And I use it in a page template like this:
<tal:block tal:define="field 'fred'; default_value _('initial value')" metal:use-macro="form.macros['text']"/>
The text "initial value" won't get picked up by the message extractor. Is there a way to make this happen? I'd like to keep the strings inside the template if possible, I know I could work around this by having all the strings for default values generated in the view callable. Maybe there is there a better way of passing values to macros for use in attributes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用 [lingua] 版本 2(或更高版本)从模板中提取消息才能正常工作。
You need to use [lingua] to version 2 (or later) to extract messages from templates for this to work.