Django:没有翻译blocktrans条目

时间:2015-05-01 08:23:41

标签: django django-i18n

我的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 的一个值是&#34; Condominium&#34;。我在.po文件中添加了以下条目。

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

我在po文件上运行 compilemessages ,其他翻译在切换语言时有效。我确保将 house_type 的值设置为&#34; Condominium&#34;。但由于某种原因,它没有被翻译。

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

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

2 个答案:

答案 0 :(得分:2)

未翻译,因为{{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

答案 1 :(得分:0)

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

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

到你的py文件的标题。