Viqui-RegEx. Si teniu propostes per l'aplicació, poseu-les aquí.
HTML
Javascript (amb jQuery)
Aquesta secció informarà de les novetats de l'aplicació Codi
S'inclou el codi utilitzat en la versió v1.0.HTML
Codi:
<input type="hidden" class="app-identifier" value="Viqui_RegEx"/>
<h2>Viqui-RegEx</h2><br/>
<p>L'aplicació <b>Viqui-RegEx</b> tradueix al català les plantilles més típiques de la Viquipèdia.</p>
<p>Insereix la plantilla a traduir a continuació:</p>
<textarea id="template_textbox"></textarea><br/><br/>
<select name="selected_id" id="filter_lang_a">
<option value="en">Anglès</option>
<option value="es">Espanyol</option>
</select>
<select name="selected_id" id="template_type">
<option value="ref">Referències</option>
<option value="file">Fitxers</option>
</select>
<input class="button2" type="submit" name="template_translate" value="Aplicar" tabindex="5"/><br/><br/>
<p class="lang_a_handler"></p>
<p class="lang_b_handler"></p><br/>
<h4>Registre de canvis</h4>
<p>
08-02-2021 - v1.0 - Creació de l'aplicació, amb opcions EN i ES per referències i fitxers
</p>
<h4>Enllaços relacionats</h4>
<p>Viquipèdia - Informació de plantilles:
<a class="wiki" href="https://ca.wikipedia.org/wiki/Plantilla:Ref-llibre">{{ref-llibre}}</a>,
<a class="wiki" href="https://ca.wikipedia.org/wiki/Plantilla:Ref-web">{{ref-web}}</a>
<a class="wiki" href="https://ca.wikipedia.org/wiki/Plantilla:Ref-publicació">{{ref-publicació}}</a> i
<a class="wiki" href="https://ca.wikipedia.org/wiki/Plantilla:Ref-notícia">{{ref-notícia}}</a><br/>
Viquipèdia - <a class="external_link" href="https://ca.wikipedia.org/wiki/Ajuda:%C3%9As_d%27imatges">Ajuda: Ús d'imatges</a>
(+ <a class="external_link" href="https://es.wikipedia.org/wiki/Ayuda:Tutorial_(im%C3%A1genes)">versió en castellà</a>)<br/>
</p>
<p>Aquesta aplicació ha estat creada per l'usuari <b><a class="external_link" href="https://ca.wikipedia.org/w/index.php?title=Usuari:Wecoc">Wecoc</a></b> mitjançant la plataforma <i>Forumotion</i>.</p>
<h4>Altres aplicacions</h4>
<p><a class="external_link" href="https://citation-template-filling.toolforge.org/cgi-bin/index.cgi">Wikipedia template filling</a><br/>
<a class="external_link" href="https://reftag.appspot.com/">Wikipedia citation tool for Google Books</a><br/>
<a class="external_link" href="https://reftag.appspot.com/doiweb.py">DOI Wikipedia reference generator</a><br/>
</p>
Javascript (amb jQuery)
Codi:
$(document).ready(function(){
var app = document.querySelector('.app-identifier');
if (app == null) { return; }
if (app.value !== "Viqui_RegEx") { return; }
// Set button functions
var translate_button = document.querySelector('.button2[name="template_translate"]');
translate_button.onclick = function(){ template_translate() };
var translate_regex = {};
// Set regular expressions (EN)
translate_regex["en"] = {};
translate_regex["en"]["ref"] = [
// Template names
[/cite(\s)+book/, "ref-llibre", "template_name"],
[/cite(\s)+journal/, "ref-publicació", "template_name"],
[/cite(\s)+web/, "ref-web", "template_name"],
[/cite(\s)+news/, "ref-notícia", "template_name"],
[/cite(\s)+thesis/, "ref-tesi", "template_name"],
[/cite(\s)+encyclopedia/, "ref-llibre", "template_name"],
// Authors
[/\|(\s)*last(\s)*=/, "|cognom=", "template_parameter"],
[/\|(\s)*last1(\s)*=/, "|cognom1=", "template_parameter"],
[/\|(\s)*last2(\s)*=/, "|cognom2=", "template_parameter"],
[/\|(\s)*last3(\s)*=/, "|cognom3=", "template_parameter"],
[/\|(\s)*last4(\s)*=/, "|cognom4=", "template_parameter"],
[/\|(\s)*last5(\s)*=/, "|cognom5=", "template_parameter"],
[/\|(\s)*first(\s)*=/, "|nom=", "template_parameter"],
[/\|(\s)*first1(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*first2(\s)*=/, "|nom2=", "template_parameter"],
[/\|(\s)*first3(\s)*=/, "|nom3=", "template_parameter"],
[/\|(\s)*first4(\s)*=/, "|nom4=", "template_parameter"],
[/\|(\s)*first5(\s)*=/, "|nom5=", "template_parameter"],
[/\|(\s)*author[-]?link(\s)*=/, "|enllaçautor=", "template_parameter"],
[/\|(\s)*author[-]?link1(\s)*=/, "|enllaçautor1=", "template_parameter"],
[/\|(\s)*author[-]?link2(\s)*=/, "|enllaçautor2=", "template_parameter"],
[/\|(\s)*author[-]?link3(\s)*=/, "|enllaçautor3=", "template_parameter"],
[/\|(\s)*author[-]?link4(\s)*=/, "|enllaçautor4=", "template_parameter"],
[/\|(\s)*author[-]?link5(\s)*=/, "|enllaçautor5=", "template_parameter"],
[/\|(\s)*author(\s)*=/, "|autor=", "template_parameter"],
[/\|(\s)*author1(\s)*=/, "|cognom1=", "template_parameter"],
[/\|(\s)*author2(\s)*=/, "|cognom2=", "template_parameter"],
[/\|(\s)*author3(\s)*=/, "|cognom3=", "template_parameter"],
[/\|(\s)*author4(\s)*=/, "|cognom4=", "template_parameter"],
[/\|(\s)*author5(\s)*=/, "|cognom5=", "template_parameter"],
[/\|(\s)*author[-]?last(\s)*=/, "|cognom=", "template_parameter"],
[/\|(\s)*author[-]?last1(\s)*=/, "|cognom1=", "template_parameter"],
[/\|(\s)*author[-]?last1(\s)*=/, "|cognom2=", "template_parameter"],
[/\|(\s)*author[-]?last1(\s)*=/, "|cognom3=", "template_parameter"],
[/\|(\s)*author[-]?last1(\s)*=/, "|cognom4=", "template_parameter"],
[/\|(\s)*author[-]?last1(\s)*=/, "|cognom5=", "template_parameter"],
[/\|(\s)*surname(\s)*=/, "|cognom=", "template_parameter"],
[/\|(\s)*surname1(\s)*=/, "|cognom1=", "template_parameter"],
[/\|(\s)*surname2(\s)*=/, "|cognom2=", "template_parameter"],
[/\|(\s)*surname3(\s)*=/, "|cognom3=", "template_parameter"],
[/\|(\s)*surname4(\s)*=/, "|cognom4=", "template_parameter"],
[/\|(\s)*surname5(\s)*=/, "|cognom5=", "template_parameter"],
[/\|(\s)*given(\s)*=/, "|nom=", "template_parameter"],
[/\|(\s)*given1(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*given2(\s)*=/, "|nom2=", "template_parameter"],
[/\|(\s)*given3(\s)*=/, "|nom3=", "template_parameter"],
[/\|(\s)*given4(\s)*=/, "|nom4=", "template_parameter"],
[/\|(\s)*given5(\s)*=/, "|nom5=", "template_parameter"],
[/\|(\s)*author[-]?first(\s)*=/, "|nom=", "template_parameter"],
[/\|(\s)*author[-]?first1(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*author[-]?first2(\s)*=/, "|nom2=", "template_parameter"],
[/\|(\s)*author[-]?first3(\s)*=/, "|nom3=", "template_parameter"],
[/\|(\s)*author[-]?first4(\s)*=/, "|nom4=", "template_parameter"],
[/\|(\s)*author[-]?first5(\s)*=/, "|nom5=", "template_parameter"],
[/\|(\s)*authors[-]?first5(\s)*=/, "|coautors=", "template_parameter"],
[/\|(\s)*vauthors[-]?first5(\s)*=/, "|coautors=", "template_parameter"],
[/\|(\s)*others(\s)*=/, "|coautors=", "template_parameter"],
[/\|(\s)*translator(\s)*=/, "|traductor=", "template_parameter"],
// Title
[/\|(\s)*title(\s)*=/, "|títol=", "template_parameter"],
[/\|(\s)*encyclop[a]?edia(\s)*=/, "|títol=", "template_parameter"],
[/\|(\s)*dictionary*=/, "|títol=", "template_parameter"],
[/\|(\s)*chapter(\s)*=/, "|capítol=", "template_parameter"],
[/\|(\s)*chapter-url(\s)*=/, "|urlcapítol=", "template_parameter"],
[/\|(\s)*language(\s)*=/, "|llengua=", "template_parameter"],
[/\|(\s)*lang(\s)*=/, "|llengua=", "template_parameter"],
// Date
[/\|(\s)*date(\s)*=/, "|data=", "template_parameter"],
[/\|(\s)*year(\s)*=/, "|any=", "template_parameter"],
[/\|(\s)*month(\s)*=/, "|mes=", "template_parameter"],
[/\|(\s)*orig[-]?year(\s)*=/, "|primera_edició=", "template_parameter"],
// Publisher
[/\|(\s)*publisher(\s)*=/, "|editorial=", "template_parameter"],
[/\|(\s)*place(\s)*=/, "|lloc=", "template_parameter"],
[/\|(\s)*location(\s)*=/, "|lloc=", "template_parameter"],
[/\|(\s)*agency(\s)*=/, "|agència=", "template_parameter"],
[/\|(\s)*university(\s)*=/, "|universitat=", "template_parameter"],
// Edition
[/\|(\s)*journal(\s)*=/, "|publicació=", "template_parameter"],
[/\|(\s)*work(\s)*=/, "|obra=", "template_parameter"],
[/\|(\s)*edition(\s)*=/, "|edició=", "template_parameter"],
[/\|(\s)*series(\s)*=/, "|col·lecció=", "template_parameter"],
[/\|(\s)*version(\s)*=/, "|col·lecció=", "template_parameter"],
[/\|(\s)*volume(\s)*=/, "|volum=", "template_parameter"],
[/\|(\s)*issue(\s)*=/, "|exemplar=", "template_parameter"],
[/\|(\s)*type(\s)*=/, "|tipus=", "template_parameter"],
[/\|(\s)*degree(\s)*=/, "|tipus=", "template_parameter"],
// In-source locations
[/\|(\s)*page(\s)*=/, "|pàgina=", "template_parameter"],
[/\|(\s)*pages(\s)*=/, "|pàgines=", "template_parameter"],
[/\|(\s)*at(\s)*=/, "|pàgines=", "template_parameter"],
[/\|(\s)*quote(\s)*=/, "|citació=", "template_parameter"],
// URL
[/\|(\s)*access[-]?date(\s)*=/, "|consulta=", "template_parameter"],
[/\|(\s)*archive[-]?url(\s)*=/, "|arxiuurl=", "template_parameter"],
[/\|(\s)*archive[-]?date(\s)*=/, "|arxiudata=", "template_parameter"],
// Months
[/january/, "gener", "template_date"],
[/february/, "febrer", "template_date"],
[/march/, "març", "template_date"],
[/april/, "abril", "template_date"],
[/may/, "maig", "template_date"],
[/june/, "juny", "template_date"],
[/july/, "juliol", "template_date"],
[/august/, "agost", "template_date"],
[/september/, "setembre", "template_date"],
[/october/, "octubre", "template_date"],
[/november/, "novembre", "template_date"],
[/december/, "desembre", "template_date"]
];
// File
translate_regex["en"]["file"] = [
['File:', 'Fitxer:', "template_name"],
['Image:', 'Imatge:', "template_name"],
[/thumb[nail]?/, 'miniatura', "template_parameter"],
['frameless', 'sensemarc', "template_parameter"],
[/frame[d]?/, 'marc', "template_parameter"],
['border', 'vora', "template_parameter"],
['link=', 'enllaç=', "template_parameter"],
['right', 'dreta', "template_parameter"],
['left', 'esquerra', "template_parameter"],
['center', 'centre', "template_parameter"]
];
// Set regular expressions (ES)
translate_regex["es"] = {};
translate_regex["es"]["ref"] = [
// Template names
[/cita(\s)+libro/, "ref-llibre", "template_name"],
[/cita(\s)+web/, "ref-web", "template_name"],
[/cita(\s)+publicación/, "ref-publicació", "template_name"],
[/cita(\s)+noticia/, "ref-notícia", "template_name"],
[/cita(\s)+tesis/, "ref-tesi", "template_name"],
// Authors
[/\|(\s)*apellido(\s)*=/, "|cognom=", "template_parameter"],
[/\|(\s)*apellido1(\s)*=/, "|cognom1=", "template_parameter"],
[/\|(\s)*apellido2(\s)*=/, "|cognom2=", "template_parameter"],
[/\|(\s)*apellido3(\s)*=/, "|cognom3=", "template_parameter"],
[/\|(\s)*apellido4(\s)*=/, "|cognom4=", "template_parameter"],
[/\|(\s)*apellido5(\s)*=/, "|cognom5=", "template_parameter"],
[/\|(\s)*nombre(\s)*=/, "|nom=", "template_parameter"],
[/\|(\s)*nombre1(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*nombre2(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*nombre3(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*nombre4(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*nombre5(\s)*=/, "|nom1=", "template_parameter"],
[/\|(\s)*enlaceautor(\s)*=/, "|enllaçautor=", "template_parameter"],
[/\|(\s)*enlaceautor1(\s)*=/, "|enllaçautor1=", "template_parameter"],
[/\|(\s)*enlaceautor2(\s)*=/, "|enllaçautor2=", "template_parameter"],
[/\|(\s)*enlaceautor3(\s)*=/, "|enllaçautor3=", "template_parameter"],
[/\|(\s)*enlaceautor4(\s)*=/, "|enllaçautor4=", "template_parameter"],
[/\|(\s)*enlaceautor5(\s)*=/, "|enllaçautor5=", "template_parameter"],
[/\|(\s)*primero(\s)*=/, "|nom=", "template_parameter"],
[/\|(\s)*segundo(\s)*=/, "|cognom=", "template_parameter"],
[/\|(\s)*apellidos(\s)*=/, "|cognoms=", "template_parameter"],
[/\|(\s)*coautores(\s)*=/, "|coautors=", "template_parameter"],
[/\|(\s)*otros(\s)*=/, "|coautors=", "template_parameter"],
// Title
[/\|(\s)*título(\s)*=/, "|títol=", "template_parameter"],
[/\|(\s)*formato(\s)*=/, "|format=", "template_parameter"],
// Date
[/\|(\s)*año(\s)*=/, "|any=", "template_parameter"],
[/\|(\s)*fecha(\s)*=/, "|data=", "template_parameter"],
[/\|(\s)*fechaacceso(\s)*=/, "|consulta=", "template_parameter"],
[/\|(\s)*accessdate(\s)*=/, "|consulta=", "template_parameter"],
[/\|(\s)*fecha-publicación(\s)*=/, "|primera_edició=", "template_parameter"],
[/\|(\s)*año-original(\s)*=/, "|primera_edició=", "template_parameter"],
// Publisher
[/\|(\s)*publicación(\s)*=/, "|publicació=", "template_parameter"],
[/\|(\s)*ubicación(\s)*=/, "|lloc=", "template_parameter"],
[/\|(\s)*lugar(\s)*=/, "|lloc=", "template_parameter"],
[/\|(\s)*idioma(\s)*=/, "|llengua=", "template_parameter"],
[/\|(\s)*lengua(\s)*=/, "|llengua=", "template_parameter"],
[/\|(\s)*lenguaje(\s)*=/, "|llengua=", "template_parameter"],
[/\|(\s)*agencia(\s)*=/, "|agència=", "template_parameter"],
[/\|(\s)*periódico(\s)*=/, "|agència=", "template_parameter"],
// Edition
[/\|(\s)*edición(\s)*=/, "|edició=", "template_parameter"],
[/\|(\s)*volumen(\s)*=/, "|volum=", "template_parameter"],
[/\|(\s)*tipo(\s)*=/, "|tipus=", "template_parameter"],
[/\|(\s)*capítulo(\s)*=/, "|capítol=", "template_parameter"],
// In-source locations
[/\|(\s)*página(\s)*=/, "|pàgina=", "template_parameter"],
[/\|(\s)*páginas(\s)*=/, "|pàgines=", "template_parameter"],
// URL
[/\|(\s)*sitioweb(\s)*=/, "|obra=", "template_parameter"],
[/\|(\s)*work(\s)*=/, "|obra=", "template_parameter"],
[/\|(\s)*website(\s)*=/, "|obra=", "template_parameter"],
[/\|(\s)*urlarchivo(\s)*=/, "|arxiuurl=", "template_parameter"],
[/\|(\s)*fechaarchivo(\s)*=/, "|arxiudata=", "template_parameter"],
[/\|(\s)*archive[-]?url(\s)*=/, "|arxiuurl=", "template_parameter"],
[/\|(\s)*archive[-]?date(\s)*=/, "|arxiudata=", "template_parameter"],
// Months
[/enero/, "gener", "template_date"],
[/febrero/, "febrer", "template_date"],
[/marzo/, "març", "template_date"],
[/mayo/, "maig", "template_date"],
[/junio/, "juny", "template_date"],
[/julio/, "juliol", "template_date"],
[/agosto/, "agost", "template_date"],
[/septiembre/, "setembre", "template_date"],
[/noviembre/, "novembre", "template_date"],
[/diciembre/, "desembre", "template_date"]
];
// File
translate_regex["es"]["file"] = [
['Archivo:', 'Fitxer:', "template_name"],
['Imagen:', 'Imatge:', "template_name"],
['sinmarco', 'sensemarc', "template_parameter"],
['marco', 'marc', "template_parameter"],
[/frame[d]?/, 'marc', "template_parameter"],
[/borde[r]?/, 'vora', "template_parameter"],
['link=', 'enllaç=', "template_parameter"],
['enlace=', 'enllaç=', "template_parameter"],
[/der[echa]?/, 'dreta', "template_parameter"],
[/izq[uierda]?/, 'esquerra', "template_parameter"],
['dcha', 'dreta', "template_parameter"],
['izda', 'esquerra', "template_parameter"],
[/centr[ad]?o/, 'centre', "template_parameter"],
['centrar', 'centre', "template_parameter"]
];
function template_translate(){
// Get handlers and clear data
var lang_a_handler = document.querySelector('.lang_a_handler');
var lang_b_handler = document.querySelector('.lang_b_handler');
lang_a_handler.innerHTML = "";
lang_b_handler.innerHTML = "";
// Get parameters
var template_input = document.querySelector('#template_textbox').value;
if (template_input == "") return;
var lang = document.querySelector('#filter_lang_a').value;
var template_type = document.querySelector('#template_type').value;
var lang_a_handler = document.querySelector('.lang_a_handler');
var lang_b_handler = document.querySelector('.lang_b_handler');
var ary = translate_regex[lang][template_type];
var lang_a_html = template_input, lang_b_html = template_input;
// Apply changes
for (var a in ary) {
var regex = new RegExp(ary[a][0], 'gmi'), result = ary[a][1], type = ary[a][2];
if (template_input.match(regex)) {
lang_a_html = lang_a_html.replace(regex, (match, link) => {
return "<span class=\"" + type + "\">" + match + "</span>";
});
lang_b_html = lang_b_html.replace(regex, (match, link) => {
return "<span class=\"" + type + "\">" + result + "</span>";
});
}
}
lang_a_handler.innerHTML = lang_a_html;
lang_b_handler.innerHTML = lang_b_html;
}
});