setDefaultLocale() public method

Sets the default locale.
public setDefaultLocale ( string $locale )
$locale string
 /**
  * Event handler that renders custom pages in case of a NotFoundHttpException (404)
  * or a AccessDeniedHttpException (403).
  *
  * @param GetResponseForExceptionEvent $event
  */
 public function onKernelException(GetResponseForExceptionEvent $event)
 {
     if ('dev' == $this->kernel->getEnvironment()) {
         return;
     }
     $exception = $event->getException();
     $this->request->setLocale($this->defaultLocale);
     $this->request->setDefaultLocale($this->defaultLocale);
     if ($exception instanceof NotFoundHttpException) {
         $section = $this->getExceptionSection(404, '404 Error');
         $this->core->addNavigationElement($section);
         $unifikRequest = $this->generateUnifikRequest($section);
         $this->setUnifikRequestAttributes($unifikRequest);
         $this->request->setLocale($this->request->attributes->get('_locale', $this->defaultLocale));
         $this->request->setDefaultLocale($this->request->attributes->get('_locale', $this->defaultLocale));
         $this->entityManager->getRepository('UnifikSystemBundle:Section')->setLocale($this->request->attributes->get('_locale'));
         $response = $this->templating->renderResponse('UnifikSystemBundle:Frontend/Exception:404.html.twig', array('section' => $section));
         $response->setStatusCode(404);
         $event->setResponse($response);
     } elseif ($exception instanceof AccessDeniedHttpException) {
         $section = $this->getExceptionSection(403, '403 Error');
         $this->core->addNavigationElement($section);
         $unifikRequest = $this->generateUnifikRequest($section);
         $this->setUnifikRequestAttributes($unifikRequest);
         $response = $this->templating->renderResponse('UnifikSystemBundle:Frontend/Exception:403.html.twig', array('section' => $section));
         $response->setStatusCode(403);
         $event->setResponse($response);
     }
 }
Example #2
0
 public function testLocale()
 {
     $getLocale = self::getMethod('getLocale');
     $setLocale = self::getMethod('setLocale');
     $this->request->setDefaultLocale('fr');
     $this->actionKernel->method('getApplication')->willReturn(array('locale' => 'fr'));
     // Source from the default space in the application
     $this->assertEquals('fr', $getLocale->invokeArgs($this->action, array($this->request)));
     // Source from the session if set
     $setLocale->invokeArgs($this->action, array($this->request, 'gb'));
     $this->assertEquals('gb', $getLocale->invokeArgs($this->action, array($this->request)));
     $setLocale->invokeArgs($this->action, array($this->request, null));
     $this->assertEquals('fr', $getLocale->invokeArgs($this->action, array($this->request)));
 }
 /**
  * @param mixed $installed
  * @param bool $isSetLocale
  * @dataProvider onKernelRequestDataProvider
  */
 public function testOnKernelRequest($installed, $isSetLocale)
 {
     $customLanguage = 'ru';
     $customLocale = 'fr';
     $request = new Request();
     $context = new RequestContext();
     $request->setDefaultLocale($this->defaultLocale);
     if ($isSetLocale) {
         $this->localeSettings->expects($this->once())->method('getLanguage')->will($this->returnValue($customLanguage));
         $this->localeSettings->expects($this->once())->method('getLocale')->will($this->returnValue($customLocale));
         $this->router->expects($this->once())->method('getContext')->willReturn($context);
     } else {
         $this->localeSettings->expects($this->never())->method('getLanguage');
         $this->localeSettings->expects($this->never())->method('getLocale');
     }
     $this->container->expects($this->any())->method('getParameter')->with('installed')->willReturn($installed);
     $this->listener = new LocaleListener($this->container);
     $this->listener->onKernelRequest($this->createGetResponseEvent($request));
     if ($isSetLocale) {
         $this->assertEquals($customLanguage, $request->getLocale());
         $this->assertEquals($customLanguage, $context->getParameter('_locale'));
         $this->assertEquals($customLocale, \Locale::getDefault());
     } else {
         $this->assertEquals($this->defaultLocale, $request->getLocale());
         $this->assertEquals($this->defaultLocale, \Locale::getDefault());
     }
 }
Example #4
0
 protected function initialize(InputInterface $input, OutputInterface $output)
 {
     // The mailer service needs the default locale
     $locale = $this->getContainer()->get('translator')->getLocale();
     // We build a fake request with the default locale
     $request = new Request();
     $request->setDefaultLocale($locale);
     $this->getContainer()->get('request_stack')->push($request);
 }
Example #5
0
 public function testOnKernelRequest()
 {
     $customLocale = 'fr';
     $request = new Request(['locale' => $customLocale]);
     $request->server->set('REQUEST_URI', '/api/rest/test');
     $request->setDefaultLocale($this->defaultLocale);
     $this->listener = new LocaleListener();
     $this->listener->onKernelRequest($this->createGetResponseEvent($request));
     $this->assertEquals($customLocale, $request->getLocale());
 }
Example #6
0
 public function testOnKernelRequest()
 {
     $customLocale = 'fr';
     $request = new Request(['locale' => $customLocale]);
     $request->server->set('REQUEST_URI', '/api/rest/test');
     $request->setDefaultLocale($this->defaultLocale);
     $translationListener = new TranslatableListener();
     $container = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Container')->setMethods(['get'])->getMock();
     $container->expects($this->any())->method('get')->willReturn($translationListener);
     $this->listener = new LocaleListener($container);
     $this->listener->onKernelRequest($this->createGetResponseEvent($request));
     $this->assertEquals($customLocale, $request->getLocale());
     $this->assertEquals($customLocale, $translationListener->getListenerLocale());
 }
Example #7
0
 /**
  * @param mixed $installed
  * @param bool $isSetLocale
  * @dataProvider onKernelRequestDataProvider
  */
 public function testOnKernelRequest($installed, $isSetLocale)
 {
     $customLanguage = 'ru';
     $customLocale = 'fr';
     $request = new Request();
     $request->setDefaultLocale($this->defaultLocale);
     if ($isSetLocale) {
         $this->localeSettings->expects($this->exactly(2))->method('getLanguage')->will($this->returnValue($customLanguage));
         $this->localeSettings->expects($this->once())->method('getLocale')->will($this->returnValue($customLocale));
     } else {
         $this->localeSettings->expects($this->never())->method('getLanguage');
         $this->localeSettings->expects($this->never())->method('getLocale');
     }
     $this->listener = new LocaleListener($this->localeSettings, $this->transListener, $installed);
     $this->listener->onKernelRequest($this->createGetResponseEvent($request));
     if ($isSetLocale) {
         $this->assertEquals($customLanguage, $request->getLocale());
         $this->assertEquals($customLocale, \Locale::getDefault());
     } else {
         $this->assertEquals($this->defaultLocale, $request->getLocale());
         $this->assertEquals($this->defaultLocale, \Locale::getDefault());
     }
 }
Example #8
0
 public function testIntlLocale()
 {
     if (!extension_loaded('intl')) {
         $this->markTestSkipped('The intl extension is needed to run this test.');
     }
     $request = new Request();
     $request->setDefaultLocale('fr');
     $this->assertEquals('fr', $request->getLocale());
     $this->assertEquals('fr', \Locale::getDefault());
     $request->setLocale('en');
     $this->assertEquals('en', $request->getLocale());
     $this->assertEquals('en', \Locale::getDefault());
     $request->setDefaultLocale('de');
     $this->assertEquals('en', $request->getLocale());
     $this->assertEquals('en', \Locale::getDefault());
 }
Example #9
0
 /**
  * @requires extension intl
  */
 public function testIntlLocale()
 {
     $request = new Request();
     $request->setDefaultLocale('fr');
     $this->assertEquals('fr', $request->getLocale());
     $this->assertEquals('fr', \Locale::getDefault());
     $request->setLocale('en');
     $this->assertEquals('en', $request->getLocale());
     $this->assertEquals('en', \Locale::getDefault());
     $request->setDefaultLocale('de');
     $this->assertEquals('en', $request->getLocale());
     $this->assertEquals('en', \Locale::getDefault());
 }
 private function setRequestLocale(Request $request, $locale)
 {
     $request->setDefaultLocale($this->defaultLocale);
     $request->setLocale($locale);
 }