From c89d35e851d26b78f89bd7ece5e3eaa109c8cac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Thu, 1 Oct 2015 16:28:38 +0200 Subject: Language selection on config screen --- .../CoreBundle/EventListener/LocaleListener.php | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/Wallabag/CoreBundle/EventListener/LocaleListener.php (limited to 'src/Wallabag/CoreBundle/EventListener/LocaleListener.php') diff --git a/src/Wallabag/CoreBundle/EventListener/LocaleListener.php b/src/Wallabag/CoreBundle/EventListener/LocaleListener.php new file mode 100644 index 00000000..71795316 --- /dev/null +++ b/src/Wallabag/CoreBundle/EventListener/LocaleListener.php @@ -0,0 +1,41 @@ +defaultLocale = $defaultLocale; + } + + public function onKernelRequest(GetResponseEvent $event) + { + $request = $event->getRequest(); + if (!$request->hasPreviousSession()) { + return; + } + + // try to see if the locale has been set as a _locale routing parameter + if ($locale = $request->attributes->get('_locale')) { + $request->getSession()->set('_locale', $locale); + } else { + // if no explicit locale has been set on this request, use one from the session + $request->setLocale($request->getSession()->get('_locale', $this->defaultLocale)); + } + } + + public static function getSubscribedEvents() + { + return array( + // must be registered before the default Locale listener + KernelEvents::REQUEST => array(array('onKernelRequest', 17)), + ); + } +} -- cgit v1.2.3