2012-02-20 55 views
0

未转换的值我有一个模型字段:pgettext没有显示在Django管理

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

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

但是与pgettext_lazy它变成了空字符串。 (它隐藏了管理员中的标题标签)

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

.po文件内容:

msgctxt "context" 
msgid "title" 
msgstr "" 

管理员看起来像这样http://cl.ly/072o1x3p11161X3x3y2c

+0

你有什么关于源字符串.po文件?也许有空间符号作为翻译或类似的东西? pgettext似乎对我来说工作正常 – ilvar 2012-02-21 02:50:46

+0

我的.po文件中的源代码看起来很正常。我将它添加到问题中。 你是如何测试它的? – 2012-02-21 08:26:35

回答

1

这是解决方案:

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

发现了它。 pgettext_lazy返回一个代理对象。铸造为Unicode的伎俩:

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

编辑:

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