我的python代码中有一堆标记为要翻译的字符串。
例如:
remarks_sample = forms.CharField(
label = _('Remarks'),
widget = forms.Textarea(attrs = {
'placeholder': _("Remarks"),
})
)
我已经成功运行了django-admin.py makemessages并翻译了Rosetta admin中的短语。我试图找出为什么翻译的短语不会出现在我的网页上。
答案 0 :(得分:4)
这些文件是由django-rosetta实际写的吗?如果Rosetta无法将内容写回.po文件(例如,因为它们不能通过Web服务器进程写入),它只会将它们保存在内存中(您可以下载翻译,并替换文件。)
此外,在重新启动Web服务器之前,您可以运行django-admin.py compilemessages
将更新的.po文件显式编译为.mo文件,这些文件由Django读取。
此外,_
或ugettext
的别名是ugettext_lazy
吗?应该是后者。
答案 1 :(得分:0)
如果您使用的是开发服务器,则必须重新启动它,因为它本身不会检测更新的翻译。
如果您在生产服务器上,您可能想告诉rosetta自动重新加载(请参阅:Rosetta Configuration)。