public function match(Nette\Http\IRequest $httpRequest) { if (($request = parent::match($httpRequest)) === NULL) { return; } if (!$this->locale) { $parameters = $request->getParameters(); if (isset($parameters['contentLang']) && $parameters['contentLang'] !== $this->defaultLanguage) { $this->pageListener->setLocale($this->languageRepository->findOneBy(array('alias' => $parameters['contentLang']))); } $this->locale = TRUE; } return $request; }
public function getLanguage() { if (!$this->_language) { $this->_language = $this->languageRepository->findOneBy(array('alias' => $this->lang)); } return $this->_language; }
protected function startup() { parent::startup(); if ($this->contentLang) { $this->languageEntity = $this->languageRepository->findOneBy(array('alias' => $this->contentLang)); } else { $this->languageEntity = $this->languageRepository->findOneBy(array('alias' => $this->websiteManager->defaultLanguage)); } }
/** * Redirect to other language. * * @param string $alias */ public function handleChangeLanguage($alias) { if (($language = $this->languageRepository->findOneBy(array('alias' => $alias))) === NULL) { throw new BadRequestException(); } if (!$this->getPage()->getLanguage()) { $this->getPage()->locale = $this->getRoute()->locale = $language; $this->redirect('this', array('route' => $this->getRoute(), 'lang' => $alias)); } $page = $this->getPage()->parent; do { $page->mainRoute->locale = $language; $this->entityManager->refresh($page->mainRoute); if (!$page->getLanguage() || $page->getLanguage() == $language) { $this->redirect('this', array('route' => $page->mainRoute, 'lang' => $alias)); } $page = $page->parent; } while ($page); throw new BadRequestException(); }
public function getCurrentLanguage() { return $this->languageRepository->findOneBy(array('alias' => $this->getPresenter()->lang)); }