我的对象有一个名为status的属性。状态可以有两种状态:已打开和已关闭。应翻译此属性的值。我尝试过两种方式:
<td> {% trans object.status %} </td>
和
<td>
{% blocktrans with object.status as status %} {{ status }} {% endblocktrans %}
</td>
但没有结果。在django.po文件中,我有一个条目%(状态)s。 Django如何知道如何翻译状态?
答案 0 :(得分:1)
如果状态只能有两种状态,则应在模型定义中使用choices
属性。然后可以将选择的值标记为翻译:
STATUS_CHOICES = (
('open', _('open')),
('closed', _('closed'))
)
class MyModel(models.Model):
status = models.CharField(max_length=10, choices=STATUS_CHOICES)
并在模板中使用get_status_display
方法:
<td> {{ object.get_status_display }} </td>
答案 1 :(得分:0)
检查你是否将这4行放入po:
msgid "opend"
msgstr "Your translated word"
msgid "closed"
msgstr "your trans word"
并运行:
manage.py compiletranslation
因为当您使用现有.mo文件编辑.po文件时,更改无效