No edit summary |
No edit summary |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
var failsafe = 0; | |||
function create_translation_dropdown () | |||
{ | |||
var translation_bar = document.getElementById('translation_bar'); | |||
if (typeof translation_bar == 'undefined' && failsafe < 5) | |||
{ | |||
setTimeout("create_translation_dropdown();", 250); | |||
failsafe++; | |||
return; | |||
} | |||
var avail_languages = translation_bar.getElementsByTagName('a'); | |||
var | if (typeof avail_languages == 'undefined' && failsafe < 10) | ||
{ | |||
setTimeout("create_translation_dropdown();", 250); | |||
failsafe++; | |||
return; | |||
} | |||
// Get the <td> where the list is | |||
var tds = translation_bar.getElementsByTagName('td'); | |||
var | for (var i = 0; i < tds.length; i++) | ||
var | if (tds[i].className == 'mw-pt-languages-list') | ||
var | var list_position = tds[i]; | ||
var tSelect = document.createElement('select'); | |||
tSelect.onchange = function() { | |||
window.location = this.options[this.selectedIndex].value; | |||
}; | |||
var tSelectLang = document.createElement('option'); | |||
tSelectLang.value = window.location.href; | |||
tSelectLang.style = 'background: url(http://wiki.simplemachines.org/extensions/Translate/images/prog-5.png) rgba(0,0,0,0);'; | |||
tSelectLang.appendChild(document.createTextNode('Select your language')); | |||
tSelect.appendChild(tSelectLang); | |||
var tEnglish = document.createElement('option'); | |||
tEnglish.value = getEnglishPage(window.location.href); | |||
tEnglish.style = 'background: url(http://wiki.simplemachines.org/extensions/Translate/images/prog-5.png) rgba(0,0,0,0);'; | |||
tEnglish.appendChild(document.createTextNode('English')); | |||
tSelect.appendChild(tEnglish); | |||
var langs = avail_languages.length; | |||
for (var i = 0; i < langs; i++) | |||
{ | { | ||
var tOption = document.createElement('option'); | |||
tOption.value = avail_languages[0].href; | |||
if ( | var tImg = avail_languages[0].getElementsByTagName('img')[0]; | ||
if (tImg == undefined) | |||
continue; | |||
tOption.style = 'background: url(' + tImg.src + ') rgba(0,0,0,0);'; | |||
avail_languages[0].removeChild(tImg); | |||
if (avail_languages[0].innerHTML.replace(/^\s\s*/, '').replace(/\s\s*$/, '') != '') | |||
if ( | |||
{ | { | ||
tOption.appendChild(document.createTextNode(avail_languages[0].innerHTML)); | |||
tSelect.appendChild(tOption); | |||
} | } | ||
avail_languages[0].parentNode.removeChild(avail_languages[0]); | |||
} | |||
list_position.innerHTML = ''; | |||
list_position.appendChild(tSelect); | |||
} | |||
setTimeout("create_translation_dropdown();", 250); | |||
function getEnglishPage(aUrl) | |||
{ | |||
return aUrl.replace(aUrl.substr(aUrl.lastIndexOf('/')), ''); | |||
} | } |
Latest revision as of 08:54, 24 April 2013
var failsafe = 0; function create_translation_dropdown () { var translation_bar = document.getElementById('translation_bar'); if (typeof translation_bar == 'undefined' && failsafe < 5) { setTimeout("create_translation_dropdown();", 250); failsafe++; return; } var avail_languages = translation_bar.getElementsByTagName('a'); if (typeof avail_languages == 'undefined' && failsafe < 10) { setTimeout("create_translation_dropdown();", 250); failsafe++; return; } // Get the <td> where the list is var tds = translation_bar.getElementsByTagName('td'); for (var i = 0; i < tds.length; i++) if (tds[i].className == 'mw-pt-languages-list') var list_position = tds[i]; var tSelect = document.createElement('select'); tSelect.onchange = function() { window.location = this.options[this.selectedIndex].value; }; var tSelectLang = document.createElement('option'); tSelectLang.value = window.location.href; tSelectLang.style = 'background: url(http://wiki.simplemachines.org/extensions/Translate/images/prog-5.png) rgba(0,0,0,0);'; tSelectLang.appendChild(document.createTextNode('Select your language')); tSelect.appendChild(tSelectLang); var tEnglish = document.createElement('option'); tEnglish.value = getEnglishPage(window.location.href); tEnglish.style = 'background: url(http://wiki.simplemachines.org/extensions/Translate/images/prog-5.png) rgba(0,0,0,0);'; tEnglish.appendChild(document.createTextNode('English')); tSelect.appendChild(tEnglish); var langs = avail_languages.length; for (var i = 0; i < langs; i++) { var tOption = document.createElement('option'); tOption.value = avail_languages[0].href; var tImg = avail_languages[0].getElementsByTagName('img')[0]; if (tImg == undefined) continue; tOption.style = 'background: url(' + tImg.src + ') rgba(0,0,0,0);'; avail_languages[0].removeChild(tImg); if (avail_languages[0].innerHTML.replace(/^\s\s*/, '').replace(/\s\s*$/, '') != '') { tOption.appendChild(document.createTextNode(avail_languages[0].innerHTML)); tSelect.appendChild(tOption); } avail_languages[0].parentNode.removeChild(avail_languages[0]); } list_position.innerHTML = ''; list_position.appendChild(tSelect); } setTimeout("create_translation_dropdown();", 250); function getEnglishPage(aUrl) { return aUrl.replace(aUrl.substr(aUrl.lastIndexOf('/')), ''); }