Wide Coverage Demo App: use PGF service lexing/unlexing

It is now enough to make one server call per translation, and the results can
cached by the browser.
This commit is contained in:
hallgren
2014-04-09 19:49:45 +00:00
parent d1da0e06de
commit 96f36d8f0a
3 changed files with 15 additions and 19 deletions

View File

@@ -20,7 +20,7 @@ gftranslate.translate=function(source,from,to,start,limit,cont) {
function extract(result) { cont(result[0].translations) } function extract(result) { cont(result[0].translations) }
if(encsrc.length<500) if(encsrc.length<500)
gftranslate.call("?command=c-translate&input="+encsrc gftranslate.call("?command=c-translate&input="+encsrc
+"&lexer=text&from="+g+from+"&to="+g+to +"&lexer=text&unlexer=text&from="+g+from+"&to="+g+to
+"&start="+start+"&limit="+limit,extract) +"&start="+start+"&limit="+limit,extract)
else cont([{error:"sentence too long"}]) else cont([{error:"sentence too long"}])
} }

View File

@@ -5,7 +5,7 @@ wc.o=element("output")
wc.e=element("extra") wc.e=element("extra")
wc.p=element("pick") wc.p=element("pick")
wc.serial=0 wc.serial=0
wc.os=[] wc.os=[] // output segment list
wc.local=appLocalStorage("gf.wc.") wc.local=appLocalStorage("gf.wc.")
wc.delayed_translate=function() { wc.delayed_translate=function() {
@@ -75,11 +75,11 @@ wc.translate=function() {
} }
} }
function translate_segment(si) { function translate_segment(si) { // si = segment index
var rs=[] var rs=[] // list of alternative translations for this segment
var current_pick=0 var current_pick=0 // index of currently selected alternative
var get_more var get_more // if defined, a function that will fetch more alternatives
var output=wc.os[si].target var output=wc.os[si].target // the element where this segment is shown
function show_error(msg) { function show_error(msg) {
//if(e) e.innerHTML="<span class=low_quality>Translation problem: "+msg+"</span>" //if(e) e.innerHTML="<span class=low_quality>Translation problem: "+msg+"</span>"
@@ -133,9 +133,10 @@ wc.translate=function() {
if(selected==si) show_more() if(selected==si) show_more()
} }
function showit(r,text) { function showit(r) {
text=text.trimRight() r.t=trans_quality(r)
r.text=text //r.t.text=r.t.text.trimRight()
r.text=r.t.text
rs.push(r) rs.push(r)
var j=rs.length-1 var j=rs.length-1
if(current_pick==j) show_trans(j) if(current_pick==j) show_trans(j)
@@ -151,8 +152,7 @@ wc.translate=function() {
if(i==0 && rs.length==0) show_error(tra[0].error) if(i==0 && rs.length==0) show_error(tra[0].error)
} }
else if(r.linearizations) { else if(r.linearizations) {
r.t=trans_quality(r) showit(r)
unlextext(r.t.text,function(text){showit(r,text)})
if(wc.p && i<9) { if(wc.p && i<9) {
if(si==selected) trans(text,i+1) if(si==selected) trans(text,i+1)
else get_more=function() { trans(text,i+1) } else get_more=function() { trans(text,i+1) }
@@ -173,18 +173,16 @@ wc.translate=function() {
if(trans && trans.length>=1) { if(trans && trans.length>=1) {
var r=trans[0] var r=trans[0]
r.prob=0 r.prob=0
r.t=trans_quality(r) showit(r)
unlextext(r.t.text,function(text){showit(r,text)})
} }
step2(text) step2(text)
} }
wc.pgf_online.translate({from:wc.cnl+f.from.value, wc.pgf_online.translate({from:wc.cnl+f.from.value,
to:wc.cnl+f.to.value, to:wc.cnl+f.to.value,
lexer:"text",input:text}, lexer:"text",unlexer:"text",input:text},
step3cnl, step3cnl,
function(){step2(text)}) function(){step2(text)})
} }
//lextext(is[si],wc.cnl ? step2cnl : step2)
if(wc.cnl) step2cnl(is[si]) if(wc.cnl) step2cnl(is[si])
else step2(is[si]) else step2(is[si])
} }

View File

@@ -78,13 +78,11 @@ small { color: #666; }
</div> </div>
<p> <p>
<div class=modtime><small> <div class=modtime><small>
<!-- hhmts start -->Last modified: Wed Apr 9 15:43:04 CEST 2014 <!-- hhmts end --> <!-- hhmts start -->Last modified: Wed Apr 9 20:57:07 CEST 2014 <!-- hhmts end -->
</small></div> </small></div>
<script src="js/support.js"></script> <script src="js/support.js"></script>
<script src="js/gftranslate.js"></script> <script src="js/gftranslate.js"></script>
<script src="js/localstorage.js"></script> <script src="js/localstorage.js"></script>
<script src="gfse/localstorage.js"></script>
<script src="gfse/cloud2.js"></script>
<script src="js/langcode.js"></script> <script src="js/langcode.js"></script>
<script src="js/pgf_online.js"></script> <script src="js/pgf_online.js"></script>
<script src="js/wc.js"></script> <script src="js/wc.js"></script>