summaryrefslogtreecommitdiff
path: root/src/server/translator.js
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-08-15 11:14:13 +0000
committerbjorn <bjorn@bringert.net>2008-08-15 11:14:13 +0000
commit08fae303df1df7ffb2e09a3d9d5cbd378dba281c (patch)
tree2d216a88183f30121d7cfc8bb3c77adf88ec1a0c /src/server/translator.js
parent0ce04f1a6e0237c3282be737ba2f2069e318100e (diff)
First working version of the AJAX translation client.
Diffstat (limited to 'src/server/translator.js')
-rw-r--r--src/server/translator.js49
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);
+ }
+}