我有一个模型字段:
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
答案 0 :(得分:1)
这是解决方案:
pgettext_lazy(u'context', u'title')
答案 1 :(得分:0)
找到它。 pgettext_lazy返回一个代理对象。转换为unicode可以解决问题:
unicode(pgettext_lazy('context', 'title'))
编辑:
这不是答案。因为这种方式manage.py makemessages
不会将该行标记为“标记为已翻译”。