From 08fae303df1df7ffb2e09a3d9d5cbd378dba281c Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 15 Aug 2008 11:14:13 +0000 Subject: First working version of the AJAX translation client. --- src/server/translator.js | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/server/translator.js (limited to 'src/server/translator.js') diff --git a/src/server/translator.js b/src/server/translator.js new file mode 100644 index 000000000..99bd8b191 --- /dev/null +++ b/src/server/translator.js @@ -0,0 +1,49 @@ +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; +} + +/* DOM utilities for specific tags */ + +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); +} + +/* General DOM utilities */ + +/* Removes all the children of a node */ +function removeChildren(node) { + while (node.hasChildNodes()) { + node.removeChild(node.firstChild); + } +} -- cgit v1.2.3