/** * Negotiates the application language. * @param Request $request * @return string the chosen language */ protected function negotiateLanguage($request) { if (!empty($this->languageParam) && ($language = Request::get($this->languageParam)) !== null) { if (isset($this->languages[$language])) { return $this->languages[$language]; } foreach ($this->languages as $key => $supported) { if (is_integer($key) && $this->isLanguageSupported($language, $supported)) { return $supported; } } return $request->getPreferredLanguage(); //reset($this->languages); } foreach ($request->getAcceptableLanguages() as $language => $params) { if (isset($this->languages[$language])) { return $this->languages[$language]; } foreach ($this->languages as $key => $supported) { if (is_integer($key) && $this->isLanguageSupported($language, $supported)) { return $supported; } } } return $request->getPreferredLanguage(); //reset($this->languages); }