mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 13:09:33 -06:00
56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
function updateTranslation (grammar, inputID, fromLangID, toLangID, outputID) {
|
|
var input = document.getElementById(inputID).value;
|
|
var fromLang = document.getElementById(fromLangID).value;
|
|
var toLang = document.getElementById(toLangID).value;
|
|
var output = document.getElementById(outputID);
|
|
output.appendChild(formatTranslation(grammar.translate(input, fromLang, toLang)));
|
|
}
|
|
|
|
function populateLangs (grammar, fromLang, toLang) {
|
|
var f = document.getElementById(fromLang);
|
|
var t = document.getElementById(toLang);
|
|
for (var c in grammar.concretes) {
|
|
addOption(f, c, c);
|
|
addOption(t, c, c);
|
|
}
|
|
}
|
|
|
|
function formatTranslation (outputs) {
|
|
var dl1 = document.createElement("dl");
|
|
for (var fromLang in outputs) {
|
|
var ul = document.createElement("ul");
|
|
addDefinition(dl1, document.createTextNode(fromLang), ul);
|
|
for (var i in outputs[fromLang]) {
|
|
var dl2 = document.createElement("dl");
|
|
for (var toLang in outputs[fromLang][i]) {
|
|
addDefinition(dl2, document.createTextNode(toLang), document.createTextNode(outputs[fromLang][i][toLang]));
|
|
}
|
|
addItem(ul, dl2);
|
|
}
|
|
}
|
|
|
|
return dl1;
|
|
}
|
|
|
|
function addDefinition (dl, t, d) {
|
|
var dt = document.createElement("dt");
|
|
dt.appendChild(t);
|
|
dl.appendChild(dt);
|
|
var dd = document.createElement("dd");
|
|
dd.appendChild(d);
|
|
dl.appendChild(dd);
|
|
}
|
|
|
|
function addItem (ul, i) {
|
|
var li = document.createElement("ul");
|
|
li.appendChild(i);
|
|
ul.appendChild(li);
|
|
}
|
|
|
|
function addOption (select, value, content) {
|
|
var option = document.createElement("option");
|
|
option.value = value;
|
|
option.appendChild(document.createTextNode(content));
|
|
select.appendChild(option);
|
|
}
|