0

symfony2.1 を使用しています。

Form/RegisterUser.php でフォームを作成します

public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder->add(
        'email',
        'email',
        array('attr' => array('placeholder' => 'email.placeholder')));
    $builder->add(
        'password',
        'repeated',
        array(
            'first_name' => 'password',
            'second_name' => 'confirm',
            'type' => 'password',
            'invalid_message' => 'register.password.repeat', ));
    $builder->add("t_and_c", "checkbox", array("mapped" => false, ));

    // "True" validator on the form for t&c
    $builder->addValidator(new CallbackValidator( function(FormInterface $form) {
        if (!$form["t_and_c"]->getData()) {
            $form->addError(new FormError('Please accept the terms and conditions in order to register'));
        }
    }));
}

/**
 * Returns the default options for this form type.
 * @param array $options
 * @return array The default options
 */
public function getDefaultOptions(array $options) {
    return array('data_class' => 'Frontend\AccountBundle\Entity\User');
}

app/Ressources/translation/validators.LANG.yml 内:

<trans-unit id="6">
    <source>email.placeholder</source>
    <target>Enter email.</target>
</trans-unit>
<trans-unit id="12">
    <source>register.password.repeat</source>
    <target>Passwords don't match.</target>
</trans-unit>

フィールド invalid_message は翻訳されますが、フィールド email.placeholder は翻訳されません。バグはありますか?小枝を使用せず、通常のレンダリングを行います。

4

1 に答える 1

4

翻訳されたエラー メッセージは、正しいように validators.LANG.yml に入ります。しかし、それ以外はすべてmessages.LANG.ymlに入れる必要があります。

また、yml のフォーマット方法に少し混乱しています。通常は次のように書きます。

email:
    placeholder: Enter email.

register:
    password:
        repeat: Passwords don't match
于 2013-02-02T13:40:48.430 に答える