summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2015-04-09 10:18:41 +0000
committerhallgren <hallgren@chalmers.se>2015-04-09 10:18:41 +0000
commit71de9a26ef5489ab98c85f5e584acdf99d1f4e3c (patch)
tree6c857f66bb31f576415cc2c436f5b9716b3d244b /src
parentd24953846904166898b92f994964f8e898cfe6aa (diff)
Wide coverage translation demo: show an informative error message for sentences that exceed the length limit
Diffstat (limited to 'src')
-rw-r--r--src/www/js/gftranslate.js15
-rw-r--r--src/www/js/wc.js4
2 files changed, 14 insertions, 5 deletions
diff --git a/src/www/js/gftranslate.js b/src/www/js/gftranslate.js
index 1fb1e8357..6d13d84ca 100644
--- a/src/www/js/gftranslate.js
+++ b/src/www/js/gftranslate.js
@@ -50,6 +50,11 @@ function length_limit(lang) {
}
}
+function check_limit(lang,encsrc) {
+ var len=encsrc.length, limit=length_limit(lang)
+ return len<=limit ? null : "sentense too long, "+len+">"+limit
+}
+
// Translate a sentence
gftranslate.translate=function(source,from,to,start,limit,cont) {
var g=gftranslate.grammar
@@ -60,11 +65,12 @@ gftranslate.translate=function(source,from,to,start,limit,cont) {
function extract(result) {
cont(unspace_translations(g,result[0].translations))
}
- if(encsrc.length<length_limit(from))
+ var too_long=check_limit(from,encsrc)
+ if(too_long) cont([{error:too_long}])
+ else
gftranslate.call("?command=c-translate&jsontree=true&input="+encsrc
+lexer+"&unlexer=text&from="+g+from+"&to="+enc_langs(g,to)
+"&start="+start+"&limit="+limit,extract,errcont)
- else cont([{error:"sentence too long"}])
}
// Translate a sentence word for word (if all else fails...)
@@ -78,11 +84,12 @@ gftranslate.wordforword=function(source,from,to,cont) {
cont(unspace_translations(g,result[0].translations))
}
var enc_to = enc_langs(g,to)
- if(encsrc.length<length_limit(from))
+ var too_long=check_limit(from,encsrc)
+ if(too_long) cont([{error:too_long}])
+ else
gftranslate.call("?command=c-wordforword&input="+encsrc
+lexer+"&unlexer=text&from="+g+from+"&to="+enc_to
,extract,errcont)
- else cont([{error:"sentence too long"}])
}
// Get list of supported languages
diff --git a/src/www/js/wc.js b/src/www/js/wc.js
index 31fc9a950..612f52276 100644
--- a/src/www/js/wc.js
+++ b/src/www/js/wc.js
@@ -197,6 +197,8 @@ wc.translate=function() {
var r=tra[0]
r.prob = -1
if(r.linearizations) showit(r,gftranslate.grammar)
+ else if(r.error!=undefined)
+ show_error(r.error)
}
else if(so.rs.length==0)
show_error("Unable to translate")
@@ -210,7 +212,7 @@ wc.translate=function() {
var r=tra[0]
if(r.error!=undefined) {
if(i==0 && so.rs.length==0) {
- //show_error(tra[0].error)
+ //show_error(r.error)
word_for_word(text)
}
}