mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 13:09:33 -06:00
112 lines
4.0 KiB
HTML
112 lines
4.0 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
<meta name="viewport" content="initial-scale=2.3" />
|
|
<meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0;" />
|
|
<link rel="stylesheet" type="text/css" href="translator.css" />
|
|
<script type="text/javascript" src="gf-server-jsapi.js"></script>
|
|
<script type="text/javascript" src="translator.js"></script>
|
|
<script type="text/javascript">
|
|
function getGrammar () {
|
|
return document.getElementById('grammar').value;
|
|
}
|
|
|
|
function updateTranslation () {
|
|
var input = document.getElementById('inputText').value;
|
|
var fromLang = document.getElementById('fromLang').value;
|
|
var toLang = document.getElementById('toLang').value;
|
|
var output = document.getElementById('translation');
|
|
|
|
var callback = function(translation) {
|
|
clearTranslation();
|
|
output.appendChild(formatTranslation(translation));
|
|
};
|
|
gf.translate(getGrammar(), input, fromLang, toLang, '', callback);
|
|
}
|
|
|
|
function updateGrammars () {
|
|
gf.grammars(populateGrammars);
|
|
}
|
|
|
|
function populateGrammars (grammars) {
|
|
var l = document.getElementById('grammar');
|
|
var langs = grammar.languages;
|
|
for (var i in grammars) {
|
|
addOption(l, grammars[i].name, grammars[i].name);
|
|
}
|
|
updateLanguages();
|
|
}
|
|
|
|
function updateLanguages () {
|
|
gf.grammar(getGrammar(), populateLangs);
|
|
}
|
|
|
|
function populateLangs (grammar) {
|
|
var f = document.getElementById('fromLang');
|
|
var t = document.getElementById('toLang');
|
|
var langs = grammar.languages;
|
|
for (var i in langs) {
|
|
if (langs[i].canParse) {
|
|
addOption(f, langs[i].name, langs[i].name);
|
|
}
|
|
addOption(t, langs[i].name, langs[i].name);
|
|
}
|
|
}
|
|
|
|
function updateCompletion() {
|
|
var input = document.getElementById('inputText').value;
|
|
var fromLang = document.getElementById('fromLang').value;
|
|
var completions = document.getElementById('completion');
|
|
|
|
// if (document.getElementById('enableCompletion').checked) {
|
|
var callback = function(output) {
|
|
clearCompletion();
|
|
completions.appendChild(formatCompletions(output));
|
|
};
|
|
gf.complete(getGrammar(), input, fromLang, '', callback);
|
|
// }
|
|
}
|
|
|
|
function update() {
|
|
// updateCompletion();
|
|
updateTranslation();
|
|
}
|
|
|
|
function clearTranslation() {
|
|
var output = document.getElementById('translation');
|
|
removeChildren(output);
|
|
}
|
|
|
|
function clearCompletion() {
|
|
var completions = document.getElementById('completion');
|
|
removeChildren(completions);
|
|
}
|
|
|
|
function initialize() {
|
|
updateGrammars();
|
|
}
|
|
</script>
|
|
<title>AJAX GF Translator</title>
|
|
</head>
|
|
<body onload="initialize()">
|
|
<div id="translator">
|
|
<form onsubmit="update(); return false;">
|
|
<p>
|
|
<input type="text" id="inputText" value="" size="50" />
|
|
</p>
|
|
<p>
|
|
<label>Grammar: <select id="grammar" onchange="updateLanguages()"></select></label>
|
|
<label>From: <select id="fromLang" onchange="update()"><option value="" selected="selected">Any language</option></select></label>
|
|
<label>To: <select id="toLang" onchange="update()"><option value="" selected="selected">All languages</option></select></label>
|
|
<input type="button" value="Completions" onclick="updateCompletion()" />
|
|
<input type="submit" value="Translate" />
|
|
</p>
|
|
</form>
|
|
<div id="completion"></div>
|
|
<div id="translation"></div>
|
|
</div>
|
|
</body>
|
|
</html>
|