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