Utilisateur:Automatik/common.js

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.

Remarque: après avoir sauvegardé, vous devez vider le cache de votre navigateur pour que les changements prennent effet. Mozilla, cliquez sur Actualiser (ou ctrl-r). Internet Explorer / Opera: ctrl-f5. Safari: cmd-r. Konqueror ctrl-r.

// <nowiki>

// (Fonctionne : utilise l'ancre pour le code langue pour une section de langue plutôt que le nom de la langue)
// importScript('Utilisateur:Automatik/Ancres-titre.js');

// RTRC — [[m:User:Krinkle/Tools/Real-Time Recent Changes]]
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Krinkle/RTRC.js&action=raw&ctype=text/javascript');

if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
	importScript('Utilisateur:Automatik/sections.js');
}

//importScript('Utilisateur:Automatik/test.js');

//importScript('Utilisateur:Automatik/CreerNouveauMot.js');
//importStylesheet('MediaWiki:Gadget-CreerNouveauMot.css');

//importScript('Utilisateur:Automatik/translation editor.js');
//importStylesheet('MediaWiki:Gadget-translation editor.css');

//importScript('Utilisateur:ArséniureDeGallium/Gadget-ChercheDansSousCategories.js');
//importStylesheet('MediaWiki:Gadget-ChercheDansSousCategories.css');

//importScript('Utilisateur:Automatik/Gadget-CreerTrad.js');
//importScript('Utilisateur:Automatik/Gadget-RevertDiff.js');
//importScript('Utilisateur:Automatik/adddefinition.js');
//importScript('Mediawiki:Gadget-CommonWikt.js');
//importScript('Utilisateur:Automatik/test2.js');
//importScript('Utilisateur:Automatik/test3.js');
/*
importScript('Mediawiki:Gadget-Formatage/sections/liste.js');
importScript('Mediawiki:Gadget-Formatage/sections.js');
importScript('Mediawiki:Gadget-Formatage/typographie.js');
importScript('Mediawiki:Gadget-Formatage.js');
importStylesheet('Mediawiki:Gadget-Formatage.css');
*/

CrNoMo_Ebauche = false; // enlever le bandeau d'ébauche par défaut pour le gadget Créer nouveau mot

/****************** SPECIAL CHARS ***************************************
// Adapté de //fr.wiktionary.org/w/index.php?title=MediaWiki:Gadget-specialchars.js&oldid=14473388
************************************************************************/
// hookage de la fonction, sauf sur les pages en JS ou CSS
// (ce gadget serait une nuisance sur de telles pages)
var wgTitle = mw.config.get('wgTitle');
var P3 = wgTitle.substring(wgTitle.length - 3);
var P4 = wgTitle.substring(wgTitle.length - 4);
var namespace = mw.config.get('wgNamespaceNumber');
 
//-----------------------------------------------------------------------
// remplacement des séquences de caractères
function SpecChar_Main() {
	var tb = document.getElementById("wpTextbox1");
	if ( !tb ) return;
	
	tb.onkeyup = function(e) {
		var key = (window.event) ? event.keyCode : e.keyCode;
		
		startPos = tb.selectionStart;
		endPos = tb.selectionEnd;
		if ( endPos==startPos && (key>=12 && key<=255) ) {
			
			var m = tb.value.substring(startPos-2, startPos);
			var m3 = tb.value.substring(startPos-3, startPos);
			var f = tb.value.substring(startPos);
			var todo = true;
			var i = 2;
			var retourne = -1;
			
			if ( m[1] == "'" ) {    //traitement de l'apostrophe
			 m = m[0] + "’";
			 if (m == "’’") m="''"; 
			 if (m == "'’") m="''"; 
			} else switch (m) { //traitement des séquences de 2 caractères
				case "$B":m="Bonjour {{subst:USERNAME}},\n\n";break;
				case "$à":m="À";break;
				case "$ç":m="Ç";break;
				case "$é":m="É";break;
				case "$è":m="È";break;
				case "$E":m=": {{ébauche-étym|fr}}";break;
				case "$h":m=":{{hors sujet}} — ~~~~";break;
				case "$m":m="{{subst:Merci IP|~~~~}}";break;
				case "$p":m="'''{{subst:PAGENAME}}''' {{pron||fr}" + "}\n";retourne=6;break;
				case "$r":m="ʁ";break;
				case "$R":m="=== {{S|références}} ===\n{{Références}}\n";break;
				case "$s":m="ſ";break;
				case "$t":m="{{trad-fin}}\n";break;
				case "$T":m="==== {{S|traductions}} ====\n{{trad-début}}\n{{trad-fin}}\n";break;
				case "$ù":m="Ù";break;
				case "$z":m="ʒ";break;
				//case "$-":m="– ";break;
				case "$_":m="— ";break;
				case "<<":m="« ";break;
				case ">>":m=" »";break;
				case "$,":m="‿";break;
				case "$:":m="ː";break;
				case "$(":m="{{trad-début|";break;
				case "$)":m="}}\n" + "{{trad-fin}}\n";break;
				case "$=":m="{{subst:Bienvenue}}\n~~~~";break;
				case "$$":m=" ~~~~";break;
				default:todo=false;
			}
			if (!todo) {     //traitement de des séquences de 3 caractères
				m=m3; todo=true; i=3;
				switch (m) {
					case "$ae":m="æ";break;
					case "$ai":m="ɛ";break;
					case "$AE":m="Æ";break;
					case "$an":m="ɑ̃";break;
					case "$au":m="ɔ";break;
					case "$bc":m=":{{Bot en cours|Botomatik|Automatik}} ~~" + "~~" + "~"; break;
					case "$bf":m=":{{Bot fait|Botomatik|Automatik}} ~~" + "~~" + "~"; break;
					case "$ch":m="ʃ";break;
					case "$cn":m="<code>\u003Cnowiki>\u003C/nowiki></code>"; retourne = 16; break;
					case "$en":m="* {{T|en}} : {{trad+|en|}}"; retourne = 2; break;
					case "$et":m="=== {{S|étymologie}} ===\n: {{ébauche-étym|fr}}\n\n"; break;
					case "$eu":m="ə";break;
					case "$fr":m="== {" + "{langue|fr}} ==\n"; break;
					case "$gn":m="ɲ";break;
					case "$gu":m="ɡ";break;
					case "$hn":m=":{{hors sujet|noredirect=1}} — ~~~~"; break;
					case "$in":m="ɛ̃";break;
					case "$ng":m="ŋ";break;
					case "$oe":m="œ";break;
					case "$OE":m="Œ";break;
				 	case "$oo":m="ø";break;
					case "$on":m="ɔ̃";break;
					case "$no":m="=== {" + "{S|nom|fr}} ===\n{" + "{fr-rég||p=}}\n"; retourne=3; break;
					case "$Sc":m="=== {{S|références}} ===\n* {{R:Chouraqui}}"; break;
					case "$SC":m="=== {{S|références}} ===\n<references>\n{{R|Chouraqui}}\n</references>"; break;
					case "$un":m="œ̃";break;
					case "$ui":m="ɥ";break;
					case "...":m="…";break;
					default:todo=false;
				}	
			}
			
			if (todo) {
				var textScroll = tb.scrollTop;
				h = tb.value.substring(0, startPos-i);
				tb.value = h+m+f;
				tb.selectionStart = startPos-i + m.length;
				tb.selectionEnd = tb.selectionStart;
				if (retourne != -1) {
					tb.selectionStart = tb.selectionStart - retourne;
					tb.selectionEnd = tb.selectionEnd - retourne;
				}
				tb.scrollTop = textScroll;
			}
		}
	};
}
if ( (P3 !== ".js") && (P4 !== ".css") || (P3 === ".js" || P4 === ".css") && namespace%2 === 1 ) {
	$(SpecChar_Main);
}

/**********************************************************************************************************
Aide au travail de maintenance qui consiste à ajouter des liens vers des discussions dans les pdd
**********************************************************************************************************/

/* Ajout automatique d’une chaîne de caractères en début de page, lorsqu’on clique sur modifier
if ( mw.config.get('wgNamespaceNumber') == 1 ) {
     var tb = document.getElementById('wpTextbox1');
     if (tb) {
         tb.value = "{{subst:"+"-discus-}}\n* " + tb.value;
     }
}
*/

/* Remplissage automatique du résumé d'édition
if ( mw.config.get('wgNamespaceNumber') == 10 ) {
	var $tb = $('#wpTextbox1');
	if ($tb.get(0)) { // On est en mode édition
		if ( mw.config.get('wgTitle').indexOf('Documentation') == -1 ) {
			$('#wpSummary').val("Documentation en sous-page");
			$('#editform').submit(function() {
				$tb.val( $tb.val().replace(/\n\|1=/, "\n | 1     = ") );
	  		} );
		} else {
			$tb.val( $tb.val().replace("\n{{-voir-}}", "\n== Voir aussi ==") );
		}
	}
}
*/

/***********************************************/
/* Page comportant le {{nokbbi}}               */
/***********************************************/
/*function TransformeEnNokbbi() {
  if (document.getElementById('transformeEnNokbbi'))
    document.body.className = 'ns-nokbbi' ;
}
addOnloadHook(TransformeEnNokbbi) ;
*/

/***************************************/
/* Modifications mineures automatiques */
/***************************************/
(function (mw, $) {
  if ( document.getElementById( 'wpTextbox1' ) ) {
    $(formatage);
    //$(bienvenutage);
  }
  
  function formatage() {
    if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
      var tb = document.getElementById('wpTextbox1');
      // gestion des espaces et des sauts de ligne
      tb.value = tb.value.replace(/(\n[#:\*]+)([^ \xA0#:\*;][^|])/g, "$1 $2");
      tb.value = tb.value.replace(/[\t ]+\n/g, "\n");
      tb.value = tb.value.replace(/du verbe'' \[\[([^\]]+)\]\]\.?\n/g, "de'' [[$1]].\n");
      tb.value = tb.value.replace(/\{\{trad-fin\}\}\n\{\{trad-début/g, "{{trad-fin}}\n\n{{trad-début");
      tb.value = tb.value.replace(/\{\{T\|([^}]+?)\}\}:/g, "{{T|$1}} :");
      tb.value = tb.value.replace( /([^}\n])\n+==/g, "$1\n\n==" );
      tb.value = tb.value.replace( /==[\r\n]+/g, "==\n" );
      tb.value = tb.value.replace( /({{ébauche\|[^|}]+}})\n{2,}/g, "$1\n" );
      tb.value = tb.value.replace( /<!--  précisez/g, "<!-- précisez" );
  
      // normalisation de la syntaxe
      var regexAutresProjetsWP = new RegExp("\\n{{Autres projets\\n?\\|w=" + mw.config.get('wgPageName') + "}}", "gi");
      tb.value = tb.value.replace(regexAutresProjetsWP, "\n* {{WP}}");
      tb.value = tb.value.replace(/\n{{Autres projets\n?\| *w *= *([^}=\n]+)\n? *}}/g, "\n* {{WP|$1}}");
      tb.value = tb.value.replace(/{{WP\|([^}]+?\|)?3=/g, "{{WP|$1lang=");
      var regexCodePron = new RegExp("({{S\\|[^}|]+?\\|([^}]+?)(?:\\|[^}]*?)?}} ?===\\n(?:.*?\\n)?'''.+?''' *?){{pron\\|([^=}|]+)}}", "g");
      tb.value = tb.value.replace(regexCodePron, "$1{{pron|$3|$2}}");
      tb.value = tb.value.replace(/^# *(?:'')?(féminin singulier|masculin singulier|féminin pluriel|masculin pluriel|pluriel) (?:de(?: ?'')? |d’|d')'''\[\[([^\]]+?)\]\]'''\.?$/mig, "# ''$1 de'' [[$2]].");
      tb.value = tb.value.replace(/border:1px solid #AAAACC;margin-left:0.5em;margin-bottom:0.5em;text-align:center;font/g, "border:1px solid #AAAACC; margin-left:0.5em; margin-bottom:0.5em; text-align:center; font");
      tb.value = tb.value.replace(/\*{{pron\|([^}]+?)}}/g, "{{pron-recons|$1}}");
      tb.value = tb.value.replace(/({{trad[+-]{0,2}\|[^}]+)\|R=/g, "$1|tr="); // R= → tr=
      //tb.value = tb.value.replace("{{-trad-}}\n\n", "");
      //tb.value = tb.value.replace("{{-trad-}}\n* Selon Chouraqui:\n\n", "");
  
      var tbs = tb.value.split("\n");
  
      // Affiche un warning quand un code langue dans modèle:T est différent du code dans modèle:trad
      var erreur_trad = "";
      for ( var i = 0; i < tbs.length; i++ ) {
        if (/\{\{T\|[^|}]+?\}\} *?:? *?\{\{trad(?:\+|-|--)\|[^}|]+?\|/.test(tbs[i])
           && tbs[i].match(/\{\{T\|([^|}]+?)\}\} *?:? *?\{\{trad(?:\+|-|--)\|\1\|/) === null ) {
             erreur_trad += tbs[i] + "<br>";
          }
      }
      if (erreur_trad !== "") {
          $('#Editnotice-0').after('<div style="font-weight: bold; color: darkOrange;">' + erreur_trad + '</div>');
      }
      
      // trad Chouraqui = définition
      if ( tb.value.indexOf("{langue|hbo}") != -1 && tb.value.indexOf("{langue|he}") == -1 ) {
        if ( /# (\[\[([^|\]]+?)\|\2\]\])\.\n\n==== \{\{S\|traductions\}\} ====\n\* Selon Chouraqui: \[\[\2\]\]/gi.test(tb) ) {
          tb.value = tb.value.replace(/# (\[\[([^|\]]+?)\|\2\]\]\.)\n\n==== \{\{S\|traductions\}\}\n\* Selon Chouraqui: \[\[\2\]\]/gi, "# $1");
          if ( tb.indexOf("=== {{S|références}} ===") === -1 ) {
            if ( /\n\[\[[^:]+?:[^\]]+?\]\]/.test(tb) ) { // si interwiki dans la page
              tb.value = tb.value.replace(/\n(\[\[[^:]+?:[^\]]+?\]\])/, "\n=== {{S|références}} ===\n* {{R:Chouraqui}}\n\n$1");
            } else { // pas d'interwiki
              tb.value = tb.value.replace(/([\s\S]*)/, "$1\n=== {{S|références}} ===\n* {{R:Chouraqui}}");
            }
          } else {
            tb.value = tb.value.replace("=== {{S|références}} ===", "=== {{S|références}} ===\n* {{R:Chouraqui}}");
          }
        }
      }
    }
  }
  
  // Diminution du nombre d'interventions manuelles lors du bienvenutage
  function bienvenutage() {
    var texte_bienvenutage = "{{subst:Bienvenue}}~~~~";
  
    if ( /.*?Discussion_utilisateur:.*?&action=edit&redlink=1$/.test(window.location.href) ) {
        $('#wpTextbox1').val(texte_bienvenutage);
        $('#wpSummary').val('Bienvenue !');
    }
  }
})(mw, jQuery);

// Bandeau gris pour les conventions internationales
$('#Conventions_internationales').parent().addClass('Conventions_internationales');

// </nowiki>