<?php
/**
* Created by PhpStorm.
* User: manueljb
* Date: 31/12/2018
* Time: 10:17
*/
namespace App\Event;
use App\Entity\FrasePeligrosidad;
use Doctrine\ORM\EntityManager;
use Gedmo\Translatable\TranslatableListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Translation\Translator;
class RequestListener implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
protected $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
public function onKernelRequest(GetResponseEvent $event)
{
}
public function onLateKernelRequest(GetResponseEvent $event){
//Obtenemos el servicio de traduccion
//dd($this->container);
$translatable = $this->container->get('gedmo.listener.translatable');
// Le definimos cual es default, ya que al modificarlo por aqui no coge los parametros de configuracion
$translatable->setDefaultLocale('es');
//Le indicamos el "locale" de la peticion, como se esta desarrollando en españa lo indicamos asi, para que el front lo defina
//antes de realizar la peticion, en produccion se podrá cambiar por la siguiente sentencia
//$translatable->setTranslatableLocale($event->getRequest()->getLocale());
if($event->getRequest()->getLanguages()!=null) {
$translatable->setTranslatableLocale($event->getRequest()->getLanguages()[0]);
}
//dd($translatable);
}
}