blob: 828cb8956fc748e9476e69ce16bfefe259dab08e [file] [log] [blame]
/*******************************************************************************
* 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 = "";
}