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

标签 php symfony internationalization translation twig

我想翻译一个完成的网页,我已经按照本教程进行操作: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/

相关文章:

php - MB_CASE_*_SIMPLE 常量的用途是什么?

php - 在 Symfony 序列化中更改序列化属性名称

symfony - Composer 找不到我安装的包

java - 国际化获取消息的持续时间

vb6 - 使用VB6.0制作不同语言的菜单(孟加拉语)

php 返回 mysql_query

php - SQL LEFT JOIN 问题 - 结果错误

php - 站点根目录的 Symfony 访问控制

javascript - i18n node.js setLocale 不工作! getLocale 始终返回默认语言环境

php - 如何检查 PHP 数组是否设置了任何值?