我正在尝试从Pyramid项目中的模板文件中翻译文本。或多或少,例如:http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/chameleon_i18n.html
现在我如何摆脱.pot文件评论中的<dynamic element>
?我希望看到其余的代码及其标签。
我的变色龙模板(.pt):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
i18n:domain="MyDomain">
<head>
...
</head>
<body>
<div i18n:translate="MyID">
This will appear in the comments.
<span>This will NOT.</span>
While this will again appear.
</div>
</body>
</html>
我使用Babel和Lingua在我的setup.py中提取以下选项的消息:
message_extractors = { '.': [
('**.py', 'lingua_python', None ),
('**.pt', 'lingua_xml', None ),
]}
我的.pot文件中的相关输出如下所示:
#. Default: This will appear in the comments. <dynamic element> While this will
#. again appear.
#: myproject/templates/base.pt:10
msgid "MyID"
msgstr ""
答案 0 :(得分:2)
明确不支持:翻译应该只包含文本 - 它不应该包含标记。否则你会遇到两个问题:
通常需要在其中翻译带有动态组件或标记的项目:对于那些使用i18n:name属性的项目。例如,您可以这样做:
<p i18n:translate="">This is <strong i18n:name="very" i18n:translate="">very</strong> important.
这会给你两个字符串进行翻译:{{1}}和This is ${very} string
。