MediaWiki:Gadget-sidebartranslate.js

Tủ sách mở Wikibooks

Chú ý: Sau khi lưu trang, có thể bạn sẽ phải xóa bộ nhớ đệm của trình duyệt để xem các thay đổi.

  • Firefox / Safari: Nhấn giữ phím Shift trong khi nhấn Tải lại (Reload), hoặc nhấn tổ hợp Ctrl-F5 hay Ctrl-R (⌘R trên Mac)
  • Google Chrome: Nhấn tổ hợp Ctrl-Shift-R (⇧⌘R trên Mac)
  • Internet Explorer / Edge: Nhấn giữ phím Ctrl trong khi nhấn Làm tươi (Refresh), hoặc nhấn tổ hợp Ctrl-F5
  • Opera: Nhấn tổ hợp Ctrl-F5.
/*jshint undef:true */
/*global mw, jQuery, importScript */

//  _____________________________________________________________________________________
// |                                                                                     |
// |                    === WARNING: GLOBAL GADGET FILE ===                              |
// |                  Changes to this page affect many users.                            |
// | Please discuss changes on the [[Wiktionary:Grease Pit]] before editing.             |
// |_____________________________________________________________________________________|
//
// This script changes timestamps such as those in comments to be relative to the local time.

function languagereplace () {
  //Can be caused by delay in timing
  if(typeof(langcode2name) == 'undefined'){
    if(! document.callbacks_langcode ) 
      document.callbacks_langcode = {};
    document.callbacks_langcode['sidebartranslate'] = languagereplace;
    return false;
  }
function sortByLang(a, b) {
    var x = a.Lang.toLowerCase();
    var y = b.Lang.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function LangItem(Lang, className, href, innerHTML, title) {
    this.Lang = Lang;
    this.className = className;
    this.href = href;
    this.innerHTML = innerHTML;
    this.title = title;
}

   if (document.getElementById('p-lang')) {
      var LangNodes=document.getElementById('p-lang').getElementsByTagName('ul');
      if( LangNodes[ 0 ] ) {
         LangNodes = LangNodes[0].getElementsByTagName('li');
      }
      var myData = [];
      for( var x = 0; x < LangNodes.length; x++ ) {
         LangNodes[x].getElementsByTagName('a')[0].innerHTML = localtoEnglish(LangNodes[x].getElementsByTagName('a')[0].innerHTML);
         myData[myData.length++] = new LangItem(LangNodes[x].getElementsByTagName('a')[0].innerHTML, LangNodes[x].className, LangNodes[x].getElementsByTagName('a')[0].href, LangNodes[x].getElementsByTagName('a')[0].innerHTML, LangNodes[x].getElementsByTagName('a')[0].title);
         }
      
      myData.sort(sortByLang);
      
      for( var x = 0; x < myData.length; x++ ) {
         LangNodes[x].className = myData[x].className;
         LangNodes[x].getElementsByTagName('a')[0].href = myData[x].href;
         LangNodes[x].getElementsByTagName('a')[0].innerHTML = myData[x].innerHTML;
         LangNodes[x].getElementsByTagName('a')[0].title = myData[x].title;
         }
      }
   }

jQuery(document).ready(languagereplace);
 
function localtoEnglish(localname) {
	var lcode = FLname2code(localname);
	return ((typeof(lcode) == 'undefined') ? localname : langcode2name(lcode));
}