diff --git a/home/index.php b/home/index.php
index b2b0813362..104dd19188 100755
--- a/home/index.php
+++ b/home/index.php
@@ -78,13 +78,16 @@
** Display the mainscreen message
*/
$GLOBALS['egw']->translation->add_app('mainscreen');
- if(translation::translate('mainscreen_message',false,'') == 'mainscreen_message')
+ $greeting = translation::translate('mainscreen_message',false,'');
+
+ if($greeting == 'mainscreen_message'||empty($greeting))
{
translation::add_app('mainscreen','en'); // trying the en one
+ $greeting = translation::translate('mainscreen_message',false,'');
}
- if(translation::translate('mainscreen_message',false,'') != 'mainscreen_message')
+ if(!($greeting == 'mainscreen_message'||empty($greeting)))
{
- echo '
' . lang('mainscreen_message') . "
\n";
+ echo '' . $greeting . "
\n";
}
/*
diff --git a/login.php b/login.php
index 97a7aad5e2..eeb32e670e 100755
--- a/login.php
+++ b/login.php
@@ -393,18 +393,19 @@ else
$GLOBALS['egw_info']['user']['preferences']['common']['lang'] = $lang;
}
#print 'LANG:' . $GLOBALS['egw_info']['user']['preferences']['common']['lang'] . '
';
-
translation::init(); // this will set the language according to the (new) set prefs
translation::add_app('login');
translation::add_app('loginscreen');
- if(translation::translate('loginscreen_message',false,'') == 'loginscreen_message')
+ $GLOBALS['loginscreenmessage'] = translation::translate('loginscreen_message',false,'');
+ if($GLOBALS['loginscreenmessage'] == 'loginscreen_message' || empty($GLOBALS['loginscreenmessage']))
{
- translation::add_app('loginscreen','en'); // trying the en one
+ translation::add_app('loginscreen','en'); // trying the en one
+ $GLOBALS['loginscreenmessage'] = translation::translate('loginscreen_message',false,'');
}
- if(translation::translate('loginscreen_message',false,'') != 'loginscreen_message')
+ if($GLOBALS['loginscreenmessage'] == 'loginscreen_message' || empty($GLOBALS['loginscreenmessage']))
{
- // for now store login message in globals so it is available for the login.inc.php
- $GLOBALS['loginscreenmessage']=stripslashes(lang('loginscreen_message'));
+ // remove the global var since the lang loginscreen message and its fallback (en) is empty or not set
+ unset($GLOBALS['loginscreenmessage']);
}
}
diff --git a/phpgwapi/inc/class.translation.inc.php b/phpgwapi/inc/class.translation.inc.php
index 01c7cabdcb..e1a0a6e1f3 100644
--- a/phpgwapi/inc/class.translation.inc.php
+++ b/phpgwapi/inc/class.translation.inc.php
@@ -935,7 +935,17 @@ class translation
),__LINE__,__FILE__);
// invalidate the cache
- egw_cache::unsetCache(in_array($app,self::$instance_specific_translations) ? egw_cache::INSTANCE : egw_cache::TREE,__CLASS__,$app.':'.$lang);
+ if(!in_array($app,self::$instance_specific_translations))
+ {
+ egw_cache::unsetCache(egw_cache::TREE,__CLASS__,$app.':'.$lang);
+ }
+ else
+ {
+ foreach((array)self::get_installed_langs() as $key => $name)
+ {
+ egw_cache::unsetCache(egw_cache::INSTANCE,__CLASS__,$app.':'.$key);
+ }
+ }
}
/**