для компонента автономного перевода Symfony, который я использую:
$translator = new Translator('fr_FR');
$translator->addLoader('php', new \Symfony\Component\Translation\Loader\PhpFileLoader());
$translator->addResource('php', ROOT.'/translations/messages.fr.php', 'fr_FR');
$twig->addExtension(new TranslationExtension($translator));
Работает нормально для перевода меток форм Symfony. Чтобы перевести ошибки ограничения формы Symfony, я использую:
->add('firstname', TextType::class, [
'constraints' => [new Assert\Length(['min' => 3,
'minMessage' => 'name.short',
])
]
])
и в messages.fr.php
У меня есть
return [
.....
...
'name.short' => 'Name is short',
];
и другие метки формы в этом каталоге. метки переводятся нормально, но за ошибку формы я получаю name.short
вместо ее значения. Какую ошибку я сделал? Он ищет другое место для поиска каталога перевода?
РЕДАКТИРОВАТЬ: для ветки я использую это без параметра кэширования,
$twig = new \Twig\Environment($loader, [
'strict_variables' => true,
'optimizations' => -1,
'debug' => true,
]);
и кажется, что кеш ветки не установлен, для автономного SymfonyФорма и валидатор Я не установил никакой кеш, наверняка проверил каталоги, кеш не установлен. Что еще я должен проверить?
EDIT2:
Я тоже использовал это:
$translator = new Translator('fr_FR');
$translator->addLoader('php', new \Symfony\Component\Translation\Loader\PhpFileLoader());
$translator->addResource('php', ROOT.'/translations/validators.fr.php', 'fr_FR');
$translator->addResource('php', ROOT.'/translations/messages.fr.php', 'fr_FR');
$twig->addExtension(new TranslationExtension($translator));
и в translations / validators.fr.php у меня есть возвращаемый массив с элементомname.shor как выше, но все еще не работает.