我正在尝试将我的应用程序中的某个表单转换为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中执行此操作,或者我是否必须将翻译器传递给我的表单并在其中生成文本?
答案 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',
]);
}
希望它有所帮助。