No edit summary |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
var failsafe = 0; | |||
function create_translation_dropdown () | function create_translation_dropdown () | ||
{ | { | ||
var translation_bar = document.getElementById('translation_bar'); | 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 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 | // Get the <td> where the list is | ||
var tds = translation_bar.getElementsByTagName('td'); | var tds = translation_bar.getElementsByTagName('td'); | ||
Line 13: | Line 28: | ||
window.location = this.options[this.selectedIndex].value; | 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'); | var tEnglish = document.createElement('option'); | ||
tEnglish.value = window.location.href; | 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.style = 'background: url(http://wiki.simplemachines.org/extensions/Translate/images/prog-5.png) rgba(0,0,0,0);'; | ||
tEnglish.appendChild(document.createTextNode('English')); | tEnglish.appendChild(document.createTextNode('English')); | ||
Line 41: | Line 62: | ||
} | } | ||
setTimeout("create_translation_dropdown();", 250); | 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('/')), ''); }