MediaWiki:Gadget-add-word.js

Z Wikisłownika – wolnego słownika wielojęzycznego

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
var $wpTextbox;

function makeOptions( template, firstParam, secondParam, splitString ) {
	var s, arr;
	
	splitString = splitString || '[[krótki|krótka]] [[definicja]]';
	s = mw.format( template.join( '\n' ), firstParam, secondParam );
	arr = s.split( splitString );
	
	return {
		pre:  arr[ 0 ],
		peri: splitString,
		post: arr[ 1 ]
	};
}

function addWordSection() {
	var defaultTemplate, polishTemplate, otherTemplate,
		isPhrase = (
			mw.config.get( 'wgNamespaceNumber' ) === 0 &&
			mw.config.get( 'wgTitle' ).indexOf( ' ' ) !== -1 &&
			!/ się$/.test( mw.config.get( 'wgTitle' ) )
		);
	
	defaultTemplate = [
		'== ' + mw.config.get( 'wgTitle' ) + ' ({{$1}}) ==',
		'{{wymowa}}',
		'{{znaczenia}}',
		'\'\'$2\'\'',
		': (1.1) [[krótki|krótka]] [[definicja]]',
		'{{odmiana}}',
		'{{przykłady}}',
		': (1.1) \'\'[[przykład|Przykład]] [[zdanie|zdania]].\'\' → [[tłumaczenie|Tłumaczenie]] [[zdanie|zdania]].',
		'{{składnia}}',
		'{{kolokacje}}',
		'{{synonimy}}',
		'{{antonimy}}',
		'{{hiperonimy}}',
		'{{hiponimy}}',
		'{{holonimy}}',
		'{{meronimy}}',
		'{{pokrewne}}',
		'{{frazeologia}}',
		'{{etymologia}}',
		'{{uwagi}}',
		'{{tłumaczenia}}',
		'* angielski: (1.1) [[ ]]',
		'{{źródła}}'
	];
	
	polishTemplate = $.merge( [], defaultTemplate );
	polishTemplate[ 7 ] = ': (1.1) \'\'[[przykład|Przykład]] [[zdanie|zdania]].\'\'';

	otherTemplate = $.merge( [], defaultTemplate );
	otherTemplate.splice( 20, 2 ); // pole 'tłumaczenia'
	
	// Nowy toolbar z nowymi sekcjami językowymi
	$wpTextbox.wikiEditor( 'addToToolbar', {
		'sections': {
			'addword': {
				'type': 'toolbar',
				'label': 'Nowa sekcja',
				'groups': {
					'other': {
						'label': 'Nowa sekcja',
						'tools': {
							'misc': {
								label: 'Nowe hasło',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Nuvola_action_edit_add.svg/22px-Nuvola_action_edit_add.svg.png',
								action: {
									type: 'encapsulate',
									options: makeOptions(
										defaultTemplate,
										'język jaki',
										'rzeczownik, rodzaj żeński, męski',
										'jaki'
									)
								}
							},
							'guidelines': {
								label: 'Zasady',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Gtk-dialog-info.svg/22px-Gtk-dialog-info.svg.png',
								action: {
									type: 'callback',
									execute: function () {
										var url = mw.util.getUrl( 'Wikisłownik:Zasady tworzenia haseł' );
										
										if (
											window.open( url, '_blank' ) === null &&
											window.confirm( 'Czy chcesz opuścić tę stronę i otworzyć w jej miejscu stronę zasad?' )
										) {
											location.href = url;
										}
									}
								}
							}
						}
					},
					'pl': {
						'label': 'Polski',
						'tools': {
							'rzeczownik': {
								label: 'Nowe hasło (rzeczownik, język polski)',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-R.png/22px-Newfont-R.png',
								action: {
									type: 'encapsulate',
									options: makeOptions(
										polishTemplate,
										'język polski',
										( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' ) + ', rodzaj męskoosobowy/męskozwierzęcy/męskorzeczowy/żeński/nijaki'
									)
								}
							},
							'przymiotnik': {
								label: 'Nowe hasło (przymiotnik, język polski)',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-P.png/22px-Newfont-P.png',
								action: {
									type: 'encapsulate',
									options: makeOptions(
										polishTemplate,
										'język polski',
										( isPhrase ? 'fraza przymiotnikowa' : 'przymiotnik' ),
										'[[krótki|krótka]] [[definicja]]'
									)
								}
							},
							'czasownik': {
								label: 'Nowe hasło (czasownik, język polski)',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
								action: {
									type: 'encapsulate',
									options: makeOptions(
										polishTemplate,
										'język polski',
										( isPhrase ? 'fraza czasownikowa' : 'czasownik' )
									)
								}
							}
						}
					},
					'en': {
						'label': 'Angielski',
						'tools': {
							'rzeczownik': {
								label: 'Nowe hasło (rzeczownik, język angielski)',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-R.png/22px-Newfont-R.png',
								action: {
									type: 'encapsulate',
									options: makeOptions(
										otherTemplate,
										'język angielski',
										( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' )
									)
								}
							},
							'przymiotnik': {
								label: 'Nowe hasło (przymiotnik, język angielski)',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-P.png/22px-Newfont-P.png',
								action: {
									type: 'encapsulate',
									options: makeOptions(
										otherTemplate,
										'język angielski',
										( isPhrase ? 'fraza przymiotnikowa' : 'przymiotnik' )
									)
								}
							},
							'czasownik': {
								label: 'Nowe hasło (czasownik, język angielski)',
								type: 'button',
								icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
								action: {
									type: 'encapsulate',
									options: makeOptions(
										otherTemplate,
										'język angielski',
										( isPhrase ? 'fraza czasownikowa' : 'czasownik' )
									)
								}
							}
						}
					}
				}
			}
		}
	} );
}

if ( Number( mw.user.options.get( 'usebetatoolbar' ) ) ) {
	mw.loader.using( [ 'ext.wikiEditor', 'mediawiki.cookie' ] ).done( function () {
		/* Otwórz nowym użytkownikom z defaultu "Nowa sekcja językowa". Autor: [[user:Olaf]] */
		if ( mw.cookie.get( 'wikiEditor-0-toolbar-section', '' ) === null ) {
			mw.cookie.set( 'wikiEditor-0-toolbar-section', 'addword', { prefix: '' } );
		}
		
		$( function () {
			$wpTextbox = $( '#wpTextbox1' );
			addWordSection();
			mw.hook( 'toolbarGadget.addWordReady' ).fire( $wpTextbox );
		} );
	} );
}