Ответ 1
Несколько небольших блоков {% blocktrans %}
полезны по разным причинам:
-
Каждая переводимая строка заканчивается в файлах перевода, и эти файлы должны быть переведены людьми, говорящими на этом языке. Им не нужно иметь дело с правильностью HTML-тегов, но они должны чисто перевести несколько предложений на этот язык. Незначительная разметка в порядке, но не HTML всей страницы.
Вы также можете думать об этом так: чем меньше разметка в переводимых строках, тем меньше шансов на ошибки переводчиков (у которых может быть или не может быть технический фон).
- Если огромный блок трансляции изменяется, все переводы должны быть сделаны снова каждым из переводчиков. Если вы используете небольшие переводимые блоки, вы можете повторно использовать большинство существующих переведенных абзацев/текста, и вам нужно только обновить переводы для фактически измененных частей.
Итак, чтобы ответить на ваш вопрос: лучше всего выбрать тег blocktrans для каждого абзаца. Если вы в конечном итоге меняете абзац, тогда только этот параграф должен быть снова проверен переводчиком.
Относительно пробелов и новых строк: по умолчанию они будут переведены в файлы перевода PO. В Django 1.7 блоктранс будет иметь параметр trimmed
, который удаляет пробелы и новые строки (источник):
Эта опция удаляет символы новой строки с начала и конца содержимого тега {% blocktrans%}, заменяет любые пробелы в начале и конце строки и объединяет все строки в один, используя пробельный символ для разделения их. Это весьма полезно для отступов содержимого тега {% blocktrans%}, без ввода символов отступа в соответствующей записи в файле PO, что упрощает процесс перевода.