Django:blocktrans 条目未被翻译

Django: blocktrans entry is not being translated

我的 HTML

中有这个块
...
<a class="header" href="{% url 'listing' house_post.id %}">
  {% blocktrans with house_type=house_post.house_type.name trimmed %}
    {{house_type}}
  {% endblocktrans %}
</a>
...

house_type 的一个值为 "Condominium"。我在我的 .po 文件中添加了以下条目。

msgid "Condominium"
msgstr "ኮንዶሚኒየም"

我在 po 文件上 运行 compilemessages,当我切换语言时,其余的翻译工作。我已确保 house_type 的值设置为 "Condominium"。但由于某种原因,它没有被翻译。

此外,当我 运行 makemessages 时,该工具会注释掉我在 .po 文件中添加的内容。我在 运行ning compilemessages 之前取消注释它们。我不知道它为什么这样做,尽管它可能是一个线索。

可以将翻译文本添加到 .po 文件中。不是吗?

您的 blocktrans 的内容很可能是 {{house_type}} 的内容。不确定它来自哪里,但这是您必须翻译它的地方。不要忘记插入类似

的内容
from django.utils.translation import ugettext_lazy as _

到 header 的 py-files。

它没有被翻译,因为 {{house_type}} 将具有 house_post.house_type.name 的值。

blocktrans 实际上在您的代码中什么都不做。如果您想在句子中添加可翻译的文本,您将需要它。例如:

  {% blocktrans with house_type=house_post.house_type.name trimmed %}
    {{house_type}} Translate this part
  {% endblocktrans %}

如果你想要翻译的变量,你必须将翻译传递给 house_post.house_type.name