Networking\InitCmsBundle\Controller\FrontendPageController::changeLanguageAction PHP Method

changeLanguageAction() public method

Change language in the front end area
public changeLanguageAction ( Request $request, $locale ) : RedirectResponse
$request Symfony\Component\HttpFoundation\Request
$locale
return Symfony\Component\HttpFoundation\RedirectResponse
    public function changeLanguageAction(Request $request, $locale)
    {
        $params = array();
        $translationRoute = $this->getTranslationRoute($request->headers->get('referer'), $locale);
        $request->setLocale($locale);
        if (!is_array($translationRoute)) {
            $routeName = $translationRoute;
        } else {
            $routeName = $translationRoute['_route'];
            unset($translationRoute['_route']);
            foreach ($translationRoute as $key => $var) {
                $params[$key] = $var;
            }
        }
        $params['_locale'] = $locale;
        $parts = parse_url($request->headers->get('referer'));
        if (array_key_exists('query', $parts) && $parts['query']) {
            parse_str($parts['query'], $query);
            $params = array_merge($query, $params);
        }
        $newURL = $this->get('router')->generate($routeName, $params);
        $response = new RedirectResponse($newURL);
        $response->headers->setCookie(new Cookie('_locale', $locale));
        return $response;
    }