无法转义翻译消息中的点字符

时间:2013-11-18 11:51:04

标签: php symfony internationalization translation twig

我想翻译完成的网页,我已经按照本教程:https://coderwall.com/p/eiqd_g

当我尝试在树枝模板中翻译此字符串时:

'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'

任何人都知道我错过了什么或做错了什么?

2 个答案:

答案 0 :(得分:2)

逃避文档正在谈论的是在浏览器上打印时的转义。例如。如果您的文本中有HTML标记,那么当您转义时,它不会呈现为标记,而是呈现为纯文本。

请注意,使用|raw过滤器,您转义。默认情况下,Escaping处于启用状态,但在使用该过滤器时,它已关闭。


回答你的问题。点字符用于keyword messages。这就是为什么翻译文章假设您使用关键字消息而不是真实消息。

您只需将其更改为'Bienvenido a Itransformer.es':'Welcome to Itransformer.es'即可。提取器转储的配置也应该没有问题,因为Symfony正在添加点本身。

答案 1 :(得分:0)

关于转义'字符的问题。

我在message.en.yaml中使用double:

I_M_HERE: 'I''m here'