diff options
| author | hallgren <hallgren@chalmers.se> | 2015-04-09 10:18:41 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2015-04-09 10:18:41 +0000 |
| commit | 71de9a26ef5489ab98c85f5e584acdf99d1f4e3c (patch) | |
| tree | 6c857f66bb31f576415cc2c436f5b9716b3d244b | |
| parent | d24953846904166898b92f994964f8e898cfe6aa (diff) | |
Wide coverage translation demo: show an informative error message for sentences that exceed the length limit
| -rw-r--r-- | src/www/js/gftranslate.js | 15 | ||||
| -rw-r--r-- | src/www/js/wc.js | 4 |
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) } } |
