diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 8e07f139c319a1f46e2a2a4ecae3e381a391a59d..9f920c6b85f8b103a05e299d45dbbcd79a568ab0 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -821,6 +821,9 @@ class tform {
 
                 // überprüfe, ob das Template existiert, wenn nicht
                 // dann generiere das Template
+				
+				// Translate the title of the tab
+				$tab['title'] = $this->lng($tab['title']);
 								
                 if(!is_file($tab["template"])) {
                      $app->uses('tform_tpl_generator');
@@ -849,8 +852,8 @@ class tform {
                 $app->tpl->setVar('form_active_tab',$active_tab);
 
                 // Set form title
-                $form_hint = '<b>'.$this->formDef["title"].'</b>';
-                if($this->formDef["description"] != '') $form_hint .= '<br><br>'.$this->formDef["description"];
+                $form_hint = '<b>'.$this->lng($this->formDef["title"]).'</b>';
+                if($this->formDef["description"] != '') $form_hint .= '<br><br>'.$this->lng($this->formDef["description"]);
                 $app->tpl->setVar('form_hint',$form_hint);
 
                 // Set Wordbook for this form
@@ -1020,6 +1023,19 @@ class tform {
         function getCurrentTab() {
                 return $_SESSION["s"]["form"]["tab"];
         }
+		
+		
+		// translation function for forms, tries the form wordbook first and if this fails, it tries the global wordbook
+		function lng($msg) {
+			global $app;
+			
+			if(isset($this->wordbook[$msg])) {
+				return $this->wordbook[$msg];
+			} else {
+				return $app->lng($msg);
+			}
+			
+		}
 
 }
 
diff --git a/interface/web/content.php b/interface/web/content.php
index 2e9bbc5935923a5ed554e899631efbf46573203c..9e6382d13191617fbd5500da2584a0a74a16304b 100644
--- a/interface/web/content.php
+++ b/interface/web/content.php
@@ -35,7 +35,7 @@ $module = $_REQUEST["s_mod"];
 $page = $_REQUEST["s_pg"];
 
 if(!preg_match("/^[a-z]{0,20}$/i", $module)) die('module name contains unallowed chars.');
-if(!preg_match("/^[a-z]{0,20}$/i", $page)) die('module name contains unallowed chars.');
+if(!preg_match("/^[a-z]{0,20}$/i", $page)) die('page name contains unallowed chars.');
 
 if(is_file("$module/$page.php")) {
 	
@@ -52,7 +52,7 @@ if(is_file("$module/$page.php")) {
 		$module = $target_parts[0];
 		$page = $target_parts[1];
 		if(!preg_match("/^[a-z]{2,20}$/i", $module)) die('target module name contains unallowed chars.');
-		if(!preg_match("/^[a-z]{2,20}$/i", $page)) die('target module name contains unallowed chars.');
+		if(!preg_match("/^[a-z]{2,20}$/i", $page)) die('target page name contains unallowed chars.');
 		
 		if(is_file("$module/$page.php")) {
 			include_once("$module/$page.php");