<?php
//Fast Translator
//Uses the Babelfish Translation Service
//By Joey C. http://jwcxz.com/
//Still being developed.
//TODO: STATUS:
//1. Implement focus triangle to point where the accents will be placed. [Done.]
//2. Convert the explode() functions to REGEX. Maybe not.
//3. Port the displaying to AJAX. Maybe offer an AJAX and non-AJAX version? [Done.]
if ($_REQUEST['lp']=="es_en" || $_REQUEST['lp']=="en_es") {
if ($_REQUEST['lp']=="es_en") {
$trtext = str_ireplace("'a", "á", $_REQUEST['trtext']);
$trtext = str_ireplace("'e", "é", $trtext);
$trtext = str_ireplace("'i", "í", $trtext);
$trtext = str_ireplace("'o", "ó", $trtext);
$trtext = str_ireplace("'u", "ú", $trtext);
$trtext = str_ireplace("~n", "ñ", $trtext);
}
else $trtext = $_REQUEST['trtext'];
# $tr = fopen("http://babelfish.altavista.com/tr?tt=urltext&lp={$_REQUEST['lp']}&trtext=".urlencode($trtext), 'r');
$tr = fopen("http://babelfish.yahoo.com/translate_txt?lp={$_REQUEST['lp']}&trtext=".urlencode($trtext), 'r');
$content = stream_get_contents($tr);
$content = explode('<div id="result"><div style="padding:0.6em;">', $content);
$content = explode("</div></div>", $content[1]);
echo $content[0];
}
else {
?>
<html>
<head>
<style type="text/css">
body { font-family: Calibri, Tahoma, Arial; font-size: 12pt }
#trbox { text-align:center; width: 90%; background-color: #CCFFCC; padding: 20px; border: 1px solid #000000; margin: 5px auto 20px; }
#trtools { width: 90%; padding: 20px; text-align: center; margin: 0px auto 0px; border: 1px solid #000; background-color: #DFD; height: 100px }
#trinputs { text-align:center; float: left; width: 80%; }
#traccbox { text-align: center; float: right; width: 18%; border: 1px solid #000; padding: 3px; background-color: #AAFFAA}
a.acchar, a.cchar:link, a.cchar:visited { color: #000; text-decoration: none; border: 1px solid #7F7; background-color: #BFB; padding: 2px; }
a.acchar:hover { color: #000; text-decoration: none; border: 1px solid #7F7; background-color: #5F5; padding: 2px; }
a.cchar:active { color: #000; text-decoration: none; border: 1px solid #7F7; background-color: #BFB; padding: 2px; }
#title { text-align:center; margin: 0px auto 0px }
#subtitle { text-align:center; margin: 0px auto 3px; font-weight: bold }
#info { text-align:center; margin: 0px auto 10px }
input { width: 75%; padding: 10px; background: #DDD; border: 1px solid #777; color: #777 }
input:hover { border: 1px solid #000; color: #000 }
input:focus { background: #FFF; border: 1px solid #000; color: #000 }
</style>
<title>JoeyJWC Labs :: Fast Translation</title>
<script language="javascript">
function switchFocus(newfoc) {
accbox = newfoc
if (newfoc=='es_en') { blankfoc = 'en_es' }
else { blankfoc = 'es_en' }
eval( 'document.'+newfoc+'.'+newfoc+'AccImg.src=\'arrow.gif\';' );
eval( 'document.'+blankfoc+'.'+blankfoc+'AccImg.src=\'blank.gif\';' );
}
function createRequestObject() { //Shamelessly copied and modified from http://mikeoncode.blogspot.com/2006/02/ajax-project-to-get-you-going.html
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
function sndReq(formlp, formtrtext) {
document.getElementById('trbox').innerHTML = '<img src="working.gif" alt="Working, please wait..." />';
http.open('GET', 'tr.php?lp='+formlp+'&trtext='+escape(formtrtext));
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('trbox').innerHTML = unescape(response);
}
}
</script>
</head>
<body>
<h1 id="title">Fast Translator</h1>
<p id="subtitle">By <a href="http://jwcxz.com/">Joey C.</a> (<a href="viewsrc.php?filename=tr.php">View Source</a>)</p>
<p id="info">This service makes use of the <a href="http://babelfish.altavista.com/">Babel Fish Translation Service</a> by AltaVista</p>
<div id="trbox"> </div>
<div id="trtools">
<div id="trinputs">
<form action="javascript:sndReq('es_en', document.getElementById('trtextes').value);document.es_en.trtext.select();" name="es_en">
<input type="hidden" name="lp" value="es_en" />
Spanish to English: <input type="text" name="trtext" id="trtextes" onFocus="switchFocus('es_en');" />
<img name="es_enAccImg" src="arrow.gif" />
</form>
<form action="javascript:sndReq('en_es', document.getElementById('trtexten').value);document.en_es.trtext.select();" method="POST" name="en_es">
<input type="hidden" name="lp" value="en_es" />
English to Spanish: <input type="text" name="trtext" id="trtexten" onFocus="switchFocus('en_es');" />
<img name="en_esAccImg" src="blank.gif" />
</form>
</div>
<div id="traccbox"><p class="accline">
<a class="acchar" onMouseOver="Aaccbox = accbox;" onClick="eval('document.'+Aaccbox+'.trtext.value+=\'Á\';'); eval('document.'+Aaccbox+'.trtext.focus();');" onFocus="document.es_en.trtext.focus();" href="#">Á</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'É\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">É</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'Í\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">Í</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'Ñ\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">Ñ</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'Ó\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">Ó</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'Ú\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">Ú</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'Ü\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">Ü</a></p><p class="accline">
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'á\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">á</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'é\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">é</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'í\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">í</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'ñ\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">ñ</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'ó\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">ó</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'ú\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">ú</a>
<a class="acchar" onClick="eval('document.'+accbox+'.trtext.value+=\'ü\';'); eval('document.'+accbox+'.trtext.focus();');" href="#">ü</a></p>
</div>
</div>
</body>
</html>
<?php } ?>