如何在twig中将trans值添加到symfony表单中

时间:2014-09-23 01:35:54

标签: php symfony twig symfony-forms

我正在尝试将我的应用程序中的某个表单转换为symfony表单。我有一个生日值,我想要空值,空值应分别为'月''天''年',并根据您的本地显示这些单词的翻译版本。现在我正在尝试用树枝。

{{ form_row(form.birthday, {'empty_value':{ 'year':'title.year'|trans, 'month':'title.month'|trans, 'day':'title.day'|trans }}) }}

但这不起作用,因为我仍然看到'jan''1'''1894'作为该领域的默认值。

这就是我在表格中定义的方式:

->add(
    'birthday',
    'birthday',
    [
      'label' => false,
      'required' => true,
      'attr' => [
        'class' => 'date-fields'
      ]
    ]
)

有没有办法在twig中执行此操作,或者我是否必须将翻译器传递给我的表单并在其中生成文本?

2 个答案:

答案 0 :(得分:0)

有一种非常简单的方法可以做到这一点。 只需创建一个名为messages.en.xliff的翻译文件 在这个目录中

YourProject
         |___app
              |___Resources
                         |___translations
                                       |___messages.en.xliff

并在messages.en.xliff中添加此行

        <trans-unit id="Title">
            <source>Title</source>
            <target>标题</target>
        </trans-unit>

检查一下。不要忘记清除缓存 无需添加trans形式。

答案 1 :(得分:0)

您可以尝试下面的代码:

->add(
    'birthday',
    'birthday',
    [
        'label' => false,
        'required' => true,
        'attr' => [
            'class' => 'date-fields'
        ],
        'empty_value' => 'your_translation_path' // for example title.year
    ]
)

在您的表单方法setDefaultOptions中,您可以添加默认翻译域,如下所示:

/**
 * {@inheritdoc}
 */
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults([
        'translation_domain' => 'AcmeDemoBundle',
    ]);
}

希望它有所帮助。