2012-03-09 98 views
1

我正在測試django系統,並且我爲它啓動了一個項目和一個應用程序。我對i18n系統有問題。django消息文件在項目文件夾中工作,但在應用程序文件夾中不起作用

  • 我在應用程序的view.py中使用了_()函數。
  • 我把'django.middleware.locale.LocaleMiddleware'這一行放在項目的settings.py文件的MIDDLEWARE_CLASSES中。
  • 我在應用程序文件夾中運行django-admin.py makemessages -l tr。
  • 我在應用程序文件夾中運行django-admin.py compilemessages。

當我運行該服務時,它不起作用。在我搜索這裏和其他地方後,我看到django如何查看這些消息文件。首先它看起來應用程序的文件夾,在項目的文件夾後。還有另外一個地方。

我在項目文件夾中移動了我的消息文件,它工作。我再次將應用程序文件夾中的區域設置文件夾移開,並且不再工作。

我需要理解爲什麼。我想每個翻譯,消息文件在相關的應用程序。

問候,


我發現這個問題,我忘了該應用程序名稱添加到INSTALLED_APPS設置。當我補充說,它的作品。

回答

1

我爲自己測試了它,發現它工作正常。

你確定你用正確的方式在代碼中使用它嗎?

應用程序/ views.py:

from django.utils.translation import ugettext as _ 
from django.contrib import messages 
...some code here... 
if saved_changes: 
    messages.success(request, _('Item \'%s\' was saved.') % item.name) 
+1

它工作時,語言文件夾項目文件夾中,但是當我移動的應用程序文件夾中的語言文件夾,這是行不通的。 這不起作用:./project_name/app_name/locale/tr/LC_MESSAGES/django.po和.MO 這項工作: ./project_name/locale/tr/LC_MESSAGES/django.po和.MO 一切都是一樣的。我只是移動文件夾。 – 2012-03-13 21:45:46

+0

我認爲,你不能移動區域設置文件。您需要再次爲應用程序和項目分別生成語言環境。 嘗試從./project/app/locale/tr/LC_MESSAGES/目錄中刪除.po和.mo文件,並嘗試進入應用程序目錄和'django-admin.py makemessages -l tr' 然後打開_。翻譯軟件中的/project/app/locale/tr/LC_MESSAGES/django.po_文件,如Lokalize或POEdit,翻譯所有字符串。保存更改並返回到您的應用程序目錄並運行'django-admin.py compilemessages' – 2012-03-27 09:19:17

相關問題