Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1928)
+++ branches/2.8.x/CHANGELOG	(revision 1929)
@@ -11,6 +11,8 @@
 ! = Update/Change
 ===============================================================================
 
+21 Jun-2013 Build 1929 Werner v.d.Decken(DarkViper)
+! added new method to class Translate. it gives posibility to handle translations with additional replacements.
 20 Jun-2013 Build 1928 Werner v.d.Decken(DarkViper)
 # class WbDatabase fixed select_db() in multiconnect modus
 10 Jun-2013 Build 1927 Werner v.d.Decken(DarkViper)
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1928)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1929)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.3');
-if(!defined('REVISION')) define('REVISION', '1928');
+if(!defined('REVISION')) define('REVISION', '1929');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/Translate.php
===================================================================
--- branches/2.8.x/wb/framework/Translate.php	(revision 1928)
+++ branches/2.8.x/wb/framework/Translate.php	(revision 1929)
@@ -223,6 +223,31 @@
 		throw new TranslationException('tried to set a readonly or nonexisting property ['.$name.']!! ');
 	}
 /**
+ * Get translation text with replaced placeholders
+ * @param type $sKey
+ * @param type $aArguments
+ * @return type
+ */
+    public function __call($sKey, $aArguments)
+    {
+		$sRetval = '';
+		foreach($this->aActiveTranslations as $oAddon) {
+			if(isset($oAddon->$sKey)) {
+			// search the last matching translation (Core -> Addon)
+				$sRetval = $oAddon->$sKey;
+			}
+		}
+		if(sizeof($aArguments) > 0 && $sRetval != '') {
+			foreach($aArguments as $iKey=>$sArgument) {
+				if(is_string($sArgument)) {
+					$sRetval = preg_replace('/\{'.$iKey.'\}/', $sArgument, $sRetval);
+				}
+			}
+		}
+		return ($sRetval != '' ? $sRetval : ($this->bRemoveMissing ? '' : '#'.$sKey.'#'));
+    }
+
+/**
  * Return complete table of translations
  * @return array
  * @deprecated for backward compatibility only. Will be removed shortly
