diff --git a/src/www/js/gftranslate.js b/src/www/js/gftranslate.js
new file mode 100644
index 000000000..0043fce61
--- /dev/null
+++ b/src/www/js/gftranslate.js
@@ -0,0 +1,34 @@
+
+/* --- GF wide coverage translation interface ------------------------------- */
+
+var gftranslate = {}
+
+gftranslate.jsonurl="/robust/Translate8.pgf"
+gftranslate.grammar="Translate" // the name of the grammar
+gftranslate.languages="Bul Chi Eng Fin Fre Ger Hin Swe".split(" ")
+ // hardwired for now
+
+gftranslate.call=function(querystring,cont) {
+ http_get_json(gftranslate.jsonurl+querystring,cont)
+}
+
+// Translate a sentence to the given target language
+gftranslate.translate=function(source,from,to,cont) {
+ var encsrc=encodeURIComponent(source)
+ var g=gftranslate.grammar
+ function extract(result) {
+ cont(result[0].translations[0].linearizations[0].text)
+ }
+ if(encsrc.length<200) // match limit in runtime/c/utils/pgf-server.c
+ gftranslate.call("?command=c-translate&input="+encsrc
+ +"&from="+g+from+"&to="+g+to+"&limit=1",extract)
+ else cont("[GF robust parser: sentence too long]")
+}
+
+// Get functions to test which source and target langauges are supported
+gftranslate.get_support=function(cont) {
+ if(!gftranslate.targets) gftranslate.targets=toSet(gftranslate.languages)
+ function ssupport(code) { return gftranslate.targets[code] }
+ function tsupport(code) { return gftranslate.targets[code] }
+ cont(ssupport,tsupport)
+}
diff --git a/src/www/translator/index.html b/src/www/translator/index.html
index 97eeb22d7..999f6d9c6 100644
--- a/src/www/translator/index.html
+++ b/src/www/translator/index.html
@@ -61,7 +61,7 @@
Default translation method
-
+
@@ -78,14 +78,14 @@
HMTL
-Last modified: Fri Apr 12 17:03:43 CEST 2013
+Last modified: Tue Jan 21 16:54:12 CET 2014
About
-
+
diff --git a/src/www/translator/translator.js b/src/www/translator/translator.js
index e7b080c78..e124e3523 100644
--- a/src/www/translator/translator.js
+++ b/src/www/translator/translator.js
@@ -118,7 +118,7 @@ Translator.prototype.update_language_menus=function() {
mark_menus(yes,yes)
break;
case "GFRobust":
- if(window.gfrobust) gfrobust.get_support(mark_menus)
+ if(window.gftranslate) gftranslate.get_support(mark_menus)
else mark_menus(no,no)
break;
case "Apertium":
@@ -217,9 +217,9 @@ Translator.prototype.update_translation=function(i) {
//console.log(translate_output)
upd2(translate_output,punct)
}
- gfrobust.translate(source,o.to,upd1)
+ gftranslate.translate(source,o.from,o.to,upd1)
}
- if(!window.gfrobust)
+ if(!window.gftranslate)
upd3s("[GF robust parser is not available]")
else {
function check_support(ssupport,tsupport) {
@@ -243,7 +243,7 @@ Translator.prototype.update_translation=function(i) {
upd3s("["+msg+"]")
}
}
- gfrobust.get_support(check_support)
+ gftranslate.get_support(check_support)
}
}
@@ -937,7 +937,7 @@ Translator.prototype.draw_segment_given_target=function(s,target,i) {
}
var autoB=radiobutton("method","Default","Default",change)
var manualB=radiobutton("method","Manual","Manual",change)
- var gfrobustB=radiobutton("method","GFRobust","GF Robust Parser",change)
+ var gfrobustB=radiobutton("method","GFRobust","GF Wide Coverage Translation",change)
var dl=wrap_class("dl","popupmenu",
[dt(autoB),
dt([manualB,text(" "),draw_translation(o)]),
@@ -969,17 +969,19 @@ Translator.prototype.draw_segment_given_target=function(s,target,i) {
var source=wrap_class("td","source",txt)
if(!t.document.globalsight)
txt.onclick=function() { t.edit_source(source,i); }
- if(window.gfrobust && segment_method(t.document,s)=="GFRobust") {
+ /*
+ if(window.gftranslate && segment_method(t.document,s)=="GFRobust") {
function add_button(src) {
var btn=img("../minibar/tree-btn.png")
btn.className="right"
- btn.other=gfrobust.parsetree_url(src)
+ btn.other=gftranslate.parsetree_url(src)
btn.title="Click to toggle parse tree view."
btn.onclick=function() { toggle_img(btn) }
source.appendChild(btn)
}
lexgfrobust(s.source,add_button)
}
+ */
var options=wrap_class("td","options",draw_options())
return node("tr",{"class":"segment",id:i},[actions,source,options,target])