Перевод текстовых блоков с помощью Django .. что делать с HTML? - PullRequest
14 голосов
/ 03 августа 2010

Название может быть непонятным, но я не знаю, как еще его выразить ..

В документации Django довольно ясно, как пометить текстовый блок для перевода. Возьмите этот пример:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Donec quam sem, sodales in fringilla nec, lacinia a lorem. 
Vivamus vel molestie ante. 

Пока все хорошо. Вы просто используете тег trans или blocktrans.

Но теперь рассмотрим это:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Donec quam sem, sodales in fringilla nec, lacinia a lorem. 
<a href="{% url some-view %}">Vivamus vel</a> molestie ante.

Как мне с этим бороться? Должен ли я просто обернуть его в блок транс?

Изменить:

Думаю, я узнал, как это сделать ..

{% url some-view as some_view_url %}
{% blocktrans %}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Donec quam sem, sodales in fringilla nec, lacinia a lorem. 
<a href="{{ some_view_url }}">Vivamus vel</a> molestie ante.
{% endblocktrans %}

1 Ответ

20 голосов
/ 03 августа 2010

Я бы определенно использовал blocktrans.Иногда невозможно разделить HTML-текст i18n на разные фрагменты.Blocktrans имеет несколько мощных функций:

{% url path.to.view arg arg2 as the_url %}

{% blocktrans with object.title as title and author|title as author_t %}

  {{author}}: Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
  Donec quam sem, sodales in fringilla nec, lacinia a lorem. 
  <a href="{{the_url}}">{{title}}</a> molestie ante.

{% endblocktrans %}

Посмотрите:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...