1
0
forked from GitHub/gf-core

Wide Coverage Translation Demo: improvements relating to application grammars

* Automatically update the translations when the set of selected
  application grammars is changed.
* Skip application grammars that do not support the currently selected
  source & target languages.
This commit is contained in:
hallgren
2016-05-19 09:36:40 +00:00
parent bea8c5796a
commit 7cb01f1ae7
2 changed files with 28 additions and 14 deletions

View File

@@ -61,7 +61,9 @@ wc.load=function() {
} }
} }
wc.translate=function() { wc.translate=function(redo) {
// redo=true => discard translated segment cache and resubmit translation
// requests to the server (browser cache may still be used)
var f=wc.f, e=wc.e, p=wc.p var f=wc.f, e=wc.e, p=wc.p
/* /*
@@ -267,13 +269,18 @@ wc.translate=function() {
} }
if(ix<wc.selected_cnls.length) { if(ix<wc.selected_cnls.length) {
var g=wc.cnls[wc.selected_cnls[ix]] var g=wc.cnls[wc.selected_cnls[ix]]
var cnl=g.grammar_info.name var gi=g.grammar_info
g.pgf_online.translate({from:cnl+f.from.value, var langs=gi.languages.map(function(l) { return l.name; })
//to:cnl+f.to.value, var cnl=gi.name
lexer:"text",unlexer:"text", var from=cnl+f.from.value,to=cnl+f.to.value
jsontree:true,input:text}, if(elem(from,langs) && elem(to,langs))
step3cnl, g.pgf_online.translate({from:from,
function(){step2cnl(text,ix+1)}) //to:to,
lexer:"text",unlexer:"text",
jsontree:true,input:text},
step3cnl,
function(){step2cnl(text,ix+1)})
else step2cnl(text,ix+1)
} }
else step2(text) else step2(text)
} }
@@ -308,12 +315,18 @@ wc.translate=function() {
clear(p) clear(p)
var old=wc.cache
var old_selected=wc.selected var old_selected=wc.selected
wc.selected=null wc.selected=null
for(var i=0;i<wc.os.length;i++) old[wc.os[i].input]=wc.os[i] if(redo) {
// could also keep all copies if the same text occurs more than once... wc.cache={}
wc.os=[] var old=wc.cache
}
else {
var old=wc.cache
for(var i=0;i<wc.os.length;i++) old[wc.os[i].input]=wc.os[i]
// could also keep all copies if the same text occurs more than once...
wc.os=[]
}
wc.translating=f.input.value wc.translating=f.input.value
var is=split_punct(wc.translating+"\n") var is=split_punct(wc.translating+"\n")
@@ -463,6 +476,7 @@ wc.select_grammars=function() {
wc.selected_cnls=gs wc.selected_cnls=gs
wc.init_cnls() wc.init_cnls()
wc.local.put("cnls",wc.selected_cnls) wc.local.put("cnls",wc.selected_cnls)
wc.translate(true)
} }
function cancel() { function cancel() {
wc.hide_grammarbox() wc.hide_grammarbox()

View File

@@ -49,7 +49,7 @@ h2 > input { float: right; }
<div class=overlay><div id=grammarbox class=grammarbox></div></div> <div class=overlay><div id=grammarbox class=grammarbox></div></div>
<form onsubmit="return wc.translate()" style="width: 100%"> <form onsubmit="return wc.translate(true)" style="width: 100%">
<table> <table>
<tr><td> <tr><td>
<select name=from> <select name=from>
@@ -115,7 +115,7 @@ h2 > input { float: right; }
</div> </div>
<hr> <hr>
<div class=modtime><small> <div class=modtime><small>
<!-- hhmts start -->Last modified: Mon May 16 16:39:48 CEST 2016 <!-- hhmts end --> <!-- hhmts start -->Last modified: Thu May 19 11:08:21 CEST 2016 <!-- hhmts end -->
</small></div> </small></div>
<a href="http://www.grammaticalframework.org/demos/translation.html">About</a> <a href="http://www.grammaticalframework.org/demos/translation.html">About</a>
<script src="js/support.js"></script> <script src="js/support.js"></script>