MediaWiki:Gadget-nt.js

Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі

Заўвага: каб пабачыць зьмены пасьля публікацыі, Вам можа спатрэбіцца ачысьціць кэш Вашага браўзэра.

  • Firefox / Safari: трымайце Shift і націсьніце Reload, ці націсьніце Ctrl-F5 ці Ctrl-R (⌘-R на Mac)
  • Google Chrome: націсьніце Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer / Edge: трымайце Ctrl і націсьніце Refresh, ці націсьніце Ctrl-F5
  • Opera: націсьніце Ctrl-F5.
/**
 * «Тарашкевізатар» — канвэртар наркамаўкі ў тарашкевіцу паводле вызначаных правілаў.
 * Аўтар: zedlik
 * Суправаджальнік: Wizardist
 */
// messages
mw.messages.set({
  'ntIncompatibleBrowser': 'Гэта функцыя ня можа працаваць у вашым браўзэры.\n\nThis feature can not work in your browser',
  'ntFullTextProcessed': 'Будзе апрацаваны ўвесь тэкст. Працягнуць?',
  'ntTalkPageWarning': 'Старонкі абмеркаваньня не апрацоўваюцца цалкам.\n\nВылучыце вашае паведамленьне — апрацаванае будзе толькі яно.',
  'ntShortDescription': 'артаграфія',
  'ntOrthographyTemplateCode': '{{Артаграфія}}',
  'ntOrthographyInsertTemplateCode': '{{Артаграфія}}\n\n',
  'nt-button-label': 'Выправіць артаграфію'
});

var txtNT;
var addOrthographyTemplate;

function NTButton(){
	if(!mediaWiki.user.options.get('usebetatoolbar')) {
		return;
	}
	mw.loader.using('ext.wikiEditor', function(){
		$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
			'section': 'main',
			'group': 'gadgets',
			'tools': {
				'wikification': {
					label: mw.messages.get('nt-button-label'),
					type: 'button',
					icon: '//upload.wikimedia.org/wikipedia/be-x-old/e/ea/Knopka-narkamaŭka-taraškievica-vector.png',
					action: {
						type: 'callback',
						execute: convertNT
					}
				}
			}
		} );
	});
}



// main routine
function convertNT(){
	if (('code'.replace(/d/g, 'r') != 'core') //check regexp support
			|| (navigator.appName=='Netscape' && navigator.appVersion.substr (0, 1) < 5))
	{ alert(mw.msg('ntIncompatibleBrowser')); return }

	var hiddenNT = [], hidIdxNT = 0, wpTextbox1 = document.editform.wpTextbox1
	var winScroll = document.documentElement.scrollTop //remember window scroll
	wpTextbox1.focus()

	if (typeof wpTextbox1.selectionStart != 'undefined' 
			&& (navigator.productSub > 20031000 || $.client.profile().name == "opera" || $.client.profile().name == "safari")) { //Mozilla/Opera/Safari3
		var textScroll = wpTextbox1.scrollTop
		var startPos = wpTextbox1.selectionStart
		var endPos = wpTextbox1.selectionEnd
		txtNT = wpTextbox1.value.substring(startPos, endPos)
		if (txtNT == '') processAllTextNT()
		else{
			processTextNT()
			wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txtNT + wpTextbox1.value.substring(endPos)
		}

		if (addOrthographyTemplate && wpTextbox1.value.indexOf("{{Артаграфія}}") < 0 && wpTextbox1.value.indexOf("{{артаграфія}}") < 0){
			wpTextbox1.value = mw.msg('ntOrthographyInsertTemplateCode') + wpTextbox1.value;
			startPos += mw.msg('ntOrthographyInsertTemplateCode').length;
		}
		wpTextbox1.selectionStart = startPos
		wpTextbox1.selectionEnd = startPos + txtNT.length
		wpTextbox1.scrollTop = textScroll

	}
	else 
	{
		if (document.selection && document.selection.createRange) { //IE
			var range = document.selection.createRange()
			txtNT = range.text
			if (txtNT == ''){
				processAllTextNT()

				if (addOrthographyTemplate && wpTextbox1.value.indexOf("{{Артаграфія}}") < 0 && wpTextbox1.value.indexOf("{{артаграфія}}") < 0){
					wpTextbox1.value = mw.msg('ntOrthographyInsertTemplateCode') + wpTextbox1.value;
					if (window.opera) {
						var extraCharacters = 0;
						if (navigator.platform.indexOf("Win") >= 0 || navigator.platform.indexOf("Mac") >= 0) extraCharacters = 2;
						if (range.moveStart) range.moveStart('character', mw.msg('ntOrthographyInsertTemplateCode').length + extraCharacters)
						range.select() 
					}
				}
				else 
				{
					range.select() 
				}
			}
			else
			{
				processTextNT()

				range.text = txtNT
				//if (!window.opera) txtNT = txtNT.replace(/\r/g,'')
				if (range.moveStart) range.moveStart('character', - txtNT.length)

				if (addOrthographyTemplate && wpTextbox1.value.indexOf("{{Артаграфія}}") < 0 && wpTextbox1.value.indexOf("{{артаграфія}}") < 0){
					wpTextbox1.value = mw.msg('ntOrthographyInsertTemplateCode') + wpTextbox1.value;

					if (window.opera) {
						var extraCharacters = 0;
						if (navigator.platform.indexOf("Win") >= 0 || navigator.platform.indexOf("Mac") >= 0) extraCharacters = 2;
						if (range.moveStart) range.moveStart('character', mw.msg('ntOrthographyInsertTemplateCode').length + extraCharacters)
						if (range.moveEnd) range.moveEnd('character', txtNT.length)
						range.select() 
					}
				}
				else {
					range.select() 
				}
			}

		}
		else // other browsers
		{
			if (confirm(mw.msg('ntFullTextProcessed'))){
				processAllTextNT()

				if (addOrthographyTemplate && wpTextbox1.value.indexOf("{{Артаграфія}}") < 0 && wpTextbox1.value.indexOf("{{артаграфія}}") < 0){
					wpTextbox1.value = mw.msg('ntOrthographyInsertTemplateCode') + wpTextbox1.value;
				}

			}
		}
	}

	document.documentElement.scrollTop = winScroll // scroll back, for IE/Opera

	//functions

	function processAllTextNT(){
		txtNT = '\n' + wpTextbox1.value
		processTextNT()
		txtNT = txtNT.replace(/^[\n\r]+/, '')
		wpTextbox1.value = txtNT
		txtNT = ''
		// if (window.auto_comment && window.insertSummary) insertSummary('вікіфікацыя')
		if (window.addSumm && document.getElementById("wpSummary").value.indexOf(mw.msg('ntShortDescription')) < 0) addSumm(mw.msg('ntShortDescription'))
	}



	function processTextNT(){

		var u = '\u00A0' //unbreakable space
		if (mw.config.get('wgNamespaceNumber') % 2 || mw.config.get('wgNamespaceNumber')==4) { //is talk page
			u = ' '
			var sigs = txtNT.match(/\d\d:\d\d, \d\d? \S{3,8} 20\d\d \(UTC\)/g)
			if (sigs && sigs.length > 1) {
				alert(mw.msg('ntTalkPageWarning')); return
			}
		}

		txtNT = ' ' + txtNT; // leading space

		hideExprNT('<source [^>]+>[\\s\\S]+?<\\/source>');
		hideExprNT('<gallery[^>]+>[\\s\\S]+?<\\/gallery>');
		hideExprNT('(http|https|ftp|tftp|news|nntp|telnet|irc|gopher)://[^ \n\r\u00A0]* ?'); //links
		hideExprNT('^ #REDIRECT') ;
		hideExprNT('^ #Перанакіраваньне') ;

		hideExprNT('\\[\\[[^\\]|]+') //internal links

		// прыстаўкі
		hideExprNT('( | |^|\n|«|\\|)ад');
		hideExprNT('( | |^|\n|«|\\|)пад');
		hideExprNT('( | |^|\n|«|\\|)над');

		// іншамоўныя словы, зьмяненьне якіх непажадана
		hideExprNT('эссе');
		hideExprNT('руководст');

		var sourceText = txtNT

		// двойчы для словаў кшталту «сцвярджаць»
		adaptTextNT()
		adaptTextNT()

		var textAffected = sourceText.replace(/^\s\s*/, '').replace(/\s\s*$/, '') != txtNT.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

		restoreAllNT();

		txtNT = txtNT.replace(/^\s/, ''); //remove leading space

		// addOrthographyTemplate = textAffected;
		// addOrthographyTemplate = addOrthographyTemplate && (typeof(ntPreventAddingOrthographyTemplate) == "undefined" || !ntPreventAddingOrthographyTemplate);
		addOrthographyTemplate = false; // немэтазгодна
	}

	function hideExprNT(expr){
		var ma = txtNT.match(new RegExp(expr, 'mgi'))
		if (!ma) return
		for (var i=0; i<ma.length; i++) {
			txtNT = txtNT.replace(ma[i], '\x01' + hidIdxNT + '\x02')
			hiddenNT[hidIdxNT] = ma[i] 
			if ('0'.replace('0','$$') == '$') //$ in 2nd arg is special even if 1st arg is a string, except in IE
			hiddenNT[hidIdxNT] = hiddenNT[hidIdxNT].replace(/\$/g, '$$$$') //$ → $$, then it's converted back to $ on restore
			hidIdxNT++
		}
	}

	function hideTagNT(tag){
		hideExprNT('<' + tag + '>[\\s\\S]+?<\\/' + tag + '>')
	}

	function restoreAllNT()	{
		for (var i=hidIdxNT-1; i>=0; i--)
		txtNT = txtNT.replace('\x01' + i + '\x02', hiddenNT[i])
	}

}

function applyRegexpNT(source, result){
	r = new RegExp(source, "g");
	txtNT = txtNT.replace(r, result);
}

var phrasesNT = new Array();

function addPhraseNT(source, result){

	var leadingChar = source.substr(0, 1);
	if( leadingChar == result.substr(0,1) ) {
		source = "(" + leadingChar.toUpperCase() + "|" + leadingChar + ")" + source.substr(1);
		result = "$1" + result.substr(1);
		phrasesNT[phrasesNT.length] = new Array(source, result);
	} else {
		source1 = leadingChar.toLowerCase() + source.substr(1);
		result1 = result.substr(0,1).toLowerCase() + result.substr(1);

		source2 = leadingChar.toUpperCase() + source.substr(1);
		result2 = result.substr(0,1).toUpperCase() + result.substr(1);

		phrasesNT.push([source1, result1], [source2, result2]);
	}
}

function addStartingPhraseNT(source, result){

	var leadingChar = source.substr(0, 1)
	source = "((?: | |\\n)(?:" + leadingChar.toUpperCase() + "|" + leadingChar + "))" + source.substr(1)
	result = "$1" + result.substr(1)

	phrasesNT[phrasesNT.length] = new Array(source, result);
}

function adaptTextNT(){

	// усе словы мусяць быць з маленькіх літараў
	// дзе трэба, пачатковая вялікая прастаўляецца аўтаматычна
	// рэгулярныя выразы нельга выкарыстоўваць у якасьці 
	// парамэтраў функцыі addPhraseNT, для гэтага патрэбная
	// іншая функцыя, якая запаўняе масіў phrasesNT бяз
	// зьменаў выразаў.

	addPhraseNT("абанемент", "абанэмэнт")
	addPhraseNT("абанен(т|ц)", "абанэн$2")
	addPhraseNT("абеліск", "абэліск");
	addPhraseNT("абісін", "абісын")
	addPhraseNT("акцыянер", "акцыянэр")
	addPhraseNT("алфавіт", "альфабэт")
	addPhraseNT("амеры(к|ц)", "амэры$2")
	addPhraseNT("аналаг", "аналяг")
	addPhraseNT("англійск", "ангельск")
	addPhraseNT("англія", "ангельшчына")
	addPhraseNT("апазіцы", "апазыцы");
	addPhraseNT("апеляцы", "апэляцы");
	addPhraseNT("апера(т|ц)", "апэра$2")
	addPhraseNT("араві(й|я)( | |\\.|,|с)", "арабі$2$3");
	addPhraseNT("аргумен", "аргумэн");
	addPhraseNT("аркестр( | |\\.|,)", "аркестар$2");
	addPhraseNT("арнамен", "арнамэн");
	addPhraseNT("арсенал", "арсэнал")
	addPhraseNT("арфаграфі", "артаграфі")
	addPhraseNT("асартымен", "асартымэн")
	addPhraseNT("аспект", "аспэкт")
	addPhraseNT("атлант", "атлянт");
	addPhraseNT("атлас", "атляс");
	addPhraseNT("баланс", "балянс")
	addPhraseNT("басейн", "басэйн");
	addPhraseNT("біёлаг", "біёляг");
	addPhraseNT("бізнес", "бізнэс");
	addPhraseNT("біялаг", "біяляг");
	addPhraseNT("бухгалт", "бухгальт")
	addPhraseNT("ваяводс", "ваяводз")
	addPhraseNT("вела(д|з|к|м|п|с)", "вэля$2");
	addPhraseNT("венгерск", "вугорск");
	addPhraseNT("венгрыя", "вугоршчына");
	addPhraseNT("верф(і|я)", "вэрф$2");
	addPhraseNT("ветэран", "вэтэран")
	addPhraseNT("ветэрынар", "вэтэрынар")
	addPhraseNT("візіт", "візыт");
	addPhraseNT("в('|’)етнам", "віетнам");
	addPhraseNT("газе(т|ц)", "газэ$2")
	addPhraseNT("генера", "генэра")
	addPhraseNT("губерн", "губэрн")
	addPhraseNT("гуверн", "гувэрн")
	addPhraseNT("гібралтар", "гібральтар")
	addPhraseNT("гіпер", "гіпэр");
	addPhraseNT("дакум(а|е)н", "дакумэн")
	addPhraseNT("дыверсан", "дывэрсан");
	addPhraseNT("дыпламат", "дыплямат");
	addPhraseNT("дыплом", "дыплём");
	addPhraseNT("дысерт", "дысэрт");
	addPhraseNT("дэзерцір", "дэзэрцір");
	addPhraseNT("еўрапе", "эўрапе")
	addPhraseNT("завербава", "завэрбава");
	addPhraseNT("ідэалаг", "ідэаляг");
	addPhraseNT("ідэалог", "ідэалёг");
	addPhraseNT("імпер", "імпэр")
	addPhraseNT("інвентар", "інвэнтар")
	addPhraseNT("інвест", "інвэст");
	addPhraseNT("іспан", "гішпан")
	addPhraseNT("каапера", "каапэра")
	addPhraseNT("кабінет", "кабінэт");
	addPhraseNT("калабар", "калябар");
	addPhraseNT("каланіс", "каляніс");
	addPhraseNT("каларыт", "калярыт")
	addPhraseNT("калегіум", "калегіюм");
	addPhraseNT("калон", "калён");
	addPhraseNT("калоід", "калёід");
	addPhraseNT("каменд", "камэнд")
	addPhraseNT("камент", "камэнт")
	addPhraseNT("камер", "камэр")
	addPhraseNT("кампазі", "кампазы")
	addPhraseNT("кампанен", "кампанэн")
	addPhraseNT("кампенса", "кампэнса");
	addPhraseNT("кампетэн", "кампэтэн")
	addPhraseNT("канвен", "канвэн");
	addPhraseNT("кансерв", "кансэрв")
	addPhraseNT("канспект", "канспэкт")
	addPhraseNT("канфэрен", "канфэрэн");
	addPhraseNT("кафедр", "катэдр")
	addPhraseNT("класн", "клясн");
	addPhraseNT("класі", "клясы")
	addPhraseNT("кібер", "кібэр");
	addPhraseNT("лабаратор", "лябаратор");
	addPhraseNT("лагер", "лягер");
	addPhraseNT("лагічн", "лягічн")
	addPhraseNT("ладзімір", "ладзімер")
	addPhraseNT("ланд", "лянд");
	addPhraseNT("ландшафт", "ляндшафт");
	addPhraseNT("логі", "лёгі")
	addPhraseNT("ліберал", "лібэрал");
	addPhraseNT("ліберы(й|я)( | |\\.|,|с)", "лібэры$2$3");
	addPhraseNT("ліван( | |\\.|,|к|с)", "лібан$2");
	addPhraseNT("ліві(й|я)( | |\\.|,|с)", "лібі$2$3");
	addPhraseNT("максімал", "максымал")
	addPhraseNT("манумент", "манумэнт")
	addPhraseNT("медал", "мэдал")
	addPhraseNT("медык", "мэдык");
	addPhraseNT("меліяра", "мэліяра");
	addPhraseNT("мемарыял", "мэмарыял");
	addPhraseNT("метад", "мэтад");
	addPhraseNT("метал", "мэтал");
	addPhraseNT("метр( | |\\.|,)", "мэтар$2");
	addPhraseNT("метр(а|ы|у)", "мэтр$2");
	addPhraseNT("метэа(р|с)", "мэтэа$2");
	addPhraseNT("метэор", "мэтэор");
	addPhraseNT("механ", "мэхан");
	addPhraseNT("мецэна(т|ц)", "мэцэна$2");
	addPhraseNT("музе(й|я|ю|і)", "музэ$2");
	addPhraseNT("мэнэджмен", "мэнэджмэн");
	addPhraseNT("мюнхен", "мюнхэн");
	addPhraseNT("натары(у|ў)с", "натарыюс");
	addPhraseNT("негаты", "нэгаты");
	addPhraseNT("нейтрал", "нэўтрал");
	addPhraseNT("нобелеўск", "нобэлеўск");
	addPhraseNT("ніверсал", "нівэрсал");
	addPhraseNT("ніверсітэ", "нівэрсытэ");
	addPhraseNT("опер(а|ы)", "опэр$2");
	addPhraseNT("пазіцы", "пазыцы");
	addPhraseNT("парамет", "парамэт");
	addPhraseNT("парламен", "парлямэн");
	addPhraseNT("педаг(а|о)", "пэдаг$2");
	addPhraseNT("пейзаж", "пэйзаж");
	addPhraseNT("перпендыкуляр", "пэрпэндыкуляр");
	addPhraseNT("персана", "пэрсана");
	addPhraseNT("перспекты", "пэрспэкты");
	addPhraseNT("персі(і|я)", "пэрсі$2");
	addPhraseNT("персід", "пэрсыд");
	addPhraseNT("перыяд", "пэрыяд")
	addPhraseNT("песімі(з|с)", "пэсымі$2");
	addPhraseNT("плакат", "плякат");
	addPhraseNT("план", "плян")
	addPhraseNT("пласты(к|ч)", "плясты$2");
	addPhraseNT("платформ", "плятформ");
	addPhraseNT("плафон", "пляфон");
	addPhraseNT("прафес(а|і|у)", "прафэс$2")
	addPhraseNT("прызёр", "прызэр")
	addPhraseNT("псеўда", "псэўда");
	addPhraseNT("псіх(а|і|о)", "псых$2")
	addPhraseNT("піянер", "піянэр")
	addPhraseNT("расі(і|ю|я)( | |\\.|,)", "расе$2$3")
	addPhraseNT("расійск", "расейск")
	addPhraseNT("рланд", "рлянд")
	addPhraseNT("рэзерв", "рэзэрв")
	addPhraseNT("рэзідэн", "рэзыдэн")
	addPhraseNT("рэкаменд", "рэкамэнд")
	addPhraseNT("рэклам", "рэклям")
	addPhraseNT("рэфер", "рэфэр")
	addPhraseNT("салон", "салён");
	addPhraseNT("сезон", "сэзон")
	addPhraseNT("семінар", "сэмінар")
	addPhraseNT("сенат", "сэнат");
	addPhraseNT("серв(а|е)", "сэрв$2");
	addPhraseNT("сервіс", "сэрвіс");
	addPhraseNT("сесі(і|я)", "сэсі$2");
	addPhraseNT("сквер", "сквэр");
	addPhraseNT("спектр( | |\\.|,)", "спэктар$2");
	addPhraseNT("спектр(а|ы)", "спэктр$2");
	addPhraseNT("спец( | |\\.|,|а|б|в|г|д|ж|з|і|к|л|м|н|п|с|т|у|ф|х|ц|ч|ш|ы|я|-)", "спэц$2");
	addPhraseNT("стыпенд", "стыпэнд");
	addPhraseNT("супер( | |\\.|,|б|в|г|д|ж|з|і|к|л|м|п|с|т|у|ф|х|ц|ч)", "супэр$2");
	addPhraseNT("сфер", "сфэр")
	addPhraseNT("схалас", "схаляс");
	addPhraseNT("сібір", "сыбір")
	addPhraseNT("сігнал", "сыгнал")
	addPhraseNT("сілезі", "сылезі")
	addPhraseNT("сілік(а|о)", "сылік$2");
	addPhraseNT("сімв(а|о)лі", "сымб$2лі");
	addPhraseNT("сімвала", "сымбаля");
	addPhraseNT("сіметры", "сымэтры")
	addPhraseNT("сімпат", "сымпат");
	addPhraseNT("сімпт(а|о)м", "сымпт$2м");
	addPhraseNT("сімуля(в|н|ц)", "сымуля$2");
	addPhraseNT("сімф(а|о)ні", "сымф$2ні");
	addPhraseNT("сінагог", "сынагог")
	addPhraseNT("сінгапур", "сынгапур")
	addPhraseNT("сіндром", "сындром");
	addPhraseNT("сіндыка", "сындыка");
	addPhraseNT("сінкрэт", "сынкрэт");
	addPhraseNT("сінод", "сынод")
	addPhraseNT("сінонім", "сынонім");
	addPhraseNT("сінтакс", "сынтакс")
	addPhraseNT("сінтэз", "сынтэз")
	addPhraseNT("сінтэт", "сынтэт")
	addPhraseNT("сінус", "сынус");
	addPhraseNT("сінхр(а|о)", "сынхр$2")
	addPhraseNT("сіры(й|я)", "сыры$2");
	addPhraseNT("сістэм", "сыстэм")
	addPhraseNT("сітуацы", "сытуацы")
	addPhraseNT("сіфіліс", "сыфіліс");
	addPhraseNT("сіцылі", "сыцылі");
	addPhraseNT("спартсмен", "спартсмэн");
	addPhraseNT("тланд", "тлянд");
	addPhraseNT("транзіт", "транзыт")
	addPhraseNT("трансільв", "трансыльв");
	addPhraseNT("трапе(з|ц)", "трапэ$2");
	addPhraseNT("тэатр( | |\\.|,)", "тэатар$2")
	addPhraseNT("тэмпера", "тэмпэра")
	addPhraseNT("фанеты(к|ч)", "фанэты$2");
	addPhraseNT("феадал", "фэадал");
	addPhraseNT("федэра(л|ц)", "фэдэра$2")
	addPhraseNT("фельчар", "фэльчар")
	addPhraseNT("ферэнцы", "фэрэнцы");
	addPhraseNT("фізі", "фізы");
	addPhraseNT("філосаф", "філёзаф");
	addPhraseNT("флатылі", "флятылі")
	addPhraseNT("фло(т|ц)", "флё$2");
	addPhraseNT("фрагмент", "фрагмэнт")
	addPhraseNT("фундамент", "фундамэнт");
	addPhraseNT("цэмент", "цэмэнт")
	addPhraseNT("цэнтр( | |\\.|,)", "цэнтар$2")
	addPhraseNT("швед", "швэд");
	addPhraseNT("экспеды", "экспэды");
	addPhraseNT("эксперт", "экспэрт")
	addPhraseNT("эксперымент", "экспэрымэнт")
	addPhraseNT("эксплуата", "эксплюата");
	addPhraseNT("эстафет", "эстафэт");
	addPhraseNT("экумен", "экумэн");
	addPhraseNT("элемент", "элемэнт");
	addPhraseNT("энцыклапеды", "энцыкляпэды");
	addPhraseNT("эфект", "эфэкт");

	// зьбег шыпячых і сьвісьцячых і іншыя пераходы
	addPhraseNT("дск( | |\\.|,|і|а)", "дзк$2");
	addPhraseNT("гск", "ск");
	addPhraseNT("дств", "дзтв");
	addPhraseNT("жск", "ск");
	addPhraseNT("зск", "ск");
	addPhraseNT("кск(а|і)", "цк$1");
	addPhraseNT("хск", "ск");
	addPhraseNT("чск", "цк");
	addPhraseNT("шск", "ск");

	addStartingPhraseNT("без ([бвгджзклмнпрстфхцчш]{1,2})о", "бяз $2о");
	addStartingPhraseNT("года( | |\\.|,)", "году$2");
	addStartingPhraseNT("з ім( | |\\.|,|і)", "зь ім$2");
	addStartingPhraseNT("з інш", "зь інш");
	addStartingPhraseNT("з іх( | |\\.|,)", "зь іх$2");
	addStartingPhraseNT("з іхн", "зь іхн");
	addStartingPhraseNT("кіла", "кіля");
	addStartingPhraseNT("не ([бвгджзклмнпрстфхцчш]{1,2})о", "ня $2о");
	addStartingPhraseNT("не бачыў", "ня бачыў");
	addStartingPhraseNT("не беглы", "ня беглы");
	addStartingPhraseNT("не будзе", "ня будзе");
	addStartingPhraseNT("не быў", "ня быў");
	addStartingPhraseNT("не веда(е|л|ў|ць|ю)", "ня веда$2");
	addStartingPhraseNT("не вельмі", "ня вельмі");
	addStartingPhraseNT("не гучн(а|ы)", "ня гучн$2");
	addStartingPhraseNT("не далі( | |\\.|,)", "ня далі$2");
	addStartingPhraseNT("не даў( | |\\.|,)", "ня даў$2");
	addStartingPhraseNT("не ёсьць", "ня ёсьць");
	addStartingPhraseNT("не лепшы", "ня лепшы");
	addStartingPhraseNT("не ма(е|ючы|юць)( | |\\.|,)", "ня ма$2$3");
	addStartingPhraseNT("не мел(а|і)( | |\\.|,)", "ня мел$2$3");
	addStartingPhraseNT("не мець", "ня мець");
	addStartingPhraseNT("не меней", "ня меней");
	addStartingPhraseNT("не менш", "ня менш");
	addStartingPhraseNT("не меў( | |\\.|,)", "ня меў$2");
	addStartingPhraseNT("не наш", "ня наш");
	addStartingPhraseNT("не піш(а|у)цца( | |\\.|,)", "ня піш$2цца$3");
	addStartingPhraseNT("не раз( | |\\.|,)", "ня раз$2");
	addStartingPhraseNT("не рушы", "ня рушы");
	addStartingPhraseNT("не ска(жа|з)", "ня ска$2");
	addStartingPhraseNT("не ста(не|нуць|ў|лі)( | |\\.|,)", "ня ста$2$3");
	addStartingPhraseNT("не тыя", "ня тыя");
	addStartingPhraseNT("не ўвод", "ня ўвод");
	addStartingPhraseNT("не ўзводз", "ня ўзводз");
	addStartingPhraseNT("не ўс(е|ё)( | |\\.|,)", "ня ўс$2$3");
	addStartingPhraseNT("не ўтрым", "ня ўтрым");
	addStartingPhraseNT("не чуў", "ня чуў");

	// ў пасьля галоснай у папярэднім слове
	addStartingPhraseNT("а у", "а ў");
	addStartingPhraseNT("е у", "е ў");
	addStartingPhraseNT("ё у", "ё ў");
	addStartingPhraseNT("і у", "і ў");
	addStartingPhraseNT("о у", "о ў");
	addStartingPhraseNT("ы у", "ы ў");
	addStartingPhraseNT("э у", "э ў");
	addStartingPhraseNT("ю у", "ю ў");
	addStartingPhraseNT("я у", "я ў");

	// поўныя канчаткі
	//addStartingPhraseNT("(аб’ектывацы|аблігацы|абсорбцы|абстракцы|абструкцы|авары|авацы|агрэсі|адміністрацы|адукацы|акадэмі|аказі|акамадацы|акацы|актуалізацы|актывізацы|акупацы|акцы|алігархі|алітэрацы|амбіцы|амністы|амуніцы|амэрыканізацы|анатацы||англізацы|анталёгі|антыномі|антыпаты|антыўтопі|анэксі|апазыцы|аплікацы|апрабацы|апэляцы|апэрацы|апэрцэпцы|араторы|арганізацы|аргумэнтацы|армі|артыкуляцы|артэры|арцыдыяцэзі|арыентацы|асамбле|асацыяцы|асыгнацы|асыміляцы|асэнізацы|атрыбуцы|аўдыторы|аўтаматызацы|аўтанамізацы|аўтаномі|бактэры|біяграфі|бухгальтэры|вакансі|вакацы|вакцынацы|валькіры|варыяцы|вэрсі|галерэ|галюцынацы|гаранты|гартэнзі|гварды|гегемоні|генэрацы|гімназі|градацы|датацы|дывізі|дывэрсі|дынасты|дырэкцы|дыскусі|дыстанцы|дысэртацы|дыфузі|дыфэрэнцыяцы|дыяцэзі|дэвальвацы|дэгенэрацы|дэградацы|дэдыкацы|дэкарацы|дэклямацы|дэклярацы|дэлегацы|дэмакраты|дэманстрацы|дэнамінацы|дэнансацы|дэпартацы|дэпрэсі|дэпутацы|дэспаты|дэструкцы|дэталізацы|дэфініцы|заве|згра|ідылі|ідэ|ідэалізацы|ізаляцы|ілюзі|ілюмінацы|ілюстрацы|іміграцы|імітацы|імправізацы|імпрэсі|імпэры|інавацы|інвазі|інвэнтарызацы|інвэнцы|інвэрсі|інвэстыцы|інгаляцы|індэксацы|ін’екцы|ініцыяцы|інкарпарацы|інкасацы|інквізыцы|інкрустацы|інспэкцы|інсталяцы|інстанцы|інструкцы|інстытуцы|інсцэнізацы|інсынуацы|інсьпірацы|інтаксыкацы|інтанацы|інтрадукцы|інтраспэкцы|інтэграцы|інтэнцы|інтэрвэнцы|інтэрмэды|інтэрпэляцы|інтэрпрэтацы|інфармацы|інфляцы|інфузоры|інфэкцы|кааліцы|каапэрацы|кадэнцы|калегі|калекцы|калёні|калёры|калізі|калянізацы|камбінацы|камісі|кампазыцы|кампані|кампіляцы|камплекцы|камплікацы|кампрамэтацы|кампэнсацы|кампэтэнцы|камунікацы|камуні|камэды|каналізацы|кананізацы|канатацы|канвалі|канвульсі|канвэнцы|кандыцы|канстатацы|канструкцы|канстытуцы|кансультацы|кансысторы|кансэрваторы|кансэрвацы|кантамінацы|кантрыбуцы|кантузі|канфігурацы|канфіскацы|канфэрэнцы|канфэсі|канцыляры|канцэпцы|канцэсі|каранацы|карпарацы|карэкцы|карэспандэнцы|катэгоры|кваліфікацы|квінтэсэнцы|квітанцы|клясыфікацы|копі|кульмінацы|кумпані|легалізацы|лекцы|ліквідацы|ліле|ліні|літаграфі|ліцэнзі|лябараторы|лякалізацы|мабілізацы|магі|мадуляцы|мадыфікацы|мадэрнізацы|манаграфі|манаполі|манархі|маніпуляцы|маніфэстацы|матывацы|міграцы|місі|містыфікацы|містэры|міталёгі|мітраполі|мумі|мутацы|мэдытацы|мэлёды|мэтраполі|навацы|надзе|намінацы|нацы|нацыяналізацы|нумарацы|нутры|онталёгі|падзе|пазыцы|палюцы|панацэ|парафі|пароды|партупэ|парты|патрыярхі|патэнцы|пашпартызацы|паэзі|пігмэнтацы|піцэры|плянтацы|правакацы|правінцы|прагрэсі|прадукцы|праекцы|прапорцы|пратэкцы|прафэсі|працэсі|прэзумпцы|прэзэнтацы|прэтэнзі|публікацы|пэленгацы|пэрсаніфікацы|пэртрактацы|пэрыпэты|пэрыфэры|пэрыядызацы|пэтыцы|рапсоды|ратацы|ратыфікацы|рацы|рэакцы|рэалізацы|рэалі|рэвалюцы|рэвізі|рэгабілітацы|рэгалі|рэгенэрацы|рэгістрацы|рэдакцы|рэзалюцы|рэзыдэнцы|рэзэрвацы|рэкамэндацы|рэквізыцы|рэлігі|рэлікві|рэляцы|рэмінісцэнцы|рэпарацы|рэпатрыяцы|рэпрэсі|рэпэтыцы|рэстарацы|рэстаўрацы|рэфлексі|рэцэнзі|санкцы|скумбры|спэкцы|спэцыялізацы|стады|стандартызацы|станцы|стату|стратэгі|структурызацы|студы|стылізацы|стымуляцы|стыпэнды|стыхі|сублімацы|субсыды|сыміляцы|сымпаты|сымфоні|сытуацы|сэкцы|сэнсацы|сэнтэнцы|сэры|сэсі|традыцы|траекторы|транскрыпцы|трансплянтацы|трансфармацы|трансьлітарацы|трансьляцы|траншэ|трапэцы|трэпанацы|турбацы|тэлевізі|тэндэнцы|тэоры|тэрмінацы|тэрыторы|тэхналёгі|узурпацы|уніфікацы|уні|утопі|фабрыкацы|фальсыфікацы|фамілі|фантазі|фантасмагоры|фармацы|фартыфікацы|фартэцы|фатаграфі|фізіяномі|фіксацы|фікцы|філі|флексі|флятылі|фобі|фракцы|фрустрацы|фундацы|функцы|фуры|фэдэрацы|фэеры|фэкалі|харты|храналёгі|хрэстаматы|цывілізацы|цыркуляцы|цырымоні|эвакуацы|эвалюцы|эвангелізацы|экзэкуцы|экранізацы|эксгумацы|экскурсі|экспазыцы|экспансі|эксплёатацы|эксплікацы|экспэдыцы|экстрапаляцы|элегі|эміграцы|эмісі|эмоцы|эмпірэ|энцыкляпэды|эпапе|эпідэмі|эпітафі|эрозі|эсэнцы|этнаэоры)й( | |\\.|,)", "$2яў$3");

	for (i = 0; i < phrasesNT.length; i++){
		applyRegexpNT(phrasesNT[i][0], phrasesNT[i][1])
	}

	txtNT = txtNT.replace(/((?:(?:Д|д)з)|З|з|С|с)(б|в|л|м|н|п|ф|с|з|ц|дз)(е|ё|ю|я|і|ь)/g, '$1ь$2$3')
	txtNT = txtNT.replace(/(З|з)(’|')(е|ё|ю|я|і)/g, '$1ь$3')
	txtNT = txtNT.replace(/((?:Д|д)з)(в)(е|ё|ю|я|і|ь)/g, '$1ь$2$3')
	txtNT = txtNT.replace(/(Ц|ц)(в)(е|ё|ю|я|і|ь)/g, '$1ь$2$3')
	txtNT = txtNT.replace(/(лл)(е|ё|ю|я|і|ь)/g, 'льл$2')
	txtNT = txtNT.replace(/(нн)(е|ё|ю|я|і|ь)/g, 'ньн$2')
	txtNT = txtNT.replace(/(зз)(е|ё|ю|я|і|ь)/g, 'зьз$2')
	txtNT = txtNT.replace(/(цц)(е|ё|ю|я|і|ь)/g, 'цьц$2')
	txtNT = txtNT.replace(/(сс)(е|ё|ю|я|і|ь)/g, 'сьс$2')
	txtNT = txtNT.replace(/(ддз)(е|ё|ю|я|і|ь)/g, 'дзьдз$2')

	txtNT = txtNT.replace(/( | |^|\\n|')(З|з)( | )(б|в|л|м|н|п|ф)(е|ё|ю|я|і)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')(З|з)( | )(з|с|ц|дз)(е|ё|ю|я|і|ь)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')(З|з)( | )(е|ё|ю|я)/gm, '$1$2ь$3$4')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:П|п)раз)( | )(б|в|л|м|н|п|ф)(е|ё|ю|я|і)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:П|п)раз)( | )(з|с|ц|дз)(е|ё|ю|я|і|ь)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:П|п)раз)( | )(е|ё|ю|я)/gm, '$1$2ь$3$4')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:Б|б)(?:е|я)з)( | )(б|в|л|м|н|п|ф)(е|ё|ю|я|і)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:Б|б)(?:е|я)з)( | )(з|с|ц|дз)(е|ё|ю|я|і|ь)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:Б|б)(?:е|я)з)( | )(е|ё|ю|я)/gm, '$1$2ь$3$4')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:Ц|ц)ераз)( | )(б|в|л|м|н|п|ф)(е|ё|ю|я|і)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:Ц|ц)ераз)( | )(з|с|ц|дз)(е|ё|ю|я|і|ь)/gm, '$1$2ь$3$4$5')
	txtNT = txtNT.replace(/( | |^|\\n|')((?:Ц|ц)ераз)( | )(е|ё|ю|я)/gm, '$1$2ь$3$4')

}

$('#wpTextbox1').on('wikiEditor-toolbar-buildGroup-gadgets', function(event){
	NTButton();
});

// </nowiki></pre>