mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-24 03:52:50 -06:00
Wide Coverage Demo App: it now works ok without server caching of parse results
This commit is contained in:
@@ -47,21 +47,18 @@ wc.translate=function() {
|
|||||||
var f=wc.f, e=wc.e, p=wc.p
|
var f=wc.f, e=wc.e, p=wc.p
|
||||||
var selected= -1
|
var selected= -1
|
||||||
|
|
||||||
|
/*
|
||||||
function disable(yes) {
|
function disable(yes) {
|
||||||
f.translate.disabled=yes
|
f.translate.disabled=yes
|
||||||
f.to.disabled=yes
|
f.to.disabled=yes
|
||||||
if(f.swap) f.swap.disabled=yes
|
if(f.swap) f.swap.disabled=yes
|
||||||
}
|
}
|
||||||
disable(true)
|
*/
|
||||||
clear(wc.o)
|
|
||||||
wc.os=[]
|
|
||||||
clear(e)
|
|
||||||
clear(p)
|
|
||||||
|
|
||||||
|
|
||||||
function split_punct(s) {
|
function split_punct(s) {
|
||||||
return s.split(/([.!?]+[ \t\n]+|\n\n+|[ \t\n]*[-•*+#]+[ \t\n]+)/)
|
return s.split(/([.!?]+[ \t\n]+|\n\n+|[ \t\n]*[-•*+#]+[ \t\n]+)/)
|
||||||
}
|
}
|
||||||
|
|
||||||
function trans_quality(r) {
|
function trans_quality(r) {
|
||||||
var text=r.linearizations[0].text
|
var text=r.linearizations[0].text
|
||||||
if(r.prob==0) return {quality:"high_quality",text:text}
|
if(r.prob==0) return {quality:"high_quality",text:text}
|
||||||
@@ -91,7 +88,7 @@ wc.translate=function() {
|
|||||||
replaceChildren(output,text("["+msg+"]"))
|
replaceChildren(output,text("["+msg+"]"))
|
||||||
output.className="error"
|
output.className="error"
|
||||||
}
|
}
|
||||||
disable(false)
|
//disable(false)
|
||||||
}
|
}
|
||||||
function show_pick(i) { return function() { show_trans(i); return false; } }
|
function show_pick(i) { return function() { show_trans(i); return false; } }
|
||||||
function show_picks() {
|
function show_picks() {
|
||||||
@@ -144,9 +141,9 @@ wc.translate=function() {
|
|||||||
var j=rs.length-1
|
var j=rs.length-1
|
||||||
if(current_pick==j) show_trans(j)
|
if(current_pick==j) show_trans(j)
|
||||||
else if(selected==si) show_picks()
|
else if(selected==si) show_picks()
|
||||||
disable(false)
|
//disable(false)
|
||||||
}
|
}
|
||||||
function trans(text,i) {
|
function trans(text,i,count) {
|
||||||
function step3(tra) {
|
function step3(tra) {
|
||||||
if(wc.serial==current) {
|
if(wc.serial==current) {
|
||||||
if(tra.length>=1) {
|
if(tra.length>=1) {
|
||||||
@@ -154,22 +151,27 @@ wc.translate=function() {
|
|||||||
if(r.error!=undefined) {
|
if(r.error!=undefined) {
|
||||||
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 {
|
||||||
showit(r)
|
for(var ti=0;ti<tra.length;ti++) {
|
||||||
if(wc.p && i<9) {
|
var r=tra[ti]
|
||||||
if(si==selected) trans(text,i+1)
|
if(r.linearizations) showit(r)
|
||||||
else get_more=function() { trans(text,i+1) }
|
//else show_error("no linearizations")
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
if(wc.p && i==0 && count==1) {
|
||||||
|
if(si==selected) trans(text,1,9)
|
||||||
|
else get_more=function() { trans(text,1,9) }
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
else show_error("no linearizations")
|
|
||||||
}
|
}
|
||||||
else if(i==0 && rs.length==0)
|
else if(i==0 && rs.length==0)
|
||||||
show_error("Unable to translate")
|
show_error("Unable to translate")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gftranslate.translate(text,f.from.value,f.to.value,i,1,step3)
|
gftranslate.translate(text,f.from.value,f.to.value,i,count,step3)
|
||||||
}
|
}
|
||||||
function step2(text) { trans(text,0) }
|
function step2(text) { trans(text,0,10) }
|
||||||
function step2cnl(text) {
|
function step2cnl(text) {
|
||||||
function step3cnl(results) {
|
function step3cnl(results) {
|
||||||
var trans=results[0].translations
|
var trans=results[0].translations
|
||||||
@@ -189,17 +191,39 @@ wc.translate=function() {
|
|||||||
if(wc.cnl) step2cnl(is[si])
|
if(wc.cnl) step2cnl(is[si])
|
||||||
else step2(is[si])
|
else step2(is[si])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//disable(true)
|
||||||
|
clear(wc.o)
|
||||||
|
clear(e)
|
||||||
|
clear(p)
|
||||||
|
|
||||||
|
|
||||||
|
var old={}
|
||||||
|
for(var i=0;i<wc.os.length;i++) old[wc.os[i].input]=wc.os[i]
|
||||||
|
// could also keep all copies if the same text occurs more than once...
|
||||||
|
wc.os=[]
|
||||||
|
|
||||||
wc.translating=f.input.value
|
wc.translating=f.input.value
|
||||||
var is=wc.is=split_punct(wc.translating+"\n")
|
var is=split_punct(wc.translating+"\n")
|
||||||
|
|
||||||
for(var i=0;i<is.length;i++) {
|
for(var i=0;i<is.length;i++) {
|
||||||
wc.os[i]={text:is[i]}
|
var same=old[is[i]]
|
||||||
if(i&1) { // punctuation
|
if(same && same.to==f.to.value) { // reuse unchanged segment?
|
||||||
wc.o.appendChild(span_class("punct",text(is[i])))
|
wc.os[i]=same
|
||||||
|
wc.o.appendChild(same.target)
|
||||||
|
delete old[is[i]] // can't use the same node twice
|
||||||
}
|
}
|
||||||
else { // segment
|
else {
|
||||||
var o=wc.os[i].target=span_class("placeholder",text(is[i]))
|
wc.os[i]={input:is[i],text:is[i],to:f.to.value}
|
||||||
wc.o.appendChild(o)
|
if(i&1) { // punctuation
|
||||||
translate_segment(i)
|
var o=wc.os[i].target=span_class("punct",text(is[i]))
|
||||||
|
wc.o.appendChild(o)
|
||||||
|
}
|
||||||
|
else { // text segment to be translated
|
||||||
|
var o=wc.os[i].target=span_class("placeholder",text(is[i]))
|
||||||
|
wc.o.appendChild(o)
|
||||||
|
translate_segment(i)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
wc.save()
|
wc.save()
|
||||||
@@ -216,7 +240,7 @@ wc.speak=function(text,lang) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
wc.colors=function() {
|
wc.colors=function() {
|
||||||
wc.o.className=wc.f.colors.checked ? "colors" : ""
|
document.body.className=wc.f.colors.checked ? "colors" : ""
|
||||||
wc.local.put("colors",wc.f.colors.checked)
|
wc.local.put("colors",wc.f.colors.checked)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user