Ir al contenido

Usuario:Ggenellina/autocompletarCitaIdioma.js

De Wikipedia, la enciclopedia libre

Nota: Después de guardar, debes refrescar la caché de tu navegador para ver los cambios. Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar. Firefox: mientras presionas Mayús pulsas el botón Actualizar, (o presiona Ctrl-Shift-R). Los usuarios de Google Chrome y Safari pueden simplemente pulsar el botón Recargar. Para más detalles e instrucciones acerca de otros exploradores, véase Ayuda:Cómo limpiar la caché.

/*****************************************************************************
 * autocompletarCitaIdioma.js
 *
 * Al usar el generador de plantillas de cita de la botonera,
 * añade una lista de idiomas comunes al input box de 'idioma'.
 *
 *
 * Copyright (C) 2013 Gabriel A. Genellina
 *
 * Por la presente se concede permiso, sin cargo, a cualquier persona
 * que obtenga una copia de este software y de los archivos de documentación
 * asociados (el "Software"), para utilizar el Software sin restricciones,
 * incluyendo sin limitación los derechos de usar, copiar, modificar, fusionar,
 * publicar, distribuir, sublicenciar, y/o vender copias del Software, y
 * para permitir a las personas a las que se les proporcione el Software a
 * hacer lo mismo, sujeto a las siguientes condiciones:
 *
 * El aviso de copyright anterior y este aviso de permiso deberán ser incluidas
 * en todas las copias o partes sustanciales del Software.
 *
 * EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA
 * O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIABILIDAD,
 * IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS
 * AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN,
 * DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UN LITIGIO, AGRAVIO O DE OTRO MODO,
 * QUE SURJA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRO TIPO DE ACCIONES EN
 * EL SOFTWARE.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 *****************************************************************************/

var autocompletarCitaIdioma = function() {

  if (typeof CiteTB == 'undefined')
    return;

  /*
  a falta de una estadística mundial sobre los idiomas más usados,
  esta lista se armó en base a todos los idiomas de las wikipedias con más
  de 100 artículos, ordenadas en forma descendente. Obtenida desde:
  http://wikistats.wmflabs.org/display.php?t=wp
  El código de idioma se convierte al nombre en español usando
  {{#language:codigo|en}}
  */
  var idiomas = ['inglés', 'neerlandés', 'alemán', 'sueco', 'francés', 'italiano', 'ruso', 'español',
                 'polaco', 'waray', 'japonés', 'cebuano', 'vietnamita', 'portugués', 'chino', 'ucraniano',
                 'catalán', 'noruego', 'persa', 'finés', 'indonesio', 'checo', 'coreano', 'árabe', 'húngaro',
                 'malayo', 'serbio', 'rumano', 'turco', 'minangkabau', 'kazajo', 'esperanto', 'eslovaco',
                 'danés', 'vasco', 'lituano', 'búlgaro', 'hebreo', 'croata', 'esloveno', 'uzbeko', 'estonio',
                 'volapük', 'nynorsk noruego', 'gallego', 'hindi', 'armenio', 'latín', 'serbocroata', 'azerí',
                 'griego', 'occitano', 'tailandés', 'georgiano', 'macedonio', 'newari', 'bielorruso', 'Piedmontese',
                 'tagalo', 'tamil', 'tártaro', 'telugu', 'galés', 'haitiano', 'letón', 'albanés', 'bosnio',
                 'bretón', 'javanés', 'malgache', 'luxemburgués', 'marathi', 'islandés', 'malayalam', 'bashkir',
                 'birmano', 'yoruba', 'afrikáans', 'Western Punjabi', 'aragonés', 'frisón occidental', 'lumbaart',
                 'tayiko', 'irlandés', 'bengalí', 'Cantonese', 'kirghiz', 'urdu', 'swahili', 'ido', 'nepalí',
                 'gujarati', 'Bishnupria Manipuri', 'siciliano', 'checheno', 'chuvash', 'bajo alemán', 'escocés',
                 'kurdo', 'asturiano', 'quechua', 'sundanés', 'Alemannisch', 'amárico', 'canarés', 'interlingua',
                 'buginés', 'napolitano', 'Samogitian', 'kurdo central', 'valón', 'Basa Banyumasan', 'mongol',
                 'gaélico escocés', 'Fiji Hindi', 'Egyptian Spoken Arabic', 'Mazanderani', 'Chinese (Min Nan)',
                 'yídish', 'vèneto', 'cingalés', 'sakha', 'sánscrito', 'náhuatl', 'Bavarian', 'tarandíne',
                 'osético', 'punjabí', 'pampanga', 'sorbio superior', 'feroés', 'sami septentrional', 'limburgués',
                 'maorí', 'ilocano', 'corso', 'Gan', 'frisón septentrional', 'tibetano', 'Gilaki', 'Rusyn',
                 'Bikol Central', 'Low Saxon (Netherlands)', 'oriya', 'Võro', 'Hill Mari', 'pastún', 'turcomano',
                 'West-Vlams', 'Mingrelian', 'gaélico manés', 'Zazaki', 'Zeeuws', 'jemer', 'komi', 'Eastern Mari',
                 'casubio', 'pangasinán', 'Veps', 'Hakka', 'divehi', 'somalí', 'Nouormand', 'retorrománico',
                 'Komi-Permyak', 'aimara', 'udmurt', 'Seeltersk', 'ladino', 'sardo', 'Wu', 'uigur',
                 'Classical Chinese', 'Ligure', 'friulano', 'maltés', 'pali', 'Emiliano-Romagnolo', 'Novial',
                 'bihari', 'asamés', 'kölsch', 'guaraní', 'Picard', 'córnico', 'Gagauz', 'inglés antiguo', 'acehnés',
                 'Silesian', 'navajo', 'Extremaduran', 'Franco-Provençal', 'interlingue', 'mirandés', 'lingala',
                 'shona', 'Pälzisch', 'lezgiano', 'karachay-balkar', 'hawaiano', 'tártaro de Crimea', 'kalmyk',
                 'Deitsch', 'sorbio inferior', 'kinyarwanda', 'cabila', 'tongano', 'erzya', 'arameo', 'groenlandés',
                 'Banjar', 'papiamento', 'kabardiano', 'laosiano', 'tok pisin', 'uolof', 'lojban', 'moksha',
                 'Chavacanode Zamboanga', 'avar', 'sranan tongo', 'tahitiano', 'kongo', 'abjasio', 'nauruano',
                 'tetún', 'igbo', 'Latgalian', 'sotho septentrional', 'zhuang', 'karakalpako', 'zulú', 'cheyene',
                 'Romani', 'eslavo eclesiástico', 'cherokee', 'setchwana', 'Min Dong Chinese', 'Aromanian', 'bislama',
                 'Norfuk / Pitkern', 'gótico', 'samoano', 'moldavo', 'bambara', 'hausa', 'inuktitut', 'siswati',
                 'sindhi', 'Pontic', 'kikuyu', 'tuviniano', 'kiroundi', 'ewe', 'oromo', 'akan', 'fiyiano', 'tigriña',
                 'tsonga', 'twi', 'cachemiro', 'fula', 'sango', 'venda', 'sesotho meridional', 'cree', 'dzongkha',
                 'ganda', 'xhosa', 'tumbuka', 'inupiaq', 'nyanja', 'chamorro'];
  var params = {
	source: function( request, response ) {
		var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i" );
		response( $.grep( idiomas, function( item ) {
			return matcher.test( item );
		}) );
	}
  };

  // no encontré ningún hook de donde colgarme así que
  // la unica opcion que me queda es patchear wikiEditor
  var oldWikiEditor = $('#wpTextbox1').wikiEditor;
  Object.getPrototypeOf($('#wpTextbox1')).wikiEditor = function () {
      var result = oldWikiEditor.apply(this, arguments);
      if (arguments[0]=='openDialog') {
        switch(arguments[1]) {
          case 'cite-dialog-Cita-web':
            $('#cite-Cita-web-idioma').autocomplete(params);
            break;
          case 'cite-dialog-Cita-noticia':
            $('#cite-Cita-noticia-idioma').autocomplete(params);
            break;
          case 'cite-dialog-Cita-libro':
            $('#cite-Cita-libro-idioma').autocomplete(params);
            break;
          case 'cite-dialog-Cita-publicación':
            $('#cite-Cita-publicación-idioma').autocomplete(params);
            break;
        }
      }
      return result;
  }
}

/* sólo si estamos en modo edit, y los módulos requeridos están disponibles */
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
  mw.loader.using( 'user.options', function () {
    if ( mw.user.options.get('usebetatoolbar') ) {
      mw.loader.using( ['ext.wikiEditor', 'jquery.ui'], function () {
        $(document).ready( autocompletarCitaIdioma );
      });
    }
  });
}