Content deleted Content added
Manishearth (talk | contribs) No edit summary |
cleanup for readability and global variable usage. add title to A and make it a tad more efficient. use helper functions such as getInnerText and changeText where appropriate |
||
Line 1:
// This script is by User:Manishearth, using a script by User:Tra with changes by User:TheDJ and User:Voice_of_All
// It adds little (t) links next to the languages which, when clicked, directly translated the page via Google translate
// I have made it primarily as a research tool, as one can get ten times the info on enwiki by going through the other language wikis
// Screenshot at [[:File:Sidebartrans.jpg]]
addOnloadHook(function() {▼
var SidebarTrans = {};
if (document.getElementById('p-lang')) {▼
var LangNodes=document.getElementById('p-lang').getElementsByTagName('ul')[0].getElementsByTagName('li');▼
SidebarTrans.langsArray = SidebarTrans.googlangs.split(",");
for( var x = 0; x < LangNodes.length; x++ ) {▼
// run by addOnloadHook
LangNodes[x].innerHTML=LangNodes[x].innerHTML + " " + mkLink(LangNodes[x].innerHTML,LangNodes[x].getElementsByTagName('a')[0].innerHTML);▼
SidebarTrans.init = function() {
SidebarTrans.languageReplace();
SidebarTrans.addTranslate();
}
// Add (t) link to Google Translate
SidebarTrans.addTranslate = function() {
▲ var LangNodes=document.getElementById('p-lang')
▲ for( var x = 0; x < LangNodes.length; x++ ) {
▲ LangNodes[x].innerHTML=LangNodes[x].innerHTML + " " + SidebarTrans.mkLink(LangNodes[x]
}
}
// Creates the (t) links
SidebarTrans.mkLink = function( li ) {
var a = li.getElementsByTagName('a')[0];
if(!a) return "";
var lname = getInnerText( a );
if(SidebarTrans.googleSupported(lname)) {
return ("<
"\" title=\"Translate " + lname + " to English\" ><b>(t)</b></a>");
} else {
return ("<
"\" title=\"Attemp to translate " + lname + " to English\" style=\"color: #FF8888;\" >(t)</a>");
}
}
function googleSupported(lname){▼
▲//The old google translate languages
//
▲var googlangs="Afrikaans,Albanian,Arabic,Belarusian,Bulgarian,Catalan,Chinese,Croatian,Czech,Danish,Dutch,English,Estonian,Filipino,Finnish,French,Galician,German,Greek,Haitian,Creole,Hebrew,Hindi,Hungarian,Icelandic,Indonesian,Irish,Italian,Japanese,Korean,Latvian,Lithuanian,Macedonian,Malay,Maltese,Norwegian,Persian,Polish,Portuguese,Romanian,Russian,Serbian,Slovak,Slovenian,Spanish,Swahili,Swedish,Thai,Turkish,Ukrainian,Vietnamese,Welsh,Yiddish"
for( var i=0;i<
return true;
}
}
return false;
}
▲//This is a utility, made by User:Tra, modified by me to power this script:
/////////////////////////////////////////////////////////////////////////
// Translates the 'in other languages' list in the sidebar to English. //
Line 62 ⟶ 59:
// (bug fix by Voice_of_All) //
/////////////////////////////////////////////////////////////////////////
SidebarTrans.languageReplace = function() {
var LangNodes=document.getElementById('p-lang')
for( var x = 0; x < LangNodes.length; x++ ) {▼
var a = LangNodes[x].getElementsByTagName('a')[0];
a.title="Original language name: " + getInnerText(a);
▲var LangNodes=document.getElementById('p-lang').getElementsByTagName('ul')[0].getElementsByTagName('li');
changeText( a, SidebarTrans.localtoEnglish( getInnerText(a) ));
▲for( var x = 0; x < LangNodes.length; x++ ) {
}
}
function localtoEnglish(localname) {▼
switch (localname) {
Line 357 ⟶ 349:
}
|