Django i18n 的 makemessages 找不到 .djhtml 和 .djt 模板

Django i18n's makemessages doesn't find .djhtml and .djt templates

我在 Django 上使用 i18n 使我的网站支持多语言。

我最近将我的模板的扩展名从 html 更改为 djhtml,以便 Emacs 进行语法高亮显示,但此更改后,python manage.py makemessages 找不到djhtml 文件(或不将它们视为模板)并且不会在我的 django.po 文件中为其中的翻译创建条目。它甚至注释掉了我之前对 html 个文件的翻译。

如果我在同一文件夹中制作了 djhtml 文件的精确副本,但扩展名为 html,则它可以正常工作。

同样的事情也发生在 djt 身上。

如何配置 i18n 以将 djhtml 和 djt 文件也视为模板?

我通过 Django 的代码找到了答案。

您可以使用 -e--extension 来 select 它应该检查哪些文件扩展名。

从他们自己的代码来看,这个标志决定了:

The file extension(s) to examine (default: "html,txt,py", or "js" if the domain is "djangojs"). Separate multiple extensions with commas, or use -e multiple times.

所以你可以像这样使用它来检测 djhtml 和 djt:

python manage.py makemessages -e 'html,txt,py,djt,djhtml'