Thành viên:NgocAnMaster/ProtectionIndicators.js

Bách khoa toàn thư mở Wikipedia

Chú ý: Sau khi lưu thay đổi trang, bạn phải xóa bộ nhớ đệm của trình duyệt để nhìn thấy các thay đổi. Google Chrome, Firefox, Internet ExplorerSafari: Giữ phím ⇧ Shift và nhấn nút Reload/Tải lại trên thanh công cụ của trình duyệt. Để biết chi tiết và hướng dẫn cho các trình duyệt khác, xem Trợ giúp:Xóa bộ nhớ đệm.

( function ( mw, $ ) {

function setMessages() {
	switch ( mw.config.get( 'wgUserLanguage' ) ) {
		default:
		case 'en':
			mw.messages.set( {
				'gadget-protection-autoconfirmed': 'This page has been semi-protected.',
				'gadget-protection-extendedconfirmed': 'This page has been extended-protected.',
				'gadget-protection-templateeditor': 'This page has been template-protected.',
				'gadget-protection-editprotected': 'This page is fully-protected.'
			} );
			break;
		case 'be-tarask':
			mw.messages.set( {
				'gadget-protection-autoconfirmed': 'Гэтая старонка часткова абароненая.',
				'gadget-protection-extendedconfirmed': 'Гэта старонка была пашырана.',
				'gadget-protection-templateeditor': 'Гэта старонка была абаронена шаблонам.',
				'gadget-protection-editprotected': 'Гэтая старонка цалкам абароненая.'
			} );
			break;		
		case 'de':
			mw.messages.set( {
				'gadget-protection-autoconfirmed': 'Diese Seite ist halbgeschützt.',
				'gadget-protection-extendedconfirmed': 'Diese Seite wurde erweitert geschützt.',
				'gadget-protection-templateeditor': 'Diese Seite wurde vorlagengeschützt.',
				'gadget-protection-editprotected': 'Diese Seite ist vollgeschützt.'
			} );
			break;
		case 'mk':
			mw.messages.set( {
				'gadget-protection-autoconfirmed': 'Страницава е полузаштитена.',
				'gadget-protection-extendedconfirmed': 'Оваа страница е заштитена со проширување.',
				'gadget-protection-templateeditor': 'Оваа страница е заштитена со образец.',
				'gadget-protection-editprotected': 'Страницава е наполно заштитена.'
			} );
			break;
		case 'nl':
			mw.messages.set( {
				'gadget-protection-autoconfirmed': 'Deze pagina is semi-beveiligd.',
				'gadget-protection-extendedconfirmed': 'Deze pagina is uitgebreid beveiligd.',
				'gadget-protection-templateeditor': 'Deze pagina is beveiligd met een sjabloon.',
				'gadget-protection-editprotected': 'Deze pagina is volledig beveiligd.'
			} );
			break;
		case 'pl':
			mw.messages.set( {
				'gadget-protection-autoconfirmed': 'Ta strona została zabezpieczona na poziomie niskim.',
				'gadget-protection-extendedconfirmed': 'Ta strona ma rozszerzoną ochronę.',
				'gadget-protection-templateeditor': 'Ta strona została zabezpieczona szablonem.',
				'gadget-protection-editprotected': 'Ta strona została zabezpieczona na poziomie wysokim.'
			} );
			break;
					case 'vi':
			mw.messages.set( {
				'gadget-protection-autoconfirmed': 'Trang này đã bị khóa hạn chế sửa đổi.',
				'gadget-protection-extendedconfirmed': 'Trang này đã bị khóa mở rộng.',
				'gadget-protection-templateeditor': 'Trang này đã bị khoá bản mẫu.',
				'gadget-protection-editprotected': 'Trang này đã bị khóa hoàn toàn.'
			} );
			break;
	}
}	

function init() {
	var restrictions = mw.config.get( 'wgRestrictionEdit' ),
		action = mw.config.get( 'wgAction' );

	if ( action === 'view' && restrictions !== null && restrictions.length > 0 ) {
		var $indicators = $( '.mw-indicators' ).first();
			protectLevel = null;

		if ( $indicators.find( '#mw-indicator-protected' ).length > 0 ) {
			return;
		}

		setMessages();

		if ( restrictions.indexOf( 'sysop' ) !== -1 ) {
			protectLevel = 'editprotected';
		} else if ( restrictions.indexOf( 'extendedconfirmed' ) !== -1 ) {
			protectLevel = 'extendedconfirmed';
		} else if ( restrictions.indexOf( 'autoconfirmed' ) !== -1 ) {
			protectLevel = 'autoconfirmed';
		} else if ( restrictions.indexOf( 'templateeditor' ) !== -1 ) {
			protectLevel = 'templateeditor';
		}

		var protectText = mw.msg( 'gadget-protection-' + protectLevel );

		$( '<div>' )
			.addClass( 'mw-indicator mw-indicator-protect' )
			.attr( {
				id: 'mw-indicator-protect-' + protectLevel,
				title: protectText,
				alt: protectText
			} )
			.appendTo( $indicators );
	}
}

$( init );

}( mediaWiki, jQuery ) );