2016-07-27 57 views
1

我有一個模板文件templates/admin/base_site.html,其中包含一個trans標記:{% trans "Event List" %}Django {%trans%}無法正常工作,儘管生成了django.po

settings.py包括:

LANGUAGE_CODE = 'sv' 
LOCALE_PATHS = (
    '/srv/mysite/locale/', 
) 

的Django的管理頁面被正確從trans標籤文本翻譯成瑞典文,分開。

當我運行python manage.py makemessages -l sv它正確生成locale/sv/LC_MESSAGES/django.po文件,其最後幾行是:

#: templates/admin/base_site.html:9 
msgid "Event List" 
msgstr "Event List" 

我然後將其更改爲:

#: templates/admin/base_site.html:9 
msgid "Event List" 
msgstr "Händelselista" 

當我運行python manage.py runserver再次,該字符串是沒有在網頁上翻譯。

管理頁面的其餘部分仍然被翻譯成瑞典語,就像以前一樣。

我錯過了什麼?

+0

你有'django.middleware.locale.LocaleMiddleware'添加到你的'MIDDLEWARE_CLASSES'嗎? – OptimusCrime

回答

1

django.po文件僅用於編輯目的。你必須將它們編譯爲django.mo文件,使他們解釋:

python manage.py compilemessages 

又見Django docs

0

你重新啓動了網絡服務器嗎?如果沒有,它將不會提供新編譯的po文件。

編輯:並確保在你做好之後重新啓動Django服務器。

+0

我寫道,我用'python manage.py runserver'運行服務器,這意味着我還沒有使用Apache/Nginx。 – fadedbee