/** * @param EventManager $manager * @param EntityManagerInterface $em * @param Reader $reader */ public function addSubscribers(EventManager $manager, EntityManagerInterface $em, Reader $reader) { $subscriber = new TranslatableListener(); $subscriber->setTranslatableLocale($this->application->getLocale()); $subscriber->setDefaultLocale($this->repository->get('app.locale')); $subscriber->setAnnotationReader($reader); $manager->addEventSubscriber($subscriber); }
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; }; }
/** * @return $this * @throws \Exception */ public function setUpTranslateable() { $defaultLocale = $this->locale->getDefaultLocale(); if ($defaultLocale === null) { throw new \Exception('Default locale not found! Fraym is not correctly installed, please reinstall Fraym.'); } $this->translatableListener = new \Gedmo\Translatable\TranslatableListener(); $this->translatableListener->setDefaultLocale($defaultLocale->locale); $this->translatableListener->setAnnotationReader($this->cachedAnnotationReader); $this->translatableListener->setTranslationFallback(true); $this->translatableListener->setPersistDefaultLocaleTranslation(true); $this->eventManager->addEventSubscriber($this->translatableListener); return $this; }