2013-05-10 44 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