2016-07-27 61 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