En las plantillas de Django, ¿cómo traduciría un bloque que contiene HTML? Por ejemplo:Plantillas de Django: práctica recomendada para traducir bloques de texto con HTML
{% trans "Please" %}
<a href="{% url login %}?next={{ currentUrlPath }}">
{% trans "log in" %}
</a>
{% trans "in order to use MyApplicationName." %}
Dividir cadenas traducidas me permite cambiar el código HTML de la plantilla en cualquier momento, pero supongo que tendría más sentido para ponerlo en una cadena de traducción única, así:
{% url login as loginUrl %}
{% blocktrans %}
Please
<a href="{{ loginUrl }}?next={{ currentUrlPath }}">
log in
</a>
in order to use MyApplicationName.
{% endblocktrans %}
Pero luego el marcado HTML está en la cadena de traducción, es decir, si quería cambiar el HTML (por ejemplo, la clase CSS para el ancla), tendría que volver a traducir la cadena para cada idioma.
¿Hay mejores alternativas?
Esa es una buena solución, gracias por esto. Usaré el ajuste de Ned Batchelder (almacenando solo los atributos en una variable). Desafortunadamente tienes razón en que la variable 'ancla 'no se puede crear fácilmente usando el lenguaje de plantilla incorporado de Django, así que tengo que hacerlo en mi opinión. – AndiDog
Puede hacer esto: {% url login as anchor_url%} {% blocktrans with anchor = ''|safe %}Please {{ anchor }}log in para usar MyApplicationName. {% Endblocktrans%} –