我想翻译一个完成的网页,我已经按照本教程进行操作:https://coderwall.com/p/eiqd_g
当我尝试在 Twig 模板中翻译这个字符串时:
'Bienvenido a Itransformer.es'
像这样:
{{ 'Bienvenido a Itransformer.es'|trans|raw }}
这应该转义字符串 ( Symfony2 doc ),但事实并非如此。
当我这样做时:
php app/console translation:extract en --bundle=MSDHomeBundle --enable-extractor=jms_i18n_routing --output-format=yml --exclude-dir=Tests
我得到下一个文件message.en.yml
:
'Bienvenido a Itransformer':
es: 'Bienvenido a Itransformer.es'
虽然我希望看到:
'Bienvenido a Itransformer.es':'Welcome to Itransformer.es'
有人知道我错过了什么或做错了什么吗?
最佳答案
文档中所说的转义是在浏览器上打印时的转义。例如。如果您的文本中有 HTML 标记,当您转义时它不会呈现为标记,而是呈现为纯文本。
请注意,使用 |raw
过滤器,您不是转义。默认情况下转义是打开的,但在使用该过滤器时它会关闭。
回答你的问题。 keyword messages 中使用了点字符.这就是翻译提取器假定您使用的是关键字消息而不是真实消息的原因。
您可以将其更改为 'Bienvenido a Itransformer.es':'Welcome to Itransformer.es'
。提取器转储的配置也应该没有问题,因为 Symfony 正在添加点本身。
关于php - 无法转义翻译消息中的点字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20047075/