Подтвердить что ты не робот

Symfony2 перевод длинных текстов

С нескольких недель я начал играть с Symfony2. Это очень мощная структура, но есть некоторые вещи, которые я еще не могу понять.

В документации я вижу, что i18n (т.е. переводы) управляется службой Translator. Если я правильно понял, основным способом перевода веб-сайта является сбор коллекции сообщений, которые я хочу перевести в разные файлы messages.XX.yml (XX=en,fr,it,etc...), по одному для каждого языка.

Это может быть идеально подходит для коротких текстов, которые, возможно, не содержат никакой разметки HTML. Но как вы относитесь к длинному тексту? Например, как я могу управлять переводом "Условия обслуживания" или "О странице"?

Я предполагаю, что должен включать разные шаблоны для каждой локали, которую я хочу использовать. Я прав?

Спасибо за вашу помощь!

4b9b3361

Ответ 1

У вас могут быть длинные тексты в файле перевода .yml, а также на теги html. Поместите текст своей службы в файл messages.xx.yml следующим образом:

TermsOfServiceText: >
  <p>Here goes my Terms of service code</p>
  <p>It can be put in several lines and <strong>can include html tags!</strong></p>
  <p>It can also include <a href="http://symfony.com/doc/current/book/translation.html" rel="nofollow">links</a></p>
  <p>Just make sure that you put '>' sign after your translation keyword like in the first line of this example code 
  and start your message in next line with double space indentation</p>

Теперь, в вашем переводе шаблона шаблона twig с этим:

{{ 'TermsOfServiceText'|trans|raw }}

raw используется для пропуска экранирующих тэгов html.