From a3ac6ca7df33b811f59163f14d4d87c4f948bf06 Mon Sep 17 00:00:00 2001 From: reger Date: Wed, 15 Jun 2016 22:32:27 +0200 Subject: [PATCH] add button (Translator servlet) to switch one already translated line in edit mode --- htroot/Translator_p.html | 2 +- htroot/Translator_p.java | 38 ++++++++++++++++++++++++-------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/htroot/Translator_p.html b/htroot/Translator_p.html index 846f8adbd..131af2999 100644 --- a/htroot/Translator_p.html +++ b/htroot/Translator_p.html @@ -36,7 +36,7 @@ - #(filteruntranslated)#::#(/filteruntranslated)# + #(filteruntranslated)#::#(/filteruntranslated)# #{/textlist}# diff --git a/htroot/Translator_p.java b/htroot/Translator_p.java index d46133e0e..87db72a6d 100644 --- a/htroot/Translator_p.java +++ b/htroot/Translator_p.java @@ -77,36 +77,46 @@ public class Translator_p { i = 0; boolean filteruntranslated = false; + boolean editapproved = false; // to switch already approved translation in edit mode int textlistid = -1; if (post != null) { filteruntranslated = post.getBoolean("filteruntranslated"); - if (filteruntranslated) { - prop.put("filter.checked", 1); - } else { - prop.put("filter.checked", 0); - } + prop.put("filter.checked", filteruntranslated); // remember filter setting textlistid = post.getInt("approve", -1); + if (post.containsKey("editapproved")) { + textlistid = post.getInt("editapproved", -1); + editapproved = true; + } } boolean changed = false; for (String sourcetext : origTextList.keySet()) { String targettxt = origTextList.get(sourcetext); boolean existinlocalTrans = localTrans.containsKey(filename) && localTrans.get(filename).containsKey(sourcetext); + + if (editapproved) existinlocalTrans |= (i == textlistid); // if edit of approved requested handle as/like existing in local to allow edit + if (targettxt == null || targettxt.isEmpty() || existinlocalTrans) { prop.put("textlist_" + i + "_filteruntranslated", true); } else if (filteruntranslated) { continue; } + // handle (modified) input text if (i == textlistid && post != null) { - String t = post.get("targettxt" + Integer.toString(textlistid)); - // correct common partial html markup (part of text identification for words also used as html parameter) - if (!t.isEmpty()) { - if (sourcetext.startsWith(">") && !t.startsWith(">")) t=">"+t; - if (sourcetext.endsWith("<") && !t.endsWith("<")) t=t+"<"; + if (editapproved) { // switch already translated in edit mode by copying to local translation + // not saved here as not yet modified/approved + ctm.addTranslation(localTrans, filename, sourcetext, targettxt); + } else { + String t = post.get("targettxt" + Integer.toString(textlistid)); + // correct common partial html markup (part of text identification for words also used as html parameter) + if (!t.isEmpty()) { + if (sourcetext.startsWith(">") && !t.startsWith(">")) t=">"+t; + if (sourcetext.endsWith("<") && !t.endsWith("<")) t=t+"<"; + } + targettxt = t; + // add changes to original (for display) and local (for save) + origTextList.put(sourcetext, targettxt); + changed = ctm.addTranslation(localTrans, filename, sourcetext, targettxt); } - targettxt = t; - // add changes to original (for display) and local (for save) - origTextList.put(sourcetext, targettxt); - changed = ctm.addTranslation (localTrans, filename, sourcetext, targettxt); } prop.putHTML("textlist_" + i + "_sourcetxt", sourcetext); prop.putHTML("textlist_" + i + "_targettxt", targettxt);