summaryrefslogtreecommitdiff
path: root/src/www/js
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2015-03-22 22:54:05 +0000
committerhallgren <hallgren@chalmers.se>2015-03-22 22:54:05 +0000
commit2041578406b0b8c7e0dfda59387e1ee7078eb79f (patch)
treed827698b9886cb239e35a28479ac2b5f5cbae323 /src/www/js
parente475fb10917dce2e86a11ea9cd6ffa04d03bdbee (diff)
Wide Coverage Translation Demo: add a way to obtain inflection tables
Too see inflection tables, click on a translated sentense, then click on a blue function name in the textual representation of the abstract syntax tree.
Diffstat (limited to 'src/www/js')
-rw-r--r--src/www/js/gftranslate.js4
-rw-r--r--src/www/js/wc.js28
2 files changed, 29 insertions, 3 deletions
diff --git a/src/www/js/gftranslate.js b/src/www/js/gftranslate.js
index aa2aac896..2d96bd2eb 100644
--- a/src/www/js/gftranslate.js
+++ b/src/www/js/gftranslate.js
@@ -6,6 +6,10 @@ var gftranslate = {}
gftranslate.jsonurl="/robust/App14.pgf"
gftranslate.grammar="App" // the name of the grammar
+gftranslate.documented_classes=
+ ["N", "N2", "N3", "A", "A2", "V", "V2", "VV", "VS", "VQ", "VA", "V3", "V2V",
+ "V2S", "V2Q", "V2A", "Adv", "Prep"]
+
gftranslate.call=function(querystring,cont,errcont) {
http_get_json(gftranslate.jsonurl+querystring,cont,errcont)
}
diff --git a/src/www/js/wc.js b/src/www/js/wc.js
index 85629b588..67fb742ca 100644
--- a/src/www/js/wc.js
+++ b/src/www/js/wc.js
@@ -106,6 +106,27 @@ wc.translate=function() {
[text("Google Translate")])))
*/
}
+ function treetext(tree) {
+ function inflect(w,wcls) {
+ function show_inflections(lins) {
+ if(wc.e2) wc.e2.innerHTML=lins[0].text
+ }
+ function get_inflections() {
+ var tree="MkDocument+%22%22+(Inflection"+wcls+" "+w+") %22%22"
+ var l=gftranslate.grammar+f.to.value
+ gftranslate.call("?command=c-linearize&to="+l+"&tree="+tree,show_inflections)
+ }
+ var wn=wrap_class("span","inflect",text(w))
+ if(wc.e2) wn.onclick=get_inflections
+ return wn
+ }
+ function word(w) {
+ var ps=w.split("_")
+ return ps.length==2 && elem(ps[1],gftranslate.documented_classes)
+ ? inflect(w,ps[1]) : text(w)
+ }
+ return tree.split(/([ ()]+)/).map(word)
+ }
function show_more() {
wc.selected=so
var r=so.rs[so.current_pick]
@@ -113,7 +134,8 @@ wc.translate=function() {
if(e) {
e.innerHTML=prob+"<br>"
if(r.tree) {
- var t=wrap("span",text(r.tree))
+ wc.e2=empty_class("div","e2")
+ var t=wrap("span",treetext(r.tree))
e.appendChild(t)
var g=gftranslate.jsonurl
var u="format=svg&tree="+encodeURIComponent(r.tree)
@@ -130,8 +152,8 @@ wc.translate=function() {
}
else if(r.img.src!=r.imgurls[r.img_ix]) // language change?
r.img.src=r.imgurls[r.img_ix]
- e.appendChild(empty("br"))
- e.appendChild(r.img)
+ wc.e2.appendChild(r.img)
+ e.appendChild(wc.e2)
}
}
if(wc.p /*&& so.rs.length>1*/) show_picks()