MediaWiki:Gadget-WikiTrans.js

Notu:Post publikigo forviŝu la kaŝmemoron de via foliumilo por vidi la ŝanĝojn.

  • Firefox / Safari: Premu majuskligan klavon klakante Reŝarĝi, aŭ premu aŭ Stir-F5Stir-R (⌘-R kun Makintoŝo)
  • Google Chrome: Premu Stir-majuskligklavon-R (⌘-Majuskligklavo-R kun Makintoŝo)
  • Interreta Esplorilo / Edge: Premu Stir klakante Refreŝu, aŭ premu Stir-F5
  • Opera: Premu Stir-F5.
/*  _____________________________________________________________________________
 * |                                                                             |
 * |                 === AVERTO: KOMUNIGATA ALDONAĴ-DOSIERO ===                  |
 * |            Ŝanĝoj en tiu ĉi paĝo povas influi multajn uzantojn.             |
 * |  Bonvolu anticipe diskuti ŝanĝojn en la diskutpaĝo aŭ ĉe [[VP:Aldonaĵoj]].  |
 * |_____________________________________________________________________________|
 *
 * Versio 0.9.4 de 2013-05-07 el http://marek.ikso.net/wikitrans/wikitrans.js
 * Interfaco por provlegado de maŝintradukitaj artikoloj, vidu http://eo.wikipedia.org/wiki/P:WT
 * Atentu: La aldonaĵo funkcias nur kun la etoso "Vektoro".
 */

var wktr = {}; // por konservi la variablojn rilatajn al la parto de Vikipedio
var gt_document = {}; // por konservi la variablojn redonatajn post vokoj per API al la parto de WikiTrans
var wktr_portletnomoj = new Array('p-namespaces', 'p-variants', 'p-views', 'p-cactions'); // ĉiuj prilaborendaj portletoj

// var tradukparo = 'eng2epo'; // testita tradukmotoro
var tradukparo = 'eng2qax'; // testata tradukmotoro

/*
function __wta_helper(a, q, f) {
	if (!q) {
		return null;
	}
	if (typeof(q) !== 'object') {
		q = {
			lang: 'epo',
			query: q
		};
	}
	q.a = a;
	$.ajax({
		type: 'GET',
		url: 'http://wikitrans.net/api/',
		data: q,
		success: f,
		dataType: 'jsonp'
	});
}

function wta_search(q, f) {
	__wta_helper('search', q, f);
}

function wta_exists(q, f) {
	__wta_helper('exists', q, f);
}
*/

function gt_update(gt_document_nova) { // WikiTrans embedded API's callback function
  gt_document = {}; // TODO: is it better to do a replace or a union?
  for(ero in gt_document_nova) gt_document[ero] = gt_document_nova[ero];
  }

function gt_error(errorarray) {
  alert('WikiTrans error: '+errorarray);
  }

function gt_pollable() {
  if(typeof(wktr.pollcount) == 'undefined') wktr.pollcount = 1; else wktr.pollcount++;
  window.setTimeout(function() { wktreditor_poll(); }, 10000);
  }

function gt_started() { // WikiTrans embedded API's callback function
  stariguRedaktofenestron();
  // TODO: ia malkashuRegilojn() necesas ankaŭ ĉi tie
  }

function gt_paused() { // WikiTrans embedded API's callback function
  redaktofenestro = document.getElementById('wpTextbox1');
  redaktofenestro.readOnly = false;
  redaktofenestro.value = gt_document.data;
  skribuSesionEnLaFormularon();

  // TODO: temporary for debugging purposes
  if(wktr['breakpreview']) {
    redaktofenestro.style.display = 'block';
    redaktofenestro.style.visibility = 'visible';
    return;
    }

  lanchuAntauvidon();
  }

function gt_resumed() { // WikiTrans embedded API's callback function
  wktr_kunfandu({'titolo_en' : gt_document.extra.title_source});
  stariguRedaktofenestron();
  permesuRedaktadon();
  // TODO: ia malkashuRegilojn() necesas ankaŭ ĉi tie
  }

function gt_finished() { // WikiTrans embedded API's callback function
  redaktofenestro = document.getElementById('wpTextbox1');
  redaktofenestro.readOnly = false;
  redaktofenestro.value = gt_document.data;
  skribuResumonEnLaFormularon();
  lanchuKonservon();
  }

function wktreditor_start(title_eo, title_en, username) { // interaction with Tino's embedded editor API
  // this function should start a new edit session and prepare the editor window
  // it should call back (by including it as the last line of the output JavaScript code) the sesioStarigita() function
  // it should set the wktr.sesio variable to the ID of the newly created edit session, by means of wktr_kunfandu(JSON)

  mw.loader.load('http://gramtrans.com/editor/receiver.php?pair='+tradukparo+'&domain=none&embed=1&wp_project_source=en&wp_title_source='+encodeURIComponent(title_en)+'&wp_project_target=eo&wp_title_target='+encodeURIComponent(title_eo)+'&wp_username='+encodeURIComponent(username));
  }

function wktreditor_pause() { // interaction with Tino's embedded editor API
  // this function should save any unsaved data from the editor to the server, since the user has asked a preview to be shown
  // it should call back (by including it as the last line of the output JavaScript code) the redaktadoPauzita() function
  // it should set the wktr.redaktoteksto to the wikisyntax produced by the editor, by means of wktr_kunfandu(JSON)
  mw.loader.load('http://gramtrans.com/editor/embed.php?u='+gt_document.uniqid+'&a=pause&fmt=mw');
  }

function wktreditor_resume(sessionid) { // interaction with Tino's embedded editor API
  // this function should resume an earlier edit session and prepare the editor window
  // it should call back (by including it as the last line of the output JavaScript code) the sesioRestarigita() function
  // it should set the wktr.titolo_en to the name of the original English article (as provided while creating the edit session), by means of wktr_kunfandu(JSON)
  mw.loader.load('http://gramtrans.com/editor/embed.php?u='+sessionid+'&a=resume&fmt=mw');
  }

function wktreditor_finish() { // interaction with Tino's embedded editor API
  // this function should save any unsaved data from the editor to the server and terminate the session, since the user has asked for the article to be submitted to Wikipedia
  // it should call back (by including it as the last line of the output JavaScript code) the redaktadoFinita() function
  // it should set the wktr.redaktoteksto to the wikisyntax produced by the editor, by means of wktr_kunfandu(JSON)
  mw.loader.load('http://gramtrans.com/editor/embed.php?u='+gt_document.uniqid+'&a=finish&fmt=mw');
  }

function wktreditor_poll() { // interaction with Tino's embedded editor aPI
  mw.loader.load(hazardiguURLn('http://gramtrans.com/editor/embed.php?u='+gt_document.uniqid+'&a=poll&fmt=mw'));
  }

function wktr_kunfandu(wktr_nova) {
  for(ero in wktr_nova) wktr[ero] = wktr_nova[ero];
  }

function anstatauiguSpacojnPerSubstrekoj(kunspacaTeksto) {
  re = / /g;
  return kunspacaTeksto.replace(re, '_');
  }

function hazardiguURLn(nehazardaURL) {
  hazardo = Math.floor(Math.random() * 1000000000);
  if(nehazardaURL.indexOf('?') == -1) return nehazardaURL + '?random=' + hazardo;
  else return nehazardaURL + '&random=' + hazardo;
  }

function petuParametronElURL(parametro) {
  re = new RegExp("[?&]" + parametro + "=([^&$]*)", "i");
  offset = window.location.search.search(re);
  if(offset == -1) return null;
  return decodeURIComponent(RegExp.$1);
  }

/* nuntempe neutila
function petuParametronElFormularo(parametro, formularo) {
  if((root = document.getElementById(formularo)) == null) return null;
  if((node = root[parametro]) == null) return null;
  return node.getAttribute('value');
  }
*/

function aldonuKlasnomon(elemento, klasnomo) {
  if ( (' ' + elemento.className + ' ').indexOf(' '+klasnomo+' ') == -1 ) {
    elemento.className = elemento.className + (elemento.className.length?' ':'') + klasnomo;
    }
  }

function petuSesionElLaReviziilo() { // TODO: tiu ĉi funkcio ŝajne ne plu estos necesa
  //reviziilokadro = window.frames['wktrreviziilo'];
  //reviziilokadroURL = reviziilokadro.location;
  reviziilokadro = document.getElementById('wktrreviziilo');
  reviziilokadroURL = prompt('Simple konfirmu!', reviziilokadro.contentWindow.location);  
  wktr_kunfandu({'sesio' : reviziilokadroURL.substr(reviziilokadroURL.indexOf('?u=')+3)});
  }

function lanchuKonservon() {
  if(mw.config.get('wgUserName') == 'WikitransJS' && mw.config.get('wgNamespaceNumber') != 2) {
    alert('Eraro: Tiu ĉi testa versio ne konservas artikolojn en la ĉefan nomspacon. Uzu anstataŭe Uzanto:WikitransJS/Artikolnomo kaj konservu tion.');
    return;
    }
  konservobutono = document.getElementById('wpSave');
  konservobutono.setAttribute('type', 'submit');
  konservobutono.removeAttribute('onClick');
  konservobutono.click();
  }

function lanchuAntauvidon() {
  antauvidobutono = document.getElementById('wpPreview');
  antauvidobutono.setAttribute('type', 'submit');
  antauvidobutono.removeAttribute('onClick');
  antauvidobutono.click();
  }

function skribuResumonEnLaFormularon() {
  resumokampo = document.getElementById('wpSummary');
  resumokampo.setAttribute('value', 'Reviziita traduko el [[P:WT|WikiTrans]] ('+gt_document.uniqid+') laŭ versio '+gt_document.extra.revision+' de [['+gt_document.extra.project_source+':'+gt_document.extra.title_source+']]');
  }

function leguSesionElLaFormularo() {
  gt_document.uniqid = null;
  resumokampo = document.getElementById('wpSummary');
  resumoteksto = resumokampo.getAttribute('value');
  if(resumoteksto.substr(0, 'wktrsesio='.length) != 'wktrsesio=') return;
  gt_document.uniqid = resumoteksto.substr('wktrsesio='.length);
  }

function skribuSesionEnLaFormularon() {
  resumokampo = document.getElementById('wpSummary');
  resumokampo.setAttribute('value', 'wktrsesio=' + gt_document.uniqid);
  }

/* tiu ĉi kodo ne funkcias, ĉar la Vikipedio post prilaboro de la redaktoformularo ne redonas niajn kaŝitajn tekstokampojn en la nova redaktoformularo
function aldonuSesiajnVariablojnEnLaFormularon() {
  aldonendajVariabloj = {'wktren' : wktr.titolo_en, 'wktrsesio' : wktr.sesio };
  formularkorpo = document.getElementById('editform');
  for(variablonomo in aldonendajVariabloj) {
    variablaNodo = document.createElement('input');
    variablaNodo.setAttribute('type', 'hidden');
    variablaNodo.setAttribute('name', variablonomo);
    variablaNodo.setAttribute('value', aldonendajVariabloj[variablonomo]);
    formularkorpo.appendChild(variablaNodo);
    }
  }
*/

function permesuRedaktadon() {
  redaktotitolo = document.getElementById('firstHeading');
  redaktotitolo.textContent = 'Reviziado de ' + wktr.titolo + ' laŭ ' + wktr.titolo_en; // TODO: HTML-protekto?
  // varbfono.style.visibility = 'hidden';
  // varbfono.style.display = 'none';
  redaktofenestro.style.display = 'none';
  reviziilofenestro.style.display = 'block';
  }

function stariguRedaktofenestron() {
  reviziilofenestro = document.createElement('iframe');
  reviziilofenestro.setAttribute('id', 'wktrreviziilo');
  reviziilofenestro.setAttribute('name', 'wktrreviziilo');
  reviziilofenestro.setAttribute('onload', 'permesuRedaktadon();');
  reviziilofenestro.setAttribute('width', '100%');
  reviziilofenestro.setAttribute('height', wktr.alto);
  reviziilofenestro.style.display = 'none';
  redaktofenestro = document.getElementById('wpTextbox1');
  gepatraNodo = redaktofenestro.parentNode;
  gepatraNodo.insertBefore(reviziilofenestro, redaktofenestro);
  reviziilofenestro.setAttribute('src', 'http://gramtrans.com/editor/edit.php?u='+gt_document.uniqid+'&embed=1');
  }

function malpermesuRedaktadon() {
  //redaktoilaro = document.getElementById('wikiEditor-ui-toolbar');
  //if(redaktoilaro) redaktoilaro.style.display = 'none'; else alert(redaktoilaro);

  // before 2012:
  //wgWikiEditorEnabledModules.toolbar = false;
  //wgWikiEditorPreferences.toolbar.enable = 0;
  //wgWikiEditorPreferences.toolbar.dialogs = 0;
  // as of 2012:
  if(ilaro2 = document.getElementById('wikiEditor-ui-toolbar')) ilaro2.style.display = 'none';
  
  if(ilaro = document.getElementById('toolbar')) ilaro.style.display = 'none';

  redaktofenestro = document.getElementById('wpTextbox1');
  wktr.largho = redaktofenestro.clientWidth;
  wktr.alto = redaktofenestro.clientHeight;
  redaktofenestro.style.visibility = 'hidden';
  redaktofenestro.readOnly = true;

  antauvidobutono = document.getElementById('wpPreview');
  antauvidobutono.setAttribute('type', 'button');
  antauvidobutono.setAttribute('onClick', 'wktreditor_pause();');
  konservobutono = document.getElementById('wpSave');
  konservobutono.setAttribute('type', 'button');
  konservobutono.setAttribute('onClick', 'wktreditor_finish();');
  shanghojbutono = document.getElementById('wpDiff');
  shanghojbutono.style.display = 'none';

  resumokampo = document.getElementById('wpSummary');
  resumokampo.setAttribute('type', 'hidden');

  resumoetikedo = document.getElementById('wpSummaryLabel');
  if(resumoetikedo) resumoetikedo.style.display = 'none';
  if(document.getElementsByClassName) {
    resumoantaumontro_array = document.getElementsByClassName('mw-summary-preview');
    if(resumoantaumontro_array.length == 1) resumoantaumontro_array[0].style.display = 'none';
    }

  if(document.getElementsByClassName) {
    subajRedaktiloj_array = document.getElementsByClassName('mw-editTools');
    if(subajRedaktiloj_array.length == 1) subajRedaktiloj_array[0].style.display = 'none';
    }
  }

function puriguArtikolkorpon() {
  purigenda = document.getElementById('bodyContent');
  if(purigenda.hasChildNodes()) {
    while(purigenda.childNodes.length) {
      purigenda.removeChild(purigenda.firstChild);
      }
    }
  }

function restariguSesion() {
  atendiguRevizianton();
  malpermesuRedaktadon();
  wktreditor_resume(gt_document.uniqid);
  }

function stariguSesion() {
  atendiguRevizianton();
  malpermesuRedaktadon();
  wktreditor_start(wktr.titolo, wktr.titolo_en, mw.config.get('wgUserName'));
  }

function komencuMananRedaktadon() {
  window.location.assign('http://eo.wikipedia.org/w/index.php?title='+encodeURIComponent(anstatauiguSpacojnPerSubstrekoj(wktr.titolo))+'&action=edit');
  }

function komencuReviziadonLauOriginalaTitolo() {
  wktr.titolo_en = prompt('Enskribu la nomon de la originala anglalingva artikolo laŭ kiu vi volas revizii:');
  if(wktr.titolo_en == '') {
    alert('Vi enskribis malplenan titolon - ni nuligas vian elekton.');
    return;
    }
  wktr.kandidatoj = new Array({"titolo_en": wktr.titolo_en});
  wktr.traduko_kandidato = 0;
  komencuReviziadon();
  }

function komencuReviziadon() {
  if(!confirm('Atentu! Tiu ĉi aldonaĵo estas ankoraŭ testata. Uzante ĝin, vi transponas plenan respondecon pri ĉiuj rezultoj de viaj faroj. Precipe bonvolu ne jam uzi ĝin por efektiva reviziado de artikoloj, krom kadre de testado kontrolata de ĝiaj kreantoj. Ĉu vi akceptas kaj volas pluiri?')) return;
  if(mw.config.get('wgUserName') == 'WikitransJS') wktr.titolo = 'Uzanto:WikitransJS/'+wktr.titolo;
  window.location.assign('http://eo.wikipedia.org/w/index.php?title='+encodeURIComponent(anstatauiguSpacojnPerSubstrekoj(wktr.titolo))+'&action=edit&wktren='+encodeURIComponent(wktr.kandidatoj[wktr.traduko_kandidato].titolo_en));
  // alert('Reviziado ankoraŭ ne funkcias.\n\nRicevita peto revizii:\nAngla artikolo: '+wktr.kandidatoj[wktr.traduko_kandidato].titolo_en+'\nEsperanta traduko: '+wktr.kandidatoj[wktr.traduko_kandidato].titolo_eo+'\nKreota artikolo: '+wktr.titolo);
  }

function malfermuOriginalanArtikolon() {
  window.open('http://en.wikipedia.org/wiki/'+encodeURIComponent(anstatauiguSpacojnPerSubstrekoj(wktr.kandidatoj[wktr.traduko_kandidato].titolo_en)));
  }

function malfermuVivanTradukon() {
  window.open('http://gramtrans.com/gt/url/result-style.php?pair='+tradukparo+'&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2F'+encodeURIComponent(encodeURIComponent(anstatauiguSpacojnPerSubstrekoj(wktr.kandidatoj[wktr.traduko_kandidato].titolo_en))));
  }

function neniuTradukoTrovitaEnWikiTrans() {
  if(confirm('Bedaŭrinde, neniu kandidata artikolo troviĝis por tiu titolo. Ĉu vi volas enskribi rekte la titolon de angla artikolo kaj komenci ĝin revizii?')) {
    komencuReviziadonLauOriginalaTitolo();
    }
  else {
    petuKandidatojnPorAlternativaTitolo();
    }
  }

function montruTradukonElWikiTrans() {
  puriguArtikolkorpon();
  artikolkorpo = document.getElementById('bodyContent');
  artikolkorpo.innerHTML = wktr.traduko_html;
  malkashuRegilojn();
  }

function montruAtendopeton() {
  atendaTekstonodo = document.createTextNode('Bonvolu atendi, elŝutiĝas datumoj el WikiTrans...');
  atendaNodo = document.createElement('div');
  atendaNodo.appendChild(atendaTekstonodo);
  artikolkorpo = document.getElementById('bodyContent');
  artikolkorpo.appendChild(atendaNodo);
  }

function malfermuRetejonDeWikiTrans() {
  window.open('http://epo.wikitrans.net/');
  }

function malkashuRegilojn() {
  mw.util.addPortletLink('p-namespaces', 'javascript:malfermuRetejonDeWikiTrans();', 'Maŝintraduko', 'p-wktr-mashintraduko', 'Tio ĉi estas nereviziita maŝintraduko de la anglalingva vikipedia artikolo "'+wktr.kandidatoj[wktr.traduko_kandidato].titolo_en+'" farita de WikiTrans.');
  aldonuKlasnomon(document.getElementById('p-wktr-mashintraduko'), 'selected');
  mw.util.addPortletLink('p-namespaces', 'javascript:malfermuOriginalanArtikolon();', 'Originalo', 'p-wktr-originalo', 'Malfermi la anglalingvan originalon en nova fenestro.');
  for(i=0; i<wktr.kandidatoj.length; i++) {
    mw.util.addPortletLink('p-cactions', 'javascript:petuTradukonElWikiTrans('+i+');', wktr.kandidatoj[i].titolo_en, 'p-wktr-kandidatoj-'+i, wktr.kandidatoj[i].titolo_eo);
    if(i == wktr.traduko_kandidato) aldonuKlasnomon(document.getElementById('p-wktr-kandidatoj-'+i), 'selected');
    }
  mw.util.addPortletLink('p-views', 'javascript:komencuMananRedaktadon();', 'Krei mane', 'p-wktr-krei', 'Komenci manan redaktadon de la artikolo per la kutima redaktofenestro.');
  mw.util.addPortletLink('p-views', 'javascript:malfermuVivanTradukon();', 'Legi', 'p-wktr-legi', 'Montri vivan tradukon el WikiTrans en nova fenestro.');
  aldonuKlasnomon(document.getElementById('p-wktr-legi'), 'selected');
  mw.util.addPortletLink('p-views', 'javascript:komencuReviziadon();', 'Revizii', 'p-wktr-revizii', wktr.kandidatoj[wktr.traduko_kandidato].titolo_en+' ('+wktr.kandidatoj[wktr.traduko_kandidato].titolo_eo+') kiel '+wktr.titolo);
  //mw.util.addPortletLink('p-views', 'javascript:petuTradukonElWikiTrans(0);', 'Elekti', 'p-wktr-elekti', 'Falmenuo sur la sago dekstre malfermas liston de alternativaj kandidatoj por fontoartikolo. Klako sur tiu ĉi butono revenigas al la unua kandidato.');
  mw.util.addPortletLink('p-views', 'javascript:petuKandidatojnPorAlternativaTitolo();', 'Elekti', 'p-wktr-elekti', 'Falmenuo sur la sago dekstre malfermas liston de alternativaj kandidatoj por fontoartikolo. Per klako sur tiu ĉi butono eblas listigi kandidatojn por alternativa titolo.');
  if(wktr.traduko_kandidato == 0) aldonuKlasnomon(document.getElementById('p-wktr-elekti'), 'selected');
  }

function malpleniguPortleton(portletnomo) {
  root = document.getElementById(portletnomo);
  node = root.getElementsByTagName('ul')[0];
  while(node.childNodes.length) node.removeChild(node.firstChild);
  aldonuKlasnomon(root, 'emptyPortlet');
  }

function kashuRegilojn() {
  wktr_portletnomoj.map(malpleniguPortleton);
  }

function atendiguUzanton() {
  puriguArtikolkorpon();
  montruAtendopeton();
  kashuRegilojn();
  }

function atendiguRevizianton() {
  /*
  varbfono = document.createElement('div');
  varbfono.setAttribute('id', 'wktrvarbfono');
  varbfono.setAttribute('name', 'wktrvarbfono');
  varbfono.style.width = wktr.largho+'px';
  varbfono.style.height = wktr.alto+'px';
  varbfono.style.backgroundImage = "url('http://wikitrans.net/images/gramtrans_logo_gt.png')";
  redaktofenestro = document.getElementById('wpTextbox1');
  gepatraNodo = redaktofenestro.parentNode;
  gepatraNodo.insertBefore(varbfono, gepatraNodo.firstChild);
  */
  redaktofono = document.getElementById('wpTextbox1').parentNode;
  aldonuKlasnomon(redaktofono, 'atendofono');
  }

function petuTradukonElWikiTrans(numero) {
  atendiguUzanton();
  mw.loader.load(hazardiguURLn('http://marek.ikso.net/wikitrans/wikitrans.php?a='+wktr.kandidatoj[wktr.traduko_kandidato=numero].adreso));
  }

function petuKandidatojnPorAlternativaTitolo() {
  wktr.alternativaTitolo = prompt('Enskribu alternativan titolon, kies kandidato(j)n vi volas aperigi. Atentu, ke tio ne ŝanĝos la nomon de la eventuale redaktota artikolo.', wktr.titolo);
  petuKandidatojnKajTradukonElWikiTrans();
  }

function petuKandidatojnKajTradukonElWikiTrans() {
  atendiguUzanton();
  mw.loader.load('http://marek.ikso.net/wikitrans/wikitrans.php?q='+encodeURIComponent(wktr.alternativaTitolo ? wktr.alternativaTitolo : wktr.titolo));
  // wta_search('Elefanto', kandidatojEl
  }

function redaktadoKomencata() {
  if((wktr.titolo_en = petuParametronElURL('wktren')) == null) return; // ne okazas reviziado, sed normala redaktado
  wktr.titolo = mw.config.get('wgTitle');
  stariguSesion();
  }

function redaktadoDaurigata() {
  leguSesionElLaFormularo();
  if(gt_document.uniqid == null) return; // ne okazas reviziado, sed normala redaktado
  wktr.titolo = mw.config.get('wgTitle');
  restariguSesion();
  }

function artikoloNeEkzistas() {
  if(mw.config.get('wgUserName') == 'WikitransJS') mw.config.get('wgTitle') = mw.config.get('wgTitle').replace('WikitransJS/', '');
  wktr.titolo = mw.config.get('wgTitle');
  petuKandidatojnKajTradukonElWikiTrans();
  }

function serchoNesukcesinta() {
  if((serchkampo = document.getElementById('searchText')) == null) serchkampo = document.getElementById('powerSearchText');
  if(serchkampo != null) wktr.titolo = serchkampo.value; else return;
  document.getElementById('firstHeading').textContent = wktr.titolo;
  petuKandidatojnKajTradukonElWikiTrans();
  }

if(mw.config.get('wgUserName')) { // nur por ensalutintaj vikipediistoj
  if(mw.config.get('wgAction') == 'view') { // legado de artikolo
    if(wgIsArticle && mw.config.get('wgNamespaceNumber')==0 && wgArticleId == 0) { // provo legi artikolon kiu ne ekzistas
      $(artikoloNeEkzistas);
      }
    else if(mw.config.get('wgNamespaceNumber')==-1 && mw.config.get('wgCanonicalSpecialPageName')=='Search') { // serĉo de artikolo sen rekta trafo
      $(serchoNesukcesinta);
      }
    }
  else if(mw.config.get('wgAction') == 'edit') { // redaktado de artikolo
    // TODO: plu kontroli nomspacojn ankaŭ ĉi tie
    // TODO: kontroli, ĉu temas pri redaktado de nova, ankoraŭ neekzistanta artikolo!, alie ne permesi
    $(redaktadoKomencata);
    }
  else if(mw.config.get('wgAction') == 'submit') { // pluredaktado de artikolo
    // TODO: plu kontroli nomspacojn ankaŭ ĉi tie
    // TODO: kontroli, ĉu temas pri redaktado de nova, ankoraŭ neekzistanta artikolo!, alie ne permesi
    $(redaktadoDaurigata);
    }
  }