NEW - bug 210: Babel or Babel-like Community Internationalization
https://foundation.eclipse.org/infrazilla/show_bug.cgi?id=210
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