diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php index 78be4eeed5e25cd6d6211fd955b050985eaf0c98..f09580f94d7286e3e39f35d9caa6c87f5e854b99 100644 --- a/lib/SimpleSAML/Utilities.php +++ b/lib/SimpleSAML/Utilities.php @@ -833,7 +833,7 @@ class SimpleSAML_Utilities { return array(); } - $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); + $languages = explode(',', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'])); $ret = array(); diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php index e9da55d21d55b8f0f1706638ec348ec78f97c26f..49582bbecb4005081f66693518be8907d38be9de 100644 --- a/lib/SimpleSAML/XHTML/Template.php +++ b/lib/SimpleSAML/XHTML/Template.php @@ -76,10 +76,13 @@ class SimpleSAML_XHTML_Template { * * @param $language Language code for the language to set. */ - public function setLanguage($language) { + public function setLanguage($language, $setLanguageCookie = TRUE) { + $language = strtolower($language); if (in_array($language, $this->availableLanguages, TRUE)) { $this->language = $language; - SimpleSAML_XHTML_Template::setLanguageCookie($language); + if ($setLanguageCookie === TRUE) { + SimpleSAML_XHTML_Template::setLanguageCookie($language); + } } } @@ -109,7 +112,7 @@ class SimpleSAML_XHTML_Template { // Language is provided in a stored COOKIE $languageCookie = SimpleSAML_XHTML_Template::getLanguageCookie(); - if ($languageCookie !== NULL && in_array($languageCookie, $this->availableLanguages, TRUE)) { + if ($languageCookie !== NULL) { $this->language = $languageCookie; return $languageCookie; } @@ -667,8 +670,11 @@ class SimpleSAML_XHTML_Template { $config = SimpleSAML_Configuration::getInstance(); $availableLanguages = $config->getArray('language.available', array('en')); - if (isset($_COOKIE['language']) && in_array((string)$_COOKIE['language'], $availableLanguages, TRUE)) { - return (string)$_COOKIE['language']; + if (isset($_COOKIE['language'])) { + $language = strtolower((string)$_COOKIE['language']); + if (in_array($language, $availableLanguages, TRUE)) { + return $language; + } } return NULL; @@ -683,6 +689,7 @@ class SimpleSAML_XHTML_Template { public static function setLanguageCookie($language) { assert('is_string($language)'); + $language = strtolower($language); $config = SimpleSAML_Configuration::getInstance(); $availableLanguages = $config->getArray('language.available', array('en'));