Как перевести сообщения о нарушениях в Symfony

#php #symfony

Вопрос:

Здравствуйте, я создал форму с помощью конструктора форм в Symfony и в моей форме ниже

  $builder->add(
            'Firstname',
            TextType::class,
            [
                'translation_domain' => 'transbundle',
                'label' => 'Tam_bum.Firstname',
                'required' => true,
                'constraints' => [
                    new ConstraintsNotBlank(),
                ],
            ]
        );
 

мой файл en.yml, который я указал

   Tam_bum:
      Firstname: First Name
      Errormessage: Does not exist
 

что работает для моей формы, когда все языки включены в опцию перевода.

Теперь я пытаюсь также применить эту концепцию к нарушению, которое я называю

 ->buildViolation('Tam_bum.Errormessage')
 

Но то, что я получаю, — это выведенное значение этого "Tam_bum.Errormessage"

Я ожидал, что получу переведенное значение для «Tam_bum.Errormessage», пожалуйста, помогите мне сделать это правильно, спасибо

Ответ №1:

Сообщение об ограничении в проверке формы использует домен проверяющих.

Если вы используете symfony 5, вам следует добавить перевод в свой файл validators.en.php (или yaml, или xml в зависимости от формата перевода) в папки переводов

Комментарии:

1. Я действительно не понимаю, как это сделать технически, ни одного примера в использовании

2. кстати, у меня есть файл перевода, который я указал в своем вопросе, его en.yml

3. Вы можете найти пример использования в документации symfony: symfony.com/doc/current/validation/translations.html

4. кроме того, я предлагаю вам прочитать эту документацию о домене перевода, чтобы понять, как это работает: symfony.com/doc/current/…