2013-05-10 68 views
2

我有一堆标记为在我的Python代码中翻译的字符串。django-rosetta翻译的短语没有出现在页面上

例如:

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

我已经成功运行django-admin.py makemessages和翻译在罗塞塔管理员短语。我试图弄清楚为什么翻译后的短语不会出现在我的页面上。

回答

4

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

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

另外,是_别名到ugettextugettext_lazy?它应该可能是后者。

+0

它与ugettext_lazy一起工作。谢谢:=)。 – ObviousCat 2013-05-11 08:47:29

0

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

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

+0

我的系统管理员确认服务器已重新启动。有趣的是,相同的翻译出现在表格标签中,但不在占位符中。 – ObviousCat 2013-05-10 14:08:25

+0

尝试找出问题出在哪里,即:是否编译过翻译,之后是否重新启动服务器。 – bmihelac 2013-05-10 14:24:50