【发布时间】:2013-12-07 16:22:30
【问题描述】:
我刚刚开始使用 Django 国际化并试图了解使用 {% blocktrans %} 的最佳实践。每个段落最好使用一个{% blocktrans %},还是应该有一个包含许多段落的大{% blocktrans %}?
拥有一个大的{% blocktrans %} 会更快,并使我的模板看起来更干净,但我担心的是:
- 它会导致 HTML 标签(如
<p>...</p>)成为翻译字符串的一部分 - 如果我在我的大块的一部分中更改一件事,
msgid会更改,这似乎会影响其他段落。如果我有更小的块,更改会更加孤立(我想)。 - 如果我进行格式更改,例如在段落之间添加/删除换行符,则会更改
msgid。
我也想知道格式化。在{% blocktrans %} 内换行是否有任何复杂性?或者有领先的空间?例如:
{% blocktrans %}
You have {{ num_messages }} messages.
Another sentence.
{% blocktrans %}
欢迎任何建议。
【问题讨论】:
-
如果您要在 blocktrans 中放入这么多东西,您可能需要考虑使用一些内容管理系统 - 不一定是完整的 cms,但至少可以少一些硬编码。
-
(@brunodesthuilliers 写的评论指的是我在编辑之前的问题中的代码示例。)
-
不过还是有道理的。
-
@IgnacioVazquez-Abrams 谢谢。有人推荐 CMS 吗?
-
我会使用夹层,但使用 CMS 并不能解决您的 i18n 问题,trans 和 blocktrans 仅适用于 TEXT,因此您不应该在 blocktrans 中使用 HTML 标签。
标签: python django django-templates django-i18n