source: ZMS/trunk/import/manage_translate.metacmd.xml @ 1669

Revision 1669, 8.0 KB checked in by fhoffmann, 8 months ago (diff)

applied fix for manage_translate (reported by kpoh) (3)

Line 
1<?xml version="1.0" encoding="utf-8"?>
2
3<dictionary>
4  <item key="custom"><![CDATA[<dtml-return "len(getLangIds())>1">]]></item>
5  <item key="data"><![CDATA[<dtml-comment>
6################################################################################
72011-09-19 [zmsdev] applied fix
82011-09-16 [zmsdev] applied fix
92011-07-06 [fhoffmann] SESSION based lang settings
102011-06-09 [fhoffmann] Save Automatic Pre-Translation
112011-06-07 [fhoffmann] Google Translator Element added
122011-04-11 [zmsdev] Replaced fancybox by jquery ui dialog.
132011-28-01 [fhoffmann] Revised for fancybox transparency css
142011-21-01 [fhoffmann] Revised for maximize css
152011-01-17 [zmsdev] Revised table-structure: one row per object
162010-12-02 [zmsdev] Initial revision
17################################################################################
18</dtml-comment>
19
20<dtml-var manage_page_header>
21
22<style type="text/css">
23.zmi-translate-left {
24        padding:4px;
25        background-color:#FFFFE8;
26}
27.zmi-translate-left .zmi-translate-element {
28        margin:5px 10px 5px 0px;
29        border: 1px solid darkgreen;
30}
31.zmi-translate-left .zmi-translate-element-id {
32        color:white;
33        background-color: darkgreen;
34}
35.zmi-translate-right {
36        padding:4px;
37        background-color:#FFFFFF;
38}
39.zmi-translate-right .zmi-translate-element {
40        margin:5px 10px 5px 0px;
41        border: 1px solid red;
42}
43.zmi-translate-right .zmi-translate-element-id {
44        color:white;
45        background-color: red;
46}
47.zmiRenderShort {
48        width:350px!important;
49}
50.zmiRenderShort {
51        width:350px!important;
52}
53body.maximized .zmiRenderShort {
54        width:auto !important;
55}
56.ui-widget-overlay {
57  opacity: 0.2;
58}
59</style>
60
61<script>
62function save(sender) {
63        var $container_div = $($(sender).parents("div")[0]);
64        var $rendershort_div = $("div.zmiRenderShort div.contentEditable",$container_div);
65        var id = $rendershort_div.attr("id");
66        id = id.substr(id.indexOf("_")+1);
67        id = id.substr(0,id.lastIndexOf("_"));
68        var lang = $rendershort_div.attr("id");
69        lang = lang.substr(lang.lastIndexOf("_")+1);
70        var html = $rendershort_div.html();
71        var text = html;
72        text = text.replace(/<font(.*?)>/gi,'');
73        text = text.replace(/<\/font(.*?)>/gi,'');
74        // Handle start-tag.
75        var startTag = text.split(">")[0].toLowerCase();
76        startTag = startTag.substr(startTag.indexOf("<")+1);
77        if (startTag.indexOf(" ")>0) {
78                startTag = startTag.substr(0,startTag.indexOf(" "));
79        }
80        var sre = '<'+startTag+'(.*?)>((.|\n|\r|\t)*?)<\/'+startTag+'(.*?)>';
81        var re = new RegExp(sre,'gi');
82        text = text.replace(re,'$2');
83        text = text.replace(/<span class=\"unicode\">(.*?)<\/span>/g,'');
84        // Handle sub-tag.
85        var subTag = text.split(">")[0].toLowerCase();
86        subTag = subTag.substr(subTag.indexOf("<")+1);
87        if (subTag.indexOf(" ")>0) {
88                startTag = subTag.substr(0,subTag.indexOf(" "));
89        }
90        if (subTag == 'br') {
91                re = new RegExp('<'+subTag+'>','gi');
92                text = text.replace(re,'\n');
93        }
94        else {
95                re = new RegExp('<'+subTag+'(.*?)>','gi');
96                text = text.replace(re,'');
97                re = new RegExp('<\/'+subTag+'>','gi');
98                text = text.replace(re,'\n');
99        }
100        if (confirm("Save Automatic Pre-Translation?\n\n"+text)) {
101                $container_div.addClass('zmiTeaserColor');
102                var params = {};
103                params['lang'] = lang;
104                params['text_'+lang] = text;
105                $.post(id+'/manage_changeProperties',params,function(data){
106                        $container_div.removeClass('zmiTeaserColor');
107                },'html');
108        }
109}
110</script>
111
112</head>
113<dtml-var manage_tabs>
114<dtml-unless fmName><dtml-call "REQUEST.set('fmName', 'form0')"></dtml-unless>
115
116<dtml-call "REQUEST.set('lang1_options',getLangTree(getDCCoverage(REQUEST)[len('global.'):]))">
117<dtml-if "SESSION.get('lang1','')==''"
118        ><dtml-call "SESSION.set('lang1',REQUEST.get('lang1',lang1_options[0][0]))"
119        ><dtml-call "REQUEST.set('lang1',SESSION.get('lang1'))" 
120><dtml-elif "REQUEST.get('lang1','')==''"
121        ><dtml-call "REQUEST.set('lang1',SESSION.get('lang1',lang1_options[0][0]))"
122><dtml-else
123        ><dtml-call "SESSION.set('lang1',REQUEST.get('lang1'))"
124></dtml-if>
125<dtml-call "REQUEST.set('lang1_bk',lang1)"> 
126
127<dtml-call "REQUEST.set('lang2_options',getLangTree(getDCCoverage(REQUEST)[len('global.'):])[1:])">
128<dtml-if "SESSION.get('lang2','')==''"
129        ><dtml-call "SESSION.set('lang2',REQUEST.get('lang2',lang2_options[0][0]))"
130        ><dtml-call "REQUEST.set('lang2',SESSION.get('lang2'))" 
131><dtml-elif "REQUEST.get('lang2','')==''"
132        ><dtml-call "REQUEST.set('lang2',SESSION.get('lang2',lang2_options[0][0]))"
133><dtml-else
134        ><dtml-call "SESSION.set('lang2',REQUEST.get('lang2'))"
135></dtml-if>
136<dtml-call "REQUEST.set('lang2_bk',lang2)">
137
138<form id="<dtml-var fmName>" method="get">
139<table cellspacing="0" cellpadding="0" border="0" width="100%">
140<tr valign="top">
141<dtml-let childNodes="filter(lambda x: x.isPageElement(),getObjChildren('e',REQUEST))" exclude_langs="[]">
142<dtml-in "['left','right']">
143<dtml-let si=sequence-item lang_req_key="{'left':'lang1','right':'lang2'}[si]">
144<td class="zmi-translate-<dtml-var si> <dtml-var "['translate','notranslate'][si=='left']">" width="50%">
145    <select class="form-small notranslate" name="<dtml-var lang_req_key>" onchange="document.getElementById('<dtml-var fmName>').submit();">
146     <dtml-in "REQUEST.get('%s_options'%lang_req_key)" mapping>
147      <option value="<dtml-var sequence-key>" <dtml-if "_['sequence-key']==REQUEST[lang_req_key]">selected="selected"</dtml-if>><dtml-var label></option>
148     </dtml-in>
149    </select>
150    <dtml-call "REQUEST.set(lang_req_key+'_bk',REQUEST.get(lang_req_key))">
151    <dtml-call "REQUEST.set('lang',REQUEST.get(lang_req_key))">
152   <div id="<dtml-var id>" class="zmi-translate-element">
153    <span class="zmi-translate-element-id notranslate"><dtml-var id></span>
154    <div class="zmiRenderShort" id="contentEditable_<dtml-var id>_<dtml-var lang>">
155     <dtml-if "meta_id not in ['ZMSDocument','ZMSFolder','ZMS']">
156      <dtml-var "getBodyContent(REQUEST)">
157     <dtml-else>
158      <h1><dtml-var "getTitle(REQUEST)"></h1>
159      <p class="description"><dtml-var "getDCDescription(REQUEST)" newline_to_br></p>
160     </dtml-if>
161    </div>
162   </div>
163</td>
164</dtml-let>
165</dtml-in>
166<dtml-in childNodes>
167 <tr valign="top">
168  <dtml-in "['left','right']">
169   <dtml-let si=sequence-item lang_req_key="{'left':'lang1','right':'lang2'}[si]">
170    <td class="zmi-translate-<dtml-var si> <dtml-var "['translate','notranslate'][si=='left']">">
171    <dtml-call "REQUEST.set('lang',REQUEST.get(lang_req_key+'_bk'))">
172    <div id="<dtml-var id>" class="zmi-translate-element">
173     <span class="zmi-translate-element-id notranslate" <dtml-if "isActive(REQUEST)!=True"
174      >title="Inactive" style="background-color:#999"</dtml-if>><dtml-var id><dtml-if "si!='left'"><span title="<dtml-var lang>: Save Automatic Pre-Translation" style="cursor:pointer;" onclick="save(this)"> â–Œ </span></dtml-if></span>
175      <dtml-var "renderShort(REQUEST)">
176    </div>
177    </td>
178   </dtml-let>
179  </dtml-in>
180 </tr>
181</dtml-in>
182</dtml-let>
183</tr>
184</table>
185</form>
186<!-- Google Translate Element -->
187<div id="google_translate_element" style="display:block"></div><script>
188function googleTranslateElementInit() {
189  new google.translate.TranslateElement({pageLanguage: "de"}, "google_translate_element");
190};</script>
191<script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
192<!-- /Google Translate Element -->
193<dtml-comment>
194<pre title="DEBUG CODE">
195REQUEST lang1: <dtml-var "REQUEST.get('lang1','')">
196REQUEST lang2: <dtml-var "REQUEST.get('lang2','')">
197SESSION lang1: <dtml-var "SESSION.get('lang1','')">
198SESSION lang2: <dtml-var "SESSION.get('lang2','')">
199</pre>
200</dtml-comment>
201<dtml-var manage_page_footer>]]>
202  </item>
203  <item key="description"></item>
204  <item key="exec" type="int">0</item>
205  <item key="id"><![CDATA[manage_translate]]></item>
206  <item key="meta_type"><![CDATA[DTML Method]]></item>
207  <item key="meta_types" type="list">
208    <list>
209      <item><![CDATA[ZMSDocument]]></item>
210      <item><![CDATA[ZMSFolder]]></item>
211      <item><![CDATA[ZMS]]></item>
212    </list>
213  </item>
214  <item key="name"><![CDATA[Translate...]]></item>
215  <item key="roles" type="list">
216    <list>
217      <item><![CDATA[ZMSEditor]]></item>
218      <item><![CDATA[ZMSAuthor]]></item>
219      <item><![CDATA[ZMSAdministrator]]></item>
220    </list>
221  </item>
222</dictionary>
Note: See TracBrowser for help on using the repository browser.