Symfony2长文本的翻译

And*_*rea 21 translation symfony twig

几个星期后,我开始玩Symfony2.它似乎是一个非常强大的框架,但有些事情我还是不能理解.

在文档中,我看到i18n(即翻译)由翻译服务管理.如果我正确理解,翻译网站的主要方式是将我想要翻译的消息集合放在不同的文件messages.XX.yml(XX=en,fr,it,etc...)中,每种语言一个.

这可能适用于短文本,可能不包含任何HTML标记.但是你如何处理长文本呢?例如,我如何管理服务条款或关于页面的翻译?

我想我应该为我想要使用的每个语言环境包含不同的模板.我对吗?

谢谢你的帮助!

Kos*_*sta 46

您可以在.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>
Run Code Online (Sandbox Code Playgroud)

现在,在您的twig模板调用翻译中使用:

{{ 'TermsOfServiceText'|trans|raw }}
Run Code Online (Sandbox Code Playgroud)

raw 用于跳过转义html标记.