MediaWiki:Gadget-sablonbesav.js
Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.
- Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
- Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
- Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
// -*- mode:java; coding:utf-8 -*-
// <nowiki>
var $currentFocused;
/**
* Insert a character.
* @param {Event} e
*/
function insertCharacter( e ) {
e.preventDefault();
var char = $( this ).data( 'mw-charinsert-start' );
if ( $currentFocused.length ) {
$currentFocused.textSelection(
'encapsulateSelection', {
pre: char,
peri: '',
post: ''
}
);
}
}
/**
* Generate the box element containing the spec chars.
* @return {jQuery} The box
*/
function createCustomBar() {
var insert = [
[ '±', '±' ],
[ '<br>', '<br>' ],
[ '<small>lektor</small>', '{{lektor}}' ],
[ '<small>nincs formázva</small>', '{{nincs formázva}}' ],
[ '<small>szubcsonk</small>', '{{szubcsonk|~~' + '~' + '~~}}' ],
[ '<small>egyért2</small>', '{{Egyért2|erről|itt}}' ],
[ '<small>teszt</small>', '{{subst:teszt}}' ],
[ '<small>teszt2</small>', '{{subst:teszt2}}' ],
[ '<small>stop!</small>', '{{subst:teszt3}}' ],
[ '<small>vandál</small>', '{{subst:vandalizmus}}' ],
[ '<small>utolsó!</small>', '{{subst:teszt4rögtön}}' ],
[ '<small>blokkolva</small>', '{{subst:blokkolva|1 órára|oka}}' ],
[ '<small>nemásolj!</small>', '{{subst:nemásolj|lap neve|ahonnan másolta}}' ],
[ '<small>adjforrást!</small>', '{{subst:adjforrást|kép neve}}' ],
[ '<small>törlés</small>', '{{törlés}}' ],
[ '<small>azonnali</small>', '{{azonnal törlendő||2=~~' + '~~}}' ],
[ '<small>jogsértő</small>', '{{jogsértő|url=}}' ],
[ '<small>megoldva</small>', '{{megoldva|~~' + '~~}}' ],
[ '<small>függőben</small>', '{{függőben|~~' + '~~}}' ],
[ '<small>kategória</small>', '[[Kategória:]]' ],
[ '<small>kalapos</small>', fixLatin1Chars ],
[ '<small>idézőjel</small>', fixHungarianQuotes ],
[ '<small>dátum</small>', translateDatesEnHu ],
[ '<small>ország</small>', orszagEnHu ],
[ '<small>orszSabl</small>', orszagSablon ],
[ '<small>csere</small>', customReplaceForm ],
[ '<small>aláíratlan</small>', '{{aláíratlan|}}' ],
[ '<small>üdvözlet</small>', '{{subst:Regisztrált szerkesztők üdvözlése}}' ],
[ '<small>élő</small>', '{{élő}}' ]
];
var $list = $( '<ul>' ).addClass( 'hlist' );
$.each( insert, function () {
var text = this[ 0 ],
func = this[ 1 ],
$a = $( '<a>' )
.attr( 'href', '#' )
.html( text );
if ( typeof func === 'function' ) {
$a.click( func );
} else {
$a.data( 'mw-charinsert-start', func );
$a.click( insertCharacter );
}
// jQuery doesn't insert any whitespace between <li>s by default
$list.append( ' ' );
$( '<li>' )
.append( $a )
.appendTo( $list );
} );
var $boxDiv = $( '<div>' )
.attr( 'id', 'customBar' )
.append(
$( '<a>' )
.attr( 'href', '//hu.wiki.x.io/wiki/Wikipédia:Különleges_karakterek' )
.attr( 'title', 'Wikipédia:Különleges karakterek' )
.text( 'Sablonok, karakterek:' ),
$list
);
return $boxDiv;
}
/**
* Replace a regexp in the textbox
* @param {string|RegExp} replaceWhat The regexp to replace as string literal or RegExp object
* @param {string} replaceWith The text to replace with
* @param {string|null} modifiers Regexp modifiers
*/
function replaceRegexp( replaceWhat, replaceWith, modifiers ) {
if ( !modifiers ) modifiers = '';
var pattern = new RegExp( replaceWhat, modifiers );
var $textbox = $( '#wpTextbox1' );
$textbox.val( $textbox.val().replace( pattern, replaceWith ) );
}
/**
* Replace Latin 1 chars with properly encoded Hungarian Latin 2 equivalents
* @param {Event} e
*/
function fixLatin1Chars( e ) {
e.preventDefault();
replaceRegexp( 'Õ', 'Ő', 'g' );
replaceRegexp( 'Û', 'Ű', 'g' );
replaceRegexp( 'õ', 'ő', 'g' );
replaceRegexp( 'û', 'ű', 'g' );
replaceRegexp( 'ő', 'ő', 'g' );
replaceRegexp( 'ű', 'ű', 'g' );
}
/**
* Replace English style "" quotes with Hungarian „”
* @param {Event} e
*/
function fixHungarianQuotes( e ) {
e.preventDefault();
replaceRegexp('"([^"]*)"', '„$1”', "mg");
}
/**
* Translate dates from English format to Hungarian
* Currently it only handles linkified dates
* @param {Event} e
*/
function translateDatesEnHu( e ) {
e.preventDefault();
var months = [
[ 'January', 'január' ],
[ 'February', 'február' ],
[ 'March', 'március' ],
[ 'April', 'április' ],
[ 'May', 'május' ],
[ 'June', 'június' ],
[ 'July', 'július' ],
[ 'August', 'augusztus' ],
[ 'September', 'szeptember' ],
[ 'October', 'október' ],
[ 'November', 'november' ],
[ 'December', 'december' ]
];
$.each( months, function () {
var enMonth = this[ 0 ];
var huMonth = this[ 1 ];
// alert( 'Replacing ' + enMonth + ' with ' + huMonth );
// Replace "[[November 15]], [[2005]]" with "[[2005]]. [[november 15.]]"
// $1 = "15", $2 = "2005"
replaceRegexp( '\\[\\[' + enMonth + ' (\\d+)\\]\\],?\\s*\\[\\[(\\d{4})\\]\\]', '[[$2]]. [[' + huMonth + ' $1.]]', 'gm' );
replaceRegexp( '\\[\\[(\\d+) ' + enMonth + '\\]\\]', '[[' + huMonth + ' $1.]]', 'gm' );
} );
}
/**
* Replace all occurences of a user-entered regexp with a user entered replacement
* @param {Event} e
*/
function customReplaceForm( e ) {
e.preventDefault();
var $form = $( '<form>' )
.html(
'<label>Cseréld ezt a reguláris kifejezést: <input id="customReplaceThis" type="text" size="40"></label> ' +
'<label>erre: <input id="customReplaceWith" type="text" size="40"></label> ' +
'<label><input id="customReplaceCS" type="checkbox"> méretérzékeny</label> ' +
'<button type="submit">csere</button>'
)
.submit( performCustomReplace );
insertCustomForm( $form );
$( '#customReplaceThis' ).focus();
}
/**
* Perform replacement of the user-entered regexp
* @param {Event} e
*/
function performCustomReplace( e ) {
var replaceThis = $( '#customReplaceThis', this ).val(),
replaceWith = $( '#customReplaceWith', this ).val(),
cs = $( '#customReplaceCS', this ).is( ':checked' ),
flags = 'gm';
if ( !cs ) {
flags += 'i';
}
replaceRegexp( replaceThis, replaceWith, flags );
e.preventDefault();
return false;
}
/**
* Insert a custom form.
* @param {jQuery} $formContent The form to insert
*/
function insertCustomForm( $formContent ) {
var $customBar = $( '#customBar' );
if ( !$customBar.length ) return;
var $customForm = $( '<div>' )
.attr( 'id', 'customForm' )
.append(
$( '<span>' )
.attr( 'id', 'customFormClose' )
.click( deleteCustomForm ),
$formContent
);
var $oldForm = $( '#customForm' );
if ( $oldForm.length ) {
$oldForm.replaceWith( $customForm );
} else {
$customBar.before( $customForm );
}
}
/**
* Remove the custom form.
*/
function deleteCustomForm() {
$( '#customForm' ).remove();
}
var orszag = [
["Earth|World", "Föld"],
["Côte d'Ivoire", "Elefántcsontpart"],
["People's Republic of China|China", "Kína"],
["Azores", "Azori-szigetek"],
["American Samoa", "Amerikai Szamoa"],
["Antarctica", "Antarktisz"],
["Ashmore and Cartier Islands", "Ashmore- és Cartier-szigetek"],
["Baker Island", "Baker-sziget"],
["Bermuda", "Bermuda-szigetek"],
["Bouvet Island", "Bouvet-sziget"],
["British Indian Ocean Territory", "Brit Indiai-óceáni Terület"],
["British Virgin Islands", "Brit Virgin-szigetek"],
["West Bank", "Ciszjordánia"],
["Clipperton Island", "Clipperton-sziget"],
["Cook Islands", "Cook-szigetek"],
["South Georgia and the South Sandwich Islands", "Déli-Georgia és Déli-Sandwich-szigetek"],
["Turkish Republic of Northern Cyprus", "Észak-Ciprus"],
["Northern Mariana Islands", "Északi-Mariana-szigetek"],
["European Union", "Európai Unió"],
["Europa Island", "Európa-sziget"],
["Falkland Islands (Islas Malvinas)", "Falkland-szigetek"],
["Falkland Islands", "Falkland-szigetek"],
["Faroe Islands", "Feröer szigetek"],
["French Southern and Antarctic Lands", "Francia déli területek"],
["French Guiana", "Francia Guyana"],
["French Polynesia", "Francia Polinézia"],
["Gaza Strip", "Gázai övezet"],
["Gibraltar", "Gibraltár"],
["Glorioso Islands", "Glorieuse-szigetek"],
["Greenland", "Grönland"],
["Heard Island and McDonald Islands", "Heard-sziget és McDonald-szigetek"],
["Netherlands Antilles", "Holland Antillák"],
["Hong Kong", "Hongkong"],
["Howland Island", "Howland-sziget"],
["Jan Mayen", "Jan Mayen-sziget"],
["Jarvis Island", "Jarvis-sziget"],
["Johnston Atoll", "Johnston-atoll"],
["Juan de Nova Island", "Juan de Nova-sziget"],
["Cayman Islands", "Kajmán-szigetek"],
["Christmas Island", "Karácsony-sziget"],
["Kingman Reef", "Kingman-zátony"],
["Cocos (Keeling) Islands", "Kókusz (Keeling)-szigetek"],
["Coral Sea Islands", "Korall-tengeri-szigetek"],
["Macau", "Makaó"],
["Macao", "Makaó"],
["Isle of Man", "Man-sziget"],
["Man, Isle of", "Man-sziget"],
["Midway Islands", "Midway-szigetek"],
["Navassa Island", "Navassa-sziget"],
["Norfolk Island", "Norfolk-sziget"],
["Western Sahara", "Nyugat-Szahara"],
["Palestinian National Authority", "Palesztin Nemzeti Hatóság"],
["Palmyra Atoll", "Palmyra-atoll"],
["Paracel Islands", "Paracel-szigetek"],
["Pitcairn Islands", "Pitcairn-szigetek"],
["Reunion", "Réunion"],
["Saint Pierre and Miquelon", "Saint-Pierre és Miquelon"],
["Saint-Pierre and Miquelon", "Saint-Pierre és Miquelon"],
["Svalbard", "Spitzbergák"],
["Spratly Islands", "Spratly-szigetek"],
["Saint Helena", "Szent Ilona"],
["Somaliland", "Szomáliföld"],
["Tokelau", "Tokelau-szigetek"],
["Tromelin Island", "Tromelin-sziget"],
["Turks and Caicos Islands", "Turks- és Caicos-szigetek"],
["New Caledonia", "Új-Kaledónia"],
["Virgin Islands", "Virgin-szigetek"],
["Wake Island", "Wake-sziget"],
["Wallis and Futuna", "Wallis és Futuna"],
["Taiwan", "Tajvan"],
["Burma", "Mianmar"],
["Timor-Leste", "Kelet-Timor"],
["Gambia", " The", "Gambia"],
["Democratic People's Republic of Korea", "Koreai Népi Demokratikus Köztársaság"],
["Republic of Korea", "Koreai Köztársaság"],
["Korea", " South", "Koreai Köztársaság"],
["Korea", " North", "Koreai Népi Demokratikus Köztársaság"],
["Democratic Republic of the Congo", "Kongói Demokratikus Köztársaság"],
["Democratic Congo", "Kongói Demokratikus Köztársaság"],
["Congo", " Republic of the", "Kongó"],
["Republic of Ireland|Ireland", "Írország"],
["Republic of Ireland", "Írország"],
["Republic of China (Taiwan)", "Tajvan"],
["Georgia (country)|Georgia", "Grúzia"],
["Federated States of Micronesia", "Mikronézia"],
["Micronesia", " Federated States of", "Mikronézia"],
["São Tome and Principe", "São Tomé és Príncipe"],
["Bahamas", " The", "Bahama-szigetek"],
["The Bahamas", "Bahama-szigetek"],
["Special Administrative Region|S.A.R.", "Különleges Közigazgatású Régió|KKR"],
["Special Administrative Region|SAR", "Különleges Közigazgatású Régió|KKR"],
["Afghanistan", "Afganisztán"],
["Albania", "Albánia"],
["Algeria", "Algéria"],
["United States", "Amerikai Egyesült Államok"],
["Andorra", "Andorra"],
["Angola", "Angola"],
["Antigua and Barbuda", "Antigua és Barbuda"],
["United Arab Emirates", "Arab Emírségek"],
["Argentina", "Argentína"],
["Australia", "Ausztrália"],
["Austria", "Ausztria"],
["Azerbaijan", "Azerbajdzsán"],
["Bahamas", "Bahama-szigetek"],
["Bahrain", "Bahrein"],
["Bangladesh", "Banglades"],
["Barbados", "Barbados"],
["Belarus", "Fehéroroszország"],
["Belgium", "Belgium"],
["Belize", "Belize"],
["Benin", "Benin"],
["Bhutan", "Bhután"],
["Guinea-Bissau", "Bissau-Guinea"],
["Bolivia", "Bolívia"],
["Bosnia and Herzegovina", "Bosznia-Hercegovina"],
["Botswana", "Botswana"],
["Brazil", "Brazília"],
["Brunei", "Brunei"],
["Bulgaria", "Bulgária"],
["Burkina Faso", "Burkina Faso"],
["Burundi", "Burundi"],
["Chile", "Chile"],
["Cyprus", "Ciprus"],
["Comoros", "Comore-szigetek"],
["Costa Rica", "Costa Rica"],
["Chad", "Csád"],
["Czech Republic", "Csehország"],
["Denmark", "Dánia"],
["South Africa", "Dél-afrikai Köztársaság"],
["Dominican Republic", "Dominikai Köztársaság"],
["Dominica", "Dominikai Közösség"],
["Djibouti", "Dzsibuti"],
["Ecuador", "Ecuador"],
["Equatorial Guinea", "Egyenlítői-Guinea"],
["Egypt", "Egyiptom"],
["Cote d'Ivoire", "Elefántcsontpart"],
["Eritrea", "Eritrea"],
["Estonia", "Észtország"],
["Ethiopia", "Etiópia"],
["Fiji", "Fidzsi-szigetek"],
["Finland", "Finnország"],
["France", "Franciaország"],
["Philippines", "Fülöp-szigetek"],
["Gabon", "Gabon"],
["The Gambia", "Gambia"],
["Ghana", "Ghána"],
["Greece", "Görögország"],
["Grenada", "Grenada"],
["Georgia", "Grúzia"],
["Guatemala", "Guatemala"],
["Guinea", "Guinea"],
["Guyana", "Guyana"],
["Haiti", "Haiti"],
["Netherlands", "Hollandia"],
["Honduras", "Honduras"],
["Croatia", "Horvátország"],
["India", "India"],
["Indonesia", "Indonézia"],
["Iraq", "Irak"],
["Iran", "Irán"],
["Ireland", "Írország"],
["Iceland", "Izland"],
["Israel", "Izrael"],
["Jamaica", "Jamaica"],
["Japan", "Japán"],
["Yemen", "Jemen"],
["Jordan", "Jordánia"],
["Cambodia", "Kambodzsa"],
["Cameroon", "Kamerun"],
["Canada", "Kanada"],
["Qatar", "Katar"],
["Kazakhstan", "Kazahsztán"],
["East Timor", "Kelet-Timor"],
["Kenya", "Kenya"],
["People's Republic of China", "Kína"],
["Kyrgyzstan", "Kirgizisztán"],
["Kiribati", "Kiribati"],
["Colombia", "Kolumbia"],
["Republic of the Congo", "Kongó"],
["Democratic Republic of the Congo", "Kongói Demokratikus Köztársaság"],
["South Korea", "Koreai Köztársaság"],
["North Korea", "Koreai Népi Demokratikus Köztársaság"],
["Central African Republic", "Közép-afrikai Köztársaság"],
["Cuba", "Kuba"],
["Kuwait", "Kuvait"],
["Laos", "Laosz"],
["Poland", "Lengyelország"],
["Lesotho", "Lesotho"],
["Latvia", "Lettország"],
["Lebanon", "Libanon"],
["Liberia", "Libéria"],
["Libya", "Líbia"],
["Liechtenstein", "Liechtenstein"],
["Lithuania", "Litvánia"],
["Luxembourg", "Luxemburg"],
["Republic of Macedonia", "Macedónia"],
["Madagascar", "Madagaszkár"],
["Hungary", "Magyarország"],
["Malaysia", "Malajzia"],
["Malawi", "Malawi"],
["Maldives", "Maldív-szigetek"],
["Mali", "Mali"],
["Malta", "Málta"],
["Morocco", "Marokkó"],
["Marshall Islands", "Marshall-szigetek"],
["Mauritania", "Mauritánia"],
["Mauritius", "Mauritius"],
["Mexico", "Mexikó"],
["Myanmar", "Mianmar"],
["Micronesia", "Mikronézia"],
["Moldova", "Moldova"],
["Monaco", "Monaco"],
["Mongolia", "Mongólia"],
["Mozambique", "Mozambik"],
["United Kingdom", "Nagy-Britannia"],
["Namibia", "Namíbia"],
["Nauru", "Nauru"],
["Germany", "Németország "],
["Nepal", "Nepál"],
["Nicaragua", "Nicaragua"],
["Niger", "Niger"],
["Nigeria", "Nigéria"],
["Norway", "Norvégia"],
["Italy", "Olaszország"],
["Russia", "Oroszország"],
["Armenia", "Örményország"],
["Pakistan", "Pakisztán"],
["Palau", "Palau"],
["Panama", "Panama"],
["Papua New Guinea", "Pápua Új-Guinea"],
["Paraguay", "Paraguay"],
["Peru", "Peru"],
["Portugal", "Portugália"],
["Romania", "Románia"],
["Oman", "Omán"],
["Rwanda", "Ruanda"],
["Saint Kitts and Nevis", "Saint Kitts és Nevis"],
["Saint Lucia", "Saint Lucia"],
["Saint Vincent and the Grenadines", "Saint Vincent"],
["Solomon Islands", "Salamon-szigetek"],
["El Salvador", "Salvador"],
["San Marino", "San Marino"],
["São Tomé and Príncipe", "São Tomé és Príncipe"],
["Seychelles", "Seychelle-szigetek"],
["Sierra Leone", "Sierra Leone"],
["Spain", "Spanyolország"],
["Sri Lanka", "Srí Lanka"],
["Suriname", "Suriname"],
["Switzerland", "Svájc"],
["Sweden", "Svédország"],
["Samoa", "Szamoa"],
["Saudi Arabia", "Szaúd-Arábia"],
["Senegal", "Szenegál"],
["Serbia and Montenegro", "Szerbia és Montenegró"],
["Singapore", "Szingapúr"],
["Syria", "Szíria"],
["Slovakia", "Szlovákia"],
["Slovenia", "Szlovénia"],
["Somalia", "Szomália"],
["Sudan", "Szudán"],
["Swaziland", "Szváziföld"],
["Tajikistan", "Tádzsikisztán"],
["Republic of China", "Tajvan"],
["Tanzania", "Tanzánia"],
["Thailand", "Thaiföld"],
["Togo", "Togo"],
["Tonga", "Tonga"],
["Turkey", "Törökország"],
["Trinidad and Tobago", "Trinidad és Tobago"],
["Tunisia", "Tunézia"],
["Tuvalu", "Tuvalu"],
["Turkmenistan", "Türkmenisztán"],
["Uganda", "Uganda"],
["New Zealand", "Új-Zéland"],
["Ukraine", "Ukrajna"],
["Uruguay", "Uruguay"],
["Uzbekistan", "Üzbegisztán"],
["Vanuatu", "Vanuatu"],
["Vatican City", "Vatikán"],
["Venezuela", "Venezuela"],
["Vietnam", "Vietnam"],
["Zambia", "Zambia"],
["Zimbabwe", "Zimbabwe"],
["Cape Verde", "Zöld-foki-szigetek"],
["Soviet Union", "Szovjetunió"],
["Czechoslovakia", "Csehszlovákia"],
["Yugoslavia", "Jugoszlávia"],
["England", "Anglia"],
["USA", "USA"],
["West Germany", "NSZK"],
["GDR", "NDK"],
["East Germany", "NDK"]
];
/**
* Replace English country names to Hungarian ones.
* @param {Event} e
*/
function orszagEnHu( e ) {
e.preventDefault();
$.each( orszag, function () {
replaceRegexp( this[ 0 ], this[ 1 ], 'gm' );
} );
}
/**
* Use country templates for country names (in Hungarian).
* @param {Event} e
*/
function orszagSablon( e ) {
e.preventDefault();
$.each( orszag, function () {
var huorszag = this[ 1 ];
var sablon = '{{' + huorszag + '}}';
replaceRegexp( huorszag, sablon, 'gm' );
} );
}
/**
* Initialize edit box
*/
$( function () {
// Find the element that comes right after the special character box
$currentFocused = $( '#wpTextbox1' );
if ( $currentFocused.length ) {
$( document ).on( 'focus', 'textarea, input:text, .CodeMirror', function () {
if ( $( this ).is( '.CodeMirror' ) ) {
// CodeMirror hooks into #wpTextbox1 for textSelection changes
$currentFocused = $( '#wpTextbox1' );
} else {
$currentFocused = $( this );
}
} );
$( '#specialchars' ).after( createCustomBar() );
}
} );
// </nowiki>