diff options
| author | bjorn <bjorn@bringert.net> | 2008-08-15 11:14:13 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-08-15 11:14:13 +0000 |
| commit | 08fae303df1df7ffb2e09a3d9d5cbd378dba281c (patch) | |
| tree | 2d216a88183f30121d7cfc8bb3c77adf88ec1a0c /src/server/translator.js | |
| parent | 0ce04f1a6e0237c3282be737ba2f2069e318100e (diff) | |
First working version of the AJAX translation client.
Diffstat (limited to 'src/server/translator.js')
| -rw-r--r-- | src/server/translator.js | 49 |
1 files changed, 49 insertions, 0 deletions
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); + } +} |
