Перевод всплывающих подсказок в Django не работает с пробелами

Я перевожу html-подсказку с помощью i18n, которая не отображается между тегами перевода {% translate ... %}, если не убрать пробелы.

Код без тега translate:

<th scope="col">{% trans '% Name' %} <span class="tt" data-bs-placement="bottom" title= 'Some normal text (NT) with spaces.'><i class="bi bi-question-circle-fill hover-only" style="font-size: 1.2rem;"></i></span></th>

No translate tag

Код с тегом перевода показывает только первое слово перед пробелом.

<th scope="col">{% trans '% Name' %} <span class="tt" data-bs-placement="bottom" title= {% translate 'Some normal text (NT) with spaces.' %}><i class="bi bi-question-circle-fill hover-only" style="font-size: 1.2rem;"></i></span></th>

Translation tag with white space

Когда белые пробелы удаляются с помощью _, весь текст отображается, даже если он находится между тегами {% translate ... %}.

<th scope="col">{% trans '% Name' %} <span class="tt" data-bs-placement="bottom" title= {% translate 'Some_normal_text_(NT)_with_spaces.' %}><i class="bi bi-question-circle-fill hover-only" style="font-size: 1.2rem;"></i></span></th>

Whole text with no white space

Кто-нибудь знает, как показать весь текст с пробелами?

Одинарные кавычки в теге translate разделяют строку, но не являются ее частью. Поэтому при переводе у вас нет атрибутивных кавычек для title.

title= {% translate 'Some normal text (NT) with spaces.' %}

Должно быть

title= "{% translate 'Some normal text (NT) with spaces.' %}"

Or

title= {% translate '"Some normal text (NT) with spaces."' %}

Иначе браузер считает, что первое слово является строкой, поскольку нет кавычек, чтобы охватить остальную часть строки.

Вернуться на верх