django-rosetta翻译的短语没有出现在页面上

时间:2013-05-10 11:49:22

标签: python django django-templates rosetta

我的python代码中有一堆标记为要翻译的字符串。

例如:

remarks_sample = forms.CharField(
label = _('Remarks'),
widget = forms.Textarea(attrs = {
        'placeholder': _("Remarks"),
    })
)

我已经成功运行了django-admin.py makemessages并翻译了Rosetta admin中的短语。我试图找出为什么翻译的短语不会出现在我的网页上。

2 个答案:

答案 0 :(得分:4)

这些文件是由django-rosetta实际写的吗?如果Rosetta无法将内容写回.po文件(例如,因为它们不能通过Web服务器进程写入),它只会将它们保存在内存中(您可以下载翻译,并替换文件。)

此外,在重新启动Web服务器之前,您可以运行django-admin.py compilemessages将更新的.po文件显式编译为.mo文件,这些文件由Django读取。

此外,_ugettext的别名是ugettext_lazy吗?应该是后者。

答案 1 :(得分:0)

如果您使用的是开发服务器,则必须重新启动它,因为它本身不会检测更新的翻译。

如果您在生产服务器上,您可能想告诉rosetta自动重新加载(请参阅:Rosetta Configuration)。