Forms Symfony2:如何翻译表单类型中的自定义错误消息?

Forms Symfony2:如何翻译表单类型中的自定义错误消息?,forms,internationalization,symfony,Forms,Internationalization,Symfony,我需要从我的表单类型转换错误消息。这是我的表格类型代码: class ReferFriendType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $defaultSubject = "This is a default referral subject."; $defaultMessage = "This is a default referra

我需要从我的表单类型转换错误消息。这是我的表格类型代码:

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';
}
}


我想将getDefaultOptions()方法中的“您必须输入至少一个有效提交的电子邮件地址”翻译成法语。我已经在messages.fr.yml中添加了翻译。但它没有被翻译。有什么想法可以做到这一点吗?

验证翻译到
validators.LANG.yml
文件,而不是
messages.LANG.yml
文件。

中有一个例子。

很简单,请参阅
并在/app/config/config.yml中设置默认语言环境,或使用$this->get('request')->setLocale('ru')

替换不是在validation.yml文件中设置的,而是由验证器设置的

验证器

noFirstnameMinLimit: Please provide at least {{ limit }} characters
validation.yml

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

这对我使用Symfony 2.4很有效

我尝试创建validators.LANG.yml并添加翻译,但效果不佳。它是否适用于自定义翻译键?实际上我正在尝试这样做:
'label'=>$this->get('translator')->trans('create.label.startAt',array(),'myDomain')
@svassr,每个约束都有
message
属性,您可以将其设置为所需的任何自定义键。对于通过
FormType->buildForm()
中的
EventListener添加的
FormError
,该属性如何工作?创建验证器..yml并通过
newformerror('form.msg\u filetype')
添加错误不起作用。在symfony中,翻译是在创建FormError之前完成的吗?这很清楚,但在我的例子中,我在我的表单类型中添加了验证。是否有所有可用占位符的列表a la
{{{limit}
{compared_value}}
{value}
等等?可用的占位符通常记录在描述特定约束的页面上,例如,约束列表在此处