我的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文件中。不是吗?
答案 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文件的标题。