/** * * @return string The language letters */ private static function GetLanguageFromHttpRequest() { if (self::$request->getAcceptedLanguages()) { $string_accept = self::$request->getAcceptedLanguages(); } else { return 'fr'; } $string_accept_array = preg_split("#(,|;)#", $string_accept); foreach ($string_accept_array as $accept) { $accept = strtolower($accept); if (Utils::stringStartsWith($accept, "q=")) { continue; } else { $accept = explode("-", $accept)[0]; if (in_array($accept, array_keys(self::$languages))) { return $accept; } } } return "fr"; }
function testGetAcceptedLanguages() { $accepted_languages = Request::getAcceptedLanguages(); $last_perc = 1; foreach ($accepted_languages as $lang => $perc) { $this->assertTrue($last_perc >= $perc, "Le percentuali dei linguaggi accettati non sono ordinate in ordine decrescente!!"); $last_perc = $perc; $this->assertTrue($perc <= 1 && $perc > 0, "La percentuale di accettazione del linguaggio non e' valida!!"); } }