Content deleted Content added
Manishearth (talk | contribs) No edit summary |
maintenance: more info Uncaught ReferenceError: getInnerText is not defined |
||
(8 intermediate revisions by 4 users not shown) | |||
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]]
var SidebarTrans = {};
//The list of google translate languages
SidebarTrans.googlangs = "Afrikaans,Albanian,Arabic,Armenian,Azerbaijani,Basque,Belarusian,Bulgarian,Catalan,Chinese,Croatian,Czech,Danish,Dutch,English,Estonian,Filipino,Finnish,French,Galician,Georgian,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,Urdu,Vietnamese,Welsh,Yiddish"
SidebarTrans.langsArray = SidebarTrans.googlangs.split(",");
// run by addOnloadHook
SidebarTrans.init = function() {
if ( !document.getElementById('p-lang') ) return;
SidebarTrans.languageReplace();
SidebarTrans.addTranslate();
}
// Add (t) link to Google Translate
SidebarTrans.addTranslate = function() {
var LangNodes=document.getElementById('p-lang').getElementsByTagName('li');
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 = a.textContent;
if(SidebarTrans.googleSupported(lname)) {
return ("<a href=\"http://translate.google.com/translate?hl=en&sl=auto&tl=en&u=" + a.href +
"\" title=\"Translate " + lname + " to English\" ><b>(t)</b></a>");
} else {
return ("<a href=\"http://translate.google.com/translate?hl=en&sl=auto&tl=en&u=" + a.href +
}
}
// Checks if the language is supported by Google Translate
SidebarTrans.googleSupported = function(lname) {
for( var i=0;i<SidebarTrans.langsArray.length;i++){
if(lname.indexOf(SidebarTrans.langsArray[i])!=-1){
return true;
}
}
return false;
}
//This is a utility, made by User:Tra, modified by User:Manishearth to power this script:
/////////////////////////////////////////////////////////////////////////
// Translates the 'in other languages' list in the sidebar to English. //
Line 58 ⟶ 59:
// (bug fix by Voice_of_All) //
/////////////////////////////////////////////////////////////////////////
SidebarTrans.languageReplace = function() {
var LangNodes=document.getElementById('p-lang').getElementsByTagName('li');
for( var x = 0; x < LangNodes.length; x++ ) {
var a = LangNodes[x].getElementsByTagName('a')[0];
if(a) {
a.title="Original language name: " + a.textContent;
a.textContent = SidebarTrans.localtoEnglish( a.textContent );
}
}
}
SidebarTrans.localtoEnglish = function(localname) {
switch (localname) {
Line 353 ⟶ 351:
}
$(SidebarTrans.init)
|