Корисник:Endo999/GoogleTrans.js: Разлика помеѓу преработките

Избришана содржина Додадена содржина
google api v2 changes and new api key put in
upgrade gadget
Ред 1:
/**
// does google toolbar like translation of words and selected text
* GoogleTrans
// works on ie and firefox, epiphany, safari, chrome, and opera but still has bugs on
*
// Konqueror (in fact the code is disabled on Konqueror)
// * selected textDoes translation (uplike toGoogle 500Toolbar charactersdoes) onlyof on IE, Firefox,words and Epiphany,selected and chrometext.
* Works on MSIE, Firefox, Epiphany, Safari, Chrome, and Opera (still has bugs
 
* on Konqueror, where this gadget is disabled).
// this has only been tested on the monobook and vector skins
*
* Selected text translation (up to 500 characters) only on MSIE, Firefox, Epiphany, and Chrome.
*
* This has only been tested with the MonoBook and Vector skins.
*
* Documentation of the API:
* - https://developers.google.com/translate/
*
* Relevant policies and terms:
* - https://developers.google.com/translate/v2/terms
* - https://developers.google.com/terms/
* - https://www.google.com/policies/privacy/
*/
 
/*
Disclaimer
DisClaimer
 
The author of this code is not responsible for any
use of it, but will endeavor to fix any problems that is
reported to him. (messagesMessages to Endo999)
 
*/
 
 
 
Ред 36 ⟶ 47:
//var SCGoogleTransPersistString = 'TranslationPopups'; // if pt or es wikis
 
var userLang = mw.config.get( 'wgUserLanguage' );
if(typeof wgUserLanguage != "undefined" &&
var contentLang = typeofmw.config.get( 'wgContentLanguage!=' "undefined");
 
{
if(userLang != contentLang) {
if(wgUserLanguage != wgContentLanguage)
SCLanguageDefaultTo = wgUserLanguageuserLang;
}
 
Ред 48 ⟶ 59:
// need to set document.domain here, each language should set this field here
 
document.domain = mw.config.get( 'wgServer' ).substring( mw.config.get( 'wgServer' ).lastIndexOf("//")+2);
 
 
Ред 87 ⟶ 98:
var SCPopupBackgroundColor = "beige"; // you can set the popup background color here
 
var SCbIsIE11 = false;
if(navigator.appVersion.match(/rv:([0-9][0-9])\./i))
{
var version1 = new Number(RegExp.$1);
if(version1 >= 11)
{
SCbIsFirefox35=false;
SCbIsSafari=false;
SCbIsChrome=false;
SCbIsOperal11=false;
SCbIsIE9 = true;
SCbIsIE = false;
SCbIsFirefox35Like=true;
SCbIsMozilla = true;
SCbIsIE11 = true;
}
}
 
mw.util.addCSS(
 
 
appendCSS(
'.SCuserData { behavior:url(#default#userdata);} ' +
 
Ред 134 ⟶ 160:
 
 
// this api key is not strictly necessary, but Google maintains they will email
// you if, for some reason, they withdraw the Google translation services
// the gadget manager is welcome to log onto code.google.com and get his own
// api key.
 
var SCGoogleAPIKey = "ABQIAAAAIL6lIdsFmMh3QB6iZZYqHBT5zsu4IrEqi6aTPGb6EkJ6C2zK0BQyWgLmv16JfxNy3RYUKg7GyR6XAg";
var SCGoogleAPIKeyV2 = "AIzaSyBUpyYOT_9D8lzlKXRWqeVKN8tFshTZXps";
 
//var SCGoogleAPIKeyV2 = "AIzaSyCiO2o0J3CvQ-BNTMnDB5KRsHXZ2byriFk";
var SCGoogleAPIKeyV2 = // "AIzaSyDn710ovCpo7O35SLjVp4hb_NYsaM3AK0A";
"AIzaSyDqOGje0v4Qzf5dtIyGwYSIT_w59dlPCyY";
//var SCGoogleAPIKeyV2 = "AIzaSyD7LfuEQC4me04VsPWhFzPaleTf1P_a5wg";
//var SCGoogleAPIKeyV2 = "AIzaSyBUpyYOT_9D8lzlKXRWqeVKN8tFshTZXps";
//importScriptURI("http://www.google.com/jsapi?callback=SCloadGoogleLanguage&key=" +
// SCGoogleAPIKey);
Ред 146 ⟶ 182:
 
 
jQuery(
addOnloadHook(
function () {
var span1 = document.createElement('DIV');
Ред 167 ⟶ 203:
function SCGoogleLanguageLoaded(response) {
if(1=== 0 && response.data && response.data.languages)
{
var i;
Ред 224 ⟶ 260:
'Albanian',
'Arabic',
'Armenian',
'Azerbaijani',
'Basque',
'Belarusian',
'Bulgarian',
'Bengali',
'Bosnian',
'Catalan',
'Cebuano',
'Chinese (traditional)',
'Chinese (simplified)',
Ред 234 ⟶ 276:
'Dutch',
'English',
'Esperanto',
'Estonian',
'Filipino',
Ред 239 ⟶ 282:
'French',
'Galician',
'Georgian',
'German',
'Greek',
'Gujarati',
'Haitian creole',
'Hausa',
'Hebrew',
'Hindi',
'Hmong',
'Hungarian',
'Icelandic',
'Igbo',
'Indonesian',
'Irish',
'Italian',
'Japanese',
'Javanese',
'Kannada',
'Khmer',
'Korean',
'Lao',
'Latin',
'Latvian',
'Lithuanian',
Ред 255 ⟶ 309:
'Malay',
'Maltese',
'Marathi',
'Maori',
'Mongolian',
'Nepali',
'Norwegian',
'Persian',
'Polish',
'Portuguese',
'Punjabi',
'Romanian',
'Russian',
Ред 264 ⟶ 323:
'Slovak',
'Slovenian',
'Somali',
'Spanish',
'Swahili',
'Swedish',
'Tamil',
'Telugu',
'Thai',
'Turkish',
'Ukrainian',
'Urdu',
'Vietnamese',
'Welsh',
'Yiddish'];,
'Yoruba',
'Zulu'
];
var SCGoogleLanguageCodes = [
'af',
'sq',
'ar',
'hy',
'az',
'eu',
'be',
'bg',
'bn',
'bs',
'ca',
'ceb',
'zh-TW',
'zh-CN',
Ред 287 ⟶ 359:
'nl',
'en',
'eo',
'et',
'tl',
Ред 292 ⟶ 365:
'fr',
'gl',
'ka',
'de',
'el',
'gu',
'ht',
'ha',
'iw',
'hi',
'hmn',
'hu',
'is',
'ig',
'id',
'ga',
'it',
'ja',
'jv',
'kn',
'km',
'ko',
'lo',
'la',
'lv',
'lt',
Ред 308 ⟶ 392:
'ms',
'mt',
'mr',
'mi',
'mn',
'ne',
'no',
'fa',
'pl',
'pt',
'pa',
'ro',
'ru',
Ред 317 ⟶ 406:
'sk',
'sl',
'so',
'es',
'sw',
'sv',
'ta',
'te',
'th',
'tr',
'uk',
'ur',
'vi',
'cy',
'yi'];,
'yo',
'zu'
];
var SCnewoptions =
'<option value="af">Afrikaans</option>'+
'<option value="sq">Albanian</option>'+
'<option value="ar">Arabic</option>'+
'<option value="hy">Armenian</option>'+
'<option value="az">Azerbaijani</option>'+
'<option value="eu">Basque</option>'+
'<option value="be">Belarusian</option>'+
'<option value="bs">Bosnian</option>'+
'<option value="bg">Bulgarian</option>'+
'<option value="bn">Bengali</option>' +
'<option value="ca">Catalan</option>'+
'<option value="ceb">Cebuano</option>'+
'<option value="zh-TW">Chinese (traditional)</option>'+
'<option value="zh-CN">Chinese (simplified)</option>'+
Ред 340 ⟶ 442:
'<option value="nl">Dutch</option>'+
'<option value="en">English</option>'+
'<option value="eo">Esperanto</option>'+
'<option value="et">Estonian</option>'+
'<option value="tl">Filipino</option>'+
Ред 345 ⟶ 448:
'<option value="fr">French</option>'+
'<option value="gl">Galician</option>'+
'<option value="ka">Georgian</option>'+
'<option value="de">German</option>'+
'<option value="el">Greek</option>'+
'<option value="gu">Gujarati</option>' +
'<option value="ht">Haitian creole</option>'+
'<option value="ha">Hausa</option>'+
'<option value="iw">Hebrew</option>'+
'<option value="hi">Hindi</option>'+
'<option value="hmn">Hmong</option>'+
'<option value="hu">Hungarian</option>'+
'<option value="is">Icelandic</option>'+
'<option value="ig">Igbo</option>'+
'<option value="id">Indonesian</option>'+
'<option value="ga">Irish</option>'+
'<option value="it">Italian</option>'+
'<option value="ja">Japanese</option>'+
'<option value="jv">Javanese</option>'+
'<option value="kn">Kannada</option>' +
'<option value="km">Khmer</option>' +
'<option value="ko">Korean</option>' +
'<option value="lo">Lao</option>'+
'<option value="la">Latin</option>'+
'<option value="lv">Latvian</option>'+
'<option value="lt">Lithuanian</option>'+
Ред 361 ⟶ 475:
'<option value="ms">Malay</option>'+
'<option value="mt">Maltese</option>'+
'<option value="mi">Maori</option>'+
'<option value="mr">Marathi</option>'+
'<option value="mn">Mongolian</option>'+
'<option value="ne">Nepali</option>'+
'<option value="no">Norwegian</option>'+
'<option value="fa">Persian</option>'+
'<option value="pl">Polish</option>'+
'<option value="pt">Portuguese</option>'+
'<option value="pa">Punjabi</option>'+
'<option value="ro">Romanian</option>'+
'<option value="ru">Russian</option>'+
Ред 371 ⟶ 490:
'<option value="sl">Slovenian</option>'+
'<option value="es">Spanish</option>'+
'<option value="so">Somali</option>'+
'<option value="sw">Swahili</option>'+
'<option value="sv">Swedish</option>'+
'<option value="ta">Tamil</option>' +
'<option value="te">Telugu</option>' +
'<option value="th">Thai</option>'+
'<option value="tr">Turkish</option>'+
'<option value="uk">Ukrainian</option>'+
'<option value="ur">Urdu</option>'+
'<option value="vi">Vietnamese</option>'+
'<option value="cy">Welsh</option>'+
'<option value="yi">Yiddish</option>'; +
'<option value="yo">Yoruba</option>'+
'<option value="zu">Zulu</option>'
;
 
var SCTranslateableLanguages = [
Ред 384 ⟶ 510:
'sq',
'ar',
'hy',
'az',
'eu',
'be',
'bg',
'bn',
'bs',
'ca',
'zh-CNceb',
'zh-TW',
'zh-CN',
'hr',
'cs',
Ред 394 ⟶ 526:
'nl',
'en',
'eo',
'et',
'tl',
Ред 399 ⟶ 532:
'fr',
'gl',
'ka',
'de',
'el',
'gu',
'ht',
'iw',
'hi',
'hmn',
'hu',
'is',
Ред 410 ⟶ 546:
'it',
'ja',
'jv',
'kn',
'km',
'ko',
'lo',
'la',
'lv',
'lt',
Ред 415 ⟶ 557:
'ms',
'mt',
'mr',
'no',
'fa',
Ред 427 ⟶ 570:
'sw',
'sv',
'ta',
'te',
'th',
'tr',
'uk',
'ur',
'vi',
'cy',
'yi'];,
'ha',
'ig',
'mi',
'mn',
'ne',
'pa',
'so',
'yo',
'zu'
];
 
function SCMakeGoogleLanguages()
Ред 508 ⟶ 664:
var olddefaultlang = SCLanguageDefaultTo;
var bSameAsContent = false;
if(typeof wgContentLanguage != "undefined" && wgContentLanguagecontentLang == language2digits)
bSameAsContent = true;
if(!b2digitsLangNotSupported && !bSameAsContent)
Ред 584 ⟶ 740:
'onMouseover="javascript:SCdonthide=true;" ' +
'>';
if(SCbIsIE11)
{
SClanguageprompt1 =
'<small class="SCxTranslation"><a ' + 'href="javascript:SCSettings();" ' +
'onMouseover="javascript:SCdonthide=true;" ' +
'onMousedown="javascript:SCdonthide=true;" ' +
'>';
}
 
var SClanguageprompt2 =
Ред 684 ⟶ 848:
}
 
 
 
var SCbIsSafari = false;
Ред 741 ⟶ 907:
if(version1 >= 4)
SCbIsFirefox35 = true;
}
SCbIsIE11 = false;
if(navigator.appVersion.match(/rv:([0-9][0-9])\./i))
{
var version1 = new Number(RegExp.$1);
if(version1 >= 11)
{
 
SCbIsFirefox35=false;
SCbIsSafari=false;
SCbIsChrome=false;
SCbIsOperal11=false;
SCbIsIE9 = true;
SCbIsIE = false;
SCbIsFirefox35Like=true;
SCbIsMozilla = true;
SCbIsIE11 = true;
}
}
 
Ред 801 ⟶ 985:
{
SCShiftKey = true;
}
else
Ред 1.117 ⟶ 1.302:
if(SCwindows >= SCMaxwindows)
return;
 
Ред 1.145 ⟶ 1.331:
if(SCbIsIE && children.length > SCTooManyTextElements*2)
return;
 
for(i=0;i<children.length;i++)
Ред 1.156 ⟶ 1.343:
}
}
// if there are too many text elements to parse just return
Ред 1.163 ⟶ 1.351:
return;
}
if(!(SCbIsIE||SCbIsOpera||SCbIsPre4Safari) && window.getSelection)
{
Ред 1.174 ⟶ 1.362:
SelectionAnchorNode = userSelection.anchorNode;
SelectionAnchorOffset = userSelection.anchorOffset;
 
for(i=0;i<children.length;i++)
{
Ред 1.183 ⟶ 1.371:
*/
if(!SCbIsIE11 && userSelection.containsNode(children[i],true))
{
SCselectionarray[i] = new Array();
SCselectionstart[i] = -1;
SCselectionend[i] = -1;
SCAreWordsInSelection(userSelection,SCselectionarray[i],
children[i],i);
SCselection[i] = false;
}
else
{
SCselectionarray[i] = new Array();
SCselection[i] = false;
Ред 1.215 ⟶ 1.407:
}
*/
for(i=0;i<children.length;i++)
{
Ред 1.271 ⟶ 1.464:
SCbIsWordInSelection = false;
var words;
if(SCLanguageDefaultFrom.match(/ja|zh/i))
Ред 1.965 ⟶ 2.159:
var ob = document.getElementById(id);
//alert(ob.innerHTML)
if(SCbIsOpera && !ob && 1==0)
alert("ob not found");
if(SCbIsOpera && 1==0)
Ред 1.983 ⟶ 2.177:
if(ob && ob.parentNode)
ob.parentNode.removeChild(ob);
else if(1==0)
if(SCbIsOpera) alert("maybe no parentnode");
}
Ред 1.989 ⟶ 2.183:
catch(err)
{
if(SCbIsOpera && 1==0)
alert("unable to hide " + id);
}
Ред 2.158 ⟶ 2.352:
catch(err)
{
// alert("unable to set innerHTML");
}
}
Ред 2.247 ⟶ 2.441:
SCPersistantSave('Wikipedialanguage',SCWikipedialanguage);
var objWiki = document.getElementById(SCcurrentLink);
if(!objWiki && 1==0)
{
alert("objWiki failed: " + SCcurrentLink);
Ред 2.493 ⟶ 2.687:
if(!obj || (obj && !obj.options))
{
// alert("setLanguageDefault: bad object passed!" +
// id + ":" +
// key);
}
for(i=0;i<obj.options.length;i++)
Ред 2.732 ⟶ 2.926:
linktext += delimiter;
}
newhtml += '<br><a ' +;
'onMouseover="javascript:SCdonthide=true;" ' +
' href="javascript:SCdonthide=false;SChidespan(\'' + SCcurrentLink + '\');" ' +
'onclick=\'javascript:window.open(\"http://' +
SCWikipedialanguage.substring(0,2) + '.wikipedia.org?go=Go&search=' +
encodeURIComponent(linktext) + '\")\'>' + linktext + '</a>';
var linkobj = $( document.createElement('a') );
linkobj.attr({
href: 'javascript:SCdonthide=false;SChidespan(\'' + SCcurrentLink + '\');',
onMouseover: "javascript:SCdonthide=true;",
onclick: 'javascript:window.open(\"http://' + SCWikipedialanguage.substring(0, 2) + '.wikipedia.org?go=Go&search=' + encodeURIComponent(linktext) + '\")'
});
linkobj.text( linktext );
newhtml += linkobj.wrap('<div></div>')[0].outerHTML;
 
}
newhtml +='<br><a href="javascript:SCdonthide=false;SChidespan(' + '\'' + SCcurrentLink +'\')"><small>Close Window</small></a></span>';
Ред 3.217 ⟶ 3.415:
 
// var insertstring = SClabel + '|' + SCtext + '|' +
var insertstring = SClanguageprompt1 + '-> ' + SCGetGoogleLanguage(SCtranslateTo) + SClanguageprompt2 + SCgooglereference2 + SClabel + SCgooglereference3;
var insertstring =
var respDiv = $( '<div class="SCxText"></div>' );
SClanguageprompt1 + '-> ' + SCGetGoogleLanguage(SCtranslateTo) + SClanguageprompt2 +
var respText = ((response.data) ? (pretranslatedword + response.data.translations[0].translatedText) : response.error.message);
SCgooglereference2 +
respDiv.text( respText );
SClabel + SCgooglereference3 +
insertstring += respDiv.wrap('<div></div>')[0].outerHTML;
'<div class="SCxText">' +
insertstring += '<div><br>' + SCgooglereference4 + SCgooglereference1 + SCgoogletranslate + SCgooglereference1a + ((numofwords > 1) ? SCnextsentencestr : "") + '</div>';
((response.data)?
(pretranslatedword +
response.data.translations[0].translatedText
)
:response.error.message) + nbspstr +'</div>' +
'<div><br>' +
SCgooglereference4 +
SCgooglereference1 +
SCgoogletranslate +
SCgooglereference1a +
((numofwords>1)?
SCnextsentencestr:"")
+ '</div>'
;
SCInsertTranslation(SClabel,SCtext,insertstring);
Ред 3.428 ⟶ 3.612:
}
// SCMakeGoogleLanguages();
mw.util.addPortletLink('p-cactions',"javascript:SCSettings()", title, "ca-TransPopsId", SCstrChangeOptions, "");
}
);
Ред 3.568 ⟶ 3.752:
if(++loopcounter > loopbreak)
{
//alert("loop break set");
break;
}
Ред 3.577 ⟶ 3.761:
window.getSelection().addRange(SCffrange);
} catch(err){
// alert("failure1");
}