steffen: server/kolab-webadmin/kolab-webadmin/php/admin/include locale.php, 1.2, 1.3

cvs at intevation.de cvs at intevation.de
Fri May 27 11:07:05 CEST 2005


Author: steffen

Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include
In directory doto:/tmp/cvs-serv5321/kolab-webadmin/php/admin/include

Modified Files:
	locale.php 
Log Message:
fixlet for Issue722 (language setting)

Index: locale.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include/locale.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- locale.php	11 Mar 2005 12:02:14 -0000	1.2
+++ locale.php	27 May 2005 09:07:03 -0000	1.3
@@ -24,6 +24,23 @@
 
 session_start();
 
+function supported_lang($lang) {
+
+    // REMEMBER TO UPDATE THIS WHEN ADDING NEW LANGUAGES
+    $a = array("de"    => "de",
+	       "de_DE" => "de",
+	       "en"    => "en",
+	       "en_US" => "en");
+
+    // Locales must be in the format xx_YY to be recognized by xgettext
+    $lang = str_replace('-','_',$lang);
+    if(!strpos($lang, '_')) {
+        $lang = $lang . '_' . strtoupper($lang);
+    }
+    if( !array_key_exists( $lang, $a ) ) return false;
+    else return $a[$lang];
+}
+
 // This function is called in templates my Smarty
 function translate($params) 
 {
@@ -47,7 +64,12 @@
         } else {
             // In case of multiple accept languages, keep the first one
             $acceptList = explode(",", $acceptList);
-            $lang = $acceptList[0];
+	    foreach($acceptList as $l) {
+		if( supported_lang($l) ) {
+		    $lang = $l;
+		    break;
+		}
+	    }
         }
         
         setLanguage($lang);
@@ -58,12 +80,8 @@
 
 # Allows languages to be set by users
 function setLanguage($lang)
-{
-    // Locales must be in the format xx_YY to be recognized by xgettext
-    if(!strpos($lang, "_")) {
-        $lang = $lang . "_" . strtoupper($lang);
-    }
-    
+{   
+    $lang = supported_lang($lang);
     $_SESSION["lang"] = $lang;
 }
 





More information about the commits mailing list