Пожалуйста, помогите мне перевести пользовательскую аннотацию. Я пытаюсь перевести @Render (title = "Страница"). Генератор сообщений не нашел этого, и заголовок не транслат. Я пытаюсь понять, как это делается при проверке компонентов Symfony, но ничего не происходит.symfony2 пользовательский аннотация перевод
<?php
namespace Shooos\ProductBundle\Controller\Admin;
use Sensio\Bundle\FrameworkExtraBundle\Configuration as PRS;
use Shooos\CoreBundle\Controller\BaseController;
use Aft\RenderParkingBundle\Annotations as CA;
use Gedmo\Mapping\Annotation\Translatable;
/**
* @PRS\Route("/admin")
* Class CategoryController
* @package Shooos\ProductBundle\Controller\Admin
*/
class CategoryController extends BaseController
{
/**
* @CA\Render(title="Categories")
* @PRS\Route("/categories", name="admin.categories")
*/
public function indexAction()
{
}
}
<?php
namespace Aft\RenderParkingBundle\Annotations\Driver;
use Doctrine\Common\Annotations\Reader;
use Sensio\Bundle\FrameworkExtraBundle\Templating\TemplateGuesser;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Aft\RenderParkingBundle\Annotations;
use Symfony\Component\Translation\TranslatorInterface;
class AnnotationDriver
{
/**
* @var Reader
*/
private $reader;
/**
* @var TemplateGuesser
*/
private $guesser;
/**
* @var TranslatorInterface
*/
private $translator;
public function __construct(Reader $reader, TemplateGuesser $guesser, TranslatorInterface $translator)
{
$this->reader = $reader;
$this->guesser = $guesser;
$this->translator = $translator;
}
/**
* This event occurs when call any controller
*/
public function onKernelController(FilterControllerEvent $event)
{
/** Controller exists */
if (!is_array($controller = $event->getController())) {
return;
}
/**
* Controller
* @var \ReflectionObject $object
*/
$object = new \ReflectionObject($controller[0]);
$method = $object->getMethod($controller[1]);
foreach ($this->reader->getMethodAnnotations($method) as $configuration) {
if ($configuration instanceof Annotations\Render) {
$request = $event->getRequest();
$title = $this->translator->trans($configuration->getTitle());
$request->attributes->set('_page_title', $title);
if (null === $configuration->getTemplate()) {
$configuration->setTemplate(
$this->guesser->guessTemplateName(
$controller,
$request
));
}
$request->attributes->set('_page_template', $configuration->getTemplate());
}
}
}
}
Пожалуйста, разместите код, имеющий отношение к вопросу. Вы можете сделать это, отредактировав свой собственный вопрос и добавив его там, в суть вопроса. Это поможет нам помочь вам. – Touki
Я добавляю код с подсказкой user2041082. –