diff --git a/html/babel.css b/html/babel.css
index cbe8ae1..0036018 100644
--- a/html/babel.css
+++ b/html/babel.css
Binary files differ
diff --git a/html/callback/getCurrentStringTranslation.php b/html/callback/getCurrentStringTranslation.php
index 87e46c5..e1d7fe8 100644
--- a/html/callback/getCurrentStringTranslation.php
+++ b/html/callback/getCurrentStringTranslation.php
@@ -18,11 +18,14 @@
 
 $language = $_SESSION['language'];
 $version = $_SESSION['version'];
+$project_id = $_SESSION['project'];
 
 $query = "select 
 			strings.string_id,
 			strings.value as string_value,
 			translations.value as translation_value,
+			files.name,
+			strings.name as token,
 			max(translations.version)
 		  from
 		  	files,
@@ -52,26 +55,103 @@
 
 $line = mysql_fetch_array($res, MYSQL_ASSOC);
 
+//print_r($line);
+
+
+if($line['translation_value']){
+	$trans = " AND translations.value = '".addslashes($line['translation_value'])."'  			
+				AND 
+			  translations.is_active = 1
+	";
+}else{
+//	$trans = "translations.value is NULL ";
+}
+
+$query = "select 
+				strings.string_id, strings.value, strings.name max(translations.translation_id)
+			FROM 
+				files,
+				strings								
+			left join 
+				translations 
+			on 
+				translations.string_id = strings.string_id 
+			where
+				files.file_id = strings.file_id 
+			AND			
+				files.project_id = '".addslashes($project_id)."' 
+			AND 
+				strings.value = '".addslashes($line['string_value'])."'
+
+				$trans
+			AND
+				files.is_active = 1
+				group by translations.string_id
+				";
+//			AND 
+//				files.name = (SELECT files.name FROM files as F where F.project_id = '".addslashes($project_id)."')
+				
+$query = "SELECT 
+			S.*
+		  FROM 
+		  	strings AS S 
+		  inner join files AS F on F.file_id = S.file_id 
+		  inner join translations AS T on T.string_id = S.string_id 
+		  where 
+		  	F.project_id = '".addslashes($project_id)."' 
+		  AND 
+		  	F.file_id in (SELECT files.file_id FROM files where files.project_id = '".addslashes($project_id)."') 
+		  AND 
+		  	S.value = '".addslashes($line['string_value'])."'
+		  and 
+		  	T.value = '".addslashes($line['translation_value'])."' 
+		  AND 
+		  	T.is_active = 1
+		  	";
+
+//INSERT INTO translations SELECT S.string_id, 2, "Some Enhanced Text", other fields.....  FROM strings AS S inner join files AS F on F.file_id = S.file_id inner join translations AS T on T.string_id = S.string_id where F.project_id = "eclipse" AND F.name=(SELECT files.name FROM files where file_id = 7) AND S.name="pluginName" and T.value = "Some Old Text" AND T.is_active = 1				
+				
+//print $query;
+
+$res = mysql_query($query,$dbh);
+
+/*
+while($same_trans = mysql_fetch_array($res, MYSQL_ASSOC)){
+	print "<pre>--";
+	print_r($same_trans);
+	print "</pre>";
+}
+*/
 ?>
 <form id='translation-form'>
 	<input type="hidden" name="string_id" value="<?=$line['string_id'];?>">
 
 	<div id="english-area" class="side-component">
 		<h4>English String</h4>
-		<div id="english-current-area">
-			<?= nl2br($line['string_value']);?>
+		<div style='margin-bottom: .5em;'>
+			<b><?= nl2br($line['string_value']);?></b>
+		</div>
+		<h4>File From</h4>
+		<div style='margin-bottom: .5em;'>
+			<?= nl2br($line['name']);?>
+		</div>
+		<h4>Externalized Token</h4>
+		<div>
+			<?= nl2br($line['token']);?>
 		</div>
 	</div>
 	
 	<div id="translation-textarea" class="side-component">
 		<h4>Current Translation</h4>
-		<textarea style='display: inline; width: 390px; height: 150px;' name="translation"><?= nl2br($line['translation_value']);?></textarea>
+		<textarea style='display: inline; width: 320px; height: 150px;' name="translation"><?= nl2br($line['translation_value']);?></textarea>
 		<br>
 		<input type="submit" value="translate">
 	</div>
+	
 	<div id="translation-history" class="side-component">
 		<h4>History of Translations</h4>
 		<div id="translation-history">Coming soon!</div>
 	</div>
 	
+	
 </form>
diff --git a/html/callback/getLanguages.php b/html/callback/getLanguages.php
index c55b6a7..787b706 100644
--- a/html/callback/getLanguages.php
+++ b/html/callback/getLanguages.php
@@ -13,7 +13,7 @@
 
 require_once("cb_global.php");
 
-$query = "select * from languages where is_active = 1 and language_id != 1";
+$query = "select * from languages where is_active = 1 and language_id != 1 order by name";
 
 $res = mysql_query($query,$dbh);
 
@@ -28,8 +28,6 @@
 	$return[] = $line;
 }
 
-//print_r($return);
-
 print json_encode($return);
 exit();
 
diff --git a/html/callback/getStringsforProject.php b/html/callback/getStringsforProject.php
index 9098ad5..303741c 100644
--- a/html/callback/getStringsforProject.php
+++ b/html/callback/getStringsforProject.php
@@ -139,8 +139,7 @@
 					strings.string_id as stringId,
 					strings.value as text,
 					strings.created_on as createdOn,
-					translations.value as translationString,
-					max(translations.version)
+					translations.value as translationString
 				from 
 					files,
 				  	strings
@@ -149,6 +148,8 @@
 				  		translations.language_id = '".addslashes($language)."'
 				  	  and
 				  		translations.string_id  = strings.string_id
+				  	  and 
+				  	  	translations.is_active = 1
 				  	)
 				  where 
 				  	strings.is_active = 1 
@@ -158,7 +159,6 @@
 					files.version = '".addslashes($version)."'
 				  and 
 					files.project_id = '".addslashes($project_id)."'
-							
   				  group by strings.string_id,translations.version desc
 				";
 		
diff --git a/html/callback/setStringTranslation.php b/html/callback/setStringTranslation.php
index 06f153f..7276018 100644
--- a/html/callback/setStringTranslation.php
+++ b/html/callback/setStringTranslation.php
@@ -21,8 +21,25 @@
 $language_id = $_SESSION["language"];
 $project_id = $_SESSION['project'];
 $language_id = $_SESSION["language"];
+$version = $_SESSION["version"];
+
 $user_id =	$User->userid;
 
+
+$query = "update 
+			translations 
+		  set
+			is_active = 0 
+		  where 		  	
+			string_id = '".addslashes($string_id)."'
+		  and
+		  	language_id = '".addslashes($language_id)."'
+		  and translation_id != ".mysql_insert_id($dbh)."";
+
+//$res = mysql_query($query,$dbh);
+
+
+
 $query = "insert into 
 			translations
 		  set
@@ -34,10 +51,152 @@
 		  	";
 
 
+		$query = "
+				INSERT INTO 
+					translations 
+					(string_id,
+					 language_id,
+					 value,
+					 userid,
+					 created_on)
+					values(select 
+					strings.string_id,
+				  	'".addslashes($language_id)."',
+				  	'',
+				  	'".addslashes($translation)."',
+				  	'".addslashes($user_id)."',
+				  	NOW()				
+				from
+					files,
+				  	strings
+				  	
+				  	left join translations on (
+				  		translations.language_id = '".addslashes($language_id)."'
+				  	  and
+				  		translations.string_id  = strings.string_id
+				  	)
+				  where 
+				  	strings.is_active = 1 
+				  and 
+					files.file_id = strings.file_id
+				  and 
+					files.project_id = '".addslashes($project_id)."'
+							
+				)
+				";
+
+//  				  group by strings.string_id,translations.version desc
+		
+//				  and	
+//					files.version = '".addslashes($version)."'
+		
+//		print $query;
+		
+
+		
+		$query2 = "select 
+					strings.string_id as stringId
+				  from 
+					files,
+				  	strings
+				  	left join translations on (
+				  		translations.language_id = '".addslashes($language)."'
+				  	  and
+				  		translations.string_id  = strings.string_id
+				  	  and 
+				  	  	translations.is_active = 1
+				  	)
+				  where 
+				  	strings.is_active = 1 
+				  and 
+					files.file_id = strings.file_id
+				  and	
+					files.version = '".addslashes($version)."'
+				  and 
+					files.project_id = '".addslashes($project_id)."'
+							
+  				  group by strings.string_id,translations.version desc
+				";
+		
+		
+		$query = "INSERT INTO 
+					translations 
+					(string_id,
+					 language_id,
+					 value,
+					 userid,
+					 created_on)
+					
+					(SELECT 
+						S.string_id, 
+						'".addslashes($language)."' , 
+						'".addslashes($translation)."', 
+		  				'".addslashes($user_id)."',
+						NOW()
+	  				FROM 
+					 	strings AS S 
+					 	
+					 	inner join files AS F 
+					 	on 
+					 		F.file_id = S.file_id 
+					 		
+					 	left join translations AS T 
+					 	on (
+					 		T.string_id = S.string_id 
+					 		or
+					 		T.string_id is null
+					 		)
+ 						and 
+					 		(T.value = (select translations.value from strings,translations where strings.string_id = '".addslashes($string_id)."' and translations.string_id = strings.string_id and translations.is_active = 1 limit 1) 
+					 		or
+					 		T.value is null)
+ 						 AND 
+ 						 (
+					 		T.is_active = 1		
+ 					 		or
+					 		T.is_active is null
+					 	 )
+					 where 
+
+					 	F.project_id = '".addslashes($project_id)."' 
+					 AND 
+					 	F.name in (SELECT files.name FROM files where project_id = '".addslashes($project_id)."')
+					 AND 
+					 	S.name in (select strings.name from strings where string_id = '".addslashes($string_id)."') 
+				 	)
+				";
+		
+/*		
+INSERT INTO translations 
+SELECT S.string_id, 2, "Some Enhanced Text", other fields.....  
+FROM 
+strings AS S 
+inner join files AS F on F.file_id = S.file_id 
+inner join translations AS T on T.string_id = S.string_id 
+where F.project_id = "eclipse" 
+AND F.name=(SELECT files.name FROM files where file_id = 7) 
+AND S.name="pluginName" 
+and T.value = "Some Old Text" 
+AND T.is_active = 1		
+*/		
+		print $query;
+		
+		$res = mysql_query($query,$dbh);
+		
+		print "error:".mysql_error($dbh);
+		
+		print "num rows: ".mysql_affected_rows($dbh);
+		
+		
+		
+		
 
 
-$res = mysql_query($query,$dbh);
 
+//		while($trans = mysql_fetch_array($res, MYSQL_ASSOC)){
+//			print_r($trans);
+//		}
+		
 /*
 $res_file_id = mysql_query("select file_id from files where project_id = '".addslashes($project_id)."' limit 1");
 $file_id = mysql_fetch_assoc($res_file_id);
diff --git a/html/index.php b/html/index.php
index 6565510..668acfe 100644
--- a/html/index.php
+++ b/html/index.php
@@ -11,7 +11,7 @@
  *    Eclipse Foundation
 *******************************************************************************/
 require("global.php");
-InitPage("login");
+InitPage("");
 
 $pageTitle 		= "Babel Project";
 $pageKeywords 	= "translation,language,nlpack,pack,eclipse,babel";
@@ -24,68 +24,46 @@
 ?>
 
 <h1 id="page-message">Welcome to the Babel Project</h1>
-<div id="contentArea">
-
-	<h2>Languages / Projects / Versions</h2>
-	<div id="language" class="side-component">
-		<h4 id="language-selection">Langues</h4>
-		<ul id="language-area"class="scrollable-area"></ul>
-	</div>
-
-	<div id="project" class="side-component">
-		<h4 id="project-selection">Projects</h4>
-		<ul id="project-area" class="scrollable-area"></ul>
+<div>
+	<h2>Eclipse in your language</h2>
+	
+	<div style='float: right; border: 0px solid black; background-color: lightblue;'>
+		<h3 style='margin: 0px; padding: 0px;'>Login to Babel</h3>
+		<form name="frmLogin" method="post" action="login.php">
+			<table cellspacing=4 cellpadding=0 border=0>
+			<tr>
+			  <td id="formLbl">Email:</td><td style='text-align:left;'><input type="text" name="username" value="<?= $USERNAME ?>" size="20" maxlength="255" /></td>
+			</tr>
+			<tr>
+			  <td id="formLbl">Password:</td><td style='text-align:left;'><input type="password" name="password" value="<?= $PASSWORD ?>" size="20" maxlength="255" /></td> 
+			</tr>
+			<tr>
+			  <td></td><td style='text-align:left;'><input type="checkbox" name="remember" value="1" <?= $REMEMBER ?> />remember me </td>
+			</tr>
+			<tr>
+			  <td></td><td style='text-align:left;'><input type="submit" name="submit" value="Login" style="font-size:14px;" /></td></tr>
+			</table>
+		</form>
 	</div>
 	
-	<div id="project" class="side-component">
-		<h4 id="version-selection">Versions</h4>
-		<ul id="version-area" class="scrollable-area"></ul>
-	</div>
-	
+	<p>Eclipse is a part of the global community of open source projects. 
+	 It is in everyone’s interest to ensure that Eclipse is available and translated in as many locales as possible. 
+	 The Babel project is a set of open tools to make the job of globalizing Eclipse projects easier. 
+	 Babel provides ways for people world wide, who are interested, to contribute translations in their language of choice.
+	 </p>
+
 	<div class="clearing"></div>
-	
-	
-<!--  	
-<script type="text/javascript"> 
-	var myTabs = new YAHOO.widget.TabView("string-area"); 
-</script>  
--->
+	<h2>Who can help?</h2>
+	<p>Anyone who knows more than one language can become become a star translator for any of the Eclipse projects.  
+	You don't need to be a developer to help out on this project, just a desire to contribute to one of the best open source project, Eclipse.
+	</p>
 
-
-	
-	<div id="string-area" class="yui-navset full-component">
-	<h2>Translatable Strings</h2>
-<!--
-	    <ul class="yui-nav"> 
-        <li class="selected"><a href="#tab1"><em>Untranslated</em></a></li> 
-	        <li><a href="#tab2"><em>Flagged Incorrect</em></a></li> 
-	        <li><a href="#tab3"><em>Awaiting Rating</em></a></li> 
-	    </ul>             
-  	  	<div class="yui-content" style="clear: both;"> 
-			<div id="not-translated">
-			</div>
-			
-			<ul id="flagged-incorrect">
-			</ul>
-			
-			<ul id="awaiting-ratings">
-			</ul>
-		</div>
-	    
--->	    
-  	  	<div id="projecs-strings-area" class="yui-content"> </div>
-		
-		<div id="not-translated"></div>
-	</div>
-	
-	
-	<div id="translation-area" class="full-component">
-	   <h2>String Translation</h2>
-	   <div id="translation-form-container"></div>
-	</div>
-	
+	<h2>How do I get started?</h2>
+ 	<p>All you need to contribute translations is an active Eclipse bugzilla account and some spare time.  
+ 	So what are you waiting for?
+ 	</p>
+ 	
 	<div class="clearing"></div>
-	
 </div>
 
 <script>YAHOO.languageManager.getAjaxLanguages();</script>
diff --git a/html/js/language.js b/html/js/language.js
index 9432fc3..2ba9dee 100644
--- a/html/js/language.js
+++ b/html/js/language.js
@@ -63,7 +63,8 @@
 	
 	this.languageId = dataIn['language_id'];
 	this.name = dataIn['name'];
-	this.iso = dataIn['iso'];
+	this.iso = dataIn['iso_code'];
+	this.locale = dataIn['locale'];
 }
 
 YAHOO.extend(language,selectable);
@@ -92,7 +93,10 @@
 }
 language.prototype.createHTML = function(){
 	this.domElem = document.createElement("li");
-	this.domElem.innerHTML = this.name+"("+this.iso+")";
+	this.domElem.innerHTML = this.name;
+	if(this.locale){
+		this.domElem.innerHTML += "("+this.locale+")";
+	}
 	this.addEvents();
 	
 	return this.domElem;
diff --git a/html/js/projectString.js b/html/js/projectString.js
index 6f470d3..ffaab3d 100644
--- a/html/js/projectString.js
+++ b/html/js/projectString.js
@@ -65,18 +65,18 @@
 		
 		tr = this.tableDom.insertRow(0);
 		tr.id = "translatable-strings-labels-area";
+//		td = tr.insertCell(0);
+//		td.innerHTML = "Label";
+//		td.width = "10%";
 		td = tr.insertCell(0);
-		td.innerHTML = "Label";
-		td.width = "10%";
-		td = tr.insertCell(1);
 		td.innerHTML = "String";
-		td.width = "20%";
-		td = tr.insertCell(2);
+		td.width = "38%";
+		td = tr.insertCell(1);
 		td.innerHTML = "Last Translation";
 		td.width = "50%";
-		td = tr.insertCell(3);
+		td = tr.insertCell(2);
 		td.innerHTML = "Create On";
-		td.width = "20%";
+		td.width = "12%";
 		
 		return this.tableDom;
 	},
@@ -87,7 +87,6 @@
 	
 	updateSelected: function(selec){
 		if(this.selected){
-YAHOO.log("removed!!!!!!!!");	
 			this.selected.unselect();
 		}
 		this.selected = selec;
@@ -118,22 +117,22 @@
 projectString.prototype.createHTML = function(tr){
 	this.domElem = tr;
 
+//	td = tr.insertCell(0);
+//	td.innerHTML = this.data['label'];
+//	td.width = "10%";
+
 	td = tr.insertCell(0);
-	td.innerHTML = this.data['label'];
-	td.width = "10%";
-
-	td = tr.insertCell(1);
 	td.innerHTML = this.data['text'];
-	td.width = "20%";
+	td.width = "38%";
 	
-
-	td = tr.insertCell(2);
-	td.innerHTML = "<div style='width: 100%; overflow: hidden;'>"+this.data['translationString']+"</div>";
+	td = tr.insertCell(1);
+	var temp = this.data['translationString'] ? this.data['translationString'] : ''
+	td.innerHTML = "<div style='width: 100%; overflow: hidden;'>"+temp+"</div>";
 	td.width = "50%";
 	
-	td = tr.insertCell(3);
+	td = tr.insertCell(2);
 	td.innerHTML = this.data['createdOn'];
-	td.width = "20%";
+	td.width = "12%";
 	
 	this.addEvents();
 }
diff --git a/html/login.php b/html/login.php
index 047ff87..b64d1c8 100755
--- a/html/login.php
+++ b/html/login.php
@@ -36,7 +36,7 @@
 			$Session = new Session();
 			$Session->create($User->userid, $REMEMBER);
 			SetSessionVar('User', $User);
-			exitTo("index.php");
+			exitTo("translate.php");
 		}
 	}
 	else {
diff --git a/html/translate.php b/html/translate.php
new file mode 100644
index 0000000..6565510
--- /dev/null
+++ b/html/translate.php
@@ -0,0 +1,97 @@
+<?php
+/*******************************************************************************
+ * Copyright (c) 2007 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Paul Colton (Aptana)- initial API and implementation
+ *    Eclipse Foundation
+*******************************************************************************/
+require("global.php");
+InitPage("login");
+
+$pageTitle 		= "Babel Project";
+$pageKeywords 	= "translation,language,nlpack,pack,eclipse,babel";
+
+include("head.php");
+
+//$_SESSION['language'] = "";
+//$_SESSION['project'] = "";
+//$_SESSION['version'] = "";
+?>
+
+<h1 id="page-message">Welcome to the Babel Project</h1>
+<div id="contentArea">
+
+	<h2>Languages / Projects / Versions</h2>
+	<div id="language" class="side-component">
+		<h4 id="language-selection">Langues</h4>
+		<ul id="language-area"class="scrollable-area"></ul>
+	</div>
+
+	<div id="project" class="side-component">
+		<h4 id="project-selection">Projects</h4>
+		<ul id="project-area" class="scrollable-area"></ul>
+	</div>
+	
+	<div id="project" class="side-component">
+		<h4 id="version-selection">Versions</h4>
+		<ul id="version-area" class="scrollable-area"></ul>
+	</div>
+	
+	<div class="clearing"></div>
+	
+	
+<!--  	
+<script type="text/javascript"> 
+	var myTabs = new YAHOO.widget.TabView("string-area"); 
+</script>  
+-->
+
+
+	
+	<div id="string-area" class="yui-navset full-component">
+	<h2>Translatable Strings</h2>
+<!--
+	    <ul class="yui-nav"> 
+        <li class="selected"><a href="#tab1"><em>Untranslated</em></a></li> 
+	        <li><a href="#tab2"><em>Flagged Incorrect</em></a></li> 
+	        <li><a href="#tab3"><em>Awaiting Rating</em></a></li> 
+	    </ul>             
+  	  	<div class="yui-content" style="clear: both;"> 
+			<div id="not-translated">
+			</div>
+			
+			<ul id="flagged-incorrect">
+			</ul>
+			
+			<ul id="awaiting-ratings">
+			</ul>
+		</div>
+	    
+-->	    
+  	  	<div id="projecs-strings-area" class="yui-content"> </div>
+		
+		<div id="not-translated"></div>
+	</div>
+	
+	
+	<div id="translation-area" class="full-component">
+	   <h2>String Translation</h2>
+	   <div id="translation-form-container"></div>
+	</div>
+	
+	<div class="clearing"></div>
+	
+</div>
+
+<script>YAHOO.languageManager.getAjaxLanguages();</script>
+
+<?php
+
+		
+	include("foot.php");
+?>
\ No newline at end of file
