Symfony2: Как перевести пользовательские сообщения об ошибках в типы форм?

Мне нужно перевести сообщения об ошибках из моего типа формы. Вот моя форма Введите код:

<code>class ReferFriendType extends AbstractType {

public function buildForm(FormBuilder $builder, array $options)
{
    $defaultSubject = "This is a default referral subject.";
    $defaultMessage = "This is a default referral message.";

    $builder->add('email1', 'email',array(
        'required' => true,
        'label' => 'Email 1* :',
        'attr' => array('class' => 'large_text'),
    ));
    $builder->add('email2', 'email',array(
        'label' => 'Email 2 :',
        'required' => false,
        'attr' => array('class' => 'large_text'),
    ));
    $builder->add('email3', 'email',array(
        'label' => 'Email 3 :',
        'required' => false,
        'attr' => array('class' => 'large_text'),
    ));
    $builder->add('email4', 'email',array(
        'label' => 'Email 4 :',
        'required' => false,
        'attr' => array('class' => 'large_text'),
    ));
    $builder->add('email5', 'email',array(
        'label' => 'Email 5 :',
        'required' => false,
        'attr' => array('class' => 'large_text'),
    ));
    $builder->add('subject', 'text', array(
        'data' => $defaultSubject,
        'required' => true,
        'label' => 'Subject* :',
        'attr' => array('class' => 'large_text'),
    ));
    $builder->add('message', 'textarea', array(
        'data' => $defaultMessage,
        'required' => true,
        'label' => 'Message* :',
        'attr' => array('rows' => '5', 'cols' => '40'),
    ));

}

public function getDefaultOptions(array $options)
{
    $collectionConstraint = new Collection( array(
        'fields' => array(
            'email1' => array(
                new Email(),
                new NotBlank(array(
                    'message' => 'You must enter atleast one email address for a valid submission',
                )),
            ),
            'subject' => new NotBlank(),
            'message' => new NotBlank(),
        ),
        'allowExtraFields' => true,
        'allowMissingFields' => true,
    ));

    return array(
        'validation_constraint' => $collectionConstraint,
        'csrf_protection' => false,
    );
}

public function getName()
{
    return 'referFriend';
}
</code>

}

Я хочу перевести & apos; Вы должны ввести хотя бы один адрес электронной почты для действительного представления & apos; в методе getDefaultOptions () на французский. Я добавил перевод в messages.fr.yml. Но это не переводится. Есть идеи, как это можно сделать?

Ответы на вопрос(4)

Решение Вопроса

validators.LANG.yml файлы - неmessages.LANG.yml те.

 svassr25 сент. 2012 г., 21:01
это работает с пользовательскими ключами перевода? На самом деле я пытаюсь сделать что-то вроде этого:'label' => $this->get('translator')->trans( 'create.label.startAt', array(), 'myDomain')
 Rvanlaak30 апр. 2014 г., 15:18
Как это будет работать дляFormError который добавляется черезEventListener вFormType->buildForm()? Создание валидаторов. <Lang> .yml и добавление ошибки черезnew FormError('form.msg_filetype') не работает. В symfony, перевод сделан до создания FormError?
 VishwaKumar01 мая 2012 г., 12:59
Я пытался создать validators.LANG.yml и добавить переводы, но это не помогло.
 Elnur Abdurrakhimov25 сент. 2012 г., 21:33
@ svassr, каждое ограничение имеетmessage свойство, которое вы можете установить для любого пользовательского ключа, который вы хотите.
 Elnur Abdurrakhimov01 мая 2012 г., 13:25
Вы очистили кеш после добавления файла?

http: //symfony.com/doc/current/book/translation.html#translating-constraint-message И установите default_locale в /app/config/config.yml или поиграйтесь с $ this-> get ('request') -> setLocale ('ru');

Validators.en.yml

noFirstnameMinLimit: Please provide at least {{ limit }} characters

Validation.yml

Acm\AddressBundle\Entity\Address:
    properties:
        firstname:
            - Length:
                min: 3 
                minMessage: "noFirstnameMinLimit"

Это работает для меня с Symfony 2.4

 V-Light14 янв. 2015 г., 14:16
есть ли список доступных заполнителей а-ля{{ limit }}, {{compared_value}}, {{value}} и так далее
 SimonW11 апр. 2018 г., 11:17
Доступные заполнители обычно документируются на странице с описанием конкретного ограничения, например, Symfony.com / док / текущие / ссылки / ограничения / Length.html Список ограничений здесь Symfony.com / док / ток / ...
 VishwaKumar01 мая 2012 г., 13:01
Это очень ясно, но в моем случае я добавляю проверки в свой тип формы.

Ваш ответ на вопрос