From a137491ec040e4ade665b7a53bc2b089444160ac Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Wed, 29 Oct 2014 14:31:42 +0000 Subject: [PATCH] Keep custom translations as highest precidence. Fixes loading translations for another app loses custom translations --- phpgwapi/inc/class.egw_vfs.inc.php | 4 ++-- phpgwapi/inc/class.translation.inc.php | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/phpgwapi/inc/class.egw_vfs.inc.php b/phpgwapi/inc/class.egw_vfs.inc.php index 6d730a79ca..a2793fde20 100644 --- a/phpgwapi/inc/class.egw_vfs.inc.php +++ b/phpgwapi/inc/class.egw_vfs.inc.php @@ -498,7 +498,7 @@ class egw_vfs extends vfs_stream_wrapper { self::_check_add($options,$path,$result); } - if ($is_dir && (!isset($options['maxdepth']) || $options['maxdepth'] > 0) && ($dir = @opendir($path))) + if ($is_dir && (!isset($options['maxdepth']) || ($options['maxdepth'] > 0 && $options['depth'] < $options['maxdepth'])) && ($dir = @opendir($path))) { while(($file = readdir($dir)) !== false) { @@ -517,7 +517,7 @@ class egw_vfs extends vfs_stream_wrapper { $opts = $options; if ($opts['mindepth']) $opts['mindepth']--; - if ($opts['maxdepth']) $opts['maxdepth']++; + if ($opts['maxdepth']) $opts['depth']++;; unset($opts['order']); unset($opts['limit']); foreach(self::find($options['url']?$file:self::parse_url($file,PHP_URL_PATH),$opts,true) as $p => $s) diff --git a/phpgwapi/inc/class.translation.inc.php b/phpgwapi/inc/class.translation.inc.php index 6b293b3bf3..f572979897 100644 --- a/phpgwapi/inc/class.translation.inc.php +++ b/phpgwapi/inc/class.translation.inc.php @@ -339,6 +339,15 @@ class translation self::$loaded_apps[$app] = $l; // dont set something not existing to $loaded_apps, no need to load client-side } } + // Re-merge custom over instance level, they have higher precidence + if($tree_level && !$instance_level && self::$instance_specific_translations) + { + $custom = egw_cache::getInstance(__CLASS__, 'custom:en'); + if($custom) + { + self::$lang_arr = array_merge(self::$lang_arr, $custom); + } + } //error_log(__METHOD__.'('.array2string($apps).", '$lang') took ".(1000*(microtime(true)-$start))." ms, loaded_apps=".array2string(self::$loaded_apps).", loaded ".count($loaded)." phrases -> total=".count(self::$lang_arr));//.": ".function_backtrace()); }