/** * @param Request $request * * @return bool */ public function recognizeLocale(Request $request) { $locales = $this->container->parameters->get('locales', []); if (empty($locales)) { return false; } $string = implode('|', $locales); if (preg_match("#^/({$string})/?#", $request->getUrl(), $matches)) { $locale = $matches[1]; $request->setUrl(preg_replace("#^/{$matches[1]}/?#", '/', $request->getUrl(), 1)); } else { $locale = $locales[0]; } $request->setLocale($locale); $this->container->get('translator')->setLocale($locale); return true; }