summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2014-04-24 11:28:15 +0000
committerhallgren <hallgren@chalmers.se>2014-04-24 11:28:15 +0000
commite891e99725956dc7802dcff67112432790af6450 (patch)
treef842422242dd776884050b34c7f9c51de6bbc2e4 /src
parent6808c3c98213c35d24ae4166004a3591fc0aa4b4 (diff)
Simple Translator: remove punctuation before wide coverage translation
This gives better translations with Translate11.pgf and is how the Wide Coverage Demo App works.
Diffstat (limited to 'src')
-rw-r--r--src/www/translator/translator.js25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/www/translator/translator.js b/src/www/translator/translator.js
index e56205a48..6bb490197 100644
--- a/src/www/translator/translator.js
+++ b/src/www/translator/translator.js
@@ -216,7 +216,7 @@ Translator.prototype.update_translation=function(i) {
function upd2(trans,punct) {
if(trans.length==0) upd3s("[no translation]")
- else if(trans[0].error)
+ else if(trans[0].error!=undefined)
upd3s("[GF robust translation problem: "+trans[0].error+"]")
else {
var ts=[]
@@ -247,7 +247,8 @@ Translator.prototype.update_translation=function(i) {
if(!eq_options(segment.options,want)) {
//console.log("Updating "+i)
//lexgfrobust(segment.source,upd0)
- upd0(segment.source,"")
+ var sp=rmpunct(segment.source)
+ upd0(sp.txt,sp.punct)
}
//else console.log("No update ",want,segment.options)
}
@@ -1223,6 +1224,26 @@ function lexgfrobust(txt,cont) {
lextext(txt,rmpunct)
}
*/
+function rmpunct(txt) {
+ function ispunct(c) {
+ switch(c) {
+ case ' ':
+ case '\t':
+ case '\n':
+ case '.':
+ case '?':
+ case '!':
+ return true
+ default:
+ return false
+ }
+ }
+ var i=txt.length-1
+ while(i>=0 && ispunct(txt[i])) i--
+ i++
+ return {txt:txt.substr(0,i),punct:txt.substr(i)}
+}
+
/* --- DOM Support ---------------------------------------------------------- */
function a(url,linked) { return node("a",{href:url},linked); }