From 560209ce41fb1eb10b9bbfa9633b9fbacde47360 Mon Sep 17 00:00:00 2001 From: Olav Morken <olav.morken@uninett.no> Date: Tue, 1 Apr 2008 11:15:41 +0000 Subject: [PATCH] Template: Add a language code map. git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@480 44740490-163a-0410-bde0-09ae8108e29a --- lib/SimpleSAML/XHTML/Template.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php index da8d87c93..de1b38fc6 100644 --- a/lib/SimpleSAML/XHTML/Template.php +++ b/lib/SimpleSAML/XHTML/Template.php @@ -12,6 +12,13 @@ require_once((isset($SIMPLESAML_INCPREFIX)?$SIMPLESAML_INCPREFIX:'') . 'SimpleSA */ class SimpleSAML_XHTML_Template { + /** + * This is the default language map. It is used to map languages codes from the user agent to + * other language codes. + */ + private static $defaultLanguageMap = array('nb' => 'no'); + + private $configuration = null; private $template = 'default.php'; private $language = null; @@ -75,12 +82,22 @@ class SimpleSAML_XHTML_Template { $availableLanguages = $this->configuration->getValue('language.available'); $languageScore = SimpleSAML_Utilities::getAcceptLanguage(); + /* For now we only use the default language map. We may use a configurable language map + * in the future. + */ + $languageMap = self::$defaultLanguageMap; + /* Find the available language with the best score. */ $bestLanguage = NULL; $bestScore = -1.0; foreach($languageScore as $language => $score) { + /* Apply the language map to the language code. */ + if(array_key_exists($language, $languageMap)) { + $language = $languageMap[$language]; + } + if(!in_array($language, $availableLanguages, TRUE)) { /* Skip this language - we don't have it. */ continue; -- GitLab