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