Я пытаюсь преобразовать некоторую форму в моем приложении в формы 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'
]
]
)
Есть ли способ сделать это в веточку, или я должен передать переводчик к моей форме и сгенерировать текст там?
Не могли бы вы попробовать код ниже:
->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',
]);
}
Надеюсь, поможет.
Существует очень простой способ сделать это.
Просто создайте файл перевода с именем messages.en.xliff
в этом каталоге
YourProject
|___app
|___Resources
|___translations
|___messages.en.xliff
И в messages.en.xliff
просто добавьте эту строку
<trans-unit id="Title">
<source>Title</source>
<target>标题</target>
</trans-unit>
Проверьте это. Не забыл очистить кеш
Нет необходимости добавлять транс в форме.