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标记.