#django #django-templates
#django #django-шаблоны
Вопрос:
После выполнения runserver
команды я получаю следующую ошибку:
Ошибка TemplateSyntaxError в / вопросы/ Недопустимый тег блока: ‘trans’
Кто-нибудь знает, в чем причина?
Это мой синтаксис шаблона:
{% extends "two_column_body.html" %}
{#
this template is split into several
blocks that are included here
the blocks are within directory templates/main_page
relative to the skin directory
there is no html markup in this file
#}
<!-- questions.html -->
{% block forejs %}
{% include "main_page/custom_head_javascript.html" %}
{% endblock %}
{% block title %}{% spaceless %}{% trans %}Questions{% endtrans %}{% endspaceless %}{% endblock %}
{% block content %}
{% include "main_page/tab_bar.html" %}
{% include "main_page/headline.html" %}
{# ==== BEGIN: main_page/content.html === #}
<div id="question-list">
{% include "main_page/questions_loop.html" %}
</div>
{# ==== END: main_page/content.html === #}
{% include "main_page/paginator.html" %}
{% endblock %}
{% block sidebar %}
{% include "main_page/sidebar.html" %}
{% endblock %}
{% block endjs %}
<script type="text/javascript">
{# cant cache this #}
askbot['settings']['showSortByRelevance'] = {{ show_sort_by_relevance|as_js_bool }};
askbot['messages']['questionSingular'] = '{{ settings.WORDS_QUESTION_SINGULAR|escapejs }}';
askbot['messages']['answerSingular'] = '{{ settings.WORDS_ANSWER_SINGULAR|escapejs }}';
askbot['messages']['acceptOwnAnswer'] = '{{ settings.WORDS_ACCEPT_OR_UNACCEPT_OWN_ANSWER|escapejs }}';
askbot['messages']['followQuestions'] = '{{ settings.WORDS_FOLLOW_QUESTIONS|escapejs }}';
</script>
{% include "main_page/javascript.html" %}
{% include "main_page/custom_javascript.html" %}
{% endblock %}
<!-- end questions.html -->
Комментарии:
1. Вы забыли
{% load i18n %}
?
Ответ №1:
{% trans %}Questions{% endtrans %}
неверный формат.
{% load i18n %}
должен быть в верхней части вашего шаблона или любого расширенного шаблона, использующего переводы.
Вы можете использовать {% trans "Questions." %}
Если вы собираетесь использовать блоки, они должны быть в приведенном ниже формате:
{% blocktrans %}{{ value2translate }}{% endblocktrans %}
Дополнительная информация здесь.
Комментарии:
1. Вы проверили другие шаблоны? Не могли бы вы предоставить выходные данные из файла отладки?
2.
{% load i18n %}
должен быть вверху текущего шаблона.** и все расширенные шаблоны ** !!! также необходимо использовать{% blocktrans %}Qusetion{% endblocktrans %}
вместо{% rans %}Qusetion{% endtrans %}
спасибо за вашу помощь!3. Рад, что у вас все получилось. Я обновлю ответ, чтобы уточнить
{% load i1in %}
часть.4. ссылка больше не действительна, пожалуйста, отредактируйте или удалите ссылочную ссылку
Ответ №2:
Вероятно, вам следует использовать {% blocktrans %}Questions{% endblocktrans %}
, и вы забыли поместить {% load i18n %}
в начало своего шаблона.
Комментарии:
1. попробуйте использовать
{% blocktrans %}Questions{% endblocktrans %}
вместо{% trans %}Questions{% endtrans %}
или{% trans "Questions" %}
и удалить{% endtrans %}
Ответ №3:
это связано с тем, что вы не загрузили i18n в этот шаблон {% load i18n %}
, вы должны добавить это в каждый свой шаблон.
Ответ №4:
Вы должны поместить в начале вашего расширенного кода шаблона: {% load i18n %}
, чтобы вы могли использовать теги trans:
{% extends 'home/base.html' %}
{% block title %}INICIO{% endblock %}
{% load i18n %}
{% block opcionesMenu %}
<!-- =====START====== -->
<a href="#sTop" class="subNavBtn">{% trans "Inicio" %}</a>
<a href="#s1" class="subNavBtn">{% trans "Proyectos" %}</a>
<a href="#s2" class="subNavBtn">{% trans "Diseño Web" %}</a>
<a href="#s3" class="subNavBtn">{% trans "Marketing" %}</a>
<a href="#s4" class="subNavBtn">{% trans "Conocenos" %}</a>
<a href="#s5" class="subNavBtn">{% trans "Contacto" %}</a>
<!-- =====END ====== -->
{% endblock %}