pgettext没有在django admin中显示未翻译的值

时间:2012-02-20 15:10:31

标签: python django translation gettext

我有一个模型字段:

title = models.CharField(pgettext_lazy('context', 'title'), max_length=255)

当我使用 ugettext_lazy 时,它会显示未翻译的字符串。 (在这种情况下'标题')

但是使用 pgettext_lazy 它会变成一个空字符串。 (它隐藏了管理员的标题标签)

这是pgettext的标准行为吗?我错过了什么吗?

.po文件内容:

msgctxt "context"
msgid "title"
msgstr ""

admin看起来像http://cl.ly/072o1x3p11161X3x3y2c

2 个答案:

答案 0 :(得分:1)

这是解决方案:

pgettext_lazy(u'context', u'title')

答案 1 :(得分:0)

找到它。 pgettext_lazy返回一个代理对象。转换为unicode可以解决问题:

unicode(pgettext_lazy('context', 'title'))

编辑:

这不是答案。因为这种方式manage.py makemessages不会将该行标记为“标记为已翻译”。