Я использовал следующий подход:
В файле перевода:
page.privacy.policy: Please read our %link_start%privacy policy%link_end%
В файле ветки:
<p>{{ 'page.privacy.policy' | trans({'%link_start%' : '<a href="'~path('privacy-policy')~'">', '%link_end%' : '</a>'}, 'account') | raw }}</p>
Я не уверен, можно ли это сделать, используя синтаксис блока, о котором вы упомянули выше, поскольку я обнаружил, что он не работает, если я не передал результат перевода через «необработанный» фильтр. Также я использую домены сообщений для разделения переводов, отсюда и параметр account.
Я думаю, что наиболее близким к вашему примеру будет:
<p>{{ 'Please read our %link_start%privacy policy%link_end%' | trans({'%link_start%' : '<a href="'~path('privacy-policy')~'">', '%link_end%' : '</a>'}) | raw }}</p>
РЕДАКТИРОВАТЬ:
Единственная проблема с этим подходом, с которой я столкнулся, заключается в том, что мне нужно программно следовать переведенной ссылке в модульном тесте, поскольку нет единого перевода, представляющего текст ссылки. Хотя это и беспорядочно, я думаю, что можно было бы обойти это, предоставив отдельный перевод для текста ссылки и подставив переведенное значение в полный текст в качестве дополнительной переменной.
person
redbirdo
schedule
18.07.2012