| /******************************************************************************* |
| * Copyright (c) 2007 Eclipse Foundation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Paul Colton (Aptana)- initial API and implementation |
| * Eclipse Foundation |
| * Kit Lo (IBM) - [281434] Syncup overuses the "possibly incorrect" flag |
| *******************************************************************************/ |
| |
| YAHOO.tranlsation = new Object(); |
| |
| YAHOO.tranlsation.posted = false; |
| |
| |
| function showTranslateStringForm(stringIdIn,stringTableIndex){ |
| var callback = |
| { |
| start:function(eventType, args){ |
| }, |
| success: function(o) { |
| var langDomNode = document.getElementById('translation-form-container'); |
| langDomNode.innerHTML = o.responseText; |
| YAHOO.util.Event.onAvailable("translation-form",setupTranslatFormCB); |
| }, |
| failure: function(o) { |
| YAHOO.log('failed!'); |
| } |
| } |
| YAHOO.util.Connect.asyncRequest('POST', "callback/getCurrentStringTranslation.php", callback, "string_id="+stringIdIn+"&stringTableIndex="+stringTableIndex); |
| document.onmouseup = catchSelection |
| } |
| |
| function setupTranslatFormCB(){ |
| YAHOO.util.Event.addListener("allversions","click",translateAll); |
| YAHOO.util.Event.addListener("translation-form","submit",translationSumbitStop); |
| YAHOO.util.Event.addListener("non-translatable-checkbox","click",notTranslatable); |
| YAHOO.util.Event.addListener("copy-english-string-link","click",copyEnglishString); |
| YAHOO.util.Event.addListener("reset-current-translation-link","click",resetCurrentTranslation); |
| YAHOO.util.Event.addListener("clear-current-translation-link","click",clearCurrentTranslation); |
| } |
| |
| |
| function notTranslatable(){ |
| var target = document.getElementById('translation-form'); |
| var post = "string_id="+target.string_id.value+"&check="+target.non_translatable_string.checked; |
| |
| var callback = |
| { |
| start:function(eventType, args){ |
| }, |
| success: function(o) { |
| YAHOO.projectStringsManager.getAjaxProjectStrings(); |
| var langDomNode = document.getElementById('translation-form-container'); |
| langDomNode.innerHTML = o.responseText; |
| }, |
| failure: function(o) { |
| } |
| } |
| var request = YAHOO.util.Connect.asyncRequest('POST', "callback/setStringNonTranslatable.php", callback, post); |
| } |
| |
| function translationClear(){ |
| if(YAHOO.tranlsation.posted == true){ |
| YAHOO.tranlsation.posted = false; |
| }else{ |
| var langDomNode = document.getElementById('translation-form-container'); |
| langDomNode.innerHTML = ""; |
| } |
| } |
| |
| |
| function translateAll(e){ |
| translationSumbit("all",document.getElementById('translation-form').stringTableIndex.value); |
| } |
| |
| function translationSumbitStop(e){ |
| YAHOO.util.Event.stopEvent(e); |
| } |
| |
| function translationSumbit(allornot,translationIndex){ |
| var target = document.getElementById('translation-form'); |
| var tr_value = target.translation.value; |
| // [281434] Syncup overuses the "possibly incorrect" flag |
| // var fuzzy_value = (target.fuzzy_checkbox.checked ? 1 : 0); |
| var fuzzy_value = 0; |
| |
| var callback = |
| { |
| start:function(eventType, args){ |
| }, |
| success: function(o) { |
| var response = eval("("+o.responseText+")"); |
| YAHOO.projectStringsManager.updateStringTableCurrentTranslation(translationIndex, response.translationString); |
| YAHOO.projectStringsManager.updateStringTableFuzzy(translationIndex, fuzzy_value); |
| target.innerHTML = response.translationArea; |
| }, |
| failure: function(o) { |
| YAHOO.log('failed!'); |
| } |
| } |
| |
| YAHOO.tranlsation.posted = true; |
| var post = "string_id="+target.string_id.value+ |
| "&translation="+sub(tr_value)+ |
| "&fuzzy="+fuzzy_value+ |
| "&translate_action="+allornot; |
| spin(); |
| var request = YAHOO.util.Connect.asyncRequest('POST', "callback/setStringTranslation.php", callback, post); |
| } |
| |
| function sub(it){ |
| it = it.replace(/\+/g,"%2b"); |
| return it.replace(/&/g,"%26"); |
| } |
| |
| function spin() { |
| var domNode = document.getElementById('translation-form'); |
| YAHOO.spinable.attach(domNode); |
| } |
| |
| function copyEnglishString() { |
| // PHP's nl2br() function produced different output in IE and Firefox. Need to adjust accordingly. |
| var englishStringElement = document.getElementById('english-string') |
| var appName = navigator.appName; |
| if (appName == "Microsoft Internet Explorer") |
| englishString = englishStringElement.innerText.replace(/<BR>/g, "\r\n"); |
| else |
| englishString = englishStringElement.textContent.replace(/<br>/g, ""); |
| var currentTranslation = document.getElementById('current-translation'); |
| if (currentTranslation != null) |
| currentTranslation.value = currentTranslation.value + englishString; |
| } |
| |
| function resetCurrentTranslation() { |
| var currentTranslation = document.getElementById('current-translation'); |
| currentTranslation.value = currentTranslation.defaultValue; |
| } |
| |
| function clearCurrentTranslation() { |
| var currentTranslation = document.getElementById('current-translation'); |
| currentTranslation.value = ""; |
| } |