Wikipedia testwiki https://test.wikipedia.org/wiki/Main_Page MediaWiki 1.45.0-wmf.7 first-letter Media Special Talk User User talk Wikipedia Wikipedia talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Thread Thread talk Summary Summary talk Test namespace 1 Test namespace 1 talk Test namespace 2 Test namespace 2 talk Draft Draft talk Campaign Campaign talk TimedText TimedText talk Module Module talk SecurePoll SecurePoll talk CNBanner CNBanner talk Translations Translations talk Event Event talk Topic Newsletter Newsletter talk Sandbox 0 68971 664270 664263 2025-06-25T13:06:04Z Wolverène 25150 . 664270 wikitext text/x-wiki Этнические поселения в «русских» регионах РФ Критерии выборки: 1) регион не относится к числу национальных; 2) представителей одной малой народности >75 % ---- '''Белгородская область (2002)''' * Украинские населённые пункты ** посёлок Николаевка (Советский сельский округ, Алексеевский р-н) — 30 (украинцы 87 %) ** село Шапорево (Советский сельский округ, Алексеевский р-н) — 54 (украинцы 93 %) ** хутор Красная Степь (Бубновский сельский округ, Корочанский р-н) — 2 (украинцы 100 %) * Турецкие населённые пункты ** хутор Придорожный (городское поселение Посёлок Вейделевка, Вейделевский р-н) — 64 (турки 84 %) ** хутор Стенки (городское поселение посёлок Ровеньки, Ровеньский р-н) — 8 (турки 87 %) * Чеченские населённые пункты ** хутор Пристень (Большетроицкое сельпо, Шебекинский р-н) — 5 (чеченцы 100 %) ---- '''Ивановская область (2002)''' * Армянские населённые пункты ** деревня Глухово (Каменский сельсовет, Вичугский р-н) — 1 (армяне 100 %) ** деревня Столово (Топтыгинский сельсовет, Приволжский р-н) — 6 (армяне 83 %) * Грузинские населённые пункты ** деревня Шалдово (Зурубинский сельсовет, Вичугский р-н) — 1 (грузины 100 %) ** деревня Лежахово (Болотненский сельсовет, Родниковский р-н) — 1 (грузины 100 %) * Татарские населённые пункты ** село Шухомош (Иванковский сельсовет, Фурмановский р-н) — 1 (татары 100 %) ---- '''Калужская область (2002)''' * Азербайджанские населённые пункты ** деревня Мелечево (Утешевский сельсовет, Бабынинский р-н) — 4 (азербайджанцы 75 %) ** деревня Шадеево (Серпейский сельсовет, Мещовский р-н) — 9 (азербайджанцы 89 %) * Украинские населённые пункты ** деревня Козельское (Атрепьевский сельсовет, Боровский р-н) — 1 (украинцы 100 %) ** деревня Висляево (Зуднинский сельсовет, Боровский р-н) — 1 (украинцы 100 %) * Грузинские населённые пункты ** деревня Слобода (Барсуковский сельсовет, Дзержинский р-н) — 4 (грузины 75 %) ---- '''Воронежская область (2002)''' * Турецкие населённые пункты ** посёлок 2-го отделения совхоза «2-я Пятилетка» (Краснознаменское сельпо, Лискинский р-н) — 123 (турки 86 %) ** посёлок Совхоза «Труд» (Старокриушанский сельсовет, Петропавловский р-н) — 78 (турки 77 %) * Цыганские населённые пункты ** село Александровка (Отрадненский сельсовет, Новоусманский р-н) — 470 (цыгане 76 %) * Башкирские населённые пункты ** нп Полигон СПТУ-28 (Ольховатское городское поселение, Ольховатский р-н) — 6 (башкиры 83 %) * Украинские населённые пункты ** слобода Копаная-1 (Копанянский сельсовет, Ольховатский р-н) — 343 (украинцы 75 %) ** хутор Колесниково (Копанянский сельсовет, Ольховатский р-н) — 74 (украинцы 82 %) ** хутор Кривая Берёза (Копанянский сельсовет, Ольховатский р-н) — 112 (украинцы 82 %) ** хутор Лимарев (Кравцовский сельсовет, Ольховатский р-н) — 276 (украинцы 78 %) ** хутор Кравцовка (Кравцовский сельсовет, Ольховатский р-н) — 90 (украинцы 88 %) ** хутор Новогеоргиевка (Кравцовский сельсовет, Ольховатский р-н) — 70 (украинцы 81 %) ** хутор Кошарный (Степнянский сельсовет, Ольховатский р-н) — 14 (украинцы 93 %) ** хутор Родина Героя (Степнянский сельсовет, Ольховатский р-н) — 155 (украинцы 76 %) ** село Поддубное (Жилинский сельсовет, Россошанский р-н) — 575 (украинцы 84 %) ** хутор Пшеничный (Жилинский сельсовет, Россошанский р-н) — 1 (украинцы 100 %) ** село Кривоносово (Кривоносовский сельсовет, Россошанский р-н) — 1118 (украинцы 77 %) ** хутор Крамаренков (Кривоносовский сельсовет, Россошанский р-н) — 18 (украинцы 83 %) ** хутор Царёвский (Новопостояловский сельсовет, Россошанский р-н) — 9 (украинцы 89 %) ** хутор Березняги (Поповский сельсовет, Россошанский р-н) — 8 (украинцы 100 %) ** хутор Вакуловка (Поповский сельсовет, Россошанский р-н) — 31 (украинцы 97 %) ** хутор Легкодымовка 1-я (Шекаловский сельсовет, Россошанский р-н) — 24 (украинцы 92 %) ** хутор Легкодымовка 2-я (Шекаловский сельсовет, Россошанский р-н) — 13 (украинцы 85 %) * Чеченские населённые пункты ** посёлок Крутинский (Хорольский сельсовет, Таловский р-н) — 10 (чеченцы 100 %) ** хутор Перерывный (Кочетовский сельсовет, Хохольский р-н) — 16 (чеченцы 87 %) ---- '''Московская область (2002)''' * Белорусские населённые пункты ** деревня Бабошино (Болычевский сельский округ, Волоколамский р-н) — 1 (белорусы 100 %) ** деревня Гаврилково (Целеевский сельский округ, Дмитровский р-н) — 2 (белорусы 100 %) * Таджикские населённые пункты ** деревня Сорокино (Барабановский сельский округ, Каширский р-н) — 353 (таджики 78 %) * Армянские населённые пункты ** деревня Бугайлово (Борисовский сельский округ, Можайский р-н) — 4 (армяне 100 %) * Украинские населённые пункты ** деревня Чичково (Каменский сельский округ, Наро-Фоминский р-н) — 8 (украинцы 75 %) ** деревня Овсянниково (Пешковский сельский округ, Солнечногорский р-н) — 1 (украинцы 100 %) * Цыганские населённые пункты ** деревня Тверитино (городской округ Серпухов) — 65 (цыгане 82 %) * Чувашские населённые пункты ** деревня Миняево (Мещеринский сельский округ, Ступинский р-н) — 3 (чуваши 100 %) * Латышские населённые пункты ** деревня Кишкиниха (Квашёнковское сельпо, Талдомский р-н) — 1 (латыши 100 %) * «Национальность не указана» ** деревня Старки (городской округ Черноголовка) — 2 (100 % без данных о национальности) ** село Пески (Дмитровский сельский округ, Шатурский р-н) — 12 (100 % без данных о национальности) 1thh8muijew3mh4rdxmf4be13p3cmdl 664271 664270 2025-06-25T13:06:20Z Wolverène 25150 Replaced content with "<noinclude>{{Sandbox}}</noinclude> {{CleanSandbox}} == Please start your testing below this line ==" 664271 wikitext text/x-wiki <noinclude>{{Sandbox}}</noinclude> {{CleanSandbox}} == Please start your testing below this line == ka2eqyeuwzyft3aer39lh3d9altclna Documentation Sandbox/ 0 76315 664300 200751 2025-06-25T23:07:42Z Nacaru 54746 Añadiendo plantilla de borrado mediante [[WP:Twinkle Lite|Twinkle Lite]] 664300 wikitext text/x-wiki {{destruir|g6}} <!-- Test --> 0mf8nqd5j177b7uei4lx03cxtppaqzh Wikipedia:Sandbox 4 107092 664308 664261 2025-06-26T04:59:36Z Yining Chen 47378 664308 wikitext text/x-wiki [[Module:Form3|main|汉语|英语|append=10}} 454mf9v14b4vj7pzcwdtw2bnqozqi7h 664309 664308 2025-06-26T04:59:51Z Yining Chen 47378 664309 wikitext text/x-wiki {{Module:Form3|main|汉语|英语|append=10}} 99xqt0igc7123aqwbhp8njvuf5r33dq 664310 664309 2025-06-26T05:00:02Z Yining Chen 47378 664310 wikitext text/x-wiki {{#invoke:Form3|main|汉语|英语|append=10}} qny0zb9pjduqr4yw49xerlqk0k1qogt 664312 664310 2025-06-26T05:01:33Z Yining Chen 47378 664312 wikitext text/x-wiki {{#invoke:Form3|main|汉语|英语|append=10|link=true}} f6ggvwfk9uct7kciy04j8cpx92k7xuj 664314 664312 2025-06-26T05:04:30Z Yining Chen 47378 664314 wikitext text/x-wiki {{#invoke:Form3|main|汉语|英语|中文|韩语|append=虚拟UP主|link=true}} a4z6tgra9c1bqo8vtv4ms02jf4kgb40 664317 664314 2025-06-26T05:25:37Z Yining Chen 47378 664317 wikitext text/x-wiki {{#invoke:Form3|main|汉语|英语|中文|韩语|append=虚拟UP主|link=true}} {{#invoke:Form4 |时间1=2018-08-01~2019-04-12 |经历1=Project Paryi |时间2=2019-06-09~2020-01 |图标2=[[file:541 E&C Logo.png|30px]] [[541 E&C]] |时间3=2020-02-25~2020-08-31 |经历3=引退 |时间4=2020-09-01~2020-10-23 |经历4=个人势 |时间5=2020-10-24'''至今''' |经历5=P家 }} 4nxbtd4qcypsdjc3kl4of205em3igif 664318 664317 2025-06-26T05:26:00Z Yining Chen 47378 664318 wikitext text/x-wiki {{#invoke:Form3|main|汉语|英语|中文|韩语|append=虚拟UP主|link=true}} {{#invoke:Form4|main |时间1=2018-08-01~2019-04-12 |经历1=Project Paryi |时间2=2019-06-09~2020-01 |图标2=[[file:541 E&C Logo.png|30px]] [[541 E&C]] |时间3=2020-02-25~2020-08-31 |经历3=引退 |时间4=2020-09-01~2020-10-23 |经历4=个人势 |时间5=2020-10-24'''至今''' |经历5=P家 }} ny25swfvmf0s49ddlk494hj39pqq3qi 664323 664318 2025-06-26T05:44:22Z Yining Chen 47378 664323 wikitext text/x-wiki {{#invoke:Form3|main|汉语|英语|中文|韩语|append=虚拟UP主|link=true}} {{#invoke:Form4|main |时间1 = 2018-08-01~2019-04-12 | 经历1= Project Paryi | 时间2= 2019-06-09~2020-01 | 图标2=[[file:541 E&C Logo.png|30px]] [[541 E&C]] |时间3=2020-02-25~2020-08-31 |经历3=引退 |时间4=2020-09-01~2020-10-23 |经历4=个人势 |时间5=2020-10-24'''至今''' |经历5=P家 }} 5ebq3nvyoq3z8t01ssz89j4dmid5i5k Cynara cardunculus 0 109350 664298 425558 2025-06-25T22:58:46Z Nacaru 54746 Añadiendo plantilla de borrado mediante [[WP:Twinkle Lite|Twinkle Lite]] 664298 wikitext text/x-wiki {{destruir|g5|g6|g7}} ''''''Cynara cardunculus'''''' é uma [[espécie]] de planta que possui registro de ocorrência no [[Brasil]], sendo de uso medicinal. Esta [[espécie]] faz parte da Coleção Botânica de Plantas da Fiocruz. (<ref name="wikiMarkup">{{cite web |url=http://en.wikipedia.org/w/index.php?title=Help:Wiki_markup |title=Help:Wiki markup |publisher=Wikimedia Foundation |accessdate=2020-01-25 }}</ref>.) {{Info/Taxonomia | espécie=[[cardunculus]] | gênero=[[Cynara]] | domínio=[[Eukaryota]] | nome=Cynara cardunculus | família=[[Asteraceae]] | reino=[[Plantae]] }} == References == {{Reflist}} [[Category:Plants]][[Category: Medicinal plants]][[Category: Organisms]][[Category: Botany]][[Category:Flora]] kar5uy3wey161b98xjvy5z92oiotwx7 Kategoriya:Reptarenavirus: 0 111001 664306 433486 2025-06-26T00:33:51Z ~2025-82663 69287 664306 wikitext text/x-wiki [[Category:Arenaviridae]] hrvy2ruts8nlear2cmv6gt11o0h4rlj Tom Penn/edithistory 0 113725 664302 439709 2025-06-25T23:10:42Z Nacaru 54746 Añadiendo plantilla de borrado mediante [[WP:Twinkle Lite|Twinkle Lite]] 664302 wikitext text/x-wiki {{destruir|g6}} <!-- Contenido oculto por posibles violaciones de derechos de autor {| class="wikitable" ! oldid || date/time || username || edit summary |---- | 951384485 || 2020-04-16T22:06:24Z || DemonDays64 Bot || <nowiki>HTTPS security. [[User talk:DemonDays64|Tell me]] if there's an issue with my edit. (via [[WP:JWB]])</nowiki> |---- | 935641308 || 2020-01-13T20:37:32Z || Blueandwhite87 || <nowiki></nowiki> |---- | 915008678 || 2019-09-10T17:42:44Z || AnomieBOT || <nowiki>Dating maintenance tags: {{Update needed}}</nowiki> |---- | 914997890 || 2019-09-10T16:33:31Z || Ira Leviton || <nowiki>Fixed a typo found with [[Wikipedia:Typo_Team/moss]]. Update needed.</nowiki> |---- | 903666657 || 2019-06-27T04:33:42Z || 67.193.112.74 || <nowiki>/* NBA executive */</nowiki> |---- | 903641177 || 2019-06-26T22:57:19Z || 45.78.189.122 || <nowiki></nowiki> |---- | 902981606 || 2019-06-22T18:24:47Z || AnomieBOT || <nowiki>Dating maintenance tags: {{Clarify}}</nowiki> |---- | 902979261 || 2019-06-22T18:04:39Z || Spicemix || <nowiki>MOS:JOBTITLES</nowiki> |---- | 902775298 || 2019-06-21T05:04:27Z || 2001:1970:52E3:DF00:1404:67AF:AAA5:C8D8 || <nowiki>/* NBA executive */</nowiki> |---- | 902775022 || 2019-06-21T05:00:59Z || 2001:1970:52E3:DF00:1404:67AF:AAA5:C8D8 || <nowiki>/* NBA executive */</nowiki> |---- | 893272078 || 2019-04-20T06:49:46Z || Boleyn || <nowiki>dab</nowiki> |---- | 889956716 || 2019-03-29T02:16:24Z || Ser Amantio di Nicolao || <nowiki>/* References */add category</nowiki> |---- | 882271479 || 2019-02-07T22:56:56Z || 98.4.224.41 || <nowiki></nowiki> |---- | 880682382 || 2019-01-28T20:27:23Z || Elasticfatguy || <nowiki>/* Los Angeles Football Club */</nowiki> |---- | 878272536 || 2019-01-13T23:52:39Z || Timrollpickering || <nowiki>Removing from [[Category:Articles created via the Article Wizard]] per [[Wikipedia:Categories for discussion/Log/2019 January 6]] using [[c:Help:Cat-a-lot|Cat-a-lot]]</nowiki> |---- | 870049794 || 2018-11-22T01:54:28Z || PrimeBOT || <nowiki>[[Wikipedia:Bots/Requests for approval/PrimeBOT 29|Task 29]] - removal of deprecated parameters from [[Template:infobox person]] (+ genfixes)</nowiki> |---- | 838897548 || 2018-04-30T00:15:44Z || 2601:C6:4100:5BB3:4017:2FF9:DCCE:C62C || <nowiki></nowiki> |---- | 814555533 || 2017-12-09T14:36:04Z || KolbertBot || <nowiki>Bot: [[User:KolbertBot|HTTP→HTTPS]] (v478)</nowiki> |---- | 792661108 || 2017-07-27T21:11:00Z || Dr of sports1992 || <nowiki>/* NBA executive */</nowiki> |---- | 769089470 || 2017-03-07T14:39:36Z || Rathfelder || <nowiki>removed [[Category:List of MLS franchise owners]] using [[WP:HC|HotCat]]</nowiki> |---- | 758481893 || 2017-01-05T18:18:37Z || TPhelan || <nowiki>/* Agent and lawyer */</nowiki> |---- | 751910297 || 2016-11-28T13:30:17Z || Bender the Bot || <nowiki>/* ESPN analyst */clean up; http&rarr;https for [[YouTube]] using [[Project:AWB|AWB]]</nowiki> |---- | 750958774 || 2016-11-22T14:10:51Z || Struway2 || <nowiki>/* top */ hatnote</nowiki> |---- | 746047263 || 2016-10-24T23:57:34Z || Charlesaaronthompson || <nowiki>I added [[Template:Los Angeles Football Club]].</nowiki> |---- | 737433860 || 2016-09-02T19:12:02Z || Colintkelly || <nowiki>added additional category</nowiki> |---- | 719628636 || 2016-05-10T20:49:04Z || KasparBot || <nowiki>migrating [[Wikipedia:Persondata|Persondata]] to Wikidata, [[toollabs:kasparbot/persondata/|please help]], see [[toollabs:kasparbot/persondata/challenge.php/article/Tom Penn|challenges for this article]]</nowiki> |---- | 704149266 || 2016-02-09T21:08:34Z || 2606:6000:6781:C400:9940:460A:6D36:18DC || <nowiki>/* Los Angeles Football Club */</nowiki> |---- | 698941567 || 2016-01-09T06:06:31Z || Dale Arnett || <nowiki>/* Los Angeles Football Club */ Will Ferrell has also been announced as a minority owner.</nowiki> |---- | 689549158 || 2015-11-07T22:27:50Z || Cmr08 || <nowiki>format headers per manual of style</nowiki> |---- | 683373843 || 2015-09-29T21:51:18Z || 63.230.153.78 || <nowiki>/* Los Angeles Football Club */</nowiki> |---- | 658885304 || 2015-04-23T19:32:57Z || Babymanel || <nowiki>Place of birth and school he went to</nowiki> |---- | 647427230 || 2015-02-16T18:11:18Z || 98.239.186.132 || <nowiki>/* NBA executive */</nowiki> |---- | 646281587 || 2015-02-09T02:34:32Z || BattyBot || <nowiki>Fixed author and/or language parameters in citation templates, [[WP:AWB/GF|General fixes]] using [[Project:AWB|AWB]] (10810)</nowiki> |---- | 632310387 || 2014-11-03T18:24:19Z || Davethomasjunior || <nowiki></nowiki> |---- | 632309404 || 2014-11-03T18:16:17Z || 206.170.91.220 || <nowiki></nowiki> |---- | 632308977 || 2014-11-03T18:12:40Z || Davethomasjunior || <nowiki></nowiki> |---- | 632307646 || 2014-11-03T18:01:04Z || Davethomasjunior || <nowiki></nowiki> |---- | 632307526 || 2014-11-03T18:00:13Z || Davethomasjunior || <nowiki>updated to include information on LAFC ownership and Sports Leadership Institute involvement</nowiki> |---- | 631901693 || 2014-10-31T16:10:45Z || 206.170.91.220 || <nowiki></nowiki> |---- | 631901643 || 2014-10-31T16:10:17Z || 206.170.91.220 || <nowiki></nowiki> |---- | 614405978 || 2014-06-25T19:25:12Z || Rhododendrites || <nowiki>Reverted edit(s) by [[Special:Contributions/143.235.180.188|143.235.180.188]] ([[User_talk:143.235.180.188|talk]]) to last revision (using [[User:Jfmantis/WikiPatroller|WikiPatroller]])</nowiki> |---- | 614405949 || 2014-06-25T19:24:56Z || 143.235.180.188 || <nowiki>Undid revision 499567562 by [[Special:Contributions/Jprg1966|Jprg1966]] ([[User talk:Jprg1966|talk]])</nowiki> |---- | 612410315 || 2014-06-10T21:13:23Z || Waacstats || <nowiki>Persondata</nowiki> |---- | 541331830 || 2013-02-28T20:24:33Z || Prohoopsfan || <nowiki></nowiki> |---- | 541331073 || 2013-02-28T20:20:11Z || Prohoopsfan || <nowiki>added more recent details on his employment</nowiki> |---- | 499567562 || 2012-06-27T07:37:57Z || Jprg1966 || <nowiki>Reverted edits by [[Special:Contributions/143.236.34.56|143.236.34.56]] ([[User talk:143.236.34.56|talk]]) to last revision by Zagalejo ([[WP:HG|HG]])</nowiki> |---- | 499566647 || 2012-06-27T07:27:04Z || 143.236.34.56 || <nowiki>Where is the place for truth then?</nowiki> |---- | 499564407 || 2012-06-27T07:01:29Z || Zagalejo || <nowiki>not the place for this</nowiki> |---- | 499559942 || 2012-06-27T06:12:22Z || 143.236.34.56 || <nowiki>Undid revision 498442921 by [[Special:Contributions/Tbhotch|Tbhotch]] ([[User talk:Tbhotch|talk]])</nowiki> |---- | 498442921 || 2012-06-20T03:44:05Z || Tbhotch || <nowiki>[[Help:Reverting|Reverted]] edits by [[Special:Contributions/143.236.34.56|143.236.34.56]] ([[User talk:143.236.34.56|talk]]) to last version by M.O.X</nowiki> |---- | 497523466 || 2012-06-14T09:02:58Z || 143.236.34.56 || <nowiki>Undid revision 496877150 by [[Special:Contributions/M.O.X|M.O.X]] ([[User talk:M.O.X|talk]])</nowiki> |---- | 496877150 || 2012-06-10T09:44:19Z || M.O.X || <nowiki>Reverted edit(s) by [[Special:Contributions/143.236.34.56|143.236.34.56]] identified as test/vandalism using [[WP:STiki|STiki]]</nowiki> |---- | 496859522 || 2012-06-10T06:07:39Z || 143.236.34.56 || <nowiki>Undid revision 496751673 by [[Special:Contributions/Anir1uph|Anir1uph]] ([[User talk:Anir1uph|talk]])</nowiki> |---- | 496751673 || 2012-06-09T14:29:01Z || Anir1uph || <nowiki>Reverted edit(s) by [[Special:Contributions/143.236.34.56|143.236.34.56]] identified as test/vandalism using [[WP:STiki|STiki]]</nowiki> |---- | 496732243 || 2012-06-09T11:15:05Z || 143.236.34.56 || <nowiki></nowiki> |---- | 488876132 || 2012-04-23T20:39:42Z || Rgw1395 || <nowiki>I deleted the word "reportedly" about the offer from the Timberwolves because, in fact, Tom Penn did receive an offer to be GM.</nowiki> |---- | 488126932 || 2012-04-19T06:17:46Z || SchreiberBike || <nowiki>Repairing links to disambiguation pages - [[WP:DPL|You can help!]] - [[Analyst]]</nowiki> |---- | 482277901 || 2012-03-16T23:25:57Z || Prohoopsfan || <nowiki></nowiki> |---- | 472503640 || 2012-01-21T21:49:30Z || RjwilmsiBot || <nowiki>CiteCompletion, dates: 4, works/pubs: 1, titles: 1, using [[Project:AWB|AWB]] (7927)</nowiki> |---- | 456398072 || 2011-10-19T19:05:41Z || R'n'B || <nowiki>Fix [[WP:DPL|links]] to [[WP:D|disambiguation]] page [[Agent]]</nowiki> |---- | 455978651 || 2011-10-17T08:55:33Z || Malcolma || <nowiki>added [[Category:American sports agents]] using [[WP:HC|HotCat]]</nowiki> |---- | 446797587 || 2011-08-26T09:47:08Z || Quentin X || <nowiki>/* St. Jude Children's Research Hospital */</nowiki> |---- | 444038701 || 2011-08-10T10:57:54Z || Woohookitty || <nowiki>[[:en:WP:CLEANER|WPCleaner]] (v1.09) Repaired link to disambiguation page - [[WP:DPL|(You can help)]] - [[Executive]]</nowiki> |---- | 439428817 || 2011-07-14T12:32:53Z || Yobot || <nowiki>Updated infobox (BRFA 15) using [[Project:AWB|AWB]] (7783)</nowiki> |---- | 425633657 || 2011-04-24T09:06:06Z || RussBot || <nowiki>Robot: change redirected category [[:Category:American television presenters|American television presenters]] to [[:Category:American television hosts|American television hosts]]</nowiki> |---- | 425630063 || 2011-04-24T08:23:50Z || SmackBot || <nowiki>Dated {{Cat improve}}. (Build p609)</nowiki> |---- | 425629576 || 2011-04-24T08:17:44Z || Boleyn || <nowiki>+cat</nowiki> |---- | 417410147 || 2011-03-06T10:45:56Z || Yobot || <nowiki>[[WP:CHECKWIKI]] error 61 fixes + [[WP:GENFIXES|general fixes]], References after punctuation per [[WP:REFPUNC]] and [[WP:PAIC]] using [[Project:AWB|AWB]] (7579)</nowiki> |---- | 417366824 || 2011-03-06T03:24:18Z || Mandarax || <nowiki>Add DEFAULTSORT per [[WP:NAMESORT]] using [[Project:AWB|AWB]] (7626)</nowiki> |---- | 416289187 || 2011-02-27T23:58:17Z || Prohoopsfan || <nowiki></nowiki> |---- | 415447767 || 2011-02-23T03:49:17Z || AvicAWB || <nowiki>clean up, added [[CAT:UNCAT|uncategorised]] tag using [[Project:AWB|AWB]]</nowiki> |---- | 415197333 || 2011-02-21T20:55:33Z || ImageRemovalBot || <nowiki>Removing deleted [[:File:Penn on phone.jpg|image]]</nowiki> |---- | 415176607 || 2011-02-21T19:00:53Z || Prohoopsfan || <nowiki></nowiki> |---- | 415174601 || 2011-02-21T18:49:13Z || SmackBot || <nowiki>Dated {{Citation needed}}. (Build p607)</nowiki> |---- | 415172823 || 2011-02-21T18:38:58Z || Mild Bill Hiccup || <nowiki>/* NBA Executive */ copyedit and corrections</nowiki> |---- | 415171580 || 2011-02-21T18:31:38Z || Mild Bill Hiccup || <nowiki>copyedit</nowiki> |---- | 415095273 || 2011-02-21T08:01:56Z || 98.151.53.27 || <nowiki></nowiki> |---- | 415031638 || 2011-02-20T23:31:38Z || Alpha Quadrant || <nowiki>Cleanup following AFC creation</nowiki> |---- | 415031626 || 2011-02-20T23:31:34Z || Alpha Quadrant || <nowiki>moved [[Wikipedia talk:Articles for creation/Tom Penn]] to [[Tom Penn]]: Created via [[WP:AFC|Articles for Creation]] ([[WP:WPAFC|you can help!]])</nowiki> |---- | 415031456 || 2011-02-20T23:30:24Z || Alpha Quadrant || <nowiki>Filling in 13 references using [[WP:REFLINKS|Reflinks]] | Cleaned up using [[WP:AutoEd|AutoEd]]</nowiki> |---- | 415030538 || 2011-02-20T23:24:15Z || Armbrust || <nowiki>moved [[User:Prohoopsfan/Tom Penn]] to [[Wikipedia talk:Articles for creation/Tom Penn]]: Correct location for [[WP:AFC|AfC]] submissions</nowiki> |---- | 415026824 || 2011-02-20T23:00:43Z || Prohoopsfan || <nowiki></nowiki> |---- | 415003782 || 2011-02-20T20:32:56Z || Prohoopsfan || <nowiki>/* St. Jude Children's Research Hospital */</nowiki> |---- | 415003488 || 2011-02-20T20:30:56Z || Prohoopsfan || <nowiki>/* St. Jude Childre's Research Hospital */</nowiki> |---- | 415003320 || 2011-02-20T20:29:44Z || Prohoopsfan || <nowiki>[[WP:AES|←]]Created page with '{{Userspace draft|source=ArticleWizard|date={{Subst:CURRENTMONTHNAME}} {{Subst:CURRENTYEAR}}}} {{Subst:Nul|<==do not change this line it will set the date automatic...'</nowiki> |} --> lhdyleo0gjwd9xpcf9de8k44i1e6rfi User:SongVĩ.Bot II 2 124239 664282 664221 2025-06-25T17:00:22Z SongVĩ.Bot II 52414 [[User:SongVĩ.Bot II|Task 0]]: Đã 1276 ngày... 664282 wikitext text/x-wiki Cập nhật lần cuối: 26-06-2025 Đã 1276 ngày... 5llq72g3pinpv5xf5726ez2xplsfnr5 Usuario discusión:177.192.82.223 0 127604 664299 656316 2025-06-25T22:58:47Z Nacaru 54746 Aviso al usuario del posible borrado de [[Cynara cardunculus]] mediante [[WP:Twinkle Lite|Twinkle Lite]] 664299 wikitext text/x-wiki {{subst:Aviso destruir|Mollinedia schottiana|a2}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 18:36, 4 August 2022 (UTC) {{Aviso traslado al taller|Gossypium_herbaceum||razón=aaaa}} {{subst:Aviso destruir|Cynara cardunculus|g5|g6|g7}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 22:58, 25 June 2025 (UTC) kmfxh938xec4lysmh08nq69jnzizux9 Usuario discusión:Tgr (WMF) 0 127614 664303 660904 2025-06-25T23:10:44Z Nacaru 54746 Aviso al usuario del posible borrado de [[Tom Penn/edithistory]] mediante [[WP:Twinkle Lite|Twinkle Lite]] 664303 wikitext text/x-wiki {{subst:Aviso destruir|Alpha Mission II|g3|a3}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 22:03, 4 August 2022 (UTC) {{sust:Aviso cdb|St. James Cathedral (Chicago)}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 21:15, 28 September 2022 (UTC) {{sust:Aviso cdb|Donetsk}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 18:02, 20 April 2025 (UTC) {{sust:Aviso cdb|Cerro Pancasan Natural Reserve/edithistory}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 17:47, 26 April 2025 (UTC) {{sust:Aviso cdb|Illegal emigration/edithistory}} [[User:Lemony7|Lemony7]] ([[User talk:Lemony7|talk]]) 20:07, 3 May 2025 (UTC) {{Aviso traslado al taller|Okta_(identity_management)|}}} {{Aviso traslado al taller|Victorious_Boxers_2:_Fighting_Spirit|Victorious_Boxers_2:_Fighting_Spirit}} {{sust:Aviso cdb|Habib's}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 17:33, 4 June 2025 (UTC) {{sust:Aviso traslado al taller|Net4|Net4|razón=asdsa}} {{sust:Aviso traslado al taller|Clothing sizes|Clothing_sizes/2|razón=aaaaaaaaaaaaaa}} {{sust:Aviso traslado al taller|Anecdotal evidence|Anecdotal_evidence|razón=aaaaaaa}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 00:08, 7 June 2025 (UTC) {{subst:Aviso destruir|Tom Penn/edithistory|g6}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:10, 25 June 2025 (UTC) tebk3bwlop566e0gt66d4b42kiqp2id Reddit 0 151968 664294 663918 2025-06-25T20:52:55Z KGraessle-WMF 61195 Reverted edit by [[Special:Contributions/~2025-72526|~2025-72526]] ([[User talk:~2025-72526|talk]]) to last revision by [[User:InternetArchiveBot|InternetArchiveBot]] 576502 wikitext text/x-wiki Em geral, o site concede discrição aos moderadores dos ''subreddits'' para decidir qual conteúdo é ou não permitido em seus ''subreddits'', desde que as regras do site não sejam violadas. Essa relativa liberdade permitiu a existência de uma grande diversidade de ''subreddits'', e alguns deles atraíram polêmica.<ref name="reddit-rules">{{Citar web|url=https://www.reddit.com/rules|titulo=Rules of Reddit|acessodata=14 de outubro de 2012|arquivourl=https://web.archive.org/web/20121013181545/http://www.reddit.com/rules/|arquivodata=13 de outubro de 2012|urlmorta=não}}</ref> Muitos dos ''subreddits'' padrão são altamente moderados, com o subreddit "science" banindo o [[Negacionismo climático|negacionismo das mudanças climáticas]],<ref>{{Citar jornal|url=http://www.foxnews.com/science/2013/12/19/critics-blast-reddit-over-climate-change-skeptic-ban/|titulo=Critics blast Reddit over climate-change skeptic ban|data=19 de dezembro de 2013|website=Fox News|acessodata=18 de fevereiro de 2019|arquivourl=https://web.archive.org/web/20150924150955/http://www.foxnews.com/science/2013/12/19/critics-blast-reddit-over-climate-change-skeptic-ban/|arquivodata=24 de setembro de 2015|urlmorta=não}}</ref> e o subreddit "''news''" banindo artigos de opinião e colunas.<ref>{{Citar web|url=http://www.poynter.org/news/media-innovation/249341/how-to-get-your-news-site-banned-from-reddit/|titulo=How to get your news site banned from Reddit|website=[[Poynter Institute|Poynter]]|data=25 de novembro de 2014|ultimo=Sam Kirkland|arquivourl=https://web.archive.org/web/20150705045145/http://www.poynter.org/news/media-innovation/249341/how-to-get-your-news-site-banned-from-reddit/|arquivodata=5 de julho de 2015}}</ref> O Reddit mudou suas políticas editoriais em todo o site várias vezes, às vezes em reação a controvérsias.<ref>{{Citar web|url=http://www.redditblog.com/2011/05/reddit-we-need-to-talk.html|titulo=blog.reddit – what's new on reddit: reddit, we need to talk...|website=redditblog.com|acessodata=18 de fevereiro de 2019|arquivourl=https://web.archive.org/web/20160713095950/http://www.redditblog.com/2011/05/reddit-we-need-to-talk.html|arquivodata=13 de julho de 2016|urlmorta=live}}</ref><ref>{{Citar web|url=https://www.reddit.com/r/blog/comments/pmj7f/a_necessary_change_in_policy/|titulo=A necessary change in policy: blog|website=reddit|data=12 de fevereiro de 2012|acessodata=18 de fevereiro de 2019|arquivourl=https://web.archive.org/web/20190212220141/https://www.reddit.com/r/blog/comments/pmj7f/a_necessary_change_in_policy/|arquivodata=12 de fevereiro de 2012|urlmorta=live}}</ref> <ref>{{Citar web|url=http://i.imgur.com/7oWt3.jpg|titulo=Image from Yishan Wong|website=imgur.com|acessodata=17 de abril de 2017|arquivourl=https://web.archive.org/web/20171018155133/http://i.imgur.com/7oWt3.jpg|arquivodata=18 de outubro de 2017|urlmorta=live}}</ref> <ref>{{Citar web|url=http://www.businessinsider.com.au/former-reddit-ceo-yishan-wong-on-ellen-pao-censorship-free-speech-purge-2015-7|titulo=Reddit's old CEO rewrites the history of Reddit and says 'the purge' of users will begin|ultimo=Rob Price|website=Business Insider Australia|acessodata=18 de fevereiro de 2019|arquivourl=https://web.archive.org/web/20181216210816/https://www.businessinsider.com.au/former-reddit-ceo-yishan-wong-on-ellen-pao-censorship-free-speech-purge-2015-7|arquivodata=16 de dezembro de 2018|urlmorta=live|data=15 de julho de 2015}}</ref> O Reddit tem sido historicamente uma plataforma para conteúdo censurável, mas legal, e em 2011, a mídia de notícias cobriu a maneira como o [[jailbait]] estava sendo compartilhado no site antes que o site mudasse suas políticas para explicitamente proibir "conteúdo sugestivo ou sexual com menores".<ref>{{Citar web|url=http://www.dailydot.com/news/reddit-bans-suggestive-sexual-content-minors/|titulo=Reddit bans "suggestive or sexual content" of minors|ultimo=Morris|primeiro=Kevin|data=12 de fevereiro de 2012|jornal=The Daily Dot|acessodata=12 de junho de 2014|arquivourl=https://web.archive.org/web/20140714190038/http://www.dailydot.com/news/reddit-bans-suggestive-sexual-content-minors/|arquivodata=14 de julho de 2014|urlmorta=live}}</ref> Após alguns incidentes controversos de [[vigilantismo na Internet]], o Reddit introduziu uma regra estrita contra a publicação online de [[Informação pessoalmente identificável|informações não públicas de identificação pessoal]] (uma ferramenta comum de assédio na Internet coloquialmente conhecida como [[Doxing|doxxing]]) por meio do site. Aqueles que quebram a regra estão sujeitos a um banimento em todo o site, o que pode resultar na exclusão do conteúdo gerado pelo usuário. Devido à moderação descentralizada do Reddit, ao anonimato do usuário e à falta de sistemas de [[verificação de fatos]], a plataforma é altamente propensa a espalhar [[Informação falsa|desinformação]].<ref>{{Citar web|url=https://www.newamerica.org/oti/reports/how-internet-platforms-are-combating-disinformation-and-misinformation-age-covid-19/reddit/|titulo=How Internet Platforms Are Combating Disinformation and Misinformation in the Age of COVID-19|website=New America|acessodata=18 de março de 2023}}</ref> Foi sugerido que quem utiliza o Reddit deve ter cuidado ao tomar como fatos os conteúdos sem fontes criados por utilizadores.<ref>{{Citar web|url=https://www.npr.org/2019/12/08/786039738/managing-misinformation-on-reddit|titulo=Managing Misinformation On Reddit|ultimo=Garcia-Navarro|primeiro=Lulu|data=8 de dezembro de 2019|website=NPR|acessodata=18 de março de 2023}}</ref> As comunidades do Reddit exibem o [[Câmara de eco|efeito da câmara de eco]], no qual declarações repetidas sem fontes passam a ser aceitas pela comunidade como fatos, levando a [[Cosmovisão|visões de mundo]] distorcidas entre os usuários.<ref>{{Citar periódico|ultimo=Cinnelli|primeiro=Matteo|ultimo2=De Francisci Morales|primeiro2=Gianmarco|ultimo3=Galeazzi|primeiro3=Alessandro|ultimo4=Starnini|primeiro4=Michele|data=23 de fevereiro de 2021|título=The echo chamber effect on social media|periódico=[[Proceedings of the National Academy of Sciences of the United States of America]]|volume=118|número=9|paginas=e2023301118|doi=10.1073/pnas.2023301118|pmid=33622786|pmc=7936330|bibcode=2021PNAS..11823301C|doi-access=free}}</ref> === Principais controvérsias === ==== Identificações incorretas de suspeitos de atentado em Boston ==== Após o [[Atentado à Maratona de Boston de 2013|atentado na Maratona de Boston]] em abril de 2013, o Reddit enfrentou críticas depois que os usuários identificaram erroneamente várias pessoas como suspeitas. <ref>{{Citar jornal|url=http://www.3news.co.nz/Innocents-accused-in-online-manhunt/tabid/412/articleID/295143/Default.aspx|website=3 News NZ|titulo=Innocents accused in online manhunt|data=22 de abril de 2013|acessodata=4 de junho de 2013|arquivourl=https://web.archive.org/web/20131215111626/http://www.3news.co.nz/Innocents-accused-in-online-manhunt/tabid/412/articleID/295143/Default.aspx|arquivodata=15 de dezembro de 2013}}</ref> Notável entre os suspeitos de bombardeio erroneamente identificados foi Sunil Tripathi, um estudante dado como desaparecido antes dos atentados acontecerem. Um corpo supostamente de Sunil foi encontrado em Providence River, em [[Rhode Island]], em 25 de abril, de acordo com o Departamento de Saúde de Rhode Island. A causa da morte não foi imediatamente conhecida, mas as autoridades disseram não suspeitar de crime.<ref>{{Citar jornal|ultimo=Buncombe|primeiro=Andrew|titulo=Family of Sunil Tripathi – missing student wrongly linked to Boston marathon bombing – thank well-wishers for messages of support|url=https://www.independent.co.uk/news/world/americas/family-of-sunil-tripathi--missing-student-wrongly-linked-to-boston-marathon-bombing--thank-wellwishers-for-messages-of-support-8586850.html|acessodata=17 de janeiro de 2015|website=The Independent|arquivourl=https://web.archive.org/web/20150403112655/http://www.independent.co.uk/news/world/americas/family-of-sunil-tripathi--missing-student-wrongly-linked-to-boston-marathon-bombing--thank-wellwishers-for-messages-of-support-8586850.html|arquivodata=3 de abril de 2015|local=London|data=23 de abril de 2013}}</ref> A família confirmou mais tarde que a morte de Tripathi foi resultado de [[suicídio]].<ref>{{Citar jornal|ultimo=Nark|primeiro=Jason|titulo=The Boston bombing's forgotten victim|url=http://articles.philly.com/2014-04-30/news/49497042_1_sunil-tripathi-providence-river-sunny|acessodata=31 de outubro de 2014|website=Philadelphia Daily News|arquivourl=https://web.archive.org/web/20141115054203/http://articles.philly.com/2014-04-30/news/49497042_1_sunil-tripathi-providence-river-sunny|arquivodata=15 de novembro de 2014}}</ref> O gerente geral do Reddit, Erik Martin, posteriormente apresentou um pedido de desculpas por esse comportamento, criticando a "caça às bruxas online e especulações perigosas" que ocorreram no site.<ref name="Martin apology">{{Citar web|ultimo=Martin|primeiro=Erik|titulo=Reflections on the Recent Boston Crisis|url=https://redditblog.com/2013/04/reflections-on-recent-boston-crisis.html|website=Reddit|acessodata=3 de maio de 2013|arquivourl=https://web.archive.org/web/20140310105548/http://www.redditblog.com/2013/04/reflections-on-recent-boston-crisis.html|arquivodata=10 de março de 2014|urlmorta=live}}</ref> O incidente foi posteriormente referenciado no episódio da 5ª temporada da série de TV da CBS, ''[[The Good Wife]]'', intitulado "Whack-a-Mole",<ref>{{Citar jornal|ultimo=Harnick|primeiro=Chris|titulo='The Good Wife' Recap: Alicia Takes on Anonymous Posters in 'Whack-A-Mole'|url=https://huffingtonpost.com/chris-harnick/the-good-wife-recap-whack-a-mole_b_4334401.html|website=The Huffington Post|acessodata=25 de novembro de 2013|data=24 de novembro de 2013|arquivourl=https://web.archive.org/web/20131126192904/http://www.huffingtonpost.com/chris-harnick/the-good-wife-recap-whack-a-mole_b_4334401.html|arquivodata=26 de novembro de 2013|urlmorta=live}}</ref> assim como em ''[[The Newsroom]]''.<ref>{{Citar jornal|ultimo=Hathaway|primeiro=Jay|titulo=Here's How The Newsroom Covered Reddit's Failed Boston Bombing Manhunt|url=http://gawker.com/heres-how-the-newsroom-covered-reddits-failed-boston-bo-1657483136|acessodata=27 de junho de 2015|data=11 de novembro de 2014|arquivourl=https://web.archive.org/web/20150630092603/http://gawker.com/heres-how-the-newsroom-covered-reddits-failed-boston-bo-1657483136|arquivodata=30 de junho de 2015}}</ref><ref>{{Citar jornal|ultimo=Fallon|primeiro=Kevin|titulo='Newsroom' Premiere: Aaron Sorkin Puts CNN on Blast Over the Boston Bombing|url=http://www.thedailybeast.com/articles/2014/11/10/newsroom-premiere-aaron-sorkin-puts-cnn-on-blast-over-the-boston-bombing.html|acessodata=June 27, 2015|arquivourl=https://web.archive.org/web/20150629232025/http://www.thedailybeast.com/articles/2014/11/10/newsroom-premiere-aaron-sorkin-puts-cnn-on-blast-over-the-boston-bombing.html|arquivodata=June 29, 2015|urlmorta=live}}</ref> ==== Mudança de CEO em 2015 e banimentos de subreddit ==== Depois que [[Ellen Pao]] se tornou CEO em 2014, ela foi inicialmente alvo de críticas de usuários que se opunham à exclusão de conteúdo crítico a ela e ao marido. <ref>{{Citar jornal|ultimo=Staff writers|url=https://www.news.com.au/finance/work/leaders/why-does-the-internet-hate-ellen-pao/news-story/fdc517381811d2302d9b42e69820c507|titulo=Why does the internet hate Ellen Pao?|website=News.com.au|data=July 15, 2015|acessodata=May 1, 2021}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFStaff_writers2015">Staff writers (July 15, 2015). </cite></ref> Mais tarde, em 10 de junho de 2015, o Reddit fechou o subreddit "fatpeoplehate" de 150.000 assinantes e quatro outros citando questões relacionadas ao assédio. <ref>{{Citar jornal|ultimo=Griffin|primeiro=Andrew|url=https://www.independent.co.uk/life-style/gadgets-and-tech/news/reddit-bans-communities-including-fat-people-hate-as-users-say-anti-harassment-policies-could-be-10312251.html|titulo=Reddit bans communities including 'Fat People Hate' as users say anti-harassment policies could be 'beginning of the end'|data=June 11, 2015|website=The Independent|acessodata=February 8, 2017|lingua=en-GB|arquivourl=https://web.archive.org/web/20170211083327/http://www.independent.co.uk/life-style/gadgets-and-tech/news/reddit-bans-communities-including-fat-people-hate-as-users-say-anti-harassment-policies-could-be-10312251.html|arquivodata=February 11, 2017|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFGriffin2015">Griffin, Andrew (June 11, 2015). </cite></ref> Este movimento foi visto como muito controverso; alguns comentaristas disseram que as proibições foram longe demais, enquanto outros disseram que as proibições não foram longe o suficiente. <ref>{{Citar jornal|ultimo=Woollacott|primeiro=Emma|titulo=Users Flock To Voat As Reddit Shuts Harassing Groups|url=https://www.forbes.com/sites/emmawoollacott/2015/06/11/users-flock-to-voat-as-reddit-shuts-harassing-groups/2/|website=Forbes|acessodata=June 11, 2015|arquivourl=https://web.archive.org/web/20150613032954/http://www.forbes.com/sites/emmawoollacott/2015/06/11/users-flock-to-voat-as-reddit-shuts-harassing-groups/2/|arquivodata=June 13, 2015|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFWoollacott">Woollacott, Emma. </cite></ref> Uma das últimas reclamações dizia respeito a um subreddit que estava "expressando apoio" ao autor do [[Massacre da igreja de Charleston|tiroteio na igreja de Charleston]] . <ref>{{Citar jornal|ultimo=Wendling|primeiro=Mike|url=https://www.bbc.com/news/blogs-trending-33288367|titulo=What should social networks do about hate speech?|acessodata=July 2, 2015|arquivourl=https://web.archive.org/web/20150701024736/http://www.bbc.com/news/blogs-trending-33288367|arquivodata=July 1, 2015|urlmorta=live|data=June 29, 2015}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFWendling2015">Wendling, Mike (June 29, 2015). </cite></ref> Respondendo às acusações de "aplicação distorcida", o Reddit reafirmou seu compromisso com a liberdade de expressão e afirmou: "Existem alguns subreddits com muito pouca audiência que são destacados repetidamente por seu conteúdo, mas esses são uma pequena fração do conteúdo do site." Em 2 de julho, o Reddit começou a experimentar uma série de apagões quando os [[Fórum de discussão|moderadores]] definiram as comunidades subreddit populares como privadas, em um evento apelidado de "AMAgeddon", uma [[Aglutinação (gramática)|junção]] de AMA ("Ask me anything", "pergunte-me qualquer coisa") e [[Armagedom|Armageddon]]. Isso foi feito em protesto à recente demissão de Victoria Taylor, uma administradora que ajudou a organizar entrevistas lideradas por cidadãos com pessoas famosas no popular subreddit de AMA. Os organizadores do apagão também expressaram ressentimento sobre o recente rompimento da comunicação entre o Reddit e os moderadores dos subreddits. <ref>{{Citar web|url=https://www.bbc.com/news/technology-33379571|titulo=Reddit in uproar after staff sacking|data=July 3, 2015|website=BBC News|publicado=BBC|acessodata=July 3, 2015|arquivourl=https://web.archive.org/web/20150703113331/http://www.bbc.com/news/technology-33379571|arquivodata=July 3, 2015|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.bbc.com/news/technology-33379571 "Reddit in uproar after staff sacking"]. </cite></ref> O apagão se intensificou em 3 de julho, quando o ex-[[Online community manager|gerente da comunidade]] David Croach fez um AMA sobre ser demitido. Antes de excluir suas postagens, ele afirmou que Ellen Pao o dispensou com um ano de cobertura de saúde quando ele teve câncer e não se recuperou com rapidez suficiente. <ref>{{Citar web|titulo=Reddit: Laute Rufe nach Absetzung von CEO Ellen Pao|website=Der Standard|url=http://derstandard.at/2000018574154/Reddit-Laute-Rufe-nach-Absetzung-von-CEO-Ellen-Pao|acessodata=July 5, 2015|data=July 4, 2015|arquivourl=https://web.archive.org/web/20150706204942/http://derstandard.at/2000018574154/Reddit-Laute-Rufe-nach-Absetzung-von-CEO-Ellen-Pao|arquivodata=July 6, 2015|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true">[http://derstandard.at/2000018574154/Reddit-Laute-Rufe-nach-Absetzung-von-CEO-Ellen-Pao "Reddit: Laute Rufe nach Absetzung von CEO Ellen Pao"]. </cite></ref> <ref>{{Citar web|titulo=Reddit's CEO Allegedly Fired an Employee For Having Cancer and Not Recovering Fast Enough|url=http://nextshark.com/ellen-pao-reddit-dacvak-ama/|website=Next Shark|acessodata=July 5, 2015|data=July 3, 2015}}<cite class="citation web cs1" data-ve-ignore="true">[http://nextshark.com/ellen-pao-reddit-dacvak-ama/ "Reddit's CEO Allegedly Fired an Employee For Having Cancer and Not Recovering Fast Enough"]. </cite></ref> Depois disso, uma [[petição]] [[Change.org|da Change.org]] para remover Pao do cargo de CEO da Reddit Inc. alcançou mais de 200.000 assinaturas. <ref>{{Citar jornal|url=https://www.washingtonpost.com/blogs/on-leadership/wp/2015/07/06/nearly-200k-people-have-signed-a-petition-calling-for-reddits-ellen-pao-to-step-down/|titulo=More than 200k people have signed a petition calling for Reddit's Ellen Pao to step down|data=July 6, 2015|acessodata=July 7, 2015|website=The Washington Post|primeiro=Jena|ultimo=McGregor|arquivourl=https://web.archive.org/web/20150707234726/http://www.washingtonpost.com/blogs/on-leadership/wp/2015/07/06/nearly-200k-people-have-signed-a-petition-calling-for-reddits-ellen-pao-to-step-down/|arquivodata=July 7, 2015|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFMcGregor2015">McGregor, Jena (July 6, 2015). </cite></ref> <ref>{{Citar web|ultimo=Musil|primeiro=Steven|titulo=Petition for Pao resignation from Reddit grows to 130K|url=https://cnet.com/news/petition-for-pao-resignation-from-reddit-grows-to-130k/|publicado=Cnet|acessodata=July 5, 2015|data=July 5, 2015|arquivourl=https://web.archive.org/web/20150705211231/http://www.cnet.com/news/petition-for-pao-resignation-from-reddit-grows-to-130k/|arquivodata=July 5, 2015|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFMusil2015">Musil, Steven (July 5, 2015). </cite></ref> <ref>{{Citar jornal|ultimo=Malik|primeiro=Naureen|ultimo2=Jones|primeiro2=Tim|titulo=Reddit CEO Pao Under Fire as Users Protest Removal of Executive|url=https://www.bloomberg.com/news/articles/2015-07-04/reddit-restores-most-of-site-after-moderator-led-blackouts|publicado=Bloomberg|acessodata=July 5, 2015|data=July 5, 2015|arquivourl=https://web.archive.org/web/20150705195539/http://www.bloomberg.com/news/articles/2015-07-04/reddit-restores-most-of-site-after-moderator-led-blackouts|arquivodata=July 5, 2015|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFMalikJones2015">Malik, Naureen; Jones, Tim (July 5, 2015). </cite></ref> Pao postou uma resposta em 3 de julho, bem como uma versão estendida dela em 6 de julho, na qual ela se desculpou pela má comunicação e por não cumprir as promessas. Ela também se desculpou em nome dos outros administradores e observou que já existiam problemas nos últimos anos. <ref>[http://www.foxnews.com/us/2015/07/06/reddit-ceo-ellen-pao-issues-apology-for-direction-site/ Reddit CEO Ellen Pao Issues an Apology for the Direction of the Site] {{Webarchive|url=https://web.archive.org/web/20150924175611/http://www.foxnews.com/us/2015/07/06/reddit-ceo-ellen-pao-issues-apology-for-direction-site/|date=September 24, 2015}} by Laura Entis ''FoxNews.com'' July 6, 2015</ref> <ref>{{Citar jornal|url=http://time.com/3946934/reddit-ellen-pao-apology-petition/|titulo=Ellen Pao: Reddit CEO Apologizes After Petition for Her to Resign|ultimo=Jack Linshi|website=TIME.com|data=July 6, 2015|acessodata=February 18, 2019|arquivourl=https://web.archive.org/web/20180626205551/http://time.com/3946934/reddit-ellen-pao-apology-petition/|arquivodata=June 26, 2018|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFJack_Linshi2015">Jack Linshi (July 6, 2015). </cite></ref> <ref>{{Citar jornal|ultimo=Titcomb|primeiro=James|titulo=Petition calling for Reddit boss Ellen Pao to resign hits 200,000 as she admits 'we screwed up'|url=https://www.telegraph.co.uk/technology/social-media/11722560/Petition-calling-for-Reddit-boss-Ellen-Pao-to-resign-hits-200000-target-as-she-admits-we-screwed-up.html|publicado=The Telegraph|acessodata=July 7, 2015|data=July 7, 2015|local=London|arquivourl=https://web.archive.org/web/20150707234726/http://www.telegraph.co.uk/technology/social-media/11722560/Petition-calling-for-Reddit-boss-Ellen-Pao-to-resign-hits-200000-target-as-she-admits-we-screwed-up.html|arquivodata=July 7, 2015|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFTitcomb2015">Titcomb, James (July 7, 2015). </cite></ref> Em 10 de julho, Pao renunciou ao cargo de CEO e foi substituído pelo ex-CEO e cofundador [[Steve Huffman]] . <ref>{{Citar jornal|ultimo=Mike|primeiro=Isaac|titulo=Ellen Pao Is Stepping Down as Reddit's Chief|url=https://www.nytimes.com/2015/07/11/technology/ellen-pao-reddit-chief-executive-resignation.html?_r=0|acessodata=July 10, 2015|website=The New York Times|data=July 10, 2015|arquivourl=https://web.archive.org/web/20150713011235/http://www.nytimes.com/2015/07/11/technology/ellen-pao-reddit-chief-executive-resignation.html?_r=0|arquivodata=July 13, 2015|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFMike2015">Mike, Isaac (July 10, 2015). </cite></ref> Em agosto, Steve Huffman introduziu uma política que levou ao banimento de várias comunidades ofensivas e sexuais. Incluído na proibição estava o [[lolicon]], ao qual Huffman se referiu como "CP [pornografia infantil] animado". <ref>{{Citar web|url=http://www.businessinsider.com/reddit-bans-coontown-2015-8|titulo=Reddit finally bans its most infamous racist communities because they 'made recruiting here more difficult'|primeiro=Matt|ultimo=Weinberger|publicado=Business Insider|data=August 5, 2015|acessodata=August 9, 2016|arquivourl=https://web.archive.org/web/20160820015825/http://www.businessinsider.com/reddit-bans-coontown-2015-8|arquivodata=August 20, 2016|urlmorta=live}}</ref> Alguns subreddits também foram "colocados em quarentena" por terem "conteúdo altamente ofensivo ou perturbador", como r/European, r/swedenyes, r/drawpeople, r/kiketown, r/blackfathers, r/greatapes e r/whitesarecriminals. <ref>{{Citar web|url=https://reddit.zendesk.com/hc/en-us/articles/205701245-Quarantined-Subreddits|titulo=Quarantined Subreddits|website=Reddit Help|acessodata=June 21, 2016|arquivourl=https://web.archive.org/web/20160625220726/https://reddit.zendesk.com/hc/en-us/articles/205701245-Quarantined-Subreddits|arquivodata=June 25, 2016|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true">[https://reddit.zendesk.com/hc/en-us/articles/205701245-Quarantined-Subreddits "Quarantined Subreddits"] {{Webarchive|url=https://web.archive.org/web/20160625220726/https://reddit.zendesk.com/hc/en-us/articles/205701245-Quarantined-Subreddits |date=2016-06-25 }}. </cite></ref> ==== Alterações de API de 2023 ==== Em 18 de abril de 2023, o Reddit anunciou que pretendia fazer alterações em seu serviço de [[Interface de programação de aplicações|API]], incluindo alterações de preços - a API era gratuita anteriormente para a maioria dos casos de uso. <ref>{{Citar web|url=https://www.theverge.com/2023/4/18/23688463/reddit-developer-api-terms-change-monetization-ai|titulo=Reddit's upcoming API changes will make AI companies pony up|website=The Verge|ultimo=Shakir|primeiro=Umar|data=April 18, 2023|acessodata=June 8, 2023}}</ref> <ref>{{Citar web|ultimo=Wiggers|primeiro=Kyle|data=April 18, 2023|titulo=Reddit will begin charging for access to its API|url=https://techcrunch.com/2023/04/18/reddit-will-begin-charging-for-access-to-its-api/|acessodata=June 8, 2023|website=TechCrunch|lingua=en-US}}</ref> Essa decisão foi parcialmente motivada pelo fato de a [[OpenAI]] ter usado o Reddit para treinar seu [[modelo de linguagem grande]] [[ChatGPT]]. O CEO Steve Huffman afirmou: "O corpus de dados do Reddit é realmente valioso. Mas não precisamos dar todo esse valor de graça para algumas das maiores empresas do mundo".<ref>{{Citar web|ultimo=Bort|primeiro=Julie|data=2023-06-05|titulo=Reddit's many battles: From OpenAI to its falling pre-IPO valuation|url=https://www.businessinsider.com/reddit-openai-chatgpt-ipo-valuation-karma-2023-6|acessodata=2023-06-13|website=Business Insider|lingua=en-US}}</ref> Em entrevista ao ''[[The New York Times]]'', o Reddit afirmou que a API ainda seria gratuita para desenvolvedores que desejassem construir aplicativos que ajudassem as pessoas a usar o Reddit. <ref>{{Citar jornal|ultimo=Isaac|primeiro=Mike|data=April 18, 2023|titulo=Reddit Wants to Get Paid for Helping to Teach Big A.I. Systems|lingua=en-US|website=The New York Times|url=https://www.nytimes.com/2023/04/18/technology/reddit-ai-openai-google.html|acessodata=June 8, 2023|issn=0362-4331}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFIsaac2023">Isaac, Mike (April 18, 2023). </cite></ref> Em 31 de maio, no entanto, o desenvolvedor do cliente Reddit de terceiros, Apollo, fez uma ligação com o Reddit, que declarou seu próximo modelo de preços: $12.000 de [[Dólar dos Estados Unidos|dólares]] por 50&nbsp;milhões de solicitações de API. Isso significaria que a Apollo teria que pagar ao Reddit $20&nbsp;milhões de dólares por ano. <ref>{{Citar web|data=May 31, 2023|titulo=Popular Reddit App Apollo Would Need to Pay $20 Million Per Year Under New API Pricing|url=https://www.macrumors.com/2023/05/31/reddit-api-changes-pricing-apollo/|acessodata=June 8, 2023|website=MacRumors|lingua=en}}</ref> <ref name="apolloshutdownverge" /> <ref name="bbcapiblackout">{{Citar jornal|ultimo=Gerken|primeiro=Tom|data=June 9, 2023|titulo=Reddit blackout: Subreddits to go private on Monday|lingua=en-GB|website=BBC News|url=https://www.bbc.com/news/technology-65855608|acessodata=June 9, 2023}}</ref> Esses planos aumentariam muito o custo necessário para executar [[Aplicativo móvel|aplicativos móveis]] de terceiros que permitem aos usuários navegar e interagir com o Reddit. Vários usuários e desenvolvedores de outros aplicativos de terceiros também se manifestaram contra essas mudanças de preços. <ref>{{Citar web|url=https://www.cnn.com/2023/06/01/tech/reddit-outrage-data-access-charge/index.html|titulo=Reddit sparks outrage after a popular app developer said it wants him to pay $20 million a year for data access|website=CNN|ultimo=Fung|primeiro=Brian|data=June 1, 2023|acessodata=June 4, 2023}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFFung2023">Fung, Brian (June 1, 2023). </cite></ref> Em 8 de junho, o desenvolvedor do Apollo anunciou que encerraria o Apollo em 30 de junho. Escrevendo em um post do Reddit e no Twitter, “as recentes decisões e ações do Reddit infelizmente tornaram impossível para a Apollo continuar”. Ele também incluiu uma gravação de áudio parcial de uma ligação entre ele e um funcionário do Reddit para refutar as alegações de que ele chantageou o Reddit por US$ 10&nbsp;milhões. <ref name="apolloshutdownverge">{{Citar web|ultimo=Peters|primeiro=Jay|data=2023-06-08|titulo=Apollo for Reddit is shutting down|url=https://www.theverge.com/2023/6/8/23754183/apollo-reddit-app-shutting-down-api|acessodata=2023-06-11|website=The Verge|lingua=en-US}}</ref> <ref>{{Citar web|ultimo=Perez|primeiro=Sarah|data=June 8, 2023|titulo=Popular third-party Reddit app Apollo is shutting down as a result of Reddit's new API pricing|url=https://techcrunch.com/2023/06/08/popular-third-party-reddit-app-apollo-is-shutting-down-as-a-result-of-reddits-new-api-pricing/|acessodata=June 8, 2023|website=TechCrunch|lingua=en-US}}</ref> <ref>{{Citar web|ultimo=Maxwell|primeiro=Thomas|titulo=Popular Reddit client Apollo will shut down after talks over new developer fees got 'ugly,' with allegations of blackmail|url=https://www.businessinsider.com/reddit-client-apollo-shut-down-after-talks-got-ugly-2023-6|acessodata=2023-06-11|website=Business Insider|lingua=en-US}}</ref> Outros aplicativos Reddit de terceiros, incluindo Sync for Reddit e Reddit is Fun, também declararam que serão encerrados. <ref>{{Citar web|ultimo=Schoon|primeiro=Ben|data=June 8, 2023|titulo=Reddit's API changes kill Android's best third-party apps, including RIF and Sync|url=https://9to5google.com/2023/06/08/reddit-android-third-party-apps/|acessodata=June 9, 2023|website=9to5Google|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFSchoon2023">Schoon, Ben (June 8, 2023). </cite></ref> <ref>{{Citar jornal|data=2023-06-09|titulo=Reddit blackout: Subreddits to go private on Monday|lingua=en-GB|website=BBC News|url=https://www.bbc.com/news/technology-65855608|acessodata=2023-06-11}}<cite class="citation news cs1" data-ve-ignore="true">[https://www.bbc.com/news/technology-65855608 "Reddit blackout: Subreddits to go private on Monday"]. </cite></ref> Muitos usuários afirmaram que não podem usar o aplicativo oficial do Reddit por causa de sua acessibilidade fraca. O Reddit respondeu que dará aos aplicativos não comerciais e focados em acessibilidade uma exceção em seus termos de preço. <ref>{{Citar web|ultimo=Peters|primeiro=Jay|data=June 7, 2023|titulo=Reddit will exempt accessibility-focused apps from its unpopular API pricing changes|url=https://www.theverge.com/2023/6/7/23752804/reddit-exempt-accessibility-apps-api-pricing-changes|acessodata=June 8, 2023|website=The Verge|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true">Peters, Jay (June 7, 2023). </cite></ref> No entanto, um moderador do r/Blind (subreddit dedicado à discussão sobre [[perda de visão]]) compartilhou que não recebeu nenhum esclarecimento do Reddit sobre como está definindo "aplicativos com foco em acessibilidade". <ref>{{Citar web|ultimo=Perez|primeiro=Sarah|data=June 8, 2023|titulo=Reddit makes an exception for accessibility apps under new API terms|url=https://techcrunch.com/2023/06/08/reddit-makes-an-exception-for-accessibility-apps-under-new-api-terms/|acessodata=June 8, 2023|website=TechCrunch|lingua=en-US}}</ref> Vários aplicativos de terceiros com amplos recursos de acessibilidade foram posteriormente confirmados como isentos como aplicativos "não-comerciais focados em acessibilidade". <ref>{{Citar web|ultimo=Peters|primeiro=Jay|data=June 7, 2023|titulo=Reddit will exempt accessibility-focused apps from its unpopular API pricing changes|url=https://www.theverge.com/2023/6/7/23752804/reddit-exempt-accessibility-apps-api-pricing-changes|acessodata=June 10, 2023|website=The Verge|lingua=en-US}}</ref> <ref>{{Citar web|ultimo=Perez|primeiro=Sarah|data=June 8, 2023|titulo=Reddit makes an exception for accessibility apps under new API terms|url=https://techcrunch.com/2023/06/08/reddit-makes-an-exception-for-accessibility-apps-under-new-api-terms/|acessodata=June 10, 2023|website=TechCrunch|lingua=en-US}}</ref> Os moderadores do Reddit também contam com ferramentas de terceiros para moderar suas comunidades, levando a temores de não conseguirem moderar o conteúdo com eficiência caso tenham acesso negado à API do Reddit. <ref>{{Citar web|ultimo=Mehta|primeiro=Ivan|data=June 5, 2023|titulo=Multiple subreddits and moderators are protesting Reddit's API changes|url=https://techcrunch.com/2023/06/05/multiple-subreddits-and-moderators-are-now-protesting-reddits-api-changes/|acessodata=June 9, 2023|website=TechCrunch|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFMehta2023">Mehta, Ivan (June 5, 2023). </cite></ref> O CEO do Reddit, Steve Huffman, abordou várias das mudanças anunciadas no serviço API. Sobre as mudanças para aplicativos de terceiros, ele disse: "... não podemos mais subsidiar entidades comerciais que exigem uso de dados em larga escala." Ele também afirmou que o Reddit trabalharia para tornar seu aplicativo móvel mais acessível. <ref>{{Citar web|ultimo=Peters|primeiro=Jay|data=June 9, 2023|titulo=Reddit won't budge on the API changes that are shutting down apps like Apollo|url=https://www.theverge.com/2023/6/9/23755640/reddit-api-changes-apps-apollo-shut-down-ama-spez-steve-huffman|acessodata=June 9, 2023|website=The Verge|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true">Peters, Jay (June 9, 2023). </cite></ref> <ref>{{Citar web|ultimo=spez|data=June 9, 2023|titulo=Addressing the community about changes to our API|url=http://www.reddit.com/r/reddit/comments/145bram/addressing_the_community_about_changes_to_our_api/|acessodata=June 9, 2023|website=r/reddit}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFspez2023">spez (June 9, 2023). </cite></ref> Apesar de Huffman afirmar que o Reddit estava ativamente em comunicação com muitos desenvolvedores de aplicativos terceirizados para ajudar em sua operação contínua, alguns desenvolvedores comentaram que o Reddit não respondia a eles há meses. <ref>{{Citar web|ultimo=Bell|primeiro=Karissa|titulo=Reddit CEO Steve Huffman defends API changes in AMA|url=https://www.engadget.com/reddit-ceo-steve-huffman-defends-api-changes-in-ama-202924631.html|acessodata=June 9, 2023|website=Engadget|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFBell">Bell, Karissa. </cite></ref> Tim Rathschmidt, porta-voz do Reddit, disse ao ''[[The New York Times]]'' que o Reddit estava em contato com as comunidades para "esclarecer qualquer confusão sobre nossos termos da API de dados, políticas em toda a plataforma, recursos de suporte da comunidade e tempo para novas ferramentas de moderador". Ele também acrescentou que o Reddit "precisa ser pago de forma justa para continuar a oferecer suporte a aplicativos de terceiros de alto uso", observando que o novo preço da API "é baseado em níveis de uso que medimos para serem comparáveis aos nossos próprios custos". <ref>{{Citar jornal|ultimo=Levenson|primeiro=Michael|data=2023-06-12|titulo=Reddit Communities Go Dark to Protest New App Policy|lingua=en-US|website=The New York Times|url=https://www.nytimes.com/2023/06/12/business/media/reddit-subreddit-blackout-protest.html|acessodata=2023-06-13|issn=0362-4331}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFLevenson2023">Levenson, Michael (June 12, 2023). </cite></ref> ===== Apagão do Reddit ===== Milhares de subreddits, incluindo seis dos maiores subreddits, cada um com mais de 30 milhões de assinantes, e totalizando 2,2 bilhões de usuários não exclusivos do Reddit, <ref>{{Citar web|titulo=Reddark|url=https://reddark.untone.uk/|acessodata=2023-06-12|website=reddark.untone.uk}}<cite class="citation web cs1" data-ve-ignore="true">[https://reddark.untone.uk/ "Reddark"]. ''reddark.untone.uk''<span class="reference-accessdate">. </span></cite></ref> planejaram um protesto tornando seus subreddits privados ou não permitindo postagens ou comentários entre 12 e 14 de junho, 2023. Alguns subreddits planejam continuar esse protesto, denominado "apagão", além de 14 de junho, até que o Reddit Inc. reverta sua decisão. Vários usuários, incluindo aqueles feitos há 17 anos, também afirmaram que se absteriam de postar e comentar durante o protesto, ou deixariam o Reddit até que o Reddit Inc. revertesse a decisão. <ref>{{Citar web|url=https://www.independent.co.uk/tech/reddit-blackout-date-protest-subreddits-b2352492.html|titulo=Reddit blackout: More than 1,000 subreddits to go dark in protest to new changes|ultimo=Anthony Cuthbertson|data=June 6, 2023|acessodata=June 8, 2023|website=[[The Independent]]}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFAnthony_Cuthbertson2023">Anthony Cuthbertson (June 6, 2023). </cite></ref> <ref>{{Citar web|url=https://www.reddit.com/r/ModCoord/comments/1401qw5/incomplete_and_growing_list_of_participating/|titulo=Incomplete and Growing List of Participating Subreddits|data=June 4, 2023}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.reddit.com/r/ModCoord/comments/1401qw5/incomplete_and_growing_list_of_participating/ "Incomplete and Growing List of Participating Subreddits"]. </cite></ref> <ref name="bbcapiblackout">{{Citar jornal|ultimo=Gerken|primeiro=Tom|data=June 9, 2023|titulo=Reddit blackout: Subreddits to go private on Monday|lingua=en-GB|website=BBC News|url=https://www.bbc.com/news/technology-65855608|acessodata=June 9, 2023}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFGerken2023">Gerken, Tom (June 9, 2023). </cite></ref> <ref>{{Citar web|url=https://www.reddit.com/r/ModCoord/comments/143fzf6/incomplete_and_growing_list_of_participating/|titulo=Incomplete and Growing List of Participating Subreddits Thread 2|data=June 7, 2023}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.reddit.com/r/ModCoord/comments/143fzf6/incomplete_and_growing_list_of_participating/ "Incomplete and Growing List of Participating Subreddits Thread 2"]. </cite></ref> Em 12 de junho de 2023, o primeiro dia do protesto do subreddit, mais de 7.800 subreddits se tornaram privados. <ref>{{Citar jornal|ultimo=Avi-Yonah|primeiro=Shera|ultimo2=Timsit|primeiro2=Annabelle|data=2023-06-12|titulo=Why have many Reddit communities gone private? The blackout, explained.|url=https://www.washingtonpost.com/technology/2023/06/12/reddit-blackout-begins/|acessodata=2023-06-12|website=Washington Post|lingua=en}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFAvi-YonahTimsit2023">Avi-Yonah, Shera; Timsit, Annabelle (June 12, 2023). </cite></ref> O Reddit viu problemas de estabilidade do servidor já esperados creditados a um "número significativo de subreddits mudando para privado". <ref>{{Citar web|ultimo=Khogeer|primeiro=Khadijah|data=2023-06-12|titulo=Reddit says protesting communities crashed the site|url=https://www.nbcnews.com/tech/tech-news/reddit-down-private-blackout-goes-protest-took-subreddits-rcna88856|acessodata=2023-06-12|website=NBC News|lingua=en}}</ref> Tim Rathschmidt disse sobre os subreddits que definem sua visibilidade como privada: "Respeitamos quando você e suas comunidades agem para destacar as coisas de que precisam, incluindo, às vezes, tornar-se privado. Somos todos responsáveis por garantir que o Reddit forneça um local aberto e acessível para as pessoas encontrarem comunidade e pertencimento." <ref>{{Citar web|ultimo=Bell|primeiro=Karissa|titulo=Reddit sees more than 6,000 communities 'go dark' in protest over API changes|url=https://www.engadget.com/reddit-sees-more-than-6000-communities-go-dark-in-protest-over-api-changes-095311637.html|acessodata=2023-06-12|website=Engadget|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true">Bell, Karissa. </cite></ref> <ref>{{Citar web|ultimo=Klar|primeiro=Rebecca|data=2023-06-12|titulo=Parts of Reddit ‘going dark’ in protest of developer fees|url=https://news.yahoo.com/parts-reddit-going-dark-protest-164436671.html|acessodata=2023-06-13|website=Yahoo News|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFKlar2023">Klar, Rebecca (June 12, 2023). </cite></ref> Rathschmidt também disse ao ''[[The Verge]]'' que o Reddit não tinha planos de mudar o preço de sua API, apesar dos protestos. <ref>{{Citar web|data=2023-06-11|titulo=Despite the outrage and planned subreddit blackouts, Reddit still isn’t planning changes to its API pricing.|url=https://www.theverge.com/2023/6/11/23757259/despite-the-outrage-and-planned-subreddit-blackouts-reddit-still-isnt-planning-changes-to-its-api-pr|acessodata=2023-06-13|website=The Verge|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.theverge.com/2023/6/11/23757259/despite-the-outrage-and-planned-subreddit-blackouts-reddit-still-isnt-planning-changes-to-its-api-pr "Despite the outrage and planned subreddit blackouts, Reddit still isn't planning changes to its API pricing"]. </cite></ref> O CEO Steve Huffman divulgou um memorando na tarde de segunda-feira que incluía as seguintes observações <ref>{{Citar web|ultimo=Peters|primeiro=Jay|data=2023-06-13|titulo=Reddit CEO tells employees that subreddit blackout “will pass”|url=https://www.theverge.com/2023/6/13/23759559/reddit-internal-memo-api-pricing-changes-steve-huffman|acessodata=2023-06-13|website=The Verge|lingua=en-US}}<cite class="citation web cs1" data-ve-ignore="true">Peters, Jay (June 13, 2023). </cite></ref> :<blockquote>Não vimos nenhum impacto significativo na receita até agora e continuaremos monitorando.Há muito barulho desta vez. Entre os mais barulhentos que já vimos. Saiba que nossas equipes estão trabalhando nisso e, como todas as explosões no Reddit, esta também passará. As coisas mais importantes que podemos fazer agora são manter o foco, adaptar-se aos desafios e seguir em frente. Nós absolutamente devemos fazer o que dissemos que faríamos. A única solução de longo prazo é melhorar nosso produto e, a curto prazo, temos alguns lançamentos de ferramentas de modificação críticas que precisamos acertar.</blockquote> === Outras controvérsias === ==== 2014 ==== Em agosto, fotos sexuais privadas do [[Vazamento de fotografias de celebridades em 2014|hack de fotos de celebridades]] foram amplamente divulgadas em todo o site. <ref>{{Citar web|url=https://www.theverge.com/2014/9/1/6092769/creeps|titulo=Say hello to men who hate NSA spying but blame women for being spied on|data=September 1, 2014|website=The Verge|acessodata=October 7, 2014|arquivourl=https://web.archive.org/web/20141006081104/http://www.theverge.com/2014/9/1/6092769/creeps|arquivodata=October 6, 2014|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.theverge.com/2014/9/1/6092769/creeps "Say hello to men who hate NSA spying but blame women for being spied on"]. </cite></ref> <ref>{{Citar jornal|url=https://www.independent.co.uk/life-style/gadgets-and-tech/is-apples-icloud-safe-after-leak-of-jennifer-lawrence-and-other-celebrities-nude-photos-9703142.html|titulo=Is Apple's iCloud safe after leak of Jennifer Lawrence and other celebrities' nude photos?|website=The Independent|acessodata=October 7, 2014|local=London|primeiro=James|ultimo=Vincent|data=September 1, 2014|arquivourl=https://web.archive.org/web/20141006125523/http://www.independent.co.uk/life-style/gadgets-and-tech/is-apples-icloud-safe-after-leak-of-jennifer-lawrence-and-other-celebrities-nude-photos-9703142.html|arquivodata=October 6, 2014|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFVincent2014">Vincent, James (September 1, 2014). </cite></ref> Um subreddit dedicado, "TheFappening", foi criado para esse fim, <ref>{{Citar web|url=http://www.chicagonow.com/so-you-have-a-girlfriend/2014/08/celebrity-naked-photos-leaked-thefappening/|titulo=Celebrity Naked Photos Leaked&nbsp;– #theFappening&nbsp;– So You Have A Girlfriend|website=Chicago Tribune|acessodata=October 7, 2014|arquivourl=https://web.archive.org/web/20141006172652/http://www.chicagonow.com/so-you-have-a-girlfriend/2014/08/celebrity-naked-photos-leaked-thefappening/|arquivodata=October 6, 2014|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true">[http://www.chicagonow.com/so-you-have-a-girlfriend/2014/08/celebrity-naked-photos-leaked-thefappening/ "Celebrity Naked Photos Leaked&nbsp;– #theFappening&nbsp;– So You Have A Girlfriend"] {{Webarchive|url=https://web.archive.org/web/20141006172652/http://www.chicagonow.com/so-you-have-a-girlfriend/2014/08/celebrity-naked-photos-leaked-thefappening/ |date=2014-10-06 }}. </cite></ref> e continha links para a maioria, senão todas as imagens explícitas obtidas criminalmente. <ref>{{Citar jornal|url=http://www.business2community.com/social-buzz/fappening-broadcast-live-reddit-100000-viewers-0995207#!bOcMup|titulo=The Fappening Is Being Broadcast Live On Reddit With 100,000+ Viewers|website=Business 2 Community|acessodata=October 7, 2014|arquivourl=https://web.archive.org/web/20141006210054/http://www.business2community.com/social-buzz/fappening-broadcast-live-reddit-100000-viewers-0995207#!bOcMup|arquivodata=October 6, 2014|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true">[http://www.business2community.com/social-buzz/fappening-broadcast-live-reddit-100000-viewers-0995207#!bOcMup "The Fappening Is Being Broadcast Live On Reddit With 100,000+ Viewers"]. </cite></ref> <ref>{{Citar web|url=http://www.metro.us/newyork/entertainment/gossip/2014/09/01/fappening-creepy-hackers-release-creepy-celebrity-nudes-creeps/|titulo=Security expert weighs in on 'The Fappening' and the iCloud|ultimo=Anthony Johnston, Metro World News|data=October 10, 2014|website=Metro|acessodata=December 26, 2014|arquivourl=https://web.archive.org/web/20141006123154/http://www.metro.us/newyork/entertainment/gossip/2014/09/01/fappening-creepy-hackers-release-creepy-celebrity-nudes-creeps/|arquivodata=October 6, 2014}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFAnthony_Johnston,_Metro_World_News2014">Anthony Johnston, Metro World News (October 10, 2014). </cite></ref> <ref>{{Citar jornal|url=https://www.smh.com.au/lifestyle/celebrity/hunt-begins-for-hacker-behind-jennifer-lawrence-nude-photo-theft-20140902-10b7vc.html|titulo=Hunt begins for hacker behind Jennifer Lawrence nude photo theft|website=The Sydney Morning Herald|acessodata=October 7, 2014|arquivourl=https://web.archive.org/web/20140930220806/http://www.smh.com.au/lifestyle/celebrity/hunt-begins-for-hacker-behind-jennifer-lawrence-nude-photo-theft-20140902-10b7vc.html|arquivodata=September 30, 2014|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true">[https://www.smh.com.au/lifestyle/celebrity/hunt-begins-for-hacker-behind-jennifer-lawrence-nude-photo-theft-20140902-10b7vc.html "Hunt begins for hacker behind Jennifer Lawrence nude photo theft"]. </cite></ref> <ref>{{Citar jornal|url=http://www.news.com.au/entertainment/celebrity-life/jennifer-lawrence-nude-photos-leaked-hacker-posts-explicit-pics/story-fn907478-1227043406704?sv=306536ca258a2e18616921c12eb4e2eb|titulo=Jennifer Lawrence nude photos leaked: Hacker posts explicit pics|website=NewsComAu|acessodata=October 7, 2014|data=September 3, 2014|arquivourl=https://web.archive.org/web/20141006131634/http://www.news.com.au/entertainment/celebrity-life/jennifer-lawrence-nude-photos-leaked-hacker-posts-explicit-pics/story-fn907478-1227043406704?sv=306536ca258a2e18616921c12eb4e2eb|arquivodata=October 6, 2014|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true">[http://www.news.com.au/entertainment/celebrity-life/jennifer-lawrence-nude-photos-leaked-hacker-posts-explicit-pics/story-fn907478-1227043406704?sv=306536ca258a2e18616921c12eb4e2eb "Jennifer Lawrence nude photos leaked: Hacker posts explicit pics"] {{Webarchive|url=https://web.archive.org/web/20141006131634/http://www.news.com.au/entertainment/celebrity-life/jennifer-lawrence-nude-photos-leaked-hacker-posts-explicit-pics/story-fn907478-1227043406704?sv=306536ca258a2e18616921c12eb4e2eb |date=2014-10-06 }}. </cite></ref> Algumas imagens de [[McKayla Maroney]] e [[My Life as Liz|Liz Lee]] foram identificadas por redditors e comentaristas externos como pornografia infantil porque as fotos foram tiradas quando as mulheres eram menores de idade. <ref>{{Citar web|ultimo=Price|primeiro=Rob|titulo=There's child porn in the massive celebrity nudes hack|url=http://www.dailydot.com/news/reddit-fappening-celebgate-mckayla-liz-lee-child-porn/?fbdd|website=The Daily Dot|acessodata=September 2, 2014|arquivourl=https://web.archive.org/web/20140904153059/http://www.dailydot.com/news/reddit-fappening-celebgate-mckayla-liz-lee-child-porn/?fbdd|arquivodata=September 4, 2014|urlmorta=live|data=September 2, 2014}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFPrice2014">Price, Rob (September 2, 2014). </cite></ref> O subreddit foi banido em 6 de setembro.<ref>{{Citar web|ultimo=Geller|primeiro=Eric|titulo=Reddit just banned the subreddit at the center of Celebgate|url=http://www.dailydot.com/news/reddit-bans-the-fappening/|website=The Daily Dot|acessodata=September 8, 2014|arquivourl=https://web.archive.org/web/20140908003341/http://www.dailydot.com/news/reddit-bans-the-fappening/|arquivodata=September 8, 2014|urlmorta=live|data=September 7, 2014}}</ref> O escândalo levou a críticas mais amplas sobre a administração do site de ''[[The Verge]]'' e ''The Daily Dot'' . <ref>{{Citar web|url=https://www.theverge.com/2014/9/8/6121363/reddit-is-a-failed-state|titulo=Reddit is a failed state|primeiro=T.C.|ultimo=Sottek|data=September 8, 2014|website=The Verge|publicado=Vox Media|acessodata=November 2, 2014|arquivourl=https://web.archive.org/web/20141104224406/http://www.theverge.com/2014/9/8/6121363/reddit-is-a-failed-state|arquivodata=November 4, 2014|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFSottek2014">Sottek, T.C. (September 8, 2014). </cite></ref> <ref>{{Citar web|ultimo=Sankin|primeiro=Aaron|titulo=Is Reddit broken beyond repair?|url=http://kernelmag.dailydot.com/issue-sections/staff-editorials/10749/reddit-broken-beyond-repair/|website=The Daily Dot|acessodata=November 2, 2014|arquivourl=https://web.archive.org/web/20141103024118/http://kernelmag.dailydot.com/issue-sections/staff-editorials/10749/reddit-broken-beyond-repair/|arquivodata=November 3, 2014|urlmorta=live|data=November 2, 2014}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFSankin2014">Sankin, Aaron (November 2, 2014). </cite></ref> Em 18 de dezembro, o Reddit tomou uma ação criticada de banir um subreddit, "SonyGOP", que estava sendo usado para distribuir arquivos hackeados da Sony . <ref>{{Citar jornal|ultimo=Goldman|primeiro=David|titulo=Reddit takes down Sony hack forum|url=https://money.cnn.com/2014/12/17/technology/security/reddit-sony-hack-forum-ban/|acessodata=January 4, 2015|data=December 29, 2014|website=CNN|arquivourl=https://web.archive.org/web/20150104205335/http://money.cnn.com/2014/12/17/technology/security/reddit-sony-hack-forum-ban/|arquivodata=January 4, 2015|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFGoldman2014">Goldman, David (December 29, 2014). </cite></ref> ==== 2016 ==== Em maio, Steve Huffman disse em uma entrevista na TNW Conference que, ao contrário do Facebook, que "só sabe o que [seus usuários estão] dispostos a declarar publicamente", o Reddit conhece os "segredos obscuros" de seus usuários <ref>{{Citar web|url=https://thenextweb.com/socialmedia/2016/05/30/reddit-knows-your-dark-secrets/|publicado=The Next Web (TNW)|data=May 30, 2016|titulo=Reddit CEO Steve Huffman: 'We know your dark secrets. We know everything.'|ultimo=Boris van Zanten|acessodata=February 18, 2019|arquivourl=https://web.archive.org/web/20190201161936/https://thenextweb.com/socialmedia/2016/05/30/reddit-knows-your-dark-secrets/|arquivodata=February 1, 2019|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFBoris_van_Zanten2016">Boris van Zanten (May 30, 2016). </cite></ref> <ref>{{Citar jornal|url=https://www.mirror.co.uk/news/world-news/reddit-ceo-tells-users-we-8082550|titulo=Reddit CEO tells users 'we know your dark secrets' as he strikes fear into web surfers|website=Mirror|oclc=223228477|data=May 30, 2016|primeiro=Jessica|ultimo=Haworth|acessodata=February 18, 2019|arquivourl=https://web.archive.org/web/20181211145626/https://www.mirror.co.uk/news/world-news/reddit-ceo-tells-users-we-8082550|arquivodata=December 11, 2018|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFHaworth2016">Haworth, Jessica (May 30, 2016). </cite></ref> <ref name="dna">{{Citar web|url=http://www.dnaindia.com/scitech/report-reddit-ceo-steve-huffman-says-we-know-your-dark-secrets-2218420|website=Daily News and Analysis|data=May 31, 2016|titulo=Reddit CEO Steve Huffman says, "We know your dark secrets"|acessodata=February 18, 2019|arquivourl=https://web.archive.org/web/20171018155043/http://www.dnaindia.com/scitech/report-reddit-ceo-steve-huffman-says-we-know-your-dark-secrets-2218420|arquivodata=October 18, 2017|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true">[http://www.dnaindia.com/scitech/report-reddit-ceo-steve-huffman-says-we-know-your-dark-secrets-2218420 "Reddit CEO Steve Huffman says, "We know your dark secrets""]. </cite></ref> ao mesmo tempo que a página de "valores" do site foi atualizada em relação a sua seção de "privacidade". O vídeo chegou ao topo do feed principal do site. <ref name="dna" /> <ref>{{Citar web|url=https://www.reddit.com/r/videos/comments/4lmfmj/ceo_of_reddit_steve_huffman_about_advertising_on/|titulo=CEO of Reddit, Steve Huffman, about advertising on Reddit: "We know all of your interests. Not only just your interests you are willing to declare publicly on Facebook – we know your dark secrets, we know everything" (TNW Conference, 26 May) (27,500 votes)|data=May 29, 2016|publicado=Reddit|acessodata=February 18, 2019|arquivourl=https://web.archive.org/web/20181003214650/https://www.reddit.com/r/videos/comments/4lmfmj/ceo_of_reddit_steve_huffman_about_advertising_on/|arquivodata=October 3, 2018|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.reddit.com/r/videos/comments/4lmfmj/ceo_of_reddit_steve_huffman_about_advertising_on/ "CEO of Reddit, Steve Huffman, about advertising on Reddit: "We know all of your interests. ]</cite></ref> Pouco tempo depois, os anúncios sobre novos conteúdos de anúncio atraíram críticas no site. <ref>{{Citar web|url=https://www.reddit.com/r/announcements/comments/4upf11/new_ad_type_promoted_user_posts/|titulo=New Ad Type: Promoted User Posts|publicado=Reddit (official announcement)|data=July 26, 2016|acessodata=February 18, 2019|arquivourl=https://web.archive.org/web/20180222214323/https://www.reddit.com/r/announcements/comments/4upf11/new_ad_type_promoted_user_posts/|arquivodata=February 22, 2018|urlmorta=live}}</ref> <ref>{{Citar web|url=https://www.reddit.com/r/announcements/comments/4phzsi/sponsored_headline_tests_placement_and_design/|titulo=Sponsored headline tests: placement and design|data=June 23, 2016|publicado=Reddit (official announcement)|acessodata=February 18, 2019|arquivourl=https://web.archive.org/web/20180201192957/https://www.reddit.com/r/announcements/comments/4phzsi/sponsored_headline_tests_placement_and_design/|arquivodata=February 1, 2018|urlmorta=live}}</ref> Em setembro, um usuário chamado "mormondocuments" divulgou milhares de documentos administrativos pertencentes à [[A Igreja de Jesus Cristo dos Santos dos Últimos Dias|Igreja de Jesus Cristo dos Santos dos Últimos Dias]], uma ação impulsionada pelas comunidades de ex-mórmons e [[Ateísmo|ateus]] no Reddit. Anteriormente, em 22 de abril, o mesmo usuário havia anunciado seus planos de fazê-lo. Oficiais da Igreja comentaram que os documentos não continham nada confidencial. <ref>{{Citar web|url=http://fox13now.com/2016/09/22/allegedly-secret-lds-church-documents-leaked/|titulo=Allegedly secret LDS Church documents leaked|ultimo=Roth|primeiro=Max|data=September 22, 2016|website=Fox 13 Now|publicado=Fox 13 Salt Lake|acessodata=September 30, 2016|arquivourl=https://web.archive.org/web/20160928052655/http://fox13now.com/2016/09/22/allegedly-secret-lds-church-documents-leaked/|arquivodata=September 28, 2016|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFRoth2016">Roth, Max (September 22, 2016). </cite></ref> <ref>{{Citar web|url=http://mashable.com/2016/09/26/former-mormons-reddit/|titulo=Inside the online world of ex-Mormons|ultimo=Wenzke|primeiro=Marissa|data=September 26, 2016|website=Mashable|publicado=Mashable|acessodata=September 30, 2016|arquivourl=https://web.archive.org/web/20160930051802/http://mashable.com/2016/09/26/former-mormons-reddit/|arquivodata=September 30, 2016|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFWenzke2016">Wenzke, Marissa (September 26, 2016). </cite></ref> Em 23 de novembro, Huffman admitiu ter substituído seu nome de usuário pelos nomes dos moderadores do r/The_Donald em muitos comentários ofensivos. <ref>{{Citar jornal|ultimo=Yeung|primeiro=Ken|url=https://venturebeat.com/2016/11/23/reddit-ceo-apologizes-for-editing-comments-critical-of-him-following-pizzagate-ban/|titulo=Reddit CEO apologizes for editing comments critical of him following Pizzagate ban|publicado=VentureBeat|acessodata=November 24, 2016|arquivourl=https://web.archive.org/web/20161124161742/http://venturebeat.com/2016/11/23/reddit-ceo-apologizes-for-editing-comments-critical-of-him-following-pizzagate-ban/|arquivodata=November 24, 2016|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFYeung">Yeung, Ken. </cite></ref> <ref>{{Citar jornal|ultimo=Russell|primeiro=Jon|titulo=Reddit CEO admits he secretly edited comments from Donald Trump supporters|url=https://techcrunch.com/2016/11/23/reddit-huffman-trump/|publicado=Techcrunch|acessodata=November 24, 2016|arquivourl=https://web.archive.org/web/20161124070150/https://techcrunch.com/2016/11/23/reddit-huffman-trump/|arquivodata=November 24, 2016|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFRussell">Russell, Jon. </cite></ref> Ele fez isso alterando os comentários insultuosos feitos a ele e fazendo parecer que o insulto era dirigido aos moderadores do r/The_Donald. <ref>{{Citar jornal|ultimo=Weingerger|primeiro=Matt|url=http://www.businessinsider.com/reddit-ceo-steve-huffman-modifies-donald-trump-the-donald-2016-11|acessodata=November 24, 2016|publicado=Business Insider|titulo=The CEO of Reddit confessed to modifying posts from Trump supporters after they wouldn't stop sending him expletives|arquivourl=https://web.archive.org/web/20161124053421/http://www.businessinsider.com/reddit-ceo-steve-huffman-modifies-donald-trump-the-donald-2016-11|arquivodata=November 24, 2016|urlmorta=live}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFWeingerger">Weingerger, Matt. </cite></ref> Em 24 de novembro, ''[[The Washington Post|o The Washington Post]]'' relatou que o Reddit havia banido o subreddit de conspirações "[[Pizzagate]]" de seu site, afirmando que ele violava sua política de postar informações pessoais de outras pessoas, provocando uma onda de críticas de usuários no r/The_Donald, que sentiram que a proibição equivalia a censura. <ref>{{Citar jornal|url=https://www.washingtonpost.com/news/the-intersect/wp/2016/11/23/fearing-yet-another-witch-hunt-reddit-bans-pizzagate/|titulo=Fearing yet another witch hunt, Reddit bans 'Pizzagate'|ultimo=Ohlheiser|primeiro=Abby|data=November 24, 2016|website=[[The Washington Post]]|issn=0190-8286|oclc=2269358|acessodata=November 24, 2016|arquivourl=https://web.archive.org/web/20161230234312/https://www.washingtonpost.com/news/the-intersect/wp/2016/11/23/fearing-yet-another-witch-hunt-reddit-bans-pizzagate/|arquivodata=December 30, 2016|urlmorta=live}}</ref> Depois que o fórum foi banido do Reddit, as palavras "não queremos caça às bruxas em nosso site" agora aparecem na antiga página do subreddit Pizzagate. <ref name="Blake">{{Citar jornal|ultimo=Blake|primeiro=Andrew|data=November 25, 2016|titulo=Reddit CEO admits editing posts, directing obscene comments to pro-Trump administrators|website=Washington Times|url=http://www.washingtontimes.com/news/2016/nov/25/reddit-ceo-admits-editing-posts-directing-obscene-/|urlmorta=live|acessodata=November 25, 2016|arquivourl=https://web.archive.org/web/20161126053153/http://www.washingtontimes.com/news/2016/nov/25/reddit-ceo-admits-editing-posts-directing-obscene-/|arquivodata=November 26, 2016|issn=0732-8494|oclc=8472624}}</ref> <ref>{{Citar web|url=https://www.reddit.com/r/pizzagate|titulo=Pizzagate subreddit webpage|data=November 23, 2016|website=Reddit|acessodata=November 25, 2016|arquivourl=https://web.archive.org/web/20161122234401/https://www.reddit.com/r/pizzagate/|arquivodata=November 22, 2016}}</ref> Em 30 de novembro, Huffman anunciou mudanças no algoritmo da página r/all do Reddit para bloquear postagens "fixas" de vários subreddits, como r/The_Donald. No anúncio, ele também se desculpou por editar pessoalmente postagens de usuários de r/The_Donald e declarou intenções de tomar medidas contra "centenas dos usuários mais tóxicos" do Reddit e "comunidades cujos usuários continuamente cruzam a linha". <ref name="Ohlheiser">{{Citar jornal|ultimo=Ohlheiser|primeiro=Abby|data=November 30, 2016|titulo=Reddit will limit the reach of a pro-Trump board and crack down on its 'most toxic users'|website=[[The Washington Post]]|url=https://www.washingtonpost.com/news/the-intersect/wp/2016/11/30/reddit-will-limit-the-reach-of-a-pro-trump-board-and-crack-down-on-its-most-toxic-users/|urlmorta=live|acessourl=subscription|acessodata=December 1, 2016|arquivourl=https://web.archive.org/web/20170114114339/https://www.washingtonpost.com/news/the-intersect/wp/2016/11/30/reddit-will-limit-the-reach-of-a-pro-trump-board-and-crack-down-on-its-most-toxic-users/|arquivodata=January 14, 2017|issn=0190-8286|oclc=2269358}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFOhlheiser2016">Ohlheiser, Abby (November 30, 2016). </cite></ref> <ref>{{Citar web|url=https://www.reddit.com/r/announcements/comments/5frg1n/tifu_by_editing_some_comments_and_creating_an/|titulo=TIFU by editing some comments and creating an unnecessary controversy.|ultimo=Huffman|primeiro=Steve|data=November 30, 2016|website=Reddit|acessodata=November 30, 2016|arquivourl=https://web.archive.org/web/20161130192054/https://www.reddit.com/r/announcements/comments/5frg1n/tifu_by_editing_some_comments_and_creating_an/|arquivodata=November 30, 2016|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFHuffman2016">Huffman, Steve (November 30, 2016). </cite></ref> <ref>{{Citar jornal|titulo=Reddit moves against 'toxic' Trump fans|url=https://www.bbc.com/news/technology-38165435|website=[[BBC News]]|acessodata=December 1, 2016|arquivourl=https://web.archive.org/web/20161201001207/http://www.bbc.com/news/technology-38165435|arquivodata=December 1, 2016|urlmorta=live|data=November 30, 2016|ultimo=Lee|primeiro=Dave}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFLee2016">Lee, Dave (November 30, 2016). </cite></ref> ==== 2017 ==== Em fevereiro, o Reddit baniu o subreddit r/altright da [[Direita alternativa|alt-right]] por violar seus termos de serviço, mais especificamente por tentar [[Doxing|compartilhar informações privadas]] sobre o homem que atacou a figura da alt-right [[Richard B. Spencer]]. <ref>{{Citar jornal|url=https://www.cnet.com/news/reddit-bans-alt-right-subreddit/|titulo=Reddit shuts down 'alt-right' subreddit|website=CNET|lingua=en|arquivourl=https://web.archive.org/web/20170215114339/https://www.cnet.com/news/reddit-bans-alt-right-subreddit/|arquivodata=February 15, 2017|urlmorta=live|acessodata=February 15, 2017}}</ref> <ref>{{Citar jornal|url=http://www.thedailybeast.com/articles/2017/02/01/reddit-bans-alt-right-group.html|titulo=Reddit Bans Alt-Right Group|ultimo=Resnick|primeiro=Gideon|data=February 2, 2017|website=The Daily Beast|arquivourl=https://web.archive.org/web/20170216044417/http://www.thedailybeast.com/articles/2017/02/01/reddit-bans-alt-right-group.html|arquivodata=February 16, 2017|urlmorta=live|acessodata=February 15, 2017}}</ref> Os usuários e moderadores do fórum acusaram os administradores do Reddit de terem motivações políticas para a proibição. <ref>{{Citar jornal|ultimo=Weinberger|primeiro=Matt|data=February 2, 2017|titulo=Reddit bans a major alt-right community — and there may be a very good reason|url=http://www.businessinsider.com/why-reddit-banned-alt-right-2017-2|website=Business Insider|arquivourl=https://web.archive.org/web/20171130090857/http://www.businessinsider.com/why-reddit-banned-alt-right-2017-2|arquivodata=November 30, 2017|urlmorta=live|acessodata=February 18, 2019}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFWeinberger2017">Weinberger, Matt (February 2, 2017). </cite></ref> <ref>{{Citar jornal|url=https://www.theguardian.com/technology/2017/feb/02/reddit-bans-far-right-groups-altright-alternativeright|titulo=Reddit bans far-right groups altright and alternativeright|ultimo=Hern|primeiro=Alex|data=February 2, 2017|website=The Guardian|lingua=en-GB|issn=0261-3077|arquivourl=https://web.archive.org/web/20170215115951/https://www.theguardian.com/technology/2017/feb/02/reddit-bans-far-right-groups-altright-alternativeright|arquivodata=February 15, 2017|urlmorta=live|acessodata=February 15, 2017}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFHern2017">Hern, Alex (February 2, 2017). </cite></ref> ==== 2018 ==== Em março, foi revelado que Huffman havia escondido dos usuários a atividade de trolls russos. <ref>{{Citar jornal|url=https://www.thedailybeast.com/reddit-rises-up-against-ceo-for-hiding-russian-trolls|titulo=Reddit Rises Up Against CEO for Hiding Russian Trolls|arquivourl=https://web.archive.org/web/20180306010429/https://www.thedailybeast.com/reddit-rises-up-against-ceo-for-hiding-russian-trolls|arquivodata=March 6, 2018|urlmorta=live|website=The Daily Beast|data=March 6, 2018|ultimo=Collins|primeiro=Ben|acessodata=March 6, 2018}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFCollins2018">Collins, Ben (March 6, 2018). </cite></ref> Em 12 de julho, o criador e moderador principal do subreddit [[Gamergate|GamerGate]], r/KotakuInAction, removeu todos os moderadores e definiu o fórum como privado, alegando que ele estava "infestado de racismo e sexismo". Um funcionário do Reddit restaurou o fórum e seus moderadores uma hora depois. <ref>{{Citar jornal|url=https://www.inquisitr.com/opinion/4985599/opinions-are-split-on-the-attempt-to-shut-down-popular-subreddit-r-kotakuinaction/|titulo=Opinions Are Split On The Attempt To Shut Down Popular Subreddit r/KotakuInAction [Opinion]|data=July 14, 2018|website=The Inquisitr|lingua=en-US|arquivourl=https://web.archive.org/web/20180717125028/https://www.inquisitr.com/opinion/4985599/opinions-are-split-on-the-attempt-to-shut-down-popular-subreddit-r-kotakuinaction/|arquivodata=July 17, 2018|urlmorta=live|acessodata=July 17, 2018}}<cite class="citation news cs1" data-ve-ignore="true">[https://www.inquisitr.com/opinion/4985599/opinions-are-split-on-the-attempt-to-shut-down-popular-subreddit-r-kotakuinaction/ "Opinions Are Split On The Attempt To Shut Down Popular Subreddit r/KotakuInAction &#x5B;Opinion&#x5D;"]. </cite></ref> <ref>{{Citar jornal|url=https://www.polygon.com/2018/7/13/17568556/kotakuinaction-reddit-mod-shut-down-administrator|titulo=Reddit employee saves GamerGate subreddit, KotakuInAction, after founder closes it|website=Polygon|arquivourl=https://web.archive.org/web/20180716170635/https://www.polygon.com/2018/7/13/17568556/kotakuinaction-reddit-mod-shut-down-administrator|arquivodata=July 16, 2018|urlmorta=live|acessodata=July 17, 2018}}<cite class="citation news cs1" data-ve-ignore="true">[https://www.polygon.com/2018/7/13/17568556/kotakuinaction-reddit-mod-shut-down-administrator "Reddit employee saves GamerGate subreddit, KotakuInAction, after founder closes it"]. </cite></ref> ==== 2019 ==== Em janeiro, o subreddit filipino r/jakolandia foi acusado de "distribuir" postagens de fotos de mulheres, incluindo celebridades, aparentemente sem o consentimento delas, semelhante a "uma série" de grupos secretos do [[Facebook]] que estavam envolvidos em atividades ilegais de [[Pornografia de vingança|compartilhamento fotos "obscenas" de mulheres]] e possivelmente pornografia infantil.<ref>{{Citar web|url=https://www.manilatimes.net/netizens-slam-disturbing-photos-on-ph-subsite-on-reddit/496547/|titulo=Netizens slam 'disturbing' photos of PH subsite on Reddit|website=[[The Manila Times]]|arquivourl=https://web.archive.org/web/20190116045925/https://www.manilatimes.net/netizens-slam-disturbing-photos-on-ph-subsite-on-reddit/496547/|arquivodata=January 16, 2019|urlmorta=live|data=January 14, 2019|acessodata=February 18, 2019}}</ref> Em fevereiro, a empresa chinesa [[Tencent]] investiu US$ 150 milhões no Reddit. <ref>{{Citar web|url=https://techcrunch.com/2019/02/11/reddit-300-million/|titulo=Reddit confirms $300M Series D led by China's Tencent at $3B value|website=TechCrunch|ultimo=Constine|primeiro=Josh|data=February 11, 2019|acessodata=September 30, 2019}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFConstine2019">Constine, Josh (February 11, 2019). </cite></ref> <ref name="ZDNet Tencent">{{Citar web|url=https://www.zdnet.com/article/reddit-explodes-over-potential-tencent-investment-censorship-concerns/|titulo=Winnie The Pooh takes over Reddit due to Chinese investment, censorship fears|website=ZDNet|ultimo=Osborne|primeiro=Charlie|data=February 11, 2019|acessodata=September 30, 2019}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFOsborne2019">Osborne, Charlie (February 11, 2019). </cite></ref> Isso resultou em uma grande reação dos usuários do Reddit, que estavam preocupados com uma possível censura. <ref>{{Citar web|url=https://www.bbc.com/news/business-47194096|titulo=Reddit: Censorship fears spark criticism of Tencent funding reports|website=BBC News|data=February 11, 2019|acessodata=September 30, 2019}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.bbc.com/news/business-47194096 "Reddit: Censorship fears spark criticism of Tencent funding reports"]. </cite></ref> <ref>{{Citar revista|url=https://time.com/5526128/china-reddit-tencent-censorship/|título=Chinese Company's Reddit Investment Angers Users Who Fear Censorship|revista=Time|sobrenome=Law|primeiro=Tara}}<cite class="citation magazine cs1" data-ve-ignore="true" id="CITEREFLaw2019">Law, Tara (February 11, 2019). </cite></ref> <ref name="Bloomberg Tencent">{{Citar web|url=https://www.bloomberg.com/news/articles/2019-02-11/china-s-tencent-invests-in-reddit-sparking-free-speech-protests|titulo=China's Tencent Invests in Reddit, Sparking Free Speech Protests|website=Bloomberg|ultimo=Verhage|primeiro=Julie|data=February 11, 2019|acessodata=September 30, 2019}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFVerhage2019">Verhage, Julie (February 11, 2019). </cite></ref> Muitas postagens com assuntos censurados na China, como [[Massacre da Praça da Paz Celestial em 1989|Tiananmen Square]], [[O Rebelde Desconhecido|Tank Man]] e [[Ursinho Pooh|Winnie the Pooh]], receberam popularidade no Reddit. <ref name="ZDNet Tencent" /> <ref name="Bloomberg Tencent" /> <ref>{{Citar web|url=https://www.theverge.com/2019/2/11/18216134/reddit-tencent-investment-deal-memes-amount-winnie-the-pooh-tank-man-china|titulo=Reddit gets a $150 million investment from Tencent and users are posting memes to mock the deal|website=The Verge|ultimo=Liao|primeiro=Shannon|data=February 11, 2019|acessodata=September 30, 2019}}<cite class="citation web cs1" data-ve-ignore="true">Liao, Shannon (February 11, 2019). </cite></ref> ==== 2020 ==== Durante os [[Protestos antirracistas nos Estados Unidos em 2020|protestos de George Floyd]] no início de junho, mais de 800 moderadores assinaram uma carta aberta exigindo uma política de proibição do discurso de ódio, o fechamento de subreddits racistas e sexistas e mais apoio dos funcionários à moderação. A Bloomberg News apontou a reação lenta da empresa ao r/watchpeopledie, um subreddit dedicado a vídeos de pessoas morrendo em acidentes e outras situações, e o assédio que acompanhou novos recursos não moderados, como ícones para compra e bate-papos públicos. <ref>{{Citar web|url=https://www.sfgate.com/news/article/Racism-is-rampant-on-Reddit-and-its-editors-are-15348902.php|titulo=Racism is rampant on Reddit, and its editors are in open revolt|data=June 18, 2020|website=SFGate}}</ref> Em 29 de junho, o Reddit atualizou sua política de conteúdo e introduziu regras destinadas a restringir a presença de comunidades que eles acreditavam estar "promovendo o ódio", <ref>{{Citar web|url=http://reddit.zendesk.com/hc/en-us/articles/360045715951|titulo=Promoting Hate Based on Identity or Vulnerability|website=Reddit Help}}</ref> e baniu, no mesmo dia, aproximadamente 2.000 subreddits que violavam as novas diretrizes. <ref>{{Citar web|url=https://www.reddit.com/r/announcements/comments/hi3oht/update_to_our_content_policy/|titulo=Update to Our Content Policy|website=reddit|data=June 29, 2020}}</ref> Subreddits maiores afetados pelas proibições incluíram r/The_Donald, <ref>{{Citar jornal|ultimo=Lima|primeiro=Cristiano|url=https://www.politico.com/news/2020/06/29/reddit-bans-pro-trump-forum-in-crackdown-on-hate-speech-344698|titulo=Reddit bans pro-Trump forum in crackdown on hate speech|website=Politico|data=June 29, 2020|acessodata=June 29, 2020}}</ref> r/GenderCritical <ref name="theverge.com">{{Citar web|titulo=Reddit bans r/The_Donald and r/ChapoTrapHouse as part of a major expansion of its rules|url=https://www.theverge.com/2020/6/29/21304947/reddit-ban-subreddits-the-donald-chapo-trap-house-new-content-policy-rules|website=The Verge|data=June 29, 2020}}</ref> (o maior e mais ativo subreddit [[Visões feministas sobre pessoas transgênero|feminista radical anti-transgênero]] da plataforma),<ref>{{Citar web|url=https://4w.pub/reddit-bans-feminist-sub-r-gendercritical/|titulo=Reddit Bans Feminist Sub r/GenderCritical|data=June 29, 2020|website=4W – A Feminist Publication}}</ref> e r/ChapoTrapHouse (um subreddit de [[Extrema-esquerda|extrema esquerda]] originalmente criado pelos fãs do podcast ''Chapo Trap House'').<ref name="theverge.com" /> Alguns meios de comunicação e comentaristas políticos também condenaram o banimento dos subreddits r/The_Donald e r/ChapoTrapHouse como uma violação do direito à livre expressão política. <ref>{{Citar web|url=https://www.youtube.com/watch?v=bv9Yr4_TJgk|arquivourl=https://ghostarchive.org/varchive/youtube/20211219/bv9Yr4_TJgk|arquivodata=December 19, 2021|urlmorta=live|titulo=Saagar and Ryan Grim: Reddit's OUTRAGEOUS BAN of pro-Trump, Chapo trap house subreddits|data=June 30, 2020|website=[[The Hill (newspaper)|The Hill]]|via=[[YouTube]]|acessodata=October 15, 2020}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.youtube.com/watch?v=bv9Yr4_TJgk "Saagar and Ryan Grim: Reddit's OUTRAGEOUS BAN of pro-Trump, Chapo trap house subreddits"]. </cite></ref> ==== 2021 ==== Após a [[Ataque ao Capitólio dos Estados Unidos em 2021|invasão do Capitólio dos Estados Unidos em 2021]], o Reddit baniu o subreddit r/DonaldTrump em resposta a repetidas violações da política e aludindo à influência potencial que a comunidade teve sobre aqueles que participaram ou apoiaram a invasão. <ref>{{Citar jornal|ultimo=Isaac|primeiro=Mike|ultimo2=Conger|primeiro2=Kate|data=January 8, 2021|titulo=Reddit bans forum dedicated to supporting Trump, and Twitter permanently suspends his allies who spread conspiracy theories.|lingua=en-US|website=The New York Times|url=https://www.nytimes.com/2021/01/08/us/politics/reddit-bans-forum-dedicated-to-supporting-trump-and-twitter-permanently-suspends-his-allies-who-spread-conspiracy-theories.html|arquivourl=https://ghostarchive.org/archive/20211228/https://www.nytimes.com/2021/01/08/us/politics/reddit-bans-forum-dedicated-to-supporting-trump-and-twitter-permanently-suspends-his-allies-who-spread-conspiracy-theories.html|arquivodata=December 28, 2021|acessourl=limited|acessodata=January 23, 2021|issn=0362-4331}}<cite class="citation news cs1" data-ve-ignore="true" id="CITEREFIsaacConger2021">Isaac, Mike; Conger, Kate (January 8, 2021). </cite></ref> A mudança seguiu ações semelhantes de plataformas de mídia social, [[Twitter]], [[YouTube]], [[TikTok]] e muito mais. <ref>{{Citar web|ultimo=Fischer|primeiro=Sara|titulo=Reddit bans subreddit group "r/DonaldTrump"|url=https://www.axios.com/reddit-bans-rdonaldtrump-subreddit-ff1da2de-37ab-49cf-afbd-2012f806959e.html|website=Axios|data=January 8, 2021|lingua=en|acessodata=January 23, 2021}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFFischer2021">Fischer, Sara (January 8, 2021). </cite></ref> A proibição foi criticada por aqueles que acreditavam que ela promovia uma agenda e [[censura]] de ideologias [[Conservadorismo|conservadoras]]. <ref>{{Citar web|ultimo=Guynn|primeiro=Jessica|titulo='They want to take your speech away,' censorship cry unites Trump supporters and extremists after Capitol attack|url=https://www.usatoday.com/story/tech/2021/01/15/censorship-trump-extremists-facebook-twitter-social-media-capitol-riot/4178737001/|acessodata=January 23, 2021|website=USA TODAY|lingua=en-US}}</ref> O subreddit tinha mais de 52.000 membros pouco antes de ser banido. <ref>{{Citar web|ultimo=Reimann|primeiro=Nicholas|titulo=Reddit Bans 'r/donaldtrump' Subreddit|url=https://www.forbes.com/sites/nicholasreimann/2021/01/08/reddit-bans-rdonaldtrump-subreddit/|website=Forbes|lingua=en|acessodata=January 23, 2021}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFReimann">Reimann, Nicholas. </cite></ref> O [[Caso GameStop|short squeeze da GameStop]] foi organizado principalmente no subreddit r/wallstreetbets em janeiro. <ref>{{Citar jornal|ultimo=Phillips|primeiro=Matt|ultimo2=Lorenz|primeiro2=Taylor|data=January 27, 2021|titulo='Dumb Money' Is on GameStop, and It's Beating Wall Street at Its Own Game|lingua=en-US|website=The New York Times|url=https://www.nytimes.com/2021/01/27/business/gamestop-wall-street-bets.html|arquivourl=https://ghostarchive.org/archive/20211228/https://www.nytimes.com/2021/01/27/business/gamestop-wall-street-bets.html|arquivodata=December 28, 2021|acessourl=limited|issn=0362-4331|acessodata=January 29, 2021}}</ref> Em março, usuários do Reddit descobriram que Aimee Challenor, uma política inglesa que havia sido suspensa de dois partidos políticos do Reino Unido, foi contratada como administradora do site. Sua primeira suspensão do [[Partido Verde (Reino Unido)|Partido Verde]] veio por manter seu pai como gerente de campanha após sua prisão por acusações de [[abuso sexual]] infantil. Mais tarde, ela foi suspensa dos [[Liberais Democratas (Reino Unido)|Liberais Democratas]] depois que tweets descrevendo fantasias [[Pedofilia|pedófilas]] foram descobertos na conta de Twitter de seu parceiro. O Reddit baniu um moderador por postar um artigo de notícias que mencionava o Challenor, e alguns usuários do Reddit alegaram que o Reddit estava removendo todas as menções ao Challenor. Um grande número de subreddits, incluindo r/Music, que teve 27{{Espaços}}milhões de assinantes e 46 outros subreddits com mais de 1{{Espaços}}milhão de assinantes, tornou-se privado em protesto. <ref>{{Citar web|url=https://www.dailydot.com/debug/reddit-subs-private-admin-suspending-mentions/|ultimo=Goforth|primeiro=Claire|data=March 24, 2021|website=[[The Daily Dot]]|titulo=Massive subs all go private to protest Reddit's hiring of a pedophile 'enabler'|arquivourl=https://web.archive.org/web/20210324170201/https://www.dailydot.com/debug/reddit-subs-private-admin-suspending-mentions/|arquivodata=March 24, 2021|urlmorta=live}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFGoforth2021">Goforth, Claire (March 24, 2021). </cite></ref> <ref>{{Citar web|ultimo=Tamburro|primeiro=Paul|data=March 24, 2021|titulo=Reddit's most popular subreddits go private in protest against 'censorship'|url=https://www.gamerevolution.com/news/677190-reddit-private-community-aimee-challenor-censorship|urlmorta=live|arquivourl=https://web.archive.org/web/20210324142939/https://www.gamerevolution.com/news/677190-reddit-private-community-aimee-challenor-censorship|arquivodata=March 24, 2021|website=[[GameRevolution]]|acessodata=March 24, 2021}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFTamburro2021">Tamburro, Paul (March 24, 2021). </cite></ref> <ref name="Verge Challenor">{{Citar web|ultimo=Robertson|primeiro=Adi|data=March 24, 2021|titulo=Major subreddits are going dark to protest Reddit allegedly hiring a controversial UK politician|url=https://www.theverge.com/2021/3/24/22348255/reddit-moderator-blackout-protest-aimee-knight-uk-green-party|acessodata=March 24, 2021|website=The Verge|lingua=en}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFRobertson2021">Robertson, Adi (March 24, 2021). </cite></ref> <ref>{{Citar web|url=https://www.thetimes.co.uk/article/social-platform-in-reddit-censorship-row-over-spectator-article-g82fxjhcm|titulo=Social platform in Reddit censorship row over Spectator article|website=[[The Times]]|ultimo=Knowles|primeiro=Tom|data=March 25, 2021|acessodata=March 25, 2021}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFKnowles2021">Knowles, Tom (March 25, 2021). </cite></ref> Em 24 de março, o [[Diretor executivo|CEO]] do Reddit, [[Steve Huffman|Steve Huffman,]] disse que Challenor havia sido examinada inadequadamente antes de ser contratada e que o Reddit revisaria seus processos internos relevantes. Huffman atribuiu as suspensões de usuários ao excesso de indexação em medidas antiassédio. <ref name="Verge Challenor" /> Challenor também foi removida de sua função como administradora do Reddit. <ref>{{Citar web|ultimo=Eccleston|primeiro=Ben|data=March 25, 2021|titulo=Coventry activist Aimee Challenor removed from Reddit role following backlash|url=https://www.coventrytelegraph.net/news/coventry-news/coventry-activist-aimee-challenor-removed-20255359|website=CoventryLive|lingua=en|acessodata=April 29, 2021}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFEccleston2021">Eccleston, Ben (March 25, 2021). </cite></ref> No final de agosto, mais de 70 subreddits se tornaram privados para protestar contra a [[Desinformação na pandemia de COVID-19|desinformação do COVID-19]] no Reddit, bem como a recusa do Reddit em excluir subreddits, minando a gravidade da pandemia. <ref>{{Citar web|ultimo=Porterfield|primeiro=Carlie|titulo=Dozens Of Subreddits Go Private To Protest Reddit's Covid Disinformation Policy|url=https://www.forbes.com/sites/carlieporterfield/2021/08/30/dozens-of-subreddits-go-private-to-protest-reddits-covid-disinformation-policy/|website=Forbes|lingua=en|acessodata=August 31, 2021}}</ref> <ref>{{Citar web|data=September 1, 2021|titulo=Reddit communities 'go dark' in protest over Covid misinformation|url=http://www.theguardian.com/technology/2021/sep/01/reddit-communities-go-dark-in-protest-over-covid-misinformation|website=The Guardian|lingua=en|acessodata=September 1, 2021}}</ref> Uma carta de 2021 do [[Senado dos Estados Unidos]] para o CEO do Reddit, [[Steve Huffman|Steve Huffman,]] expressou preocupação com a disseminação de [[Desinformação na pandemia de COVID-19|desinformação sobre o COVID-19]] na plataforma. <ref name="senate">{{Citar web|data=October 6, 2021|titulo=Luján, Klobuchar, Heinrich Urge Reddit to Combat Health Misinformation|url=https://www.lujan.senate.gov/newsroom/press-releases/lujan-klobuchar-heinrich-urge-reddit-to-combat-health-misinformation/|acessodata=March 18, 2023|website=Senator Ben Ray Luján|publicado=[[United States Senate]]}}<cite class="citation web cs1" data-ve-ignore="true">[https://www.lujan.senate.gov/newsroom/press-releases/lujan-klobuchar-heinrich-urge-reddit-to-combat-health-misinformation/ "Luján, Klobuchar, Heinrich Urge Reddit to Combat Health Misinformation"]. </cite></ref> ==== 2022 ==== Em julho de 2022, o Reddit proibiu o uso da palavra "groomer" como calúnia contra pessoas LGBTQ+, além de categorizar as alegações de que transgêneros são doentes mentais como discurso de ódio. <ref>{{Citar web|ultimo=Chudy|primeiro=Emily|data=July 15, 2022|titulo=Anti-LGBTQ+ 'groomer' slur banned on Reddit in bid to tackle hate speech: 'Your move Twitter'|url=https://www.pinknews.co.uk/2022/07/15/groomer-reddit-lgbtq-ban/|urlmorta=dead|arquivourl=https://web.archive.org/web/20220715170758/https://www.pinknews.co.uk/2022/07/15/groomer-reddit-lgbtq-ban/|arquivodata=July 15, 2022|website=PinkNews|acessodata=July 18, 2022}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFChudy2022">Chudy, Emily (July 15, 2022). </cite></ref> Um estudo de 2022 com 300 comentários e postagens discutindo [[Infecção do trato urinário|infecções do trato urinário]] descobriu que menos de 1% citou uma fonte para seu conteúdo e vários continham informações médicas prejudiciais que podem dissuadir os leitores de procurar atendimento médico ou levar à [[automedicação]] perigosa, como propor [[jejum]] como uma cura para infecções do trato urinário. <ref>{{Citar web|url=https://www.urologytimes.com/view/reddit-study-shows-abundance-of-misinformation-on-recurrent-utis|titulo=Reddit study shows abundance of misinformation on recurrent UTIs|website=Urology Times|ultimo=Hart|primeiro=Janelle|data=February 8, 2022|acessodata=March 18, 2023}}<cite class="citation web cs1" data-ve-ignore="true" id="CITEREFHart2022">Hart, Janelle (February 8, 2022). </cite></ref> == Visão geral == O nome ''Reddit'' é um [[jogo de palavras]] com a frase "read it" (''leia isso'', em português). O site oferece um conjunto de entradas criadas por usuários registrados e é semelhante a um [[fórum de discussão|fórum]] no estilo ''[[bulletin board system|BBS]]''. O conteúdo é dividido em várias categorias ou áreas de interesse, que podem ser criadas pelos usuários, chamadas de "''subreddits''", que são como sub-comunidades voltadas a temas específicos, tais como a programação, ciência, política etc. Há dezenas de milhares de ''subreddits'', e novos ''subreddits'' podem ser criados pelos usuários do Reddit. Todos os conteúdos publicados devem ser direcionados a um ''subreddit'' que aceite esse tipo de conteúdo.<ref>{{Citar web |ultimo=Gogoni |primeiro=Rodrigo |url=https://tecnoblog.net/419685/o-que-e-o-reddit/ |titulo=O que é o Reddit? |data=2021-03-10 |acessodata=2021-09-06 |website=Tecnoblog |lingua=pt-br}}</ref> O registro de conta é gratuito. Nem mesmo é obrigatório o fornecimento de uma conta de e-mail. Os usuários conectados, chamados de ''redditors'',<ref>{{citar web |url=https://en.oxforddictionaries.com/definition/redditor |titulo=Redditor - definition of Redditor in English |obra=Oxford Living Dictionaries |publicado=Oxford Dictionaries |lingua=en |acessodata=31 de Agosto de 2017}}</ref> podem publicar atalhos e comentários; e podem também votar contra ou a favor de determinada publicação. O número de votos determina a posição das publicações nas páginas do site, aumentando ou diminuindo sua visibilidade. Cada ''subreddit'' possui uma página inicial, chamada de ''frontpage'', que mostra tanto as publicações mais recentes, quanto as que tiveram bastantes votos pelos usuários. Cada publicação pode receber comentários, e cada comentário tem sua própria cadeia de comentários. Tanto as publicações quanto os comentários podem ser votados pelo usuários do Reddit, chamados de ''upvote'' (voto para cima, positivo) e ''downvote'' (voto para baixo, negativo) Os administradores do Reddit normalmente não moderam as comunidades diretamente; Ao invés disso, cada ''subreddit'' possui moderadores que aplicam as regras daquele subreddit, além das regras básicas estabelecidas pelos termos de serviço do Reddit. ==Tecnologia== {{desatualizado}} Foi originalmente escrito em [[Lisp]], sendo completamente reescrito para [[Python]] em 2005.<ref>{{Citar web|url=http://blog.reddit.com/2005/12/on-lisp.html|título=Post no blog pelo moderador do Reddit "Spez," detalhando as razões da mudança de lisp para python|língua=en}}</ref> As razões para a mudança foram maior desempenho, maior disponibilidade de [[Biblioteca (computação)|bibliotecas]] e maior flexibilidade de desenvolvimento. O Web Framework em Python, que o antigo empregado do Reddit, [[Aaron Swartz]], desenvolveu para o site, web.py, é agora um projeto open-source.<ref>{{Citar web|url=http://webpy.org/|título=Página oficial do web.py|língua=en}}</ref> Atualmente roda sob o Web Framework [[:en:Pylons (web framework)|Pylons]].<ref>{{Citar web|url=http://wiki.pylonshq.com/display/pylonscommunity/Sites+Using+Pylons|título=Lista de páginas rodando em Pylons|língua=en|acessodata=2008-11-08|arquivourl=https://web.archive.org/web/20080913152149/http://wiki.pylonshq.com/display/pylonscommunity/Sites+Using+Pylons|arquivodata=2008-09-13|urlmorta=yes}}</ref> Os servidores rodam com [[sistema operacional]] [[Debian GNU/Linux]] e com os [[Servidor web|servidores HTTP]] [[Lighttpd]] e [[proxy]] HAProxy.<ref>{{Citar web|url=http://toolbar.netcraft.com/site_report?url=http://www.reddit.com|título=Relatórios Netcraft do reddit.com|língua=en}}</ref> === Código Aberto === O código do Reddit era [[open source]]<ref>{{Citar web|url=http://christiano.blog.br/2008/06/18/reddit-libera-seu-codigo-fonte/l|título=Reddit libera seu código fonte}}{{Ligação inativa|{{subst:DATA}}}}</ref> com exceção das tecnologias anti-spam (trapaças). Todo o código e bibliotecas escritos para o Reddit eram disponíveis livremente na página "Fixxit".<ref>{{Citar web|url=http://code.reddit.com/|título=Página do projeto open-souce do reddit|língua=en}}</ref> Mas o repositório de código está desatualizado desde 2017.<ref>{{citar web|url=https://www.reddit.com/r/changelog/comments/6xfyfg/an_update_on_the_state_of_the_redditreddit_and/|titulo=An update on the state of the reddit/reddit and reddit/reddit-mobile repositories|data=1 de Setembro de 2017|acessodata=13 de Abril de 2018|publicado=Reddit|ultimo=|primeiro=|lingua=en}}</ref><ref>{{citar web|url=https://betanews.com/2017/09/04/reddit-open-source-changes/|titulo=Reddit is killing off access to its main source code, because open source is bad for competition|data=1 de Setembro de 2017|acessodata=13 de Abril de 2018|publicado=Beta News|ultimo=Wycislik-Wilson|primeiro=Mark|lingua=en}}</ref> == História == O Reddit foi fundado por [[Steve Huffman]] e [[Alexis Ohanian]] em 2005, na época com 22 anos, graduados na [[Universidade da Virgínia]].<ref>{{citar jornal|último = Adams |primeiro = Richard |título= reddit.com |publicado= [[The Guardian]] |data= 2005-12-08 | url = http://technology.guardian.co.uk/innovations/story/0,,1660870,00.html |acessodata= 2006-12-23 |língua= Inglês}}</ref> Reddit ganhou esse nome de Ohanian, enquanto navegando pela biblioteca da Universidade da Virgínia.<ref>{{Citar web|url=http://www.redditall.com/2008/02/reddit-nostalgia-whence-came-name.html|título="De onde vem o nome?" blog de Alexis Ohanian|lingua=en}}</ref> É uma forma reduzida de "read it" (leia), que é geralmente pronunciado no passado como "I have read it" (eu li). Receberam o financiamento inicial da firma [[Y Combinator (companhia)]]. A equipe expandiu-se para incluir Christopher Slowe e [[Aaron Swartz]] em 2005. Aaron Swartz juntou-se mais tarde em Janeiro de 2006, como parte da fusão da companhia com Swartz's Infogami.<ref>{{Citar web| url= http://infogami.com/blog/introduction| título= Apresentando Infogami| língua= en| último= Swartz| primeiro= Aaron| autorlink= Aaron Swartz| publicado= Infogami| data= 27 de fevereiro de 2006| acessodata= 2007-01-06| arquivourl= https://web.archive.org/web/20071224194042/http://infogami.com/blog/introduction| arquivodata= 2007-12-24| urlmorta= yes}}</ref> A fusão das companhias ficou conhecido como não-um-bug ("Not a Bug"). [[Condé Nast Publications]], proprietário da ''[[Wired Magazine|Wired]]'', adquiriu a companhia Not a Bug em 31 de Outubro de 2006.<ref>{{Citar web| url = http://www.techcrunch.com/2006/10/31/breaking-news-conde-nastwired-acquires-reddit | título = Condé Nast/Wired adquire Reddit | publicado = [[TechCrunch]]|data=31 de outubro de 2006|acessodata=06-01-2007 | último=Arrington | primeiro=Michael | autorlink=Michael Arrington|lingua=en}}</ref> No fim de 2008, a equipe cresceu ao incluir Erik Martin, Jeremy Edberg,<ref>{{Citar web|autor=alexis [kn0thing] |url=http://blog.reddit.com/2007/03/welcome-jedberg.html |título=welcome, jedberg |publicado=blog.reddit |data=20 de março de 2007 |acessodata=4 de dezembro de 2011}}</ref> David King,<ref>{{Citar web|autor=alexis [kn0thing] |url=http://blog.reddit.com/2008/04/welcome-david.html |título=welcome, david |publicado=blog.reddit |data=17 de abril de 2008 |acessodata=4 de dezembro de 2011}}</ref> e Mike Schiraldi.<ref>{{Citar web|autor=alexis [kn0thing] |url=http://blog.reddit.com/2008/12/welcome-mike.html |título=Welcome, Mike Schiraldi (a.k.a. raldi) |publicado=blog.reddit |data=9 de dezembro de 2008 |acessodata=4 de dezembro de 2011}}</ref> Em 2009, Huffman e Ohanian saíram para formar a Hipmunk, recrutando Slowe<ref>{{Citar web|último=Kincaid |primeiro=Jason |url=http://techcrunch.com/2010/11/01/reddit-chief-takes-flight-to-hipmunk-explains-why-hes-leaving-now/ |título=Reddit Chief Takes Flight To Hipmunk, Explains Why He's Leaving Now |publicado=Techcrunch.com |data=1 de novembro de 2010 |acessodata=4 de dezembro de 2011}}</ref> e King<ref>{{Citar web |url=http://blog.hipmunk.com/post/6493894847/welcome-ketralnis |título=Welcome, Ketralnis! |publicado=Blog.hipmunk.com |data=12 de março de 2011 |acessodata=4 de dezembro de 2011 |arquivourl=https://web.archive.org/web/20120213034101/http://blog.hipmunk.com/post/6493894847/welcome-ketralnis |arquivodata=2012-02-13 |urlmorta=yes }}</ref> pouco tempo depois.<ref>{{Citar web|titulo=The two co-founder quotes that explain Reddit’s struggle to grow up|url=https://www.washingtonpost.com/news/the-switch/wp/2015/07/14/the-two-co-founder-quotes-that-explain-reddits-struggle-to-grow-up/|obra=Washington Post|acessodata=2019-12-30|lingua=en|primeiro=rea Peterson|ultimo=close|primeiro2=rea PetersonReporter who covered technology|ultimo2=policyBioBioFollowFollowReporter}}</ref> Em julho de 2010, após um crescimento explosivo do tráfego, foi introduzido o Reddit Gold, oferecendo novas funcionalidades por um preço.<ref>{{Citar web|autor=Posted by mike [raldi] |url=http://blog.reddit.com/2010/07/three-new-features-for-reddit-gold.html |título=what's new on reddit: Three new features for reddit gold: Choose-your-own ads, Userpage sorting, and Friends with Benefits |publicado=blog.reddit |data=2010-07-19 |acessodata=2010-07-29|citação=It's time for reddit gold to make the shift from a one-week experiment to a true service with a clear pricing structure and at least a few whistles and bells.}}</ref> O rendimento e a audiência deram a aprovação para comprar mais servidores e empregar mais pessoas. Em 11 de janeiro de 2012 o Reddit anunciou que estaria participando de um [[Blecaute|apagão]] de 12 horas em protesto contra o [[Stop Online Piracy Act]].<ref>{{Citar web |url=http://gamepolitics.com/2012/01/11/reddit-plans-sopa-039blackout039-protest-jan-18 |titulo="Reddit Plans SOPA 'Blackout' Protest Jan. 18" |acessodata=2012-06-26 |arquivourl=https://web.archive.org/web/20141010070720/http://gamepolitics.com/2012/01/11/reddit-plans-sopa-039blackout039-protest-jan-18 |arquivodata=2014-10-10 |urlmorta=yes }}</ref> O apagão ocorreu em 18 de janeiro e coincidiu com os apagões da [[Wikipedia|Wikipédia]] e vários outros [[websites]]. Yishan Wong juntou-se ao Reddit em 2012, mas deixou a posição de CEO em 2014, citando desacordos sobre a mudança da sede da empresa de [[São Francisco]] para [[Daly City]].<ref>{{Citar web|titulo=Reddit CEO Explains Why He and Company Battled Over Office Space|url=https://abcnews.go.com/Business/reddit-ceo-explains-company-battled-office-space/story?id=26910999|obra=ABC News|acessodata=2019-12-30|lingua=en|primeiro=A. B. C.|ultimo=News}}</ref> Ellen Pao tornou-se [[Diretor executivo|diretora executiva]] (''CEO'') interina do [[Reddit]] em 2014, mas saiu em 2015 após repercussão negativa das decisões de Ellen Pao, incluindo a demissão de uma funcionária querida pelos usuários. Muitos moderadores de comunidades no Reddit fecharam suas comunidades em protesto, mas outros usuários fizeram comentários odiosos e sexistas à Ellen.<ref name=exame001>{{citar web |url=https://exame.abril.com.br/negocios/apos-demissao-usuarios-derrubam-presidente-do-site-reddit/ |titulo=Após demissão, usuários derrubam presidente do site Reddit |primeiro=Diogo |ultimo=Max |publicado=EXAME |data=11 de Julho de 2015 |acessodata=23 de Abril de 2018}}</ref><ref>{{citar web |url=https://www.theguardian.com/technology/2015/jul/10/ellen-pao-reddit-interim-ceo-resigns |titulo=Reddit chief Ellen Pao resigns after receiving 'sickening' abuse from users |data=11 de Julho de 2015 |publicado=The Guardian |primeiro=Martin |ultimo=Pengelly |primeiro2=Kevin |ultimo2=Rawlinson |acessodata=23 de Abril de 2015 |lingua=en}}</ref><ref>{{citar web |url=https://www.reddit.com/r/self/comments/3cudi0/resignation_thank_you/ |titulo=Resignation, thank you |autor=Ellen Pao |data=10 de Julho de 2015 |publicado=Reddit.com |acessodata=23 de Abril de 2018 |lingua=en}}</ref> Após 5 anos fora da empresa que fundaram, Ohanian e Huffman retornaram a postos de liderança dentro do Reddit.<ref>{{Citar periódico|ultimo=Isaac|primeiro=Mike|ultimo2=Streitfeld|primeiro2=David|data=2015-07-10|titulo=It’s Silicon Valley 2, Ellen Pao 0: Fighter of Sexism Is Out at Reddit|url=https://www.nytimes.com/2015/07/11/technology/ellen-pao-reddit-chief-executive-resignation.html|jornal=The New York Times|lingua=en-US|issn=0362-4331}}</ref> Durante esse período, os apps para [[iOS]] e [[Android]] foram lançados, e um novo design foi criado para o site.<ref>{{Citar periódico|titulo=The Inside Story of Reddit's Redesign|url=https://www.wired.com/story/reddit-redesign/|jornal=Wired|lingua=en|issn=1059-1028}}</ref> Em 1 de agosto de 2018, Reddit anunciou um roubo de dados por um [[hacker]] que conseguiu acesso a eles, incluindo um banco de dados do ano de 2007 contendo e-mails e senhas em "hash" dos seus usuários.<ref>{{Citar periódico|titulo='Reddit', site de notícias e debates, anuncia roubo de dados|url=https://g1.globo.com/economia/tecnologia/blog/altieres-rohr/post/2018/08/01/reddit-site-de-noticias-e-debates-anuncia-roubo-de-dados.ghtml|jornal=G1|lingua=pt-BR}}</ref> == Comunidade e cultura == O website é conhecido por sua natureza aberta e pela diversificada comunidade que geram seu conteúdo. Sua demografia permite amplas áreas temáticas, ou subreddits principais, que recebem muita atenção, bem como a capacidade para subreddits menores para servir a mais propósitos de nicho. As possibilidades que os subreddits fornecem criam novas oportunidades para aumentar a visibilidade e promover o debate em muitas áreas não tem igual. Ao ganhar popularidade em termos de usuários únicos por dia, tem sido uma plataforma para muitos elevarem a publicidade para uma variedade de causas. E com essa elevada capacidade de atrair a atenção e com um grande público, os usuários podem usar uma das maiores comunidades na [[Internet]] para propósitos novos, revolucionários e influentes.<ref>{{Citar web |url=http://www.blueglass.com/blog/could-reddit-be-the-worlds-most-influential-website/ |título=Could Reddit be the world's most influential website? |publicado=BlueGlass |data= |acessodata=26 de abril de 2012 |arquivourl=https://web.archive.org/web/20120504154827/http://www.blueglass.com/blog/could-reddit-be-the-worlds-most-influential-website/ |arquivodata=2012-05-04 |urlmorta=yes }}</ref> Sua popularidade permitiu aos usuários tirar vantagens sem precedentes de uma comunidade tão grande. Seu sistema de avaliação social e triagem inovador conduz um método que é útil para o cumprimento de determinadas metas de audiência ou simplesmente encontrar respostas às perguntas interessantes. Sentimentos de usuário sobre a função do site e estrutura incluem sentimentos sobre a amplitude e a profundidade das discussões e como o site torna mais fácil descobrir novos e interessantes itens. Quase todas as opiniões de usuários na Alexa.com, que o classifica com o tráfego mensal de 125º lugar nos Estados Unidos, mencionam o "bom conteúdo" como uma qualidade agradável. No entanto, outros levantam aspectos negativos do potencial das comunidades possuírem uma "mente da colmeia" de algum tipo,<ref>{{Citar web|url=http://www.alexa.com/siteinfo/reddit.com |título=Reddit.com Site Info |publicado=Alexa.com |data= |acessodata=26 de abril de 2012}}</ref> incorporando alguns aspectos negativos das teorias de interação de grupo como a psicologia de multidões e [[consciência coletiva]]. Na história recente tem sido conhecido como o instigador de vários projetos de grande escala, alguns a curto e outros a longo prazo, a fim de beneficiar os outros. Uma seleção de grandes eventos são descritos abaixo: * No início de dezembro de 2010, membros da subreddit cristã decidiram realizar uma caridade<ref>{{Citar web|url=http://www.reddit.com/r/Christianity/comments/eito5/if_every_member_of_rchristianity_donates_just_445/ |título=If every member of r/Christianity donates just $4.45, we can build a health clinic in an impoverished area that desperately needs one. Let's do it! |data=9 de dezembro de 2010}}</ref> e mais tarde membros da subreddit ateísta decidiram iniciar uma competição amigável,<ref>{{Citar web|url=http://www.reddit.com/r/atheism/comments/eix3p/ok_battle_stations_everybody_tonight_we_show/c18fwls/ |título=OK, Battle stations everybody. Tonight we show r/Christianity what we are made of... |data=9 de dezembro de 2010}}</ref> promoção cruzada<ref>{{Citar web|url=http://www.reddit.com/r/reddit.com/comments/ejnbg/dogs_and_cats_living_together_mass_hysteria/ |título=Dogs and cats living together! Mass hysteria! r/atheism and r/Christianity have a friendly competition up for a holiday charity drive that is spilling over into other subreddi |publicado=Reddit.com |data=2010-12-10 |acessodata=4 de dezembro de 2011}}</ref> de levantamento de fundos para as organizações [[Médicos sem Fronteiras]] e [[World Vision]] (para água limpa). Mais tarde, o subreddit [[Islão|Islã]] aderiu à campanha, arrecadando dinheiro para a Islamic Relief. Em menos de uma semana, as três comunidades (assim como a comunidade Reddit em geral) arrecadaram mais de US$ 200.000. A maior parte deste foi levantada pelo subreddit ateísta,<ref>{{Citar web|url=http://www.firstgiving.com/fundraiser/r-atheism/ratheism |título=reddit.com/r/Atheism's Fundraising Page |data= |acessodata=7 de maio de 2012}}</ref> embora o subreddit cristão tivesse uma quantidade maior de doação por assinante. * Seus usuários doaram US$ 185,356.70 para o Direct Relief International para o Haiti depois do terremoto que devastou a ilha em Janeiro de 2010.<ref>{{Citar web|url=http://dri.convio.net/site/TR/Events/Tributes?pg=fund&fr_id=1030&pxfid=1511&JServSessionIdr004=r7t58phav1.app245b |título=Direct Relief International: Support Us – Tributes: |publicado=Dri.convio.net |data= |acessodata=4 de dezembro de 2011}}</ref> * Usuários doaram acima de US$ 70,000 para o Faraja Orphanage nas primeiras 24 horas para ajudar a segurança dos orfãos e a proteger o orfanato depois de intrusos roubarem e atacarem um dos voluntários, Omari, que sobreviveu a um ataque de facão na cabeça.<ref>{{Citar web|url=http://alexandrapusateri.wordpress.com/2012/01/27/how-reddit-saved-an-orphanage/ |título=How Reddit Saved an Orphanage |publicado=Reddit.com |data=27 de janeiro de 2012 |acessodata=27 de janeiro de 2012}}</ref> === Subreddits controversos === Diversos subreddits são percebidos como ofensivos, incluindo fóruns dedicados ao [[jailbait]] e figuras de corpos mortos. Diversos desses subreddits foram foco de uma edição do ''Anderson Cooper 360'' em Setembro de 2011.<ref>Anderson Cooper 360, 9/29/2011.</ref> No entanto, "o conteúdo sugestivo ou sexual com menores" não foi explicitamente proibido até fevereiro de 2012, depois de membros do fórum Something Awful planejarem enviar correspondência para "Associações de Pais e Mestres, políticos, igrejas, meios de comunicação e do [[Federal Bureau of Investigation|FBI]]” sobre tais subreddits.<ref>{{Citar web |url=http://idealab.talkingpointsmemo.com/2012/02/reddit-bans-sexual-content-featuring-minors.php |titulo=Cópia arquivada |acessodata=2012-06-26 |arquivourl=https://web.archive.org/web/20120712212049/http://idealab.talkingpointsmemo.com/2012/02/reddit-bans-sexual-content-featuring-minors.php |arquivodata=2012-07-12 |urlmorta=yes }}</ref> Mais recentemente, uma série de subreddits controversos vem sendo deletados por quebrar as regras gerais do reddit numa tentativa de diminuir a quantidade de comunidades que glorificam e incitam a violência.<ref>{{Citar periódico|ultimo=Hauser|primeiro=Christine|data=2017-11-09|titulo=Reddit Bans ‘Incel’ Group for Inciting Violence Against Women|jornal=The New York Times|issn=0362-4331|url=https://www.nytimes.com/2017/11/09/technology/incels-reddit-banned.html|idioma=en-US}}</ref> == Premiações == Em maio de 2010 foi nomeado em Lead411's na lista “Empresas mais quentes de [[São Francisco]] em 2012”.<ref>{{Citar web |url=http://www.lead411.com/san-francisco-companies.html |título=Lead411 launches "Hottest Companies in San Francisco" awards |publicado=Lead411.com |data=2010-05-18 |acessodata=4 de dezembro de 2011 |arquivourl=https://web.archive.org/web/20111017093224/http://www.lead411.com/san-francisco-companies.html |arquivodata=2011-10-17 |urlmorta=yes}}</ref> == Ver também == * [[Digg]] * [[Delicious]] * [[4chan]] * [[Slashdot]] * [[Tal Canal (rede social)|Tal Canal]] {{Referências}} == Ligações externas == * {{link|en|2=http://reddit.com|3=Página Oficial}} * {{link|en|2=http://code.reddit.com|3=Página do projeto Reddit Open-source}} * {{link|es|2=http://www.culter.com.mx|3=Culter, site mexicano, baseado no código aberto do reddit}} * {{link|ro|2=http://www.proddit.com|3=Proddit, site romeno, baseado no código aberto do Reddit}} {{Portal3|Tecnologias de informação}} [[Categoria:Redes sociais]] [[Categoria:Blogues]] [[Categoria:Sites de notícias]] [[Categoria:Social bookmarking]] [[Categoria:Software livre programado em Python]] [[Categoria:Inteligência coletiva]] 7sceoj7lldwjvrkc8f3jvvyo8691obb Great Molasses Flood 0 156058 664321 663472 2025-06-26T05:39:00Z CommonsDelinker 629 Removing "Greatmolassesflood.png", it has been deleted from Commons by [[c:User:ChemSim|ChemSim]] because: per [[:c:Commons:Deletion requests/Files uploaded by QTE-Test21-WMF|]]. 664321 wikitext text/x-wiki {{Infobox event | title = Great Molasses Flood | image = BostonMolassesDisaster.jpg | caption = {{midsize|The wreckage of the collapsed tank is visible in background, center, next to the light-colored warehouse}} | date = {{start date and age|1919|01|15}} | time = Approximately 12:30 pm | place = [[Boston, Massachusetts]], U.S. | coordinates = {{coord|42|22|06.6|N|71|03|21.2|W|type:event_scale:20000_region:US-MA|display=inline,title}} | cause = [[Cylinder stress]] failure | reported deaths = 21 | reported injuries = 150 injured }} This is a test article to validate dark mode, light mode, and automatic mode. The '''Great Molasses Flood''', also known as the '''Boston Molasses Disaster''',<ref>{{Cite web |url=https://www.brighthub.com/education/homework-tips/articles/86176.aspx |title=The Boston Molasses Disaster: Causes of the Molasses Tank Explosion |last=Hinrichsen |first=Erik |date=8 September 2010 |website=Bright Hub |language=en |access-date=March 5, 2019}}</ref><ref>{{Cite web |url=http://beaconhilltimes.com/2018/04/06/molasses-disaster-featured-at-evening-at-74/ |title='Molasses Disaster' Featured at Evening at 74 |website=Beacon Hill Times |access-date=March 5, 2019}}</ref>{{efn|The flood has more recently been known as the "Boston Molassacre".<ref>{{Cite web |url=https://americacomesalive.com/the-boston-molassacre/ |title=The 'Boston Molassacre' |last=Kelly |first=Kate |website=America Comes Alive |date=January 8, 2012 |language=en |access-date=October 3, 2021}}</ref>}} was a disaster that occurred on Wednesday, January 15, 1919, in the [[North End, Boston|North End]] neighborhood of [[Boston]], [[Massachusetts]]. A large storage tank filled with {{convert|2.3|e6usgal|m3|abbr=off|sp=us}}<ref>{{Cite news |url=https://www.scmp.com/news/world/united-states-canada/article/2182032/great-molasses-flood-us-marks-100-years-deadly-wave |title=Great Molasses Flood: US marks 100 years since deadly wave of treacle trashed part of Boston |date=January 14, 2019 |work=[[South China Morning Post]] |access-date=March 18, 2019 |agency=[[Associated Press]]}}</ref> of [[molasses]], weighing approximately{{efn|At {{cvt|1.4|kg/L}}, {{cvt|8,700|m3}} of molasses weighs {{convert|12180|t}}.}} {{convert|12000|t|ST|order=flip|abbr=off|sp=us}}, burst, and the resultant wave of molasses rushed through the streets at an estimated {{convert|35|mph|kph|abbr=off|sp=us}}, killing 21 people and injuring 150.<ref name="Sohn">{{Cite web |url=https://www.history.com/news/great-molasses-flood-science |title=Why the Great Molasses Flood Was So Deadly |last=Sohn |first=Emily |date=January 15, 2019 |department=[[The History Channel]] |publisher=[[A&E Television Networks]] |language=en |access-date=January 16, 2019}}</ref> The event entered local folklore and residents reported for decades afterwards that the area still smelled of molasses on hot summer days.<ref name="Sohn" /><ref name=Smithsonian /> == Flood == [[File:Boston post-January 16, 1919,.jpg|thumb|upright|alt=The front page of an old newspaper. The headline reads, "HUGE MOLASSES TANK EXPLODES IN NORTH END; 11 DEAD, 50 HURT".|Coverage from ''The Boston Post'']] Molasses can be fermented to produce [[ethanol]], the active ingredient in alcoholic beverages and a key component in munitions.<ref name="DarkTide" />{{rp|11}} The disaster occurred at the [[Purity Distilling Company]] facility at 529{{nbs}}Commercial Street near Keany Square. A considerable amount of molasses had been stored there by the company, which used the harborside Commercial Street tank to offload molasses from ships and store it for later transfer by pipeline to the Purity ethanol plant situated between Willow Street and Evereteze Way in [[Cambridge, Massachusetts]]. The molasses tank stood {{convert|50|ft|m|abbr=off|sp=us}} tall and {{cvt|90|ft|m}} in diameter, and contained as much as {{convert|2.3|e6USgal|m3|abbr=unit}}. [[File:Boston molasses area map.png|thumb|alt=A scanned color map. The area around North End Beach and Charlestown Bridge is circled in red.|Modern downtown Boston with molasses flood area circled]] [[File:No such file|thumb]] On January 15, 1919, temperatures in Boston had risen above {{convert|40|F|C|abbr=off|sp=us}}, climbing rapidly from the frigid temperatures of the preceding days,<ref name=DarkTide />{{rp|91, 95}} and the previous day, a ship had delivered a fresh load of molasses, which had been warmed to reduce its viscosity for transfer.<ref>{{Cite web |url=https://www.wbur.org/radioboston/2019/01/15/1919-molasses-flood |title=100 Years Later: Lessons From Boston's Molasses Flood Of 1919 |website=www.wbur.org|date=January 15, 2019 }}</ref> Possibly due to the thermal expansion of the older, colder molasses already inside the tank, the tank burst open and collapsed at approximately 12:30{{nbs}}p.m. Witnesses reported that they felt the ground shake and heard a roar as it collapsed, a long rumble similar to the passing of [[Atlantic Avenue Elevated|an elevated train]]; others reported a tremendous crashing, a deep growling, "a thunderclap-like {{em|bang!}}", and a sound like a machine gun as the [[rivet]]s shot out of the tank.<ref name=DarkTide />{{rp|92–95}} The density of molasses is about {{convert|1.4|t/m3|lb/USgal|abbr=off|sp=us}}, 40 percent more dense than water, resulting in the molasses having a great deal of [[potential energy]].<ref name="nbc 100" /> The collapse translated this energy into a wave of molasses {{cvt|25|ft|m|0}} high at its peak,<ref name="SciAmJabr" /> moving at {{cvt|35|mph|kph}}.<ref name="Sohn" /><ref name="Smithsonian" /> The wave was of sufficient force to drive steel panels of the burst tank against the girders of the adjacent Boston Elevated Railway's [[Atlantic Avenue Elevated|Atlantic Avenue]] structure<ref>{{Cite web |url=https://edp.org/molpark.htm |title=Without Warning, Molasses in January Surged Over Boston |last=Park |first=Edwards |date=December 19, 2018 |website=edp.org |access-date=March 24, 2019 |quote=[I]magine an estimated 14,000 tons of the thick, sticky fluid running wild. It left the ruptured tank in a choking brown wave, 15 feet high, wiping out everything that stood in its way. One steel section of the tank was hurled across Commercial Street, neatly knocking out one of the uprights supporting the El.}}</ref> and tip a streetcar momentarily off the El's tracks. Stephen Puleo describes how nearby buildings were swept off their foundations and crushed. Several blocks were flooded to a depth of {{cvt|2|to|3|ft|cm|sigfig=1|abbr=off|sp=us}}. Puleo quotes a ''Boston Post'' report: {{quote|quote=Molasses, waist deep, covered the street and swirled and bubbled about the wreckage{{nbsp}}[...] Here and there struggled a form—whether it was animal or human being was impossible to tell. Only an upheaval, a thrashing about in the sticky mass, showed where any life was{{nbsp}}[...] Horses died like so many flies on sticky fly-paper. The more they struggled, the deeper in the mess they were ensnared. Human beings—men and women—suffered likewise.<ref name=DarkTide />{{rp|98}}}} The ''[[The Boston Globe|Boston Globe]]'' reported that people "were picked up by a rush of air and hurled many feet". Others had debris hurled at them from the rush of sweet-smelling air. A truck was picked up and hurled into [[Boston Harbor]]. After the initial wave, the molasses became viscous, exacerbated by the cold temperatures, trapping those caught in the wave and making it even more difficult to rescue them.<ref name="nbc 100" /> About 150 people were injured, and 21 people and several horses were killed. Some were crushed and drowned by the molasses or by the debris that it carried within.<ref name="Buell">{{Cite web |url=https://www.bostonmagazine.com/news/2019/01/12/great-boston-molasses-flood-things-you-didnt-know/ |title=Anarchists, Horses, Heroes: 12 Things You Didn't Know about the Great Boston Molasses Flood |last=Buell |first=Spencer |date=January 12, 2019 |website=Boston Magazine |language=en-US |access-date=January 14, 2019}}</ref> The wounded included people, horses, and dogs; coughing fits became one of the most common ailments after the initial blast. Edwards Park wrote of one child's experience in a 1983 article for ''Smithsonian'': {{quote|quote=Anthony di Stasio, walking homeward with his sisters from the Michelangelo School, was picked up by the wave and carried, tumbling on its crest, almost as though he were surfing. Then he grounded and the molasses rolled him like a pebble as the wave diminished. He heard his mother call his name and couldn't answer, his throat was so clogged with the smothering goo. He passed out, then opened his eyes to find three of his four sisters staring at him.<ref name=Smithsonian />}} == Aftermath == [[File:Boston 1919 molasses disaster - el train structure.jpg|thumb|Damage to the Boston Elevated Railway caused by the burst tank and resulting flood]] First to the scene were 116 cadets under the direction of Lieutenant Commander H. J. Copeland from {{USS|Nantucket|IX-18|6}}, a training ship of the Massachusetts Nautical School (now the [[Massachusetts Maritime Academy]]) that was docked nearby at the playground pier.<ref name="NYTimes1919" /> The cadets ran several blocks toward the accident and entered into the knee-deep flood of molasses to pull out the survivors, while others worked to keep curious onlookers from getting in the way of the rescuers. The Boston Police, Red Cross, Army, and Navy personnel soon arrived. Some nurses from the Red Cross dove into the molasses, while others tended to the injured, keeping them warm and feeding the exhausted workers. Many of these people worked through the night, and the injured were so numerous that doctors and surgeons set up a makeshift hospital in a nearby building. Rescuers found it difficult to make their way through the syrup to help the victims, and four days elapsed before they stopped searching; many of the dead were so glazed over in molasses that they were hard to recognize.<ref name="Smithsonian" /> Other victims were swept into Boston Harbor and were found three to four months after the disaster.<ref name="Buell" /> In the wake of the accident, 119 residents brought a [[class-action lawsuit]] against the [[United States Industrial Alcohol Company]] (USIA),<ref>{{Cite web |last=Andrews |first=Evan |date=2023-05-16 |title=The Great Molasses Flood of 1919 |url=https://www.history.com/news/the-great-molasses-flood-of-1919 |access-date=2023-12-01 |website=HISTORY |language=en}}</ref> which had bought Purity Distilling in 1917. It was one of the first class-action suits in Massachusetts and is considered a milestone in paving the way for modern corporate regulation.<ref name="Betancourt">{{Cite news |url=https://www.theguardian.com/us-news/2019/jan/13/the-great-boston-molasses-flood-why-it-matters-modern-regulation |title=The Great Boston Molasses Flood: why the strange disaster matters today |last=Betancourt |first=Sarah |date=January 13, 2019 |work=[[The Guardian]] |access-date=January 14, 2019 |language=en-GB |issn=0261-3077}}</ref> The company claimed that the tank had been blown up by anarchists<ref name="DarkTide" />{{rp|165}} because some of the alcohol produced was to be used in making munitions, but a court-appointed auditor found USIA responsible after three years of hearings, and the company ultimately paid out $628,000 in damages<ref name="Betancourt" /> (${{Format price|{{Inflation|US|628000|1919}}}} in {{Inflation/year|US}}, adjusted for inflation{{Inflation/fn|US}}). Relatives of those killed reportedly received around $7,000 per victim (equivalent to ${{Inflation|US|7000|1919|r=-3|fmt=c}} in {{Inflation/year|US}}).<ref name="Smithsonian" /> === Cleanup === Cleanup crews used salt water from a fireboat to wash away the molasses and sand to absorb it,<ref name="TheHour" /> and the harbor was brown with molasses until summer.<ref name="HistoryChannel" /> The cleanup in the immediate area took weeks,<ref name="YankeeMason" /> with several hundred people contributing to the effort,<ref name="DarkTide" />{{rp|132–134, 139}}<ref name="Betancourt" /> and it took longer to clean the rest of Greater Boston and its suburbs. Rescue workers, cleanup crews, and sight-seers had tracked molasses through the streets and spread it to subway platforms, to the seats inside trains and streetcars, to pay telephone handsets, into homes,<ref name="Smithsonian" /><ref name="DarkTide" />{{rp|139}} and to countless other places. It was reported that "Everything that a Bostonian touched was sticky."<ref name="Smithsonian" /> === Fatalities === [[File:Boston molasses detail map.png|right|thumb|upright=1.3|Detail of molasses flood area:{{pb}}{{numbered list|Purity Distilling molasses tank|Firehouse 31 (heavy damage)|Paving department and police station|Purity offices (flattened)|Copps Hill Terrace|Boston Gas Light building (damaged)|Purity warehouse (mostly intact)|Residential area (site of flattened Clougherty house)}}]] {|class="wikitable sortable" |- !Name!!Age!!Occupation |- |Patrick Breen||44||Laborer (North End Paving Yard) |- |William Brogan||61||Teamster |- |Bridget Clougherty||65||Homemaker |- |Stephen Clougherty||34||Unemployed |- |John Callahan||43||Paver (North End Paving Yard) |- |Maria Di Stasio||10||Child |- |William Duffy||58||Laborer (North End Paving Yard) |- |Peter Francis||64||Blacksmith (North End Paving Yard) |- |Flaminio Gallerani||37||Driver |- |Pasquale Iantosca||10||Child |- |James J. Kenneally||48||Laborer (North End Paving Yard) |- |Eric Laird||17||Teamster |- |George Layhe||38||Firefighter (Engine 31) |- |James Lennon||64||Teamster/Motorman |- |Ralph Martin||21||Driver |- |James McMullen||46||Foreman, Bay State Express |- |Cesar Nicolo||32||Expressman |- |Thomas Noonan||43||Longshoreman |- |Peter Shaughnessy||18||Teamster |- |John M. Seiberlich||69||Blacksmith (North End Paving Yard) |- |Michael Sinnott||78||Messenger |- class="sortbottom" | colspan="3" style="text-align: center;" | <ref name=DarkTide />{{rp|239}}<ref name="NYTimes1919" /><ref>{{Cite news |last=Dwyer |first=Dialynn |date=January 13, 2019 |title='There was no escape from the wave': These are the 21 victims of the Great Boston Molasses Flood |url=https://www.boston.com/news/history/2019/01/13/victims-great-boston-molasses-flood-1919 |work=[[Boston.com]] |access-date=2019-01-14 |language=en-US}}</ref> |} == Causes == [[File:North End molasses tank.jpg|thumb|right|The molasses tank prior to its 1919 explosion—exact date unknown]] Several factors might have contributed to the disaster. The first factor is that the tank may have leaked from the very first day that it was filled in 1915.<ref>{{Cite book |last=Barry |first=Quan |title=Controvertibles |date=2004-09-26 |publisher=University of Pittsburgh Press |isbn=978-0-8229-8015-5 |doi=10.2307/j.ctt5vkg3w}}</ref><ref>Birnbaum, Amy. (2019). The Great Molasses Flood: A bizarre disaster struck one of America's biggest cities 100 years ago. Scholastic News (Explorer Ed.), 81(11), 4.</ref> The tank was also constructed poorly and tested insufficiently, and carbon dioxide production might have raised the internal pressure due to fermentation in the tank. Warmer weather the previous day would have assisted in building this pressure, as the air temperature rose from {{convert|2|to|41|F|C|sigfig=2}} over that period. The failure occurred from a manhole cover near the base of the tank, and a [[Fatigue (material)|fatigue]] crack there possibly grew to the point of criticality. The tank had been filled to capacity only eight times since it was built a few years previously, putting the walls under an intermittent, cyclical load. Several authors say that the Purity Distilling Company was trying to out-race prohibition,<ref name="PuleoQuote79" /><ref name="YankeeStanley" /><ref name="Silverman" /> as the [[Eighteenth Amendment to the Constitution of the United States|18th amendment]] was ratified the next day (January 16, 1919) and took effect one year later.<ref name="Streissguth" /> An inquiry after the disaster revealed that Arthur Jell, USIA's treasurer, neglected basic safety tests while overseeing construction of the tank, such as filling it with water insufficient to check for leaks, and ignored warning signs such as groaning noises each time the tank was filled. He had no architectural or engineering experience.<ref name="Sohn" /><ref name="nbc 100" /> When filled with molasses, the tank leaked so badly that it was painted brown to hide the leakage. Local residents collected leaked molasses for their homes.<ref name="StraightD" /> A 2014 investigation applied modern engineering analysis and found that the steel was half as thick as it should have been for a tank of its size even with the lower standards they had at the time. Another issue was that the steel lacked [[manganese]] and was made more brittle as a result.<ref name="GlobeSchworm" /> The tank's [[rivet]]s were also apparently flawed, and cracks first formed at the rivet holes.<ref name="Sohn" /> In 2016, a team of scientists and students at [[Harvard University]] conducted extensive studies of the disaster, gathering data from many sources, including 1919 newspaper articles, old maps, and weather reports.<ref name="AP-Harv">{{Cite news |url=https://www.boston.com/news/history/2016/11/24/slow-as-molasses-sweet-but-deadly-1919-disaster-explained |title=Slow as molasses? Sweet but deadly 1919 disaster explained |date=November 24, 2016 |work=Boston.com |access-date=December 3, 2016 |agency=Associated Press}}</ref> The student researchers also studied the behavior of cold corn syrup flooding a scale model of the affected neighborhood.<ref name="NYT-Harv">{{Cite news |url=https://www.nytimes.com/2016/11/26/science/boston-molasses-flood-science.html |title=Solving a Mystery Behind the Deadly 'Tsunami of Molasses' of 1919 |last=Mccann |first=Erin |date=November 26, 2016 |work=The New York Times |access-date=December 3, 2016}}</ref> The researchers concluded that the reports of the high speed of the flood were credible.<ref name="NYT-Harv" /> Two days before the disaster, warmer molasses had been added to the tank, reducing the viscosity of the fluid. When the tank collapsed, the fluid cooled quickly as it spread, until it reached Boston's winter evening temperatures and the viscosity increased dramatically.<ref>{{Cite news |url=http://www.alphagalileo.org/ViewItem.aspx?ItemId=170069&CultureCode=en |title=Molasses Creates a Sticky Situation |date=November 17, 2016 |access-date=November 25, 2016 |publisher=[[AlphaGalileo]] }}{{Dead link|date=September 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> The Harvard study concluded that the molasses cooled and thickened quickly as it rushed through the streets, hampering efforts to free victims before they suffocated.<ref name="AP-Harv" /><ref name="NYT-Harv" /><ref>{{Cite journal |last1=Sharp |first1=Nicole |last2=Kennedy |first2=Jordan |last3=Rubinstein |first3=Shmuel |date=November 21, 2016 |title=Abstract: L27.00008 : In a sea of sticky molasses: The physics of the Boston Molasses Flood |url=http://meetings.aps.org/Meeting/DFD16/Session/L27.8 |journal=Bulletin of the American Physical Society |volume=61 |access-date=November 25, 2016 |number=20}}</ref> == Area today == [[File:Molasses Flood Historical Marker.jpg|thumb|Molasses Flood historical marker]] United States Industrial Alcohol did not rebuild the tank. The property formerly occupied by the molasses tank and the North End Paving Company became a yard for the Boston Elevated Railway (predecessor to the [[Massachusetts Bay Transportation Authority]]). It is now the site of a city-owned recreational complex, officially named [[Langone Park]], featuring a [[Little League Baseball]] field, a playground, and [[bocce]] courts.<ref name="Harris" /> Immediately to the east is the larger Puopolo Park, with additional recreational facilities.<ref name="BHA" /> A small plaque at the entrance to Puopolo Park, placed by the Bostonian Society, commemorates the disaster.<ref name=Ocker /> The plaque, titled "Boston Molasses Flood", reads: {{quote|On January 15, 1919, a molasses tank at 529 Commercial Street exploded under pressure, killing 21 people. A 40-foot wave of molasses buckled the elevated railroad tracks, crushed buildings and inundated the neighborhood. Structural defects in the tank combined with unseasonably warm temperatures contributed to the disaster.}} The accident has since become a staple of local culture, not only for the damage the flood brought, but also for the sweet smell that filled the North End for decades after the disaster.<ref name="Smithsonian" /> According to journalist Edwards Park, "The smell of molasses remained for decades a distinctive, unmistakable atmosphere of Boston."<ref name="Smithsonian" /> On January 15, 2019, for the 100th anniversary of the event, a ceremony was held in remembrance. Ground-penetrating radar was used to identify the exact location of the tank from 1919.<ref name="Results of Geophysical survey at Langone Park: 100 Years since the Great Molasses Flood">{{cite web |last1=Steinberg |first1=John M. |title=Results of Geophysical survey at Langone Park: 100 Years since the Great Molasses Flood |url=https://blogs.umb.edu/fiskecenter/2019/01/14/results-of-geophysical-survey-at-langone-park-100-years-since-the-great-molasses-flood/ |website=The Fiske Center Blog |date=January 14, 2019 |publisher=Fiske Center for Archaeological Research at the University of Massachusetts Boston |access-date=16 October 2023}}</ref> The concrete slab base for the tank remains in place approximately {{convert|20|in|cm}} below the surface of the baseball diamond at [[Langone Park]]. Attendees of the ceremony stood in a circle marking the edge of the tank. The 21 names of those who died in, or as a result of, the flood were read aloud.<ref name="Globe_2019">{{Cite news |url=https://www.bostonglobe.com/metro/2019/01/15/remembering-great-molasses-flood-years-later/zNqJPoyHTuuSWcXKIZv0HM/story.html |title=Boston officials remember the Great Molasses Flood, 100 years later |last=Sweeney |first=Emily |date=January 15, 2019 |work=The Boston Globe |access-date=January 26, 2019}}</ref><ref name="Universal_Hub_2019">{{Cite web |url=https://www.universalhub.com/2019/gathering-around-where-molasses-tank-used |title=Gathering around the site of the molasses tank to remember its victims |last=adamg |date=January 15, 2019 |location=Boston, Massachusetts |access-date=January 26, 2019}}</ref> Many laws and regulations governing construction were changed as a direct result of the disaster, including requirements for oversight by a [[architect|licensed architect]] and [[civil engineering|civil engineer]].<ref name="nbc 100">{{Cite web |url=https://www.nbcnews.com/news/us-news/great-boston-molasses-flood-1919-killed-21-after-2-million-n958326 |title=The Great Boston Molasses Flood of 1919 killed 21 after 2 million gallon tank erupted |last=Kesslen |first=Ben |date=January 14, 2019 |website=[[NBC News]] |access-date=January 14, 2019}}</ref><ref>{{Cite journal |last=Durso |first=Fred |date=May 1, 2011 |title=The Great Boston Molasses Flood |url=https://www.nfpa.org/news-and-research/publications/nfpa-journal/2011/may-june-2011/features/the-great-boston-molasses-flood |journal=NFPA Journal |access-date=May 29, 2024 |archive-date=March 18, 2019 |archive-url=https://web.archive.org/web/20190318124613/https://www.nfpa.org/News-and-Research/Publications/NFPA-Journal/2011/May-June-2011/Features/The-Great-Boston-Molasses-Flood |url-status=dead }}</ref> == See also == * [[List of non-water floods]] * [[Honolulu molasses spill]] ==Notes== {{notelist}} == References == {{Reflist|30em|refs= <ref name="Smithsonian">{{Cite journal |last=Park |first=Edwards |date=November 1983 |title=Without Warning, Molasses in January Surged Over Boston |url=http://edp.org/molpark.htm |journal=Smithsonian |volume=14 |issue=8 |pages=213–230 |access-date=March 24, 2013}} Reprinted at ''Eric Postpischil's Domain'', "Eric Postpischil's Molasses Disaster Pages, Smithsonian Article", June 14, 2009.</ref> <ref name="DarkTide">{{Cite book |url=https://archive.org/details/darktide00step |title=Dark Tide: The Great Boston Molasses Flood of 1919 |last=Puleo |first=Stephen |publisher=Beacon Press |year=2004 |isbn=0-8070-5021-0 |url-access=registration}}</ref> <ref name="SciAmJabr">{{Cite journal |last=Jabr |first=Ferris |date=July 17, 2013 |title=The Science of the Great Molasses Flood |url=https://www.scientificamerican.com/article/molasses-flood-physics-science/ |access-date=October 16, 2013 |website=[[Scientific American]]}}</ref> <ref name="NYTimes1919">{{Cite news |url=https://timesmachine.nytimes.com/timesmachine/1919/01/16/97058317.pdf |title=12 Killed When Tank of Molasses Explodes |date=January 15, 1919 |work=[[The New York Times]] |access-date=May 30, 2008 |publication-date=January 16, 1919 |issn=0362-4331}}</ref> <ref name="StraightD">{{Cite web |url=http://www.straightdope.com/columns/041231.html |title=Was Boston once literally flooded with molasses? |last=Adams |first=Cecil |author-link=Cecil Adams |date=December 31, 2004 |website=The Straight Dope |publisher=The Chicago Reader |access-date=December 16, 2006}}</ref> <ref name="TheHour">{{Cite news |url=https://news.google.com/newspapers?id=s6s0AAAAIBAJ&pg=949%2C3011666 |title=The Great Boston Molasses Disaster of 1919 |date=January 17, 1979 |work=The Hour |agency=United Press International}}</ref> <ref name="YankeeMason">{{Cite journal |last=Mason |first=John |date=January 1965 |title=The Molasses Disaster of January 15, 1919 |url=http://edp.org/molyank.htm |journal=[[Yankee (magazine)|Yankee]] |access-date=May 29, 2024 |archive-date=April 23, 2018 |archive-url=https://archive.wikiwix.com/cache/20180423143010/http://edp.org/molyank.htm |url-status=dead }} Reprinted at ''Eric Postpischil's Domain'', "Eric Postpischil's Molasses Disaster Pages, Yankee Magazine Article", June 14, 2009. Retrieved June 8, 2014.</ref> <ref name="PuleoQuote79">{{Cite book |url=https://books.google.com/books?id=yWtJGLG0aEcC&pg=PA263 |title=Dark Tide: The Great Molasses Flood of 1919 |last=Puleo |first=Stephen |publisher=Beacon Press |year=2010 |isbn=9780807096673 |page=79 |quote=Any disruption at the tank could prove disastrous to his plan to outrun Prohibition by producing alcohol as rapidly as possible at the East Cambridge distillery.}}</ref> <ref name="YankeeStanley">{{Cite journal |last=Stanley |first=Robert |year=1989 |title=Footnote to History |journal=Yankee |volume=53 |page=101 |quote=In January of 1919 Purity Distilling Company of Boston, maker of high-grade rum, was working three shifts a day in a vain attempt to outrun national Prohibition.}}</ref> <ref name="Silverman">{{Cite book |url=https://books.google.com/books?id=yWVddZqyqggC&pg=PA37 |title=Einstein's Refrigerator: And Other Stories from the Flip Side of History |last=Silverman |first=Steve |publisher=Andrews McMeel |year=2001 |isbn=978-0-7407-1419-1 |page=37 |quote=First, it was believed that the tank was overfilled because of the impending threat of Prohibition.}}</ref> <ref name="Streissguth">{{Cite book |url=https://books.google.com/books?id=FtbnIe103p4C&pg=PA13 |title=The Roaring Twenties |last=Streissguth |first=Thomas |publisher=Infobase |year=2009 |isbn=978-1-4381-0887-2 |page=13}}</ref> <ref name="GlobeSchworm">{{Cite news |url=https://www.bostonglobe.com/metro/2015/01/14/nearly-century-later-new-insight-into-cause-great-molasses-flood/CNqLYc0T58kNo3MxP872iM/story.html |title=Nearly a century later, new insight into cause of Great Molasses Flood of 1919 |last=Schworm |first=Peter |date=January 15, 2015 |work=[[The Boston Globe]] |access-date=January 16, 2015}}</ref> <ref name="Harris">{{Cite book |title=Boston: a Guide to Unique Places |last1=Harris |first1=Patricia |last2=Lyon |first2=David |publisher=The Globe Pequot Press |year=2004 |isbn=0-7627-3011-0 |pages=63–64}}</ref> <ref name="BHA">{{Cite web |url=http://www.bostonharborwalk.com/placestogo/location.php?nid=3&sid=21 |title=Places to go: Downtown/North End |publisher=The Boston Harbor Association |url-status=dead |archive-url=https://web.archive.org/web/20130913150554/http://www.bostonharborwalk.com/placestogo/location.php?nid=3&sid=21 |archive-date=September 13, 2013 |access-date=September 5, 2013}}</ref> <ref name="HistoryChannel">{{Cite web |url=http://www.history.com/news/the-great-molasses-flood-of-1919 |title=The Great Molasses Flood of 1919 |last=Andrews |first=Evan |date=January 13, 2017 |website=The History Channel |publisher=A&E Television Networks |access-date=December 21, 2017}}</ref> <ref name="Ocker">{{Cite book |title=The New England Grimpendium |last=Ocker |first=J. W. |publisher=The Countryman Press |year=2010 |isbn=978-0-88150-919-9 |location=Woodstock, VT |page=97}}</ref> }} ==Further reading== * {{Cite book |last=Puleo |first=Stephen |year=2004 |title=Dark Tide: The Great Boston Molasses Flood of 1919 |url=https://archive.org/details/darktide00step |url-access=registration |location=Boston |publisher=[[Beacon Press]] |isbn=0-8070-5021-0}} == External links == {{Commons category|Boston Molasses Disaster}} * [https://www.flickr.com/photos/boston_public_library/sets/72157624622085789/ Boston Public Library]. Photos related to the event on Flickr. Many phrases are direct quotes. * [https://web.archive.org/web/20131023055001/http://www.theamericanstoryteller.com/stories/molasses/ The Great Boston Molasses Flood of 1919], four-minute audio story at The American Storyteller Radio Journal * [https://web.archive.org/web/20050310034650/http://www.bostonphoenix.com/boston/news_features/this_just_in/documents/03521177.asp Interview] with Stephen Puleo, author of the book listed in "Further reading" * [https://www.gendisasters.com/massachusetts/2678/boston%2C-ma-%2526%2523039%3Bmolasses-flood%2526%2523039%3B-tank-explosion%2C-jan-1919 Molasses Flood of 1919]{{webarchive |url=https://web.archive.org/web/20110103023107/http://www3.gendisasters.com/massachusetts/2678/boston%2C-ma-%2526%2523039%3Bmolasses-flood%2526%2523039%3B-tank-explosion%2C-jan-1919 |date=2011-01-03}} * [http://chroniclingamerica.loc.gov/lccn/sn84026749/1919-01-18/ed-1/seq-2/;words=MolassesFlooded "Scenes in the Molasses-Flooded Streets of Boston"], from the ''Washington Times'', January 18, 1919 * [https://www.bostonglobe.com/news/bigpicture/2019/01/15/years-ago-boston-north-end-was-hit-deadly-wave-molasses/xyn8sjJG3gYt3ZcixyuaYO/story.html 100 years ago, Boston’s North End was hit by a deadly wave of molasses] (photos) * [https://www.bostonglobe.com/magazine/2019/01/09/the-great-molasses-flood-was-boston-strangest-disaster/VawySumFUf5vKCibM9PLtJ/story.html The Great Molasses Flood of 1919 was Boston’s strangest disaster] (story with more photos) {{Authority control}} [[Category:1910s in Boston]] [[Category:1919 disasters in the United States]] [[Category:1919 in Massachusetts]] [[Category:1919 industrial disasters]] [[Category:Cultural history of Boston]] [[Category:Disasters in Boston]] [[Category:Engineering failures]] [[Category:Environmental disasters in the United States]] [[Category:Floods in the United States]] [[Category:Food processing disasters]] [[Category:Industrial accidents and incidents in the United States]] [[Category:January 1919 events]] [[Category:Molasses]] [[Category:North End, Boston]] 8oygvn58q6f030z5bq0tvzbhfqzlzov User:Asked42/sandbox1 2 158659 664275 658402 2025-06-25T15:44:48Z Asked42 58528 Added a source using QuickSource tool. 664275 wikitext text/x-wiki <templatestyles src="Template:TemplateStyles Test/Asked42.css"/> <div id="lead-manager-container"></div> <div id="query-wikinews-v1"></div> <div id="review"> </div> <div class="news-ticker"> <div class="ticker-title"></div> <div class="ticker-items-container"> <div class="ticker-items"> <div class="ticker-item">Breaking News: Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div> <div class="ticker-item">This text will always be shown</div> <div class="ticker-item">The Lead Manager script is designed to update lead templates and create new ones.</div> </div> </div> </div> <div id="wikidialog-comment-section-v2" collapsed="true"> </div> <div style="display: inline-flex; align-items: center; float: right; gap: 10px; margin: 4px 4px 0 4px;"> <div id="wikidialog-quick-share"></div> <div id="wikidialog-comment-icon"></div> </div> <div id="publish"> </div> 22 February 2025 <div id="wn-author" wn-author-link="yes" wn-author-total="3"></div> <div id="publish"> </div> <div id="review"> </div> <div id="published"> </div> <div id="wikidialog-submit"> </div> <div class="wikidialog-selfpublish" data-button-text="Hello"> </div> <div class="wikidialog-submit" data-button-text="submit"> </div> <div align="right" style="float:right;"> <div id="wikidialog-quick-share"> </div> </div> The Lead Manager {{w|script}} is {{w|heelo|designed to update}} lead templates and create new ones. It offers various methods for updating leads, including sequential [[shuffling]] of all lead templates instead of updating '''them one by one'''. Users can also perform a "Single Update" on a specific template or define a custom pattern to control the shuffling process. The script allows users to to retrieve data from the most recent published article by entering keywords like "ML1" in the title field. To extract data from an existing lead template, keywords such as "Lead1", "Lead2", etc., can be used to auto-fill the form fields with parameters from the corresponding lead template. Inspired by the Make Lead script and Baffwolf's script, this tool was initially developed for Bengali Wikinews and later adapted for English Wikinews, with added features to suit specific needs. <div id="lead-update-container"> </div> * To start, enter the title, choose the number of sentences, and click the <code>'''Fetch Automatically'''</code> button. This will get details like the image and summary from the article. You can also use shortcut keywords in the title field to get data from recent articles. For example, "<code>ML1</code>" gets data from the latest published article, "<code>ML2</code>" gets it from the second latest, "<code>ML3</code>" from the third, and so on up to the fifth. * In the '''Additional Options''' section, you can change settings like the image size. By default, it shows "<code>'''150x150px (100x100px)'''</code>". Here, <code>150x150px</code> is for the selected lead template, and <code>100x100px</code> is for the other lead templates when updating them in order. This follows the common practice of using "150x150px" for lead1 and "100x100px" for lead2 to lead5. If you're updating templates other than lead1, you may want to use "100x100px" to keep things consistent. * The '''Lead Article Template''' dropdown lets you choose where the new data will be added. By default, the sequential update starts with the selected template and continues through the others in order. However, if you select "'''Single Update'''", only the chosen template will be updated with new content. * The '''Explicit Update''' option lets you create a custom shuffle pattern. For example, "<code>1->3</code>" moves the content from lead1 to lead3, and new content is added to lead1. You can also set multiple moves, like "<code>1->3, 3->2, 2->5</code>", which moves content from lead1 to lead3, lead3 to lead2, and lead2 to lead5, while lead4 stays the same. ::*'''Important:''' The first number in the pattern must match the template where new content will go. For example, if you select lead template 1, a pattern like "<code>2->1, 1->3</code>" won’t work. Also, no template should be left empty. For instance, "<code>1->3, 4->5</code>" is invalid because lead4 would end up empty. * Once you’ve provided all the necessary details and chosen your preferred edit method, click the "<code>'''Start Update!'''</code>" button. Confirm the changes, and the tool will update the templates automatically. Relax and let the script handle the updates. '''12 November, 2024''' {{Breaking news}} {{#invoke:Sandbox/Asked42|formatCitation|লেখক=Author Name|শিরোনাম=Article Title|ইউআরএল=https://example.com|সংরক্ষিত_ইউআরএল=https://archive.org/example|প্রকাশক=Publisher Name|তারিখ=Date|ভাষা=Language}} Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Cows are and then some animals that live on planet Earth. Cows moo. Cows eat grass. Cows drink water. Cows walk on four legs, if they have all of them. When cows die, their body is turned into delicious ground beef and steak. From time to time, people will tip cows and aliens will abduct cows. Baby cows are called calves. Male cows are called bulls. Cows are often depicted in comic Gary Larson's strip ''The Far Side.'' Cows produce a lot of methane, a [[greenhouse gas]]. A common phrase among teenagers in the mid-90s was "don't have a cow, man," popularized by [[Bart Simpson]]. tl;dr Cows are pretty great. foo Cows are sometimes considered creatures of habit and beasts of burden. [[Category:India]] == Sources == *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} 06ezkk0mdd6h8k5q72wqs85luilnnc3 664276 664275 2025-06-25T15:45:59Z Asked42 58528 Added a source using QuickSource tool. 664276 wikitext text/x-wiki <templatestyles src="Template:TemplateStyles Test/Asked42.css"/> <div id="lead-manager-container"></div> <div id="query-wikinews-v1"></div> <div id="review"> </div> <div class="news-ticker"> <div class="ticker-title"></div> <div class="ticker-items-container"> <div class="ticker-items"> <div class="ticker-item">Breaking News: Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div> <div class="ticker-item">This text will always be shown</div> <div class="ticker-item">The Lead Manager script is designed to update lead templates and create new ones.</div> </div> </div> </div> <div id="wikidialog-comment-section-v2" collapsed="true"> </div> <div style="display: inline-flex; align-items: center; float: right; gap: 10px; margin: 4px 4px 0 4px;"> <div id="wikidialog-quick-share"></div> <div id="wikidialog-comment-icon"></div> </div> <div id="publish"> </div> 22 February 2025 <div id="wn-author" wn-author-link="yes" wn-author-total="3"></div> <div id="publish"> </div> <div id="review"> </div> <div id="published"> </div> <div id="wikidialog-submit"> </div> <div class="wikidialog-selfpublish" data-button-text="Hello"> </div> <div class="wikidialog-submit" data-button-text="submit"> </div> <div align="right" style="float:right;"> <div id="wikidialog-quick-share"> </div> </div> The Lead Manager {{w|script}} is {{w|heelo|designed to update}} lead templates and create new ones. It offers various methods for updating leads, including sequential [[shuffling]] of all lead templates instead of updating '''them one by one'''. Users can also perform a "Single Update" on a specific template or define a custom pattern to control the shuffling process. The script allows users to to retrieve data from the most recent published article by entering keywords like "ML1" in the title field. To extract data from an existing lead template, keywords such as "Lead1", "Lead2", etc., can be used to auto-fill the form fields with parameters from the corresponding lead template. Inspired by the Make Lead script and Baffwolf's script, this tool was initially developed for Bengali Wikinews and later adapted for English Wikinews, with added features to suit specific needs. <div id="lead-update-container"> </div> * To start, enter the title, choose the number of sentences, and click the <code>'''Fetch Automatically'''</code> button. This will get details like the image and summary from the article. You can also use shortcut keywords in the title field to get data from recent articles. For example, "<code>ML1</code>" gets data from the latest published article, "<code>ML2</code>" gets it from the second latest, "<code>ML3</code>" from the third, and so on up to the fifth. * In the '''Additional Options''' section, you can change settings like the image size. By default, it shows "<code>'''150x150px (100x100px)'''</code>". Here, <code>150x150px</code> is for the selected lead template, and <code>100x100px</code> is for the other lead templates when updating them in order. This follows the common practice of using "150x150px" for lead1 and "100x100px" for lead2 to lead5. If you're updating templates other than lead1, you may want to use "100x100px" to keep things consistent. * The '''Lead Article Template''' dropdown lets you choose where the new data will be added. By default, the sequential update starts with the selected template and continues through the others in order. However, if you select "'''Single Update'''", only the chosen template will be updated with new content. * The '''Explicit Update''' option lets you create a custom shuffle pattern. For example, "<code>1->3</code>" moves the content from lead1 to lead3, and new content is added to lead1. You can also set multiple moves, like "<code>1->3, 3->2, 2->5</code>", which moves content from lead1 to lead3, lead3 to lead2, and lead2 to lead5, while lead4 stays the same. ::*'''Important:''' The first number in the pattern must match the template where new content will go. For example, if you select lead template 1, a pattern like "<code>2->1, 1->3</code>" won’t work. Also, no template should be left empty. For instance, "<code>1->3, 4->5</code>" is invalid because lead4 would end up empty. * Once you’ve provided all the necessary details and chosen your preferred edit method, click the "<code>'''Start Update!'''</code>" button. Confirm the changes, and the tool will update the templates automatically. Relax and let the script handle the updates. '''12 November, 2024''' {{Breaking news}} {{#invoke:Sandbox/Asked42|formatCitation|লেখক=Author Name|শিরোনাম=Article Title|ইউআরএল=https://example.com|সংরক্ষিত_ইউআরএল=https://archive.org/example|প্রকাশক=Publisher Name|তারিখ=Date|ভাষা=Language}} Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Cows are and then some animals that live on planet Earth. Cows moo. Cows eat grass. Cows drink water. Cows walk on four legs, if they have all of them. When cows die, their body is turned into delicious ground beef and steak. From time to time, people will tip cows and aliens will abduct cows. Baby cows are called calves. Male cows are called bulls. Cows are often depicted in comic Gary Larson's strip ''The Far Side.'' Cows produce a lot of methane, a [[greenhouse gas]]. A common phrase among teenagers in the mid-90s was "don't have a cow, man," popularized by [[Bart Simpson]]. tl;dr Cows are pretty great. foo Cows are sometimes considered creatures of habit and beasts of burden. [[Category:India]] == Sources == *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://www.bbc.com/news/articles/cly30pgldewo |title = Bangladesh leader declines to meet Tulip Siddiq |author = |pub = BBC News 22 |date = June 12, 2025 |archiveurl = }} pcasftn3hvzwpk24sgy25v6g0dyckem 664277 664276 2025-06-25T15:46:55Z Asked42 58528 Added a source using QuickSource tool. 664277 wikitext text/x-wiki <templatestyles src="Template:TemplateStyles Test/Asked42.css"/> <div id="lead-manager-container"></div> <div id="query-wikinews-v1"></div> <div id="review"> </div> <div class="news-ticker"> <div class="ticker-title"></div> <div class="ticker-items-container"> <div class="ticker-items"> <div class="ticker-item">Breaking News: Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div> <div class="ticker-item">This text will always be shown</div> <div class="ticker-item">The Lead Manager script is designed to update lead templates and create new ones.</div> </div> </div> </div> <div id="wikidialog-comment-section-v2" collapsed="true"> </div> <div style="display: inline-flex; align-items: center; float: right; gap: 10px; margin: 4px 4px 0 4px;"> <div id="wikidialog-quick-share"></div> <div id="wikidialog-comment-icon"></div> </div> <div id="publish"> </div> 22 February 2025 <div id="wn-author" wn-author-link="yes" wn-author-total="3"></div> <div id="publish"> </div> <div id="review"> </div> <div id="published"> </div> <div id="wikidialog-submit"> </div> <div class="wikidialog-selfpublish" data-button-text="Hello"> </div> <div class="wikidialog-submit" data-button-text="submit"> </div> <div align="right" style="float:right;"> <div id="wikidialog-quick-share"> </div> </div> The Lead Manager {{w|script}} is {{w|heelo|designed to update}} lead templates and create new ones. It offers various methods for updating leads, including sequential [[shuffling]] of all lead templates instead of updating '''them one by one'''. Users can also perform a "Single Update" on a specific template or define a custom pattern to control the shuffling process. The script allows users to to retrieve data from the most recent published article by entering keywords like "ML1" in the title field. To extract data from an existing lead template, keywords such as "Lead1", "Lead2", etc., can be used to auto-fill the form fields with parameters from the corresponding lead template. Inspired by the Make Lead script and Baffwolf's script, this tool was initially developed for Bengali Wikinews and later adapted for English Wikinews, with added features to suit specific needs. <div id="lead-update-container"> </div> * To start, enter the title, choose the number of sentences, and click the <code>'''Fetch Automatically'''</code> button. This will get details like the image and summary from the article. You can also use shortcut keywords in the title field to get data from recent articles. For example, "<code>ML1</code>" gets data from the latest published article, "<code>ML2</code>" gets it from the second latest, "<code>ML3</code>" from the third, and so on up to the fifth. * In the '''Additional Options''' section, you can change settings like the image size. By default, it shows "<code>'''150x150px (100x100px)'''</code>". Here, <code>150x150px</code> is for the selected lead template, and <code>100x100px</code> is for the other lead templates when updating them in order. This follows the common practice of using "150x150px" for lead1 and "100x100px" for lead2 to lead5. If you're updating templates other than lead1, you may want to use "100x100px" to keep things consistent. * The '''Lead Article Template''' dropdown lets you choose where the new data will be added. By default, the sequential update starts with the selected template and continues through the others in order. However, if you select "'''Single Update'''", only the chosen template will be updated with new content. * The '''Explicit Update''' option lets you create a custom shuffle pattern. For example, "<code>1->3</code>" moves the content from lead1 to lead3, and new content is added to lead1. You can also set multiple moves, like "<code>1->3, 3->2, 2->5</code>", which moves content from lead1 to lead3, lead3 to lead2, and lead2 to lead5, while lead4 stays the same. ::*'''Important:''' The first number in the pattern must match the template where new content will go. For example, if you select lead template 1, a pattern like "<code>2->1, 1->3</code>" won’t work. Also, no template should be left empty. For instance, "<code>1->3, 4->5</code>" is invalid because lead4 would end up empty. * Once you’ve provided all the necessary details and chosen your preferred edit method, click the "<code>'''Start Update!'''</code>" button. Confirm the changes, and the tool will update the templates automatically. Relax and let the script handle the updates. '''12 November, 2024''' {{Breaking news}} {{#invoke:Sandbox/Asked42|formatCitation|লেখক=Author Name|শিরোনাম=Article Title|ইউআরএল=https://example.com|সংরক্ষিত_ইউআরএল=https://archive.org/example|প্রকাশক=Publisher Name|তারিখ=Date|ভাষা=Language}} Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Cows are and then some animals that live on planet Earth. Cows moo. Cows eat grass. Cows drink water. Cows walk on four legs, if they have all of them. When cows die, their body is turned into delicious ground beef and steak. From time to time, people will tip cows and aliens will abduct cows. Baby cows are called calves. Male cows are called bulls. Cows are often depicted in comic Gary Larson's strip ''The Far Side.'' Cows produce a lot of methane, a [[greenhouse gas]]. A common phrase among teenagers in the mid-90s was "don't have a cow, man," popularized by [[Bart Simpson]]. tl;dr Cows are pretty great. foo Cows are sometimes considered creatures of habit and beasts of burden. [[Category:India]] == Sources == *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://www.bbc.com/news/articles/cly30pgldewo |title = Bangladesh leader declines to meet Tulip Siddiq |author = |pub = BBC News 22 |date = June 12, 2025 |archiveurl = }} 9yvkxz58u4kso89wqxrjj3ty92n9yhv 664278 664277 2025-06-25T15:47:44Z Asked42 58528 Added a source using QuickSource tool. 664278 wikitext text/x-wiki <templatestyles src="Template:TemplateStyles Test/Asked42.css"/> <div id="lead-manager-container"></div> <div id="query-wikinews-v1"></div> <div id="review"> </div> <div class="news-ticker"> <div class="ticker-title"></div> <div class="ticker-items-container"> <div class="ticker-items"> <div class="ticker-item">Breaking News: Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div> <div class="ticker-item">This text will always be shown</div> <div class="ticker-item">The Lead Manager script is designed to update lead templates and create new ones.</div> </div> </div> </div> <div id="wikidialog-comment-section-v2" collapsed="true"> </div> <div style="display: inline-flex; align-items: center; float: right; gap: 10px; margin: 4px 4px 0 4px;"> <div id="wikidialog-quick-share"></div> <div id="wikidialog-comment-icon"></div> </div> <div id="publish"> </div> 22 February 2025 <div id="wn-author" wn-author-link="yes" wn-author-total="3"></div> <div id="publish"> </div> <div id="review"> </div> <div id="published"> </div> <div id="wikidialog-submit"> </div> <div class="wikidialog-selfpublish" data-button-text="Hello"> </div> <div class="wikidialog-submit" data-button-text="submit"> </div> <div align="right" style="float:right;"> <div id="wikidialog-quick-share"> </div> </div> The Lead Manager {{w|script}} is {{w|heelo|designed to update}} lead templates and create new ones. It offers various methods for updating leads, including sequential [[shuffling]] of all lead templates instead of updating '''them one by one'''. Users can also perform a "Single Update" on a specific template or define a custom pattern to control the shuffling process. The script allows users to to retrieve data from the most recent published article by entering keywords like "ML1" in the title field. To extract data from an existing lead template, keywords such as "Lead1", "Lead2", etc., can be used to auto-fill the form fields with parameters from the corresponding lead template. Inspired by the Make Lead script and Baffwolf's script, this tool was initially developed for Bengali Wikinews and later adapted for English Wikinews, with added features to suit specific needs. <div id="lead-update-container"> </div> * To start, enter the title, choose the number of sentences, and click the <code>'''Fetch Automatically'''</code> button. This will get details like the image and summary from the article. You can also use shortcut keywords in the title field to get data from recent articles. For example, "<code>ML1</code>" gets data from the latest published article, "<code>ML2</code>" gets it from the second latest, "<code>ML3</code>" from the third, and so on up to the fifth. * In the '''Additional Options''' section, you can change settings like the image size. By default, it shows "<code>'''150x150px (100x100px)'''</code>". Here, <code>150x150px</code> is for the selected lead template, and <code>100x100px</code> is for the other lead templates when updating them in order. This follows the common practice of using "150x150px" for lead1 and "100x100px" for lead2 to lead5. If you're updating templates other than lead1, you may want to use "100x100px" to keep things consistent. * The '''Lead Article Template''' dropdown lets you choose where the new data will be added. By default, the sequential update starts with the selected template and continues through the others in order. However, if you select "'''Single Update'''", only the chosen template will be updated with new content. * The '''Explicit Update''' option lets you create a custom shuffle pattern. For example, "<code>1->3</code>" moves the content from lead1 to lead3, and new content is added to lead1. You can also set multiple moves, like "<code>1->3, 3->2, 2->5</code>", which moves content from lead1 to lead3, lead3 to lead2, and lead2 to lead5, while lead4 stays the same. ::*'''Important:''' The first number in the pattern must match the template where new content will go. For example, if you select lead template 1, a pattern like "<code>2->1, 1->3</code>" won’t work. Also, no template should be left empty. For instance, "<code>1->3, 4->5</code>" is invalid because lead4 would end up empty. * Once you’ve provided all the necessary details and chosen your preferred edit method, click the "<code>'''Start Update!'''</code>" button. Confirm the changes, and the tool will update the templates automatically. Relax and let the script handle the updates. '''12 November, 2024''' {{Breaking news}} {{#invoke:Sandbox/Asked42|formatCitation|লেখক=Author Name|শিরোনাম=Article Title|ইউআরএল=https://example.com|সংরক্ষিত_ইউআরএল=https://archive.org/example|প্রকাশক=Publisher Name|তারিখ=Date|ভাষা=Language}} Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Cows are and then some animals that live on planet Earth. Cows moo. Cows eat grass. Cows drink water. Cows walk on four legs, if they have all of them. When cows die, their body is turned into delicious ground beef and steak. From time to time, people will tip cows and aliens will abduct cows. Baby cows are called calves. Male cows are called bulls. Cows are often depicted in comic Gary Larson's strip ''The Far Side.'' Cows produce a lot of methane, a [[greenhouse gas]]. A common phrase among teenagers in the mid-90s was "don't have a cow, man," popularized by [[Bart Simpson]]. tl;dr Cows are pretty great. foo Cows are sometimes considered creatures of habit and beasts of burden. [[Category:India]] == Sources == *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://www.bbc.com/news/articles/cly30pgldewo |title = Bangladesh leader declines to meet Tulip Siddiq |author = |pub = BBC News 22 |date = June 12, 2025 |archiveurl = }} oj0muqq9z2y8l88e5tk9bpbxzyiudtk 664279 664278 2025-06-25T15:48:42Z Asked42 58528 Added a source using QuickSource tool. 664279 wikitext text/x-wiki <templatestyles src="Template:TemplateStyles Test/Asked42.css"/> <div id="lead-manager-container"></div> <div id="query-wikinews-v1"></div> <div id="review"> </div> <div class="news-ticker"> <div class="ticker-title"></div> <div class="ticker-items-container"> <div class="ticker-items"> <div class="ticker-item">Breaking News: Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div> <div class="ticker-item">This text will always be shown</div> <div class="ticker-item">The Lead Manager script is designed to update lead templates and create new ones.</div> </div> </div> </div> <div id="wikidialog-comment-section-v2" collapsed="true"> </div> <div style="display: inline-flex; align-items: center; float: right; gap: 10px; margin: 4px 4px 0 4px;"> <div id="wikidialog-quick-share"></div> <div id="wikidialog-comment-icon"></div> </div> <div id="publish"> </div> 22 February 2025 <div id="wn-author" wn-author-link="yes" wn-author-total="3"></div> <div id="publish"> </div> <div id="review"> </div> <div id="published"> </div> <div id="wikidialog-submit"> </div> <div class="wikidialog-selfpublish" data-button-text="Hello"> </div> <div class="wikidialog-submit" data-button-text="submit"> </div> <div align="right" style="float:right;"> <div id="wikidialog-quick-share"> </div> </div> The Lead Manager {{w|script}} is {{w|heelo|designed to update}} lead templates and create new ones. It offers various methods for updating leads, including sequential [[shuffling]] of all lead templates instead of updating '''them one by one'''. Users can also perform a "Single Update" on a specific template or define a custom pattern to control the shuffling process. The script allows users to to retrieve data from the most recent published article by entering keywords like "ML1" in the title field. To extract data from an existing lead template, keywords such as "Lead1", "Lead2", etc., can be used to auto-fill the form fields with parameters from the corresponding lead template. Inspired by the Make Lead script and Baffwolf's script, this tool was initially developed for Bengali Wikinews and later adapted for English Wikinews, with added features to suit specific needs. <div id="lead-update-container"> </div> * To start, enter the title, choose the number of sentences, and click the <code>'''Fetch Automatically'''</code> button. This will get details like the image and summary from the article. You can also use shortcut keywords in the title field to get data from recent articles. For example, "<code>ML1</code>" gets data from the latest published article, "<code>ML2</code>" gets it from the second latest, "<code>ML3</code>" from the third, and so on up to the fifth. * In the '''Additional Options''' section, you can change settings like the image size. By default, it shows "<code>'''150x150px (100x100px)'''</code>". Here, <code>150x150px</code> is for the selected lead template, and <code>100x100px</code> is for the other lead templates when updating them in order. This follows the common practice of using "150x150px" for lead1 and "100x100px" for lead2 to lead5. If you're updating templates other than lead1, you may want to use "100x100px" to keep things consistent. * The '''Lead Article Template''' dropdown lets you choose where the new data will be added. By default, the sequential update starts with the selected template and continues through the others in order. However, if you select "'''Single Update'''", only the chosen template will be updated with new content. * The '''Explicit Update''' option lets you create a custom shuffle pattern. For example, "<code>1->3</code>" moves the content from lead1 to lead3, and new content is added to lead1. You can also set multiple moves, like "<code>1->3, 3->2, 2->5</code>", which moves content from lead1 to lead3, lead3 to lead2, and lead2 to lead5, while lead4 stays the same. ::*'''Important:''' The first number in the pattern must match the template where new content will go. For example, if you select lead template 1, a pattern like "<code>2->1, 1->3</code>" won’t work. Also, no template should be left empty. For instance, "<code>1->3, 4->5</code>" is invalid because lead4 would end up empty. * Once you’ve provided all the necessary details and chosen your preferred edit method, click the "<code>'''Start Update!'''</code>" button. Confirm the changes, and the tool will update the templates automatically. Relax and let the script handle the updates. '''12 November, 2024''' {{Breaking news}} {{#invoke:Sandbox/Asked42|formatCitation|লেখক=Author Name|শিরোনাম=Article Title|ইউআরএল=https://example.com|সংরক্ষিত_ইউআরএল=https://archive.org/example|প্রকাশক=Publisher Name|তারিখ=Date|ভাষা=Language}} Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Cows are and then some animals that live on planet Earth. Cows moo. Cows eat grass. Cows drink water. Cows walk on four legs, if they have all of them. When cows die, their body is turned into delicious ground beef and steak. From time to time, people will tip cows and aliens will abduct cows. Baby cows are called calves. Male cows are called bulls. Cows are often depicted in comic Gary Larson's strip ''The Far Side.'' Cows produce a lot of methane, a [[greenhouse gas]]. A common phrase among teenagers in the mid-90s was "don't have a cow, man," popularized by [[Bart Simpson]]. tl;dr Cows are pretty great. foo Cows are sometimes considered creatures of habit and beasts of burden. [[Category:India]] == Sources == *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = India vs England: 'Whether Jasprit Bumrah is fit or not ...' - Sunil Gavaskar makes massive admission ahead of 2nd Test |author = |pub = The Times of India |date = June 25, 2025 |archiveurl = }} *{{source |url = https://www.bbc.com/news/articles/cly30pgldewo |title = Bangladesh leader declines to meet Tulip Siddiq |author = |pub = BBC News 22 |date = June 12, 2025 |archiveurl = }} *{{source |url = https://timesofindia.indiatimes.com/sports/cricket/india-tour-of-england/india-vs-england-whether-jasprit-bumrah-is-fit-or-not-sunil-gavaskar-makes-massive-admission-ahead-of-2nd-test/articleshow/122072245.cms |title = |author = |pub = |date = |archiveurl = }} 2imihownatbkotluliq2q0gqnzg58gw Page111 0 165753 664292 655758 2025-06-25T20:51:26Z KGraessle-WMF 61195 664292 wikitext text/x-wiki Testing Testing 1j83x69morb579190ru3bz75iyepc6g 664293 664292 2025-06-25T20:51:50Z KGraessle-WMF 61195 664293 wikitext text/x-wiki Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing 9sfdgcdayamonok8egu1l9q1h141hf0 Usuario discusión:~2025-64179 0 166474 664304 660804 2025-06-25T23:12:13Z Nacaru 54746 Añadiendo plantilla de borrado mediante [[WP:Twinkle Lite|Twinkle Lite]] 664304 wikitext text/x-wiki {{destruir|g4}} {{sust:aviso prueba3|1=ggggh}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:21, 5 June 2025 (UTC) == CPP == Hola. Te informo de que he creado una denuncia —por la razón mencionada en el título— que te concierne. Puedes consultarla en el tablón correspondiente a través de '''[[Wikipedia:Tablón_de_anuncios_de_los_bibliotecarios/Portal/Archivo/Nombres_inapropiados_y_vandalismo_persistente/Actual#CPP_10|este enlace]]'''. Un [[WP:B|bibliotecario]] se encargará de analizar el caso y emitirá una resolución al respecto próximamente. Un saludo. [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:22, 5 June 2025 (UTC) {{sust:aviso categorizar|Govьno}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:24, 5 June 2025 (UTC) fj61e8ulyt9wgd4pu3q5c3s0qvvot52 664305 664304 2025-06-25T23:12:28Z Nacaru 54746 Añadiendo plantilla de borrado mediante [[WP:Twinkle Lite|Twinkle Lite]] 664305 wikitext text/x-wiki {{destruir|g6}} <!-- Contenido oculto por posibles violaciones de derechos de autor {{destruir|g4}} {{sust:aviso prueba3|1=ggggh}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:21, 5 June 2025 (UTC) == CPP == Hola. Te informo de que he creado una denuncia —por la razón mencionada en el título— que te concierne. Puedes consultarla en el tablón correspondiente a través de '''[[Wikipedia:Tablón_de_anuncios_de_los_bibliotecarios/Portal/Archivo/Nombres_inapropiados_y_vandalismo_persistente/Actual#CPP_10|este enlace]]'''. Un [[WP:B|bibliotecario]] se encargará de analizar el caso y emitirá una resolución al respecto próximamente. Un saludo. [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:22, 5 June 2025 (UTC) {{sust:aviso categorizar|Govьno}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:24, 5 June 2025 (UTC) --> kh2pqtmgmhnml0y4ikjcvf86nwh8dqj User:TenWhile6/X.js 2 166680 664285 664210 2025-06-25T20:10:23Z TenWhile6 51225 664285 javascript text/javascript //<nowiki> DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', //'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1', 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, // GS-Opted-Out Wikis -- Status: 2025-05-09 /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', // !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', // !NO REGEX! 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', // !NO REGEX! 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', // no report page - using most viewed "forum" page 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', // no report page - using most viewed "forum" page 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, // !NO REGEX! 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, // !NO REGEX! 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', // no report page - using Wikipedia:Forum/Help page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, // stewards can edit 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, // wikimedia-wiki 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, //'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig //}, }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, P: { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', // !NO REGEX! 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, // wikimedia-wiki 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', //'page': 'Wikipedia:Village pump', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', // !NO REGEX! 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', // !NO REGEX! 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', P: { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } // report users function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);hideInput.setDisabled(true);hideInput.setSelected(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);hideInput.setDisabled(false);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); //var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', disabled: GSR ? true : ('page' in WikiData[DB] ? true : false), selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}), ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); // 1 to 7 let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; // 5, 10, 15, 20, 25 startDay = lastDay - 4; // 1, 6, 11, 16, 21 } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); // 28-31 startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } // report pages function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', required: true, rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } // (speedy) deletions function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), //typeInputField, gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } // portlet links var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } //</nowiki> 6k03ukcl07p0huibvipmmtdn6kvnj65 664286 664285 2025-06-25T20:13:05Z TenWhile6 51225 664286 javascript text/javascript //<nowiki> DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', //'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1', 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, // GS-Opted-Out Wikis -- Status: 2025-05-09 /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', // !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', // !NO REGEX! 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', // !NO REGEX! 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', // no report page - using most viewed "forum" page 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', // no report page - using most viewed "forum" page 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, // !NO REGEX! 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, // !NO REGEX! 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', // no report page - using Wikipedia:Forum/Help page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, // stewards can edit 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, // wikimedia-wiki 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, //'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig //}, }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, P: { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', // !NO REGEX! 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, // wikimedia-wiki 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', //'page': 'Wikipedia:Village pump', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', // !NO REGEX! 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', // !NO REGEX! 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', P: { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } // report users function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); //var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); // 1 to 7 let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; // 5, 10, 15, 20, 25 startDay = lastDay - 4; // 1, 6, 11, 16, 21 } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); // 28-31 startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(false); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } // report pages function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', required: true, rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } // (speedy) deletions function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), //typeInputField, gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } // portlet links var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } //</nowiki> gw8md1az025fzpbga3ot4uv7sav9lji 664287 664286 2025-06-25T20:15:36Z TenWhile6 51225 664287 javascript text/javascript //<nowiki> DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', //'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1', 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, // GS-Opted-Out Wikis -- Status: 2025-05-09 /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', // !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', // !NO REGEX! 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', // !NO REGEX! 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', // no report page - using most viewed "forum" page 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', // no report page - using most viewed "forum" page 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, // !NO REGEX! 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, // !NO REGEX! 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', // no report page - using Wikipedia:Forum/Help page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, // stewards can edit 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, // wikimedia-wiki 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, //'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig //}, }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, P: { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', // !NO REGEX! 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, // wikimedia-wiki 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', //'page': 'Wikipedia:Village pump', // no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', // !NO REGEX! 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', // !NO REGEX! 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', P: { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } // report users function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); //var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); // 1 to 7 let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; // 5, 10, 15, 20, 25 startDay = lastDay - 4; // 1, 6, 11, 16, 21 } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); // 28-31 startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(false); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } // report pages function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } // (speedy) deletions function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), //new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}), ] }), //typeInputField, gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), //$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element) ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } // portlet links var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } //</nowiki> 1jv71eg38mjdp9v8ekvlxbhu8d590u0 664288 664287 2025-06-25T20:30:11Z TenWhile6 51225 664288 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, P: { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', P: { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(false); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ 8fe6vgu4nqd32ir2lexykao17targaz 664289 664288 2025-06-25T20:35:01Z TenWhile6 51225 664289 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, P: { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', P: { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(false); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ n4315wr49hbr7o2i3sxcgoa4qm94rx8 664290 664289 2025-06-25T20:35:43Z TenWhile6 51225 664290 javascript text/javascript DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 (25.06.2025) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, 'rtext': '* {{לחסום|$1}} – $2 --[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, 'rtext': '* {{לחסום|$1}} – $2 --[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:TenWhile6|TenWhile6]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' 25. June 2025. u 20:35\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 == <!--{{Respondido|feito/negado/em observação|texto= --> {{usuário3|$1}} $2<br/> <small>Declaro que conheço a atual [[Wikipedia:política de bloqueio|política de bloqueio]] e faço esta solicitação de boa-fé.</small> [[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC) <!--:{{subst:Feito/Negado/Em observação}} por tempo indeterminado. ~~~~}}--> ', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, P: { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', P: { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), }).on('click', function() {multiuserField.toggle(false);hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)/g, '$1').replace(/(.*)[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; startDay = lastDay - 4; } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(false); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)/g, '$1').replace(/(.*)[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)/g, '$1').replace(/(.*)[[User:TenWhile6|TenWhile6]] 20:35, 25 June 2025 (UTC)/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), ] }), gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } ph4recaguhrj9jkfmmd3aoatn4zx0my 664291 664290 2025-06-25T20:36:27Z TenWhile6 51225 664291 javascript text/javascript //<nowiki> DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, P: { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', P: { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), }).on('click', function() {multiuserField.toggle(false);hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; startDay = lastDay - 4; } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(false); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), ] }), gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } //</nowiki> hm7kd4fk79leo66l6twh921hph2bokb 664295 664291 2025-06-25T21:08:48Z TenWhile6 51225 664295 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: 'Ergänze weitere Benutzer', } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ 5rzlenlxemejll1gygt6m6bosxvrci7 664296 664295 2025-06-25T21:23:21Z TenWhile6 51225 664296 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ 79xds1wj5fwkt3veigqou0oyd9wkh64 664324 664296 2025-06-26T07:32:22Z TenWhile6 51225 664324 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ console.log(regex); console.log(data.query.pages[0].revisions[0].slots.main.content); if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ 3bwm019k4o8y75totz0l0q10y10bazu 664325 664324 2025-06-26T07:37:09Z TenWhile6 51225 664325 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ console.log(regex); console.log(data.query.pages[0].revisions[0].slots.main.content); if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ var portletLink = mw.util.addPortletLink( blocation, '#', trnslt('title'), 'ca-reportuser', trnslt('description'), null, '#ca-reportuser' ); $(portletLink).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { var pagePortletLink = mw.util.addPortletLink( blocation, '#', trnslt('Ptitle'), 'ca-reportpage', trnslt('Pdescription'), null, '#ca-reportpage' ); $(pagePortletLink).click(function(e){ e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ var QDportletLink = mw.util.addPortletLink( blocation, '#', trnslt('SDtitle'), 'ca-quickdeletion', trnslt('SDdescription'), null, '#ca-quickdeletion' ); $(QDportletLink).click(function(e){ e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ 1nj4bcdfvm1ju9khtp3cqivcu39updk 664326 664325 2025-06-26T07:47:34Z TenWhile6 51225 664326 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ nhzkd9r9m8p2peqxrrd3osht8jusspk 664327 664326 2025-06-26T08:31:20Z TenWhile6 51225 664327 javascript text/javascript /*<nowiki>*/ const DB = mw.config.get('wgDBname'); const namespace = mw.config.get('wgNamespaceNumber'); const Xv = 'v3.0'; const Xn = 'XReport'; const XReport = `${Xn} ${Xv}`; const XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; const XLinkS = `<small>${XLink}</small>`; const XLinkK = `(${XLink} ${Xv})`; const signature = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translateinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); const monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; const monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; const curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); const RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; const RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); const LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); var docs = {framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')}; var feedback = {framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport')}; function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+signature, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+signature, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+signature, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+signature+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+signature, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+signature, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+signature+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+signature, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+signature, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+signature+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+signature, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+signature, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+signature, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+signature, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+signature, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+signature, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+signature, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+signature, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+signature, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+signature, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+signature, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+signature, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+signature, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+signature, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+signature, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+signature, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+signature, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+signature, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+signature, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+signature, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+signature, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+signature, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+signature, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+signature, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+signature, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+signature, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+signature, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+signature, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+signature, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+signature, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+signature, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translateinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({docs}), new OO.ui.ButtonWidget({feedback}), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translateinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({docs}), new OO.ui.ButtonWidget({feedback}), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translateinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({docs}), new OO.ui.ButtonWidget({feedback}), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ pfmra6hzjtg2h88qsi9qmezowcapwym 664328 664327 2025-06-26T08:47:31Z TenWhile6 51225 664328 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; signature = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translateinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); var docs = {framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')}; var feedback = {framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport')}; function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+signature, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+signature, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+signature, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+signature+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+signature, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+signature, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+signature+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+signature, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+signature, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+signature+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+signature, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+signature, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+signature, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+signature, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+signature, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+signature, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+signature, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+signature, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+signature, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+signature, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+signature, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+signature, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+signature, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+signature, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+signature, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+signature, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+signature, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+signature, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+signature, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+signature, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+signature, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+signature, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+signature, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+signature, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+signature, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+signature, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+signature, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+signature, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+signature, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+signature, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+signature, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+signature, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+signature, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+signature, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+signature, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translateinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({docs}), new OO.ui.ButtonWidget({feedback}), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translateinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({docs}), new OO.ui.ButtonWidget({feedback}), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translateinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({docs}), new OO.ui.ButtonWidget({feedback}), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ j0jgmyoafmzr5qo4zx6wyy1ul5mo93w 664329 664328 2025-06-26T08:47:48Z TenWhile6 51225 664329 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ nhzkd9r9m8p2peqxrrd3osht8jusspk 664330 664329 2025-06-26T08:49:23Z TenWhile6 51225 664330 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /*</nowiki>*/ osprg4sjt921n6myizohvuykvf7bkqd 664335 664330 2025-06-26T08:58:56Z TenWhile6 51225 664335 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); var LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; window.LangData = LangData; // allow global access var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /*</nowiki>*/ jhh6dk51kk6mwewf65qv06rm00sisvp 664338 664335 2025-06-26T09:03:00Z TenWhile6 51225 664338 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /*</nowiki>*/ 40ctscf5b7jf0x44i8ozsr8qgt9hjb1 664341 664338 2025-06-26T09:04:50Z TenWhile6 51225 664341 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); XReport.LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (XReport.LangData[LLang][key]) { return LangData[LLang][key]; } return XReport.LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /*</nowiki>*/ 53ja1q2zanzwdk81xcnxncb1bfytm04 664343 664341 2025-06-26T09:06:53Z TenWhile6 51225 664343 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ nhzkd9r9m8p2peqxrrd3osht8jusspk 664344 664343 2025-06-26T09:07:18Z TenWhile6 51225 664344 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ function XReportMain() { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } } /*</nowiki>*/ 8rnbpokv8rpko3smci60fkxzcd64h6z 664349 664344 2025-06-26T09:18:52Z TenWhile6 51225 664349 javascript text/javascript /*<nowiki>*/ alert(XReport.v); DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; //XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } /*</nowiki>*/ 7523adkiic7mhhlk7c9sd117wykxhwh 664353 664349 2025-06-26T09:30:30Z TenWhile6 51225 664353 javascript text/javascript /*<nowiki>*/ alert(XReport.v); DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ if (XReportConfig) { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } } /*</nowiki>*/ om840gmuovavf1rlk6voyg32zpebrbg 664354 664353 2025-06-26T09:30:50Z TenWhile6 51225 664354 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ if (XReportConfig) { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } } /*</nowiki>*/ 9mtt7zl22fpdzz2fyejfmeltlt6hjc3 664356 664354 2025-06-26T09:32:01Z TenWhile6 51225 664356 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ if (XReportConfig == 'v') { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } XReportConfig = 'x'; } /*</nowiki>*/ i7rr3aboht7p42kxjse60efa279ytr1 664358 664356 2025-06-26T09:33:49Z TenWhile6 51225 664358 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ if (XReportConfig) { if (XReportConfig == 'v') { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } XReportConfig = 'x'; } } /*</nowiki>*/ 6v8dofat9f7xl0djkabcyopkx6sy1g1 664359 664358 2025-06-26T09:36:18Z TenWhile6 51225 664359 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ if (typeof XReportConfig) { if (XReportConfig == 'v') { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } XReportConfig = 'x'; } } /*</nowiki>*/ lc3zmiwvcpv9w27otln4q49pcm9cfj7 664360 664359 2025-06-26T09:37:32Z TenWhile6 51225 664360 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); namespace = mw.config.get('wgNamespaceNumber'); Xv = 'v3.0'; Xn = 'XReport'; XReport = `${Xn} ${Xv}`; XLink = '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]'; XLinkS = `<small>${XLink}</small>`; XLinkK = `(${XLink} ${Xv})`; sig = ' --~~~~'; pSummary = 'Reporting: Page [[$1]] '+XLinkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XLinkK; dSummary = 'Requesting deletion ' + XLinkK; translatetheuserinterface = 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!'; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; api = new mw.Api({userAgent: `${Xn}/${Xv}`}); today = new Date(); monthsFr = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; monthsDe = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']; curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); RelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; Server = mw.config.get('wgServer').replace(/^(https?)?:?\/\//, '').split('.'); iwPrefix = null; iwPrefix = Server[1] == 'mediawiki' ? 'mw' : iwPrefix; iwPrefix = Server[1] == 'wiktionary' ? 'wikt:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikiquote' ? 'q:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikinews' ? 'n:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikibooks' ? 'b:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikisource' ? 's:' + Server[0]: iwPrefix; iwPrefix = Server[1] == 'wikivoyage' ? 'voy:' + Server[0] : iwPrefix; iwPrefix = Server[1] == 'wikifunctions' ? 'f:' : iwPrefix; if (Server[1] == 'wikidata') { iwPrefix = Server[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Server[0] == 'www' ? 'd' : iwPrefix; } else if (Server[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Server[0]) ? Server[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Server[0] : iwPrefix; } else if (Server[1] == 'wikiversity') { iwPrefix = Server[0] == 'beta' ? Server[0] + Server[1] : 'v:' + Server[0]; } else if (Server[1] == 'wikimedia') { iwPrefix = Server[0].length <= 3 ? 'wm'+Server[0] : Server[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport,autoHide: false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); mwh = '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>'; metaapi = mw.config.get('wgDBname') == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${Xn}/${Xv}`}); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XLinkS+sig, 'summary': 'Reporting user '+XLinkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XLinkS+sig } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XLinkS+sig } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XLinkS+sig+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XLinkS+sig }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XLinkS+sig, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XLinkS+sig+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XLinkS+sig, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XLinkS+sig+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+sig, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')' }, 'RD': { 'page': `${today.getDay()}. ${monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XLinkS+sig, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XLinkS+sig }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XLinkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XLinkS+sig, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XLink+']</small> Message déposé par'+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XLinkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XLinkS+sig, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XLinkS+sig }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XLinkS+sig, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XLinkS+sig, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XLinkS+sig, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XLinkS+sig }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XLinkS+sig }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XLinkS+sig, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XLinkS+sig /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XLinkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XLinkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XLinkS+sig, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XLinkS+sig, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XLinkS+sig, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XLinkS+sig, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XLinkS+sig, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XLinkS+sig, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XLinkS+sig, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'User:TenWhile6/X', /*'page': 'Wikipedia:Village pump', no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XLinkS+sig, 'sectionname': 'Report concerning $1', 'P': { 'page': 'User:TenWhile6/X', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+ Xv+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+sig, 'sectionname': 'Seite $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XLinkS+sig, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XLinkS+sig, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XLinkS+sig, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XLinkS+sig, 'sectionname': '$1', }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XLinkS+sig, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XLinkS+sig, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XLinkS+sig, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XLinkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XLinkS+sig, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XLinkS+sig, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XLinkS+'\n* 发现人:'+sig, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': 'This wiki is currently not enabled for local reporting.'}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: (lang == 'de' ? 'Ergänze weitere Benutzer' : 'Add multiple users'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : mw.config.get('wgServer'))}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XLinkS+sig; uSummary = 'Reporting multiple users '+XLinkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XLinkS} ${sig}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${mw.config.get('wgServer')}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),}); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(translatetheuserinterface)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder: lang == 'de' ? 'Benutzerdefinierte Begründung (optional)' : '', autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 5000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + sig : XLink}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'] ,icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget({framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')} ), new OO.ui.ButtonWidget({framed: false,icon: /*'speechBubble'*/'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ), /*new OO.ui.ButtonWidget({framed: false,icon: 'settings',label: trnslt('settings'),disabled:true} ).on("click", function() {self.switchTo('settings')}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget({framed: false,disabled:true,icon: 'share',label: 'Feedback', href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport'),} ); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* portlet links */ if (typeof XReportConfig !== 'undefined') { if (XReportConfig == 'v') { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } XReportConfig = 'x'; } } /*</nowiki>*/ 0yg7jei90sxwjka1rwza4014mpasqcn User:Asked42/AddSourceEN.js 2 166766 664272 664009 2025-06-25T15:14:03Z Asked42 58528 664272 javascript text/javascript // Wait for necessary dependencies mw.loader.using(['mediawiki.api', 'oojs-ui', 'oojs-ui-windows']).then(function() { window.quickSourceUtils = window.quickSourceUtils || {}; // Initialize empty publisher dataset - will be populated from Lua module quickSourceUtils.publisherDataset = {}; // Load publisher dataset from the Lua module quickSourceUtils.loadPublisherDataset = function() { return new Promise(function(resolve, reject) { var api = new mw.Api(); api.get({ action: 'parse', format: 'json', text: '{{#invoke:Sandbox/Asked42|getJSON}}', contentmodel: 'wikitext', prop: 'text' }).done(function(data) { try { if (data && data.parse && data.parse.text && data.parse.text['*']) { const htmlContent = data.parse.text['*']; const jsonMatch = htmlContent.match(/{.+}/); if (jsonMatch) { const jsonStr = jsonMatch[0]; quickSourceUtils.publisherDataset = JSON.parse(jsonStr); console.log('Publisher dataset loaded from Lua module'); resolve(quickSourceUtils.publisherDataset); } else { console.error('Could not extract JSON from module output'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } else { console.error('Invalid response from API when loading publisher dataset'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } catch (e) { console.error('Error parsing publisher dataset:', e); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } }).fail(function(xhr, status, error) { console.error('Failed to load publisher dataset from Lua module:', error); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); }); }); }; // Fallback function to use hardcoded values if module loading fails quickSourceUtils.initializeDefaultPublisherDataset = function() { console.log('Using default hardcoded publisher dataset'); quickSourceUtils.publisherDataset = { "www.apnews.com": "Associated Press" }; }; // Date Formatter utility quickSourceUtils.DateFormatter = { monthNames: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], formatStandardDate: function(dateStr) { try { const date = new Date(dateStr); const day = date.getDate(); const month = date.getMonth(); const year = date.getFullYear(); // Format as: Month day, Year return `${this.monthNames[month]} ${day}, ${year}`; } catch (e) { console.error('Error formatting date:', e); return dateStr; } }, // Format date - returns standard format formatDate: function(dateStr) { if (!dateStr) return ''; try { const date = new Date(dateStr); return this.formatStandardDate(date); } catch (e) { return dateStr; } } }; /** * URL Domain Manager * Handles URL parsing and domain extraction/matching */ quickSourceUtils.DomainManager = { // Extract domain from URL extractDomain: function(url) { try { const urlObj = new URL(url); return urlObj.hostname; } catch (e) { console.error('Error extracting domain:', e); return null; } }, // Check if domain exists in dataset and return publisher if found getPublisherFromDataset: function(url) { const domain = this.extractDomain(url); if (domain && quickSourceUtils.publisherDataset[domain]) { return quickSourceUtils.publisherDataset[domain]; } return null; } }; /** * Quick Source Data Manager * Core functionality for fetching and processing citation data */ quickSourceUtils.SourceManager = { // Function to get publisher name with fallbacks getPublisherWithFallbacks: function(citation) { return citation.publicationTitle || citation.websiteTitle || citation.blogTitle || citation.encyclopediaTitle || citation.forumTitle || citation.reporterTitle || citation.magazineTitle || citation.newspaperTitle || citation.university || citation.publisher || ''; }, // Fetch citation data from URL fetchSourceData: function(url, options = {}) { return new Promise((resolve, reject) => { if (!url) { reject(new Error('Please enter a URL')); return; } // Check if the URL's domain matches our dataset const datasetPublisher = quickSourceUtils.DomainManager.getPublisherFromDataset(url); // Prepare the URL for the API // Add the web2cit.toolforge.org prefix to the target URL const prefixedUrl = 'https://web2cit.toolforge.org/' + url; const encodedUrl = encodeURIComponent(prefixedUrl); const apiUrl = `https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${encodedUrl}`; // Fetch data from the citation API $.ajax({ url: apiUrl, dataType: 'json', success: function(data) { if (data && data.length > 0) { const citation = data[0]; // Determine publisher value - use dataset value if available, otherwise use API data const publisherValue = datasetPublisher || quickSourceUtils.SourceManager.getPublisherWithFallbacks(citation); // Process citation data const processedData = { url: url, title: citation.title || '', author: citation.author || '', date: quickSourceUtils.DateFormatter.formatDate(citation.date), publisher: publisherValue, archive_url: citation.archive_url || '' }; resolve({ success: true, data: processedData, usedDataset: !!datasetPublisher // Flag to indicate if dataset was used }); } else { reject(new Error('No citation data found for this URL')); } }, error: function() { // If API fails but we have a publisher in our dataset, return minimal data if (datasetPublisher) { resolve({ success: true, data: { url: url, title: '', author: '', date: '', publisher: datasetPublisher, archive_url: '' }, usedDataset: true }); } else { reject(new Error('Error fetching citation data')); } } }); }); } }; /** * UI Utilities * For creating common UI elements and handling interactions */ quickSourceUtils.ui = { NOTIFICATION_TIMEOUT: 3000, showNotification: function(message, type = 'notice', timeout = this.NOTIFICATION_TIMEOUT) { mw.notify(message, { type: type, timeout: timeout }); }, createCommonInputFields: function(options = {}) { return { urlInput: new OO.ui.TextInputWidget({ placeholder: 'https://example.com/', value: '' }), titleInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Article title' }), authorInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Author name' }), publisherInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Publisher name' }), dateInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Month day, Year' }), archiveUrlInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'https://web.archive.org/web/...' }) }; }, createPublisherDateRow: function(publisherInput, dateInput) { const publisherLayout = new OO.ui.FieldLayout(publisherInput, { label: 'Publisher:', align: 'top' }); const dateLayout = new OO.ui.FieldLayout(dateInput, { label: 'Publication Date:', align: 'top' }); const rowLayout = new OO.ui.HorizontalLayout({ items: [publisherLayout, dateLayout] }); // Add some spacing between the fields publisherLayout.$element.css({ 'margin-right': '15px', 'flex': '1' }); dateLayout.$element.css({ 'flex': '1' }); rowLayout.$element.css({ 'display': 'flex', 'gap': '15px' }); return rowLayout; }, createWaybackSection: function(urlInputValueGetter, archiveUrlInputWidget, options = {}) { const waybackButton = new OO.ui.ButtonWidget({ label: 'Wayback Machine', icon: 'link', framed: true }); const helpIconWidget = new OO.ui.ButtonWidget({ icon: 'help', framed: false, title: 'Help' }); const waybackButtonGroup = new OO.ui.HorizontalLayout({ items: [waybackButton, helpIconWidget] }); waybackButtonGroup.$element.css({ 'display': 'flex', 'align-items': 'center', 'margin-bottom': '10px' }); waybackButton.$element.css({ 'margin-right': '10px' }); helpIconWidget.$element.css({ 'opacity': '0.7' }).hover( function() { $(this).css('opacity', '1'); }, function() { $(this).css('opacity', '0.7'); } ); const helpPopup = new OO.ui.PopupWidget({ $content: $('<div>') .css({ 'padding': '12px', 'max-width': '300px', 'word-wrap': 'break-word', 'font-size': '14px', 'line-height': '1.5', }) .text('Clicking the Wayback Machine button will open a new page where you can create an archive URL. Copy that archive URL and paste it in the field below.'), padded: true, width: 300, autoClose: true, autoFlip: true }); helpPopup.$element.appendTo(waybackButtonGroup.$element); helpIconWidget.on('click', function() { helpPopup.toggle(); }); waybackButton.on('click', function() { const waybackUrl = 'https://web.archive.org/save/'; const currentUrl = typeof urlInputValueGetter === 'function' ? urlInputValueGetter() : ''; window.open(waybackUrl + encodeURIComponent(currentUrl || ''), '_blank'); }); const archiveLayout = new OO.ui.FieldLayout(archiveUrlInputWidget, { label: 'Archive URL:', align: 'top' }); const waybackFieldset = new OO.ui.FieldsetLayout({ classes: ['wayback-section'] }); waybackFieldset.addItems([waybackButtonGroup, archiveLayout]); return waybackFieldset; }, createCollapsibleParameterSection: function(fieldLayouts, options, dialogInstance, windowManager) { const { label = 'Source Data', initialCollapsed = true } = options; const parameterFieldset = new OO.ui.FieldsetLayout({ label: label, icon: initialCollapsed ? 'expand' : 'collapse', classes: ['parameter-collapsible'], collapsed: initialCollapsed }); parameterFieldset.isCollapsed = initialCollapsed; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').css({ 'cursor': 'pointer', 'background-color': '#f0f0f0', 'padding': '8px 12px', 'margin-top': '12px', 'margin-bottom': '8px', 'border': '1px solid #c8ccd1', 'font-weight': 'bold', 'display': 'flex', 'align-items': 'center', 'justify-content': 'flex-start' }); parameterFieldset.$element.find('.oo-ui-iconElement-icon').css({ 'position': 'relative', 'top': '0', 'margin-top': '0' }); parameterFieldset.$element.css({ 'margin-top': '15px' }); const $group = parameterFieldset.$group; if (initialCollapsed) { $group.hide(); } parameterFieldset.toggleCollapse = function() { this.isCollapsed = !this.isCollapsed; if (this.isCollapsed) { $group.hide(); this.setIcon('expand'); } else { $group.show(); this.setIcon('collapse'); } if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } }; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').on('click', function() { parameterFieldset.toggleCollapse(); }); parameterFieldset.addItems(fieldLayouts); parameterFieldset.$element.find('.oo-ui-fieldsetLayout-group').css({ 'padding': '5px 0' }); return parameterFieldset; }, handleFetchButtonAction: async function(urlInputWidget, uiElements, options) { const { fetchButtonWidget, progressBarWidget, notificationCallback, inputFields, parameterFieldset, dialogInstance, windowManager } = uiElements; const sourceUrl = urlInputWidget.getValue(); if (!sourceUrl) { if (typeof notificationCallback === 'function') { notificationCallback('Please enter a URL.', 'warning', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Please enter a URL.', 'warning'); } return; } fetchButtonWidget.setDisabled(true); fetchButtonWidget.setLabel('Loading...'); if(progressBarWidget) progressBarWidget.$element.show(); try { if (!quickSourceUtils.SourceManager) { const errorMsg = 'Error: quickSourceUtils.SourceManager is not available.'; if (typeof notificationCallback === 'function') notificationCallback(errorMsg, 'error'); else quickSourceUtils.ui.showNotification(errorMsg, 'error'); throw new Error(errorMsg); } const result = await quickSourceUtils.SourceManager.fetchSourceData(sourceUrl); if (result.success && result.data) { const fetchedData = result.data; inputFields.titleInput.setValue(fetchedData.title || ''); inputFields.authorInput.setValue(fetchedData.author || ''); inputFields.dateInput.setValue(fetchedData.date || ''); inputFields.publisherInput.setValue(fetchedData.publisher || ''); if(inputFields.archiveUrlInput) inputFields.archiveUrlInput.setValue(fetchedData.archive_url || ''); if (typeof notificationCallback === 'function') { notificationCallback('Source data fetched successfully.', 'success', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Source data fetched successfully.', 'success'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } else { throw new Error(result.message || 'No data returned from fetchSourceData.'); } } catch (error) { console.error('Error fetching source data in handleFetchButtonAction:', error); const errorMsg = 'Sorry, we could not fetch the data. Please enter manually.'; if (typeof notificationCallback === 'function') { notificationCallback(errorMsg, 'error', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification(errorMsg, 'error'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } finally { fetchButtonWidget.setDisabled(false); fetchButtonWidget.setLabel('Fetch'); if(progressBarWidget) progressBarWidget.$element.hide(); } } }; /** * Data Utilities * For handling data transformation and mappings */ quickSourceUtils.data = { templateParamMapping: { 'url': 'url', 'title': 'title', 'date': 'date', 'publisher': 'pub', 'archive_url': 'archiveurl', 'author': 'author' }, gatherSourceDataFromInputs: function(inputFields, useStandardKeys = true) { const sourceData = { url: inputFields.urlInput.getValue(), title: inputFields.titleInput.getValue(), author: inputFields.authorInput.getValue(), date: inputFields.dateInput.getValue(), publisher: inputFields.publisherInput.getValue(), archive_url: inputFields.archiveUrlInput ? inputFields.archiveUrlInput.getValue() : '' }; if (useStandardKeys) { const standardData = {}; for (const key in sourceData) { if (this.templateParamMapping[key]) { standardData[this.templateParamMapping[key]] = sourceData[key]; } else { standardData[key] = sourceData[key]; } } return standardData; } return sourceData; } }; // Load the publisher dataset from the Lua module first, then continue initialization quickSourceUtils.loadPublisherDataset().then(function() { mw.hook('quickSourceUtils.loaded').fire(); }).catch(function(error) { console.error('Error during initialization:', error); mw.hook('quickSourceUtils.loaded').fire(); }); }); /** * Source Editor Tool Script * * This script adds a source button to the wiki editor toolbar for source mode editing. * It allows users to add citation sources with auto-fetching of data from URLs. */ mw.loader.using(['mediawiki.api', 'mediawiki.util', 'oojs-ui', 'oojs-ui-windows', 'ext.wikiEditor'], function() { // Check if we're in a content namespace AND in edit or submit action const relevantNamespaces = mw.config.get('wgNamespaceIds') ? [mw.config.get('wgNamespaceIds')[''], 2] : [0, 2]; if (relevantNamespaces.includes(mw.config.get('wgNamespaceNumber')) && ['edit', 'submit'].includes(mw.config.get('wgAction'))) { const quickSourceEditor = window.quickSourceEditor || {}; window.quickSourceEditor = quickSourceEditor; quickSourceEditor.api = new mw.Api(); const TemplateManager = { wrap(params = {}) { const paramString = Object.entries(params) .filter(([_, value]) => value && value.toString().trim() !== '') .map(([key, value]) => `\n| ${key} = ${value}`) .join(''); return `* {{source${paramString}\n}}`; } }; const ContentManager = { addSourceToSection(content, sourceTemplate) { const sourceSectionRegex = /(==\s*Sources\s*==\s*\n)/i; const sourceSectionMatch = content.match(sourceSectionRegex); if (sourceSectionMatch) { const insertionPoint = sourceSectionMatch.index + sourceSectionMatch[0].length; return content.substring(0, insertionPoint) + sourceTemplate + '\n' + content.substring(insertionPoint); } else { const categoryPattern = /\[\[Category:.+?\]\]/gi; const categoryMatch = content.match(categoryPattern); if (categoryMatch) { const firstCategoryPos = content.search(categoryPattern); return content.substring(0, firstCategoryPos) + '\n== Sources ==\n' + sourceTemplate + '\n\n' + content.substring(firstCategoryPos); } else { return content + '\n\n== Sources ==\n' + sourceTemplate + '\n'; } } } }; const UIManager = { createSourceDialog($textarea) { const windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); function SourceDialog(config) { SourceDialog.super.call(this, config); } OO.inheritClass(SourceDialog, OO.ui.ProcessDialog); SourceDialog.static.name = 'sourceDialog'; SourceDialog.static.title = 'Add Source'; SourceDialog.static.actions = [ { action: 'save', label: 'Save', flags: ['primary', 'progressive'] }, { action: 'cancel', label: 'Cancel', flags: 'safe' } ]; SourceDialog.prototype.initialize = function() { SourceDialog.super.prototype.initialize.apply(this, arguments); this.mainPanelLayout = new OO.ui.PanelLayout({ padded: true, expanded: false }); this.commonInputs = quickSourceUtils.ui.createCommonInputFields(); this.fetchDataButtonWidget = new OO.ui.ButtonWidget({ label: 'Fetch', flags: ['progressive'], icon: 'download' }); this.loadingProgressBarWidget = new OO.ui.ProgressBarWidget({ progress: false }); this.loadingProgressBarWidget.$element.hide(); // Create URL input with fetch button const urlActionLayout = new OO.ui.ActionFieldLayout( this.commonInputs.urlInput, this.fetchDataButtonWidget, { label: 'Enter a URL:', align: 'top' } ); // Parameter fields layouts const titleLayout = new OO.ui.FieldLayout(this.commonInputs.titleInput, { label: 'Title:', align: 'top' }); const authorLayout = new OO.ui.FieldLayout(this.commonInputs.authorInput, { label: 'Author:', align: 'top' }); // Create publisher and date row using the utility function const publisherDateRow = quickSourceUtils.ui.createPublisherDateRow( this.commonInputs.publisherInput, this.commonInputs.dateInput ); this.waybackSection = quickSourceUtils.ui.createWaybackSection( () => this.commonInputs.urlInput.getValue(), this.commonInputs.archiveUrlInput ); const parameterFieldLayouts = [ titleLayout, authorLayout, publisherDateRow, this.waybackSection ]; this.parameterFieldset = quickSourceUtils.ui.createCollapsibleParameterSection( parameterFieldLayouts, { label: 'Source Data', initialCollapsed: true }, this, null ); this.mainPanelLayout.$element.append( urlActionLayout.$element, this.loadingProgressBarWidget.$element, this.parameterFieldset.$element ); this.$body.append(this.mainPanelLayout.$element); this.fetchDataButtonWidget.connect(this, { click: 'onFetchDataButtonClick' }); }; SourceDialog.prototype.onFetchDataButtonClick = function() { const currentDialog = this; quickSourceUtils.ui.handleFetchButtonAction( currentDialog.commonInputs.urlInput, { fetchButtonWidget: currentDialog.fetchDataButtonWidget, progressBarWidget: currentDialog.loadingProgressBarWidget, notificationCallback: function(message, type, timeout) { quickSourceUtils.ui.showNotification(message, type, timeout); }, inputFields: currentDialog.commonInputs, parameterFieldset: currentDialog.parameterFieldset, dialogInstance: currentDialog, windowManager: null } ); }; SourceDialog.prototype.updateSize = function() { windowManager.updateWindowSize(this); }; SourceDialog.prototype.getActionProcess = function(action) { const currentDialog = this; if (action === 'save') { return new OO.ui.Process(function() { const sourceData = quickSourceUtils.data.gatherSourceDataFromInputs(currentDialog.commonInputs, true); quickSourceEditor.insertSource($textarea, sourceData); currentDialog.close({ action: action }); }); } else if (action === 'cancel') { return new OO.ui.Process(function() { currentDialog.close({ action: action }); }); } return SourceDialog.super.prototype.getActionProcess.call(this, action); }; windowManager.addWindows([new SourceDialog()]); windowManager.openWindow('sourceDialog'); } }; quickSourceEditor.insertSource = function($textarea, sourceData) { const sourceTemplate = TemplateManager.wrap(sourceData); const currentText = $textarea.val(); const newText = ContentManager.addSourceToSection(currentText, sourceTemplate); $textarea.val(newText); quickSourceUtils.ui.showNotification('Source template added successfully', 'success'); }; // Hook handler for when the wikiEditor toolbar is ready mw.hook('wikiEditor.toolbarReady').add(function($textarea) { $textarea.wikiEditor('addToToolbar', { section: 'main', groups: { 'source': { tools: { 'add-source': { type: 'element', element: function() { var button = new OO.ui.ButtonInputWidget({ label: 'Source', icon: 'quotes', framed: false }); button.$element.css({ 'padding': '0 5px' }); button.on('click', function() { UIManager.createSourceDialog($textarea); }); return button.$element; } } } } } }); }); } }); ihzic16zxpg19lblzuke40ad95zznop 664273 664272 2025-06-25T15:42:30Z Asked42 58528 664273 javascript text/javascript // Wait for necessary dependencies mw.loader.using(['mediawiki.api', 'oojs-ui', 'oojs-ui-windows']).then(function() { window.quickSourceUtils = window.quickSourceUtils || {}; // Initialize empty publisher dataset - will be populated from Lua module quickSourceUtils.publisherDataset = {}; // Load publisher dataset from the Lua module quickSourceUtils.loadPublisherDataset = function() { return new Promise(function(resolve, reject) { var api = new mw.Api(); api.get({ action: 'parse', format: 'json', text: '{{#invoke:Sandbox/Asked42|getJSON}}', contentmodel: 'wikitext', prop: 'text' }).done(function(data) { try { if (data && data.parse && data.parse.text && data.parse.text['*']) { const htmlContent = data.parse.text['*']; const jsonMatch = htmlContent.match(/{.+}/); if (jsonMatch) { const jsonStr = jsonMatch[0]; quickSourceUtils.publisherDataset = JSON.parse(jsonStr); console.log('Publisher dataset loaded from Lua module'); resolve(quickSourceUtils.publisherDataset); } else { console.error('Could not extract JSON from module output'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } else { console.error('Invalid response from API when loading publisher dataset'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } catch (e) { console.error('Error parsing publisher dataset:', e); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } }).fail(function(xhr, status, error) { console.error('Failed to load publisher dataset from Lua module:', error); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); }); }); }; // Fallback function to use hardcoded values if module loading fails quickSourceUtils.initializeDefaultPublisherDataset = function() { console.log('Using default hardcoded publisher dataset'); quickSourceUtils.publisherDataset = { "www.apnews.com": "Associated Press" }; }; // Date Formatter utility quickSourceUtils.DateFormatter = { monthNames: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], formatStandardDate: function(dateStr) { try { const date = new Date(dateStr); const day = date.getDate(); const month = date.getMonth(); const year = date.getFullYear(); // Format as: Month day, Year return `${this.monthNames[month]} ${day}, ${year}`; } catch (e) { console.error('Error formatting date:', e); return dateStr; } }, // Format date - returns standard format formatDate: function(dateStr) { if (!dateStr) return ''; try { const date = new Date(dateStr); return this.formatStandardDate(date); } catch (e) { return dateStr; } } }; /** * URL Domain Manager * Handles URL parsing and domain extraction/matching */ quickSourceUtils.DomainManager = { // Extract domain from URL extractDomain: function(url) { try { const urlObj = new URL(url); return urlObj.hostname; } catch (e) { console.error('Error extracting domain:', e); return null; } }, // Check if domain exists in dataset and return publisher if found getPublisherFromDataset: function(url) { const domain = this.extractDomain(url); if (domain && quickSourceUtils.publisherDataset[domain]) { return quickSourceUtils.publisherDataset[domain]; } return null; } }; /** * Quick Source Data Manager * Core functionality for fetching and processing citation data */ quickSourceUtils.SourceManager = { // Function to get publisher name with fallbacks getPublisherWithFallbacks: function(citation) { return citation.publicationTitle || citation.websiteTitle || citation.blogTitle || citation.encyclopediaTitle || citation.forumTitle || citation.reporterTitle || citation.magazineTitle || citation.newspaperTitle || citation.university || citation.publisher || ''; }, // Fetch citation data from URL fetchSourceData: function(url, options = {}) { return new Promise((resolve, reject) => { if (!url) { reject(new Error('Please enter a URL')); return; } // Check if the URL's domain matches our dataset const datasetPublisher = quickSourceUtils.DomainManager.getPublisherFromDataset(url); // Prepare the URL for the API // Add the web2cit.toolforge.org prefix to the target URL const prefixedUrl = 'https://web2cit.toolforge.org/' + url; const encodedUrl = encodeURIComponent(prefixedUrl); const apiUrl = `https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${encodedUrl}`; // Fetch data from the citation API $.ajax({ url: apiUrl, dataType: 'json', success: function(data) { if (data && data.length > 0) { const citation = data[0]; // Determine publisher value - use dataset value if available, otherwise use API data const publisherValue = datasetPublisher || quickSourceUtils.SourceManager.getPublisherWithFallbacks(citation); // Process citation data const processedData = { url: url, title: citation.title || '', author: citation.author || '', date: quickSourceUtils.DateFormatter.formatDate(citation.date), publisher: publisherValue, archive_url: citation.archive_url || '' }; resolve({ success: true, data: processedData, usedDataset: !!datasetPublisher // Flag to indicate if dataset was used }); } else { reject(new Error('No citation data found for this URL')); } }, error: function() { // If API fails but we have a publisher in our dataset, return minimal data if (datasetPublisher) { resolve({ success: true, data: { url: url, title: '', author: '', date: '', publisher: datasetPublisher, archive_url: '' }, usedDataset: true }); } else { reject(new Error('Error fetching citation data')); } } }); }); } }; /** * UI Utilities * For creating common UI elements and handling interactions */ quickSourceUtils.ui = { NOTIFICATION_TIMEOUT: 3000, showNotification: function(message, type = 'notice', timeout = this.NOTIFICATION_TIMEOUT) { mw.notify(message, { type: type, timeout: timeout }); }, createCommonInputFields: function(options = {}) { return { urlInput: new OO.ui.TextInputWidget({ placeholder: 'https://example.com/', value: '' }), titleInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Article title' }), authorInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Author name' }), publisherInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Publisher name' }), dateInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Month day, Year' }), archiveUrlInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'https://web.archive.org/web/...' }) }; }, createPublisherDateRow: function(publisherInput, dateInput) { const publisherLayout = new OO.ui.FieldLayout(publisherInput, { label: 'Publisher:', align: 'top' }); const dateLayout = new OO.ui.FieldLayout(dateInput, { label: 'Publication Date:', align: 'top' }); const rowLayout = new OO.ui.HorizontalLayout({ items: [publisherLayout, dateLayout] }); // Add some spacing between the fields publisherLayout.$element.css({ 'margin-right': '15px', 'flex': '1' }); dateLayout.$element.css({ 'flex': '1' }); rowLayout.$element.css({ 'display': 'flex', 'gap': '15px' }); return rowLayout; }, createWaybackSection: function(urlInputValueGetter, archiveUrlInputWidget, options = {}) { const waybackButton = new OO.ui.ButtonWidget({ label: 'Wayback Machine', icon: 'link', framed: true }); const helpIconWidget = new OO.ui.ButtonWidget({ icon: 'help', framed: false, title: 'Help' }); const waybackButtonGroup = new OO.ui.HorizontalLayout({ items: [waybackButton, helpIconWidget] }); waybackButtonGroup.$element.css({ 'display': 'flex', 'align-items': 'center', 'margin-bottom': '10px' }); waybackButton.$element.css({ 'margin-right': '10px' }); helpIconWidget.$element.css({ 'opacity': '0.7' }).hover( function() { $(this).css('opacity', '1'); }, function() { $(this).css('opacity', '0.7'); } ); const helpPopup = new OO.ui.PopupWidget({ $content: $('<div>') .css({ 'padding': '12px', 'max-width': '300px', 'word-wrap': 'break-word', 'font-size': '14px', 'line-height': '1.5', }) .text('Clicking the Wayback Machine button will open a new page where you can create an archive URL. Copy that archive URL and paste it in the field below.'), padded: true, width: 300, autoClose: true, autoFlip: true }); helpPopup.$element.appendTo(waybackButtonGroup.$element); helpIconWidget.on('click', function() { helpPopup.toggle(); }); waybackButton.on('click', function() { const waybackUrl = 'https://web.archive.org/save/'; const currentUrl = typeof urlInputValueGetter === 'function' ? urlInputValueGetter() : ''; window.open(waybackUrl + encodeURIComponent(currentUrl || ''), '_blank'); }); const archiveLayout = new OO.ui.FieldLayout(archiveUrlInputWidget, { label: 'Archive URL:', align: 'top' }); const waybackFieldset = new OO.ui.FieldsetLayout({ classes: ['wayback-section'] }); waybackFieldset.addItems([waybackButtonGroup, archiveLayout]); return waybackFieldset; }, createCollapsibleParameterSection: function(fieldLayouts, options, dialogInstance, windowManager) { const { label = 'Source Data', initialCollapsed = true } = options; const parameterFieldset = new OO.ui.FieldsetLayout({ label: label, icon: initialCollapsed ? 'expand' : 'collapse', classes: ['parameter-collapsible'], collapsed: initialCollapsed }); parameterFieldset.isCollapsed = initialCollapsed; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').css({ 'cursor': 'pointer', 'background-color': '#f0f0f0', 'padding': '8px 12px', 'margin-top': '12px', 'margin-bottom': '8px', 'border': '1px solid #c8ccd1', 'font-weight': 'bold', 'display': 'flex', 'align-items': 'center', 'justify-content': 'flex-start' }); parameterFieldset.$element.find('.oo-ui-iconElement-icon').css({ 'position': 'relative', 'top': '0', 'margin-top': '0' }); parameterFieldset.$element.css({ 'margin-top': '15px' }); const $group = parameterFieldset.$group; if (initialCollapsed) { $group.hide(); } parameterFieldset.toggleCollapse = function() { this.isCollapsed = !this.isCollapsed; if (this.isCollapsed) { $group.hide(); this.setIcon('expand'); } else { $group.show(); this.setIcon('collapse'); } if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } }; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').on('click', function() { parameterFieldset.toggleCollapse(); }); parameterFieldset.addItems(fieldLayouts); parameterFieldset.$element.find('.oo-ui-fieldsetLayout-group').css({ 'padding': '5px 0' }); return parameterFieldset; }, handleFetchButtonAction: async function(urlInputWidget, uiElements, options) { const { fetchButtonWidget, progressBarWidget, notificationCallback, inputFields, parameterFieldset, dialogInstance, windowManager } = uiElements; const sourceUrl = urlInputWidget.getValue(); if (!sourceUrl) { if (typeof notificationCallback === 'function') { notificationCallback('Please enter a URL.', 'warning', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Please enter a URL.', 'warning'); } return; } fetchButtonWidget.setDisabled(true); fetchButtonWidget.setLabel('Loading...'); if (progressBarWidget) progressBarWidget.$element.show(); try { if (!quickSourceUtils.SourceManager) { const errorMsg = 'Error: quickSourceUtils.SourceManager is not available.'; if (typeof notificationCallback === 'function') notificationCallback(errorMsg, 'error'); else quickSourceUtils.ui.showNotification(errorMsg, 'error'); throw new Error(errorMsg); } const result = await quickSourceUtils.SourceManager.fetchSourceData(sourceUrl); if (result.success && result.data) { const fetchedData = result.data; inputFields.titleInput.setValue(fetchedData.title || ''); inputFields.authorInput.setValue(fetchedData.author || ''); inputFields.dateInput.setValue(fetchedData.date || ''); inputFields.publisherInput.setValue(fetchedData.publisher || ''); if (inputFields.archiveUrlInput) inputFields.archiveUrlInput.setValue(fetchedData.archive_url || ''); if (typeof notificationCallback === 'function') { notificationCallback('Source data fetched successfully.', 'success', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Source data fetched successfully.', 'success'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } else { throw new Error(result.message || 'No data returned from fetchSourceData.'); } } catch (error) { console.error('Error fetching source data in handleFetchButtonAction:', error); const errorMsg = 'Sorry, we could not fetch the data. Please enter manually.'; if (typeof notificationCallback === 'function') { notificationCallback(errorMsg, 'error', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification(errorMsg, 'error'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } finally { fetchButtonWidget.setDisabled(false); fetchButtonWidget.setLabel('Fetch'); if (progressBarWidget) progressBarWidget.$element.hide(); } } }; /** * Data Utilities * For handling data transformation and mappings */ quickSourceUtils.data = { templateParamMapping: { 'url': 'url', 'title': 'title', 'date': 'date', 'publisher': 'pub', 'archive_url': 'archiveurl', 'author': 'author' }, gatherSourceDataFromInputs: function(inputFields, useStandardKeys = true) { const sourceData = { url: inputFields.urlInput.getValue(), title: inputFields.titleInput.getValue(), author: inputFields.authorInput.getValue(), date: inputFields.dateInput.getValue(), publisher: inputFields.publisherInput.getValue(), archive_url: inputFields.archiveUrlInput ? inputFields.archiveUrlInput.getValue() : '' }; if (useStandardKeys) { const standardData = {}; for (const key in sourceData) { if (this.templateParamMapping[key]) { standardData[this.templateParamMapping[key]] = sourceData[key]; } else { standardData[key] = sourceData[key]; } } return standardData; } return sourceData; } }; /** * Wiki Page Manager * For handling page edits, like adding the source to the page. */ quickSourceUtils.WikiPageManager = { /** * Formats the source data into the wikitext source template format. * Ensures all parameters are included and aligned, even if empty. * @param {Object} data - Source data with template keys like 'pub', 'url', etc. * @returns {string} - The formatted wikitext string. */ formatSourceTemplate: function(data) { let template = '*{{source\n'; // Define the required order and padding for parameters const paramOrder = ['url', 'title', 'author', 'pub', 'date', 'archiveurl']; paramOrder.forEach(param => { const value = data[param] || ''; // padEnd provides alignment in the wikitext template += ` |${param.padEnd(10, ' ')} = ${value}\n`; }); template += '}}'; return template; }, /** * Saves the provided source data to the current wiki page. * It finds or creates a '== Sources ==' section and inserts the new * source template in chronological order (most recent first). * @param {Object} sourceData - The source data gathered from the inputs (using template keys). * @param {string} summary - The edit summary for the action. * @returns {Promise} - A jQuery promise that resolves on success and rejects on failure. */ saveSource: function(sourceData, summary = 'Added a source using QuickSource.') { return new Promise((resolve, reject) => { const api = new mw.Api(); const pageName = mw.config.get('wgPageName'); // 1. Format the new source template and parse its date const newSourceTemplate = this.formatSourceTemplate(sourceData); const newSourceDateStr = sourceData.date || null; const newSourceDate = newSourceDateStr ? new Date(newSourceDateStr) : null; // Helper to check for invalid Date objects const isValidDate = (d) => d && !isNaN(d.getTime()); // 2. Get current page wikitext api.get({ action: 'parse', page: pageName, prop: 'wikitext', format: 'json' }).done(data => { if (!data || !data.parse || !data.parse.wikitext || !data.parse.wikitext['*']) { return reject(new Error('Failed to fetch page wikitext.')); } let wikitext = data.parse.wikitext['*']; // Regex to find the Sources section and its content. // It stops at the next heading or the end of the page. const sourcesSectionRegex = /(==\s*Sources\s*==\s*\n)([\s\S]*?)(?=\n\s*==|$)/i; const sectionMatch = wikitext.match(sourcesSectionRegex); if (sectionMatch) { // --- SECTION FOUND --- const sectionHeader = sectionMatch[1]; const originalSectionContent = sectionMatch[2]; // Regex to find all individual source templates within the section content. const sourceTmplRegex = /\*?\s*\{\{source\s*[\s\S]*?\}\}/gi; const existingTemplates = originalSectionContent.match(sourceTmplRegex) || []; // 3. Create a list of source objects with their templates and parsed dates let sourcesList = existingTemplates.map(template => { const dateRegex = /\|\s*date\s*=\s*(.*?)\s*(?:\||}})/; const dateMatch = template.match(dateRegex); const dateStr = dateMatch && dateMatch[1] ? dateMatch[1].trim() : null; const dateObj = dateStr ? new Date(dateStr) : null; return { template: template, date: isValidDate(dateObj) ? dateObj : null }; }); // 4. Add the new source to be sorted sourcesList.push({ template: newSourceTemplate, date: isValidDate(newSourceDate) ? newSourceDate : null }); // 5. Sort the list by date, descending. Null/invalid dates go to the bottom. sourcesList.sort((a, b) => { if (a.date && b.date) return b.date - a.date; // Most recent first if (a.date) return -1; // a has a date, b does not, so a comes first. if (b.date) return 1; // b has a date, a does not, so b comes first. return 0; // Neither has a date, maintain relative order. }); // 6. Rebuild the section's content and update the page wikitext const newSectionContent = sourcesList.map(s => s.template).join('\n'); const newWikitext = wikitext.replace(sectionMatch[0], sectionHeader + newSectionContent); this._savePage(pageName, newWikitext, summary, api).then(resolve).fail(reject); } else { // --- SECTION NOT FOUND --- let newWikitext = wikitext; if (!newWikitext.endsWith('\n')) { newWikitext += '\n'; } // Append the new section and source template at the end newWikitext += `\n== Sources ==\n${newSourceTemplate}\n`; this._savePage(pageName, newWikitext, summary, api).then(resolve).fail(reject); } }).fail((...args) => { console.error('Failed to get page content:', args); reject(new Error('Could not retrieve page content.')); }); }); }, /** * Internal helper to perform the API call to save the page. * @private */ _savePage: function(title, text, summary, api) { return api.postWithToken('csrf', { action: 'edit', title: title, text: text, summary: summary, format: 'json' }); } }; // Load the publisher dataset from the Lua module first, then continue initialization quickSourceUtils.loadPublisherDataset().then(function() { mw.hook('quickSourceUtils.loaded').fire(); }).catch(function(error) { console.error('Error during initialization:', error); // Fire the hook anyway so other scripts don't hang mw.hook('quickSourceUtils.loaded').fire(); }); }); /** * Source Editor Tool Script * * This script adds a source button to the wiki editor toolbar for source mode editing. * It allows users to add citation sources with auto-fetching of data from URLs * and intelligent, chronologically-sorted placement on the page. * * Depends on the 'quickSourceUtils' script being loaded. */ mw.loader.using(['mediawiki.api', 'mediawiki.util', 'oojs-ui', 'oojs-ui-windows', 'ext.wikiEditor'], function() { // Check if we're in a content namespace AND in edit or submit action const relevantNamespaces = mw.config.get('wgNamespaceIds') ? [mw.config.get('wgNamespaceIds')[''], 2] : [0, 2]; if (relevantNamespaces.includes(mw.config.get('wgNamespaceNumber')) && ['edit', 'submit'].includes(mw.config.get('wgAction'))) { // Ensure the utility script is loaded before proceeding if (!window.quickSourceUtils || !window.quickSourceUtils.WikiPageManager) { mw.notify('QuickSource utility script is not loaded. Please ensure it is installed correctly.', { type: 'error' }); console.error('QuickSource dependency missing: quickSourceUtils.WikiPageManager'); return; } const quickSourceEditor = window.quickSourceEditor || {}; window.quickSourceEditor = quickSourceEditor; quickSourceEditor.api = new mw.Api(); const UIManager = { createSourceDialog($textarea) { const windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); function SourceDialog(config) { SourceDialog.super.call(this, config); } OO.inheritClass(SourceDialog, OO.ui.ProcessDialog); SourceDialog.static.name = 'sourceDialog'; SourceDialog.static.title = 'Add Source'; SourceDialog.static.actions = [ { action: 'save', label: 'Save', flags: ['primary', 'progressive'] }, { action: 'cancel', label: 'Cancel', flags: 'safe' } ]; SourceDialog.prototype.initialize = function() { SourceDialog.super.prototype.initialize.apply(this, arguments); this.mainPanelLayout = new OO.ui.PanelLayout({ padded: true, expanded: false }); this.commonInputs = quickSourceUtils.ui.createCommonInputFields(); this.fetchDataButtonWidget = new OO.ui.ButtonWidget({ label: 'Fetch', flags: ['progressive'], icon: 'download' }); this.loadingProgressBarWidget = new OO.ui.ProgressBarWidget({ progress: false }); this.loadingProgressBarWidget.$element.hide(); // Create URL input with fetch button const urlActionLayout = new OO.ui.ActionFieldLayout( this.commonInputs.urlInput, this.fetchDataButtonWidget, { label: 'Enter a URL:', align: 'top' } ); // Parameter fields layouts const titleLayout = new OO.ui.FieldLayout(this.commonInputs.titleInput, { label: 'Title:', align: 'top' }); const authorLayout = new OO.ui.FieldLayout(this.commonInputs.authorInput, { label: 'Author:', align: 'top' }); // Create publisher and date row using the utility function const publisherDateRow = quickSourceUtils.ui.createPublisherDateRow( this.commonInputs.publisherInput, this.commonInputs.dateInput ); this.waybackSection = quickSourceUtils.ui.createWaybackSection( () => this.commonInputs.urlInput.getValue(), this.commonInputs.archiveUrlInput ); const parameterFieldLayouts = [ titleLayout, authorLayout, publisherDateRow, this.waybackSection ]; this.parameterFieldset = quickSourceUtils.ui.createCollapsibleParameterSection( parameterFieldLayouts, { label: 'Source Data', initialCollapsed: true }, this, null ); this.mainPanelLayout.$element.append( urlActionLayout.$element, this.loadingProgressBarWidget.$element, this.parameterFieldset.$element ); this.$body.append(this.mainPanelLayout.$element); this.fetchDataButtonWidget.connect(this, { click: 'onFetchDataButtonClick' }); }; SourceDialog.prototype.onFetchDataButtonClick = function() { const currentDialog = this; quickSourceUtils.ui.handleFetchButtonAction( currentDialog.commonInputs.urlInput, { fetchButtonWidget: currentDialog.fetchDataButtonWidget, progressBarWidget: currentDialog.loadingProgressBarWidget, notificationCallback: function(message, type, timeout) { quickSourceUtils.ui.showNotification(message, type, timeout); }, inputFields: currentDialog.commonInputs, parameterFieldset: currentDialog.parameterFieldset, dialogInstance: currentDialog, windowManager: null } ); }; SourceDialog.prototype.updateSize = function() { windowManager.updateWindowSize(this); }; SourceDialog.prototype.getActionProcess = function(action) { const currentDialog = this; if (action === 'save') { return new OO.ui.Process(async function() { // Disable buttons to prevent multiple clicks during save currentDialog.actions.setAbilities({ save: false, cancel: false }); try { // 1. Gather data from the dialog's input fields const sourceData = quickSourceUtils.data.gatherSourceDataFromInputs(currentDialog.commonInputs, true); // 2. Call the new saveSource function from the utility script. // This single call handles everything: fetching the page, formatting the template, // sorting by date, and saving the updated wikitext. const result = await quickSourceUtils.WikiPageManager.saveSource(sourceData, 'Added a source using QuickSource tool.'); // 3. IMPORTANT: Update the textarea with the new wikitext returned by the API after saving. // This ensures the editor content is in sync with the saved page state. if (result && result.edit && result.edit.newrevid) { const api = new mw.Api(); const pageContent = await api.get({ action: 'parse', page: mw.config.get('wgPageName'), prop: 'wikitext' }); $textarea.val(pageContent.parse.wikitext['*']); } else { // Fallback if revision ID is not available for some reason console.warn("Could not confirm new revision ID, textarea might be out of sync."); } // 4. Show success notification and close the dialog quickSourceUtils.ui.showNotification('Source added and sorted successfully.', 'success'); currentDialog.close({ action: action }); } catch (error) { // 5. Handle any errors during the save process console.error('Failed to save the source:', error); const errorMsg = error.error ? error.error.info : (error.message || 'An unknown error occurred.'); quickSourceUtils.ui.showNotification('Error saving source: ' + errorMsg, 'error', 5000); // Re-enable buttons on failure so the user can try again currentDialog.actions.setAbilities({ save: true, cancel: true }); } }); } else if (action === 'cancel') { return new OO.ui.Process(function() { currentDialog.close({ action: action }); }); } return SourceDialog.super.prototype.getActionProcess.call(this, action); }; windowManager.addWindows([new SourceDialog({ size: 'large' })]); windowManager.openWindow('sourceDialog'); } }; // Hook handler for when the wikiEditor toolbar is ready mw.hook('wikiEditor.toolbarReady').add(function($textarea) { $textarea.wikiEditor('addToToolbar', { section: 'main', groups: { 'source': { tools: { 'add-source': { type: 'element', element: function() { var button = new OO.ui.ButtonInputWidget({ label: 'Source', icon: 'quotes', title: 'Add a new citation source', framed: false }); button.$element.css({ 'padding': '0 5px' }); button.on('click', function() { UIManager.createSourceDialog($textarea); }); return button.$element; } } } } } }); }); } }); tw5o3eeplarfqefduthe1eg2tvoznvn 664274 664273 2025-06-25T15:43:59Z Asked42 58528 664274 javascript text/javascript // Wait for necessary dependencies mw.loader.using(['mediawiki.api', 'oojs-ui', 'oojs-ui-windows']).then(function() { window.quickSourceUtils = window.quickSourceUtils || {}; // Initialize empty publisher dataset - will be populated from Lua module quickSourceUtils.publisherDataset = {}; // Load publisher dataset from the Lua module quickSourceUtils.loadPublisherDataset = function() { return new Promise(function(resolve, reject) { var api = new mw.Api(); api.get({ action: 'parse', format: 'json', text: '{{#invoke:Sandbox/Asked42|getJSON}}', contentmodel: 'wikitext', prop: 'text' }).done(function(data) { try { if (data && data.parse && data.parse.text && data.parse.text['*']) { const htmlContent = data.parse.text['*']; const jsonMatch = htmlContent.match(/{.+}/); if (jsonMatch) { const jsonStr = jsonMatch[0]; quickSourceUtils.publisherDataset = JSON.parse(jsonStr); console.log('Publisher dataset loaded from Lua module'); resolve(quickSourceUtils.publisherDataset); } else { console.error('Could not extract JSON from module output'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } else { console.error('Invalid response from API when loading publisher dataset'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } catch (e) { console.error('Error parsing publisher dataset:', e); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } }).fail(function(xhr, status, error) { console.error('Failed to load publisher dataset from Lua module:', error); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); }); }); }; // Fallback function to use hardcoded values if module loading fails quickSourceUtils.initializeDefaultPublisherDataset = function() { console.log('Using default hardcoded publisher dataset'); quickSourceUtils.publisherDataset = { "www.apnews.com": "Associated Press" }; }; // Date Formatter utility quickSourceUtils.DateFormatter = { monthNames: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], formatStandardDate: function(dateStr) { try { const date = new Date(dateStr); const day = date.getDate(); const month = date.getMonth(); const year = date.getFullYear(); // Format as: Month day, Year return `${this.monthNames[month]} ${day}, ${year}`; } catch (e) { console.error('Error formatting date:', e); return dateStr; } }, // Format date - returns standard format formatDate: function(dateStr) { if (!dateStr) return ''; try { const date = new Date(dateStr); return this.formatStandardDate(date); } catch (e) { return dateStr; } } }; /** * URL Domain Manager * Handles URL parsing and domain extraction/matching */ quickSourceUtils.DomainManager = { // Extract domain from URL extractDomain: function(url) { try { const urlObj = new URL(url); return urlObj.hostname; } catch (e) { console.error('Error extracting domain:', e); return null; } }, // Check if domain exists in dataset and return publisher if found getPublisherFromDataset: function(url) { const domain = this.extractDomain(url); if (domain && quickSourceUtils.publisherDataset[domain]) { return quickSourceUtils.publisherDataset[domain]; } return null; } }; /** * Quick Source Data Manager * Core functionality for fetching and processing citation data */ quickSourceUtils.SourceManager = { // Function to get publisher name with fallbacks getPublisherWithFallbacks: function(citation) { return citation.publicationTitle || citation.websiteTitle || citation.blogTitle || citation.encyclopediaTitle || citation.forumTitle || citation.reporterTitle || citation.magazineTitle || citation.newspaperTitle || citation.university || citation.publisher || ''; }, // Fetch citation data from URL fetchSourceData: function(url, options = {}) { return new Promise((resolve, reject) => { if (!url) { reject(new Error('Please enter a URL')); return; } // Check if the URL's domain matches our dataset const datasetPublisher = quickSourceUtils.DomainManager.getPublisherFromDataset(url); // Prepare the URL for the API // Add the web2cit.toolforge.org prefix to the target URL const prefixedUrl = 'https://web2cit.toolforge.org/' + url; const encodedUrl = encodeURIComponent(prefixedUrl); const apiUrl = `https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${encodedUrl}`; // Fetch data from the citation API $.ajax({ url: apiUrl, dataType: 'json', success: function(data) { if (data && data.length > 0) { const citation = data[0]; // Determine publisher value - use dataset value if available, otherwise use API data const publisherValue = datasetPublisher || quickSourceUtils.SourceManager.getPublisherWithFallbacks(citation); // Process citation data const processedData = { url: url, title: citation.title || '', author: citation.author || '', date: quickSourceUtils.DateFormatter.formatDate(citation.date), publisher: publisherValue, archive_url: citation.archive_url || '' }; resolve({ success: true, data: processedData, usedDataset: !!datasetPublisher // Flag to indicate if dataset was used }); } else { reject(new Error('No citation data found for this URL')); } }, error: function() { // If API fails but we have a publisher in our dataset, return minimal data if (datasetPublisher) { resolve({ success: true, data: { url: url, title: '', author: '', date: '', publisher: datasetPublisher, archive_url: '' }, usedDataset: true }); } else { reject(new Error('Error fetching citation data')); } } }); }); } }; /** * UI Utilities * For creating common UI elements and handling interactions */ quickSourceUtils.ui = { NOTIFICATION_TIMEOUT: 3000, showNotification: function(message, type = 'notice', timeout = this.NOTIFICATION_TIMEOUT) { mw.notify(message, { type: type, timeout: timeout }); }, createCommonInputFields: function(options = {}) { return { urlInput: new OO.ui.TextInputWidget({ placeholder: 'https://example.com/', value: '' }), titleInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Article title' }), authorInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Author name' }), publisherInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Publisher name' }), dateInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Month day, Year' }), archiveUrlInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'https://web.archive.org/web/...' }) }; }, createPublisherDateRow: function(publisherInput, dateInput) { const publisherLayout = new OO.ui.FieldLayout(publisherInput, { label: 'Publisher:', align: 'top' }); const dateLayout = new OO.ui.FieldLayout(dateInput, { label: 'Publication Date:', align: 'top' }); const rowLayout = new OO.ui.HorizontalLayout({ items: [publisherLayout, dateLayout] }); // Add some spacing between the fields publisherLayout.$element.css({ 'margin-right': '15px', 'flex': '1' }); dateLayout.$element.css({ 'flex': '1' }); rowLayout.$element.css({ 'display': 'flex', 'gap': '15px' }); return rowLayout; }, createWaybackSection: function(urlInputValueGetter, archiveUrlInputWidget, options = {}) { const waybackButton = new OO.ui.ButtonWidget({ label: 'Wayback Machine', icon: 'link', framed: true }); const helpIconWidget = new OO.ui.ButtonWidget({ icon: 'help', framed: false, title: 'Help' }); const waybackButtonGroup = new OO.ui.HorizontalLayout({ items: [waybackButton, helpIconWidget] }); waybackButtonGroup.$element.css({ 'display': 'flex', 'align-items': 'center', 'margin-bottom': '10px' }); waybackButton.$element.css({ 'margin-right': '10px' }); helpIconWidget.$element.css({ 'opacity': '0.7' }).hover( function() { $(this).css('opacity', '1'); }, function() { $(this).css('opacity', '0.7'); } ); const helpPopup = new OO.ui.PopupWidget({ $content: $('<div>') .css({ 'padding': '12px', 'max-width': '300px', 'word-wrap': 'break-word', 'font-size': '14px', 'line-height': '1.5', }) .text('Clicking the Wayback Machine button will open a new page where you can create an archive URL. Copy that archive URL and paste it in the field below.'), padded: true, width: 300, autoClose: true, autoFlip: true }); helpPopup.$element.appendTo(waybackButtonGroup.$element); helpIconWidget.on('click', function() { helpPopup.toggle(); }); waybackButton.on('click', function() { const waybackUrl = 'https://web.archive.org/save/'; const currentUrl = typeof urlInputValueGetter === 'function' ? urlInputValueGetter() : ''; window.open(waybackUrl + encodeURIComponent(currentUrl || ''), '_blank'); }); const archiveLayout = new OO.ui.FieldLayout(archiveUrlInputWidget, { label: 'Archive URL:', align: 'top' }); const waybackFieldset = new OO.ui.FieldsetLayout({ classes: ['wayback-section'] }); waybackFieldset.addItems([waybackButtonGroup, archiveLayout]); return waybackFieldset; }, createCollapsibleParameterSection: function(fieldLayouts, options, dialogInstance, windowManager) { const { label = 'Source Data', initialCollapsed = true } = options; const parameterFieldset = new OO.ui.FieldsetLayout({ label: label, icon: initialCollapsed ? 'expand' : 'collapse', classes: ['parameter-collapsible'], collapsed: initialCollapsed }); parameterFieldset.isCollapsed = initialCollapsed; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').css({ 'cursor': 'pointer', 'background-color': '#f0f0f0', 'padding': '8px 12px', 'margin-top': '12px', 'margin-bottom': '8px', 'border': '1px solid #c8ccd1', 'font-weight': 'bold', 'display': 'flex', 'align-items': 'center', 'justify-content': 'flex-start' }); parameterFieldset.$element.find('.oo-ui-iconElement-icon').css({ 'position': 'relative', 'top': '0', 'margin-top': '0' }); parameterFieldset.$element.css({ 'margin-top': '15px' }); const $group = parameterFieldset.$group; if (initialCollapsed) { $group.hide(); } parameterFieldset.toggleCollapse = function() { this.isCollapsed = !this.isCollapsed; if (this.isCollapsed) { $group.hide(); this.setIcon('expand'); } else { $group.show(); this.setIcon('collapse'); } if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } }; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').on('click', function() { parameterFieldset.toggleCollapse(); }); parameterFieldset.addItems(fieldLayouts); parameterFieldset.$element.find('.oo-ui-fieldsetLayout-group').css({ 'padding': '5px 0' }); return parameterFieldset; }, handleFetchButtonAction: async function(urlInputWidget, uiElements, options) { const { fetchButtonWidget, progressBarWidget, notificationCallback, inputFields, parameterFieldset, dialogInstance, windowManager } = uiElements; const sourceUrl = urlInputWidget.getValue(); if (!sourceUrl) { if (typeof notificationCallback === 'function') { notificationCallback('Please enter a URL.', 'warning', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Please enter a URL.', 'warning'); } return; } fetchButtonWidget.setDisabled(true); fetchButtonWidget.setLabel('Loading...'); if (progressBarWidget) progressBarWidget.$element.show(); try { if (!quickSourceUtils.SourceManager) { const errorMsg = 'Error: quickSourceUtils.SourceManager is not available.'; if (typeof notificationCallback === 'function') notificationCallback(errorMsg, 'error'); else quickSourceUtils.ui.showNotification(errorMsg, 'error'); throw new Error(errorMsg); } const result = await quickSourceUtils.SourceManager.fetchSourceData(sourceUrl); if (result.success && result.data) { const fetchedData = result.data; inputFields.titleInput.setValue(fetchedData.title || ''); inputFields.authorInput.setValue(fetchedData.author || ''); inputFields.dateInput.setValue(fetchedData.date || ''); inputFields.publisherInput.setValue(fetchedData.publisher || ''); if (inputFields.archiveUrlInput) inputFields.archiveUrlInput.setValue(fetchedData.archive_url || ''); if (typeof notificationCallback === 'function') { notificationCallback('Source data fetched successfully.', 'success', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Source data fetched successfully.', 'success'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } else { throw new Error(result.message || 'No data returned from fetchSourceData.'); } } catch (error) { console.error('Error fetching source data in handleFetchButtonAction:', error); const errorMsg = 'Sorry, we could not fetch the data. Please enter manually.'; if (typeof notificationCallback === 'function') { notificationCallback(errorMsg, 'error', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification(errorMsg, 'error'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } finally { fetchButtonWidget.setDisabled(false); fetchButtonWidget.setLabel('Fetch'); if (progressBarWidget) progressBarWidget.$element.hide(); } } }; /** * Data Utilities * For handling data transformation and mappings */ quickSourceUtils.data = { templateParamMapping: { 'url': 'url', 'title': 'title', 'date': 'date', 'publisher': 'pub', 'archive_url': 'archiveurl', 'author': 'author' }, gatherSourceDataFromInputs: function(inputFields, useStandardKeys = true) { const sourceData = { url: inputFields.urlInput.getValue(), title: inputFields.titleInput.getValue(), author: inputFields.authorInput.getValue(), date: inputFields.dateInput.getValue(), publisher: inputFields.publisherInput.getValue(), archive_url: inputFields.archiveUrlInput ? inputFields.archiveUrlInput.getValue() : '' }; if (useStandardKeys) { const standardData = {}; for (const key in sourceData) { if (this.templateParamMapping[key]) { standardData[this.templateParamMapping[key]] = sourceData[key]; } else { standardData[key] = sourceData[key]; } } return standardData; } return sourceData; } }; /** * Wiki Page Manager * For handling page edits, like adding the source to the page. */ quickSourceUtils.WikiPageManager = { /** * Formats the source data into the wikitext source template format. * Ensures all parameters are included and aligned, even if empty. * @param {Object} data - Source data with template keys like 'pub', 'url', etc. * @returns {string} - The formatted wikitext string. */ formatSourceTemplate: function(data) { let template = '*{{source\n'; // Define the required order and padding for parameters const paramOrder = ['url', 'title', 'author', 'pub', 'date', 'archiveurl']; paramOrder.forEach(param => { const value = data[param] || ''; // padEnd provides alignment in the wikitext template += ` |${param.padEnd(10, ' ')} = ${value}\n`; }); template += '}}'; return template; }, /** * Saves the provided source data to the current wiki page. * It finds or creates a '== Sources ==' section and inserts the new * source template in chronological order (most recent first). * @param {Object} sourceData - The source data gathered from the inputs (using template keys). * @param {string} summary - The edit summary for the action. * @returns {Promise} - A jQuery promise that resolves on success and rejects on failure. */ saveSource: function(sourceData, summary = 'Added a source using QuickSource.') { return new Promise((resolve, reject) => { const api = new mw.Api(); const pageName = mw.config.get('wgPageName'); // 1. Format the new source template and parse its date const newSourceTemplate = this.formatSourceTemplate(sourceData); const newSourceDateStr = sourceData.date || null; const newSourceDate = newSourceDateStr ? new Date(newSourceDateStr) : null; // Helper to check for invalid Date objects const isValidDate = (d) => d && !isNaN(d.getTime()); // 2. Get current page wikitext api.get({ action: 'parse', page: pageName, prop: 'wikitext', format: 'json' }).done(data => { if (!data || !data.parse || !data.parse.wikitext || !data.parse.wikitext['*']) { return reject(new Error('Failed to fetch page wikitext.')); } let wikitext = data.parse.wikitext['*']; // Regex to find the Sources section and its content. // It stops at the next heading or the end of the page. const sourcesSectionRegex = /(==\s*Sources\s*==\s*\n)([\s\S]*?)(?=\n\s*==|$)/i; const sectionMatch = wikitext.match(sourcesSectionRegex); if (sectionMatch) { // --- SECTION FOUND --- const sectionHeader = sectionMatch[1]; const originalSectionContent = sectionMatch[2]; // Regex to find all individual source templates within the section content. const sourceTmplRegex = /\*?\s*\{\{source\s*[\s\S]*?\}\}/gi; const existingTemplates = originalSectionContent.match(sourceTmplRegex) || []; // 3. Create a list of source objects with their templates and parsed dates let sourcesList = existingTemplates.map(template => { const dateRegex = /\|\s*date\s*=\s*(.*?)\s*(?:\||}})/; const dateMatch = template.match(dateRegex); const dateStr = dateMatch && dateMatch[1] ? dateMatch[1].trim() : null; const dateObj = dateStr ? new Date(dateStr) : null; return { template: template, date: isValidDate(dateObj) ? dateObj : null }; }); // 4. Add the new source to be sorted sourcesList.push({ template: newSourceTemplate, date: isValidDate(newSourceDate) ? newSourceDate : null }); // 5. Sort the list by date, descending. Null/invalid dates go to the bottom. sourcesList.sort((a, b) => { if (a.date && b.date) return b.date - a.date; // Most recent first if (a.date) return -1; // a has a date, b does not, so a comes first. if (b.date) return 1; // b has a date, a does not, so b comes first. return 0; // Neither has a date, maintain relative order. }); // 6. Rebuild the section's content and update the page wikitext const newSectionContent = sourcesList.map(s => s.template).join('\n'); const newWikitext = wikitext.replace(sectionMatch[0], sectionHeader + newSectionContent); this._savePage(pageName, newWikitext, summary, api).then(resolve).fail(reject); } else { // --- SECTION NOT FOUND --- let newWikitext = wikitext; if (!newWikitext.endsWith('\n')) { newWikitext += '\n'; } // Append the new section and source template at the end newWikitext += `\n== Sources ==\n${newSourceTemplate}\n`; this._savePage(pageName, newWikitext, summary, api).then(resolve).fail(reject); } }).fail((...args) => { console.error('Failed to get page content:', args); reject(new Error('Could not retrieve page content.')); }); }); }, /** * Internal helper to perform the API call to save the page. * @private */ _savePage: function(title, text, summary, api) { return api.postWithToken('csrf', { action: 'edit', title: title, text: text, summary: summary, format: 'json' }); } }; // Load the publisher dataset from the Lua module first, then continue initialization quickSourceUtils.loadPublisherDataset().then(function() { mw.hook('quickSourceUtils.loaded').fire(); }).catch(function(error) { console.error('Error during initialization:', error); // Fire the hook anyway so other scripts don't hang mw.hook('quickSourceUtils.loaded').fire(); }); }); /** * Source Editor Tool Script * * This script adds a source button to the wiki editor toolbar for source mode editing. * It allows users to add citation sources with auto-fetching of data from URLs * and intelligent, chronologically-sorted placement on the page. * * Depends on the 'quickSourceUtils' script being loaded. */ mw.loader.using(['mediawiki.api', 'mediawiki.util', 'oojs-ui', 'oojs-ui-windows', 'ext.wikiEditor'], function() { // Check if we're in a content namespace AND in edit or submit action const relevantNamespaces = mw.config.get('wgNamespaceIds') ? [mw.config.get('wgNamespaceIds')[''], 2] : [0, 2]; if (relevantNamespaces.includes(mw.config.get('wgNamespaceNumber')) && ['edit', 'submit'].includes(mw.config.get('wgAction'))) { const quickSourceEditor = window.quickSourceEditor || {}; window.quickSourceEditor = quickSourceEditor; quickSourceEditor.api = new mw.Api(); const UIManager = { createSourceDialog($textarea) { const windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); function SourceDialog(config) { SourceDialog.super.call(this, config); } OO.inheritClass(SourceDialog, OO.ui.ProcessDialog); SourceDialog.static.name = 'sourceDialog'; SourceDialog.static.title = 'Add Source'; SourceDialog.static.actions = [ { action: 'save', label: 'Save', flags: ['primary', 'progressive'] }, { action: 'cancel', label: 'Cancel', flags: 'safe' } ]; SourceDialog.prototype.initialize = function() { SourceDialog.super.prototype.initialize.apply(this, arguments); this.mainPanelLayout = new OO.ui.PanelLayout({ padded: true, expanded: false }); this.commonInputs = quickSourceUtils.ui.createCommonInputFields(); this.fetchDataButtonWidget = new OO.ui.ButtonWidget({ label: 'Fetch', flags: ['progressive'], icon: 'download' }); this.loadingProgressBarWidget = new OO.ui.ProgressBarWidget({ progress: false }); this.loadingProgressBarWidget.$element.hide(); // Create URL input with fetch button const urlActionLayout = new OO.ui.ActionFieldLayout( this.commonInputs.urlInput, this.fetchDataButtonWidget, { label: 'Enter a URL:', align: 'top' } ); // Parameter fields layouts const titleLayout = new OO.ui.FieldLayout(this.commonInputs.titleInput, { label: 'Title:', align: 'top' }); const authorLayout = new OO.ui.FieldLayout(this.commonInputs.authorInput, { label: 'Author:', align: 'top' }); // Create publisher and date row using the utility function const publisherDateRow = quickSourceUtils.ui.createPublisherDateRow( this.commonInputs.publisherInput, this.commonInputs.dateInput ); this.waybackSection = quickSourceUtils.ui.createWaybackSection( () => this.commonInputs.urlInput.getValue(), this.commonInputs.archiveUrlInput ); const parameterFieldLayouts = [ titleLayout, authorLayout, publisherDateRow, this.waybackSection ]; this.parameterFieldset = quickSourceUtils.ui.createCollapsibleParameterSection( parameterFieldLayouts, { label: 'Source Data', initialCollapsed: true }, this, null ); this.mainPanelLayout.$element.append( urlActionLayout.$element, this.loadingProgressBarWidget.$element, this.parameterFieldset.$element ); this.$body.append(this.mainPanelLayout.$element); this.fetchDataButtonWidget.connect(this, { click: 'onFetchDataButtonClick' }); }; SourceDialog.prototype.onFetchDataButtonClick = function() { const currentDialog = this; quickSourceUtils.ui.handleFetchButtonAction( currentDialog.commonInputs.urlInput, { fetchButtonWidget: currentDialog.fetchDataButtonWidget, progressBarWidget: currentDialog.loadingProgressBarWidget, notificationCallback: function(message, type, timeout) { quickSourceUtils.ui.showNotification(message, type, timeout); }, inputFields: currentDialog.commonInputs, parameterFieldset: currentDialog.parameterFieldset, dialogInstance: currentDialog, windowManager: null } ); }; SourceDialog.prototype.updateSize = function() { windowManager.updateWindowSize(this); }; SourceDialog.prototype.getActionProcess = function(action) { const currentDialog = this; if (action === 'save') { return new OO.ui.Process(async function() { // Disable buttons to prevent multiple clicks during save currentDialog.actions.setAbilities({ save: false, cancel: false }); try { // 1. Gather data from the dialog's input fields const sourceData = quickSourceUtils.data.gatherSourceDataFromInputs(currentDialog.commonInputs, true); // 2. Call the new saveSource function from the utility script. // This single call handles everything: fetching the page, formatting the template, // sorting by date, and saving the updated wikitext. const result = await quickSourceUtils.WikiPageManager.saveSource(sourceData, 'Added a source using QuickSource tool.'); // 3. IMPORTANT: Update the textarea with the new wikitext returned by the API after saving. // This ensures the editor content is in sync with the saved page state. if (result && result.edit && result.edit.newrevid) { const api = new mw.Api(); const pageContent = await api.get({ action: 'parse', page: mw.config.get('wgPageName'), prop: 'wikitext' }); $textarea.val(pageContent.parse.wikitext['*']); } else { // Fallback if revision ID is not available for some reason console.warn("Could not confirm new revision ID, textarea might be out of sync."); } // 4. Show success notification and close the dialog quickSourceUtils.ui.showNotification('Source added and sorted successfully.', 'success'); currentDialog.close({ action: action }); } catch (error) { // 5. Handle any errors during the save process console.error('Failed to save the source:', error); const errorMsg = error.error ? error.error.info : (error.message || 'An unknown error occurred.'); quickSourceUtils.ui.showNotification('Error saving source: ' + errorMsg, 'error', 5000); // Re-enable buttons on failure so the user can try again currentDialog.actions.setAbilities({ save: true, cancel: true }); } }); } else if (action === 'cancel') { return new OO.ui.Process(function() { currentDialog.close({ action: action }); }); } return SourceDialog.super.prototype.getActionProcess.call(this, action); }; windowManager.addWindows([new SourceDialog({ size: 'large' })]); windowManager.openWindow('sourceDialog'); } }; // Hook handler for when the wikiEditor toolbar is ready mw.hook('wikiEditor.toolbarReady').add(function($textarea) { $textarea.wikiEditor('addToToolbar', { section: 'main', groups: { 'source': { tools: { 'add-source': { type: 'element', element: function() { var button = new OO.ui.ButtonInputWidget({ label: 'Source', icon: 'quotes', title: 'Add a new citation source', framed: false }); button.$element.css({ 'padding': '0 5px' }); button.on('click', function() { UIManager.createSourceDialog($textarea); }); return button.$element; } } } } } }); }); } }); dzmhrokew2vzkikrvn7kflkaqqaez89 664280 664274 2025-06-25T15:58:48Z Asked42 58528 Undo revision [[Special:Diff/664274|664274]] by [[Special:Contributions/Asked42|Asked42]] ([[User talk:Asked42|talk]]) 664280 javascript text/javascript // Wait for necessary dependencies mw.loader.using(['mediawiki.api', 'oojs-ui', 'oojs-ui-windows']).then(function() { window.quickSourceUtils = window.quickSourceUtils || {}; // Initialize empty publisher dataset - will be populated from Lua module quickSourceUtils.publisherDataset = {}; // Load publisher dataset from the Lua module quickSourceUtils.loadPublisherDataset = function() { return new Promise(function(resolve, reject) { var api = new mw.Api(); api.get({ action: 'parse', format: 'json', text: '{{#invoke:Sandbox/Asked42|getJSON}}', contentmodel: 'wikitext', prop: 'text' }).done(function(data) { try { if (data && data.parse && data.parse.text && data.parse.text['*']) { const htmlContent = data.parse.text['*']; const jsonMatch = htmlContent.match(/{.+}/); if (jsonMatch) { const jsonStr = jsonMatch[0]; quickSourceUtils.publisherDataset = JSON.parse(jsonStr); console.log('Publisher dataset loaded from Lua module'); resolve(quickSourceUtils.publisherDataset); } else { console.error('Could not extract JSON from module output'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } else { console.error('Invalid response from API when loading publisher dataset'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } catch (e) { console.error('Error parsing publisher dataset:', e); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } }).fail(function(xhr, status, error) { console.error('Failed to load publisher dataset from Lua module:', error); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); }); }); }; // Fallback function to use hardcoded values if module loading fails quickSourceUtils.initializeDefaultPublisherDataset = function() { console.log('Using default hardcoded publisher dataset'); quickSourceUtils.publisherDataset = { "www.apnews.com": "Associated Press" }; }; // Date Formatter utility quickSourceUtils.DateFormatter = { monthNames: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], formatStandardDate: function(dateStr) { try { const date = new Date(dateStr); const day = date.getDate(); const month = date.getMonth(); const year = date.getFullYear(); // Format as: Month day, Year return `${this.monthNames[month]} ${day}, ${year}`; } catch (e) { console.error('Error formatting date:', e); return dateStr; } }, // Format date - returns standard format formatDate: function(dateStr) { if (!dateStr) return ''; try { const date = new Date(dateStr); return this.formatStandardDate(date); } catch (e) { return dateStr; } } }; /** * URL Domain Manager * Handles URL parsing and domain extraction/matching */ quickSourceUtils.DomainManager = { // Extract domain from URL extractDomain: function(url) { try { const urlObj = new URL(url); return urlObj.hostname; } catch (e) { console.error('Error extracting domain:', e); return null; } }, // Check if domain exists in dataset and return publisher if found getPublisherFromDataset: function(url) { const domain = this.extractDomain(url); if (domain && quickSourceUtils.publisherDataset[domain]) { return quickSourceUtils.publisherDataset[domain]; } return null; } }; /** * Quick Source Data Manager * Core functionality for fetching and processing citation data */ quickSourceUtils.SourceManager = { // Function to get publisher name with fallbacks getPublisherWithFallbacks: function(citation) { return citation.publicationTitle || citation.websiteTitle || citation.blogTitle || citation.encyclopediaTitle || citation.forumTitle || citation.reporterTitle || citation.magazineTitle || citation.newspaperTitle || citation.university || citation.publisher || ''; }, // Fetch citation data from URL fetchSourceData: function(url, options = {}) { return new Promise((resolve, reject) => { if (!url) { reject(new Error('Please enter a URL')); return; } // Check if the URL's domain matches our dataset const datasetPublisher = quickSourceUtils.DomainManager.getPublisherFromDataset(url); // Prepare the URL for the API // Add the web2cit.toolforge.org prefix to the target URL const prefixedUrl = 'https://web2cit.toolforge.org/' + url; const encodedUrl = encodeURIComponent(prefixedUrl); const apiUrl = `https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${encodedUrl}`; // Fetch data from the citation API $.ajax({ url: apiUrl, dataType: 'json', success: function(data) { if (data && data.length > 0) { const citation = data[0]; // Determine publisher value - use dataset value if available, otherwise use API data const publisherValue = datasetPublisher || quickSourceUtils.SourceManager.getPublisherWithFallbacks(citation); // Process citation data const processedData = { url: url, title: citation.title || '', author: citation.author || '', date: quickSourceUtils.DateFormatter.formatDate(citation.date), publisher: publisherValue, archive_url: citation.archive_url || '' }; resolve({ success: true, data: processedData, usedDataset: !!datasetPublisher // Flag to indicate if dataset was used }); } else { reject(new Error('No citation data found for this URL')); } }, error: function() { // If API fails but we have a publisher in our dataset, return minimal data if (datasetPublisher) { resolve({ success: true, data: { url: url, title: '', author: '', date: '', publisher: datasetPublisher, archive_url: '' }, usedDataset: true }); } else { reject(new Error('Error fetching citation data')); } } }); }); } }; /** * UI Utilities * For creating common UI elements and handling interactions */ quickSourceUtils.ui = { NOTIFICATION_TIMEOUT: 3000, showNotification: function(message, type = 'notice', timeout = this.NOTIFICATION_TIMEOUT) { mw.notify(message, { type: type, timeout: timeout }); }, createCommonInputFields: function(options = {}) { return { urlInput: new OO.ui.TextInputWidget({ placeholder: 'https://example.com/', value: '' }), titleInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Article title' }), authorInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Author name' }), publisherInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Publisher name' }), dateInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Month day, Year' }), archiveUrlInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'https://web.archive.org/web/...' }) }; }, createPublisherDateRow: function(publisherInput, dateInput) { const publisherLayout = new OO.ui.FieldLayout(publisherInput, { label: 'Publisher:', align: 'top' }); const dateLayout = new OO.ui.FieldLayout(dateInput, { label: 'Publication Date:', align: 'top' }); const rowLayout = new OO.ui.HorizontalLayout({ items: [publisherLayout, dateLayout] }); // Add some spacing between the fields publisherLayout.$element.css({ 'margin-right': '15px', 'flex': '1' }); dateLayout.$element.css({ 'flex': '1' }); rowLayout.$element.css({ 'display': 'flex', 'gap': '15px' }); return rowLayout; }, createWaybackSection: function(urlInputValueGetter, archiveUrlInputWidget, options = {}) { const waybackButton = new OO.ui.ButtonWidget({ label: 'Wayback Machine', icon: 'link', framed: true }); const helpIconWidget = new OO.ui.ButtonWidget({ icon: 'help', framed: false, title: 'Help' }); const waybackButtonGroup = new OO.ui.HorizontalLayout({ items: [waybackButton, helpIconWidget] }); waybackButtonGroup.$element.css({ 'display': 'flex', 'align-items': 'center', 'margin-bottom': '10px' }); waybackButton.$element.css({ 'margin-right': '10px' }); helpIconWidget.$element.css({ 'opacity': '0.7' }).hover( function() { $(this).css('opacity', '1'); }, function() { $(this).css('opacity', '0.7'); } ); const helpPopup = new OO.ui.PopupWidget({ $content: $('<div>') .css({ 'padding': '12px', 'max-width': '300px', 'word-wrap': 'break-word', 'font-size': '14px', 'line-height': '1.5', }) .text('Clicking the Wayback Machine button will open a new page where you can create an archive URL. Copy that archive URL and paste it in the field below.'), padded: true, width: 300, autoClose: true, autoFlip: true }); helpPopup.$element.appendTo(waybackButtonGroup.$element); helpIconWidget.on('click', function() { helpPopup.toggle(); }); waybackButton.on('click', function() { const waybackUrl = 'https://web.archive.org/save/'; const currentUrl = typeof urlInputValueGetter === 'function' ? urlInputValueGetter() : ''; window.open(waybackUrl + encodeURIComponent(currentUrl || ''), '_blank'); }); const archiveLayout = new OO.ui.FieldLayout(archiveUrlInputWidget, { label: 'Archive URL:', align: 'top' }); const waybackFieldset = new OO.ui.FieldsetLayout({ classes: ['wayback-section'] }); waybackFieldset.addItems([waybackButtonGroup, archiveLayout]); return waybackFieldset; }, createCollapsibleParameterSection: function(fieldLayouts, options, dialogInstance, windowManager) { const { label = 'Source Data', initialCollapsed = true } = options; const parameterFieldset = new OO.ui.FieldsetLayout({ label: label, icon: initialCollapsed ? 'expand' : 'collapse', classes: ['parameter-collapsible'], collapsed: initialCollapsed }); parameterFieldset.isCollapsed = initialCollapsed; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').css({ 'cursor': 'pointer', 'background-color': '#f0f0f0', 'padding': '8px 12px', 'margin-top': '12px', 'margin-bottom': '8px', 'border': '1px solid #c8ccd1', 'font-weight': 'bold', 'display': 'flex', 'align-items': 'center', 'justify-content': 'flex-start' }); parameterFieldset.$element.find('.oo-ui-iconElement-icon').css({ 'position': 'relative', 'top': '0', 'margin-top': '0' }); parameterFieldset.$element.css({ 'margin-top': '15px' }); const $group = parameterFieldset.$group; if (initialCollapsed) { $group.hide(); } parameterFieldset.toggleCollapse = function() { this.isCollapsed = !this.isCollapsed; if (this.isCollapsed) { $group.hide(); this.setIcon('expand'); } else { $group.show(); this.setIcon('collapse'); } if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } }; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').on('click', function() { parameterFieldset.toggleCollapse(); }); parameterFieldset.addItems(fieldLayouts); parameterFieldset.$element.find('.oo-ui-fieldsetLayout-group').css({ 'padding': '5px 0' }); return parameterFieldset; }, handleFetchButtonAction: async function(urlInputWidget, uiElements, options) { const { fetchButtonWidget, progressBarWidget, notificationCallback, inputFields, parameterFieldset, dialogInstance, windowManager } = uiElements; const sourceUrl = urlInputWidget.getValue(); if (!sourceUrl) { if (typeof notificationCallback === 'function') { notificationCallback('Please enter a URL.', 'warning', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Please enter a URL.', 'warning'); } return; } fetchButtonWidget.setDisabled(true); fetchButtonWidget.setLabel('Loading...'); if (progressBarWidget) progressBarWidget.$element.show(); try { if (!quickSourceUtils.SourceManager) { const errorMsg = 'Error: quickSourceUtils.SourceManager is not available.'; if (typeof notificationCallback === 'function') notificationCallback(errorMsg, 'error'); else quickSourceUtils.ui.showNotification(errorMsg, 'error'); throw new Error(errorMsg); } const result = await quickSourceUtils.SourceManager.fetchSourceData(sourceUrl); if (result.success && result.data) { const fetchedData = result.data; inputFields.titleInput.setValue(fetchedData.title || ''); inputFields.authorInput.setValue(fetchedData.author || ''); inputFields.dateInput.setValue(fetchedData.date || ''); inputFields.publisherInput.setValue(fetchedData.publisher || ''); if (inputFields.archiveUrlInput) inputFields.archiveUrlInput.setValue(fetchedData.archive_url || ''); if (typeof notificationCallback === 'function') { notificationCallback('Source data fetched successfully.', 'success', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Source data fetched successfully.', 'success'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } else { throw new Error(result.message || 'No data returned from fetchSourceData.'); } } catch (error) { console.error('Error fetching source data in handleFetchButtonAction:', error); const errorMsg = 'Sorry, we could not fetch the data. Please enter manually.'; if (typeof notificationCallback === 'function') { notificationCallback(errorMsg, 'error', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification(errorMsg, 'error'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } finally { fetchButtonWidget.setDisabled(false); fetchButtonWidget.setLabel('Fetch'); if (progressBarWidget) progressBarWidget.$element.hide(); } } }; /** * Data Utilities * For handling data transformation and mappings */ quickSourceUtils.data = { templateParamMapping: { 'url': 'url', 'title': 'title', 'date': 'date', 'publisher': 'pub', 'archive_url': 'archiveurl', 'author': 'author' }, gatherSourceDataFromInputs: function(inputFields, useStandardKeys = true) { const sourceData = { url: inputFields.urlInput.getValue(), title: inputFields.titleInput.getValue(), author: inputFields.authorInput.getValue(), date: inputFields.dateInput.getValue(), publisher: inputFields.publisherInput.getValue(), archive_url: inputFields.archiveUrlInput ? inputFields.archiveUrlInput.getValue() : '' }; if (useStandardKeys) { const standardData = {}; for (const key in sourceData) { if (this.templateParamMapping[key]) { standardData[this.templateParamMapping[key]] = sourceData[key]; } else { standardData[key] = sourceData[key]; } } return standardData; } return sourceData; } }; /** * Wiki Page Manager * For handling page edits, like adding the source to the page. */ quickSourceUtils.WikiPageManager = { /** * Formats the source data into the wikitext source template format. * Ensures all parameters are included and aligned, even if empty. * @param {Object} data - Source data with template keys like 'pub', 'url', etc. * @returns {string} - The formatted wikitext string. */ formatSourceTemplate: function(data) { let template = '*{{source\n'; // Define the required order and padding for parameters const paramOrder = ['url', 'title', 'author', 'pub', 'date', 'archiveurl']; paramOrder.forEach(param => { const value = data[param] || ''; // padEnd provides alignment in the wikitext template += ` |${param.padEnd(10, ' ')} = ${value}\n`; }); template += '}}'; return template; }, /** * Saves the provided source data to the current wiki page. * It finds or creates a '== Sources ==' section and inserts the new * source template in chronological order (most recent first). * @param {Object} sourceData - The source data gathered from the inputs (using template keys). * @param {string} summary - The edit summary for the action. * @returns {Promise} - A jQuery promise that resolves on success and rejects on failure. */ saveSource: function(sourceData, summary = 'Added a source using QuickSource.') { return new Promise((resolve, reject) => { const api = new mw.Api(); const pageName = mw.config.get('wgPageName'); // 1. Format the new source template and parse its date const newSourceTemplate = this.formatSourceTemplate(sourceData); const newSourceDateStr = sourceData.date || null; const newSourceDate = newSourceDateStr ? new Date(newSourceDateStr) : null; // Helper to check for invalid Date objects const isValidDate = (d) => d && !isNaN(d.getTime()); // 2. Get current page wikitext api.get({ action: 'parse', page: pageName, prop: 'wikitext', format: 'json' }).done(data => { if (!data || !data.parse || !data.parse.wikitext || !data.parse.wikitext['*']) { return reject(new Error('Failed to fetch page wikitext.')); } let wikitext = data.parse.wikitext['*']; // Regex to find the Sources section and its content. // It stops at the next heading or the end of the page. const sourcesSectionRegex = /(==\s*Sources\s*==\s*\n)([\s\S]*?)(?=\n\s*==|$)/i; const sectionMatch = wikitext.match(sourcesSectionRegex); if (sectionMatch) { // --- SECTION FOUND --- const sectionHeader = sectionMatch[1]; const originalSectionContent = sectionMatch[2]; // Regex to find all individual source templates within the section content. const sourceTmplRegex = /\*?\s*\{\{source\s*[\s\S]*?\}\}/gi; const existingTemplates = originalSectionContent.match(sourceTmplRegex) || []; // 3. Create a list of source objects with their templates and parsed dates let sourcesList = existingTemplates.map(template => { const dateRegex = /\|\s*date\s*=\s*(.*?)\s*(?:\||}})/; const dateMatch = template.match(dateRegex); const dateStr = dateMatch && dateMatch[1] ? dateMatch[1].trim() : null; const dateObj = dateStr ? new Date(dateStr) : null; return { template: template, date: isValidDate(dateObj) ? dateObj : null }; }); // 4. Add the new source to be sorted sourcesList.push({ template: newSourceTemplate, date: isValidDate(newSourceDate) ? newSourceDate : null }); // 5. Sort the list by date, descending. Null/invalid dates go to the bottom. sourcesList.sort((a, b) => { if (a.date && b.date) return b.date - a.date; // Most recent first if (a.date) return -1; // a has a date, b does not, so a comes first. if (b.date) return 1; // b has a date, a does not, so b comes first. return 0; // Neither has a date, maintain relative order. }); // 6. Rebuild the section's content and update the page wikitext const newSectionContent = sourcesList.map(s => s.template).join('\n'); const newWikitext = wikitext.replace(sectionMatch[0], sectionHeader + newSectionContent); this._savePage(pageName, newWikitext, summary, api).then(resolve).fail(reject); } else { // --- SECTION NOT FOUND --- let newWikitext = wikitext; if (!newWikitext.endsWith('\n')) { newWikitext += '\n'; } // Append the new section and source template at the end newWikitext += `\n== Sources ==\n${newSourceTemplate}\n`; this._savePage(pageName, newWikitext, summary, api).then(resolve).fail(reject); } }).fail((...args) => { console.error('Failed to get page content:', args); reject(new Error('Could not retrieve page content.')); }); }); }, /** * Internal helper to perform the API call to save the page. * @private */ _savePage: function(title, text, summary, api) { return api.postWithToken('csrf', { action: 'edit', title: title, text: text, summary: summary, format: 'json' }); } }; // Load the publisher dataset from the Lua module first, then continue initialization quickSourceUtils.loadPublisherDataset().then(function() { mw.hook('quickSourceUtils.loaded').fire(); }).catch(function(error) { console.error('Error during initialization:', error); // Fire the hook anyway so other scripts don't hang mw.hook('quickSourceUtils.loaded').fire(); }); }); /** * Source Editor Tool Script * * This script adds a source button to the wiki editor toolbar for source mode editing. * It allows users to add citation sources with auto-fetching of data from URLs * and intelligent, chronologically-sorted placement on the page. * * Depends on the 'quickSourceUtils' script being loaded. */ mw.loader.using(['mediawiki.api', 'mediawiki.util', 'oojs-ui', 'oojs-ui-windows', 'ext.wikiEditor'], function() { // Check if we're in a content namespace AND in edit or submit action const relevantNamespaces = mw.config.get('wgNamespaceIds') ? [mw.config.get('wgNamespaceIds')[''], 2] : [0, 2]; if (relevantNamespaces.includes(mw.config.get('wgNamespaceNumber')) && ['edit', 'submit'].includes(mw.config.get('wgAction'))) { // Ensure the utility script is loaded before proceeding if (!window.quickSourceUtils || !window.quickSourceUtils.WikiPageManager) { mw.notify('QuickSource utility script is not loaded. Please ensure it is installed correctly.', { type: 'error' }); console.error('QuickSource dependency missing: quickSourceUtils.WikiPageManager'); return; } const quickSourceEditor = window.quickSourceEditor || {}; window.quickSourceEditor = quickSourceEditor; quickSourceEditor.api = new mw.Api(); const UIManager = { createSourceDialog($textarea) { const windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); function SourceDialog(config) { SourceDialog.super.call(this, config); } OO.inheritClass(SourceDialog, OO.ui.ProcessDialog); SourceDialog.static.name = 'sourceDialog'; SourceDialog.static.title = 'Add Source'; SourceDialog.static.actions = [ { action: 'save', label: 'Save', flags: ['primary', 'progressive'] }, { action: 'cancel', label: 'Cancel', flags: 'safe' } ]; SourceDialog.prototype.initialize = function() { SourceDialog.super.prototype.initialize.apply(this, arguments); this.mainPanelLayout = new OO.ui.PanelLayout({ padded: true, expanded: false }); this.commonInputs = quickSourceUtils.ui.createCommonInputFields(); this.fetchDataButtonWidget = new OO.ui.ButtonWidget({ label: 'Fetch', flags: ['progressive'], icon: 'download' }); this.loadingProgressBarWidget = new OO.ui.ProgressBarWidget({ progress: false }); this.loadingProgressBarWidget.$element.hide(); // Create URL input with fetch button const urlActionLayout = new OO.ui.ActionFieldLayout( this.commonInputs.urlInput, this.fetchDataButtonWidget, { label: 'Enter a URL:', align: 'top' } ); // Parameter fields layouts const titleLayout = new OO.ui.FieldLayout(this.commonInputs.titleInput, { label: 'Title:', align: 'top' }); const authorLayout = new OO.ui.FieldLayout(this.commonInputs.authorInput, { label: 'Author:', align: 'top' }); // Create publisher and date row using the utility function const publisherDateRow = quickSourceUtils.ui.createPublisherDateRow( this.commonInputs.publisherInput, this.commonInputs.dateInput ); this.waybackSection = quickSourceUtils.ui.createWaybackSection( () => this.commonInputs.urlInput.getValue(), this.commonInputs.archiveUrlInput ); const parameterFieldLayouts = [ titleLayout, authorLayout, publisherDateRow, this.waybackSection ]; this.parameterFieldset = quickSourceUtils.ui.createCollapsibleParameterSection( parameterFieldLayouts, { label: 'Source Data', initialCollapsed: true }, this, null ); this.mainPanelLayout.$element.append( urlActionLayout.$element, this.loadingProgressBarWidget.$element, this.parameterFieldset.$element ); this.$body.append(this.mainPanelLayout.$element); this.fetchDataButtonWidget.connect(this, { click: 'onFetchDataButtonClick' }); }; SourceDialog.prototype.onFetchDataButtonClick = function() { const currentDialog = this; quickSourceUtils.ui.handleFetchButtonAction( currentDialog.commonInputs.urlInput, { fetchButtonWidget: currentDialog.fetchDataButtonWidget, progressBarWidget: currentDialog.loadingProgressBarWidget, notificationCallback: function(message, type, timeout) { quickSourceUtils.ui.showNotification(message, type, timeout); }, inputFields: currentDialog.commonInputs, parameterFieldset: currentDialog.parameterFieldset, dialogInstance: currentDialog, windowManager: null } ); }; SourceDialog.prototype.updateSize = function() { windowManager.updateWindowSize(this); }; SourceDialog.prototype.getActionProcess = function(action) { const currentDialog = this; if (action === 'save') { return new OO.ui.Process(async function() { // Disable buttons to prevent multiple clicks during save currentDialog.actions.setAbilities({ save: false, cancel: false }); try { // 1. Gather data from the dialog's input fields const sourceData = quickSourceUtils.data.gatherSourceDataFromInputs(currentDialog.commonInputs, true); // 2. Call the new saveSource function from the utility script. // This single call handles everything: fetching the page, formatting the template, // sorting by date, and saving the updated wikitext. const result = await quickSourceUtils.WikiPageManager.saveSource(sourceData, 'Added a source using QuickSource tool.'); // 3. IMPORTANT: Update the textarea with the new wikitext returned by the API after saving. // This ensures the editor content is in sync with the saved page state. if (result && result.edit && result.edit.newrevid) { const api = new mw.Api(); const pageContent = await api.get({ action: 'parse', page: mw.config.get('wgPageName'), prop: 'wikitext' }); $textarea.val(pageContent.parse.wikitext['*']); } else { // Fallback if revision ID is not available for some reason console.warn("Could not confirm new revision ID, textarea might be out of sync."); } // 4. Show success notification and close the dialog quickSourceUtils.ui.showNotification('Source added and sorted successfully.', 'success'); currentDialog.close({ action: action }); } catch (error) { // 5. Handle any errors during the save process console.error('Failed to save the source:', error); const errorMsg = error.error ? error.error.info : (error.message || 'An unknown error occurred.'); quickSourceUtils.ui.showNotification('Error saving source: ' + errorMsg, 'error', 5000); // Re-enable buttons on failure so the user can try again currentDialog.actions.setAbilities({ save: true, cancel: true }); } }); } else if (action === 'cancel') { return new OO.ui.Process(function() { currentDialog.close({ action: action }); }); } return SourceDialog.super.prototype.getActionProcess.call(this, action); }; windowManager.addWindows([new SourceDialog({ size: 'large' })]); windowManager.openWindow('sourceDialog'); } }; // Hook handler for when the wikiEditor toolbar is ready mw.hook('wikiEditor.toolbarReady').add(function($textarea) { $textarea.wikiEditor('addToToolbar', { section: 'main', groups: { 'source': { tools: { 'add-source': { type: 'element', element: function() { var button = new OO.ui.ButtonInputWidget({ label: 'Source', icon: 'quotes', title: 'Add a new citation source', framed: false }); button.$element.css({ 'padding': '0 5px' }); button.on('click', function() { UIManager.createSourceDialog($textarea); }); return button.$element; } } } } } }); }); } }); tw5o3eeplarfqefduthe1eg2tvoznvn 664281 664280 2025-06-25T15:59:41Z Asked42 58528 664281 javascript text/javascript // Wait for necessary dependencies mw.loader.using(['mediawiki.api', 'oojs-ui', 'oojs-ui-windows']).then(function() { window.quickSourceUtils = window.quickSourceUtils || {}; // Initialize empty publisher dataset - will be populated from Lua module quickSourceUtils.publisherDataset = {}; // Load publisher dataset from the Lua module quickSourceUtils.loadPublisherDataset = function() { return new Promise(function(resolve, reject) { var api = new mw.Api(); api.get({ action: 'parse', format: 'json', text: '{{#invoke:Sandbox/Asked42|getJSON}}', contentmodel: 'wikitext', prop: 'text' }).done(function(data) { try { if (data && data.parse && data.parse.text && data.parse.text['*']) { const htmlContent = data.parse.text['*']; const jsonMatch = htmlContent.match(/{.+}/); if (jsonMatch) { const jsonStr = jsonMatch[0]; quickSourceUtils.publisherDataset = JSON.parse(jsonStr); console.log('Publisher dataset loaded from Lua module'); resolve(quickSourceUtils.publisherDataset); } else { console.error('Could not extract JSON from module output'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } else { console.error('Invalid response from API when loading publisher dataset'); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } } catch (e) { console.error('Error parsing publisher dataset:', e); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); } }).fail(function(xhr, status, error) { console.error('Failed to load publisher dataset from Lua module:', error); // Fall back to hardcoded values quickSourceUtils.initializeDefaultPublisherDataset(); resolve(quickSourceUtils.publisherDataset); }); }); }; // Fallback function to use hardcoded values if module loading fails quickSourceUtils.initializeDefaultPublisherDataset = function() { console.log('Using default hardcoded publisher dataset'); quickSourceUtils.publisherDataset = { "www.apnews.com": "Associated Press" }; }; // Date Formatter utility quickSourceUtils.DateFormatter = { monthNames: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], formatStandardDate: function(dateStr) { try { const date = new Date(dateStr); const day = date.getDate(); const month = date.getMonth(); const year = date.getFullYear(); // Format as: Month day, Year return `${this.monthNames[month]} ${day}, ${year}`; } catch (e) { console.error('Error formatting date:', e); return dateStr; } }, // Format date - returns standard format formatDate: function(dateStr) { if (!dateStr) return ''; try { const date = new Date(dateStr); return this.formatStandardDate(date); } catch (e) { return dateStr; } } }; /** * URL Domain Manager * Handles URL parsing and domain extraction/matching */ quickSourceUtils.DomainManager = { // Extract domain from URL extractDomain: function(url) { try { const urlObj = new URL(url); return urlObj.hostname; } catch (e) { console.error('Error extracting domain:', e); return null; } }, // Check if domain exists in dataset and return publisher if found getPublisherFromDataset: function(url) { const domain = this.extractDomain(url); if (domain && quickSourceUtils.publisherDataset[domain]) { return quickSourceUtils.publisherDataset[domain]; } return null; } }; /** * Quick Source Data Manager * Core functionality for fetching and processing citation data */ quickSourceUtils.SourceManager = { // Function to get publisher name with fallbacks getPublisherWithFallbacks: function(citation) { return citation.publicationTitle || citation.websiteTitle || citation.blogTitle || citation.encyclopediaTitle || citation.forumTitle || citation.reporterTitle || citation.magazineTitle || citation.newspaperTitle || citation.university || citation.publisher || ''; }, // Fetch citation data from URL fetchSourceData: function(url, options = {}) { return new Promise((resolve, reject) => { if (!url) { reject(new Error('Please enter a URL')); return; } // Check if the URL's domain matches our dataset const datasetPublisher = quickSourceUtils.DomainManager.getPublisherFromDataset(url); // Prepare the URL for the API // Add the web2cit.toolforge.org prefix to the target URL const prefixedUrl = 'https://web2cit.toolforge.org/' + url; const encodedUrl = encodeURIComponent(prefixedUrl); const apiUrl = `https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${encodedUrl}`; // Fetch data from the citation API $.ajax({ url: apiUrl, dataType: 'json', success: function(data) { if (data && data.length > 0) { const citation = data[0]; // Determine publisher value - use dataset value if available, otherwise use API data const publisherValue = datasetPublisher || quickSourceUtils.SourceManager.getPublisherWithFallbacks(citation); // Process citation data const processedData = { url: url, title: citation.title || '', author: citation.author || '', date: quickSourceUtils.DateFormatter.formatDate(citation.date), publisher: publisherValue, archive_url: citation.archive_url || '' }; resolve({ success: true, data: processedData, usedDataset: !!datasetPublisher // Flag to indicate if dataset was used }); } else { reject(new Error('No citation data found for this URL')); } }, error: function() { // If API fails but we have a publisher in our dataset, return minimal data if (datasetPublisher) { resolve({ success: true, data: { url: url, title: '', author: '', date: '', publisher: datasetPublisher, archive_url: '' }, usedDataset: true }); } else { reject(new Error('Error fetching citation data')); } } }); }); } }; /** * UI Utilities * For creating common UI elements and handling interactions */ quickSourceUtils.ui = { NOTIFICATION_TIMEOUT: 3000, showNotification: function(message, type = 'notice', timeout = this.NOTIFICATION_TIMEOUT) { mw.notify(message, { type: type, timeout: timeout }); }, createCommonInputFields: function(options = {}) { return { urlInput: new OO.ui.TextInputWidget({ placeholder: 'https://example.com/', value: '' }), titleInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Article title' }), authorInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Author name' }), publisherInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Publisher name' }), dateInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'Month day, Year' }), archiveUrlInput: new OO.ui.TextInputWidget({ value: '', placeholder: 'https://web.archive.org/web/...' }) }; }, createPublisherDateRow: function(publisherInput, dateInput) { const publisherLayout = new OO.ui.FieldLayout(publisherInput, { label: 'Publisher:', align: 'top' }); const dateLayout = new OO.ui.FieldLayout(dateInput, { label: 'Publication Date:', align: 'top' }); const rowLayout = new OO.ui.HorizontalLayout({ items: [publisherLayout, dateLayout] }); // Add some spacing between the fields publisherLayout.$element.css({ 'margin-right': '15px', 'flex': '1' }); dateLayout.$element.css({ 'flex': '1' }); rowLayout.$element.css({ 'display': 'flex', 'gap': '15px' }); return rowLayout; }, createWaybackSection: function(urlInputValueGetter, archiveUrlInputWidget, options = {}) { const waybackButton = new OO.ui.ButtonWidget({ label: 'Wayback Machine', icon: 'link', framed: true }); const helpIconWidget = new OO.ui.ButtonWidget({ icon: 'help', framed: false, title: 'Help' }); const waybackButtonGroup = new OO.ui.HorizontalLayout({ items: [waybackButton, helpIconWidget] }); waybackButtonGroup.$element.css({ 'display': 'flex', 'align-items': 'center', 'margin-bottom': '10px' }); waybackButton.$element.css({ 'margin-right': '10px' }); helpIconWidget.$element.css({ 'opacity': '0.7' }).hover( function() { $(this).css('opacity', '1'); }, function() { $(this).css('opacity', '0.7'); } ); const helpPopup = new OO.ui.PopupWidget({ $content: $('<div>') .css({ 'padding': '12px', 'max-width': '300px', 'word-wrap': 'break-word', 'font-size': '14px', 'line-height': '1.5', }) .text('Clicking the Wayback Machine button will open a new page where you can create an archive URL. Copy that archive URL and paste it in the field below.'), padded: true, width: 300, autoClose: true, autoFlip: true }); helpPopup.$element.appendTo(waybackButtonGroup.$element); helpIconWidget.on('click', function() { helpPopup.toggle(); }); waybackButton.on('click', function() { const waybackUrl = 'https://web.archive.org/save/'; const currentUrl = typeof urlInputValueGetter === 'function' ? urlInputValueGetter() : ''; window.open(waybackUrl + encodeURIComponent(currentUrl || ''), '_blank'); }); const archiveLayout = new OO.ui.FieldLayout(archiveUrlInputWidget, { label: 'Archive URL:', align: 'top' }); const waybackFieldset = new OO.ui.FieldsetLayout({ classes: ['wayback-section'] }); waybackFieldset.addItems([waybackButtonGroup, archiveLayout]); return waybackFieldset; }, createCollapsibleParameterSection: function(fieldLayouts, options, dialogInstance, windowManager) { const { label = 'Source Data', initialCollapsed = true } = options; const parameterFieldset = new OO.ui.FieldsetLayout({ label: label, icon: initialCollapsed ? 'expand' : 'collapse', classes: ['parameter-collapsible'], collapsed: initialCollapsed }); parameterFieldset.isCollapsed = initialCollapsed; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').css({ 'cursor': 'pointer', 'background-color': '#f0f0f0', 'padding': '8px 12px', 'margin-top': '12px', 'margin-bottom': '8px', 'border': '1px solid #c8ccd1', 'font-weight': 'bold', 'display': 'flex', 'align-items': 'center', 'justify-content': 'flex-start' }); parameterFieldset.$element.find('.oo-ui-iconElement-icon').css({ 'position': 'relative', 'top': '0', 'margin-top': '0' }); parameterFieldset.$element.css({ 'margin-top': '15px' }); const $group = parameterFieldset.$group; if (initialCollapsed) { $group.hide(); } parameterFieldset.toggleCollapse = function() { this.isCollapsed = !this.isCollapsed; if (this.isCollapsed) { $group.hide(); this.setIcon('expand'); } else { $group.show(); this.setIcon('collapse'); } if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } }; parameterFieldset.$element.find('.oo-ui-fieldsetLayout-header').on('click', function() { parameterFieldset.toggleCollapse(); }); parameterFieldset.addItems(fieldLayouts); parameterFieldset.$element.find('.oo-ui-fieldsetLayout-group').css({ 'padding': '5px 0' }); return parameterFieldset; }, handleFetchButtonAction: async function(urlInputWidget, uiElements, options) { const { fetchButtonWidget, progressBarWidget, notificationCallback, inputFields, parameterFieldset, dialogInstance, windowManager } = uiElements; const sourceUrl = urlInputWidget.getValue(); if (!sourceUrl) { if (typeof notificationCallback === 'function') { notificationCallback('Please enter a URL.', 'warning', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Please enter a URL.', 'warning'); } return; } fetchButtonWidget.setDisabled(true); fetchButtonWidget.setLabel('Loading...'); if(progressBarWidget) progressBarWidget.$element.show(); try { if (!quickSourceUtils.SourceManager) { const errorMsg = 'Error: quickSourceUtils.SourceManager is not available.'; if (typeof notificationCallback === 'function') notificationCallback(errorMsg, 'error'); else quickSourceUtils.ui.showNotification(errorMsg, 'error'); throw new Error(errorMsg); } const result = await quickSourceUtils.SourceManager.fetchSourceData(sourceUrl); if (result.success && result.data) { const fetchedData = result.data; inputFields.titleInput.setValue(fetchedData.title || ''); inputFields.authorInput.setValue(fetchedData.author || ''); inputFields.dateInput.setValue(fetchedData.date || ''); inputFields.publisherInput.setValue(fetchedData.publisher || ''); if(inputFields.archiveUrlInput) inputFields.archiveUrlInput.setValue(fetchedData.archive_url || ''); if (typeof notificationCallback === 'function') { notificationCallback('Source data fetched successfully.', 'success', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification('Source data fetched successfully.', 'success'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } else { throw new Error(result.message || 'No data returned from fetchSourceData.'); } } catch (error) { console.error('Error fetching source data in handleFetchButtonAction:', error); const errorMsg = 'Sorry, we could not fetch the data. Please enter manually.'; if (typeof notificationCallback === 'function') { notificationCallback(errorMsg, 'error', quickSourceUtils.ui.NOTIFICATION_TIMEOUT); } else { quickSourceUtils.ui.showNotification(errorMsg, 'error'); } if (parameterFieldset && parameterFieldset.isCollapsed) { parameterFieldset.toggleCollapse(); } else if (dialogInstance && windowManager && typeof windowManager.updateWindowSize === 'function') { setTimeout(() => { windowManager.updateWindowSize(dialogInstance); }, 50); } else if (dialogInstance && typeof dialogInstance.updateSize === 'function') { setTimeout(() => { dialogInstance.updateSize(); }, 50); } } finally { fetchButtonWidget.setDisabled(false); fetchButtonWidget.setLabel('Fetch'); if(progressBarWidget) progressBarWidget.$element.hide(); } } }; /** * Data Utilities * For handling data transformation and mappings */ quickSourceUtils.data = { templateParamMapping: { 'url': 'url', 'title': 'title', 'date': 'date', 'publisher': 'pub', 'archive_url': 'archiveurl', 'author': 'author' }, gatherSourceDataFromInputs: function(inputFields, useStandardKeys = true) { const sourceData = { url: inputFields.urlInput.getValue(), title: inputFields.titleInput.getValue(), author: inputFields.authorInput.getValue(), date: inputFields.dateInput.getValue(), publisher: inputFields.publisherInput.getValue(), archive_url: inputFields.archiveUrlInput ? inputFields.archiveUrlInput.getValue() : '' }; if (useStandardKeys) { const standardData = {}; for (const key in sourceData) { if (this.templateParamMapping[key]) { standardData[this.templateParamMapping[key]] = sourceData[key]; } else { standardData[key] = sourceData[key]; } } return standardData; } return sourceData; } }; // Load the publisher dataset from the Lua module first, then continue initialization quickSourceUtils.loadPublisherDataset().then(function() { mw.hook('quickSourceUtils.loaded').fire(); }).catch(function(error) { console.error('Error during initialization:', error); mw.hook('quickSourceUtils.loaded').fire(); }); }); /** * Source Editor Tool Script * * This script adds a source button to the wiki editor toolbar for source mode editing. * It allows users to add citation sources with auto-fetching of data from URLs. */ mw.loader.using(['mediawiki.api', 'mediawiki.util', 'oojs-ui', 'oojs-ui-windows', 'ext.wikiEditor'], function() { // Check if we're in a content namespace AND in edit or submit action const relevantNamespaces = mw.config.get('wgNamespaceIds') ? [mw.config.get('wgNamespaceIds')[''], 2] : [0, 2]; if (relevantNamespaces.includes(mw.config.get('wgNamespaceNumber')) && ['edit', 'submit'].includes(mw.config.get('wgAction'))) { const quickSourceEditor = window.quickSourceEditor || {}; window.quickSourceEditor = quickSourceEditor; quickSourceEditor.api = new mw.Api(); const TemplateManager = { wrap(params = {}) { const paramString = Object.entries(params) .filter(([_, value]) => value && value.toString().trim() !== '') .map(([key, value]) => `\n| ${key} = ${value}`) .join(''); return `* {{source${paramString}\n}}`; } }; const ContentManager = { addSourceToSection(content, sourceTemplate) { const sourceSectionRegex = /(==\s*Sources\s*==\s*\n)/i; const sourceSectionMatch = content.match(sourceSectionRegex); if (sourceSectionMatch) { const insertionPoint = sourceSectionMatch.index + sourceSectionMatch[0].length; return content.substring(0, insertionPoint) + sourceTemplate + '\n' + content.substring(insertionPoint); } else { const categoryPattern = /\[\[Category:.+?\]\]/gi; const categoryMatch = content.match(categoryPattern); if (categoryMatch) { const firstCategoryPos = content.search(categoryPattern); return content.substring(0, firstCategoryPos) + '\n== Sources ==\n' + sourceTemplate + '\n\n' + content.substring(firstCategoryPos); } else { return content + '\n\n== Sources ==\n' + sourceTemplate + '\n'; } } } }; const UIManager = { createSourceDialog($textarea) { const windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); function SourceDialog(config) { SourceDialog.super.call(this, config); } OO.inheritClass(SourceDialog, OO.ui.ProcessDialog); SourceDialog.static.name = 'sourceDialog'; SourceDialog.static.title = 'Add Source'; SourceDialog.static.actions = [ { action: 'save', label: 'Save', flags: ['primary', 'progressive'] }, { action: 'cancel', label: 'Cancel', flags: 'safe' } ]; SourceDialog.prototype.initialize = function() { SourceDialog.super.prototype.initialize.apply(this, arguments); this.mainPanelLayout = new OO.ui.PanelLayout({ padded: true, expanded: false }); this.commonInputs = quickSourceUtils.ui.createCommonInputFields(); this.fetchDataButtonWidget = new OO.ui.ButtonWidget({ label: 'Fetch', flags: ['progressive'], icon: 'download' }); this.loadingProgressBarWidget = new OO.ui.ProgressBarWidget({ progress: false }); this.loadingProgressBarWidget.$element.hide(); // Create URL input with fetch button const urlActionLayout = new OO.ui.ActionFieldLayout( this.commonInputs.urlInput, this.fetchDataButtonWidget, { label: 'Enter a URL:', align: 'top' } ); // Parameter fields layouts const titleLayout = new OO.ui.FieldLayout(this.commonInputs.titleInput, { label: 'Title:', align: 'top' }); const authorLayout = new OO.ui.FieldLayout(this.commonInputs.authorInput, { label: 'Author:', align: 'top' }); // Create publisher and date row using the utility function const publisherDateRow = quickSourceUtils.ui.createPublisherDateRow( this.commonInputs.publisherInput, this.commonInputs.dateInput ); this.waybackSection = quickSourceUtils.ui.createWaybackSection( () => this.commonInputs.urlInput.getValue(), this.commonInputs.archiveUrlInput ); const parameterFieldLayouts = [ titleLayout, authorLayout, publisherDateRow, this.waybackSection ]; this.parameterFieldset = quickSourceUtils.ui.createCollapsibleParameterSection( parameterFieldLayouts, { label: 'Source Data', initialCollapsed: true }, this, null ); this.mainPanelLayout.$element.append( urlActionLayout.$element, this.loadingProgressBarWidget.$element, this.parameterFieldset.$element ); this.$body.append(this.mainPanelLayout.$element); this.fetchDataButtonWidget.connect(this, { click: 'onFetchDataButtonClick' }); }; SourceDialog.prototype.onFetchDataButtonClick = function() { const currentDialog = this; quickSourceUtils.ui.handleFetchButtonAction( currentDialog.commonInputs.urlInput, { fetchButtonWidget: currentDialog.fetchDataButtonWidget, progressBarWidget: currentDialog.loadingProgressBarWidget, notificationCallback: function(message, type, timeout) { quickSourceUtils.ui.showNotification(message, type, timeout); }, inputFields: currentDialog.commonInputs, parameterFieldset: currentDialog.parameterFieldset, dialogInstance: currentDialog, windowManager: null } ); }; SourceDialog.prototype.updateSize = function() { windowManager.updateWindowSize(this); }; SourceDialog.prototype.getActionProcess = function(action) { const currentDialog = this; if (action === 'save') { return new OO.ui.Process(function() { const sourceData = quickSourceUtils.data.gatherSourceDataFromInputs(currentDialog.commonInputs, true); quickSourceEditor.insertSource($textarea, sourceData); currentDialog.close({ action: action }); }); } else if (action === 'cancel') { return new OO.ui.Process(function() { currentDialog.close({ action: action }); }); } return SourceDialog.super.prototype.getActionProcess.call(this, action); }; windowManager.addWindows([new SourceDialog()]); windowManager.openWindow('sourceDialog'); } }; quickSourceEditor.insertSource = function($textarea, sourceData) { const sourceTemplate = TemplateManager.wrap(sourceData); const currentText = $textarea.val(); const newText = ContentManager.addSourceToSection(currentText, sourceTemplate); $textarea.val(newText); quickSourceUtils.ui.showNotification('Source template added successfully', 'success'); }; // Hook handler for when the wikiEditor toolbar is ready mw.hook('wikiEditor.toolbarReady').add(function($textarea) { $textarea.wikiEditor('addToToolbar', { section: 'main', groups: { 'source': { tools: { 'add-source': { type: 'element', element: function() { var button = new OO.ui.ButtonInputWidget({ label: 'Source', icon: 'quotes', framed: false }); button.$element.css({ 'padding': '0 5px' }); button.on('click', function() { UIManager.createSourceDialog($textarea); }); return button.$element; } } } } } }); }); } }); ihzic16zxpg19lblzuke40ad95zznop GBU-57A/B MOP 0 166779 664268 2025-06-25T12:20:50Z APatro (WMF) 42535 Auto-created by SectionTranslation:onSectionTranslationBeforePublish 664268 wikitext text/x-wiki {{Short description|American GPS-guided "bunker buster" bomb}} {{Use American English|date=November 2013}} {{Use dmy dates|date=June 2025}} {{Infobox weapon | name = GBU-57A/B Massive Ordnance Penetrator | image = USAF MOP test release crop.jpg | caption = GBU-57 MOP prototype | origin = United States | type = [[Bunker buster]] <!-- Type selection -->| is_ranged = | is_bladed = | is_explosive = yes | is_artillery = | is_vehicle = | is_missile = | is_UK = <!-- Service history --> | service = 2011–present<ref name="Capaccio 2013">{{Cite news |last=Capaccio |first=Tony |date=15 January 2013 |title=Boeing's 30,000-pound bunker-buster bomb improved, Pentagon says |url=https://www.seattletimes.com/business/boeingrsquos-30000-pound-bunker-buster-bomb-improved-pentagon-says/ |access-date=22 June 2025 |work=Seattle Times |location=Seattle, Washington}}</ref> | used_by = [[United States Air Force]] | wars = [[Iran–Israel war]] <!-- Production history -->| designer = | design_date = | manufacturer = [[Boeing]]<ref name="Entous & Barnes 2012" /> | unit_cost = | production_date = | number = at least 20<ref name="Scully 2025">{{Cite news |last=Scully |first=Rachel |date=17 June 2025 |title=What is a 'bunker buster' bomb? |url=https://www.thehill.com/policy/defense/5355443-trump-decision-bunker-busters-iran/ |access-date=22 June 2025 |work=[[The Hill (newspaper)|The Hill]] |quote=As of 2015, Boeing had delivered at least 20 of the bombs. While the exact size of the MOP stockpile is not known, it's understood to be relatively small.}}</ref> | variants = <!-- General | Munitions dropped = specifications --> | spec_label = | weight = {{cvt|27125|lb}}<ref name="Parken 2023" /> | length = {{cvt|20.5|ft|m}}<ref name="DTRA 2007">{{Cite web |last=<!--not stated--> |date=July 2007 |title=DTRA Fact Sheets |url=http://www.dtra.mil/newsservices/fact_sheets/display.cfm?fs=mop |archive-url=https://web.archive.org/web/20090223084920/http://www.dtra.mil/newsservices/fact_sheets/display.cfm?fs=mop |archive-date=23 February 2009 |access-date=17 June 2025 |publisher=[[Defense Threat Reduction Agency]] |location=Fort Belvoir, Virginia}}</ref> | width = | height = | diameter = {{cvt|31.5|in|m|2}}<ref name="DTRA 2007"/> | crew = | passengers = <!-- Ranged weapon specifications --> | cartridge = | cartridge_weight = | caliber = | barrels = | action = | rate = | velocity = | range = | max_range = | feed = | sights = <!-- Artillery specifications --> | breech = | recoil = | carriage = | elevation = | traverse = <!-- Bladed weapon specifications --> | blade_type = | hilt_type = | sheath_type = | head_type = | haft_type = <!-- Explosive specifications --> | filling = AFX-757/PBXN-114 | filling_weight = {{cvt|4590|/|752|lb}}<ref name="Parken 2023">{{Cite news |title=Our Best Look Yet At The Massive Ordnance Penetrator Bunker Buster Bomb |url=https://www.twz.com/our-best-look-yet-at-the-massive-ordnance-penetrator-bunker-buster-bomb | work=[[Popular Science]] |last=Parken |first=Oliver |date=3 May 2023 }}</ref> | detonation = | yield = <!-- Vehicle/missile specifications --> | armour = | primary_armament = | secondary_armament = | engine = | engine_power = | pw_ratio = | transmission = | payload_capacity = | suspension = | clearance = | fuel_capacity = | vehicle_range = | speed = | guidance = | steering = <!-- Missiles only --> | wingspan = | propellant = | ceiling = | altitude = | depth = | boost = | accuracy = | launch_platform = | transport = }} The '''GBU-57 series MOP''' ('''Massive Ordnance Penetrator''') is a {{convert|30000|lb|kg|adj=on}} class, {{convert|20.5|ft|4=-long|adj=mid}} [[precision-guided munition]] "[[bunker buster]]" bomb developed by [[Boeing]] for the [[United States Air Force]] (USAF).<ref name="Parken 2023" /> Composed of a BLU-127 bomb body and an integrated [[GPS/INS]] guidance package, there are seven GBU-57 variants.<ref name="Parken 2023" /> Due to its size and weight, the GBU-57 MOP can only be carried by the [[Northrop B-2 Spirit]] [[strategic bomber]],<ref name="end">{{Cite news |last=Dolzikova |first=Darya |last2=Savill |first2=Matthew |date=1 October 2024 |title=Iran vs. Israel redux: The enormous difficulties and ramifications if Israel attacks Iran's nuclear sites |url=https://thebulletin.org/2024/10/iran-vs-israel-redux-the-enormous-difficulties-and-ramifications-if-israel-attacks-irans-nuclear-sites/ |work=[[Bulletin of the Atomic Scientists]]}}</ref><ref name="cnn_mop">{{Cite news |last=Britzky |first=Haley |last2=Robinson |first2=Lou |date=18 June 2025 |title=Israel has pushed the US to use its 'bunker buster' bomb on Iran. Here's what the weapon can do |url=https://edition.cnn.com/2025/06/18/politics/bunker-buster-weapon-explained-dg |access-date=22 June 2025 |work=[[CNN]]}}</ref> although initial tests were conducted with the [[Boeing B-52 Stratofortress]].<ref name="NDTV2025" /><ref name="ASFM2025" /> The first combat use of the GBU-57 MOP came on 22 June 2025, when seven Northrop B-2 Spirit stealth bombers [[Operation Midnight Hammer|dropped]] a total of fourteen GBU-57 bombs on Iran's [[Fordow Uranium Enrichment Plant]] and [[Natanz Nuclear Facility]]. The bomb is much larger than earlier USAF [[bunker buster]]s such as the {{convert|5000|lb|kg|adj=on|-2}} [[GBU-28]] and [[GBU-37 GPS-Aided Munition|GBU-37]].<ref name="factsheet" /> ==Development and production== Bunker-busting bombs were used in the [[2003 invasion of Iraq]], but failed to penetrate deeply or achieve the desired destruction. This renewed interest in a larger bunker buster, so the [[Defense Threat Reduction Agency]] (DTRA) launched the MOP project.<ref name="factsheet">{{Cite web |date=18 November 2011 |title=Massive Ordnance Penetrator fact sheet |url=https://www.af.mil/About-Us/Fact-Sheets/Display/Article/104614/massive-ordnance-penetrator/ |access-date=22 June 2025 |website=Air Force |publisher=US Air Force}}</ref> In July 2004, USAF asked defense contractors how they might develop a 30,000-pound, precision-guided bomb that could destroy targets deep underground, in caves, or in hardened bunkers.<ref>{{Cite news | url=https://edition.cnn.com/2004/US/07/20/big.bomb/ | title='Bunker busters' may grow to 30,000 pounds | first= Barbara | last=Starr | work=[[CNN]] | date=July 20, 2004}}</ref> The USAF developed a concept for a collection of very large penetrator and blast weapons: the so-called "Big BLU" (Bomb Live Unit) collection, which includes the [[GBU-43/B MOAB]] (Massive Ordnance Air Blast) and the GBU-57 MOP. The MOP was developed by the [[Air Force Research Laboratory]] Munitions Directorate at [[Eglin Air Force Base]], and designed by [[Boeing]] to be used with the [[Northrop B-2 Spirit|B-2 Spirit]]<ref name="2025-GS-MOP" /><ref>{{Cite web |date=18 January 2007 |title=Military & Aerospace Electronics, "Air Force ready to deploy 30,000-pound 'super bomb' on stealthy B-2 jet" |url=https://www.militaryaerospace.com/home/article/16724828/air-force-ready-to-deploy-30000-pound-super-bomb-on-stealthy-b-2-jet-bomber |access-date=22 June 2025}}</ref> and the [[Northrop Grumman B-21 Raider|B-21 Raider]].<ref>{{Cite web |last=Suciu |first=Peter |date=19 May 2021 |title=BANG: The B-21 Raider Is Just Short of Unstoppable |url=https://nationalinterest.org/blog/reboot/bang-b-21-raider-just-short-unstoppable-185558 |access-date=22 June 2025 |website=The National Interest}}</ref> In March 2007, the MOP was tested in a DTRA tunnel at the [[White Sands Missile Range]] in New Mexico. In July 2007, Northrop Grumman received a $2.5 million contract to refit the USAF's B-2s, enabling the aircraft to carry two 14-ton MOPs.<ref name=deagel>{{Cite news |last=<!--not stated--> |date=19 July 2007 |title=Northrop-Grumman to Equip B-2 Bomber with Massive Ordnance Penetrator |url=https://deagel.com/news/n000002435 |access-date=22 June 2025 |agency=Prime Newswire}}</ref> Beginning in 2008, the MOP was tested under various conditions, including on [[rocket sled]]s at [[Holloman High Speed Test Track]] and from [[Boeing B-52 Stratofortress|B-52]] and [[Northrop B-2 Spirit|B-2]] [[strategic bomber]] aircraft at White Sands.<ref name="NDTV2025">{{Cite news |last=<!--not stated--> |date=17 June 2025 |title=Israel Seeks US' Bunker Buster - 14,000 Kg Bomb, To Hit Iran's Nuclear Sites |url=https://www.ndtv.com/world-news/israel-seeks-us-bunker-buster-14-000-kg-bomb-to-hit-irans-nuclear-sites-8691511 |access-date=22 June 2025 |work=NDTV World Desk |publisher=[[NDTV|New Delhi Television Ltd]] |location=New Delhi}}</ref><ref name="ASFM2025">{{Cite magazine |last=<!--not stated--> |date=2025 |title=GBU-57 MOP |url=https://www.airandspaceforces.com/weapons-platforms/gbu-57-mop/ |access-date=22 June 2025 |magazine=Air & Space Forces Magazine |publisher=Air & Space Forces Association |location=Arlington, Virginia}}</ref> In October 2009, the Pentagon had obtained permission from Congress to shift funding to accelerate the project.<ref>{{Cite news |date=October 6, 2009 |title=Is the U.S. Preparing to Bomb Iran? |url=https://abcnews.go.com/Politics/us-preparing-bomb-iran/story?id=8765343 |work=[[ABC News (United States)|ABC News]]}}</ref><ref>{{Cite web |title=Reprogramming action – prior approval |url=https://abcnews.go.com/images/Politics/reprogramming_memo_091006.pdf |access-date=22 June 2025 |website=[[ABC News (United States)|ABC News]]}}</ref> Funding delays and test-schedule changes meant the bomb would not be deployable until December 2010, six months later than planned.<ref>{{Cite news |last=Wolf |first=Jim |date=18 December 2009 |title=Pentagon delays new "bunker buster" bomb |url=https://www.reuters.com/article/idUSTRE5BH5IQ20091218 |work=Reuters}}</ref> In February 2011, Boeing received a $15 million contract for modification and increased testing.<ref>{{Cite news | url=https://www.militaryaerospace.com/defense-executive/article/16717447/boeing-steps-up-testing-of-massive-ordnance-penetrator-mop-30000-pound-bunker-busting-super-bomb | title=Boeing steps-up testing of Massive Ordnance Penetrator (MOP) 30,000-pound bunker-busting super bomb | work=Military Aerospace | date=February 9, 2011}}</ref> In April 2011, the USAF ordered eight MOPs plus supporting equipment for $28 million.<ref>Reed, John. [https://web.archive.org/web/20110413164651/http://www.dodbuzz.com/2011/04/08/usaf-getting-more-penetrating-power/ "USAF Getting More Penetrating Power."] ''DoD Buzz'', 8 April 2011.</ref> The USAF began receiving the MOP in September 2011. In February 2012, Congress approved $81.6 million to further develop and improve the weapon.<ref name="Capaccio 2013"/> In March 2012, there was an "operational stockpile" at [[Whiteman Air Force Base]].<ref>Thompson, Mark. [https://nation.time.com/2012/03/09/key-point-bunker-busters-come-in-both-small-and-large-sizes/ "Key Point: Bunker-Busters Come In Both Small and Large Sizes"]. ''Time''. 9 March 2012.</ref> In 2012, the Pentagon requested $82 million to develop greater penetration power for the existing weapon.<ref name="Entous & Barnes 2012">{{Cite news |last=Entous |first=Adam |last2=Barnes |first2=Julian E. |date=28 January 2012 |title=Pentagon Seeks Mightier Bomb vs. Iran |url=https://www.wsj.com/articles/SB10001424052970203363504577187420287098692 |access-date=22 June 2025 |publisher=[[The Wall Street Journal]]}}</ref> By early 2013, the MOP had been successfully integrated onto the B-2 Spirit.<ref name="Butler2013">{{Cite magazine |last=Butler |first=Amy |date=15 February 2013 |title=Northrop, USAF Explore Diverse B-2 Weapons Options |url=http://www.aviationweek.com/Article.aspx?id=/article-xml/asd_02_15_2013_p04-02-549066.xml |url-status=dead |archive-url=https://web.archive.org/web/20130510074705/http://www.aviationweek.com/Article.aspx?id=/article-xml/asd_02_15_2013_p04-02-549066.xml |archive-date=10 May 2013 |access-date=22 June 2025 |magazine=[[Aviation Week & Space Technology]]}}</ref> At least 20 of the bombs were built and delivered to the USAF by November 2015.<ref>{{Cite news |last=Uchimiya |first=Ellen |date=June 21, 2025 |title=What to know about the MOP and the B-2, the bunker-buster bomb and plane that could be used to strike Iran |url=https://www.cbsnews.com/news/massive-ordnance-penetrator-bomb-gbu-57-b-2-bomber-iran-fordo-nuclear-facility/ |work=[[CBS News]]}}</ref> In April 2019, Boeing received a $21 million contract modification for production of more bombs.<ref>{{Cite news | url=https://www.defenseindustrydaily.com/mopping-up-the-usas-30000-pound-bomb-03172/ | title=MOPping Up: The USA’s 30,000 Pound GBU-57 Bomb | work=Defense Industry Daily | date=April 16, 2019}}</ref> In October 2019, the USAF awarded $90 million in contracts for the production of an unspecified number of case assemblies for the BLU-127C/B warhead to be used in the bomb.<ref name=updates>{{Cite news |title=Air Force Updates Massive Ordnance Penetrator Bombs Amid New Iranian Nuclear Posturing |url=https://www.twz.com/30872/air-force-updates-massive-ordnance-penetrator-bombs-amid-new-iranian-nuclear-posturing | work=[[Popular Science]] |date=13 November 2019}}</ref> ==Key components== The GBU-57 uses a BLU-127 series bomb as the explosive component. The BLU-127 series bombs feature modular design that allows for incremental improvements and future upgrades.<ref name="Parken 2023" /><ref>{{Cite web |title=Boeing GBU-57/B MOP |url=https://www.designation-systems.net/dusrm/app5/mop.html |access-date=22 June 2025 |website=www.designation-systems.net}}</ref> One variant of the BLU-127 bomb body contains {{convert|4590|lb|0}} of AFX-757 and {{convert|752|lb|0}} of PBXN-114, a [[polymer-bonded explosive]] (PBX), for a total explosive payload of {{convert|5342|lb|0}}. The PBX is optimized for controlled detonation in confined spaces. The bomb's casing is made from high-density [[Eglin steel]] alloy, engineered to survive the extreme stresses of deep penetration before detonation.<ref name="Parken 2023"/><ref name="debuglies">{{Cite web |last=admin |date=7 February 2025 |title=The Evolution and Strategic Imperative of the GBU-57/B Massive Ordnance Penetrator in Modern Warfare |url=https://debuglies.com/2025/02/07/the-evolution-and-strategic-imperative-of-the-gbu-57-b-massive-ordnance-penetrator-in-modern-warfare/ |access-date=22 June 2025 |website=debuglies.com |language=it-IT}}</ref><ref>{{Cite web |date=28 December 2012 |title=Massive Ordnance Penetrator |url=https://www.dote.osd.mil/Portals/97/pub/reports/FY2012/af/2012mop.pdf |website=www.dote.osd.mil |publisher=Air Force Programs}}</ref> The GBU-57 is a [[precision-guided munition]] equipped with an integrated [[GPS/INS]] guidance package, and therefore does not require the addition of a [[Joint Direct Attack Munition]] guidance package. This integrated system enables the bomb to strike within meters of its intended target.<ref>{{Cite web |last=AirPra |date=30 September 2023 |title=Know The Best Of The GBU-57 Massive Ordnance Penetrator |url=https://airpra.com/know-the-best-of-the-gbu-57-massive-ordnance-penetrator/ |access-date=22 June 2025}}</ref> Detonation timing is managed by the Large Penetrator Smart Fuze (LPSF), which adjusts the moment of explosion based on impact depth and the characteristics of the underground structure.<ref name="debuglies" /> In flight, the bomb is stabilized by [[grid fin]]s, which help maintain trajectory and allow for mid-course adjustments.<ref name="globalsecurity">{{Cite web |title=GBU-57/B Massive Ordnance Penetrator (MOP) |url=https://aviationweek.com/?id=/article-xml/AW_09_17_2012_p56-492712.xml |access-date=22 June 2025 |website=www.globalsecurity.org}}</ref> The GBU-57 uses grid fins as opposed to the [[Fin|planar fins]] found on most conventional bombs due to their greater control at the high [[Mach number|mach]] flight regimes the bomb operates under, as well as their ability to fold for storage in a [[Northrop B-2 Spirit|B-2]]'s [[Bomb bay|bomb bays]]. As grid fins have higher drag than planar fins at any given mach number, their size is usually decreased to compensate while maintaining maneuverability. ==Combat use== ===US airstrikes on Iranian nuclear facilities=== There has been significant debate over whether the GBU-57 Massive Ordnance Penetrator (MOP) can reliably destroy Iran’s deeply buried nuclear sites at Natanz and Fordow. The Fordow facility and the new halls under construction at Natanz are thought to lie more than 80 m underground, whereas the original Natanz enrichment plant sits roughly 20 m below the surface.<ref>{{cite web |title=America’s huge bunker-busting bomb is not sure to work in Iran |url=https://www.economist.com/graphic-detail/2025/06/18/americas-huge-bunker-busting-bomb-is-not-sure-to-work-in-iran}}</ref> The MOP is reportedly able to penetrate through about 18 m of reinforced concrete with a compressive strength of 5,000 psi.<ref name="2025-BBC-Fordo">{{Cite web |last=BBC Verify and the Visual Journalism team |date=18 June 2025 |title=Iran's secretive nuclear site that only a US bomb could hit |url=https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-url=https://web.archive.org/web/20250620075543/https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-date=2025-06-20 |access-date=22 June 2025 |website=BBC News |publisher=BBC |quote="The MOP’s heavy casing and weight allows it to penetrate about 18m of concrete or 61m of earth before exploding, according to analysts at Janes"}}</ref><ref>{{cite web |title=GBU-57/B Massive Ordnance Penetrator (MOP) |url=https://www.globalsecurity.org/military/systems/munitions/mop.htm}}</ref> Iranian domestic research has produced concrete exceeding 30,000 psi, a level that could sharply reduce the bomb’s effective penetration depth.<ref>{{cite web |title=America’s huge bunker-busting bomb is not sure to work in Iran |url=https://www.economist.com/graphic-detail/2025/06/18/americas-huge-bunker-busting-bomb-is-not-sure-to-work-in-iran}}</ref> Complicating matters further is the possibility of deflection or yaw caused by advanced bunker-shell construction techniques.<ref>{{cite web |title=BUNKER BUSTER BOMB Myth / MIT Prof Ted Postol & Lt Col Daniel Davis |url=https://www.youtube.com/watch?v=TriASB-F5UY}}</ref> The first combat use of the GBU-57 MOP was during the [[United States strikes on Iranian nuclear sites]] on 22 June 2025,<ref name="NYT20250622">{{Cite web |last=Cooper |first=Helene |date=21 June 2025 |title=U.S. Military Is Pulled Back Into Middle East Wars |url=https://www.nytimes.com/2025/06/21/us/politics/military-middle-east-wars.html |access-date=22 June 2025 |website=[[The New York Times]] |quote=The attack was the first time the U.S. military had used the weapon in combat.}}</ref><ref>{{Cite news |last=Allison |first=George |date=22 June 2025 |title=B-2 stealth bombers strike Iran's nuclear facilities |url=https://ukdefencejournal.org.uk/b-2-stealth-bombers-strike-irans-nuclear-facilities/ |access-date=22 June 2025 |work=UK Defence Journal}}</ref> when seven [[Northrop B-2 Spirit]] [[Stealth Bombers|stealth bombers]] dropped a total of fourteen GBU-57 bombs, twelve on the [[Fordow Uranium Enrichment Plant]] and two on the [[Natanz Nuclear Facility]].<ref name="Mongilio 2025">{{Cite news |last=Mongilio |first=Heather |last2=Lagrone |first2=Sam |date=22 June 2025 |title=Operation Midnight Hammer Drops 14 Bunker Busters in Record B-2 Strike Against Iranian Nuclear Sites |url=https://news.usni.org/2025/06/21/u-s-strikes-3-iranian-nuclear-sites-using-b-2s-sub-launched-tomahawks |access-date=22 June 2025 |work=USNI News |publisher=U.S. Naval Institute |location=Annapolis, Maryland}}</ref><ref>{{Cite web |title=U.S. Bombs Iran Live Updates: Trump Says Iran's Nuclear Sites "Completely and Totally Obliterated" in Speech |url=https://www.wsj.com/livecoverage/iran-israel-conflict-latest-news |access-date=2025-06-22 |website=WSJ |language=en-US}}</ref> According to [[Dan Caine|General Dan Caine]], Chairman of the [[Joint Chiefs of Staff|U.S Joint Chiefs of Staff]], both sites sustained severe damage.<ref>{{Cite web |title=Bombing Inflicted Severe Damage, Pentagon Says |url=https://www.wsj.com/livecoverage/iran-israel-conflict-latest-news/card/bombing-inflicted-severe-damage-pentagon-says-xe3Zg4JYmAfTXLwad7tJ |access-date=2025-06-22 |website=WSJ |language=en-US}}</ref> Darya Dolzikova, Senior Research Fellow at [[RUSI]], argues that the exact damage to the facilities is unclear.<ref>{{cite web |title=RUSI Experts React to US Strikes on Iran's Nuclear Facilities |url=https://www.rusi.org/explore-our-research/publications/commentary/rusi-experts-react-us-strikes-irans-nuclear-facilities}}</ref> Rafael Grossi, director general in [[IAEA]] said “no one, including the IAEA, is in a position to have fully assessed the underground damage at Fordow”, it is expected to be “very significant”.<ref>{{cite web |title=UN nuclear chief estimates damage to Iran’s facilities ‘very significant’ |url=https://www.aljazeera.com/news/2025/6/23/un-nuclear-chief-estimates-damage-to-irans-facilities-very-significant}}</ref> CNN reported that the strikes "did not destroy the core components" of the facilities.<ref>{{Cite web |last=Bertrand |first=Natasha |last2=Lillis |first2=Katie Bo |last3=Cohen |first3=Zachary |date=2025-06-24 |title=Exclusive: Early US intel assessment suggests strikes on Iran did not destroy nuclear sites, sources say {{!}} CNN Politics |url=https://www.cnn.com/2025/06/24/politics/intel-assessment-us-strikes-iran-nuclear-sites |access-date=2025-06-24 |website=CNN |language=en}}</ref> ==Specifications and capabilities== * '''Length''': {{convert|20.5|ft|m|1}}<ref name="DTRA 2007"/> * '''Diameter''': {{convert|31.5|in|m|1}}<ref name="DTRA 2007"/> * '''BLU-127 bomb body weight''': {{convert|27125|lb|kg|0}}<ref name="Parken 2023"/> * '''Explosive weight''': {{convert|5342|lb|0}}<ref name="Parken 2023"/> ** '''AFX-757''': {{convert|4590|lb|0}}<ref name="Parken 2023"/> ** '''PBXN-114''': {{convert|752|lb|0}}<ref name="Parken 2023"/> * '''Penetration''': (debated) There is debate regarding the penetration capabilities of the bomb. The US Air Force has said that the GBU-57 can penetrate up to {{convert|200|ft|m|abbr=on|sigfig=1}} of unspecified material before exploding.<ref name="milestone">{{Cite web |title=Future 30,000-pound bomb reaches mile stone |url=https://www.acc.af.mil/News/Features/Display/Article/204431/future-30000-pound-bomb-reaches-mile-stone/ |archive-url=http://web.archive.org/web/20231211033254/https://www.acc.af.mil/News/Features/Display/Article/204431/future-30000-pound-bomb-reaches-mile-stone/ |archive-date=2023-12-11 |website=Air Combat Command}}</ref> The BBC reports that analysts at [[Janes Information Services|Janes]] say the weapon can penetrate about {{convert|60|m|ft|abbr=on|order=flip}} of earth or {{convert|18|m|ft|abbr=on|order=flip|-1}} of concrete.<ref name="2025-BBC-Fordo">{{Cite web |last=BBC Verify and the Visual Journalism team |date=18 June 2025 |title=Iran's secretive nuclear site that only a US bomb could hit |url=https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-url=https://web.archive.org/web/20250620075543/https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-date=2025-06-20 |access-date=22 June 2025 |website=BBC News |publisher=BBC |quote="The MOP’s heavy casing and weight allows it to penetrate about 18m of concrete or 61m of earth before exploding, according to analysts at Janes"}}</ref> This is consistent with a separate source which suggests penetration of up to {{convert|18|m|ft|abbr=on|order=flip|-1}} into [[Concrete#Properties|reinforced concrete]] with a compressive strength of {{convert|5000|psi|MPa|abbr=on}} and {{convert|8|ft|m|abbr=on}} into {{convert|10000|psi|MPa|abbr=on}} reinforced concrete.<ref name="2025-GS-MOP">{{Cite web |title=GBU-57/B Massive Ordnance Penetrator (MOP) |url=https://www.globalsecurity.org/military/systems/munitions/mop.htm}}</ref> The MOP does not have a void-sensing fuze and detonates only after it comes to a stop, even if it has passed the target area.<ref>{{Cite web |last=Butler |first=Amy |date=17 September 2012 |title=Curbed Ambitions: Hard targets pose a near-term problem as USAF explores weapon and fuze options |url=https://archive.aviationweek.com/issue/20120917#!&pid=56 |url-access=subscription |website=[[Aviation Week]] |pages=56–58}}</ref> Operationally, the MOP can be dropped only by the [[B-2 Spirit]], which can carry up to two of the bombs. The [[B-21 Raider]] is slated to carry it.<ref>{{Cite web |last=Atlamazoglou |first=Stavros |date=16 December 2024 |title=The Massive GBU-57A/B MOP Was Built for a War with China |url=https://nationalinterest.org/blog/buzz/massive-gbu-57ab-mop-was-built-war-china-214075 |access-date=22 June 2025 |website=The National Interest}}</ref><ref name="debuglies" /> The [[B-52]] has been used during weapons testing of the MOP, but requires modifications to carry the bomb.<ref name="Parken 2023"/> ==Users== *{{Flagu|United States}} **{{Air force|United States|size=23px}} – At least 20 in service as of November 2015.<ref name="Scully 2025"/> ==Gallery== <gallery widths="250px" heights="250px" > File:Off loading of MOP cropped.jpg|MOP being offloaded in preparation for its first explosive test, 2007. File:Inside Tunnel MOP cropped.jpg|MOP underground at [[White Sands Missile Range]] before its first explosive test, 2007. File:MOP in the B-2 bomb bay.jpg|Mock up of MOP inside a bomb bay of a B-2 simulator, 2007. File:B-52 releases the MOP during a weapons test.jpg|[[B-52]] releases a MOP during a weapons test, 2009. </gallery> ==See also== * [[Earthquake bomb]] * [[Thermobaric weapon]] ;Specific large bombs * [[BLU-82]] Daisy Cutter bomb * [[Father of All Bombs]] * [[Mother of All Bombs|GBU-43/B Mother of All Bombs]], another very large US bomb * [[Grand Slam (bomb)]] * [[T-12 Cloudmaker]] * [[Tallboy (bomb)]] * [[FAB-9000]] ==References== {{Reflist}} ==External links== {{Commons category|Massive Ordnance Penetrator}} * [https://www.af.mil/About-Us/Fact-Sheets/Display/Article/104614/massive-ordnance-penetrator/ Massive Ordnance Penetrator Fact Sheet] {{USAF equipment}} [[Category:Anti-fortification weapons]] [[Category:Boeing]] [[Category:Guided bombs of the United States]] [[Category:Military equipment introduced in the 2010s]] 7uxqgn6qqrfv3qyf60n4ivtd4ibgqej 664269 664268 2025-06-25T12:20:51Z APatro (WMF) 42535 Created by translating the section "Desarrollo" from the page "[[:es:Special:Redirect/revision/168136907|GBU-57]]" 664269 wikitext text/x-wiki {{Short description|American GPS-guided "bunker buster" bomb}} {{Use American English|date=November 2013}} {{Use dmy dates|date=June 2025}} {{Infobox weapon | name = GBU-57A/B Massive Ordnance Penetrator | image = USAF MOP test release crop.jpg | caption = GBU-57 MOP prototype | origin = United States | type = [[Bunker buster]] <!-- Type selection -->| is_ranged = | is_bladed = | is_explosive = yes | is_artillery = | is_vehicle = | is_missile = | is_UK = <!-- Service history --> | service = 2011–present<ref name="Capaccio 2013">{{Cite news |last=Capaccio |first=Tony |date=15 January 2013 |title=Boeing's 30,000-pound bunker-buster bomb improved, Pentagon says |url=https://www.seattletimes.com/business/boeingrsquos-30000-pound-bunker-buster-bomb-improved-pentagon-says/ |access-date=22 June 2025 |work=Seattle Times |location=Seattle, Washington}}</ref> | used_by = [[United States Air Force]] | wars = [[Iran–Israel war]] <!-- Production history -->| designer = | design_date = | manufacturer = [[Boeing]]<ref name="Entous & Barnes 2012" /> | unit_cost = | production_date = | number = at least 20<ref name="Scully 2025">{{Cite news |last=Scully |first=Rachel |date=17 June 2025 |title=What is a 'bunker buster' bomb? |url=https://www.thehill.com/policy/defense/5355443-trump-decision-bunker-busters-iran/ |access-date=22 June 2025 |work=[[The Hill (newspaper)|The Hill]] |quote=As of 2015, Boeing had delivered at least 20 of the bombs. While the exact size of the MOP stockpile is not known, it's understood to be relatively small.}}</ref> | variants = <!-- General | Munitions dropped = specifications --> | spec_label = | weight = {{cvt|27125|lb}}<ref name="Parken 2023" /> | length = {{cvt|20.5|ft|m}}<ref name="DTRA 2007">{{Cite web |last=<!--not stated--> |date=July 2007 |title=DTRA Fact Sheets |url=http://www.dtra.mil/newsservices/fact_sheets/display.cfm?fs=mop |archive-url=https://web.archive.org/web/20090223084920/http://www.dtra.mil/newsservices/fact_sheets/display.cfm?fs=mop |archive-date=23 February 2009 |access-date=17 June 2025 |publisher=[[Defense Threat Reduction Agency]] |location=Fort Belvoir, Virginia}}</ref> | width = | height = | diameter = {{cvt|31.5|in|m|2}}<ref name="DTRA 2007"/> | crew = | passengers = <!-- Ranged weapon specifications --> | cartridge = | cartridge_weight = | caliber = | barrels = | action = | rate = | velocity = | range = | max_range = | feed = | sights = <!-- Artillery specifications --> | breech = | recoil = | carriage = | elevation = | traverse = <!-- Bladed weapon specifications --> | blade_type = | hilt_type = | sheath_type = | head_type = | haft_type = <!-- Explosive specifications --> | filling = AFX-757/PBXN-114 | filling_weight = {{cvt|4590|/|752|lb}}<ref name="Parken 2023">{{Cite news |title=Our Best Look Yet At The Massive Ordnance Penetrator Bunker Buster Bomb |url=https://www.twz.com/our-best-look-yet-at-the-massive-ordnance-penetrator-bunker-buster-bomb | work=[[Popular Science]] |last=Parken |first=Oliver |date=3 May 2023 }}</ref> | detonation = | yield = <!-- Vehicle/missile specifications --> | armour = | primary_armament = | secondary_armament = | engine = | engine_power = | pw_ratio = | transmission = | payload_capacity = | suspension = | clearance = | fuel_capacity = | vehicle_range = | speed = | guidance = | steering = <!-- Missiles only --> | wingspan = | propellant = | ceiling = | altitude = | depth = | boost = | accuracy = | launch_platform = | transport = }} The '''GBU-57 series MOP''' ('''Massive Ordnance Penetrator''') is a {{convert|30000|lb|kg|adj=on}} class, {{convert|20.5|ft|4=-long|adj=mid}} [[precision-guided munition]] "[[bunker buster]]" bomb developed by [[Boeing]] for the [[United States Air Force]] (USAF).<ref name="Parken 2023" /> Composed of a BLU-127 bomb body and an integrated [[GPS/INS]] guidance package, there are seven GBU-57 variants.<ref name="Parken 2023" /> Due to its size and weight, the GBU-57 MOP can only be carried by the [[Northrop B-2 Spirit]] [[strategic bomber]],<ref name="end">{{Cite news |last=Dolzikova |first=Darya |last2=Savill |first2=Matthew |date=1 October 2024 |title=Iran vs. Israel redux: The enormous difficulties and ramifications if Israel attacks Iran's nuclear sites |url=https://thebulletin.org/2024/10/iran-vs-israel-redux-the-enormous-difficulties-and-ramifications-if-israel-attacks-irans-nuclear-sites/ |work=[[Bulletin of the Atomic Scientists]]}}</ref><ref name="cnn_mop">{{Cite news |last=Britzky |first=Haley |last2=Robinson |first2=Lou |date=18 June 2025 |title=Israel has pushed the US to use its 'bunker buster' bomb on Iran. Here's what the weapon can do |url=https://edition.cnn.com/2025/06/18/politics/bunker-buster-weapon-explained-dg |access-date=22 June 2025 |work=[[CNN]]}}</ref> although initial tests were conducted with the [[Boeing B-52 Stratofortress]].<ref name="NDTV2025" /><ref name="ASFM2025" /> The first combat use of the GBU-57 MOP came on 22 June 2025, when seven Northrop B-2 Spirit stealth bombers [[Operation Midnight Hammer|dropped]] a total of fourteen GBU-57 bombs on Iran's [[Fordow Uranium Enrichment Plant]] and [[Natanz Nuclear Facility]]. The bomb is much larger than earlier USAF [[bunker buster]]s such as the {{convert|5000|lb|kg|adj=on|-2}} [[GBU-28]] and [[GBU-37 GPS-Aided Munition|GBU-37]].<ref name="factsheet" /> ==Development and production== Bunker-busting bombs were used in the [[2003 invasion of Iraq]], but failed to penetrate deeply or achieve the desired destruction. This renewed interest in a larger bunker buster, so the [[Defense Threat Reduction Agency]] (DTRA) launched the MOP project.<ref name="factsheet">{{Cite web |date=18 November 2011 |title=Massive Ordnance Penetrator fact sheet |url=https://www.af.mil/About-Us/Fact-Sheets/Display/Article/104614/massive-ordnance-penetrator/ |access-date=22 June 2025 |website=Air Force |publisher=US Air Force}}</ref> In July 2004, USAF asked defense contractors how they might develop a 30,000-pound, precision-guided bomb that could destroy targets deep underground, in caves, or in hardened bunkers.<ref>{{Cite news | url=https://edition.cnn.com/2004/US/07/20/big.bomb/ | title='Bunker busters' may grow to 30,000 pounds | first= Barbara | last=Starr | work=[[CNN]] | date=July 20, 2004}}</ref> The USAF developed a concept for a collection of very large penetrator and blast weapons: the so-called "Big BLU" (Bomb Live Unit) collection, which includes the [[GBU-43/B MOAB]] (Massive Ordnance Air Blast) and the GBU-57 MOP. The MOP was developed by the [[Air Force Research Laboratory]] Munitions Directorate at [[Eglin Air Force Base]], and designed by [[Boeing]] to be used with the [[Northrop B-2 Spirit|B-2 Spirit]]<ref name="2025-GS-MOP" /><ref>{{Cite web |date=18 January 2007 |title=Military & Aerospace Electronics, "Air Force ready to deploy 30,000-pound 'super bomb' on stealthy B-2 jet" |url=https://www.militaryaerospace.com/home/article/16724828/air-force-ready-to-deploy-30000-pound-super-bomb-on-stealthy-b-2-jet-bomber |access-date=22 June 2025}}</ref> and the [[Northrop Grumman B-21 Raider|B-21 Raider]].<ref>{{Cite web |last=Suciu |first=Peter |date=19 May 2021 |title=BANG: The B-21 Raider Is Just Short of Unstoppable |url=https://nationalinterest.org/blog/reboot/bang-b-21-raider-just-short-unstoppable-185558 |access-date=22 June 2025 |website=The National Interest}}</ref> In March 2007, the MOP was tested in a DTRA tunnel at the [[White Sands Missile Range]] in New Mexico. In July 2007, Northrop Grumman received a $2.5 million contract to refit the USAF's B-2s, enabling the aircraft to carry two 14-ton MOPs.<ref name=deagel>{{Cite news |last=<!--not stated--> |date=19 July 2007 |title=Northrop-Grumman to Equip B-2 Bomber with Massive Ordnance Penetrator |url=https://deagel.com/news/n000002435 |access-date=22 June 2025 |agency=Prime Newswire}}</ref> Beginning in 2008, the MOP was tested under various conditions, including on [[rocket sled]]s at [[Holloman High Speed Test Track]] and from [[Boeing B-52 Stratofortress|B-52]] and [[Northrop B-2 Spirit|B-2]] [[strategic bomber]] aircraft at White Sands.<ref name="NDTV2025">{{Cite news |last=<!--not stated--> |date=17 June 2025 |title=Israel Seeks US' Bunker Buster - 14,000 Kg Bomb, To Hit Iran's Nuclear Sites |url=https://www.ndtv.com/world-news/israel-seeks-us-bunker-buster-14-000-kg-bomb-to-hit-irans-nuclear-sites-8691511 |access-date=22 June 2025 |work=NDTV World Desk |publisher=[[NDTV|New Delhi Television Ltd]] |location=New Delhi}}</ref><ref name="ASFM2025">{{Cite magazine |last=<!--not stated--> |date=2025 |title=GBU-57 MOP |url=https://www.airandspaceforces.com/weapons-platforms/gbu-57-mop/ |access-date=22 June 2025 |magazine=Air & Space Forces Magazine |publisher=Air & Space Forces Association |location=Arlington, Virginia}}</ref> In October 2009, the Pentagon had obtained permission from Congress to shift funding to accelerate the project.<ref>{{Cite news |date=October 6, 2009 |title=Is the U.S. Preparing to Bomb Iran? |url=https://abcnews.go.com/Politics/us-preparing-bomb-iran/story?id=8765343 |work=[[ABC News (United States)|ABC News]]}}</ref><ref>{{Cite web |title=Reprogramming action – prior approval |url=https://abcnews.go.com/images/Politics/reprogramming_memo_091006.pdf |access-date=22 June 2025 |website=[[ABC News (United States)|ABC News]]}}</ref> Funding delays and test-schedule changes meant the bomb would not be deployable until December 2010, six months later than planned.<ref>{{Cite news |last=Wolf |first=Jim |date=18 December 2009 |title=Pentagon delays new "bunker buster" bomb |url=https://www.reuters.com/article/idUSTRE5BH5IQ20091218 |work=Reuters}}</ref> In February 2011, Boeing received a $15 million contract for modification and increased testing.<ref>{{Cite news | url=https://www.militaryaerospace.com/defense-executive/article/16717447/boeing-steps-up-testing-of-massive-ordnance-penetrator-mop-30000-pound-bunker-busting-super-bomb | title=Boeing steps-up testing of Massive Ordnance Penetrator (MOP) 30,000-pound bunker-busting super bomb | work=Military Aerospace | date=February 9, 2011}}</ref> In April 2011, the USAF ordered eight MOPs plus supporting equipment for $28 million.<ref>Reed, John. [https://web.archive.org/web/20110413164651/http://www.dodbuzz.com/2011/04/08/usaf-getting-more-penetrating-power/ "USAF Getting More Penetrating Power."] ''DoD Buzz'', 8 April 2011.</ref> The USAF began receiving the MOP in September 2011. In February 2012, Congress approved $81.6 million to further develop and improve the weapon.<ref name="Capaccio 2013"/> In March 2012, there was an "operational stockpile" at [[Whiteman Air Force Base]].<ref>Thompson, Mark. [https://nation.time.com/2012/03/09/key-point-bunker-busters-come-in-both-small-and-large-sizes/ "Key Point: Bunker-Busters Come In Both Small and Large Sizes"]. ''Time''. 9 March 2012.</ref> In 2012, the Pentagon requested $82 million to develop greater penetration power for the existing weapon.<ref name="Entous & Barnes 2012">{{Cite news |last=Entous |first=Adam |last2=Barnes |first2=Julian E. |date=28 January 2012 |title=Pentagon Seeks Mightier Bomb vs. Iran |url=https://www.wsj.com/articles/SB10001424052970203363504577187420287098692 |access-date=22 June 2025 |publisher=[[The Wall Street Journal]]}}</ref> By early 2013, the MOP had been successfully integrated onto the B-2 Spirit.<ref name="Butler2013">{{Cite magazine |last=Butler |first=Amy |date=15 February 2013 |title=Northrop, USAF Explore Diverse B-2 Weapons Options |url=http://www.aviationweek.com/Article.aspx?id=/article-xml/asd_02_15_2013_p04-02-549066.xml |url-status=dead |archive-url=https://web.archive.org/web/20130510074705/http://www.aviationweek.com/Article.aspx?id=/article-xml/asd_02_15_2013_p04-02-549066.xml |archive-date=10 May 2013 |access-date=22 June 2025 |magazine=[[Aviation Week & Space Technology]]}}</ref> At least 20 of the bombs were built and delivered to the USAF by November 2015.<ref>{{Cite news |last=Uchimiya |first=Ellen |date=June 21, 2025 |title=What to know about the MOP and the B-2, the bunker-buster bomb and plane that could be used to strike Iran |url=https://www.cbsnews.com/news/massive-ordnance-penetrator-bomb-gbu-57-b-2-bomber-iran-fordo-nuclear-facility/ |work=[[CBS News]]}}</ref> In April 2019, Boeing received a $21 million contract modification for production of more bombs.<ref>{{Cite news | url=https://www.defenseindustrydaily.com/mopping-up-the-usas-30000-pound-bomb-03172/ | title=MOPping Up: The USA’s 30,000 Pound GBU-57 Bomb | work=Defense Industry Daily | date=April 16, 2019}}</ref> In October 2019, the USAF awarded $90 million in contracts for the production of an unspecified number of case assemblies for the BLU-127C/B warhead to be used in the bomb.<ref name=updates>{{Cite news |title=Air Force Updates Massive Ordnance Penetrator Bombs Amid New Iranian Nuclear Posturing |url=https://www.twz.com/30872/air-force-updates-massive-ordnance-penetrator-bombs-amid-new-iranian-nuclear-posturing | work=[[Popular Science]] |date=13 November 2019}}</ref> ==Key components== The GBU-57 uses a BLU-127 series bomb as the explosive component. The BLU-127 series bombs feature modular design that allows for incremental improvements and future upgrades.<ref name="Parken 2023" /><ref>{{Cite web |title=Boeing GBU-57/B MOP |url=https://www.designation-systems.net/dusrm/app5/mop.html |access-date=22 June 2025 |website=www.designation-systems.net}}</ref> One variant of the BLU-127 bomb body contains {{convert|4590|lb|0}} of AFX-757 and {{convert|752|lb|0}} of PBXN-114, a [[polymer-bonded explosive]] (PBX), for a total explosive payload of {{convert|5342|lb|0}}. The PBX is optimized for controlled detonation in confined spaces. The bomb's casing is made from high-density [[Eglin steel]] alloy, engineered to survive the extreme stresses of deep penetration before detonation.<ref name="Parken 2023"/><ref name="debuglies">{{Cite web |last=admin |date=7 February 2025 |title=The Evolution and Strategic Imperative of the GBU-57/B Massive Ordnance Penetrator in Modern Warfare |url=https://debuglies.com/2025/02/07/the-evolution-and-strategic-imperative-of-the-gbu-57-b-massive-ordnance-penetrator-in-modern-warfare/ |access-date=22 June 2025 |website=debuglies.com |language=it-IT}}</ref><ref>{{Cite web |date=28 December 2012 |title=Massive Ordnance Penetrator |url=https://www.dote.osd.mil/Portals/97/pub/reports/FY2012/af/2012mop.pdf |website=www.dote.osd.mil |publisher=Air Force Programs}}</ref> The GBU-57 is a [[precision-guided munition]] equipped with an integrated [[GPS/INS]] guidance package, and therefore does not require the addition of a [[Joint Direct Attack Munition]] guidance package. This integrated system enables the bomb to strike within meters of its intended target.<ref>{{Cite web |last=AirPra |date=30 September 2023 |title=Know The Best Of The GBU-57 Massive Ordnance Penetrator |url=https://airpra.com/know-the-best-of-the-gbu-57-massive-ordnance-penetrator/ |access-date=22 June 2025}}</ref> Detonation timing is managed by the Large Penetrator Smart Fuze (LPSF), which adjusts the moment of explosion based on impact depth and the characteristics of the underground structure.<ref name="debuglies" /> In flight, the bomb is stabilized by [[grid fin]]s, which help maintain trajectory and allow for mid-course adjustments.<ref name="globalsecurity">{{Cite web |title=GBU-57/B Massive Ordnance Penetrator (MOP) |url=https://aviationweek.com/?id=/article-xml/AW_09_17_2012_p56-492712.xml |access-date=22 June 2025 |website=www.globalsecurity.org}}</ref> The GBU-57 uses grid fins as opposed to the [[Fin|planar fins]] found on most conventional bombs due to their greater control at the high [[Mach number|mach]] flight regimes the bomb operates under, as well as their ability to fold for storage in a [[Northrop B-2 Spirit|B-2]]'s [[Bomb bay|bomb bays]]. As grid fins have higher drag than planar fins at any given mach number, their size is usually decreased to compensate while maintaining maneuverability. ==Combat use== ===US airstrikes on Iranian nuclear facilities=== There has been significant debate over whether the GBU-57 Massive Ordnance Penetrator (MOP) can reliably destroy Iran’s deeply buried nuclear sites at Natanz and Fordow. The Fordow facility and the new halls under construction at Natanz are thought to lie more than 80 m underground, whereas the original Natanz enrichment plant sits roughly 20 m below the surface.<ref>{{cite web |title=America’s huge bunker-busting bomb is not sure to work in Iran |url=https://www.economist.com/graphic-detail/2025/06/18/americas-huge-bunker-busting-bomb-is-not-sure-to-work-in-iran}}</ref> The MOP is reportedly able to penetrate through about 18 m of reinforced concrete with a compressive strength of 5,000 psi.<ref name="2025-BBC-Fordo">{{Cite web |last=BBC Verify and the Visual Journalism team |date=18 June 2025 |title=Iran's secretive nuclear site that only a US bomb could hit |url=https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-url=https://web.archive.org/web/20250620075543/https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-date=2025-06-20 |access-date=22 June 2025 |website=BBC News |publisher=BBC |quote="The MOP’s heavy casing and weight allows it to penetrate about 18m of concrete or 61m of earth before exploding, according to analysts at Janes"}}</ref><ref>{{cite web |title=GBU-57/B Massive Ordnance Penetrator (MOP) |url=https://www.globalsecurity.org/military/systems/munitions/mop.htm}}</ref> Iranian domestic research has produced concrete exceeding 30,000 psi, a level that could sharply reduce the bomb’s effective penetration depth.<ref>{{cite web |title=America’s huge bunker-busting bomb is not sure to work in Iran |url=https://www.economist.com/graphic-detail/2025/06/18/americas-huge-bunker-busting-bomb-is-not-sure-to-work-in-iran}}</ref> Complicating matters further is the possibility of deflection or yaw caused by advanced bunker-shell construction techniques.<ref>{{cite web |title=BUNKER BUSTER BOMB Myth / MIT Prof Ted Postol & Lt Col Daniel Davis |url=https://www.youtube.com/watch?v=TriASB-F5UY}}</ref> The first combat use of the GBU-57 MOP was during the [[United States strikes on Iranian nuclear sites]] on 22 June 2025,<ref name="NYT20250622">{{Cite web |last=Cooper |first=Helene |date=21 June 2025 |title=U.S. Military Is Pulled Back Into Middle East Wars |url=https://www.nytimes.com/2025/06/21/us/politics/military-middle-east-wars.html |access-date=22 June 2025 |website=[[The New York Times]] |quote=The attack was the first time the U.S. military had used the weapon in combat.}}</ref><ref>{{Cite news |last=Allison |first=George |date=22 June 2025 |title=B-2 stealth bombers strike Iran's nuclear facilities |url=https://ukdefencejournal.org.uk/b-2-stealth-bombers-strike-irans-nuclear-facilities/ |access-date=22 June 2025 |work=UK Defence Journal}}</ref> when seven [[Northrop B-2 Spirit]] [[Stealth Bombers|stealth bombers]] dropped a total of fourteen GBU-57 bombs, twelve on the [[Fordow Uranium Enrichment Plant]] and two on the [[Natanz Nuclear Facility]].<ref name="Mongilio 2025">{{Cite news |last=Mongilio |first=Heather |last2=Lagrone |first2=Sam |date=22 June 2025 |title=Operation Midnight Hammer Drops 14 Bunker Busters in Record B-2 Strike Against Iranian Nuclear Sites |url=https://news.usni.org/2025/06/21/u-s-strikes-3-iranian-nuclear-sites-using-b-2s-sub-launched-tomahawks |access-date=22 June 2025 |work=USNI News |publisher=U.S. Naval Institute |location=Annapolis, Maryland}}</ref><ref>{{Cite web |title=U.S. Bombs Iran Live Updates: Trump Says Iran's Nuclear Sites "Completely and Totally Obliterated" in Speech |url=https://www.wsj.com/livecoverage/iran-israel-conflict-latest-news |access-date=2025-06-22 |website=WSJ |language=en-US}}</ref> According to [[Dan Caine|General Dan Caine]], Chairman of the [[Joint Chiefs of Staff|U.S Joint Chiefs of Staff]], both sites sustained severe damage.<ref>{{Cite web |title=Bombing Inflicted Severe Damage, Pentagon Says |url=https://www.wsj.com/livecoverage/iran-israel-conflict-latest-news/card/bombing-inflicted-severe-damage-pentagon-says-xe3Zg4JYmAfTXLwad7tJ |access-date=2025-06-22 |website=WSJ |language=en-US}}</ref> Darya Dolzikova, Senior Research Fellow at [[RUSI]], argues that the exact damage to the facilities is unclear.<ref>{{cite web |title=RUSI Experts React to US Strikes on Iran's Nuclear Facilities |url=https://www.rusi.org/explore-our-research/publications/commentary/rusi-experts-react-us-strikes-irans-nuclear-facilities}}</ref> Rafael Grossi, director general in [[IAEA]] said “no one, including the IAEA, is in a position to have fully assessed the underground damage at Fordow”, it is expected to be “very significant”.<ref>{{cite web |title=UN nuclear chief estimates damage to Iran’s facilities ‘very significant’ |url=https://www.aljazeera.com/news/2025/6/23/un-nuclear-chief-estimates-damage-to-irans-facilities-very-significant}}</ref> CNN reported that the strikes "did not destroy the core components" of the facilities.<ref>{{Cite web |last=Bertrand |first=Natasha |last2=Lillis |first2=Katie Bo |last3=Cohen |first3=Zachary |date=2025-06-24 |title=Exclusive: Early US intel assessment suggests strikes on Iran did not destroy nuclear sites, sources say {{!}} CNN Politics |url=https://www.cnn.com/2025/06/24/politics/intel-assessment-us-strikes-iran-nuclear-sites |access-date=2025-06-24 |website=CNN |language=en}}</ref> ==Specifications and capabilities== * '''Length''': {{convert|20.5|ft|m|1}}<ref name="DTRA 2007"/> * '''Diameter''': {{convert|31.5|in|m|1}}<ref name="DTRA 2007"/> * '''BLU-127 bomb body weight''': {{convert|27125|lb|kg|0}}<ref name="Parken 2023"/> * '''Explosive weight''': {{convert|5342|lb|0}}<ref name="Parken 2023"/> ** '''AFX-757''': {{convert|4590|lb|0}}<ref name="Parken 2023"/> ** '''PBXN-114''': {{convert|752|lb|0}}<ref name="Parken 2023"/> * '''Penetration''': (debated) There is debate regarding the penetration capabilities of the bomb. The US Air Force has said that the GBU-57 can penetrate up to {{convert|200|ft|m|abbr=on|sigfig=1}} of unspecified material before exploding.<ref name="milestone">{{Cite web |title=Future 30,000-pound bomb reaches mile stone |url=https://www.acc.af.mil/News/Features/Display/Article/204431/future-30000-pound-bomb-reaches-mile-stone/ |archive-url=http://web.archive.org/web/20231211033254/https://www.acc.af.mil/News/Features/Display/Article/204431/future-30000-pound-bomb-reaches-mile-stone/ |archive-date=2023-12-11 |website=Air Combat Command}}</ref> The BBC reports that analysts at [[Janes Information Services|Janes]] say the weapon can penetrate about {{convert|60|m|ft|abbr=on|order=flip}} of earth or {{convert|18|m|ft|abbr=on|order=flip|-1}} of concrete.<ref name="2025-BBC-Fordo">{{Cite web |last=BBC Verify and the Visual Journalism team |date=18 June 2025 |title=Iran's secretive nuclear site that only a US bomb could hit |url=https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-url=https://web.archive.org/web/20250620075543/https://www.bbc.co.uk/news/resources/idt-868e3c3d-25ec-43cb-bcc0-8832464b91ca |archive-date=2025-06-20 |access-date=22 June 2025 |website=BBC News |publisher=BBC |quote="The MOP’s heavy casing and weight allows it to penetrate about 18m of concrete or 61m of earth before exploding, according to analysts at Janes"}}</ref> This is consistent with a separate source which suggests penetration of up to {{convert|18|m|ft|abbr=on|order=flip|-1}} into [[Concrete#Properties|reinforced concrete]] with a compressive strength of {{convert|5000|psi|MPa|abbr=on}} and {{convert|8|ft|m|abbr=on}} into {{convert|10000|psi|MPa|abbr=on}} reinforced concrete.<ref name="2025-GS-MOP">{{Cite web |title=GBU-57/B Massive Ordnance Penetrator (MOP) |url=https://www.globalsecurity.org/military/systems/munitions/mop.htm}}</ref> The MOP does not have a void-sensing fuze and detonates only after it comes to a stop, even if it has passed the target area.<ref>{{Cite web |last=Butler |first=Amy |date=17 September 2012 |title=Curbed Ambitions: Hard targets pose a near-term problem as USAF explores weapon and fuze options |url=https://archive.aviationweek.com/issue/20120917#!&pid=56 |url-access=subscription |website=[[Aviation Week]] |pages=56–58}}</ref> Operationally, the MOP can be dropped only by the [[B-2 Spirit]], which can carry up to two of the bombs. The [[B-21 Raider]] is slated to carry it.<ref>{{Cite web |last=Atlamazoglou |first=Stavros |date=16 December 2024 |title=The Massive GBU-57A/B MOP Was Built for a War with China |url=https://nationalinterest.org/blog/buzz/massive-gbu-57ab-mop-was-built-war-china-214075 |access-date=22 June 2025 |website=The National Interest}}</ref><ref name="debuglies" /> The [[B-52]] has been used during weapons testing of the MOP, but requires modifications to carry the bomb.<ref name="Parken 2023"/> ==Users== *{{Flagu|United States}} **{{Air force|United States|size=23px}} – At least 20 in service as of November 2015.<ref name="Scully 2025"/> ==Gallery== <gallery widths="250px" heights="250px" > File:Off loading of MOP cropped.jpg|MOP being offloaded in preparation for its first explosive test, 2007. File:Inside Tunnel MOP cropped.jpg|MOP underground at [[White Sands Missile Range]] before its first explosive test, 2007. File:MOP in the B-2 bomb bay.jpg|Mock up of MOP inside a bomb bay of a B-2 simulator, 2007. File:B-52 releases the MOP during a weapons test.jpg|[[B-52]] releases a MOP during a weapons test, 2009. </gallery> == Desarrollo == In 2002, [[Northrop Grumman]] and [[Lockheed Martin]] were working on the development of a 30,000-pound (13 600 kg) pump designed to penetrate the ground, named ⁇ ''Big BLU'' ⁇ , in reference to the BLU pump. &nbsp;&nbsp;But due to financial and technical difficulties the development was abandoned. Following the 2003 invasion of Iraq, analysis of sites that had been targeted by anti-bunker bombs revealed poor penetration capacity and insufficient levels of destruction. In view of this, there was renewed interest in the development of a large anti-bunker bomb. The Threat Reduction Defense Agency initiated the MOP project to meet a long-term requirement from the Air Force.<ref name="factsheet">{{Cite web |date=18 de noviembre de 2011 |title=MASSIVE ORDNANCE PENETRATOR fact sheet |url=http://www.af.mil/information/factsheets/factsheet.asp?fsID=18995 |archive-url=https://web.archive.org/web/20120211010609/http://www.af.mil/information/factsheets/factsheet.asp?fsID=18995 |archive-date=11 de febrero de 2012 |access-date=2 de enero de 2012 |publisher=US Air Force}}</ref> 1163209: ext.cx.entrypoints.newarticle.js remove use of jquery.cookie | <nowiki>https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ContentTranslation/+/1163209</nowiki> The Aerial Force of United States did not have any official recognition on the development of a bomb of big size, but prepares conceptually a penetrador massive of ''big'' size and arms of demolition, the called collection «Big Blu», that includes the bomb [[GBU-43/B MOAB|MOAB]] (''Massive Ordnance Air Burst''). The development of the MOP already was under way in the Direction of Ammunitions of the Air Force Research Laboratory, in the [[Eglin Air Force Base|Base of the Aerial Force Eglin]], [[Florida]]. The work of design and the tests also is being made by [[Boeing]]. It pretended that the bomb could be deployed in the [[Northrop B-2 Spirit|bomber B-2]], and be guided by means of [[Global Positioning System|GPS]].<ref>{{Cite web |title=Military & Aerospace Electronics, "Air Force ready to deploy 30,000-pound 'super bomb' on stealthy B-2 jet" |url=http://mae.pennnet.com/display_article/282449/32/NEWS/none/none/Air-Force-ready-to-deploy-30%2C000-pound-%27super-bomb%27-on-stealthy-B-2-jet-bomber/ |archive-url=https://web.archive.org/web/20071001000041/http://mae.pennnet.com/display_article/282449/32/NEWS/none/none/Air-Force-ready-to-deploy-30%2C000-pound-%27super-bomb%27-on-stealthy-B-2-jet-bomber/ |archive-date=1 de octubre de 2007 |access-date=13 de agosto de 2012 |dead-url=yes}}</ref> The control of flight will make by means of [[Grid fin|fins of rejilla]], in place of the conventional. 1163209: ext.cx.entrypoints.newarticle.js remove use of jquery.cookie | <nowiki>https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ContentTranslation/+/1163209</nowiki> On 19 July 2007 [[Northrop Grumman]] announced an agreement of 2,5 million dollars for the reacondicionamiento of the bomber furtivo B-2. Each one of the B-2 of the Aerial Force of United States is able to spend two MOP of 14 metric tonnes each one. 1163209: ext.cx.entrypoints.newarticle.js remove use of jquery.cookie | <nowiki>https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ContentTranslation/+/1163209</nowiki> ==See also== * [[Earthquake bomb]] * [[Thermobaric weapon]] ;Specific large bombs * [[BLU-82]] Daisy Cutter bomb * [[Father of All Bombs]] * [[Mother of All Bombs|GBU-43/B Mother of All Bombs]], another very large US bomb * [[Grand Slam (bomb)]] * [[T-12 Cloudmaker]] * [[Tallboy (bomb)]] * [[FAB-9000]] ==References== {{Reflist}} ==External links== {{Commons category|Massive Ordnance Penetrator}} * [https://www.af.mil/About-Us/Fact-Sheets/Display/Article/104614/massive-ordnance-penetrator/ Massive Ordnance Penetrator Fact Sheet] {{USAF equipment}} [[Category:Anti-fortification weapons]] [[Category:Boeing]] [[Category:Guided bombs of the United States]] [[Category:Military equipment introduced in the 2010s]] pqrke1j7c6tik5crmsaefdd8d9xett3 Espresso Editing Test 0 166780 664283 2025-06-25T19:35:21Z Orange2024 68268 Created page with "'''Espresso Editing Test'''" 664283 wikitext text/x-wiki '''Espresso Editing Test''' qm18587v3vm043pzzq2fkthftugm7o8 What is Espresso 0 166781 664284 2025-06-25T19:41:42Z Orange2024 68268 Created page with "'''What is Espresso Test?'''" 664284 wikitext text/x-wiki '''What is Espresso Test?''' phpa4qiqrl5pu5oal6y68usm99kl87r User talk:DJackson (WMF) 3 166782 664297 2025-06-25T22:05:56Z DJackson (WMF) 62776 test 664297 wikitext text/x-wiki QA testing pjgox9yymtk90uqu0tco7ku96kbxohw Usuario discusión:PandaBearSoup 0 166783 664301 2025-06-25T23:07:44Z Nacaru 54746 Aviso al usuario del posible borrado de [[Documentation Sandbox/]] mediante [[WP:Twinkle Lite|Twinkle Lite]] 664301 wikitext text/x-wiki {{subst:Aviso destruir|Documentation Sandbox/|g6}} [[User:Nacaru|Nacaru]] ([[User talk:Nacaru|talk]]) 23:07, 25 June 2025 (UTC) 15yowhcakag64hpth6omzakby12yvuq Module:Form3 828 166784 664307 2025-06-26T04:58:47Z Yining Chen 47378 Created page with "local p = {} local getArgs = require('Module:Test197').getArgs local yesno = require('Module:Yesno') function p._main(args, frame) local parts = {} local linkFlag = yesno(args.link) local append = args.append or '' for i, v in ipairs(args) do local item = "" if i > 1 then item = item .. "、" end if linkFlag then item = item .. "[[" .. v .. "]]" else..." 664307 Scribunto text/plain local p = {} local getArgs = require('Module:Test197').getArgs local yesno = require('Module:Yesno') function p._main(args, frame) local parts = {} local linkFlag = yesno(args.link) local append = args.append or '' for i, v in ipairs(args) do local item = "" if i > 1 then item = item .. "、" end if linkFlag then item = item .. "[[" .. v .. "]]" else item = item .. v end local category = frame:expandTemplate{ title = 'ArticleCategory', args = { v .. append } } item = item .. category table.insert(parts, item) end return table.concat(parts) end function p.main(frame) local args = getArgs(frame, { parentFirst = true }) return p._main(args, frame) end return p hk05cdehh08b8ubcymvl39tlygyh7wr 664313 664307 2025-06-26T05:04:06Z Yining Chen 47378 664313 Scribunto text/plain local p = {} local getArgs = require('Module:Test197').getArgs local yesno = require('Module:Yesno') function p._main(args, frame) local parts = {} local linkFlag = yesno(args.link) local append = args.append or '' for i, v in ipairs(args) do local item = "" if i > 1 then item = item .. "、" end if v == "中文" and append == "虚拟UP主" then v = "汉语" end if v == "韩语" and append == "虚拟UP主" then v = "朝鲜语" end if linkFlag then item = item .. "[[" .. v .. "]]" else item = item .. v end local category = frame:expandTemplate{ title = 'ArticleCategory', args = { v .. append } } item = item .. category table.insert(parts, item) end return table.concat(parts) end function p.main(frame) local args = getArgs(frame, { parentFirst = true }) return p._main(args, frame) end return p f5m07ubmde2xwf9aq2sh2my86swexg2 Template:ArticleCategory 10 166785 664311 2025-06-26T05:01:05Z Yining Chen 47378 Created page with "<AC:{{{1}}}>" 664311 wikitext text/x-wiki <AC:{{{1}}}> 50sfh5p6am3pkgrik3h9oxnd5ex1bc1 User:Gadir/sandbox2 2 166786 664315 2025-06-26T05:23:31Z Gadir 64755 Created page with "test" 664315 wikitext text/x-wiki test jrwjerxiekdtj9k82lg930wpkr6tq6r Module:Form4 828 166787 664316 2025-06-26T05:25:04Z Yining Chen 47378 Created page with "local p = {} function p.main(frame) local args = frame.args local rows = {} local keys = {} for key, _ in pairs(args) do if key:match('^时间%d+$') then local num = key:match('%d+$') table.insert(keys, tonumber(num)) end end table.sort(keys) for _, num in ipairs(keys) do local time = args['时间' .. num] or '' local experience = args['经历' .. num] or ''..." 664316 Scribunto text/plain local p = {} function p.main(frame) local args = frame.args local rows = {} local keys = {} for key, _ in pairs(args) do if key:match('^时间%d+$') then local num = key:match('%d+$') table.insert(keys, tonumber(num)) end end table.sort(keys) for _, num in ipairs(keys) do local time = args['时间' .. num] or '' local experience = args['经历' .. num] or '' local icon = args['图标' .. num] or '' local name = args['名称' .. num] or '' local note = args['备注' .. num] or '' local content if icon ~= '' then content = icon else if experience == '个人势' or experience == '毕业' or experience == '引退' then content = experience else if name ~= '' then content = '[[' .. experience .. '|' .. name .. ']]' else content = '[[' .. experience .. ']]' end end end if note ~= '' then content = content .. ' (' .. note .. ')' end local row = string.format( "|-\n" .. "| style=\"text-align:left; width:150px;\" | %s\n" .. "| style=\"text-align:left; padding:0 5px\" | %s", time, content ) table.insert(rows, row) end return '{| style="font-size:80%;max-width:280px;"\n' .. table.concat(rows, '\n') .. '\n|}' end return p ahg94be46n6qft01527jf7vb19ivo7j 664319 664316 2025-06-26T05:35:24Z Yining Chen 47378 664319 Scribunto text/plain local p = {} local getArgs = require('Module:Arguments').getArgs function p.main(frame) local args = getArgs(frame, { trim = true, removeBlanks = true, valueFunc = function(key, value) if key:match('^时间%d+$') then return value end return value and value:match('^%s*(.-)%s*$') end }) local rows = {} local keys = {} for key, _ in pairs(args) do if key:match('^时间%d+$') then local num = key:match('%d+$') table.insert(keys, tonumber(num)) end end table.sort(keys) for _, num in ipairs(keys) do local time = args['时间' .. num] or '' local experience = args['经历' .. num] or '' local icon = args['图标' .. num] or '' local name = args['名称' .. num] or '' local note = args['备注' .. num] or '' local content if icon ~= '' then content = icon else if experience == '个人势' or experience == '毕业' or experience == '引退' then content = experience else if name ~= '' then content = '[[' .. experience .. '|' .. name .. ']]' else content = '[[' .. experience .. ']]' end end end if note ~= '' then content = content .. ' (' .. note .. ')' end local row = string.format( "|-\n" .. "| style=\"text-align:left; width:150px;\" | %s\n" .. "| style=\"text-align:left; padding:0 5px\" | %s", time, content ) table.insert(rows, row) end return '{| class="wikitable" style="font-size:80%;max-width:280px;"\n' .. table.concat(rows, '\n') .. '\n|}' end return p oirvtb86f9jni8awbgizkxggsuaupcm 664320 664319 2025-06-26T05:35:48Z Yining Chen 47378 664320 Scribunto text/plain local p = {} local getArgs = require('Module:Test197').getArgs function p.main(frame) local args = getArgs(frame, { trim = true, removeBlanks = true, valueFunc = function(key, value) if key:match('^时间%d+$') then return value end return value and value:match('^%s*(.-)%s*$') end }) local rows = {} local keys = {} for key, _ in pairs(args) do if key:match('^时间%d+$') then local num = key:match('%d+$') table.insert(keys, tonumber(num)) end end table.sort(keys) for _, num in ipairs(keys) do local time = args['时间' .. num] or '' local experience = args['经历' .. num] or '' local icon = args['图标' .. num] or '' local name = args['名称' .. num] or '' local note = args['备注' .. num] or '' local content if icon ~= '' then content = icon else if experience == '个人势' or experience == '毕业' or experience == '引退' then content = experience else if name ~= '' then content = '[[' .. experience .. '|' .. name .. ']]' else content = '[[' .. experience .. ']]' end end end if note ~= '' then content = content .. ' (' .. note .. ')' end local row = string.format( "|-\n" .. "| style=\"text-align:left; width:150px;\" | %s\n" .. "| style=\"text-align:left; padding:0 5px\" | %s", time, content ) table.insert(rows, row) end return '{| class="wikitable" style="font-size:80%;max-width:280px;"\n' .. table.concat(rows, '\n') .. '\n|}' end return p pysrgpketq2qb340xf988nly2s8dql0 664322 664320 2025-06-26T05:44:03Z Yining Chen 47378 664322 Scribunto text/plain local p = {} function p.main(frame) local args = frame.args local rows = {} local keys = {} for key, _ in pairs(args) do if key:match('^时间%d+$') then local num = key:match('%d+$') table.insert(keys, tonumber(num)) end end table.sort(keys) for _, num in ipairs(keys) do local time = args['时间' .. num] or '' local experience = args['经历' .. num] or '' local icon = args['图标' .. num] or '' local name = args['名称' .. num] or '' local note = args['备注' .. num] or '' local content if icon ~= '' then content = icon else if experience == '个人势' or experience == '毕业' or experience == '引退' then content = experience else if name ~= '' then content = '[[' .. experience .. '|' .. name .. ']]' else content = '[[' .. experience .. ']]' end end end if note ~= '' then content = content .. ' (' .. note .. ')' end local row = string.format( "|-\n" .. "| style=\"text-align:left; width:150px;\" | %s\n" .. "| style=\"text-align:left; padding:0 5px\" | %s", time, content ) table.insert(rows, row) end return '{| style="font-size:80%;max-width:280px;"\n' .. table.concat(rows, '\n') .. '\n|}' end return p ahg94be46n6qft01527jf7vb19ivo7j User:TenWhile6/XS.js 2 166788 664331 2025-06-26T08:49:29Z TenWhile6 51225 create 664331 javascript text/javascript mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); /* portlet links */ $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } q4baa3z88089o62v3dcqc5egvf0zxne 664332 664331 2025-06-26T08:49:59Z TenWhile6 51225 664332 javascript text/javascript mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); /* portlet links */ blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } ia8uw8uiy3hkbdsbml8l3smznqbxsym 664333 664332 2025-06-26T08:51:37Z TenWhile6 51225 664333 javascript text/javascript mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); /* portlet links */ blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; $(mw.util.addPortletLink(blocation,'#','X','ca-reportuser','Y',null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); /*if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#','G','ca-reportpage','T',null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#','M','ca-quickdeletion','S',null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } */ h21yu7x59lva3xm8xk642k4y5ahx5xd 664334 664333 2025-06-26T08:57:15Z TenWhile6 51225 664334 javascript text/javascript mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); var lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } alert(trnslt('error-requested')); /* portlet links */ blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; $(mw.util.addPortletLink(blocation,'#','X','ca-reportuser','Y',null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); /*if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#','G','ca-reportpage','T',null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#','M','ca-quickdeletion','S',null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } */ t1s6hagx1rbueymwujn7jfeicdy6va8 664337 664334 2025-06-26T09:01:26Z TenWhile6 51225 664337 javascript text/javascript mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); var lang = (mw.user.options.get('language') in window.LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (window.LangData[LLang][key]) { return LangData[LLang][key]; } return window.LangData.en[key]; } alert(trnslt('error-requested')); /* portlet links */ blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; $(mw.util.addPortletLink(blocation,'#','X','ca-reportuser','Y',null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); /*if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#','G','ca-reportpage','T',null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#','M','ca-quickdeletion','S',null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } */ 1w8j1pc55eg7syimmcec8ycn1egbb7m 664339 664337 2025-06-26T09:03:07Z TenWhile6 51225 664339 javascript text/javascript var LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Setze SLA-Baustein...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-requested": " Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalca" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" } }; window.LangData = LangData; // allow global access mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); /* portlet links */ blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; $(mw.util.addPortletLink(blocation,'#','X','ca-reportuser','Y',null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); /*if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#','G','ca-reportpage','T',null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#','M','ca-quickdeletion','S',null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } */ 12f9xksjo1nqcoem8sy69vyfmc3qrgc 664340 664339 2025-06-26T09:04:18Z TenWhile6 51225 Replaced content with "var XReport = {}; window.XReport = XReport; // allow global access mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); /* portlet links */ blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; $(mw.util.addPortletLink(blocation,'#','X','ca-reportuser','Y',null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); /*if (DB in WikiData) { if ('P' in WikiData[D..." 664340 javascript text/javascript var XReport = {}; window.XReport = XReport; // allow global access mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); /* portlet links */ blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-tb' : 'p-cactions'; $(mw.util.addPortletLink(blocation,'#','X','ca-reportuser','Y',null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); /*if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#','G','ca-reportpage','T',null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#','M','ca-quickdeletion','S',null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } */ ofa7f8poag6l42joipjvw31yzg8pwrj 664345 664340 2025-06-26T09:07:28Z TenWhile6 51225 664345 javascript text/javascript var XReport = {}; window.XReport = XReport; // allow global access mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); XReportMain(); frj50f4e3xxphm3mn4m6etrjd9fg2jf 664348 664345 2025-06-26T09:18:32Z TenWhile6 51225 664348 javascript text/javascript var XReport = {}; window.XReport = XReport; // allow global access XReport.v = 'x1'; mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); 4ln61269v7gso852nktc0tuhu8zixwz 664350 664348 2025-06-26T09:19:23Z TenWhile6 51225 664350 javascript text/javascript var XReport = {}; window.XReport = XReport; // allow global access XReport.v = 'x1'; mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); alert('hi'); 6hp8898bt4sqalfrjzqezizmsvatirz 664351 664350 2025-06-26T09:20:39Z TenWhile6 51225 664351 javascript text/javascript var XReport = {}; window.XReport = XReport; // allow global access XReport.v = 'x1'; mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript').done(alert('x')); alert('hi'); 16c41v1a7td3mg27blm9spdf0ev9mbi 664352 664351 2025-06-26T09:30:08Z TenWhile6 51225 664352 javascript text/javascript window.XReportConfig = 'v'; // allow global access mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); bsejqpb51fa3fn5eilqvo0evl07udfv 664355 664352 2025-06-26T09:31:23Z TenWhile6 51225 664355 javascript text/javascript window.XReportConfig = 'v'; // allow global access mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); emhiqmwunnvs5diwvv47d8ng36hs31y 664357 664355 2025-06-26T09:33:25Z TenWhile6 51225 664357 javascript text/javascript //window.XReportConfig = 'v'; // allow global access mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); 5kzwajwzpcu51t67taohzcflq6yil0e 664361 664357 2025-06-26T09:41:54Z TenWhile6 51225 664361 javascript text/javascript window.XReportConfig = 'v'; mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); esd1jqe19lkr0ggs2dhk1klj7lftn0l 664362 664361 2025-06-26T09:42:02Z TenWhile6 51225 664362 javascript text/javascript window.XReportConfig = 'v'; mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); ngfb52qtwmd2zno2xv4x2s0v3r8aqjb Wikipedia:SandboxWB 4 166789 664336 2025-06-26T08:59:28Z ~2025-83885 69291 Created page with "{{ #property: P1 | from = Q3 }}" 664336 wikitext text/x-wiki {{ #property: P1 | from = Q3 }} inm031hn12tybo0f3kah2txgqs0fkjk 664342 664336 2025-06-26T09:06:20Z ~2025-83885 69291 664342 wikitext text/x-wiki {{ #property: P7 | from = Q5048 }} po7iibxlmeb4eplpm2s6j4j25cwk7k4 664346 664342 2025-06-26T09:16:42Z ~2025-83885 69291 664346 wikitext text/x-wiki {{ #property: P7 | from = Q5048 }} bla bla qwoap9rmarzm9vabjj3rmagf0sen6jh 664347 664346 2025-06-26T09:17:00Z ~2025-83885 69291 664347 wikitext text/x-wiki {{ #property: P7 | from = Q5048 }} bla bla more bla d8o5dxvtu8alwn95p8nenw4nqu4qxi4