Интернационализировать атрибуты объекта - PullRequest
0 голосов
/ 07 января 2011

Мой объект имеет атрибут с именем status.Состояние может иметь два состояния: открыто и закрыто .Значение этого атрибута должно быть переведено.Я пытался сделать это двумя способами:

<td> {% trans object.status %} </td>

и

<td>
    {% blocktrans with object.status as status %} {{ status }} {% endblocktrans %}
</td> 

, но безрезультатно.В файле django.po у меня есть запись% (status) s.Как Django узнает, как перевести статус?

Ответы [ 2 ]

1 голос
/ 07 января 2011

Если статус может иметь только два состояния, вы должны использовать атрибут 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>
0 голосов
/ 07 января 2011

проверьте, не перетащите ли вы эти 4 строки в po:

msgid "opend"
msgstr "Your translated word"

msgid "closed"
msgstr "your trans word"

и выполните:изменения не имеют никакого эффекта

...