// এই কোডটুকু রুশ উইকির ru:MediaWiki:Gadget-summaryButtons.js থেকে নেয়া হয়েছে // Код из польской Википедии, изначально адаптированный для русскоязычного раздела Википедии by u:Alex Smotrov // https://ru.wikipedia.org/w/index.php?diff=32005736&oldid=32004004&title=MediaWiki%3AEditpage.js&type=revision  function go() { function initSummaryButtons( mode ) { 	function insertSummary( txt ) { 		if ( typeof txt !== 'string' ) { 			txt = this.title; 		} 		if ( typeof summaryItemsSeparator === 'undefined' ) { 			window.summaryItemsSeparator = ','; 		} 		var val = $summary.val(); 		var regExp = new RegExp( '(^|[,;.?!/]) ?' + mw.util.escapeRegExp( txt ) ); 		if ( regExp.test( val ) ) { 			return; 		} 		if ( /[^,; \/]$/.test( val ) ) { 			val += summaryItemsSeparator; 		} 		if ( /[^ ]$/.test( val ) ) { 			val += ' '; 		} 		$summary.val( val + txt ).focus().change(); 	} 	 	mode = mode || 'classic'; 	 	if ( typeof summaryButtons === 'undefined' ) { 		window.summaryButtons = { 			hideDefaultButtons: false 		}; 	} 	 	var veSaveDialog, $summaryWrapper, $summary; 	if ( mode === 'classic' ) { 		$summaryWrapper = $( '#wpSummaryWidget' ); 		$summary = $( '#wpSummary' ); 	} else { 		veSaveDialog = ve.init.target.saveDialog; 		if(veSaveDialog) { 			$summaryWrapper = veSaveDialog.editSummaryInput.$element; 			$summary = veSaveDialog.editSummaryInput.$input; 		} 	} 	 	var $summaryButtons = $( '<div>' ) 		.addClass( 'summaryButtons' ) 		.insertAfter( $summaryWrapper ); 	var $groups = $( '<div>' ) 		.addClass( 'summaryButtons-groups' ) 		.appendTo( $summaryButtons ); 	 	window.addSumButton = window.addSummaryButton = function ( label, text, group ) { 		group = group || 'custom';  // default is 'default' 		var $group = $( '.summaryButtons-group-' + group ); 		if ( !$group.length ) { 			$group = $( '<div>' ) 				.addClass( 'mw-ui-button-group summaryButtons-group summaryButtons-group-' + group ) 				.appendTo( $groups ); 		} 		 		$( '<a>' ) 			.attr( 'role', 'button' ) 			.attr( 'title', text ) 			.addClass( 'mw-ui-button summaryButtons-button' ) 			.html( label ) 			.click( insertSummary ) 			.appendTo( $group ); 	}; 	 	var buttons = mode !== 'visual' ? 		// সাধারণ সম্পাদনা মোডের জন্য বোতাম 		[ 			'সংশোধন', 'সম্প্রসারণ', 'তথ্যসূত্র| যোগ/সংশোধন', 'পরিষ্কার|করণ', 'অনুবাদ', 			'রচনাশৈলী', 'বিষয়শ্রেণী', 'চিত্র', 'বিষয়বস্তু| যোগ', 'বানান| সংশোধন', 			'হালনাগাদ| করা হল', 'ট্যাগ| যোগ/বাতিল', 'অনুলিপি| সম্পাদনা', 'উত্তর| প্রদান', 'মন্তব্য| যোগ' 		] : 		// দৃশ্যমান সম্পাদনার জন্য বোতাম - আলোচনার জন্য কোনও বোতাম নেই 		// (দৃশ্যমান সম্পাদনা আলোচনার পৃষ্ঠাগুলিতে ব্যবহারের উদ্দেশ্যে নয়) 		[ 			'সংশোধন', 'সম্প্রসারণ', 'তথ্যসূত্র| যোগ/সংশোধন', 'পরিষ্কার|করণ', 'অনুবাদ', 			'রচনাশৈলী', 'বিষয়শ্রেণী', 'চিত্র', 'বিষয়বস্তু| যোগ', 'বানান| সংশোধন', 			'হালনাগাদ| করা হল', 'ট্যাগ| যোগ/বাতিল', 'অনুলিপি| সম্পাদনা' 		]; 	 	if ( !summaryButtons.hideDefaultButtons ) { 		$.each( 			buttons, 			function ( i, s ) { 				addSummaryButton( s.replace( /\|.*/,  ), s.replace( /\|/,  ), 'default' ); 			} 		); 	} 	$( '<a>' ) 		.attr( 'href', 'https://bn.wikipedia.org/wiki/উইকিপিডিয়া:গ্যাজেট/সম্পাদনা_সারাংশ_বোতাম' ) 		.attr( 'target', '_blank' ) 		.attr( 'title', 'সম্পাদনা সারাংশ বোতাম সম্পর্কিত তথ্য' ) 		.attr( 'tabindex', '-1' ) 		.addClass( 'mw-ui-button mw-ui-quiet summaryButtons-info-link' ) 		.text( '?' ) 		.appendTo( $summaryButtons ); 	 	// Эти стили находятся здесь, а не в отдельном CSS, потому что на страницах, где кнопок нет, 	// они вредны, а за тем, где запускается CSS, мы не можем проследить. 	mw.util.addCSS( '\ 		.mw-editform #wpSummaryWidget {\ 			margin-bottom: 0;\ 		}\ 		\ 		.mw-editform .editCheckboxes {\ 			margin-top: .85714em;\ 		}\ 	' ); 	 	if ( mode !== 'classic' && !additionalCSS ) { 		additionalCSS = mw.util.addCSS( '\ 			.ve-ui-mwSaveDialog-savePanel .summaryButtons {\ 				margin-top: 2px;\ 			}\ 			\ 			.ve-ui-mwSaveDialog-savePanel .ve-ui-mwSaveDialog-options {\ 				border-top: 1px solid #c8ccd1;\ 				border-radius: 2px;\ 			}\ 		' ); 		veSaveDialog.updateSize(); 	} 	 	mw.hook( 'summaryButtons' ).fire(); }  var additionalCSS; if ( window.ve && ve.init && ve.init.target && ve.init.target.active || $( '.ve-loading' ).length ) { 	mw.hook( 've.saveDialog.stateChanged' ).add( function () { 		if ( !mw.config.get( 'wgArticleId' ) || $( '.summaryButtons' ).length ) return; 		initSummaryButtons( ve.init.target.getSurface().getMode() ); 	} ); } else if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) { 	$( function () { 		var frm = document.getElementById( 'editform' ); 		if ( !mw.config.get( 'wgArticleId' ) || !frm || $( frm.wpSection ).val() === 'new' ) return; 		initSummaryButtons( 'classic' ); 	} ); } }  if ( !( window.ve && ve.init && ve.init.target && ve.init.target.active || $( '.ve-loading' ).length ) ) { 	go(); } mw.hook( 've.activationComplete' ).add( function () { 	go(); } );