国际化

71 阅读1分钟

Invalid block tag on line 9: 'translate', expected 'endblock'. Did you forget to register or load this tag?报错解决

这个错误提示表明在模板中使用了 translate 标签,但是没有正确地导入或注册它。

在 Django 中,部分内置的模板标签和过滤器是需要显式地加载或注册的,否则模板系统无法识别它们。 translate 标签就是其中之一,需要在模板中使用前进行导入或注册。

解决这个问题通常有两种方式:

  1. 加载 i18n 扩展标签库

在模板文件开头添加以下语句可以加载 i18n 扩展标签库:

{% load i18n %}

这个标签库提供了多个有用的和国际化相关的标签,其中包括 translate 标签。通过加载该标签库,Django 就可以正确地识别和解析 translate 标签。

  1. 注册 translate 标签

如果你只需要使用 translate 标签,可以将以下代码添加到模板文件的开头:

{% load i18n %}
{% i18n %}

这个代码块会注册所有 i18n 相关的模板标记,包括 translate 标签。

无论是哪种方式,都需要确保在模板文件的开头正确导入或注册 translate 标签,以便 Django 正确地识别和解析它。