2015-05-01 50 views
1

我有这个块在我的HTMLDjango的:blocktrans条目没有被翻译

价值
... 
<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是 “公寓”。我在.po文件中添加了以下条目。

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

我已经运行在PO文件compilemessages,当我切换语言翻译的其余工作。我确定house_type的值设置为“共管公寓”。但由于某种原因,它没有被翻译。

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

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

+0

它在我把变量直接放在trans里面的时候起作用。 {%trans house_post.house_type.name%} –

回答

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

0

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

from django.utils.translation import ugettext_lazy as _ 

您的py文件的标题。