Django {%trans%} 不工作,尽管生成 django.po

Django {%trans%} not working, despite django.po being generated

我有一个模板文件 templates/admin/base_site.html,其中包含一个 trans 标签:{% trans "Event List" %}.

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时,网页上的字符串没有翻译。

管理页面的其余部分仍像以前一样翻译成瑞典语。

我错过了什么?

您是否重新启动了网络服务器?如果没有,它不会提供新编译的 po 文件。

编辑: 并确保在您完成后重新启动 Django 服务器。

django.po 文件仅用于编辑目的。您必须将它们编译成 django.mo 个文件,以便它们被解释:

python manage.py compilemessages

另见 Django docs