mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
Wide Coverage Demo App: show a word-for-word translation if all else fails
This commit is contained in:
@@ -27,6 +27,20 @@ gftranslate.translate=function(source,from,to,start,limit,cont) {
|
|||||||
else cont([{error:"sentence too long"}])
|
else cont([{error:"sentence too long"}])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Translate a sentence word for word (if all else fails...)
|
||||||
|
gftranslate.wordforword=function(source,from,to,cont) {
|
||||||
|
var g=gftranslate.grammar
|
||||||
|
var lexer="&lexer=text"
|
||||||
|
if(from=="Chi") lexer="",source=source.split("").join(" ")
|
||||||
|
var encsrc=encodeURIComponent(source)
|
||||||
|
function extract(result) { cont(result[0].translations) }
|
||||||
|
if(encsrc.length<500)
|
||||||
|
gftranslate.call("?command=c-wordforword&input="+encsrc
|
||||||
|
+lexer+"&unlexer=text&from="+g+from+"&to="+g+to
|
||||||
|
,extract)
|
||||||
|
else cont([{error:"sentence too long"}])
|
||||||
|
}
|
||||||
|
|
||||||
// Get list of supported languages
|
// Get list of supported languages
|
||||||
gftranslate.get_languages=function(cont) {
|
gftranslate.get_languages=function(cont) {
|
||||||
function init2(grammar_info) {
|
function init2(grammar_info) {
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ wc.translate=function() {
|
|||||||
function show_more() {
|
function show_more() {
|
||||||
selected=si
|
selected=si
|
||||||
var r=rs[current_pick]
|
var r=rs[current_pick]
|
||||||
if(e) e.innerHTML=(r.prob||"")+"<br>"+r.tree
|
if(e) e.innerHTML=(r.prob||"")+"<br>"+(r.tree||"")
|
||||||
if(wc.p /*&& rs.length>1*/) show_picks()
|
if(wc.p /*&& rs.length>1*/) show_picks()
|
||||||
//if(f.speak.checked) wc.speak(t.text,f.to.value)
|
//if(f.speak.checked) wc.speak(t.text,f.to.value)
|
||||||
if(get_more) {
|
if(get_more) {
|
||||||
@@ -116,18 +116,25 @@ wc.translate=function() {
|
|||||||
current_pick=i
|
current_pick=i
|
||||||
if(selected==si) show_more()
|
if(selected==si) show_more()
|
||||||
}
|
}
|
||||||
|
function showit2(r) {
|
||||||
function showit(r) {
|
|
||||||
r.t=trans_quality(r)
|
|
||||||
//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)
|
||||||
else if(selected==si) show_picks()
|
else if(selected==si) show_picks()
|
||||||
//disable(false)
|
//disable(false)
|
||||||
}
|
}
|
||||||
function trans(text,i,count) {
|
function showit(r) {
|
||||||
|
r.t=trans_quality(r)
|
||||||
|
r.text=r.t.text
|
||||||
|
showit2(r)
|
||||||
|
}
|
||||||
|
function show_words(r) {
|
||||||
|
r.text=r.linearizations[0].text
|
||||||
|
r.t={quality:"bad_quality",text:r.text}
|
||||||
|
showit2(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
function word_for_word(text,cont) {
|
||||||
function step3(tra) {
|
function step3(tra) {
|
||||||
if(wc.serial==current) {
|
if(wc.serial==current) {
|
||||||
if(tra.length>=1) {
|
if(tra.length>=1) {
|
||||||
@@ -135,6 +142,29 @@ 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 {
|
||||||
|
var r=tra[0]
|
||||||
|
if(r.linearizations) show_words(r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(i==0 && rs.length==0)
|
||||||
|
show_error("Unable to translate")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gftranslate.wordforword(text,f.from.value,f.to.value,step3)
|
||||||
|
}
|
||||||
|
|
||||||
|
function trans(text,i,count) {
|
||||||
|
function step3(tra) {
|
||||||
|
if(wc.serial==current) {
|
||||||
|
if(tra.length>=1) {
|
||||||
|
var r=tra[0]
|
||||||
|
if(r.error!=undefined) {
|
||||||
|
if(i==0 && rs.length==0) {
|
||||||
|
//show_error(tra[0].error)
|
||||||
|
word_for_word(text)
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
for(var ti=0;ti<tra.length;ti++) {
|
for(var ti=0;ti<tra.length;ti++) {
|
||||||
var r=tra[ti]
|
var r=tra[ti]
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ small { color: #666; }
|
|||||||
#speak { display: none; }
|
#speak { display: none; }
|
||||||
.colors .default_quality { background-color: #ffc; }
|
.colors .default_quality { background-color: #ffc; }
|
||||||
.colors .high_quality { background-color: #cfc; }
|
.colors .high_quality { background-color: #cfc; }
|
||||||
.colors .low_quality { background-color: #fcc; }
|
.colors .low_quality { background-color: #fba; }
|
||||||
|
.colors .bad_quality { background-color: #f88; }
|
||||||
.placeholder { color: #999; }
|
.placeholder { color: #999; }
|
||||||
.error { color: #c00; }
|
.error { color: #c00; }
|
||||||
</style>
|
</style>
|
||||||
@@ -79,7 +80,7 @@ small { color: #666; }
|
|||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
<div class=modtime><small>
|
<div class=modtime><small>
|
||||||
<!-- hhmts start -->Last modified: Wed Apr 9 22:35:17 CEST 2014 <!-- hhmts end -->
|
<!-- hhmts start -->Last modified: Wed Apr 16 16:48:16 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>
|
||||||
|
|||||||
Reference in New Issue
Block a user