// This script converts spellings into Indian English spellings.
// PLEASE READ THE DOCUMENTATION at [[User:फ़िलप्रो/script/EN-IN-IN]] (click on the link above) before using.
// This javascript tool predominately based off of User:Ohconfucius's work and is modified to include Indian English.
// Feedback and constructive criticism are welcome.
// As I am a scripting newbie, any technical advice on the 'hows and the wherefores' are especially welcome.
/*************
*** Regex menu framework
*** by [[m:user:Pathoschild]] <http://meta.wikimedia.org/wiki/User:Pathoschild/Scripts/Regex_menu_framework>
*** - adds a sidebar menu of user-defined scripts.
*************/
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Pathoschild/Scripts/Regex_menu_framework.js&action=raw&ctype=text/javascript');
/* menu links */
// In the function below, add more lines like "regexTool('link text','function_name()')" to add
// links to the sidebar menu. The function name is the function defined in rfmscripts() below.
function rmflinks() {
regexTool('Custom regex','custom()'); // a default tool which performs regex input in a dynamic form
regexTool('Edit my regexes ↗','function opennew(url) { window.open(url); }; opennew(mw.config.get("wgServer") mw.config.get("wgScript") "?title=User:" mw.config.get("wgUserName") "/IE.js&action=edit");');
regexTool('• Protect words','ohc_protect_ENGVAR()');
regexTool('• Flip IMP','Ohc_flip_IMP()');
regexTool('• Flip SI','Ohc_flip_SI()');
regexTool('• Indian','SetEnglish("I")');
regexTool('• Universal British','SetEnglish("A")');
regexTool('• BRITISH (Oxford)','SetEnglish("Ox")');
regexTool('• CANADIAN','SetEnglish("C")');
//Fix formatting of links in the sidebar
var r = document.getElementById('p-regex');
if (r){
r.className = ' portal';
var d = r.getElementsByTagName('div');
if (d[0]) d[0].className = ' pBody body';
}
}
/* scripts */
// Below, define the functions linked to from rmflinks() above. These functions can use any JavaScript,
// but there is a set of simplified tools documented at
// http://meta.wikimedia.org/wiki/User:Pathoschild/Script:Regex_menu_framework .
/** ------------------------------------------------------------------------ **/
/// PROTECTION BY STRING SUBSTITUTION
var linkmap=[];
function ohc_protect_ENGVAR()
{
// protects categories, templates, link pipings, quotes, etc
// the sensitive part is stored and replaced with a unique identifier,
// which is later replaced with the stored part.
var protect_function = function(s, begin, replace, end) {
linkmap.push(replace);
return begin "⍌" (linkmap.length-1) "⍍" end;
};
// regex(/(pre)(string)(post)/gi, protect_function); //template
regex(/(<blockquote>)(.*?)(<\/blockquote>)/gi, protect_function);
regex(/({\| class= ?\"wikitable ?\")([\S\s]*?)(\|})/gi, protect_function);
regex(/(<table[^<>]*?>)([^<>]*)(<\/table>)/gi, protect_function);
regex(/(<timeline[^<>]*?>)([^<>]*)(<\/timeline>)/gi, protect_function);
regex(/(\|\s*style\s*=[^|]*)(color|center)([^|]*\|)/gi, protect_function);
regex(/(<\/?[ ]*)(center)([ ]*>)/gi, protect_function);
regex(/(<ref[^<>]*?>)([^<>]*)(<\/ref>)/gi, protect_function);
regex(/(<ref name=)([^<>]*)(\/>)/gi, protect_function);
regex(/(\{[\w ]{0,12}(?:quot[^\|]{1,7}\s?|sic|(?:not a |)typo|as written)\|)([^\}] )(\})/gi, protect_function);
regex(/([\s\(]["“])([^"“”\n]*)(["”])/gi, protect_function); //double quotes
regex(/((?:Category|Image):)([^|\]]*)([\|\]])/gi, protect_function); //cats, images
regex(/((?:image\d?|image_skyline|image[ _]location\d?|image[ _](?:map|name)|img|pic)\s*=)([^\|\}]*)([\|\}])/gi, protect_function); //images within templates infoboxes etc
regex(/(.)(cite encyclopedia\s*\|)(.)/gi, protect_function);
regex(/(\|)(\s*colors(?:_label|)\s*)(=)/gi, protect_function);
regex(/(\|)(\s*analog\s*)(=)/gi, protect_function);
regex(/((?:url)\s*=)([^\|\}]*)([\|\}])/gi, protect_function); //urls within templates infoboxes etc
regex(/(\[(?:https?:|ftp:))([^\]]*)(\])/gi, protect_function);
regex(/(\[(?:https?:|ftp:))([^\s\]]*)([\s\]])/gi, protect_function);
regex(/(\[\[)([^\|\]]*)(\|)/gi, protect_function); //pipings
regex(/(.)(Back in the U.S.S.R.)(.)/gi, protect_function); //title of work
regex(/(.)(Born in the U.S.A.)(.)/gi, protect_function); //title of work
regex(/(\{(?:See ?also|Main))(\|[^\}]*)(\})/gi, protect_function); //see also and main templates
regex(/(\{\{(?:external|wide )image\s?\|)([^\}] )(\})/gi, protect_function);
regex(/(\{\{(?:harvnb|wikisource)\|)([^\}] )(\})/gi, protect_function);
regex(/(\{\{)((?:NYT|WSJ)topic\|[^\}]*)(\}\})/gi, protect_function);
regex(/(\{\{\w*)([^\|=\[\]]*)(\}\})/gi, protect_function); //templates
regex(/(\{Infobox )((?:[\w ]*)organization)(\s )/gi, protect_function);
regex(/(\|\s*)(cleanup|color|coordinates\w*)([ ]*=)/gi, protect_function); //parameters within infoboxes
regex(/(\|(?:[^=\|\{\}]*))(cleanup|encyclopa?edia|enroll?ment|honors|lockup\w{1,4}|organi[sz]ation|catalog\snumber)(\s*=)/g, protect_function);
regex(/(\|\s*)(encyclopedia|\w*colors)(\s?=)/gi, protect_function);
regex(/(\|\s*)(local[ _]authority)(\s?=)/gi, protect_function);
regex(/(\|\s*)([Ss]hip[ _](?:armou?r|honou?rs))([ ]*?\=)/g, protect_function);
regex(/(\|\s*title\s?=)([^|\]]*)(\|)/gi, protect_function);
regex(/(.)(solid gray)(.)/gi, protect_function);
//protect from hyphenation
regex(/(.)(\breed(?:|s)[^aeiou]|[Rr]eegan)(.)/g, protect_function);
//protect from function re_zwords
regex(/(.)((?:enterpri|promi|surpri|treati)(?:se[drs]?|ing))(.)/gi, protect_function);
regex(/(.)((?: ant)(?:ic|idote|imon|ipath|iq))(.)/g, protect_function);
regex(/(.)((?:(?:mercury|nobel)pri|imagesi|picsi)(?:ze))(.)/g, protect_function);
}
function ohc_unprotect_ENGVAR()
{
//removes protection put in place by function ohc_protect_fmt (all cats, templates etc.)
regex(/[♫]/g, '');
regex(/⍌([0-9] )⍍/g, function(x, n) {
var res = linkmap[n];
res = res.replace(/⍌([0-9] )⍍/g, function(x, n) {
var res = linkmap[n];
res = res.replace(/⍌([0-9] )⍍/g, function(x, n) {
var res = linkmap[n];
res = res.replace(/⍌([0-9] )⍍/g, function(x, n) {
return linkmap[n];
});
return res;
});
return res;
});
return res;
});
}
/** ------------------------------------------------------------------------ **/
function Ohc_plain_english(){
//per https://www.gov.uk/designprinciples/styleguide
//redundancies
regex(/B\.B\.C\./g, 'BBC');
regex(/U\.S\.A\./g, 'USA');
regex(/U\.S\.S\.R\./g, 'USSR');
regex(/U\.(K|S)\./g, 'U$1');
regex(/E\.U\./g, 'EU');
regex(/(fill )out/gi, '$1in');
// regex(/in order (to )/g, '$1'); // disabling per discussion on my talk (archive 35)
regex(/In order t(o )/g, 'T$1');
//hyphenation
regex(/(co)(o(?:per|rdin)at(e\b|ing|ion))/g, '$1-$2');
regex(/\b(re)(e\w[aeiou]\w{4,})/gi, '$1-$2');
regex(/\b(over|under)(r\w{4,})/gi, '$1-$2');
regex(/\b(vice) (president|chairman|chancellor|minister)/gi, "$1-$2");
//capitalisation
//rem geographical regions - too many false positives
regex(/(local )authority/g, '$1council');
regex(/w(estern European Union)/g, 'W$1');
regex(/(New )s(outh Wales)/g, '$1S$2');
}
function Ohc_ENGVARSimple(){
var table = {
'aging': '$1ageing',
'aluminum': '$1aluminium',
'adrenalin(\\b)': '$1adrenaline$2',
'artifact': '$1artefact',
'(ana|breatha|cata|hydro|para)lyz(e|ing|is)': '$1$2lys$3',
'bestsell': '$1best-sell',
'diarrhea': '$1diarrhoea',
'(de|of)fense': '$1$2fence',
'(licen|practi)c(ing|ed)': '$1$2s$3',
'furor(\\b)': '$1furore$2',
'(light-|dark-|\\b)gray': '$1$2grey',
'guerilla': '$1guerilla',
'jewelry': '$1jewellery',
'maneuver(ab|ed|ing)': '$1manoeuvr$2',
'maneuver': '$1manoeuvre',
'louve(red|ring)': '$1louv$2',
'louver': '$1louvre',
'ped(iatric|ophil)': '$1paed$2',
'encyclopedi(a|c)': '$1encyclopaedi$2',
'skeptic': '$1sceptic',
'mollusk': '$1mollusc',
'vapor(s?\\b)': '$1vapour$2',
'licorice': '$1liquorice',
//composite words
'(break|drop|clean|line|lock|pick)(out|up)': '$1$2-$3',
//oe/ae words
'gyneco': '$1gynaeco',
'hemo(globin|ly|phil|rr)': '$1haemo$2',
'orthopedic': '$1orthopaedic',
'archeo': '$1archaeo',
'paleonto': '$1palaeonto',
'enology': '$1oenology',
'esophag': '$1oesophag',
'estrogen': '$1oestrogen',
'(an|)esthe(sia|tic|tist)': '$1$2aesthe$3',
'anesthesiologist': '$1anaesthetist',
'homeopath': '$1homoeopath',
// 'medieval(\\b)': '$1mediaeval$2',
'omelet(\\b)': '$1omelette$2',
'rigor(\\b)': '$1rigour$2',
'(an|leuk|septic|tox)emi(a|c)': '$1$2aemi$3',
//'f' words
'sulfur': '$1sulphur',
'anymore': '$1any more',
'specialty': '$1speciality',
// non-redundant e
'(lik|liv|rat|sal|siz|shak)(able)': '$1$2e$3',
//'~our' words
'(arm|clam|glam|harb|neighb|rum|savi?)or(ed|ful|ing|less|ly|s|\\b)': '$1$2our$3',
'(arm|sav)or(ies|y|s|\\b)': '$1$2our$3',
'(cand|od)or((?:ful|less)(?:ly|)|\\b)': '$1$2our$3',
'neighborhood': '$1neighbourhood',
'behavior(al|s|\\b)': '$1behaviour$2',
'favor(abl[ey]|ed|i[\\w]*|s|\\b)': '$1favour$2',
'honor(abl[ey]|ed|ing|s|\\b)': '$1honour$2',
'(endeav|lab)or(e[dr]|ing|s|\\W)': '$1$2our$3',
'mol(d|t)(ed|ing|s|\\W)': '$1moul$2$3',
//'~re~' words
'(calib|fib|goit|lust|mit|nit|och|reconnoit|sab|saltpet|spect|theat|tit)er(s?\\W)': '$1$2re$3',
'(centi|kilo|micro|milli|nano|-|\\d\\s)meter': '$1$2metre',
'(centi|milli|deci|pico|hecto|\\b)liter(s?\\b)': '$1$2litre$3',
'(dema|peda|mono|syna)gog(s?\\W)': '$1$2gogue$3',
// '(\\W[a-z]{3,12}[^s\\b])iz(e[drs]?|ation(s|al|)|ing)': '$1$2is$3',
//'~l' words where the 'l' doubles as past and present participle
'((?:\\w{3,9}[-–—]|)(?:fu|pan))el(e[dr]|ist|ing)': '$1$2ell$3',
'(bev|jew|lev|mod|rev|trav)el(e[dr]|ing)': '$1$2ell$3',
'([a-z]{2,8}[^eglz ])el(e[dr]|est|ing)(\\b)': '$1$2ell$3$4', //added 'z' to avoid changing of "embezzled"
'(app|di|enthr|equ|initi|journ|riv|sign|tot)al(e[dr]|ing)': '$1$2all$3'
};
for (var word in table) {
var txt="";
try {
var re = new RegExp('([ \\|\\[\\*])' word, 'g');
regex(re, table[word]);
}
catch(err) {
txt="There was an error on function Ohc_ENGVARSimple(), when changing '" word "' => '" table[word] "'.\n\n";
txt ="Error: " err.message "\n\n";
txt ="Click OK to continue.\n\n";
alert(txt);
}
}
var table = {
//'~our' words
'([ \\|\\[\\*])(col|flav|hum)or(ed|ful|fully|ings?|less|lessly|s\\W)': '$1$2our$3',
'( [\\w\\D]*\\-)(col|flav|hum)ored': '$1$2oured',
'([^\\w\\d\\-\\/=:])(col)or(\\W)': '$1$2our$3',
//'~re~' words
'([^\\w\\d\\-\\/=])(calib|fib|goit|lust|mit|nit|reconnoit|sab|saltpet|spect|theat|tit)er(ed|ing)': '$1$2r$3',
'([^\\w\\d\\-\\/=:])(cent|epicent|recent)er(ed|ing)': '$1$2r$3',
'([^\\w\\d\\-\\/=:])(cent|epicent|recent)er(s?\\b)': '$1$2re$3',
'([^\\w\\d\\-\\/])(ana|cata|dia|epi|homo|mono|pro)log(ed|ing)': '$1$2logu$3',
'([^\\w\\d\\-\\/])(ana|cata|dia|epi|homo|mono|pro)log(s?\\b)': '$1$2logue$3',
//'~l' words where the 'l' doubles as past and present participle
'([ \\|\\[])(counc[ie])l(e[dr]|ing|ors?)(\\b)': '$1$2ll$3$4',
'\\b([a-z]*)ll(ful|ment)': '$1l$2',
'(movie theat(er|re))': 'cinema',
'([ \\|\\[\\*])airplane': '$1aeroplane',
'([ \\|\\[\\*])\\b[Mm]om(my|)\\b': '$1mother'
};
for (var word in table) {
var txt="";
try {
var re = new RegExp(word, 'g');
regex(re, table[word]);
}
catch(err) {
txt="There was an error on function Ohc_ENGVARSimple(), when changing '" word "' => '" table[word] "'.\n\n";
txt ="Error: " err.message "\n\n";
txt ="Click OK to continue.\n\n";
alert(txt);
}
}
//remove US spelling from {{convert}} template output
regex(/(\{\{convert\|[^\}]*)\|(?:sp|spell)[ ]*=[ ]*us/gi, '$1');
regex(/(\{\{(?:in|ft|yd|[mck]?m)[23]?[ ] to[ ] [^\}]*)\|(?:sp|spell)[ ]*=[ ]*(?:American|us)/gi, '$1');
regex(/(\{\{(?:pd|pop[ ] density[ ]) (?:km|mi)2[^\}]*)\|(?:sp|spell)[ ]*=[ ]*(?:American|us)/gi, '$1');
//remove ambiguous pound sign; rem incidental intervening space
regex(/₤ ?(\d)/g, '£$1');
regex(/rigour mortis/g, 'rigor mortis');
//reconvert special cases
}
function Ohc_ENGVARCSimple(){
var table = {
'ageing': '$1aging',
'aluminium': '$1aluminum',
'adrenalin(\\b)': '$1adrenaline$2',
'(ana|breatha|cata|hydro|para)lyz(e|ing|is)': '$1$2lys$3',
'(de|of)fense': '$1$2fence',
'(licen|practi)c(ing|ed)': '$1$2s$3',
'furor(\\b)': '$1furore$2',
'(light-|dark-|\\b)gray': '$1$2grey',
'guerilla': '$1guerilla',
'maneuver(ab|ed|ing)': '$1manoeuvr$2',
'maneuver': '$1manoeuvre',
'louve(red|ring)': '$1louv$2',
'louver': '$1louvre',
'encyclopaedi(a|c)': '$1encyclopedi$2',
'skeptic': '$1sceptic',
'mollusk': '$1mollusc',
'vapor(s?\\b)': '$1vapour$2',
'liquorice': '$1licorice',
//composite words
// 'onstage': '$1on-stage',
'(break|drop|clean|line|lock|pick)(out|up)': '$1$2-$3',
//oe/ae words
'anaesthesiologist': '$1anesthetist',
'(an|)aesthe(sia|tic|tist)': '$1$2esthe$3',
'archaeo': '$1archeo',
'diarrhoea': '$1diarrhea',
'foetus': '$1fetus',
'gyneco': '$1gynaeco',
'haemo(globin|ly|phil|rr)': '$1hemo$2',
'orthopaedic': '$1orthopedic',
'oenology': '$1enology',
'oesophag': '$1esophag',
'oestrogen': '$1estrogen',
'homoeopath': '$1homeopath',
'omelet(\\b)': '$1omelette$2',
'paed(iatric|ophil)': '$1ped$2',
'palaeonto': '$1paleonto',
'rigor(\\b)': '$1rigour$2',
'(an|leuk|septic|tox)aemi(a|c)': '$1$2emi$3',
//'f' words
'sulfur': '$1sulphur',
'anymore': '$1any more',
'speciality': '$1specialty',
// non-redundant e
'(lik|liv|rat|sal|siz|shak)(able)': '$1$2e$3',
//'~our' words
'(arm|clam|glam|harb|neighb|rum|savi?)or(ed|ful|ing|less|ly|s|\\b)': '$1$2our$3',
'(arm|sav)or(ies|y|s|\\b)': '$1$2our$3',
'(cand|od)or((?:ful|less)(?:ly|)|\\b)': '$1$2our$3',
'neighborhood': '$1neighbourhood',
'behavior(al|s|\\b)': '$1behaviour$2',
'favor(abl[ey]|ed|i[\\w]*|s|\\b)': '$1favour$2',
'honor(abl[ey]|ed|ing|s|\\b)': '$1honour$2',
'(endeav|lab)or(e[dr]|ing|s|\\W)': '$1$2our$3',
'mol(d|t)(ed|ing|s|\\W)': '$1moul$2$3',
//'~re~' words
'(calib|fib|goit|lust|mit|nit|och|reconnoit|sab|saltpet|spect|theat|tit)er(s?\\W)': '$1$2re$3',
'(centi|kilo|micro|milli|nano|-|\\d\\s)meter': '$1$2metre',
'(centi|milli|deci|pico|hecto|\\b)liter(s?\\b)': '$1$2litre$3',
'(dema|peda|mono|syna)gog(s?\\W)': '$1$2gogue$3',
//'~l' words where the 'l' doubles as past and present participle
'((?:\\w{3,9}[-–—]|)(?:fu|pan))el(e[dr]|ist|ing)': '$1$2ell$3',
'(bev|jew|lev|mod|rev|trav)el(e[dr]|ing)': '$1$2ell$3',
'([a-z]{2,8}[^eglz ])el(e[dr]|est|ing)(\\b)': '$1$2ell$3$4',
'(app|di|enthr|equ|initi|journ|riv|sign|tot)al(e[dr]|ing)': '$1$2all$3'
};
for (var word in table) {
var txt="";
try {
var re = new RegExp('(\\b)' word, 'g');
regex(re, table[word]);
}
catch(err) {
txt="There was an error on function Ohc_ENGVAR-CSimple(), when changing '" word "' => '" table[word] "'.\n\n";
txt ="Error: " err.message "\n\n";
txt ="Click OK to continue.\n\n";
alert(txt);
}
}
var table = {
//'~our' words
'([ \\|\\[\\*])(col|flav|hum)or(ed|ful|fully|ings?|less|lessly|s\\W)': '$1$2our$3',
'( [\\w\\D]*\\-)(col|flav|hum)ored': '$1$2oured',
'([^\\w\\d\\-\\/=:])(col)or(\\W)': '$1$2our$3',
//'~re~' words
'([^\\w\\d\\-\\/=])(calib|fib|goit|lust|mit|nit|reconnoit|sab|saltpet|spect|theat|tit)er(ed|ing)': '$1$2r$3',
'([^\\w\\d\\-\\/=:])(cent|epicent|recent)er(ed|ing)': '$1$2r$3',
'([^\\w\\d\\-\\/=:])(cent|epicent|recent)er(s?\\b)': '$1$2re$3',
'([^\\w\\d\\-\\/])(ana|cata|dia|epi|homo|mono|pro)log(ed|ing)': '$1$2logu$3',
'([^\\w\\d\\-\\/])(ana|cata|dia|epi|homo|mono|pro)log(s?\\b)': '$1$2logue$3',
//'~l' words where the 'l' doubles as past and present participle
'\\b(counc[ie])l(e[dr]|ing|ors?)\\b': '$1ll$2',
// '(movie theat(er|re))': 'cinema',
'\\b([a-z]*)ll(ful|ment)': '$1l$2'
};
for (var word in table) {
var txt="";
try {
var re = new RegExp(word, 'g');
regex(re, table[word]);
}
catch(err) {
txt="There was an error on function Ohc_ENGVAR-CSimple(), when changing '" word "' => '" table[word] "'.\n\n";
txt ="Error: " err.message "\n\n";
txt ="Click OK to continue.\n\n";
alert(txt);
}
}
//remove US spelling from {{convert}} template output
regex(/(\{\{convert\|[^\}]*)\|(?:sp|spell)[ ]*=[ ]*us/gi, '$1');
regex(/(\{\{(?:in|ft|yd|[mck]?m)[23]?[ ] to[ ] [^\}]*)\|(?:sp|spell)[ ]*=[ ]*(?:American|us)/gi, '$1');
regex(/(\{\{(?:pd|pop[ ] density)[ ] (?:km|mi)2[^\}]*)\|(?:sp|spell)[ ]*=[ ]*(?:American|us)/gi, '$1');
regex(/rigour mortis/g, 'rigor mortis');
}
function SetEnglish(v) {
switch (v) {
case 'Ox':
ohc_protect_ENGVAR();
Ohc_ENGVARSimple();
re_zwords();
Ohc_ENGVARXedit_summary();
break;
case 'I':
ohc_protect_ENGVAR();
Ohc_ENGVARSimple();
zwords();
Ohc_ENGVARIedit_summary();
break;
case 'C':
ohc_protect_ENGVAR();
Ohc_ENGVARCSimple();
re_zwords();
Ohc_ENGVARCedit_summary();
break;
case 'P':
alert('Feature not implemented');
break;
}
Ohc_plain_english()
ohc_unprotect_ENGVAR();
ohc_retask_pipes();
insert_Engvar(v);
doaction('diff');
// Ohc_ENGVARedit_summary();
}
function Simpleplus() {
Ohc_ENGVARSimple();
zwords();
ohc_unprotect_ENGVAR();
insert_Engvar('B');
Ohc_ENGVARedit_summary();
}
/** ------------------------------------------------------------------------ **/
function ohc_retask_pipes(){
regex(/([^\w\d\-\.]\[\[)(?:(?:[a-z] ? |)[a-z] ?[^s ]i[sz]ation)\|((?:[a-z] ? |)[a-z]{3,12}[^s ]i[sz](?:e[drs]?|ations?|abl[ey]|ing))/g, '$1$2');
// regex(/(empha|synthe)siz(e|ing)/g, '$1sis$2');
}
function zwords(){
regex(/([^\w\d\-\.][a-z]{3,12}[^s ])iz(e[drs]?|ations?|abl[ey]|ing)(\W)/g, '$1is$2$3');
regex(/(empha)siz(e|ing)/g, '$1sis$2');
regex(/(synthe)siz(e[ds]|ing)/g, '$1sis$2');
}
function re_zwords(){
//converts 's-words' and 'ph-words' into Oxford 'z-words' and 'f-words'
regex(/([^\w\d\-\.\/])(ar|de[mv]|improv|parad|(?:com|)pr[eo][cm]|rev|surm|telev)is(e|ing)/g, '$1$2♫is$3');
regex(/([^\w\d\-\.\/][a-z]{5,12})is(ations?)(\W)/g, '$1iz$2$3');
regex(/([^\w\d\-\.\/][a-z]{0,12}(?:[aeiou][^aeiosuw]|ph|rd|thes))is(e[drs]?|ing)(\W)/g, '$1iz$2$3');
//'f' words
regex(/sulphur(\W)/g, 'sulfur$1');
}
function Ohc_flip_IMP(){
// measurements and perception
// regex(/\[\[(foobar)(s|)\]\]/gi, '$1$2');
//Template:{{convert}}
// regex(/(\{\{convert)(\s*\|)/gi, '$1/flip$2'); //rem linking within convert template (area) //needs resolving
regex(/(\{\{convert\|[\d\.,] ?\|(?:(?:sq|cu|)(?:[mck]?m)(?:2|3|))(?:\|(?:sq|cu|)(?:in|ft|yd|mi)(?:2|3|))?(\|\d)?(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //rem linking within convert template (area)
regex(/(\{\{convert\|[\d\.,] ?\|tonnes?(?:\|tons?)?(\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //rem linking within convert template
regex(/(\{\{convert\|[\d\.,] ?\|(?:(?:sq|)(?:k?m)(?:2|3|)|hectare))(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*?(?=\})/gi, '$1$2|disp=flip'); //putting metres and hectares behind
regex(/(\{\{convert\|[\d\.,] ?\|(?:hectares?|ha)(?:\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //flip hectares
regex(/(\{\{convert\|[\d\.,] ?\|(?:kmh|km\/h)(?:\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //flip kmh
regex(/(\{\{convert\|[\d\.,] ?\|(?:to|by|x)(?:\|[\d\.,] ?\|(?:[mck]?m))(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //rem linking within convert template (input ranges only)
regex(/(\{\{convert\|[\d\.,] ?\|nmi)(2|)(\|mi\2 km\2|\|km\2 mi\2|)(?=[|}])/gi, '$1$2|mi$2 km$2'); //putting miles first in nautical mile conversion
regex(/(\{\{convert\|[\d\.,] ?\|(?:kg|°?F))(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}] ?)*(?=\})/gi, '$1$2|disp=flip'); //putting pounds and °C first
// regex(/(\{\{(?:in|ft|mi|[mck]?m)[23]?\sto\s(?:in|ft|mi|[mck]?m)[23]?[^\}]*?)\|wiki=(?:yes|no)/gi, '$1');
////manipulating "|disp=flip" parameter where already "flipped"
regex(/(\{\{convert\|[\d\.,] ?\|\w{1,4}(?:\|\w{1,4}|)?(?:\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(\|disp=flip)(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*) (?=\})/gi, '$1$3$2'); //reordering flipping parameter within convert template (last parameter)
regex(/(\{\{convert\|[\d\.,] ?\|(?:(?:sq|cu|)(?:in|ft|yd|mi|acre)(?:2|3|))(?:\|(?:sq|cu|)(?:[mck]?m|ha)(?:2|3|))?(\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)\|disp=flip(?=\})/gi, '$1$2'); //rem flipping within convert template (Imperial, sq and cubed)
regex(/(\{\{convert\|[\d\.,] ?\|(?:mi|miles?|mph)(?:\|kph|km\/h|)?(\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)\|disp=flip(?=\})/gi, '$1$2'); //rem flipping within convert template (Imperial, sq and cubed)
}
function Ohc_flip_SI(){
// measurements and perception
// regex(/\[\[(foobar)(s|)\]\]/gi, '$1$2');
//Template:{{convert}}
// regex(/(\{\{convert)(\s*\|)/gi, '$1/flip$2'); //rem linking within convert template (area) //needs resolving
regex(/(\{\{convert\|[\d\.,] ?\|(?:(?:sq|cu|)(?:in|ft|yd|mi)(?:2|3|))(?:\|(?:sq|cu|)(?:[mck]?m)(?:2|3|))?(\|\d)?(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //rem linking within convert template (area)
regex(/(\{\{convert\|[\d\.,] ?\|tonnes?(?:\|tons?)?(\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //rem linking within convert template
regex(/(\{\{convert\|[\d\.,] ?\|(?:(?:sq|)mi(?:2|3|)|acre))(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*?(?=\})/gi, '$1$2|disp=flip'); //putting metres and hectares behind
// regex(/(\{\{convert\|[\d\.,] ?\|(?:hectares?|ha)(?:\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //flip hectares
// regex(/(\{\{convert\|[\d\.,] ?\|mp[gh](?:\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //flip kmh
regex(/(\{\{convert\|[\d\.,] ?\|(?:to|by|x)(?:\|[\d\.,] ?\|(?:yd|f(?:oo|)t|in))(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(?=\})/gi, '$1|disp=flip'); //rem linking within convert template (input ranges only)
regex(/(\{\{convert\|[\d\.,] ?\|nmi)(2|)(\|mi\2 km\2|\|km\2 mi\2|)(?=[|}])/gi, '$1$2|km$2 mi$2'); //putting miles first in nautical mile conversion
regex(/(\{\{convert\|[\d\.,] ?\|(?:lb|oz|°?F))(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}] ?)*(?=\})/gi, '$1$2|disp=flip'); //putting pounds and °C first
// regex(/(\{\{(?:in|ft|mi|[mck]?m)[23]?\sto\s(?:in|ft|mi|[mck]?m)[23]?[^\}]*?)\|wiki=(?:yes|no)/gi, '$1');
////manipulating "|disp=flip" parameter where already "flipped"
regex(/(\{\{convert\|[\d\.,] ?\|\w{1,4}(?:\|\w{1,4}|)?(?:\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)(\|disp=flip)(\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*) (?=\})/gi, '$1$3$2'); //reordering flipping parameter within convert template (last parameter)
regex(/(\{\{convert\|[\d\.,] ?\|(?:(?:sq|cu|)(?:[mck]?m|ha)(?:2|3|))(?:\|(?:sq|cu|)(?:in|ft|yd|mi|acre)(?:2|3|))?(\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)\|disp=flip(?=\})/gi, '$1$2'); //rem flipping within convert template (Imperial, sq and cubed)
regex(/(\{\{convert\|[\d\.,] ?(?:\|kph|km\/h|)(?:\|mi|miles?|mph)?(\|\d)?(?:\|(?:sp|adj|abbr|lk|sigfig|sortable)=[^\|\}]*)*)\|disp=flip(?=\})/gi, '$1$2'); //rem flipping within convert template (Imperial, sq and cubed)
}
function insert_Engvar(v){
// Add a template to the article identifying English variant
var box = document.editform.wpTextbox1;
var txt = box.value;
// Build a string with "Month YYYY"
var dateobj=new Date();
var month=new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var datestr= month[dateobj.getMonth()] ' ' dateobj.getFullYear();
// Matches Use Australian English or EngvarA
var reA = new RegExp('{{[_ ]*(?:[Ee]ngvar[AB])[_ ]*(?:|\\|[ ]*date[ ]*=[^{}\\|]*)[ ]*}}', 'gi');
var reB = new RegExp('{{[_ ]*(?:[Uu]se[_ ] British[_ ] English|[Ee]ngvarB)[_ ]*(?:|\\|[ ]*date[ ]*=[^{}\\|]*)[ ]*}}', 'gi');
var reI = new RegExp('{{[_ ]*(?:[Uu]se[_ ] Indian[_ ] English|[Ee]ngvarI)[_ ]*(?:|\\|[ ]*date[ ]*=[^{}\\|]*)[ ]*}}', 'gi');
// Matches Use British (Oxford) English or EngvarOx
var reOx = new RegExp('{{[_ ]*(?:[Uu]se[_ ] British[_ ] \\(Oxford\\)[_ ] English|[Ee]ngvarOx)[_ ]*(?:|\\|[ ]*date[ ]*=[^{}\\|]*)[ ]*}}', 'gi');
// Matches Use Canadian English or EngvarC
var reC = new RegExp('{{[_ ]*(?:[Uu]se[_ ] Canadian[_ ] English|[Ee]ngvarC)[_ ]*(?:|\\|[ ]*date[ ]*=[^{}\\|]*)[ ]*}}', 'gi');
var reU = new RegExp('{{[_ ]*(?:[Uu]se[_ ] (Australian|British|Hong Kong|\\w |New Zealand|Pakistani|South African)[_ ] English)[_ ]*(?:|\\|[ ]*date[ ]*=[^{}\\|]*)[ ]*}}', 'gi');
switch (v) {
case 'I':
// Replace with Indian
txt = txt.replace( reA, '{{Use Indian English|date=' datestr '}}');
txt = txt.replace( reB, '{{Use Indian English|date=' datestr '}}');
txt = txt.replace( reOx, '{{Use Indian English|date=' datestr '}}');
txt = txt.replace( reC, '{{Use Indian English|date=' datestr '}}');
txt = txt.replace( reU, '{{Use Indian English|date=' datestr '}}');
// Prepend Indian template if not already tagged
if( txt.search(reI) == -1 ) {
txt = '{{Use Indian English|date=' datestr '}}\r\n' txt;
}
break;
case 'A':
txt = txt.replace( reB, '{{EngvarB|date=' datestr '}}');
txt = txt.replace( reC, '{{EngvarB|date=' datestr '}}');
txt = txt.replace( reI, '{{EngvarB|date=' datestr '}}');
txt = txt.replace( reOx, '{{EngvarB|date=' datestr '}}');
txt = txt.replace( reU, '{{EngvarB|date=' datestr '}}');
// Prepend Australian template if not already tagged
if( txt.search(reA) == -1 ) {
txt = '{{EngvarB|date=' datestr '}}\r\n' txt;
}
break;
case 'B':
// Replace with British
txt = txt.replace( reA, '{{Use British English|date=' datestr '}}');
txt = txt.replace( reI, '{{Use British English|date=' datestr '}}');
txt = txt.replace( reOx, '{{Use British English|date=' datestr '}}');
txt = txt.replace( reC, '{{Use British English|date=' datestr '}}');
txt = txt.replace( reU, '{{Use British English|date=' datestr '}}');
// Prepend British template if not already tagged
if( txt.search(reB) == -1 ) {
txt = '{{Use British English|date=' datestr '}}\r\n' txt;
}
break;
case 'C':
// Replace with Canadian
txt = txt.replace( reA, '{{Use Canadian English|date=' datestr '}}');
txt = txt.replace( reB, '{{Use Canadian English|date=' datestr '}}');
txt = txt.replace( reI, '{{Use Canadian English|date=' datestr '}}');
txt = txt.replace( reOx, '{{Use Canadian English|date=' datestr '}}');
txt = txt.replace( reU, '{{Use Canadian English|date=' datestr '}}');
// Prepend Canadian template if not already tagged
if( txt.search(reC) == -1 ) {
txt = '{{Use Canadian English|date=' datestr '}}\r\n' txt;
}
break;
case 'Ox':
// Replace with British (Oxford)
txt = txt.replace( reA, '{{Use British (Oxford) English|date=' datestr '}}');
txt = txt.replace( reB, '{{Use British (Oxford) English|date=' datestr '}}');
txt = txt.replace( reI, '{{Use British (Oxford) English|date=' datestr '}}');
txt = txt.replace( reC, '{{Use British (Oxford) English|date=' datestr '}}');
txt = txt.replace( reU, '{{Use British (Oxford) English|date=' datestr '}}');
// Prepend British (Oxford) template if not already tagged
if( txt.search(reOx) == -1 ) {
txt = '{{Use British (Oxford) English|date=' datestr '}}\r\n' txt;
}
break;
}
box.value = txt;
}
function Ohc_ENGVARIedit_summary(){
//Add a tag to the summary box
setoptions(minor='true'); //removed ",watch='false'" in response to user notification 13 Nov. 2010
setreason('spelling per [[WP:ENGVAR]] by [[User:फ़िलप्रो/script/EN-IN|script]]', 'append');
// doaction('diff');
}
function Ohc_ENGVARAedit_summary(){
//Add a tag to the summary box
setoptions(minor='true'); //removed ",watch='false'" in response to user notification 13 Nov. 2010
setreason('spelling per [[WP:ENGVAR]] by [[User:Ohconfucius/EngvarB|script]]', 'append');
// doaction('diff');
}
function Ohc_ENGVARBedit_summary(){
//Add a tag to the summary box
setoptions(minor='true'); //removed ",watch='false'" in response to user notification 13 Nov. 2010
setreason('[[WP:ENGVAR|all British spelling]] by [[User:Ohconfucius/EngvarB|script]]', 'append');
// doaction('diff');
}
function Ohc_ENGVARCedit_summary(){
//Add a tag to the summary box
setoptions(minor='true'); //removed ",watch='false'" in response to user notification 13 Nov. 2010
setreason('[[WP:ENGVAR|all Canadian spelling]] by [[User:Ohconfucius/EngvarB|script]]', 'append');
// doaction('diff');
}
function Ohc_ENGVARXedit_summary(){
//Add a tag to the summary box
setoptions(minor='true'); //removed ",watch='false'" in response to user notification 13 Nov. 2010
setreason('all to [[Oxford spelling]] by [[User:Ohconfucius/EngvarB|script]]', 'append');
// doaction('diff');
}