User:Ladsgroup/GlobalRenameCommonReasons.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)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
(function(mw) {
	let messages = {
		'en': [
			'The new username is not following the username policies.',
			'The user does not have a good standing.',
			'A username rename has been requested too recently.',
			'A similar name is already in use by someone else. Please, choose a different one.',
			'This account is blocked on your home wiki. Please ask unblock on your talk page before requesting rename.',
			'The desired name mentions a company or business name.',
			'The pattern of desired name is commonly left for vanishing accounts. If you do not plan to abandon this account for good, please select another name.'
		],
		'de': [
			'Der neue Benutzername ist zu geil.'
		],
		'ar': [
			'السلام عليكم. الاسم المُختار يخالف سياسة اسم المستخدم.',
			'السلام عليكم. جرى إعادة تسمية اسم المستخدم قريبًا.',
			'السلام عليكم. اسم مشابه لاسم مستخدم موجود. من فضلك ، اختر اسمًا آخر.',
			'السلام عليكم. هذا الحساب محظور. الرجاء طلب إلغاء الحظر على صفحة النقاش الخاصة بك قبل طلب إعادة التسمية.',
			'السلام عليكم. الاسم المطلوب به اسم شركة أو نشاط تجاري.',
			'السلام عليكم. عادة ما يُستخدم هذا النمط لحسابات الانسحاب. إذا كنت لا تريد الانسحاب، يُرجى اختيار اسمًا آخر'
		], 
		'fa': [
			'نام جدید مغایر سیاست‌های نام کاربری است.',
			'کاربر سابقه خوبی در ویکی ندارد.',
			'به تازگی تغییرنام درخواست شده.'
		],
		'fr': [
			'Le nom demandé enfreint les règles de choix des noms.',
			'Vous avez atteint le nombre de renommages maximal autorisé à un même compte.',
			'Votre compte est actuellement bloqué, aucun renommage ne peut être fait.',
			'Le nom demandé est trop proche de comptes existants. Merci de choisir un autre pseudo.'
		],
		'it': [
			'Ciao! Il nuovo nome utente che hai scelto è troppo simile ad un nome utente già esistente, per favore scegli un altro nome, grazie.',
			'Ciao! Tieni presente che il nome utente non ha nulla a che vedere con il titolo della pagina che vuoi scrivere.',
			'Ciao! Non sono ammessi nomi utente che possano far pensare a un\'utenza di "sistema" o che abbiano riferimento a qualche ruolo, ti invito a scegliere un altro nome utente, grazie.',
			'Ciao! Di solito sconsigliamo l\'uso nell\'username del nome e cognome reali, o di dati che possano rendere identificabili la tua persona, per questione di sicurezza e privacy. Pensaci un secondo e ricorda che una volta fatta questa scelta i dati saranno archiviati nei registri pubblici, se sei d\'accordo e vuoi confermare la tua scelta per favore rifai la richiesta di rinomina, altrimenti scegli un altro username! Grazie per la pazienza.',
			'Ciao! Il nome utente non può riferirsi a un sito web, associazione, azienda, ente, personalità giuridica, ecc.. Inoltre, ogni utenza può essere utilizzata da una singola persona fisica. L\'uso del nome e cognome reale è sconsigliato ed è sempre meglio, per ragioni di sicurezza, utilizzare uno pseudonimo o un nickname. Se volessi ottenere lo sblocco, ti preghiamo di chiedere nuovamente la rinomina, dopo avere letto attentamente le linee guida al link <https://w.wiki/yYJ>. Grazie per l\'attenzione!',
            'Ciao! Il nome utente scelto contiene caratteri che potrebbero confondere gli altri utenti e potrebbero causare errori di visualizzazione. Ti preghiamo di chiedere nuovamente la rinomina scegliendo un altro nome utente. Grazie per l\'attenzione!',
            'Ciao! La tua utenza risulta bloccata per motivi diversi dal nome utente inappropriato. In questi casi non ci è possibile procedere con la rinomina. Ti pregiamo di risolvere la questione del blocco con gli amministratori locali prima di chiedere nuovamente la rinomina. Grazie per l\'attenzione.',
            'Ciao, il nome utente richiesto è troppo generico, e in genere viene destinato agli utenti che hanno intenzione di abbandonare e non utilizzare mai più l\'utenza (anonimizzando il nome). Se è questo ciò che vuoi fare, poni nuovamente la stessa richiesta dal link https://w.wiki/7SRm , scrivendo "Chiedo di abbandonare l\'utenza" (leggi per maggiori informazioni https://w.wiki/3$xS )! Ricorda che, se la dovessi utilizzare nuovamente in futuro, verrà ripristinato il nome utente precedente. Altrimenti, se sei semplicemente interessato a una rinomina, scegli un altro username (dopo avere letto attentamente le linee guida al link https://w.wiki/yYJ ). Grazie per la comprensione.'
		],
        'pl': [
			'Wybrana nazwa użytkownika nie jest zgodna z zasadami.',
			'Użytkownik o złej reputacji.',
			'Upłynęło zbyt mało czasu od poprzedniej prośby o zmianę nazwy użytkownika.',
			'Wybrana nazwa jest zbyt podobna do już uzywanej przez innego użytkownika. Proszę wybrać inną nazwę.',
			'To konto jest zablokowane na swojej domowej wiki. Zmiana nazwy bedzie możliwa dopiero po odblokowaniu.',
			'Wybrana nazwa użytkownika jest adresem strony WWW lub nazwą instytucji, przedsiębiorstwa bądź znaku towarowego.',
			'Wybrana nazwa pasuje do wzoru zwykle wybieranego przy kontach użytkowników, którzy chcą być zapomniani. Jesli nie planujesz porzucenia tego konta wybierz inną nazwę.'
		],
		'vi': [
			'Tên người dùng mới không tuân thủ quy định về tên người dùng.',
			'Thành viên từng xảy ra nhiều tranh chấp và/hoặc từng bị cấm trước đây.',
			'Đã yêu cầu đổi tên người dùng gần đây.',
			'Tên người dùng bạn chọn gần giống với tên người dùng của thành viên nào đó. Xin vui lòng chọn tên khác',
			'Tài khoản đã bị cấm trên wiki nhà. Xin hãy yêu cầu bỏ cấm trên trang thảo luận trước khi yêu cầu đổi tên.',
			'Tên bạn chọn đề cập đến một công ty hoặc doanh nghiệp.',
			'Mẫu tên bạn chọn thường được để lại cho các tài khoản muốn biến mất. Nếu bạn không định từ bỏ tài khoản này mãi mãi, vui lòng chọn một tên khác'
		]
	}
	function getReasonsFromLangs( langs ) {
		let items = [];
		for (let i = 0; i < langs.length; i++) {
			items = [...items, ...messages[langs[i]]];
		}
		return items.map( x => new OO.ui.MenuOptionWidget( {
			data: x,
			label: x
		} ));
	}
	function buildReasonsDropDown(langs) {
		let reasons = new OO.ui.DropdownWidget( {
			label: 'Common rejecting reasons:',
			id: 'commonsReasonsDropDown',
			menu: {
				items: getReasonsFromLangs(langs)
			}
		} );
	
		let itemSelected = function( item ){
			$('#mw-renamequeue-comments textarea').val($('#mw-renamequeue-comments textarea').val() + item.data + "\n");
		};
		reasons.$element.css('margin-bottom', '5px');
		reasons.getMenu().on('select', itemSelected);

		return reasons;
	}
	if ( mw.config.get('wgCanonicalSpecialPageName') !== 'GlobalRenameQueue' ) {
		return;
	}
	if (!$('#mw-renamequeue-comments').length) {
		return;
	}
	let langs = mw.cookie.get( 'globalRenameCommonReasonsLangs', null, 'en' ).split(",");
	let langsWidgetLabel = new OO.ui.LabelWidget( {
        label: 'Languages for common reasons:'
    } );
	let langsWidget = new OO.ui.MenuTagMultiselectWidget( {
		selected: langs.map(x => { return { data: x, label: x} }),
		options: Object.keys(messages).map(x => { return { data: x, label: x} } ),
		tagLimit: 5,
	} );

	langsWidgetLabel.$element.css('margin-bottom', '5px');
	// TODO: Collapsing doesn't work :/
	let wrapper = $('<div>').attr('class', 'toccolours mw-collapsible');
	wrapper.css('width:400px; overflow:auto;');
	wrapper.append(langsWidgetLabel.$element);
	wrapper.append($('<br>'));
	wrapper.append(langsWidget.$element);

	$('.mw-body').after( wrapper );

	langsWidget.on('change', function( item ){
		mw.cookie.set( 'globalRenameCommonReasonsLangs', item.map( x => x.data ).join(',') );
		// Tried infuse, didn't work, sigh
		let reasons = buildReasonsDropDown(item.map(x => x.data ));
		$('#commonsReasonsDropDown').replaceWith( reasons.$element );
	});

	let reasons = buildReasonsDropDown(langs);
	$('#mw-renamequeue-comments').before( reasons.$element );
})(mediaWiki);