From fbd7e498cd0c73df48387fa5dbfe1bc9f642b2d2 Mon Sep 17 00:00:00 2001 From: hallgren Date: Sun, 22 Mar 2015 22:54:05 +0000 Subject: [PATCH] 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. --- src/www/js/gftranslate.js | 4 ++++ src/www/js/wc.js | 28 +++++++++++++++++++++++++--- src/www/wc.html | 4 +++- 3 files changed, 32 insertions(+), 4 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+"
" 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() diff --git a/src/www/wc.html b/src/www/wc.html index 66b747f37..3d2b8e12f 100644 --- a/src/www/wc.html +++ b/src/www/wc.html @@ -24,6 +24,8 @@ small { color: #666; } .colors .bad_quality { background-color: #f89; } .placeholder { color: #999; } .error { color: #c00; } +div.e2 { background: white; } +span.inflect { color: blue; } @@ -89,7 +91,7 @@ small { color: #666; }
-Last modified: Fri Jun 20 20:21:52 CEST 2014 +Last modified: Sun Mar 22 23:30:45 CET 2015
About