User:1234qwer1234qwer4/internationalise.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// based on https://en.wikipedia.org/wiki/User:DannyS712/Draft_no_cat.js
// Set `internationalise.AJAX = true;` to internationalise without reloading the page
$(() => {
const internationalise = {};
window.internationalise = internationalise;
internationalise.config = {
name: '[[User:1234qwer1234qwer4/internationalise.js|internationalise.js]]',
debug: false
};
internationalise.summary = "Internationalised using " + internationalise.config.name;
internationalise.run = function () {
var editSummary = internationalise.summary;
if ( internationalise.config.debug ) {
console.log ( editSummary );
}
var api = new mw.Api();
api.get( {
action: 'query',
titles: mw.config.get( 'wgPageName' ),
prop: 'revisions',
rvprop: 'content',
rvslots: 'main',
formatversion: 2
} ).done(
function ( response ) {
console.log( response );
var text = response.query.pages[0].revisions[0].slots.main.content;
var textInt = text
.replace(/^(=+)( *)Taxonavigation( *)(=+)/mi,"$1$2{{int:Taxonavigation}}$2$4")
.replace(/^(=+)( *)References?( *)(=+)/mi,"$1$2{{int:References}}$2$4")
.replace(/^(=+)( *)(Primary|Additional) references?( *)(=+)/mi,"$1$2{{int:$3 references}}$2$5")
.replace(/^(=+)( *)Links?( *)(=+)/mi,"$1$2{{int:Links}}$2$4")
.replace(/^(=+)( *)Synonym(y|s)( *)(=+)/mi,"$1$2{{int:Synonym$3}}$2$5")
.replace(/^(=+)( *)Publications( *)(=+)/mi,"$1$2{{int:Publications}}$2$4")
.replace(/^(=+)( *)Authored taxa( *)(=+)/mi,"$1$2{{int:Authored taxa}}$2$4")
.replace(/^(=+)( *)External links( *)(=+)/mi,"$1$2{{int:External links}}$2$4")
.replace(/^(=+)( *)See also( *)(=+)/mi,"$1$2{{int:See also}}$2$4")
.replace(/^(=+)( *)Name( *)(=+)/mi,"$1$2{{int:Name}}$2$4")
.replace(/^(=+)( *)Vernacular names?( *)(=+)/mi,"$1$2{{int:Vernacular names}}$2$4")
.replace(/^(=+)( *)Homonym(s?)( *)(=+)/mi,"$1$2{{int:Homonym$3}}$2$5")
.replace(/^(=+)( *)Basionym( *)(=+)/mi,"$1$2{{int:Basionym}}$2$4")
.replace(/^(=+)( *)Gender( *)(=+)/mi,"$1$2{{int:Gender}}$2$4")
.replace(/^(=+)( *)Etymology( *)(=+)/mi,"$1$2{{int:Etymology}}$2$4")
.replace(/^(=+)( *)Native distribution areas( *)(=+)/mi,"$1$2{{int:Native distribution areas}}$2$4")
.replace(/^(=+)( *)Distribution( *)(=+)/mi,"$1$2{{int:Distribution}}$2$4")
.replace(/^(=+)( *)Type species( *)(=+)/mi,"$1$2{{int:Type species}}$2$4")
.replace(/^(=+)( *)Type locality( *)(=+)/mi,"$1$2{{int:Type locality}}$2$4")
.replace(/^(=+)( *)Overview of species( *)(=+)/mi,"$1$2{{int:Overview of species}}$2$4")
.replace(/^(=+)( *)Overview of genera( *)(=+)/mi,"$1$2{{int:Overview of genera}}$2$4")
.replace(/^(=+)( *)Overview of familiae( *)(=+)/mi,"$1$2{{int:Overview of familiae}}$2$4")
.replace(/^(=+)( *)Hybrids( *)(=+)/mi,"$1$2{{int:Hybrids}}$2$4")
.replace(/^(=+)( *)Alternative classifications( *)(=+)/mi,"$1$2{{int:Alternative classifications}}$2$4")
.replace(/^(=+)( *)Original combination( *)(=+)/mi,"$1$2{{int:Original combination}}$2$4")
.replace(/^(=+)( *)Combinations( *)(=+)/mi,"$1$2{{int:Combinations}}$2$4")
.replace(/^(=+)( *)Nomenclatural acts( *)(=+)/mi,"$1$2{{int:Nomenclatural acts}}$2$4")
.replace(/^(=+)( *)New names( *)(=+)/mi,"$1$2{{int:New names}}$2$4")
.replace(/^(=+)( *)New taxa( *)(=+)/mi,"$1$2{{int:New taxa}}$2$4")
.replace(/^(=+)( *)Primary type fixations( *)(=+)/mi,"$1$2{{int:Primary type fixations}}$2$4");
if(textInt == text){
return mw.notify("Page already internationalised.");
}
api.postWithEditToken( {
action: 'edit',
minor: true,
title: mw.config.get( 'wgPageName' ),
text: textInt,
summary: editSummary
} ).done(
function() {
if(internationalise.AJAX === undefined || internationalise.AJAX == false){
location.reload();
}
else mw.notify("Page successfully internationalised.");
}
);
}
);
};
});
$( document ).ready( () => {
if ( [0,10].indexOf(mw.config.get( 'wgNamespaceNumber' )) !== -1 && mw.config.get('wgAction') === 'view' ) {
mw.loader.using(
[ 'mediawiki.util' ],
function () {
var link = mw.util.addPortletLink( 'p-cactions', '#', 'Internationalise', 'ca-internationalise', 'Internationalise section headings');
$( link ).click( function ( event ) {
event.preventDefault();
mw.loader.using( 'mediawiki.api', window.internationalise.run );
} );
}
);
}
} );