Symfony 如何使细枝日期可翻译

Symfony 如何使细枝日期可翻译,symfony,twig,Symfony,Twig,我在细枝中显示DateTime对象,如下所示: <td>{{ transaction.getDate|date("F - d - Y") }}</td> {{transaction.getDate}date(“F-d-Y”)} 现在我希望这个月可以翻译, 例如,2012年4月20日应显示为:Avril-20-2012 我可以这样做吗? 如果是,怎么做? 我正在做Symfony2 您可以获取月份部分,然后将其转换为: {% set month = tran

我在细枝中显示DateTime对象,如下所示:

<td>{{ transaction.getDate|date("F - d - Y") }}</td>
{{transaction.getDate}date(“F-d-Y”)}
现在我希望这个月可以翻译, 例如,
2012年4月20日
应显示为:
Avril-20-2012

我可以这样做吗? 如果是,怎么做?


我正在做Symfony2

您可以获取月份部分,然后将其转换为:

  {% set month      = transaction.getDate|date('F') %}
  {% set dayAndYear = transaction.getDate|date('d - Y') %}

  {{ '%s - %s'|format(month|trans, dayAndYear) }}

另一个具有内联细枝解决方案和更可读的翻译消息文件的解决方案:

<td>{{ ('month.'~transaction.getDate|date("m"))|trans|raw~' - '~transaction.getDate|date("d - Y") }}</td>
说明:

使用~运算符将所有操作数转换为字符串并将其串联
使用|运算符应用过滤器
使用trans函数进行翻译
使用raw表示日期是安全的(无需转义html、js…)

请小心使用括号,因为中定义了运算符优先级

运算符优先级如下,优先级最低的运算符列在第一位:b-and、b-xor、b-or、or和,==,!=,>= 或使用:

将为您提供如下信息:

jeudi 25 février 2016
要启用symfony 2,请添加到composer:

composer require twig/extensions
并通过以下服务激活过滤器:

services:
    twig.extension.intl:
        class: Twig_Extensions_Extension_Intl
        tags:
            - { name: twig.extension }

有什么好处吗?是的,那很有用!谢谢这个问题在很久以前就解决了。事实上,到目前为止,这是最好的答案。在我的例子中,{“now”| localizeddate('long','none')}就像我希望输出的符咒一样工作“3 de mayo de 1980'月名没有大写,我们应该如何处理月名的第一个大写字符?
composer require twig/extensions
services:
    twig.extension.intl:
        class: Twig_Extensions_Extension_Intl
        tags:
            - { name: twig.extension }