Try явно установить translation_domain
:
$builder->add('subject', TextType::class, array(
// ...
'translation_domain' => 'messages',
))
Вы также можете сделать это для всей FormType
путем добавления этого метода в:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'translation_domain' => 'messages'
));
}
Если он не работает, введите translator
в FormType
, зарегистрировав его as a service:
# services.yml
services:
app.form.type.abuse:
class: AppBundle\Form\Type\AbuseType
arguments: [ "@translator" ]
tags:
- { name: form.type }
Вызов переводчика непосредственно:
use Symfony\Component\Translation\TranslatorInterface;
class AbuseType extends AbstractType
{
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
// ...
$builder->add('subject', TextType::class, array(
'label' => 'label.subject',
'data' => $this->translator->trans('report_abuse', array(), 'messages'),
'disabled' => 'true',
))
}
Вы добавили 'report_abuse' в один из файлов перевода? я понимаю, что вы хотите перевести значение, которое отображается в поле ввода 'subject'? – Baig
Да Я добавил report_abuse в файл xlf и да, я хотел перевести значение, отображаемое в поле, поэтому я обманул, чтобы получить значение, переведенное, прежде чем вставлять его в мой объект. Я ответил на мой вопрос ниже. – Laurent