From 6281194e7ba4ece218b0a90e17ebae05e906a1a1 Mon Sep 17 00:00:00 2001 From: Andjelko Horvat <comel@vingd.com> Date: Mon, 19 Dec 2011 13:06:18 +0000 Subject: [PATCH] Lowercase language in get/set functions (issue #463). git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@3001 44740490-163a-0410-bde0-09ae8108e29a --- lib/SimpleSAML/Utilities.php | 2 +- lib/SimpleSAML/XHTML/Template.php | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php index 78be4eeed..f09580f94 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 e9da55d21..49582bbec 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')); -- GitLab