我想得到这个结果:
您好!请注册或登录!
(粗体文字代表链接<a href="..."></a>
)。
我想翻译这篇文章,但我不知道如何使用HTML。
我试过这个方法:
messages.en.yml:
translation:
message: Hello! Please, %Register% or %Login%!
register: Register
login: Login
index.html.twig:
{{ 'translation.message'|trans({
'%register%': '<a href="#">'~'translation.register'|trans~'</a>',
'%login%': '<a href="#">'~'translation.login'|trans~'</a>'
}) }}
但是这个方法返回纯文本,HTML代码不起作用!我尝试使用 | raw 选项,但无济于事。
答案 0 :(得分:1)
您正在遇到逃避问题。
在您的情况下,您可以使用|raw
过滤器:
'%register%': ('<a href="#">'~'translation.register'|trans~'</a>')|raw,
请参阅fiddle。
但更好的做法是使用多个翻译并仅翻译标签,例如:
foo.hello = 'Hello, please'
foo.register = 'register'
foo.or = 'or'
foo.login = 'login'
{{ 'foo.hello'|trans }} <a href="#">{{ 'foo.register'|trans }}</a> {{ 'foo.or'|trans }} <a href="#">{{ 'foo.login'|trans }}</a>!
那不太干净,但那更安全。