Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1711)
+++ branches/2.8.x/CHANGELOG	(revision 1712)
@@ -13,6 +13,8 @@
 
 
 
+29 Aug-2012 Build 1712 Dietmar Woellbrink (Luisehahne)
+! update folder admin/addons admin/skel/htt
 29 Aug-2012 Build 1711 Dietmar Woellbrink (Luisehahne)
 ! update folder admin/start, admin/admintools, admin/skel/htt
 29 Aug-2012 Build 1710 Dietmar Woellbrink (Luisehahne)
Index: branches/2.8.x/wb/admin/templates/uninstall.php
===================================================================
--- branches/2.8.x/wb/admin/templates/uninstall.php	(revision 1711)
+++ branches/2.8.x/wb/admin/templates/uninstall.php	(revision 1712)
@@ -3,9 +3,8 @@
  *
  * @category        admin
  * @package         templates
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich, WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -28,8 +27,24 @@
 }
 // After check print the header
 $admin->print_header();
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+} else {
+	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
+}
 
+// Check if the template exists
+if(!is_dir(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+}
+
+// Check if the template exists
+if(!is_readable(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+}
+
 // Check if user selected template
+/*
 if(!isset($_POST['file']) OR $_POST['file'] == "") {
 	header("Location: index.php");
 	exit(0);
@@ -42,15 +57,10 @@
 	header("Location: index.php");
 	exit(0);
 }
+*/
 
 // Include the WB functions file
 require_once(WB_PATH.'/framework/functions.php');
-
-// Check if the template exists
-if(!is_dir(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC']['NOT_INSTALLED']);
-}
-
 if (!function_exists("replace_all")) {
 	function replace_all ($aStr = "", &$aArray ) {
 		foreach($aArray as $k=>$v) $aStr = str_replace("{{".$k."}}", $v, $aStr);
@@ -62,32 +72,32 @@
 *	Check if the template is the standard-template or still in use
 */
 if (!array_key_exists('CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE', $MESSAGE['GENERIC'] ) )
-	$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall this template <b>{{name}}</b> because it's the standardtemplate!";
+	$MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall this template <b>{{name}}</b> because it's the standardtemplate!";
 
 // check whether the template is used as default wb theme
 if($file == DEFAULT_THEME) {
 	$temp = array ('name' => $file );
-	$msg = replace_all( $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
+	$msg = replace_all( $MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
 	$admin->print_error( $msg );
 }
 
 if ($file == DEFAULT_TEMPLATE) {
 	$temp = array ('name' => $file );
-	$msg = replace_all( $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
+	$msg = replace_all( $MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
 	$admin->print_error( $msg );
 
 } else {
-	
+
 	/**
 	*	Check if the template is still in use by a page ...
 	*/
 	$info = $database->query("SELECT page_id, page_title FROM ".TABLE_PREFIX."pages WHERE template='".$file."' order by page_title");
-	
+
 	if ($info->numRows() > 0) {
 		/**
 		*	Template is still in use, so we're collecting the page-titles
 		*/
-		
+
 		/**
 		*	The base-message template-string for the top of the message
 		*/
@@ -96,8 +106,8 @@
 			$msg_template_str  = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled because it is still in use by {{pages}}";
 			$msg_template_str .= ":<br /><i>click for editing.</i><br /><br />";
 		} else {
-			$msg_template_str = $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL'];
-			$temp = explode(";",$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
+			$msg_template_str = $MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL'];
+			$temp = explode(";",$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
 			$add = $info->numRows() == 1 ? $temp[0] : $temp[1];
 		}
 		/**
@@ -104,37 +114,37 @@
 		*	The template-string for displaying the Page-Titles ... in this case as a link
 		*/
 		$page_template_str = "- <b><a href='../pages/settings.php?page_id={{id}}'>{{title}}</a></b><br />";
-		
+
 		$values = array ('type' => 'Template', 'type_name' => $file, 'pages' => $add);
 		$msg = replace_all ( $msg_template_str,  $values );
-		
+
 		$page_names = "";
-		
+
 		while ($data = $info->fetchRow() ) {
-			
+
 			$page_info = array(
-				'id'	=> $data['page_id'], 
+				'id'	=> $data['page_id'],
 				'title' => $data['page_title']
 			);
-			
+
 			$page_names .= replace_all ( $page_template_str, $page_info );
 		}
-		
+
 		/**
 		*	Printing out the error-message and die().
 		*/
-		$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'].$msg.$page_names);
+		$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE'].$msg.$page_names);
 	}
 }
 
 // Check if we have permissions on the directory
 if(!is_writable(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL'].WB_PATH.'/templates/'.$file);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL'].WB_PATH.'/templates/'.$file);
 }
 
 // Try to delete the template dir
 if(!rm_full_dir(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
 } else {
 	// Remove entry from DB
 	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$file."' AND type = 'template'");
@@ -145,9 +155,7 @@
 $database->query("UPDATE ".TABLE_PREFIX."pages SET template = '".DEFAULT_TEMPLATE."' WHERE template = '$file'");
 
 // Print success message
-$admin->print_success($MESSAGE['GENERIC']['UNINSTALLED']);
+$admin->print_success($MESSAGE['GENERIC_UNINSTALLED']);
 
 // Print admin footer
 $admin->print_footer();
-
-?>
\ No newline at end of file
Index: branches/2.8.x/wb/admin/templates/details.php
===================================================================
--- branches/2.8.x/wb/admin/templates/details.php	(revision 1711)
+++ branches/2.8.x/wb/admin/templates/details.php	(revision 1712)
@@ -4,7 +4,7 @@
  * @category        admin
  * @package         templates
  * @author          Ryan Djurovich, WebsiteBaker Project
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -27,8 +27,27 @@
 	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS']);
 }
 
+// After check print the header
+$admin->print_header();
 // Get template name
 if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+} else {
+	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
+}
+
+// Check if the template exists
+if(!is_dir(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+}
+
+// Check if the template exists
+if(!is_readable(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+}
+
+/*
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
 	header("Location: index.php");
 	exit(0);
 } else {
@@ -35,14 +54,18 @@
 	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
 }
 
-// Check if the template exists
 if(!file_exists(WB_PATH.'/templates/'.$file)) {
 	header("Location: index.php");
 	exit(0);
 }
+// Check if the template exists
+if(!is_dir(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+}
+*/
 
 // Print admin header
-$admin = new admin('Addons', 'templates_view');
+//$admin = new admin('Addons', 'templates_view');
 
 // Setup template object, parse vars to it, then parse it
 // Create new template object
@@ -75,7 +98,7 @@
 if($tool_description !== false) {
 	// Override the template-description with correct desription in users language
 	$row['description'] = $tool_description;
-}	
+}
 
 $template->set_var(array(
 								'NAME' => $row['name'],
@@ -87,23 +110,13 @@
 								)
 						);
 
-// Insert language headings
-$template->set_var(array(
-								'HEADING_TEMPLATE_DETAILS' => $HEADING['TEMPLATE_DETAILS']
-								)
-						);
-// Insert language text and messages
-$template->set_var(array(
-								'TEXT_NAME' => $TEXT['NAME'],
-								'TEXT_AUTHOR' => $TEXT['AUTHOR'],
-								'TEXT_VERSION' => $TEXT['VERSION'],
-								'TEXT_DESIGNED_FOR' => $TEXT['DESIGNED_FOR'],
-								'TEXT_DESCRIPTION' => $TEXT['DESCRIPTION'],
-								'TEXT_BACK' => $TEXT['BACK'],
-								'TEXT_LICENSE' => $TEXT['LICENSE'],
-								)
-						);
-$template->set_var('TEXT_FUNCTION', ($row['function'] == 'theme' ? $TEXT['THEME'] : $TEXT['TEMPLATE']));
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($mLang->getLangArray());
+
+$template->set_var('TEXT_FUNCTION', ($row['function'] == 'theme' ? $mLang->TEXT_THEME : $mLang->TEXT_TEMPLATE));
 // Parse template object
 $template->parse('main', 'main_block', false);
 $template->pparse('output', 'page');
@@ -110,5 +123,3 @@
 
 // Print admin footer
 $admin->print_footer();
-
-?>
\ No newline at end of file
Index: branches/2.8.x/wb/admin/templates/install.php
===================================================================
--- branches/2.8.x/wb/admin/templates/install.php	(revision 1711)
+++ branches/2.8.x/wb/admin/templates/install.php	(revision 1712)
@@ -3,9 +3,8 @@
  *
  * @category        admin
  * @package         templates
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich, WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -48,10 +47,10 @@
 
 // Try to upload the file to the temp dir
 if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UPLOAD']);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UPLOAD']);
 }
 
-// Include the PclZip class file (thanks to 
+// Include the PclZip class file (thanks to
 require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
 
 // Remove any vars with name "template_directory" and "theme_directory"
@@ -64,7 +63,7 @@
 $list = $archive->extract(PCLZIP_OPT_PATH, $temp_unzip);
 
 // Check if uploaded file is a valid Add-On zip file
-if (!($list && file_exists($temp_unzip . 'index.php'))) $admin->print_error($MESSAGE['GENERIC']['INVALID_ADDON_FILE']);
+if (!($list && file_exists($temp_unzip . 'index.php'))) $admin->print_error($MESSAGE['GENERIC_INVALID_ADDON_FILE']);
 
 // Include the templates info file
 require($temp_unzip.'info.php');
@@ -79,7 +78,7 @@
 // Check if the file is valid
 if(!isset($template_directory)) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC']['INVALID']);
+	$admin->print_error($MESSAGE['GENERIC_INVALID']);
 }
 
 // Check if this module is already installed
@@ -91,18 +90,18 @@
 		// Version to be installed is older than currently installed version
 		if (versionCompare($template_version, $new_template_version, '>=')) {
 			if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-			$admin->print_error($MESSAGE['GENERIC']['ALREADY_INSTALLED']);
+			$admin->print_error($MESSAGE['GENERIC_ALREADY_INSTALLED']);
 		}
-	} 
-	$success_message=$MESSAGE['GENERIC']['UPGRADED'];
+	}
+	$success_message=$MESSAGE['GENERIC_UPGRADED'];
 } else {
-	$success_message=$MESSAGE['GENERIC']['INSTALLED'];
+	$success_message=$MESSAGE['GENERIC_INSTALLED'];
 }
 
 // Check if template dir is writable
 if(!is_writable(WB_PATH.'/templates/')) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['TEMPLATES']['BAD_PERMISSIONS']);
+	$admin->print_error($MESSAGE['TEMPLATES_BAD_PERMISSIONS']);
 }
 
 // Set template dir
@@ -116,9 +115,14 @@
 }
 
 // Unzip template to the template dir
-$list = $archive->extract(PCLZIP_OPT_PATH, $template_dir, PCLZIP_OPT_REPLACE_NEWER);
+//$list = $archive->extract(PCLZIP_OPT_PATH, $template_dir, PCLZIP_OPT_REPLACE_NEWER);
+if(isset($_POST['overwrite'])){
+	$list = $archive->extract(PCLZIP_OPT_PATH, $template_dir, PCLZIP_OPT_REPLACE_NEWER );
+} else {
+	$list = $archive->extract(PCLZIP_OPT_PATH, $template_dir );
+}
 if(!$list) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNZIP']);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNZIP']);
 }
 
 // Delete the temp zip file
@@ -142,5 +146,3 @@
 
 // Print admin footer
 $admin->print_footer();
-
-?>
\ No newline at end of file
Index: branches/2.8.x/wb/admin/templates/index.php
===================================================================
--- branches/2.8.x/wb/admin/templates/index.php	(revision 1711)
+++ branches/2.8.x/wb/admin/templates/index.php	(revision 1712)
@@ -4,7 +4,7 @@
  * @category        admin
  * @package         templates
  * @author          Ryan Djurovich, WebsiteBaker Project
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -22,7 +22,7 @@
 
 // Setup template object, parse vars to it, then parse it
 // Create new template object
-$template = new Template(dirname($admin->correct_theme_source('templates.htt')));
+$template = new Template(dirname($admin->correct_theme_source('templates.htt')),'keep');
 // $template->debug = true;
 $template->set_file('page', 'templates.htt');
 $template->set_block('page', 'main_block', 'main');
@@ -33,7 +33,9 @@
 $sql = 'SELECT `directory`, `name`, `function` FROM `'.TABLE_PREFIX.'addons` '
      . 'WHERE `type`=\'template\' ORDER BY `name`';
 if(($result = $database->query($sql))) {
-	while($addon = $result->fetchRow(MYSQL_ASSOC)) {
+	while($addon = $result->fetchRow(MYSQL_ASSOC))
+	{
+		if ($admin->get_permission($addon['directory'],'template')==false) { continue;}
 		$template->set_var('VALUE', $addon['directory']);
 		$template->set_var('NAME', (($addon['function'] == 'theme' ? '[Theme] ' : '').$addon['name']));
 		$template->parse('template_list', 'template_list_block', true);
@@ -51,13 +53,12 @@
 	$template->set_var('DISPLAY_LIST', 'hide');
 }
 
-// Insert language headings
-$template->set_var(array(
-					'HEADING_INSTALL_TEMPLATE' => $HEADING['INSTALL_TEMPLATE'],
-					'HEADING_UNINSTALL_TEMPLATE' => $HEADING['UNINSTALL_TEMPLATE'],
-					'HEADING_TEMPLATE_DETAILS' => $HEADING['TEMPLATE_DETAILS']
-				)
-			);
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($mLang->getLangArray());
+
 // insert urls
 $template->set_var(array(
 					'ADMIN_URL' => ADMIN_URL,
@@ -68,16 +69,12 @@
 			);
 // Insert language text and messages
 $template->set_var(array(
-	'URL_MODULES' => $admin->get_permission('modules') ? 
-		'<a href="' . ADMIN_URL . '/modules/index.php">' . $MENU['MODULES'] . '</a>' : '',
+	'URL_MODULES' => $admin->get_permission('modules') ?
+		'<a href="' . ADMIN_URL . '/modules/index.php">' . $mLang->MENU_MODULES . '</a>' : '<b>'.$mLang->MENU_MODULES.'</b>',
 	'URL_LANGUAGES' => $admin->get_permission('languages') ?
-		'<a href="' . ADMIN_URL . '/languages/index.php">' . $MENU['LANGUAGES'] . '</a>' : '',
-	'URL_ADVANCED' => '&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;',
-	'TEXT_INSTALL' => $TEXT['INSTALL'],
-	'TEXT_UNINSTALL' => $TEXT['UNINSTALL'],
-	'TEXT_VIEW_DETAILS' => $TEXT['VIEW_DETAILS'],
-	'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
-	'CHANGE_TEMPLATE_NOTICE' => $MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE']
+		'<a href="' . ADMIN_URL . '/languages/index.php">' . $mLang->MENU_LANGUAGES . '</a>' : '<b>'.$mLang->MENU_LANGUAGES.'</b>',
+	'URL_ADVANCED' => $admin->get_permission('settings_advanced')
+                ? '<a href="' . ADMIN_URL . '/addons/index.php?advanced">' . $mLang->TEXT_ADVANCED . '</a>' : '<b>'.$mLang->TEXT_ADVANCED.'</b>' ,
 	)
 );
 
Index: branches/2.8.x/wb/admin/skel/themes/htt/templates_details.htt
===================================================================
--- branches/2.8.x/wb/admin/skel/themes/htt/templates_details.htt	(revision 1711)
+++ branches/2.8.x/wb/admin/skel/themes/htt/templates_details.htt	(revision 1712)
@@ -1,8 +1,13 @@
 <!-- BEGIN main_block -->
+<table summary="" cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="right">&nbsp;</td>
+     </tr>
+</table>
 
-<h2>{HEADING_TEMPLATE_DETAILS} ({TEXT_FUNCTION})</h2>
+<h2 class="left">{HEADING_TEMPLATE_DETAILS} ({TEXT_FUNCTION})</h2>
 
-<table summary="" cellpadding="5" cellspacing="0" border="0">
+<table summary="" class="left">
 <tr>
 	<td width="100">{TEXT_NAME}:</td>
 	<td>{NAME}</td>
Index: branches/2.8.x/wb/admin/skel/themes/htt/modules.htt
===================================================================
--- branches/2.8.x/wb/admin/skel/themes/htt/modules.htt	(revision 1711)
+++ branches/2.8.x/wb/admin/skel/themes/htt/modules.htt	(revision 1712)
@@ -1,6 +1,7 @@
 <!-- BEGIN main_block -->
 <table summary="" cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
 	<tr style="background:#f0f0f0;">
+		<td align="left">{HEADING_CHANGE_TEMPLATE_NOTICE}</td>
 		<td align="right">
 			{URL_TEMPLATES}
 			-
@@ -11,27 +12,27 @@
      </tr>
 </table>
 
-<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL}">
+<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL} left">
 {FTAN}
   <h2>{HEADING_INSTALL_MODULE}</h2>
   <table summary="" cellpadding="2" cellspacing="0" border="0" width="100%">
     <tr>
       <td valign="middle">
-        <input type="file" name="userfile" size="97" />
+        <input type="file" name="userfile" size="60" />
         <script type="text/javascript">
 		document.install.userfile.focus();
-		</script><br />
+		</script><br /><br />
         <input type="checkbox" name="overwrite" value="false"  />
-		<span>{OVERWRITE_NEWER_FILES}</span>
+		<span>{MESSAGE_ADDON_OVERWRITE_NEWER_FILES}</span>
       </td>
       <td width="110" align="left">
-        <input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" />
+        <input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" /><br /><br /><br />
       </td>
     </tr>
   </table>
   <br />
 </form>
-<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL}">
+<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL} left">
 {FTAN}
   <h2>{HEADING_UNINSTALL_MODULE}</h2>
   <table summary="" cellpadding="2" cellspacing="0" border="0" width="100%">
@@ -51,7 +52,7 @@
   </table>
   <br />
 </form>
-<form name="details" action="details.php" method="post" class="{DISPLAY_LIST}">
+<form name="details" action="details.php" method="post" class="{DISPLAY_LIST} left">
 {FTAN}
   <h2>{HEADING_MODULE_DETAILS}</h2>
   <table summary="" cellpadding="2" cellspacing="0" border="0" width="100%">
@@ -71,14 +72,14 @@
   </table>
   <br />
 </form>
-<div class="{DISPLAY_MANUAL_INSTALL}">
+<div class="{DISPLAY_MANUAL_INSTALL} left">
   <h2>{HEADING_INVOKE_MODULE_FILES}</h2>
-  <p>{TEXT_MANUAL_INSTALLATION}</p>
+  <p class="warning">{MESSAGE_ADDON_MANUAL_INSTALLATION}</p>
   <form name="manual_install" action="manual_install.php" method="post" class="{INSTALL_VISIBLE}">
 {FTAN}
   <table summary="" cellpadding="0" cellspacing="2" border="0" width="80%">
 	  <tr>
-		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FILE}: "install.php"</td>
+		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FUNCTION}: install</td>
 		<td valign="middle">
 			<input type="hidden" name="action" value="install" />
 			<select name="file" style="width: 250px;">
@@ -92,12 +93,12 @@
 	  </tr>
   </table>
   </form>
-  
+
   <form name="manual_upgrade" action="manual_install.php" method="post" class="{UPGRADE_VISIBLE}">
 {FTAN}
   <table summary="" cellpadding="0" cellspacing="2" border="0" width="80%">
 	  <tr>
-		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FILE}: "upgrade.php"</td>
+		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FUNCTION}: upgrade</td>
 		<td valign="middle" >
 			<input type="hidden" name="action" value="upgrade" />
 			<select name="file" style="width: 250px;">
@@ -116,7 +117,7 @@
 {FTAN}
   <table summary="" cellpadding="0" cellspacing="2" border="0" width="80%">
 	  <tr>
-		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FILE}: "uninstall.php"</td>
+		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FUNCTION}: uninstall</td>
 		<td valign="middle">
 			<input type="hidden" name="action" value="uninstall" />
 			<select name="file" style="width: 250px;">
@@ -131,6 +132,6 @@
   </table>
   </form>
 
-  <p style="color:red;">{TEXT_MANUAL_INSTALLATION_WARNING}</p>
+  <p class="warning">{MESSAGE_ADDON_MANUAL_INSTALLATION_WARNING}</p>
 </div>
 <!-- END main_block -->
Index: branches/2.8.x/wb/admin/skel/themes/htt/languages_details.htt
===================================================================
--- branches/2.8.x/wb/admin/skel/themes/htt/languages_details.htt	(revision 1711)
+++ branches/2.8.x/wb/admin/skel/themes/htt/languages_details.htt	(revision 1712)
@@ -1,8 +1,13 @@
 <!-- BEGIN main_block -->
+<table summary="" cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="right">&nbsp;</td>
+     </tr>
+</table>
 
-<h2>{HEADING_LANGUAGE_DETAILS}</h2>
+<h2 class="left">{HEADING_LANGUAGE_DETAILS}</h2>
 
-<table summary="" cellpadding="5" cellspacing="0" border="0">
+<table summary="" class="left">
 <tr>
 	<td width="100">{TEXT_NAME}:</td>
 	<td>{NAME}</td>
Index: branches/2.8.x/wb/admin/skel/themes/htt/templates.htt
===================================================================
--- branches/2.8.x/wb/admin/skel/themes/htt/templates.htt	(revision 1711)
+++ branches/2.8.x/wb/admin/skel/themes/htt/templates.htt	(revision 1712)
@@ -2,18 +2,18 @@
 
 <table summary="" cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
 	<tr style="background:#f0f0f0;">
-		<td align="left">{CHANGE_TEMPLATE_NOTICE}</td>
+		<td align="left">{HEADING_CHANGE_TEMPLATE_NOTICE}</td>
 		<td align="right">
+			{URL_LANGUAGES}
+			-
 			{URL_MODULES}
 			-
-			{URL_LANGUAGES}
-			-
 			{URL_ADVANCED}
 		</td>
      </tr>
 </table>
 
-<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL}">
+<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL} left">
 {FTAN}
 
 <h2>{HEADING_INSTALL_TEMPLATE}</h2>
@@ -21,13 +21,15 @@
 <table summary="" cellpadding="2" cellspacing="0" border="0" width="100%">
 <tr>
 	<td>
-		<input type="file" name="userfile" size="82" />
-		<script type="text/javascript">
+		<input type="file" name="userfile" size="60" />
+        <script type="text/javascript">
 		document.install.userfile.focus();
 		</script><br /><br />
+        <input type="checkbox" name="overwrite" value="false"  />
+		<span>{MESSAGE_ADDON_OVERWRITE_NEWER_FILES}</span>
 	</td>
 	<td width="110" align="left">
-		<input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" />
+		<input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" /><br /><br />
 	</td>
 </tr>
 </table>
@@ -36,7 +38,7 @@
 
 </form>
 
-<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL}">
+<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL} left">
 {FTAN}
 
 <h2>{HEADING_UNINSTALL_TEMPLATE}</h2>
@@ -61,7 +63,7 @@
 
 </form>
 
-<form name="details" action="details.php" method="post" class="{DISPLAY_LIST}">
+<form name="details" action="details.php" method="post" class="{DISPLAY_LIST} left">
 {FTAN}
 
 <h2>{HEADING_TEMPLATE_DETAILS}</h2>
Index: branches/2.8.x/wb/admin/skel/themes/htt/languages.htt
===================================================================
--- branches/2.8.x/wb/admin/skel/themes/htt/languages.htt	(revision 1711)
+++ branches/2.8.x/wb/admin/skel/themes/htt/languages.htt	(revision 1712)
@@ -2,36 +2,41 @@
 
 <table summary="" cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
 	<tr style="background:#f0f0f0;">
-		<td align="left">{CHANGE_TEMPLATE_NOTICE}</td>
+		<td align="left">{HEADING_CHANGE_TEMPLATE_NOTICE}</td>
 		<td align="right">
+			{URL_TEMPLATES}
+			-
 			{URL_MODULES}
 			-
-			{URL_TEMPLATES}
-			-
 			{URL_ADVANCED}
 		</td>
      </tr>
 </table>
 
-<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL}">
+<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL} left">
 {FTAN}
   <h2>{HEADING_INSTALL_LANGUAGE}</h2>
   <table summary="" cellpadding="2" cellspacing="0" border="0" width="100%">
     <tr>
       <td>
-        <input type="file" name="userfile" size="97" />
+        <input type="file" name="userfile" size="60" />
         <script type="text/javascript">
 		document.install.userfile.focus();
 		</script><br /><br />
+		<span style="visibility: hidden;">
+        <input type="checkbox" name="overwrite" value="false"  />
+		{MESSAGE_ADDON_OVERWRITE_NEWER_FILES}
+		</span>
+
       </td>
       <td width="110" align="left">
-        <input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" />
+        <input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" /><br /><br />
       </td>
     </tr>
   </table>
   <br />
 </form>
-<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL}">
+<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL} left">
 {FTAN}
   <h2>{HEADING_UNINSTALL_LANGUAGE}</h2>
   <table summary="" cellpadding="2" cellspacing="0" border="0" width="100%">
Index: branches/2.8.x/wb/admin/skel/themes/htt/modules_details.htt
===================================================================
--- branches/2.8.x/wb/admin/skel/themes/htt/modules_details.htt	(revision 1711)
+++ branches/2.8.x/wb/admin/skel/themes/htt/modules_details.htt	(revision 1712)
@@ -1,8 +1,13 @@
 <!-- BEGIN main_block -->
+<table summary="" cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="right">&nbsp;</td>
+     </tr>
+</table>
 
-<h2>{HEADING_MODULE_DETAILS}</h2>
+<h2 class="left">{HEADING_MODULE_DETAILS}</h2>
 
-<table summary="" cellpadding="5" cellspacing="0" border="0">
+<table summary="" class="left">
 <tr>
 	<td width="100">{TEXT_NAME}:</td>
 	<td>{NAME}</td>
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1711)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1712)
@@ -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', '1711');
+if(!defined('REVISION')) define('REVISION', '1712');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/admin/languages/uninstall.php
===================================================================
--- branches/2.8.x/wb/admin/languages/uninstall.php	(revision 1711)
+++ branches/2.8.x/wb/admin/languages/uninstall.php	(revision 1712)
@@ -3,9 +3,8 @@
  *
  * @category        admin
  * @package         languages
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich, WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link            http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -29,6 +28,30 @@
 // After check print the header
 $admin->print_header();
 
+// Get language name
+if(!isset($_POST['code']) OR $_POST['code'] == "") {
+	$code = '';
+	$file = '';
+} else {
+	$code = $_POST['code'];
+	$file = $_POST['code'].'.php';
+}
+// fix secunia 2010-93-2
+if (!preg_match('/^([A-Z]{2}.php)/', $file)) {
+	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+}
+
+// Check if the template exists
+if(!is_file(WB_PATH.'/languages/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+}
+
+// Check if the template exists
+if(!is_readable(WB_PATH.'/languages/'.$file)) {
+	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+}
+
+/*
 // Check if user selected language
 if(!isset($_POST['code']) OR $_POST['code'] == "") {
 	header("Location: index.php");
@@ -41,36 +64,34 @@
 	exit(0);
 }
 
-// Include the WB functions file
-require_once(WB_PATH.'/framework/functions.php');
-
 // Check if the language exists
 if(!file_exists(WB_PATH.'/languages/'.$_POST['code'].'.php')) {
-	$admin->print_error($MESSAGE['GENERIC']['NOT_INSTALLED']);
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
 }
+*/
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
 
 // Check if the language is in use
-if($_POST['code'] == DEFAULT_LANGUAGE OR $_POST['code'] == LANGUAGE) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']);
+if($code == DEFAULT_LANGUAGE OR $code == LANGUAGE) {
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE']);
 } else {
-	$query_users = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE language = '".$admin->add_slashes($_POST['code'])."' LIMIT 1");
+	$query_users = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE language = '".$admin->add_slashes($code)."' LIMIT 1");
 	if($query_users->numRows() > 0) {
-		$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']);
+		$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE']);
 	}
 }
 
 // Try to delete the language code
-if(!unlink(WB_PATH.'/languages/'.$_POST['code'].'.php')) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+if(!unlink(WB_PATH.'/languages/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
 } else {
 	// Remove entry from DB
-	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$_POST['code']."' AND type = 'language'");
+	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = \'".$code."\' AND type = 'language'");
 }
 
 // Print success message
-$admin->print_success($MESSAGE['GENERIC']['UNINSTALLED']);
+$admin->print_success($MESSAGE['GENERIC_UNINSTALLED']);
 
 // Print admin footer
 $admin->print_footer();
-
-?>
\ No newline at end of file
Index: branches/2.8.x/wb/admin/languages/details.php
===================================================================
--- branches/2.8.x/wb/admin/languages/details.php	(revision 1711)
+++ branches/2.8.x/wb/admin/languages/details.php	(revision 1712)
@@ -4,7 +4,7 @@
  * @category        admin
  * @package         languages
  * @author          Ryan Djurovich, WebsiteBaker Project
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link            http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -33,11 +33,30 @@
 // Get language name
 if(!isset($_POST['code']) OR $_POST['code'] == "") {
 	$code = '';
+	$file = '';
 } else {
 	$code = $_POST['code'];
+	$file = $_POST['code'].'.php';
 }
+// fix secunia 2010-93-2
+if (!preg_match('/^([A-Z]{2}.php)/', $file)) {
+	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+}
 
-// fix secunia 2010-93-2
+// Check if the template exists
+if(!is_file(WB_PATH.'/languages/'.$file) ) {
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+}
+
+// Check if the template exists
+if(!is_readable(WB_PATH.'/languages/'.$file) ) {
+	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+}
+
+/*
+print '<pre style="text-align: left;"><strong>function '.__FUNCTION__.'( '.''.' );</strong>  basename: '.basename(__FILE__).'  line: '.__LINE__.' -> <br />';
+print_r( $file ); print '</pre>'; // flush ();sleep(10); die();
+
 if (!preg_match('/^[A-Z]{2}$/', $code)) {
 	header("Location: index.php");
 	exit(0);
@@ -48,47 +67,34 @@
 	header("Location: index.php");
 	exit(0);
 }
+*/
 
 // Setup template object, parse vars to it, then parse it
 // Create new template object
-$template = new Template(dirname($admin->correct_theme_source('languages_details.htt')));
+$template = new Template(dirname($admin->correct_theme_source('languages_details.htt')),'keep');
 // $template->debug = true;
 $template->set_file('page', 'languages_details.htt');
 $template->set_block('page', 'main_block', 'main');
 
 // Insert values
-require(WB_PATH.'/languages/'.$code.'.php');
+require(WB_PATH.'/languages/'.$file);
 $template->set_var(array(
-								'CODE' => $language_code,
-								'NAME' => $language_name,
-								'AUTHOR' => $language_author,
-								'VERSION' => $language_version,
-								'DESIGNED_FOR' => $language_platform,
-								'ADMIN_URL' => ADMIN_URL,
-								'WB_URL' => WB_URL,
-								'THEME_URL' => THEME_URL
-								)
-						);
+						'CODE' => $language_code,
+						'NAME' => $language_name,
+						'AUTHOR' => $language_author,
+						'VERSION' => $language_version,
+						'DESIGNED_FOR' => $language_platform,
+						'ADMIN_URL' => ADMIN_URL,
+						'WB_URL' => WB_URL,
+						'THEME_URL' => THEME_URL
+						)
+				);
 
-// Restore language to original code
-require(WB_PATH.'/languages/'.LANGUAGE.'.php');
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
 
-// Insert language headings
-$template->set_var(array(
-								'HEADING_LANGUAGE_DETAILS' => $HEADING['LANGUAGE_DETAILS']
-								)
-						);
-// Insert language text and messages
-$template->set_var(array(
-								'TEXT_CODE' => $TEXT['CODE'],
-								'TEXT_NAME' => $TEXT['NAME'],
-								'TEXT_TYPE' => $TEXT['TYPE'],
-								'TEXT_AUTHOR' => $TEXT['AUTHOR'],
-								'TEXT_VERSION' => $TEXT['VERSION'],
-								'TEXT_DESIGNED_FOR' => $TEXT['DESIGNED_FOR'],
-								'TEXT_BACK' => $TEXT['BACK']
-								)
-						);
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($mLang->getLangArray());
 
 // Parse language object
 $template->parse('main', 'main_block', false);
Index: branches/2.8.x/wb/admin/languages/install.php
===================================================================
--- branches/2.8.x/wb/admin/languages/install.php	(revision 1711)
+++ branches/2.8.x/wb/admin/languages/install.php	(revision 1712)
@@ -3,9 +3,8 @@
  *
  * @category        admin
  * @package         languages
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich, WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link            http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -60,18 +59,18 @@
 // Check if language dir is writable
 if(!is_writable(WB_PATH.'/languages/')) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC']['BAD_PERMISSIONS']);
+	$admin->print_error($MESSAGE['GENERIC_BAD_PERMISSIONS']);
 }
 
 // Try to upload the file to the temp dir
 if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UPLOAD']);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UPLOAD']);
 }
 
 // Check if uploaded file is a valid language file (no binary file etc.)
 $content = file_get_contents($temp_file);
-if (strpos($content, '<?php') === false) $admin->print_error($MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE']);
+if (strpos($content, '<?php') === false) $admin->print_error($MESSAGE['GENERIC_INVALID_LANGUAGE_FILE']);
 
 // Remove any vars with name "language_code"
 unset($language_code);
@@ -88,7 +87,7 @@
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
 	// Restore to correct language
 	require(WB_PATH.'/languages/'.LANGUAGE.'.php');
-	$admin->print_error($MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE']);
+	$admin->print_error($MESSAGE['GENERIC_INVALID_LANGUAGE_FILE']);
 }
 
 // Set destination for language file
@@ -101,7 +100,7 @@
 	if (versionCompare($language_version, $new_language_version, '>=')) {
 		// Restore to correct language
 		require(WB_PATH . '/languages/' . LANGUAGE . '.php');
-		$admin->print_error($MESSAGE['GENERIC']['ALREADY_INSTALLED']);
+		$admin->print_error($MESSAGE['GENERIC_ALREADY_INSTALLED']);
 	}
 	$action="upgrade";
 	unlink($language_file);
@@ -120,12 +119,10 @@
 
 // Print success message
 if ($action=="install") {
-	$admin->print_success($MESSAGE['GENERIC']['INSTALLED']);
+	$admin->print_success($MESSAGE['GENERIC_INSTALLED']);
 } else {
-	$admin->print_success($MESSAGE['GENERIC']['UPGRADED']);
+	$admin->print_success($MESSAGE['GENERIC_UPGRADED']);
 }
 
 // Print admin footer
 $admin->print_footer();
-
-?>
\ No newline at end of file
Index: branches/2.8.x/wb/admin/languages/index.php
===================================================================
--- branches/2.8.x/wb/admin/languages/index.php	(revision 1711)
+++ branches/2.8.x/wb/admin/languages/index.php	(revision 1712)
@@ -4,7 +4,7 @@
  * @category        admin
  * @package         languages
  * @author          Ryan Djurovich, WebsiteBaker Project
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link            http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -23,7 +23,7 @@
 
 // Setup template object, parse vars to it, then parse it
 // Create new template object
-$template = new Template(dirname($admin->correct_theme_source('languages.htt')));
+$template = new Template(dirname($admin->correct_theme_source('languages.htt')),'keep');
 // $template->debug = true;
 $template->set_file('page', 'languages.htt');
 $template->set_block('page', 'main_block', 'main');
@@ -50,13 +50,11 @@
 	$template->set_var('DISPLAY_LIST', 'hide');
 }
 
-// Insert language headings
-$template->set_var(array(
-				'HEADING_INSTALL_LANGUAGE' => $HEADING['INSTALL_LANGUAGE'],
-				'HEADING_UNINSTALL_LANGUAGE' => $HEADING['UNINSTALL_LANGUAGE'],
-				'HEADING_LANGUAGE_DETAILS' => $HEADING['LANGUAGE_DETAILS']
-			)
-		);
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($mLang->getLangArray());
 // insert urls
 $template->set_var(array(
 				'ADMIN_URL' => ADMIN_URL,
@@ -67,15 +65,12 @@
 		);
 // Insert language text and messages
 $template->set_var(array(
+	'URL_ADVANCED' => '<b>'.$TEXT['ADVANCED'].'</b>' ,
 	'URL_MODULES' => $admin->get_permission('modules') ?
-		'<a href="' . ADMIN_URL . '/modules/index.php">' . $MENU['MODULES'] . '</a>' : '',
-	'URL_ADVANCED' => '&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;',
+		'<a href="' . ADMIN_URL . '/modules/index.php">' . $mLang->MENU_MODULES . '</a>' : '<b>'.$mLang->MENU_MODULES.'</b>',
 	'URL_TEMPLATES' => $admin->get_permission('templates') ?
-		'<a href="' . ADMIN_URL . '/templates/index.php">' . $MENU['TEMPLATES'] . '</a>' : '',
-	'TEXT_INSTALL' => $TEXT['INSTALL'],
-	'TEXT_UNINSTALL' => $TEXT['UNINSTALL'],
-	'TEXT_VIEW_DETAILS' => $TEXT['VIEW_DETAILS'],
-	'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT']
+		'<a href="' . ADMIN_URL . '/templates/index.php">' . $mLang->MENU_TEMPLATES . '</a>' : '<b>'.$mLang->MENU_TEMPLATES.'</b>',
+	'HEADING_CHANGE_TEMPLATE_NOTICE' => ''
 	)
 );
 
Index: branches/2.8.x/wb/admin/modules/uninstall.php
===================================================================
--- branches/2.8.x/wb/admin/modules/uninstall.php	(revision 1711)
+++ branches/2.8.x/wb/admin/modules/uninstall.php	(revision 1712)
@@ -3,9 +3,8 @@
  *
  * @category        admin
  * @package         modules
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich,WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -27,7 +26,23 @@
 }
 // After check print the header
 $admin->print_header();
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+} else {
+	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
+}
 
+// Check if the template exists
+if(!is_dir(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+}
+
+// Check if the template exists
+if(!is_readable(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+}
+
+/*
 // Check if user selected module
 if(!isset($_POST['file']) OR $_POST['file'] == "") {
 	header("Location: index.php");
@@ -42,14 +57,15 @@
 	exit(0);
 }
 
-// Include the WB functions file
-require_once(WB_PATH.'/framework/functions.php');
-
 // Check if the module exists
 if(!is_dir(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC']['NOT_INSTALLED']);
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
 }
+*/
 
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
 if (!function_exists("replace_all")) {
 	function replace_all ($aStr = "", &$aArray ) {
 		foreach($aArray as $k=>$v) $aStr = str_replace("{{".$k."}}", $v, $aStr);
@@ -60,7 +76,7 @@
 $info = $database->query("SELECT section_id, page_id FROM ".TABLE_PREFIX."sections WHERE module='".$_POST['file']."'" );
 
 if ( $info->numRows() > 0) {
-	
+
 	/**
 	*	Modul is in use, so we have to warn the user
 	*/
@@ -69,8 +85,8 @@
 		$msg_template_str  = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled because it is still in use on {{pages}}";
 		$msg_template_str .= ":<br /><i>click for editing.</i><br /><br />";
 	} else {
-		$msg_template_str = $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL'];
-		$temp = explode(";",$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
+		$msg_template_str = $MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL'];
+		$temp = explode(";",$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
 		$add = $info->numRows() == 1 ? $temp[0] : $temp[1];
 	}
 	/**
@@ -77,44 +93,44 @@
 	*	The template-string for displaying the Page-Titles ... in this case as a link
 	*/
 	$page_template_str = "- <b><a href='../pages/sections.php?page_id={{id}}'>{{title}}</a></b><br />";
-	
+
 	$values = array ('type' => 'Modul', 'type_name' => $file, 'pages' => $add );
 	$msg = replace_all ( $msg_template_str,  $values );
-		
+
 	$page_names = "";
-	
+
 	while ($data = $info->fetchRow() ) {
-	
+
 		$temp = $database->query("SELECT page_title from ".TABLE_PREFIX."pages where page_id=".$data['page_id']);
 		$temp_title = $temp->fetchRow();
-		
+
 		$page_info = array(
-			'id'	=> $data['page_id'], 
+			'id'	=> $data['page_id'],
 			'title' => $temp_title['page_title']
 		);
-			
+
 		$page_names .= replace_all ( $page_template_str, $page_info );
 	}
-	
+
 	/**
 	*	Printing out the error-message and die().
 	*/
-	$admin->print_error(str_replace ($TEXT['FILE'], "Modul", $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']).$msg.$page_names);
+	$admin->print_error(str_replace ($TEXT['FILE'], "Modul", $MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE']).$msg.$page_names);
 }
 
 // Check if we have permissions on the directory
 if(!is_writable(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
 }
 
 // Run the modules uninstall script if there is one
-if(file_exists(WB_PATH.'/modules/'.$file.'/uninstall.php')) {
+if(is_readable(WB_PATH.'/modules/'.$file.'/uninstall.php')) {
 	require(WB_PATH.'/modules/'.$file.'/uninstall.php');
 }
 
 // Try to delete the module dir
 if(!rm_full_dir(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
 } else {
 	// Remove entry from DB
 	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$file."' AND type = 'module'");
@@ -121,9 +137,7 @@
 }
 
 // Print success message
-$admin->print_success($MESSAGE['GENERIC']['UNINSTALLED']);
+$admin->print_success($MESSAGE['GENERIC_UNINSTALLED']);
 
 // Print admin footer
 $admin->print_footer();
-
-?>
\ No newline at end of file
Index: branches/2.8.x/wb/admin/modules/details.php
===================================================================
--- branches/2.8.x/wb/admin/modules/details.php	(revision 1711)
+++ branches/2.8.x/wb/admin/modules/details.php	(revision 1712)
@@ -4,7 +4,7 @@
  * @category        admin
  * @package         modules
  * @author          Ryan Djurovich, WebsiteBaker Project
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -29,6 +29,26 @@
 // After check print the header
 $admin->print_header();
 
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+} else {
+	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
+}
+
+// Check if the template exists
+if(!is_dir(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+}
+
+// Check if the template exists
+if(!is_readable(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+}
+
+/*
 // Get module name
 if(!isset($_POST['file']) OR $_POST['file'] == "")
 {
@@ -41,14 +61,15 @@
 }
 
 // Check if the module exists
-if(!file_exists(WB_PATH.'/modules/'.$file)) {
+if(!is_readable(WB_PATH.'/modules/'.$file)) {
 	header("Location: index.php");
 	exit(0);
 }
+*/
 
 // Setup template object, parse vars to it, then parse it
 // Create new template object
-$template = new Template(dirname($admin->correct_theme_source('modules_details.htt')));
+$template = new Template(dirname($admin->correct_theme_source('modules_details.htt')),'keep');
 // $template->debug = true;
 $template->set_file('page', 'modules_details.htt');
 $template->set_block('page', 'main_block', 'main');
@@ -59,6 +80,9 @@
 	$module = $result->fetchRow();
 }
 
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($mLang->getLangArray());
+
 // check if a module description exists for the displayed backend language
 $tool_description = false;
 if(function_exists('file_get_contents') && file_exists(WB_PATH.'/modules/'.$file.'/languages/'.LANGUAGE .'.php')) {
@@ -72,7 +96,7 @@
 	} else {
 		$tool_description = false;
 	}
-}		
+}
 if($tool_description !== false) {
 	// Override the module-description with correct desription in users language
 	$module['description'] = $tool_description;
@@ -89,7 +113,7 @@
 								'THEME_URL' => THEME_URL
 								)
 						);
-						
+
 switch ($module['function']) {
 	case NULL:
 		$type_name = $TEXT['UNKNOWN'];
@@ -117,23 +141,23 @@
 }
 $template->set_var('TYPE', $type_name);
 
-// Insert language headings
-$template->set_var(array(
-								'HEADING_MODULE_DETAILS' => $HEADING['MODULE_DETAILS']
-								)
-						);
-// Insert language text and messages
-$template->set_var(array(
-								'TEXT_NAME' => $TEXT['NAME'],
-								'TEXT_TYPE' => $TEXT['TYPE'],
-								'TEXT_AUTHOR' => $TEXT['AUTHOR'],
-								'TEXT_VERSION' => $TEXT['VERSION'],
-								'TEXT_DESIGNED_FOR' => $TEXT['DESIGNED_FOR'],
-								'TEXT_DESCRIPTION' => $TEXT['DESCRIPTION'],
-								'TEXT_BACK' => $TEXT['BACK']
-								)
-						);
-
+//// Insert language headings
+//$template->set_var(array(
+//								'HEADING_MODULE_DETAILS' => $HEADING['MODULE_DETAILS']
+//								)
+//						);
+//// Insert language text and messages
+//$template->set_var(array(
+//								'TEXT_NAME' => $TEXT['NAME'],
+//								'TEXT_TYPE' => $TEXT['TYPE'],
+//								'TEXT_AUTHOR' => $TEXT['AUTHOR'],
+//								'TEXT_VERSION' => $TEXT['VERSION'],
+//								'TEXT_DESIGNED_FOR' => $TEXT['DESIGNED_FOR'],
+//								'TEXT_DESCRIPTION' => $TEXT['DESCRIPTION'],
+//								'TEXT_BACK' => $TEXT['BACK']
+//								)
+//						);
+//
 // Parse module object
 $template->parse('main', 'main_block', false);
 $template->pparse('output', 'page');
Index: branches/2.8.x/wb/admin/modules/install.php
===================================================================
--- branches/2.8.x/wb/admin/modules/install.php	(revision 1711)
+++ branches/2.8.x/wb/admin/modules/install.php	(revision 1712)
@@ -3,9 +3,8 @@
  *
  * @category        admin
  * @package         modules
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich,WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -75,7 +74,7 @@
 	$admin->print_error($MESSAGE[$key].'<br />'.$MESSAGE['GENERIC_CANNOT_UPLOAD']);
 }
 
-// Include the PclZip class file (thanks to 
+// Include the PclZip class file (thanks to
 require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
 
 // Remove any vars with name "module_directory"
@@ -105,7 +104,7 @@
 if(!isset($module_directory))
 {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC']['INVALID']);
+	$admin->print_error($MESSAGE['GENERIC_INVALID']);
 }
 
 // Check if this module is already installed
@@ -122,7 +121,7 @@
         {
 
 			if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-			$admin->print_error($MESSAGE['GENERIC']['ALREADY_INSTALLED']);
+			$admin->print_error($MESSAGE['GENERIC_ALREADY_INSTALLED']);
 		}
 
 		$action="upgrade";
@@ -134,7 +133,7 @@
 if(!is_writable(WB_PATH.'/modules/'))
 {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC']['BAD_PERMISSIONS']);
+	$admin->print_error($MESSAGE['GENERIC_BAD_PERMISSIONS']);
 }
 
 // Set module directory
@@ -152,7 +151,7 @@
 
 if(!$list)
 {
-	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNZIP']);
+	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNZIP']);
 }
 /*
 
@@ -186,15 +185,13 @@
 {
 	// Load module info into DB
 	load_module(WB_PATH.'/modules/'.$module_directory, false);
-	$admin->print_success($MESSAGE['GENERIC']['INSTALLED']);
+	$admin->print_success($MESSAGE['GENERIC_INSTALLED']);
 } elseif ($action=="upgrade")
 {
 
 	upgrade_module($module_directory, false);
-	$admin->print_success($MESSAGE['GENERIC']['UPGRADED']);
+	$admin->print_success($MESSAGE['GENERIC_UPGRADED']);
 }
 
 // Print admin footer
-$admin->print_footer();
-
-?>
\ No newline at end of file
+$admin->print_footer();
\ No newline at end of file
Index: branches/2.8.x/wb/admin/modules/index.php
===================================================================
--- branches/2.8.x/wb/admin/modules/index.php	(revision 1711)
+++ branches/2.8.x/wb/admin/modules/index.php	(revision 1712)
@@ -4,7 +4,7 @@
  * @category        admin
  * @package         modules
  * @author          Ryan Djurovich, WebsiteBaker Project
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -22,7 +22,7 @@
 
 // Setup template object, parse vars to it, then parse it
 // Create new template object
-$template = new Template(dirname($admin->correct_theme_source('modules.htt')));
+$template = new Template(dirname($admin->correct_theme_source('modules.htt')),'keep');
 // $template->debug = true;
 $template->set_file('page', 'modules.htt');
 $template->set_block('page', 'main_block', 'main');
@@ -31,7 +31,10 @@
 $template->set_block('main_block', 'module_list_block', 'module_list');
 $result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' order by name");
 if($result->numRows() > 0) {
-	while ($addon = $result->fetchRow()) {
+	while ($addon = $result->fetchRow())
+	{
+		if ($admin->get_permission($addon['directory'],'module')==false) { continue;}
+//echo $addon['directory'].'<br />';
 		$template->set_var('VALUE', $addon['directory']);
 		$template->set_var('NAME', $addon['name']);
 		$template->parse('module_list', 'module_list_block', true);
@@ -46,9 +49,12 @@
 $template->set_var(array('INSTALL_VISIBLE' => 'hide', 'UPGRADE_VISIBLE' => 'hide', 'UNINSTALL_VISIBLE' => 'hide'));
 
 $show_block = false;
-foreach ($module_files as $index => $path) {
+foreach ($module_files as $index => $path)
+{
+	if ( $admin->get_permission(basename($path),'module')==false ) { continue;}
 	if (is_dir($path)) {
-		if (file_exists($path . '/install.php')) {
+//echo basename($path).'<br />';
+		if (is_readable($path . '/install.php')) {
 			$show_block = true;
 			$template->set_var('INSTALL_VISIBLE', '');
 			$template->set_var('VALUE', basename($path));
@@ -56,15 +62,15 @@
 			$template->parse('install_list', 'install_list_block', true);
 		}
 
-		if (file_exists($path . '/upgrade.php')) {
+		if (is_readable($path . '/upgrade.php')) {
 			$show_block = true;
 			$template->set_var('UPGRADE_VISIBLE', '');
 			$template->set_var('VALUE', basename($path));
 			$template->set_var('NAME', basename($path));
 			$template->parse('upgrade_list', 'upgrade_list_block', true);
-		} 
-		
-		if (file_exists($path . '/uninstall.php')) {
+		}
+
+		if (is_readable($path . '/uninstall.php')) {
 			$show_block = true;
 			$template->set_var('UNINSTALL_VISIBLE', '');
 			$template->set_var('VALUE', basename($path));
@@ -88,19 +94,16 @@
 	$template->set_var('DISPLAY_LIST', 'hide');
 }
 // only show block if there is something to show
-if(!$show_block || count($module_files) == 0 || !isset($_GET['advanced']) || $admin->get_permission('admintools') != true) {
+if(!$show_block || count($module_files) == 0 || !isset($_GET['advanced']) || $admin->get_permission('settings_advanced') != true) {
 	$template->set_var('DISPLAY_MANUAL_INSTALL', 'hide');
 }
 
-// Insert language headings
-$template->set_var(array(
-					'HEADING_INSTALL_MODULE' => $HEADING['INSTALL_MODULE'],
-					'HEADING_UNINSTALL_MODULE' => $HEADING['UNINSTALL_MODULE'],
-					'OVERWRITE_NEWER_FILES' => $MESSAGE['ADDON_OVERWRITE_NEWER_FILES'],
-					'HEADING_MODULE_DETAILS' => $HEADING['MODULE_DETAILS'],
-					'HEADING_INVOKE_MODULE_FILES' => $HEADING['INVOKE_MODULE_FILES']
-					)
-				);
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($mLang->getLangArray());
+
 // insert urls
 $template->set_var(array(
 					'ADMIN_URL' => ADMIN_URL,
@@ -111,20 +114,13 @@
 				);
 // Insert language text and messages
 $template->set_var(array(
-	'URL_TEMPLATES' => $admin->get_permission('templates') ? 
-		'<a href="' . ADMIN_URL . '/templates/index.php">' . $MENU['TEMPLATES'] . '</a>' : '',
-	'URL_LANGUAGES' => $admin->get_permission('languages') ? 
-		'<a href="' . ADMIN_URL . '/languages/index.php">' . $MENU['LANGUAGES'] . '</a>' : '',
-	'URL_ADVANCED' => $admin->get_permission('admintools') ? 
-		'<a href="' . ADMIN_URL . '/modules/index.php?advanced">' . $TEXT['ADVANCED'] . '</a>' : '',
-	'TEXT_INSTALL' => $TEXT['INSTALL'],
-	'TEXT_UNINSTALL' => $TEXT['UNINSTALL'],
-	'TEXT_VIEW_DETAILS' => $TEXT['VIEW_DETAILS'],
-	'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
-	'TEXT_MANUAL_INSTALLATION' => $MESSAGE['ADDON']['MANUAL_INSTALLATION'],
-	'TEXT_MANUAL_INSTALLATION_WARNING' => $MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'],
-	'TEXT_EXECUTE' => $TEXT['EXECUTE'],
-	'TEXT_FILE' => $TEXT['FILE']
+	'URL_TEMPLATES' => $admin->get_permission('templates') ?
+		'<a href="' . ADMIN_URL . '/templates/index.php">' . $mLang->MENU_TEMPLATES . '</a>' : '<b>'.$mLang->MENU_TEMPLATES.'</b>',
+	'URL_LANGUAGES' => $admin->get_permission('languages') ?
+		'<a href="' . ADMIN_URL . '/languages/index.php">' . $mLang->MENU_LANGUAGES . '</a>' : '<b>'.$mLang->MENU_LANGUAGES.'</b>',
+	'URL_ADVANCED' => $admin->get_permission('settings_advanced') ?
+		'<a href="' . ADMIN_URL . '/modules/index.php?advanced">' . $mLang->TEXT_ADVANCED . '</a>' : '<b>'.$mLang->TEXT_ADVANCED.'</b>' ,
+	'HEADING_CHANGE_TEMPLATE_NOTICE' => ''
 	)
 );
 
Index: branches/2.8.x/wb/admin/addons/languages/EN.php
===================================================================
--- branches/2.8.x/wb/admin/addons/languages/EN.php	(nonexistent)
+++ branches/2.8.x/wb/admin/addons/languages/EN.php	(revision 1712)
@@ -0,0 +1,93 @@
+<?php
+/****************************************************************************************
+ * extended language definition for WebsiteBaker                                        *
+ * ACP-module  pages                                                                    *
+ * english (GB)                                                                         *
+ ****************************************************************************************/
+
+
+$HEADING['CHANGE_TEMPLATE_NOTICE'] = 'Click <i>Advanced</i> to copy topical Backend-Theme!';
+$HEADING['INSTALL_LANGUAGE'] = 'Install Language';
+$HEADING['INSTALL_MODULE'] = 'Install Module';
+$HEADING['INSTALL_TEMPLATE'] = 'Install Template';
+$HEADING['INVOKE_LANGUAGE_FILES'] = 'Execute language files manually';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+$HEADING['INVOKE_TEMPLATE_FILES'] = 'Execute template files manually';
+$HEADING['LANGUAGE_DETAILS'] = 'Language Details';
+$HEADING['MODULE_DETAILS'] = 'Module Details';
+$HEADING['TEMPLATE_DETAILS'] = 'Template Details';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Uninstall Language';
+$HEADING['UNINSTALL_MODULE'] = 'Uninstall Module';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Uninstall Template';
+$HEADING['UPGRADE_LANGUAGE'] = 'Language register/upgrading';
+$HEADING['UPLOAD_FILES'] = 'Upload File(s)';
+
+$MENU['LANGUAGES'] = 'Languages';
+$MENU['MODULES'] = 'Modules';
+$MENU['TEMPLATES'] = 'Templates';
+
+$MESSAGE['ADDON_ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON_LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+$MESSAGE['ADDON_MANUAL_FTP_LANGUAGE'] = '<strong>ATTENTION!</strong> For safety reasons uploading languages files in the folder/languages/ only by FTP and use the Upgrade function for registering or updating.';
+$MESSAGE['ADDON_MANUAL_FTP_WARNING'] = 'Warning: Existing module database entries will get lost. ';
+$MESSAGE['ADDON_MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation functions <tt>install</tt>, <tt>upgrade</tt> or <tt>uninstall</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module functions manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON_MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+$MESSAGE['ADDON_MANUAL_RELOAD_WARNING'] = 'Warning: Existing module database entries will get lost. ';
+$MESSAGE['ADDON_MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['ADDON_OVERWRITE_NEWER_FILES'] = 'Overwrite newer Files';
+$MESSAGE['ADDON_PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON_RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON_TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES'] = 'Insufficient privelliges to be here';
+$MESSAGE['GENERIC_ALREADY_INSTALLED'] = 'Already installed';
+$MESSAGE['GENERIC_BAD_PERMISSIONS'] = 'Unable to write to the target directory';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL'] = 'Cannot uninstall';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE'] = 'Cannot Uninstall: the selected file is in use';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL'] = '<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = 'this page;these pages';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = 'Can\'t uninstall the template <b>{{name}}</b>, because it is the default template!';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_THEME'] = 'Can\'t uninstall the template <b>{{name}}</b>, because it is the default backend theme!';
+$MESSAGE['GENERIC_CANNOT_UNZIP'] = 'Cannot unzip file';
+$MESSAGE['GENERIC_CANNOT_UPLOAD'] = 'Cannot upload file';
+$MESSAGE['GENERIC_FORGOT_OPTIONS'] = 'You have selected no choice!';
+$MESSAGE['GENERIC_INSTALLED'] = 'Installed successfully';
+$MESSAGE['GENERIC_INVALID'] = 'The file you uploaded is invalid';
+$MESSAGE['GENERIC_INVALID_ADDON_FILE'] = 'Invalid WebsiteBaker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC_INVALID_LANGUAGE_FILE'] = 'Invalid WebsiteBaker language file. Please check the text file.';
+$MESSAGE['GENERIC_INVALID_MODULE_FILE'] = 'Invalid WebsiteBaker module file. Please check the text file.';
+$MESSAGE['GENERIC_INVALID_TEMPLATE_FILE'] = 'Invalid WebsiteBaker template file. Please check the text file.';
+$MESSAGE['GENERIC_IN_USE'] = ' but used in ';
+$MESSAGE['GENERIC_MISSING_ARCHIVE_FILE'] = 'Missing Archiv file!';
+$MESSAGE['GENERIC_MODULE_VERSION_ERROR'] = 'The module is not installed properly!';
+$MESSAGE['GENERIC_NOT_INSTALLED'] = 'Not installed';
+$MESSAGE['GENERIC_NOT_UPGRADED'] = 'Actualization not possibly';
+$MESSAGE['GENERIC_SECURITY_ACCESS'] = 'Security offense!! Access denied!';
+$MESSAGE['GENERIC_SECURITY_OFFENSE'] = 'Security offense!! data storing was refused!!';
+$MESSAGE['GENERIC_UNINSTALLED'] = 'Uninstalled successfully';
+$MESSAGE['GENERIC_UPGRADED'] = 'Upgraded successfully';
+$MESSAGE['MEDIA_CANNOT_DELETE_DIR'] = 'Cannot delete the selected folder';
+
+$TEXT['ADVANCED'] = 'Advanced';
+$TEXT['ARE_YOU_SURE'] = 'Are you sure?';
+$TEXT['AUTHOR'] = 'Author';
+$TEXT['BACK'] = 'Back';
+$TEXT['CANCEL'] = 'Cancel';
+$TEXT['CODE'] = 'Code';
+$TEXT['COMMENT'] = 'Comment';
+$TEXT['CURRENT_FOLDER'] = 'Current Folder';
+$TEXT['DESCRIPTION'] = 'Description';
+$TEXT['DESIGNED_FOR'] = 'Designed For';
+$TEXT['EXECUTE'] = 'Execute';
+$TEXT['FILE'] = 'File';
+$TEXT['FUNCTION'] = 'Function';
+$TEXT['INSTALL'] = 'Install';
+$TEXT['LICENSE'] = 'License';
+$TEXT['NAME'] = 'Name';
+$TEXT['PLEASE_SELECT'] = 'Please select';
+$TEXT['RESET'] = 'Reset';
+$TEXT['SAVE'] = 'Save';
+$TEXT['THEME'] = 'Backend-Theme';
+$TEXT['TYPE'] = 'Art';
+$TEXT['UNINSTALL'] = 'Uninstall';
+$TEXT['VIEW_DETAILS'] = 'View Details';
+$TEXT['VERSION'] = 'Version';

Property changes on: branches/2.8.x/wb/admin/addons/languages/EN.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/admin/addons/languages/DE.php
===================================================================
--- branches/2.8.x/wb/admin/addons/languages/DE.php	(nonexistent)
+++ branches/2.8.x/wb/admin/addons/languages/DE.php	(revision 1712)
@@ -0,0 +1,93 @@
+<?php
+/****************************************************************************************
+ * extended language definition for WebsiteBaker                                        *
+ * ACP-module  pages                                                                    *
+ * deutsch                                                                              *
+ ****************************************************************************************/
+
+
+$HEADING['CHANGE_TEMPLATE_NOTICE'] = 'Klicken Sie auf <i>Erweitert</i> um das aktuelle Backend-Theme zu kopieren!';
+$HEADING['INSTALL_LANGUAGE'] = 'Sprache hinzufügen';
+$HEADING['INSTALL_MODULE'] = 'Modul installieren';
+$HEADING['INSTALL_TEMPLATE'] = 'Designvorlage installieren';
+$HEADING['INVOKE_LANGUAGE_FILES'] = 'Sprachdateien manuell ausführen';
+$HEADING['INVOKE_MODULE_FILES'] = 'Moduldateien manuell ausführen';
+$HEADING['INVOKE_TEMPLATE_FILES'] = 'Templatedateien manuell ausführen';
+$HEADING['LANGUAGE_DETAILS'] = 'Details zur Sprache';
+$HEADING['MODULE_DETAILS'] = 'Details zum Modul';
+$HEADING['TEMPLATE_DETAILS'] = 'Details zur Designvorlage';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Sprache löschen';
+$HEADING['UNINSTALL_MODULE'] = 'Modul deinstallieren';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Designvorlage deinstallieren';
+$HEADING['UPGRADE_LANGUAGE'] = 'Sprache registrieren/aktualisieren (Upgrade)';
+$HEADING['UPLOAD_FILES'] = 'Datei(en) übertragen';
+
+$MENU['LANGUAGES'] = 'Sprachen';
+$MENU['MODULES'] = 'Module';
+$MENU['TEMPLATES'] = 'Designvorlagen';
+
+$MESSAGE['ADDON_ERROR_RELOAD'] = 'Fehler beim Abgleich der Addon Informationen.';
+$MESSAGE['ADDON_LANGUAGES_RELOADED'] = 'Sprachen erfolgreich geladen';
+$MESSAGE['ADDON_MANUAL_FTP_LANGUAGE'] = '<strong>ACHTUNG!</strong> Überspielen Sie Sprachdateien aus Sicherheitsgründen nur über FTP in den Ordner /languages/ und benutzen die Upgrade Funktion zum Registrieren oder Aktualisieren.';
+$MESSAGE['ADDON_MANUAL_FTP_WARNING'] = 'Warnung: Eventuell vorhandene Datenbankeinträge eines Moduls gehen verloren. ';
+$MESSAGE['ADDON_MANUAL_INSTALLATION'] = 'Beim Hochladen oder Löschen von Modulen per FTP (nicht empfohlen), werden eventuell vorhandene Modulfunktionen <i>install</i>, <i>upgrade</i> oder <i>uninstall</i> nicht automatisch ausgeführt. Solche Module funktionieren daher meist nicht richtig, oder hinterlassen Datenbankeinträge beim Löschen per FTP.<br /><br /> Nachfolgend können die Modulfunktionen von per FTP hochgeladenen Modulen manuell ausgeführt werden.';
+$MESSAGE['ADDON_MANUAL_INSTALLATION_WARNING'] = 'Warnung: Eventuell vorhandene Datenbankeinträge eines Moduls gehen verloren. Bitte nur bei Problemen mit per FTP hochgeladenen Modulen verwenden. ';
+$MESSAGE['ADDON_MANUAL_RELOAD_WARNING'] = 'Warnung: Eventuell vorhandene Datenbankeinträge eines Moduls gehen verloren. ';
+$MESSAGE['ADDON_MODULES_RELOADED'] = 'Module erfolgreich geladen';
+$MESSAGE['ADDON_OVERWRITE_NEWER_FILES'] = 'Überschreibe neuere Dateien';
+$MESSAGE['ADDON_PRECHECK_FAILED'] = 'Installation fehlgeschlagen. Ihr System erfüllt nicht alle Voraussetzungen die für diese Erweiterung ben&ouml;tigt werden. Um diese Erweiterung nutzen zu k&ouml;nnen, müssen nachfolgende Updates durchgeführt werden.';
+$MESSAGE['ADDON_RELOAD'] = 'Abgleich der Datenbank mit den Informationen aus den Addon-Dateien (z.B. nach FTP Upload).';
+$MESSAGE['ADDON_TEMPLATES_RELOADED'] = 'Designvorlagen erfolgreich geladen';
+$MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES'] = 'Ungenügende Zugangsberechtigungen';
+$MESSAGE['GENERIC_ALREADY_INSTALLED'] = 'Bereits installiert';
+$MESSAGE['GENERIC_BAD_PERMISSIONS'] = 'Kann im Zielverzeichnis nicht schreiben';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL'] = 'Deinstallation fehlgeschlagen';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE'] = 'Deinstallation nicht m&ouml;glich: Datei wird benutzt';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL'] = 'Das {{type}} <strong>{{type_name}}</strong> kann nicht deinstalliert werden, weil es auf {{pages}} benutzt wird:';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = 'folgender Seite;folgenden Seiten';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = 'Das Template <strong>{{name}}</strong> kann nicht deinstalliert werden, weil es das Standardtemplate ist!';
+$MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_THEME'] = 'Das Template <strong>{{name}}</strong> kann nicht deinstalliert werden, weil es das Standardbackendtheme ist!';
+$MESSAGE['GENERIC_CANNOT_UNZIP'] = 'Fehler beim Entpacken';
+$MESSAGE['GENERIC_CANNOT_UPLOAD'] = 'Die Datei kann nicht übertragen werden';
+$MESSAGE['GENERIC_FORGOT_OPTIONS'] = 'Sie haben keine Auswahl getroffen!';
+$MESSAGE['GENERIC_INSTALLED'] = 'Erfolgreich installiert';
+$MESSAGE['GENERIC_INVALID'] = 'Die übertragene Datei ist ungültig';
+$MESSAGE['GENERIC_INVALID_ADDON_FILE'] = 'Ungültige WebsiteBaker Installationsdatei. Bitte *.zip Format prüfen.';
+$MESSAGE['GENERIC_INVALID_LANGUAGE_FILE'] = 'Ungültige WebsiteBaker Sprachdatei. Bitte Textdatei prüfen.';
+$MESSAGE['GENERIC_INVALID_MODULE_FILE'] = 'Ungültige WebsiteBaker Moduledatei. Bitte Textdatei prüfen.';
+$MESSAGE['GENERIC_INVALID_TEMPLATE_FILE'] = 'Ungültige WebsiteBaker Templatedatei. Bitte Textdatei prüfen.';
+$MESSAGE['GENERIC_IN_USE'] = ' aber benutzt in ';
+$MESSAGE['GENERIC_MISSING_ARCHIVE_FILE'] = 'Fehlende Archivdatei!';
+$MESSAGE['GENERIC_MODULE_VERSION_ERROR'] = 'Das Modul ist nicht ordnungsgemäss installiert!';
+$MESSAGE['GENERIC_NOT_INSTALLED'] = 'Nicht installiert';
+$MESSAGE['GENERIC_NOT_UPGRADED'] = 'Aktualisierung nicht m&ouml;glich';
+$MESSAGE['GENERIC_SECURITY_ACCESS'] = 'Sicherheitsverletzung!! Zugriff wurde verweigert!';
+$MESSAGE['GENERIC_SECURITY_OFFENSE'] = 'Sicherheitsverletzung!! Das Speichern der Daten wurde verweigert!!';
+$MESSAGE['GENERIC_UNINSTALLED'] = 'Erfolgreich deinstalliert';
+$MESSAGE['GENERIC_UPGRADED'] = 'Erfolgreich aktualisiert';
+$MESSAGE['MEDIA_CANNOT_DELETE_DIR'] = 'Das ausgewählte Verzeichnis konnte nicht gelöscht werden';
+
+$TEXT['ADVANCED'] = 'Erweitert';
+$TEXT['ARE_YOU_SURE'] = 'Sind Sie sicher?';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['BACK'] = 'Zurück';
+$TEXT['CANCEL'] = 'Abbrechen';
+$TEXT['CODE'] = 'Code';
+$TEXT['COMMENT'] = 'Kommentar';
+$TEXT['CURRENT_FOLDER'] = 'Aktueller Ordner';
+$TEXT['DESCRIPTION'] = 'Beschreibung';
+$TEXT['DESIGNED_FOR'] = 'Entworfen für';
+$TEXT['EXECUTE'] = 'Ausführen';
+$TEXT['FILE'] = 'Datei';
+$TEXT['FUNCTION'] = 'Funktion';
+$TEXT['INSTALL'] = 'Installieren';
+$TEXT['LICENSE'] = 'Lizenz';
+$TEXT['NAME'] = 'Name';
+$TEXT['PLEASE_SELECT'] = 'Bitte auswählen';
+$TEXT['RESET'] = 'Zurücksetzen';
+$TEXT['SAVE'] = 'Speichern';
+$TEXT['THEME'] = 'Backend-Theme';
+$TEXT['TYPE'] = 'Art';
+$TEXT['UNINSTALL'] = 'Deinstallieren';
+$TEXT['VIEW_DETAILS'] = 'Details';
+$TEXT['VERSION'] = 'Version';

Property changes on: branches/2.8.x/wb/admin/addons/languages/DE.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
