/**
  * @param GetResponseEvent $event
  */
 public function onLateKernelRequest(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType() or !in_array($this->kernel->getEnvironment(), array('admin', 'admin_dev'))) {
         return;
     }
     $this->translationListener->setTranslatableLocale($this->context->getDefaultFrontLocale());
 }
Exemple #2
0
 /**
  * @param GetResponseEvent $event
  */
 public function onLateKernelRequest(GetResponseEvent $event)
 {
     $request = $event->getRequest();
     $locale = $this->context->get('language');
     $request->setLocale($locale);
     $this->translationListener->setTranslatableLocale($locale);
 }
Exemple #3
0
 /**
  * @param HttpRequest $request
  * @param string $locale
  */
 public function setLocale(HttpRequest $request, $locale)
 {
     setlocale(LC_ALL, $locale);
     $locale = substr($locale, 0, 2);
     $request->setLocale($locale);
     $this->translator->setLocale($locale);
     $this->translatable->setTranslatableLocale($locale);
 }
 public function onLateKernelRequest(GetResponseEvent $event)
 {
     $site = $this->siteSelector->retrieve();
     if ($site) {
         $this->translatableListener->setTranslatableLocale($site->getLocale());
         $this->translatableListener->setFallbackLocales($site->getLocales());
     }
 }
 /**
  * @param GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     $request = $event->getRequest();
     $locale = str_replace('-', '_', $request->query->get('locale'));
     if ($locale && $this->isApiRequest($request)) {
         $request->setLocale($locale);
         $this->translatableListener->setTranslatableLocale($locale);
     }
 }
 /**
  * @test
  */
 public function testQueryWalker()
 {
     $dql = 'SELECT f FROM ' . self::FIXTURE . ' f';
     $q = $this->em->createQuery($dql);
     $q->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, self::TREE_WALKER_TRANSLATION);
     $this->translatableListener->setTranslatableLocale('de');
     $result = $q->getArrayResult();
     $this->assertCount(1, $result);
     $this->assertSame('test-de', $result[0]['title']);
     $this->assertSame('website-de', $result[0]['link.website']);
     $this->assertSame('facebook-de', $result[0]['link.facebook']);
 }
 /**
  * {@inheritdoc}
  */
 protected function configureFormFields(FormMapper $formMapper)
 {
     $block = $this->getSubject();
     if ($block->getId() === null) {
         // new block
         $service = $this->blockManager->getService($this->request->get('type'));
         $block->setName($service->getName());
     }
     $this->translatableListener->setTranslatableLocale($block->getSite()->getDefaultLocale());
     $this->translatableListener->setFallbackLocales($block->getSite()->getLocales());
     return parent::configureFormFields($formMapper);
 }
 /**
  * @param EventManager           $manager
  * @param EntityManagerInterface $em
  * @param Reader                 $reader
  */
 public function addSubscribers(EventManager $manager, EntityManagerInterface $em, Reader $reader = null)
 {
     $subscriber = new TranslatableListener();
     $subscriber->setTranslatableLocale($this->application->getLocale());
     $subscriber->setDefaultLocale($this->repository->get('app.locale'));
     $this->addSubscriber($subscriber, $manager, $reader);
 }
 /**
  * {@inheritdoc}
  */
 public function boot(Application $app)
 {
     if (!isset($app['db.event_manager'])) {
         throw new FatalErrorException('The DoctrineServiceProvider is not registered in this application');
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_SLUGGABLE') === true) {
         $listener = new SluggableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_TREE') === true) {
         $listener = new TreeListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_LOGGABLE') === true) {
         $listener = new LoggableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_TIMESTAMPABLE') === true) {
         $listener = new TimestampableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_TRANSLATABLE') === true) {
         $listener = new TranslatableListener();
         if (!isset($app['translator'])) {
             throw new FatalErrorException('The TranslationServiceProvider is not registered in this application');
         }
         $listener->setTranslatableLocale($app['translator']->getLocale());
         $listener->setDefaultLocale($app['translator']->getLocale());
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_SORTABLE') === true) {
         $listener = new SortableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
 }
 public function create()
 {
     $listener = new TranslatableListener();
     $listener->setDefaultLocale($this->defaultLocale);
     $listener->setTranslatableLocale($this->locale);
     return $listener;
 }
 public function register(Container $c)
 {
     $c['doctrine_extensions.translatable.listener'] = function ($c) {
         $listener = new TranslatableListener();
         $listener->setTranslatableLocale($c['locale']);
         $listener->setDefaultLocale($c['locale']);
         $listener->setAnnotationReader($c['annotation.reader']);
         return $listener;
     };
 }
 protected function setUp()
 {
     parent::setUp();
     $evm = new EventManager();
     $translatableListener = new TranslatableListener();
     $translatableListener->setTranslatableLocale('en_US');
     $evm->addEventSubscriber($translatableListener);
     $evm->addEventSubscriber(new TimestampableListener());
     $this->getMockSqliteEntityManager($evm);
 }
 protected function setUp()
 {
     parent::setUp();
     $evm = new EventManager();
     $translatableListener = new TranslatableListener();
     $translatableListener->setTranslatableLocale('en_US');
     $evm->addEventSubscriber($translatableListener);
     $blameableListener = new BlameableListener();
     $blameableListener->setUserValue('testuser');
     $evm->addEventSubscriber($blameableListener);
     $this->getMockSqliteEntityManager($evm);
 }
Exemple #14
0
 /**
  * @param ConsoleCommandEvent $event
  */
 public function onConsoleCommand(ConsoleCommandEvent $event)
 {
     $isForced = $event->getInput()->hasParameterOption('--force');
     if ($isForced) {
         $this->isInstalled = false;
         return;
     }
     if ($this->isInstalled) {
         try {
             $locale = $this->localeSettings->getLocale();
             $language = $this->localeSettings->getLanguage();
         } catch (DBALException $exception) {
             // application is not installed
             return;
         }
         $this->setPhpDefaultLocale($locale);
         $this->translatableListener->setTranslatableLocale($language);
     }
 }
 private function populate()
 {
     $repo = $this->em->getRepository(self::ARTICLE);
     $commentRepo = $this->em->getRepository(self::COMMENT);
     $food = new Article();
     $food->setTitle('Food');
     $food->setContent('about food');
     $food->setAuthor('John Doe');
     $food->setViews(99);
     $goodFood = new Comment();
     $goodFood->setArticle($food);
     $goodFood->setMessage('food is good');
     $goodFood->setSubject('good');
     $badFood = new Comment();
     $badFood->setArticle($food);
     $badFood->setMessage('food is bad');
     $badFood->setSubject('bad');
     $this->em->persist($food);
     $this->em->persist($goodFood);
     $this->em->persist($badFood);
     $this->em->flush();
     $this->em->clear();
     $this->translatableListener->setTranslatableLocale('lt_lt');
     $food = $repo->find(1);
     $food->setTitle('Maistas');
     $food->setContent('apie maista');
     $food->setViews(999);
     $goodFood = $commentRepo->find(1);
     $goodFood->setArticle($food);
     $goodFood->setMessage('maistas yra geras');
     $goodFood->setSubject('geras');
     $badFood = $commentRepo->find(2);
     $badFood->setArticle($food);
     $badFood->setMessage('maistas yra blogas');
     $badFood->setSubject('blogas');
     $this->em->persist($food);
     $this->em->persist($goodFood);
     $this->em->persist($badFood);
     $this->em->flush();
     $this->em->clear();
 }
Exemple #16
0
 /**
  * @param string $locale
  */
 public function setTranslatableLocale($locale = 'en_US')
 {
     $this->translatableListener->setTranslatableLocale($locale);
 }
Exemple #17
0
 public function onConsoleCommand()
 {
     setlocale(LC_ALL, $this->locale);
     $this->translator->setLocale($this->locale);
     $this->translatable->setTranslatableLocale(substr($this->locale, 0, 2));
 }