1
0
forked from GitHub/gf-core

Wide Coverage Demo App: restore swap button

This commit is contained in:
hallgren
2014-04-08 11:32:54 +00:00
parent c8a8883df8
commit 64623d4881
2 changed files with 34 additions and 32 deletions

View File

@@ -5,6 +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.delayed_translate=function() { wc.delayed_translate=function() {
function restart(){ if(wc.f.input.value!=wc.translating) wc.translate() } function restart(){ if(wc.f.input.value!=wc.translating) wc.translate() }
@@ -15,10 +16,6 @@ wc.delayed_translate=function() {
if(wc.f.input.clientHeight<h) wc.f.input.style.height=h+15+"px" if(wc.f.input.clientHeight<h) wc.f.input.style.height=h+15+"px"
} }
wc.split_punct=function(s) {
return s.split(/([.!?]+[ \t\n]+|\n\n+|[ \t\n]*[-•*+#]+[ \t\n]+)/)
}
wc.translate=function() { wc.translate=function() {
var current= ++wc.serial var current= ++wc.serial
var f=wc.f, e=wc.e, p=wc.p var f=wc.f, e=wc.e, p=wc.p
@@ -31,14 +28,35 @@ wc.translate=function() {
} }
disable(true) disable(true)
clear(wc.o) clear(wc.o)
wc.os=[]
clear(e) clear(e)
clear(p) clear(p)
function split_punct(s) {
return s.split(/([.!?]+[ \t\n]+|\n\n+|[ \t\n]*[-•*+#]+[ \t\n]+)/)
}
function trans_quality(r) {
var text=r.text
if(r.prob==0) return {quality:"high_quality",text:text}
else {
var quality="default_quality"
switch(text[0]) {
case '+': text=text.substr(1); quality="high_quality"; break;
case '*': text=text.substr(1); quality="low_quality"; break;
default:
if(r.tree[0]=="?") quality="low_quality"
}
if(text[0]==" ") text=text.substr(1)
return {quality:quality,text:text}
}
}
function translate_segment(si) { function translate_segment(si) {
var rs=[] var rs=[]
var current_pick=0 var current_pick=0
var get_more var get_more
var output=os[si].target var output=wc.os[si].target
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>"
@@ -49,21 +67,6 @@ wc.translate=function() {
} }
disable(false) disable(false)
} }
function trans_quality(r) {
var text=r.text
if(r.prob==0) return {quality:"high_quality",text:text}
else {
var quality="default_quality"
switch(text[0]) {
case '+': text=text.substr(1); quality="high_quality"; break;
case '*': text=text.substr(1); quality="low_quality"; break;
default:
if(r.tree[0]=="?") quality="low_quality"
}
if(text[0]==" ") text=text.substr(1)
return {quality:quality,text:text}
}
}
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() {
clear(p) clear(p)
@@ -102,14 +105,14 @@ wc.translate=function() {
var r=rs[i] var r=rs[i]
var t=trans_quality(r) var t=trans_quality(r)
replaceChildren(output,text(t.text)) replaceChildren(output,text(t.text))
wc.os[si].text=t.text
output.className=t.quality output.className=t.quality
current_pick=i current_pick=i
if(selected==si) show_more() if(selected==si) show_more()
} }
function showit(r,text) { function showit(r,text) {
if(text.length>0 && text[text.length-1]=="\n") text=text.trimRight()
text=text.substr(0,text.length-1)
rs.push(r) rs.push(r)
var j=rs.length-1 var j=rs.length-1
rs[j].text=text rs[j].text=text
@@ -159,15 +162,15 @@ wc.translate=function() {
lextext(is[si],wc.cnl ? step2cnl : step2) lextext(is[si],wc.cnl ? step2cnl : step2)
} }
wc.translating=f.input.value wc.translating=f.input.value
var is=wc.is=wc.split_punct(wc.translating+"\n") var is=wc.is=split_punct(wc.translating+"\n")
var os=[]
for(var i=0;i<is.length;i++) { for(var i=0;i<is.length;i++) {
if(i&1) { // punctiation wc.os[i]={text:is[i]}
if(i&1) { // punctuation
wc.o.appendChild(span_class("punct",text(is[i]))) wc.o.appendChild(span_class("punct",text(is[i])))
} }
else { // segment else { // segment
var o=os[i]={target:span_class("placeholder",text(is[i]))} var o=wc.os[i].target=span_class("placeholder",text(is[i]))
wc.o.appendChild(o.target) wc.o.appendChild(o)
translate_segment(i) translate_segment(i)
} }
} }
@@ -185,9 +188,8 @@ wc.speak=function(text,lang) {
wc.swap=function() { wc.swap=function() {
var f=wc.f var f=wc.f
var old_input=f.input.value function txt(r) { return r.text }
f.input.value=f.output.value; f.input.value=wc.os.map(txt).join("").trimRight()
f.output.value=old_input
var from=f.from.value var from=f.from.value
f.from.value=f.to.value f.from.value=f.to.value
f.to.value=from f.to.value=from

View File

@@ -44,7 +44,7 @@ small { color: #666; }
<option value=Swe>Swedish</option> <option value=Swe>Swedish</option>
</select> </select>
<td style="text-align: right"> <td style="text-align: right">
<!--<input type=button name=swap onclick="wc.swap()" value="⇆">--> <input type=button name=swap onclick="wc.swap()" value="⇆">
<td> <td>
<select name=to onchange="wc.translate()"> <select name=to onchange="wc.translate()">
<option value=Bul>Bulgarian</option> <option value=Bul>Bulgarian</option>
@@ -77,7 +77,7 @@ small { color: #666; }
</div> </div>
<p> <p>
<div class=modtime><small> <div class=modtime><small>
<!-- hhmts start -->Last modified: Mon Apr 7 14:48:57 CEST 2014 <!-- hhmts end --> <!-- hhmts start -->Last modified: Tue Apr 8 13:22:42 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>