Vikisöz trwikiquote https://tr.wikiquote.org/wiki/Anasayfa MediaWiki 1.39.0-wmf.23 first-letter Ortam Özel Tartışma Kullanıcı Kullanıcı mesaj Vikisöz Vikisöz tartışma Dosya Dosya tartışma MediaWiki MediaWiki tartışma Şablon Şablon tartışma Yardım Yardım tartışma Kategori Kategori tartışma TimedText TimedText talk Modül Modül tartışma Gadget Gadget talk Gadget definition Gadget definition talk Vikisöz:Deneme tahtası 4 1712 198570 198568 2022-08-10T14:31:35Z Felecita 7339 [[Special:Contributions/5.176.187.91|5.176.187.91]] ([[User talk:5.176.187.91|mesaj]]) tarafından yapılan değişiklikler geri alınarak, [[User:AxisAce09|AxisAce09]] tarafından değiştirilmiş önceki sürüm geri getirildi wikitext text/x-wiki {{/Bu satırı değiştirmeden bırakın}} 71q0l5bbgzwc3mn5x1y9wnru8o0mbfi Timur 0 4976 198573 194083 2022-08-11T01:00:22Z Av.tugaydin 30648 /* Sözleri */Oylar MHP'ye de demiş mı? wikitext text/x-wiki {{Biyografi |kişi_adı=Timur |resim_adı=Timur reconstruction03.jpg |resim_başlığı= |doğum_tarihi=8 Nisan 1336 |doğum_yeri=Keş, Türkistan |ölüm_tarihi=19 Mart 1405 |ölüm_yeri=Otrar, Türkistan }} '''Timur''', kendi adıyla anılan imparatorluğun kurucusu ve ilk hükümdarı. == Sözleri == * Âlemi yaradan Tanrı yalnızdır; O’nun şeriki (ortağı) yoktur. Böyle olunca, Tanrı’nın mülkü olan yeryüzüne sahip olan kişinin de şerikinin (ortağının) olmaması gerekir. * Güç birliktedir! * Şu Allah'ın işine bak! '''Koca dünya senin gibi bir körle benim gibi bir topala kaldı''', ona gülüyorum! :''(Ankara Savaşı sonrası esir ettiği Yıldırım Bayezid'in huzuruna çıkartılması sırasında gülmeye başlamasına Bayezid'in tepki göstermesine cevabı. Gerçekten de Timur'un sol ayağı oldukça topal iken, Yıldırım Bayezid'in de sağ gözü oldukça az görmekteydi.)'' * Bahadırlık ancak tehlikeli bir anda sabredebilmektir. * Kuvvetli bir hükümdarın adil bir veziri, efendisinin bütün adaletsizliklerini tamir edebilir. Fakat bizzat vezir de zalim olursa devlet binası yerle bir olur. * Nüfuzu dayaktan daha zayıf olan bir "vali" oturduğu makama layık değildir. * Hak uğruna sarf olunan para hiçbir vakit israf sayılmaz. * Komuta edemediğim 10.000 adamım olacağına, komutam altında olan 10 adamım olmasını tercih ederim. * Özgürlük denizi göremeyen kılıcın ucundaki ölü böcek gibidir. * Oğul, torun, dost, müttefik, benimle bağlılığı olan herkes iyiliğimden nasiplendi. İkbal ve saadetimin parlaklığı ve yüksekliği hiç kimseyi unutmaya sebep olmadı. Tarafımdan her zaman, herkes lâyık olduğu mükâfat ve hürmete kavuştu. İkbal yıldızımın sönüklüğü zamanlarında edindiğim tecrübeler, dostlara karşı nasıl, düşmanlara karşı nasıl davranmak gerektiğini bana öğretmişti * Ey Firdevsi! Sen Şehname'nde milletinin, Türkler üzerine kazandığı galebelerle övündün. Kalk gör, bugün İran topraklarıyla beraber, mezarın Türk kahramanlarının ayağı altındadır. * Tecrübelerim bana gösterdi ki, [[hukuk]]a bağlı olmayan bir hükümet uzun müddet ayakta kalamaz. Böyle hükümetler çıplak olup, kendini gören herkese karşı gözlerini yere diken ve kimsenin yanında hürmet ve itibarı olmayan birine benzerler. Hatta böyle bir hükümet, tavanı, kapısı, avlu duvarları olmayan ve her önüne gelenin içeriye daldığı bir eve de benzetilebilir. * Tecrübe gösterdi ki hakiki dost şudur: Asla gücenmez, dostunun düşmanları onun da düşmanlarıdır ve gerektiğinde hayatını feda eder. *Ülkeler kılıçla alınır, ancak adaletle korunur. [[Kategori:Kişiler-T]] [[Kategori:Türk siyasetçiler]] [[Kategori:Türk askerler]] [[Kategori:Hükümdarlar]] [[Kategori:1405 yılında ölenler]] [[Kategori:1336 doğumlular]] qr0t42xp7k9xa6thrmhp2lox1j8cmbq Vikisöz:Değişiklik sayılarına göre kullanıcılar listesi 4 24934 198572 198558 2022-08-10T21:30:12Z YBot 18235 Güncelleme wikitext text/x-wiki {{/begin}} <center> {| class="wikitable" ! # ! Kullanıcı ! Değişiklik sayısı ! Kullanıcı grupları |- | 1 | [[Kullanıcı:Vitruvian|Vitruvian]] | align="center" | 13.187 | editör, hizmetli |- | 2 | [[Kullanıcı:Victor Trevor|Victor Trevor]] | align="center" | 10.292 | editör |- | 3 | [[Kullanıcı:Nosferatü|Nosferatü]] | align="center" | 8.679 | editör |- | 4 | [[Kullanıcı:Felecita|Felecita]] | align="center" | 7.329 | editör, hizmetli |- | 5 | [[Kullanıcı:ToprakM|ToprakM]] | align="center" | 7.044 | editör, arayüz yöneticisi, hizmetli |- | 6 | [[Kullanıcı:Nanahuatl|Nanahuatl]] | align="center" | 4.453 | editör |- | 7 | [[Kullanıcı:Turgut46|Turgut46]] | align="center" | 4.128 | editör |- | 8 | [[Kullanıcı:Babatolian|Babatolian]] | align="center" | 3.527 | editör |- | 9 | [[Kullanıcı:Feyyaztiftik|Feyyaztiftik]] | align="center" | 3.254 | editör |- | 10 | [[Kullanıcı:AnankeBot|AnankeBot]] | align="center" | 2.796 | |- | 11 | [[Kullanıcı:Fuzûlî|Fuzûlî]] | align="center" | 2.588 | |- | 12 | [[Kullanıcı:Tarih|Tarih]] | align="center" | 2.548 | |- | 13 | [[Kullanıcı:YBot|YBot]] | align="center" | 2.420 | |- | 14 | [[Kullanıcı:Mavrikant|Mavrikant]] | align="center" | 2.078 | editör |- | 15 | [[Kullanıcı:ChtitBot|ChtitBot]] | align="center" | 2.046 | |- | 16 | [[Kullanıcı:Viki|Viki]] | align="center" | 1.972 | |- | 17 | [[Kullanıcı:Berrram|Berrram]] | align="center" | 1.959 | editör, hizmetli |- | 18 | [[Kullanıcı:Evrifaessa|Evrifaessa]] | align="center" | 1.784 | editör, arayüz yöneticisi |- | 19 | [[Kullanıcı:HakanIST|HakanIST]] | align="center" | 1.751 | editör |- | 20 | [[Kullanıcı:Kibele|Kibele]] | align="center" | 1.588 | editör |- | 21 | [[Kullanıcı:Yusuf kayadüğün|Yusuf kayadüğün]] | align="center" | 1.549 | |- | 22 | [[Kullanıcı:Dabeon|Dabeon]] | align="center" | 1.446 | editör |- | 23 | [[Kullanıcı:Science|Science]] | align="center" | 1.397 | editör |- | 24 | [[Kullanıcı:Cekli829|Cekli829]] | align="center" | 1.385 | editör |- | 25 | [[Kullanıcı:Vito Genovese|Vito Genovese]] | align="center" | 1.346 | editör |- | 26 | [[Kullanıcı:New user message|New user message]] | align="center" | 1.324 | |- | 27 | [[Kullanıcı:Dexbot|Dexbot]] | align="center" | 1.052 | |- | 28 | [[Kullanıcı:II. Niveles|II. Niveles]] | align="center" | 1.042 | |- | 29 | [[Kullanıcı:Aguzer|Aguzer]] | align="center" | 986 | |- | 30 | [[Kullanıcı:Diyapazon|Diyapazon]] | align="center" | 960 | editör |- | 31 | [[Kullanıcı:SamoaBot|SamoaBot]] | align="center" | 930 | |- | 32 | [[Kullanıcı:EleferenBot|EleferenBot]] | align="center" | 900 | |- | 33 | [[Kullanıcı:CommonsDelinker|CommonsDelinker]] | align="center" | 809 | editör |- | 34 | [[Kullanıcı:Sabri76|Sabri76]] | align="center" | 787 | editör |- | 35 | [[Kullanıcı:Ayshe17|Ayshe17]] | align="center" | 761 | |- | 36 | [[Kullanıcı:Uncitoyen|Uncitoyen]] | align="center" | 753 | editör |- | 37 | [[Kullanıcı:Reality006|Reality006]] | align="center" | 669 | |- | 38 | [[Kullanıcı:MerlIwBot|MerlIwBot]] | align="center" | 605 | |- | 39 | [[Kullanıcı:3210|3210]] | align="center" | 589 | |- | 40 | [[Kullanıcı:By erdo can|By erdo can]] | align="center" | 523 | editör |- | 41 | [[Kullanıcı:Pivox|Pivox]] | align="center" | 522 | editör |- | 42 | [[Kullanıcı:Elvorix|Elvorix]] | align="center" | 504 | editör |- | 43 | [[Kullanıcı:Modern primat|Modern primat]] | align="center" | 501 | |- | 44 | [[Kullanıcı:YiFeiBot|YiFeiBot]] | align="center" | 474 | |- | 45 | [[Kullanıcı:Pinar|Pinar]] | align="center" | 446 | editör |- | 46 | [[Kullanıcı:Amfetamin|Amfetamin]] | align="center" | 439 | |- | 47 | [[Kullanıcı:KamikazeBot|KamikazeBot]] | align="center" | 414 | |- | 48 | [[Kullanıcı:Henrymorgan92|Henrymorgan92]] | align="center" | 396 | , editör |- | 49 | [[Kullanıcı:Pathoschild|Pathoschild]] | align="center" | 392 | |- | 50 | [[Kullanıcı:Supermæn|Supermæn]] | align="center" | 391 | editör |- | 51 | [[Kullanıcı:Kendim~trwikiquote|Kendim~trwikiquote]] | align="center" | 390 | |- | 52 | [[Kullanıcı:DrArdeN|DrArdeN]] | align="center" | 390 | editör |- | 53 | [[Kullanıcı:Tragic Kingdom|Tragic Kingdom]] | align="center" | 389 | editör |- | 54 | [[Kullanıcı:Dbl2010|Dbl2010]] | align="center" | 385 | |- | 55 | [[Kullanıcı:Placeboizm|Placeboizm]] | align="center" | 374 | editör |- | 56 | [[Kullanıcı:Zaitsév|Zaitsév]] | align="center" | 352 | editör |- | 57 | [[Kullanıcı:Fzelen06|Fzelen06]] | align="center" | 331 | |- | 58 | [[Kullanıcı:Kutsalyolcusu|Kutsalyolcusu]] | align="center" | 330 | editör |- | 59 | [[Kullanıcı:Slayerized|Slayerized]] | align="center" | 325 | |- | 60 | [[Kullanıcı:Therou|Therou]] | align="center" | 311 | editör |- | 61 | [[Kullanıcı:Melinoë|Melinoë]] | align="center" | 303 | editör |- | 62 | [[Kullanıcı:1980OmerYilmaz|1980OmerYilmaz]] | align="center" | 299 | |- | 63 | [[Kullanıcı:Suelnur|Suelnur]] | align="center" | 295 | |- | 64 | [[Kullanıcı:Koc61|Koc61]] | align="center" | 262 | |- | 65 | [[Kullanıcı:VolkovBot|VolkovBot]] | align="center" | 248 | |- | 66 | [[Kullanıcı:Merube 89|Merube 89]] | align="center" | 244 | |- | 67 | [[Kullanıcı:Egemensen~trwikiquote|Egemensen~trwikiquote]] | align="center" | 238 | |- | 68 | [[Kullanıcı:Refrenantem|Refrenantem]] | align="center" | 237 | |- | 69 | [[Kullanıcı:Tegel|Tegel]] | align="center" | 232 | |- | 70 | [[Kullanıcı:Gnosis58|Gnosis58]] | align="center" | 230 | |- | 71 | [[Kullanıcı:Gökhan|Gökhan]] | align="center" | 221 | |- | 72 | [[Kullanıcı:阿尔达|阿尔达]] | align="center" | 218 | |- | 73 | [[Kullanıcı:Sinestik|Sinestik]] | align="center" | 214 | editör |- | 74 | [[Kullanıcı:Sae1962|Sae1962]] | align="center" | 212 | editör |- | 75 | [[Kullanıcı:Mutlutopuz|Mutlutopuz]] | align="center" | 210 | editör |- | 76 | [[Kullanıcı:LaaknorBot|LaaknorBot]] | align="center" | 200 | |- | 77 | [[Kullanıcı:Duvardakiyazi|Duvardakiyazi]] | align="center" | 198 | |- | 78 | [[Kullanıcı:Idioma-bot|Idioma-bot]] | align="center" | 196 | |- | 79 | [[Kullanıcı:07|07]] | align="center" | 186 | editör |- | 80 | [[Kullanıcı:Dbilgener|Dbilgener]] | align="center" | 177 | |- | 81 | [[Kullanıcı:タチコマ robot|タチコマ robot]] | align="center" | 171 | |- | 82 | [[Kullanıcı:Dakmor Tojira|Dakmor Tojira]] | align="center" | 164 | editör |- | 83 | [[Kullanıcı:Thomas|Thomas]] | align="center" | 163 | |- | 84 | [[Kullanıcı:Fatih.cyd|Fatih.cyd]] | align="center" | 151 | |- | 85 | [[Kullanıcı:Hazan|Hazan]] | align="center" | 149 | editör |- | 86 | [[Kullanıcı:Mereyü|Mereyü]] | align="center" | 148 | editör |- | 87 | [[Kullanıcı:Türkolog1984|Türkolog1984]] | align="center" | 146 | |- | 88 | [[Kullanıcı:ArthurBot|ArthurBot]] | align="center" | 132 | |- | 89 | [[Kullanıcı:Urungu97|Urungu97]] | align="center" | 129 | editör |- | 90 | [[Kullanıcı:Alaattin savas|Alaattin savas]] | align="center" | 120 | |- | 91 | [[Kullanıcı:Matiia|Matiia]] | align="center" | 115 | |- | 92 | [[Kullanıcı:Vilho-Veli|Vilho-Veli]] | align="center" | 115 | |- | 93 | [[Kullanıcı:Rəşid Nurməmmədov|Rəşid Nurməmmədov]] | align="center" | 114 | |- | 94 | [[Kullanıcı:Emperyan|Emperyan]] | align="center" | 113 | editör |- | 95 | [[Kullanıcı:Anabasis1944|Anabasis1944]] | align="center" | 111 | |- | 96 | [[Kullanıcı:CarsracBot|CarsracBot]] | align="center" | 103 | |- | 97 | [[Kullanıcı:Baylan|Baylan]] | align="center" | 102 | |- | 98 | [[Kullanıcı:Yozer1|Yozer1]] | align="center" | 102 | |- | 99 | [[Kullanıcı:Risto hot sir|Risto hot sir]] | align="center" | 101 | |- | 100 | [[Kullanıcı:Bermanya|Bermanya]] | align="center" | 100 | editör |} </center> bb1qfoerqwmvszgak5o2e3hy4xe5xz6 MediaWiki:Gadget-twinkleconfig.js 8 29382 198571 160569 2022-08-10T20:21:17Z ToprakM 19785 javascript text/javascript // <nowiki> (function($) { /*contents **************************************** *** twinkleconfig.js: Tercihler modülü **************************************** * Çağırma modu: Vikipedi:Twinkle/Tercihler sayfasına yapılandırma formu ekler ve oturum açmış durumdaki kullanıcılara ait '.js' uzantılı altsayfaların tepesine bir kutu bildirimi yerleştirir * Etkin olduğu yerler: Twinkle Tercihler sayfası ve kullanıcı altsayfaları I, [[User:This, that and the other]], originally wrote this. If the code is misbehaving, or you have any questions, don't hesitate to ask me. (This doesn't at all imply [[WP:OWN]]ership - it's just meant to point you in the right direction.) -- TTO */ Twinkle.config = {}; Twinkle.config.watchlistEnums = { 'yes': 'İzleme listesine ekle (süresiz)', 'no': "İzleme listesine ekleme", 'default': 'Site tercihlerimi izle', '1 week': '1 hafta süreyle izle', '1 month': '1 ay süreyle izle', '3 months': '3 ay süreyle izle', '6 months': '6 ay süreyle izle' }; Twinkle.config.commonSets = { csdCriteria: { db: "Özel gerekçe", g1: "G1", g2: "G2", g3: "G3", g4: "G4", g5: "G5", g6: "G6", g7: "G7", g8: "G8", g9: "G9", g10: "G10", g11: "G11", g12: "G12", g13: "G13", a1: "M1", a2: "M2", a3: "M3", a5: "M5", a7: "M7", a9: "M9", a10: "M10", a11: "M11", u1: "KS1", u2: "KS2", u3: "KS3", u5: "KS5", f1: "D1", f2: "D2", f3: "D3", f7: "D7", f8: "D8", f9: "D9", f10: "D10", c1: "K1", t2: "Ş2", r2: "Y2", r3: "Y3", p1: "P1", p2: "P2" }, csdCriteriaDisplayOrder: [ "db", "g1", "g2", "g3", "g4", "g5", "g6", "g7", "g8", "g9", "g10", "g11", "g12", "g13", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "u1", "u2", "u3", "u5", "f1", "f2", "f3", "f7", "f8", "f9", "f10", "c1", "t2", "r2", "r3", "p1", "p2" ], csdCriteriaNotification: { db: "Özel gerekçe ({{db}})", g1: "G1", g2: "G2", g3: "G3", g4: "G4", g6: 'G6 ("gereksiz anlam ayrımı" veya "taşıma sayfası yerine \'kopyala yapıştır\' yöntemiyle yapılan taşıma")', g7: "G7", g8: "G8", g9: "G9", g10: "G10", g11: "G11", g12: "G12", g13: "G13", a1: "A1", a2: "A2", a3: "A3", a5: "A5", a7: "A7", a9: "A9", a10: "A10", a11: "A11", u3: "U3", u5: "U5", f1: "F1", f2: "F2", f3: "F3", f7: "F7", f8: "F8", f9: "F9", f10: "F10", c1: "C1", t2: "T2", r2: "R2", r3: "R3", p1: "P1", p2: "P2" }, csdCriteriaNotificationDisplayOrder: [ "db", "g1", "g2", "g3", "g4", "g6", "g7", "g8", "g9", "g10", "g11", "g12", "g13", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "u3", "u5", "f1", "f2", "f3", "f7", "f9", "f10", "c1", "t2", "r2", "r3", "p1", "p2" ], csdAndDICriteria: { db: "Özel gerekçe ({{db}})", g1: "G1", g2: "G2", g3: "G3", g4: "G4", g5: "G5", g6: "G6", g7: "G7", g8: "G8", g9: "G9", g10: "G10", g11: "G11", g12: "G12", g13: "G13", a1: "A1", a2: "A2", a3: "A3", a5: "A5", a7: "A7", a9: "A9", a10: "A10", a11: "A11", u1: "U1", u2: "U2", u3: "U3", u5: "U5", f1: "F1", f2: "F2", f3: "F3", f4: "F4", f5: "F5", f6: "F6", f7: "F7", f8: "F8", f9: "F9", f10: "F10", f11: "F11", c1: "C1", t2: "T2", r2: "R2", r3: "R3", p1: "P1", p2: "P2" }, csdAndDICriteriaDisplayOrder: [ "db", "g1", "g2", "g3", "g4", "g5", "g6", "g7", "g8", "g9", "g10", "g11", "g12", "g13", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "u1", "u2", "u3", "u5", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", "c1", "t2", "r2", "r3", "p1", "p2" ], namespacesNoSpecial: { 0: "Madde", 1: "Tartışma (madde)", 2: "Kullanıcı", 3: "Kullanıcı mesaj", 4: "Vikipedi", 5: "Vikipedi tartışma", 6: "Dosya", 7: "Dosya tartışma", 8: "MediaWiki", 9: "MediaWiki tartışma", 10: "Şablon", 11: "Şablon tartışma", 12: "Yardım", 13: "Yardım tartışma", 14: "Kategori", 15: "Kategori tartışma", 100: "Portal", 101: "Portal tartışma", 828: "Modül", 829: "Modül tartışma" } }; /** * Section entry format: * * { * title: <human-readable section title>, * module: <name of the associated module, used to link to sections>, * adminOnly: <true for admin-only sections>, * hidden: <true for advanced preferences that rarely need to be changed - they can still be modified by manually editing twinkleoptions.js>, * preferences: [ * { * name: <TwinkleConfig property name>, * label: <human-readable short description - used as a form label>, * helptip: <(optional) human-readable text (using valid HTML) that complements the description, like limits, warnings, etc.> * adminOnly: <true for admin-only preferences>, * type: <string|boolean|integer|enum|set|customList> (customList stores an array of JSON objects { value, label }), * enumValues: <for type = "enum": a JSON object where the keys are the internal names and the values are human-readable strings>, * setValues: <for type = "set": a JSON object where the keys are the internal names and the values are human-readable strings>, * setDisplayOrder: <(optional) for type = "set": an array containing the keys of setValues (as strings) in the order that they are displayed>, * customListValueTitle: <for type = "customList": the heading for the left "value" column in the custom list editor>, * customListLabelTitle: <for type = "customList": the heading for the right "label" column in the custom list editor> * }, * . . . * ] * }, * . . . * */ Twinkle.config.sections = [ { title: 'Genel', module: 'general', preferences: [ // TwinkleConfig.userTalkPageMode may take arguments: // 'window': open a new window, remember the opened window // 'tab': opens in a new tab, if possible. // 'blank': force open in a new window, even if such a window exists { name: 'userTalkPageMode', label: 'Birinin mesaj sayfası şöyle açılsın', type: 'enum', enumValues: { window: 'Bir pencerede, diğer kullanıcı mesaj sayfalarını değiştirerek', tab: 'Yeni sekmede', blank: 'Tamamen yeni bir pencerede' } }, // TwinkleConfig.dialogLargeFont (boolean) { name: 'dialogLargeFont', label: 'Twinkle kutularında daha büyük metin kullanın', type: 'boolean' }, // Twinkle.config.disabledModules (array) { name: 'disabledModules', label: 'Seçili Twinkle modüllerini kapatın', helptip: 'Burada seçtiğiniz hiçbir şey kullanılamayacak, bu yüzden dikkatli davranın. Yeniden etkinleştirmek için işareti kaldırın.', type: 'set', setValues: { arv: 'Raporla', warn: 'Uyar', welcome: 'Karşıla', shared: 'Paylaşılıyor', talkback: 'Hızlı mesaj', speedy: 'Hızlı sil', prod: 'Bekletmeli sil', xfd: 'SAS', image: 'Dosya sil', protect: 'Koru/SKT', tag: 'Etiketle', diff: 'Son değişiklik', unlink: 'Bağlantı kaldır', fluff: 'Geri alma' } }, // Twinkle.config.disabledSysopModules (array) { name: 'disabledSysopModules', label: 'Yalnızca hizmetlilere özel olan seçili Twinkle modülleri kapatın', helptip: 'Burada seçtiğiniz hiçbir şey kullanılamayacak, bu yüzden dikkatli davranın. Yeniden etkinleştirmek için işareti kaldırın.', adminOnly: true, type: 'set', setValues: { block: 'Engelle', deprod: 'Toplu bekletmeli sil', batchdelete: 'Toplu sil', batchprotect: 'Toplu koru', batchundelete: 'Toplu geri getir' } } ] }, { title: 'Raporla', module: 'arv', preferences: [ { name: 'spiWatchReport', label: 'Kuklalar için oluşturulan denetçi isteklerini izleme listenize ekleyin', type: 'enum', enumValues: Twinkle.config.watchlistEnums } ] }, { title: 'Kullanıcı engelle', module: 'block', adminOnly: true, preferences: [ // TwinkleConfig.defaultToBlock64 (boolean) // Whether to default to just blocking the /64 on or off { name: 'defaultToBlock64', label: 'IPv6 adresleri için, varsayılan olarak /64 aralığını engelleme seçeneğini seçin', type: 'boolean' }, // TwinkleConfig.defaultToPartialBlocks (boolean) // Whether to default partial blocks on or off { name: 'defaultToPartialBlocks', label: 'Engelleme menüsünü açarken varsayılan olarak kısmi engeli seçin', helptip: 'Kullanıcı zaten engelliyse, bu işlem güncel engel türünün varsayılan olarak seçilmesiyle geçersiz kılınacaktır', type: 'boolean' }, // TwinkleConfig.blankTalkpageOnIndefBlock (boolean) // if true, blank the talk page when issuing an indef block notice (per [[WP:UWUL#Indefinitely blocked users]]) { name: 'blankTalkpageOnIndefBlock', label: 'Kullanıcıları süresiz olarak engellerken mesaj sayfalarını boşaltın', // helptip: 'See <a href="' + mw.util.getUrl('Wikipedia:WikiProject_User_warnings/Usage_and_layout#Indefinitely_blocked_users') + '">WP:UWUL</a> for more information.', type: 'boolean' } ] }, { title: 'Dosya sil', module: 'image', preferences: [ // TwinkleConfig.notifyUserOnDeli (boolean) // If the user should be notified after placing a file deletion tag { name: 'notifyUserOnDeli', label: 'Varsayılan olarak "ilk yükleyen kullanıcıyı bilgilendir" kutusunu işaretleyin', type: 'boolean' }, // TwinkleConfig.deliWatchPage (string) // The watchlist setting of the page tagged for deletion. { name: 'deliWatchPage', label: 'Etiketleme sırasında dosya sayfasını izleme listesine ekleyin', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.deliWatchUser (string) // The watchlist setting of the user talk page if a notification is placed. { name: 'deliWatchUser', label: 'Bildirimde bulunurken yükleyicinin kullanıcı mesaj sayfasını izleme listesine ekleyin', type: 'enum', enumValues: Twinkle.config.watchlistEnums } ] }, { title: 'Sayfa koruması ' + (Morebits.userIsSysop ? '(PP)' : '(RPP)'), module: 'protect', preferences: [ { name: 'watchRequestedPages', label: 'Koruma talep ederken izleme listesine ekle', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, { name: 'watchPPTaggedPages', label: 'Koruma şablonuyla etiketlerken izleme listesine ekle', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, { name: 'watchProtectedPages', label: 'Korurken izleme listesine ekle', helptip: 'Sayfayı korumaksızın etiketliyorsanız, bu ayar yine de kullanılacaktır.', adminOnly: true, type: 'enum', enumValues: Twinkle.config.watchlistEnums } ] }, { title: 'Bekletmeli sil', module: 'prod', preferences: [ // TwinkleConfig.watchProdPages (string) // Watchlist setting when applying prod template to page { name: 'watchProdPages', label: 'Etiketleme sırasında maddeyi izleme listesine ekle', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.markProdPagesAsPatrolled (boolean) // If, when applying prod template to page, to mark the page as curated/patrolled (if the page was reached from NewPages) { name: 'markProdPagesAsPatrolled', label: 'Etiketleme sırasında sayfayı kontrol edildi olarak işaretle (mümkünse)', helptip: 'Bu özellik fikir birliği olmadan büyük ihtimalle kapalı tutulmalıdır.', type: 'boolean' }, // TwinkleConfig.prodReasonDefault (string) // The prefilled PROD reason. { name: 'prodReasonDefault', label: 'Önceden tanımlı BS gerekçesi', type: 'string' }, { name: 'logProdPages', label: 'BS için etiketlediğiniz tüm sayfaların kullanıcı alanında bir kayıt tutun', helptip: 'Hizmetli olmayanların silinen katkılarına erişimi olmadığından kullanıcı alanı günlüğü, Twinkle kullanarak BS için etiketlediğiniz tüm sayfaların kaydını tutmanın iyi bir yolunu sunar.', type: 'boolean' }, { name: 'prodLogPageName', label: 'Kişisel BS günlüğünü bu alt sayfada tutun', helptip: 'Bu kutuya bir alt sayfa adı girin. Günlük "Kullanıcı:<i>kullanıcı adı</i>/<i>alt sayfa</i>" sayfasında tutulacaktır. Sadece kişisel BS günlüğünü aktifleştirirseniz çalışır.', type: 'string' } ] }, { title: 'Geri alma', // twinklefluff module module: 'fluff', preferences: [ // TwinkleConfig.autoMenuAfterRollback (bool) // Option to automatically open the warning menu if the user talk page is opened post-reversion { name: 'autoMenuAfterRollback', label: 'Twinkle ile bir değişikliği geri aldıktan sonra kullanıcı mesaj sayfasındaki Twinkle uyarı menüsünü otomatik olarak açın', helptip: 'Yalnızca aşağıda ilgili kutu işaretlendiğinde çalışır.', type: 'boolean' }, // TwinkleConfig.openTalkPage (array) // What types of actions that should result in opening of talk page { name: 'openTalkPage', label: 'Şu geri almalardan sonra kullanıcı mesaj sayfasını açın', type: 'set', setValues: { agf: 'İyi niyet varsayılan geri alma', norm: 'Normal geri alma', vand: 'Vandalizmi geri alma' } }, // TwinkleConfig.openTalkPageOnAutoRevert (bool) // Defines if talk page should be opened when calling revert from contribs or recent changes pages. If set to true, openTalkPage defines then if talk page will be opened. { name: 'openTalkPageOnAutoRevert', label: 'Kullanıcı katkı sayfasında veya son değişiklikler sayfasında geri alma işlemi yaparken kullanıcı mesaj sayfasını aç', helptip: 'Bu açık olduğunda, bunun çalışması için ilgili seçenekler önceki ayarda etkinleştirilmelidir.', type: 'boolean' }, // TwinkleConfig.rollbackInPlace (bool) // { name: 'rollbackInPlace', label: "Kullanıcı katkı sayfasında veya son değişiklikler sayfasında geri alırken sayfayı yeniden yüklemeyin", helptip: "Bu açıkken Twinkle, geri döndürdükten sonra katkıları veya son değişiklikler sayfasını yeniden yüklemeyecek ve bir seferde birden fazla değişikliği geri döndürmenize izin verecektir.", type: 'boolean' }, // TwinkleConfig.markRevertedPagesAsMinor (array) // What types of actions that should result in marking edit as minor { name: 'markRevertedPagesAsMinor', label: 'Bu tür geri almaları "küçük değişiklik" olarak işaretle', type: 'set', setValues: { agf: 'İyi niyet varsayarak geri alma', norm: 'Normal geri alma', vand: 'Vandalizmi geri alma', torev: '"Bu sürümü geri getir"' } }, // TwinkleConfig.watchRevertedPages (array) // What types of actions that should result in forced addition to watchlist { name: 'watchRevertedPages', label: 'Bu tür geri almalardan sonra sayfayı izleme listesine ekleyin', type: 'set', setValues: { agf: 'İyi niyet varsayarak geri alma', norm: 'Normal geri alma', vand: 'Vandalizmi geri alma', torev: '"Bu sürümü geri getir"' } }, // TwinkleConfig.watchRevertedExpiry // If any of the above items are selected, whether to expire the watch { name: 'watchRevertedExpiry', label: 'Sayfa geri alınırken ne kadar süreyle izlemeye alınacağı', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.offerReasonOnNormalRevert (boolean) // If to offer a prompt for extra summary reason for normal reverts, default to true { name: 'offerReasonOnNormalRevert', label: 'Normal geri almalar için gerekçe iste', helptip: '"Normal" geri almalar, ortadaki [geri al] bağlantısına tıklananlardır.', type: 'boolean' }, { name: 'confirmOnFluff', label: 'Geri almadan önce bir onay iste (tüm aygıtlarda)', helptip: 'Kalemli veya dokunmatik cihaz kullanıcıları ile genellikle kararsız kişiler için.', type: 'boolean' }, { name: 'confirmOnMobileFluff', label: 'Geri almadan önce bir onay iste (yalnızca mobil aygıtlarda)', helptip: 'Mobil aygıtlarda kaza eseri geri almaların önüne geçin.', type: 'boolean' }, // TwinkleConfig.showRollbackLinks (array) // Where Twinkle should show rollback links: // diff, others, mine, contribs, history, recent // Note from TTO: |contribs| seems to be equal to |others| + |mine|, i.e. redundant, so I left it out heres { name: 'showRollbackLinks', label: 'Bu sayfalarda geri alma bağlantılarını göster', type: 'set', setValues: { diff: 'Fark sayfaları', others: 'Diğer kullanıcıların katkılar sayfaları', mine: 'Katkılar sayfam', recent: 'Son değişiklikler ve ilgili diğer özel sayfalar', history: 'Sayfa geçmişleri' } } ] }, { title: 'Paylaşılan IP etiketlemesi', module: 'shared', preferences: [ { name: 'markSharedIPAsMinor', label: 'Paylaşılan IP etiketlemelerini "küçük değişiklik" olarak işaretle', type: 'boolean' } ] }, { title: 'Hızlı silme (HS)', module: 'speedy', preferences: [ { name: 'speedySelectionStyle', label: 'Sayfa ne zaman etiketlenecek/silinecek:', type: 'enum', enumValues: { buttonClick: '"Gönder" tuşuna bastığımda', radioClick: 'Bir seçeneği seçer seçmez' } }, // TwinkleConfig.watchSpeedyPages (array) // Whether to add speedy tagged or deleted pages to watchlist { name: 'watchSpeedyPages', label: 'Bu kriterleri kullanırken sayfayı izleme listesine ekleyin', type: 'set', setValues: Twinkle.config.commonSets.csdCriteria, setDisplayOrder: Twinkle.config.commonSets.csdCriteriaDisplayOrder }, // TwinkleConfig.watchSpeedyExpiry // If any of the above items are selected, whether to expire the watch { name: 'watchSpeedyExpiry', label: 'Sayfa etiketlenirken ne kadar süreyle izlemeye alınacağı', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.markSpeedyPagesAsPatrolled (boolean) // If, when applying speedy template to page, to mark the page as triaged/patrolled (if the page was reached from NewPages) { name: 'markSpeedyPagesAsPatrolled', label: 'Etiketleme sırasında sayfayı kontrol edildi olarak işaretle (mümkünse)', helptip: 'Bu özellik fikir birliği olmadan büyük ihtimalle kapalı tutulmalıdır.', type: 'boolean' }, // TwinkleConfig.watchSpeedyUser (string) // The watchlist setting of the user talk page if they receive a notification. { name: 'watchSpeedyUser', label: 'Alakalı kullanıcının kullanıcı mesaj sayfasını izleme listesine ekle (bildirimde bulunurken)', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.welcomeUserOnSpeedyDeletionNotification (array of strings) // On what types of speedy deletion notifications shall the user be welcomed // with a "firstarticle" notice if their talk page has not yet been created. { name: 'welcomeUserOnSpeedyDeletionNotification', label: 'Bu kriterlerle bildirimde bulunurken sayfayı oluşturan kişiye karşılama şablonu gönder', helptip: 'Karşılama, yalnızca kullanıcı silme konusunda bilgilendiriliyorsa ve yalnızca mesaj sayfası henüz oluşturulmamışsa yapılır. {{firstarticle}} şablonu kullanılır.', type: 'set', setValues: Twinkle.config.commonSets.csdCriteriaNotification, setDisplayOrder: Twinkle.config.commonSets.csdCriteriaNotificationDisplayOrder }, // TwinkleConfig.notifyUserOnSpeedyDeletionNomination (array) // What types of actions should result in the author of the page being notified of nomination { name: 'notifyUserOnSpeedyDeletionNomination', label: 'Şu kriterlerle etiketlerken sayfayı oluşturan kullanıcıyı bilgilendir', helptip: 'HS ekranından bildirimde bulunmayı seçseniz bile, yalnızca burada seçilen kriterler için bildirim gönderilecektir.', type: 'set', setValues: Twinkle.config.commonSets.csdCriteriaNotification, setDisplayOrder: Twinkle.config.commonSets.csdCriteriaNotificationDisplayOrder }, // TwinkleConfig.warnUserOnSpeedyDelete (array) // What types of actions should result in the author of the page being notified of speedy deletion (admin only) { name: 'warnUserOnSpeedyDelete', label: 'Şu kriterlere göre silerken sayfayı oluşturan kullanıcıyı bilgilendir', helptip: 'HS ekranından bildirimde bulunmayı seçseniz bile, bildirim yalnızca burada seçilen kriterler için gerçekleşecektir.', adminOnly: true, type: 'set', setValues: Twinkle.config.commonSets.csdCriteriaNotification, setDisplayOrder: Twinkle.config.commonSets.csdCriteriaNotificationDisplayOrder }, // TwinkleConfig.promptForSpeedyDeletionSummary (array of strings) { name: 'promptForSpeedyDeletionSummary', label: 'Şu kriterlere göre silerken silme özetinin düzenlenmesine izin ver', adminOnly: true, type: 'set', setValues: Twinkle.config.commonSets.csdAndDICriteria, setDisplayOrder: Twinkle.config.commonSets.csdAndDICriteriaDisplayOrder }, // TwinkleConfig.deleteTalkPageOnDelete (boolean) // If talk page if exists should also be deleted (CSD G8) when spedying a page (admin only) { name: 'deleteTalkPageOnDelete', label: 'Varsayılan olarak "tartışma sayfasını da sil" kutusunu işaretle', adminOnly: true, type: 'boolean' }, { name: 'deleteRedirectsOnDelete', label: 'Varsayılan olarak "yönlendirmeleri de sil" kutusunu işaretle', adminOnly: true, type: 'boolean' }, // TwinkleConfig.deleteSysopDefaultToDelete (boolean) // Make the CSD screen default to "delete" instead of "tag" (admin only) { name: 'deleteSysopDefaultToDelete', label: 'Hızlı silmek için etiketlemek yerine varsayılan olarak tamamen silin', helptip: 'Zaten bir sil etiketi varsa, Twinkle her zaman varsayılan olarak silme moduna geçer', adminOnly: true, type: 'boolean' }, // TwinkleConfig.speedyWindowWidth (integer) // Defines the width of the Twinkle SD window in pixels { name: 'speedyWindowWidth', label: 'Hızlı silme penceresinin genişliği (piksel olarak)', type: 'integer' }, // TwinkleConfig.speedyWindowWidth (integer) // Defines the width of the Twinkle SD window in pixels { name: 'speedyWindowHeight', label: 'Hızlı silme penceresinin boyu (piksel olarak)', helptip: 'Büyük bir monitörünüz varsa, bunu artırmak isteyebilirsiniz.', type: 'integer' }, { name: 'logSpeedyNominations', label: 'Tüm HS adaylıklarının kullanıcı alanında bir günlük tutun', helptip: 'Hizmetli olmayanların silinen katkılarına erişimi olmadığından kullanıcı alanı günlüğü, Twinkle kullanarak HS için etiketlediğiniz tüm sayfaların kaydını tutmanın iyi bir yolunu sunar.', type: 'boolean' }, { name: 'speedyLogPageName', label: 'Kişisel HS günlüğünü bu alt sayfada tutun', helptip: 'Bu kutuya bir alt sayfa adı girin. Günlük "Kullanıcı:<i>kullanıcı adı</i>/<i>alt sayfa</i>" sayfasında tutulacaktır. Sadece kişisel HS günlüğünü aktifleştirirseniz çalışır.', type: 'string' }, { name: 'noLogOnSpeedyNomination', label: 'Şu kriterlerle etiketlerken kişisel günlüğe ekleme', type: 'set', setValues: Twinkle.config.commonSets.csdAndDICriteria, setDisplayOrder: Twinkle.config.commonSets.csdAndDICriteriaDisplayOrder } ] }, { title: 'Etiketleme', module: 'tag', preferences: [ { name: 'watchTaggedVenues', label: 'Bu tür sayfaları etiketlerken izleme listesine ekle', type: 'set', setValues: { articles: 'Maddeler', /*drafts: 'Drafts',*/ redirects: 'Yönlendirmeler', files: 'Dosyalar' } }, { name: 'watchTaggedPages', label: 'Bir sayfayı etiketlerken ne kadar süreyle izlenecek', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, /*{ name: 'watchMergeDiscussions', label: 'Birleştirme tartışmaları başlatırken izleme listesine tartışma sayfalarını ekleyin', type: 'enum', enumValues: Twinkle.config.watchlistEnums },*/ { name: 'markTaggedPagesAsMinor', label: 'Etiket eklerken değişikliği "küçük değişiklik" olarak işaretleyin', type: 'boolean' }, { name: 'markTaggedPagesAsPatrolled', label: 'Varsayılan olarak "sayfayı kontrol edildi geçirildi olarak işaretle" kutusunu işaretleyin', type: 'boolean' }, { name: 'groupByDefault', label: 'Varsayılan olarak "{{çoklu sorun}} ile gruplandır" kutusunu işaretleyin', type: 'boolean' }, { name: 'tagArticleSortOrder', label: 'Madde etiketleri için varsayılan görünüm sırası', type: 'enum', enumValues: { cat: 'Kategoriye göre', alpha: 'Alfabetik sıralı olarak' } }, { name: 'customTagList', label: 'Görüntülenecek özel bakım etiketleri', helptip: "Bunlar, etiket listesinin altında ek seçenekler olarak görünür. Örneğin, Twinkle'a henüz eklenmemiş yeni bakım etiketleri ekleyebilirsiniz.", type: 'customList', customListValueTitle: 'Şablon adı (süslü parantez olmadan)', customListLabelTitle: 'Etiketleme menüsünde gözükecek başlık' }, { name: 'customFileTagList', label: 'Görüntülenecek özel dosya bakım etiketleri', helptip: 'Dosyalar için eklemek istediğiniz ek etiketler.', type: 'customList', customListValueTitle: 'Şablon adı (süslü parantez olmadan)', customListLabelTitle: 'Etiketleme menüsünde gözükecek başlık' }/*, { name: 'customRedirectTagList', label: 'Görüntülenecek özel kategori yönlendirmesi etiketleri', helptip: 'Yönlendirmeler için eklemek istediğiniz ek etiketler.', type: 'customList', customListValueTitle: 'Şablon adı (süslü parantez olmadan)', customListLabelTitle: 'Etiketleme menüsünde gözükecek başlık' }*/ ] }, { title: 'Hızlı mesaj', module: 'talkback', preferences: [ { name: 'markTalkbackAsMinor', label: 'Hızlı mesaj gönderimlerini küçük değişiklik olarak işaretleyin', type: 'boolean' }, { name: 'insertTalkbackSignature', label: 'Hızlı mesaj gönderimlerinde imzanızı ekleyin', type: 'boolean' }, { name: 'talkbackHeading', label: 'Hızlı mesaj ve lütfen bakınız bildirimleri için kullanılacak başlık', tooltip: 'Vikimetin biçimlendirmesi için kullanılan eşittir işaretlerini ("==") İÇERMEMELİDİR', type: 'string' }, { name: 'mailHeading', label: "\"e-postanız var\" bildirimleri için kullanılacak başlık", tooltip: 'Vikimetin biçimlendirmesi için kullanılan eşittir işaretlerini ("==") İÇERMEMELİDİR', type: 'string' } ] }, { title: 'Bağlantı kaldır', module: 'unlink', preferences: [ // TwinkleConfig.unlinkNamespaces (array) // In what namespaces unlink should happen, default in 0 (article), 10 (template), 100 (portal), and 118 (draft) { name: 'unlinkNamespaces', label: 'Bu ad alanlarındaki sayfalardan bağlantıları kaldırın', helptip: 'Twinkle tartışma arşivlerindeki bağlantıyı kaldırabileceğinden (ve bu da küçük çaplı bir kaosa yol açabileceğinden) herhangi bir tartışma ad alanı seçmekten kaçının.', type: 'set', setValues: Twinkle.config.commonSets.namespacesNoSpecial } ] }, { title: 'Kullanıcı uyarma', module: 'warn', preferences: [ // TwinkleConfig.defaultWarningGroup (int) // Which level warning should be the default selected group, default is 1 { name: 'defaultWarningGroup', label: 'Varsayılan uyarı düzeyi', type: 'enum', enumValues: { 1: '1: Bildirim', 2: '2: Dikkat', 3: '3: Uyarı', 4: '4: Son uyarı', 5: '4tu: Tek uyarı', 6: 'Tekli bildirimler', 7: 'Tekli uyarılar', // 8 was used for block templates before #260 9: 'Özel uyarılar', 10: 'Tüm uyarı şablonları', 11: 'Düzeyi otomatik seç (1-4)' } }, // TwinkleConfig.combinedSingletMenus (boolean) // if true, show one menu with both single-issue notices and warnings instead of two separately { name: 'combinedSingletMenus', label: 'Tek amaçlı bildirim ve uyarı menüsünü birleşik bir menüde toplayın', //helptip: 'Varsayılanınız olarak tek amaçlı bildirimleri veya tek amaçlı uyarıları seçmek, etkinleştirilirse bu birleşik menüyü varsayılanınız yapar.', type: 'boolean' }, // TwinkleConfig.showSharedIPNotice may take arguments: // true: to show shared ip notice if an IP address // false: to not print the notice { name: 'showSharedIPNotice', label: 'Paylaşılan IP mesaj sayfalarına fazladan uyarı ekleyin', helptip: 'Kullanılan şablon {{Paylaşılan IP Tavsiyesi}} şablonudur', type: 'boolean' }, // TwinkleConfig.watchWarnings (string) // Watchlist setting for the page which has been dispatched an warning or notice { name: 'watchWarnings', label: 'Bildirimde bulunurken kullanıcının mesaj sayfasını izleme listenize ekleyin', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.oldSelect (boolean) // if true, use the native select menu rather the select2-based one { name: 'oldSelect', label: 'Şablon listesinde arama çubuğunu kaldırıp klasik menüyü kullan', type: 'boolean' }, { name: 'customWarningList', label: 'Görüntülenecek özel uyarı şablonları', helptip: 'Kendiniz için ek şablonlar veya kullanıcı alt sayfalarınızdaki şablonları Twinkle\'a ekleyebilirsiniz. Özel uyarılar, uyarı iletişim kutusundaki "Özel uyarılar" kategorisinde görünür.', type: 'customList', customListValueTitle: 'Şablon adı (süslü parantezsiz)', customListLabelTitle: 'Uyarı şablonları listesinde gösterilecek metin (değişiklik özetinde de kullanılır)' } ] }, { title: 'Kullanıcı karşılama', module: 'welcome', preferences: [ { name: 'topWelcomes', label: 'Karşılama mesajını kullanıcı mesaj sayfalarında mevcut içeriğin en üstüne yerleştirin', type: 'boolean' }, { name: 'watchWelcomes', label: 'Karşılama sırasında kullanıcı mesaj sayfalarını izleme listenize ekleyin', helptip: 'Bunu yapmak bir kullanıcıya hoş geldin demenin kişisel değerlerine katkıda bulunur, bir acemi olarak sorunlarla nasıl başa çıktıklarını görebilir ve muhtemelen onlara yardım edebilirsiniz.', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, { name: 'insertUsername', label: 'Kullanıcı adınızı şablona ekleyin (mümkünse)', helptip: "Bazı karşılama şablonlarının \"Selam, ben &lt;kullanıcı&gt. Vikipedi'ye hoş geldin\" gibi bir açılış cümlesi vardır. Bu seçeneği kapatırsanız, şablonlar kullanıcı adınızı bu şekilde göstermez.", type: 'boolean' }, { name: 'quickWelcomeMode', label: 'Fark sayfasındaki "karşıla" bağlantısını tıklayınca gerçekleştirilecek eylem', helptip: 'Otomatik olarak karşılamayı seçerseniz, aşağıda belirttiğiniz şablon kullanılacaktır.', type: 'enum', enumValues: { auto: 'otomatik olarak karşıla', norm: 'şablon seçimi ekranını aç' } }, { name: 'quickWelcomeTemplate', label: 'Otomatik olarak karşılandığında kullanılacak şablon', helptip: 'Süslü parantezler olmadan bir karşılama şablonunun adını girin. Destekleyen şablonlarda ilgili madde otomatik olarak eklenecektir.', type: 'string' }, { name: 'customWelcomeList', label: 'Görüntülenecek özel karşılama şablonları', helptip: "Başka karşılama şablonları veya hoş geldiniz şablonları olan kullanıcı alt sayfalarını ekleyebilirsiniz. (\"Kullanıcı:\" ile başlayacak şekilde). Bu şablonların kullanıcı mesaj sayfalarında subst ile kullanılacağını unutmayın.", type: 'customList', customListValueTitle: 'Şablon adı (süslü parantez olmadan)', customListLabelTitle: 'Hoş Geldiniz iletişim kutusunda gösterilecek metin' }, { name: 'customWelcomeSignature', label: 'Özel karşılama şablonlarını otomatik olarak imzalayın', helptip: 'Özel karşılama şablonlarınız şablon içinde yerleşik bir imza içeriyorsa, bu seçeneği kapatın.', type: 'boolean' } ] }, { title: 'Silme tartışmaları (SAS, KT, ŞT)', module: 'xfd', preferences: [ { name: 'logXfdNominations', label: 'Bir silme tartışması için aday gösterdiğiniz tüm sayfaların kullanıcı ad alanınızda bir günlüğünü tutun', helptip: 'Kullanıcı ad alanı günlüğü, Twinkle kullanarak silinmesi için aday gösterdiğiniz tüm sayfaların kaydını tutmanın iyi bir yolunu sunar.', type: 'boolean' }, { name: 'xfdLogPageName', label: 'Silme adaylığı günlüğünü bu kullanıcı alt sayfanızda tutun', helptip: 'Bu kutuya bir alt sayfa adı girin. Günlüğünüz Kullanıcı:<i>kullanıcı adı</i>/<i>alt sayfa adı</i> sayfasında olacaktır. Yalnızca kullanıcı ad alanı günlüğünü aktifleştirirseniz çalışır.', type: 'string' }, { name: 'noLogOnXfdNomination', label: 'Bu sayfada aday gösterirken kullanıcı ad alanı günlüğüne not almayın', type: 'set', setValues: { afd: 'SAS', cfd: 'KT', tfd: 'ŞT'} }, // TwinkleConfig.xfdWatchPage (string) // The watchlist setting of the page being nominated for XfD. { name: 'xfdWatchPage', label: 'Aday gösterdiğiniz sayfayı izleme listesine ekleyin', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.xfdWatchDiscussion (string) // The watchlist setting of the newly created XfD page (for those processes that create discussion pages for each nomination), // or the list page for the other processes. { name: 'xfdWatchDiscussion', label: 'Silme tartışma sayfasını izleme listenize ekleyin', helptip: 'Bu seçenek adaylık sayfasını ("Vikipedi:Silinmeye aday sayfalar/Adaylık sayfası" gibi) oluşturduktan sonra izleme listenize ekler', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.xfdWatchList (string) // The watchlist setting of the XfD list page, *if* the discussion is on a separate page. /* { name: 'xfdWatchList', label: 'Add the daily log/list page to the watchlist (AfD and MfD)', // helptip: 'This only applies for AfD and MfD, where the discussions are transcluded onto a daily log page (for AfD) or the main MfD page (for MfD).', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, */ // Adaylıkları günlük listelemiyoruz // TwinkleConfig.xfdWatchUser (string) // The watchlist setting of the user talk page if they receive a notification. { name: 'xfdWatchUser', label: 'İzleme listesine ilk katkıda bulunanın kullanıcının mesaj sayfasını ekleyin (bildirimde bulunurken)', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, // TwinkleConfig.xfdWatchRelated (string) // The watchlist setting of the target of a redirect being nominated for RfD. /* { name: 'xfdWatchRelated', label: "Yönlendirmenin hedef sayfasını izleme listesine ekleyin (bildirimde bulunurken)", helptip: 'Bu sadece RfD (Silinmeye Aday Yönlendirmeler) prosedürü için çalışmaktadır. Türkçe Vikipedi\'de ise bu prosedürün bir karşılığı yoktur.', type: 'enum', enumValues: Twinkle.config.watchlistEnums }, */ // RfD prosedürü bizde yok { name: 'markXfdPagesAsPatrolled', label: 'Silmeye aday gösterirken sayfayı sürüm kontrol edildi olarak işaretle (eğer mümkünse)', type: 'boolean' } ] }, { title: 'Hidden', hidden: true, preferences: [ // twinkle.js: portlet setup { name: 'portletArea', type: 'string' }, { name: 'portletId', type: 'string' }, { name: 'portletName', type: 'string' }, { name: 'portletType', type: 'string' }, { name: 'portletNext', type: 'string' }, // twinklefluff.js: defines how many revision to query maximum, maximum possible is 50, default is 50 { name: 'revertMaxRevisions', type: 'integer' }, // twinklewarn.js: When using the autolevel select option, how many days makes a prior warning stale // Huggle is three days ([[Special:Diff/918980316]] and [[Special:Diff/919417999]]) while ClueBotNG is two: // https://github.com/DamianZaremba/cluebotng/blob/4958e25d6874cba01c75f11debd2e511fd5a2ce5/bot/action_functions.php#L62 { name: 'autolevelStaleDays', type: 'integer' }, // How many pages should be queried by deprod and batchdelete/protect/undelete { name: 'batchMax', type: 'integer', adminOnly: true }, // How many pages should be processed at a time by deprod and batchdelete/protect/undelete { name: 'batchChunks', type: 'integer', adminOnly: true } ] } ]; // end of Twinkle.config.sections Twinkle.config.init = function twinkleconfigInit() { // create the config page at Wikipedia:Twinkle/Preferences if ((mw.config.get('wgNamespaceNumber') === mw.config.get('wgNamespaceIds').project && mw.config.get('wgTitle') === 'Twinkle/Tercihler') && mw.config.get('wgAction') === 'view') { if (!document.getElementById('twinkle-config')) { return; // maybe the page is misconfigured, or something - but any attempt to modify it will be pointless } // set style (the url() CSS function doesn't seem to work from wikicode - ?!) document.getElementById('twinkle-config-titlebar').style.backgroundImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB%2FqqA%2BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhQTFRFr73ZobTPusjdsMHZp7nVwtDhzNbnwM3fu8jdq7vUt8nbxtDkw9DhpbfSvMrfssPZqLvVztbno7bRrr7W1d%2Fs1N7qydXk0NjpkW7Q%2BgAAADVJREFUeNoMwgESQCAAAMGLkEIi%2FP%2BnbnbpdB59app5Vdg0sXAoMZCpGoFbK6ciuy6FX4ABAEyoAef0BXOXAAAAAElFTkSuQmCC)'; var contentdiv = document.getElementById('twinkle-config-content'); contentdiv.textContent = ''; // clear children // let user know about possible conflict with skin js/common.js file // (settings in that file will still work, but they will be overwritten by twinkleoptions.js settings) if (window.TwinkleConfig || window.FriendlyConfig) { var contentnotice = document.createElement('p'); contentnotice.innerHTML = '<table class="plainlinks morebits-ombox morebits-ombox-content"><tr><td class="morebits-mbox-image">' + '<img alt="" src="https://upload.wikimedia.org/wikipedia/commons/3/38/Imbox_content.png" /></td>' + '<td class="morebits-mbox-text"><p><big><b>Tercihlerinizi değiştirmeden önce,</b> eski Twinkle tercihlerinizi kişisel skin JavaScript\'inizden kaldırmanız gerekir.</big></p>' + '<p>To do this, you can <a href="' + mw.util.getUrl('User:' + mw.config.get('wgUserName') + '/' + mw.config.get('skin') + '.js', { action: 'edit' }) + '" target="_blank"><b>kişisel skin javascript dosyanızı düzenleyin</b></a> or <a href="' + mw.util.getUrl('User:' + mw.config.get('wgUserName') + '/common.js', { action: 'edit'}) + '" target="_blank"><b>common.js dosyanızda</b></a>, <code>TwinkleConfig</code> ve <code>FriendlyConfig</code> ile alakalı tüm kod satırları kaldırılıyor.</p>' + '</td></tr></table>'; contentdiv.appendChild(contentnotice); } // start a table of contents var toctable = document.createElement('div'); toctable.className = 'toc'; toctable.style.marginLeft = '0.4em'; // create TOC title var toctitle = document.createElement('div'); toctitle.id = 'toctitle'; var toch2 = document.createElement('h2'); toch2.textContent = 'İçindekiler '; toctitle.appendChild(toch2); // add TOC show/hide link var toctoggle = document.createElement('span'); toctoggle.className = 'toctoggle'; toctoggle.appendChild(document.createTextNode('[')); var toctogglelink = document.createElement('a'); toctogglelink.className = 'internal'; toctogglelink.setAttribute('href', '#tw-tocshowhide'); toctogglelink.textContent = 'hide'; toctoggle.appendChild(toctogglelink); toctoggle.appendChild(document.createTextNode(']')); toctitle.appendChild(toctoggle); toctable.appendChild(toctitle); // create item container: this is what we add stuff to var tocul = document.createElement('ul'); toctogglelink.addEventListener('click', function twinkleconfigTocToggle() { var $tocul = $(tocul); $tocul.toggle(); if ($tocul.find(':visible').length) { toctogglelink.textContent = 'hide'; } else { toctogglelink.textContent = 'show'; } }, false); toctable.appendChild(tocul); contentdiv.appendChild(toctable); var contentform = document.createElement('form'); contentform.setAttribute('action', 'javascript:void(0)'); // was #tw-save - changed to void(0) to work around Chrome issue contentform.addEventListener('submit', Twinkle.config.save, true); contentdiv.appendChild(contentform); var container = document.createElement('table'); container.style.width = '100%'; contentform.appendChild(container); $(Twinkle.config.sections).each(function(sectionkey, section) { if (section.hidden || (section.adminOnly && !Morebits.userIsSysop)) { return true; // i.e. "continue" in this context } // add to TOC var tocli = document.createElement('li'); tocli.className = 'toclevel-1'; var toca = document.createElement('a'); toca.setAttribute('href', '#' + section.module); toca.appendChild(document.createTextNode(section.title)); tocli.appendChild(toca); tocul.appendChild(tocli); var row = document.createElement('tr'); var cell = document.createElement('td'); cell.setAttribute('colspan', '3'); var heading = document.createElement('h4'); heading.style.borderBottom = '1px solid gray'; heading.style.marginTop = '0.2em'; heading.id = section.module; heading.appendChild(document.createTextNode(section.title)); cell.appendChild(heading); row.appendChild(cell); container.appendChild(row); var rowcount = 1; // for row banding // add each of the preferences to the form $(section.preferences).each(function(prefkey, pref) { if (pref.adminOnly && !Morebits.userIsSysop) { return true; // i.e. "continue" in this context } row = document.createElement('tr'); row.style.marginBottom = '0.2em'; // create odd row banding if (rowcount++ % 2 === 0) { row.style.backgroundColor = 'rgba(128, 128, 128, 0.1)'; } cell = document.createElement('td'); var label, input, gotPref = Twinkle.getPref(pref.name); switch (pref.type) { case 'boolean': // create a checkbox cell.setAttribute('colspan', '2'); label = document.createElement('label'); input = document.createElement('input'); input.setAttribute('type', 'checkbox'); input.setAttribute('id', pref.name); input.setAttribute('name', pref.name); if (gotPref === true) { input.setAttribute('checked', 'checked'); } label.appendChild(input); label.appendChild(document.createTextNode(pref.label)); cell.appendChild(label); break; case 'string': // create an input box case 'integer': // add label to first column cell.style.textAlign = 'right'; cell.style.paddingRight = '0.5em'; label = document.createElement('label'); label.setAttribute('for', pref.name); label.appendChild(document.createTextNode(pref.label + ':')); cell.appendChild(label); row.appendChild(cell); // add input box to second column cell = document.createElement('td'); cell.style.paddingRight = '1em'; input = document.createElement('input'); input.setAttribute('type', 'text'); input.setAttribute('id', pref.name); input.setAttribute('name', pref.name); if (pref.type === 'integer') { input.setAttribute('size', 6); input.setAttribute('type', 'number'); input.setAttribute('step', '1'); // integers only } if (gotPref) { input.setAttribute('value', gotPref); } cell.appendChild(input); break; case 'enum': // create a combo box // add label to first column // note: duplicates the code above, under string/integer cell.style.textAlign = 'right'; cell.style.paddingRight = '0.5em'; label = document.createElement('label'); label.setAttribute('for', pref.name); label.appendChild(document.createTextNode(pref.label + ':')); cell.appendChild(label); row.appendChild(cell); // add input box to second column cell = document.createElement('td'); cell.style.paddingRight = '1em'; input = document.createElement('select'); input.setAttribute('id', pref.name); input.setAttribute('name', pref.name); $.each(pref.enumValues, function(enumvalue, enumdisplay) { var option = document.createElement('option'); option.setAttribute('value', enumvalue); if ((gotPref === enumvalue) || // Hack to convert old boolean watchlist prefs // to corresponding enums (added in v2.1) (typeof gotPref === 'boolean' && ((gotPref && enumvalue === 'yes') || (!gotPref && enumvalue === 'no')))) { option.setAttribute('selected', 'selected'); } option.appendChild(document.createTextNode(enumdisplay)); input.appendChild(option); }); cell.appendChild(input); break; case 'set': // create a set of check boxes // add label first of all cell.setAttribute('colspan', '2'); label = document.createElement('label'); // not really necessary to use a label element here, but we do it for consistency of styling label.appendChild(document.createTextNode(pref.label + ':')); cell.appendChild(label); var checkdiv = document.createElement('div'); checkdiv.style.paddingLeft = '1em'; var worker = function(itemkey, itemvalue) { var checklabel = document.createElement('label'); checklabel.style.marginRight = '0.7em'; checklabel.style.display = 'inline-block'; var check = document.createElement('input'); check.setAttribute('type', 'checkbox'); check.setAttribute('id', pref.name + '_' + itemkey); check.setAttribute('name', pref.name + '_' + itemkey); if (gotPref && gotPref.indexOf(itemkey) !== -1) { check.setAttribute('checked', 'checked'); } // cater for legacy integer array values for unlinkNamespaces (this can be removed a few years down the track...) if (pref.name === 'unlinkNamespaces') { if (gotPref && gotPref.indexOf(parseInt(itemkey, 10)) !== -1) { check.setAttribute('checked', 'checked'); } } checklabel.appendChild(check); checklabel.appendChild(document.createTextNode(itemvalue)); checkdiv.appendChild(checklabel); }; if (pref.setDisplayOrder) { // add check boxes according to the given display order $.each(pref.setDisplayOrder, function(itemkey, item) { worker(item, pref.setValues[item]); }); } else { // add check boxes according to the order it gets fed to us (probably strict alphabetical) $.each(pref.setValues, worker); } cell.appendChild(checkdiv); break; case 'customList': // add label to first column cell.style.textAlign = 'right'; cell.style.paddingRight = '0.5em'; label = document.createElement('label'); label.setAttribute('for', pref.name); label.appendChild(document.createTextNode(pref.label + ':')); cell.appendChild(label); row.appendChild(cell); // add button to second column cell = document.createElement('td'); cell.style.paddingRight = '1em'; var button = document.createElement('button'); button.setAttribute('id', pref.name); button.setAttribute('name', pref.name); button.setAttribute('type', 'button'); button.addEventListener('click', Twinkle.config.listDialog.display, false); // use jQuery data on the button to store the current config value $(button).data({ value: gotPref, pref: pref }); button.appendChild(document.createTextNode('Öğeleri düzenle')); cell.appendChild(button); break; default: alert('twinkleconfig: tercih için bilinmeyen veri türü ' + pref.name); break; } row.appendChild(cell); // add help tip cell = document.createElement('td'); cell.style.fontSize = '90%'; cell.style.color = 'gray'; if (pref.helptip) { // convert mentions of templates in the helptip to clickable links cell.innerHTML = pref.helptip.replace(/{{(.+?)}}/g, '{{<a href="' + mw.util.getUrl('Template:') + '$1" target="_blank">$1</a>}}'); } // add reset link (custom lists don't need this, as their config value isn't displayed on the form) if (pref.type !== 'customList') { var resetlink = document.createElement('a'); resetlink.setAttribute('href', '#tw-reset'); resetlink.setAttribute('id', 'twinkle-config-reset-' + pref.name); resetlink.addEventListener('click', Twinkle.config.resetPrefLink, false); resetlink.style.cssFloat = 'right'; resetlink.style.margin = '0 0.6em'; resetlink.appendChild(document.createTextNode('Sıfırla')); cell.appendChild(resetlink); } row.appendChild(cell); container.appendChild(row); return true; }); return true; }); var footerbox = document.createElement('div'); footerbox.setAttribute('id', 'twinkle-config-buttonpane'); footerbox.style.backgroundColor = '#BCCADF'; footerbox.style.padding = '0.5em'; var button = document.createElement('button'); button.setAttribute('id', 'twinkle-config-submit'); button.setAttribute('type', 'submit'); button.appendChild(document.createTextNode('Değişiklikleri kaydet')); footerbox.appendChild(button); var footerspan = document.createElement('span'); footerspan.className = 'plainlinks'; footerspan.style.marginLeft = '2.4em'; footerspan.style.fontSize = '90%'; var footera = document.createElement('a'); footera.setAttribute('href', '#tw-reset-all'); footera.setAttribute('id', 'twinkle-config-resetall'); footera.addEventListener('click', Twinkle.config.resetAllPrefs, false); footera.appendChild(document.createTextNode('Varsayılanları geri getir')); footerspan.appendChild(footera); footerbox.appendChild(footerspan); contentform.appendChild(footerbox); // since all the section headers exist now, we can try going to the requested anchor if (window.location.hash) { var loc = window.location.hash; window.location.hash = ''; window.location.hash = loc; } } else if (mw.config.get('wgNamespaceNumber') === mw.config.get('wgNamespaceIds').user && mw.config.get('wgTitle').indexOf(mw.config.get('wgUserName')) === 0 && mw.config.get('wgPageName').slice(-3) === '.js') { var box = document.createElement('div'); // Styled in twinkle.css box.setAttribute('id', 'twinkle-config-headerbox'); var link, scriptPageName = mw.config.get('wgPageName').slice(mw.config.get('wgPageName').lastIndexOf('/') + 1, mw.config.get('wgPageName').lastIndexOf('.js')); if (scriptPageName === 'twinkleoptions') { // place "why not try the preference panel" notice box.setAttribute('class', 'config-twopt-box'); if (mw.config.get('wgArticleId') > 0) { // page exists box.appendChild(document.createTextNode('Bu sayfa Twinkle tercihlerini barındırır. Ayarları ')); } else { // page does not exist box.appendChild(document.createTextNode('Şunu kullanarak Twinkle\'ı tercihlerinize göre özelleştirebilirsiniz: ')); } link = document.createElement('a'); link.setAttribute('href', mw.util.getUrl(mw.config.get('wgFormattedNamespaces')[mw.config.get('wgNamespaceIds').project] + ':Twinkle/Tercihler')); link.appendChild(document.createTextNode('Twinkle tercihler panelinden')); box.appendChild(link); box.appendChild(document.createTextNode(' veya bu sayfayı düzenleyerek değiştirebilirsiniz.')); $(box).insertAfter($('#contentSub')); } else if (['monobook', 'vector', 'vector-2022', 'cologneblue', 'modern', 'timeless', 'minerva', 'common'].indexOf(scriptPageName) !== -1) { // place "Looking for Twinkle options?" notice box.setAttribute('class', 'config-userskin-box'); box.appendChild(document.createTextNode('Twinkle tercihlerini ayarlamak isterseniz, ')); link = document.createElement('a'); link.setAttribute('href', mw.util.getUrl(mw.config.get('wgFormattedNamespaces')[mw.config.get('wgNamespaceIds').project] + ':Twinkle/Tercihler')); link.appendChild(document.createTextNode('Twinkle tercihler panelini kullanabilirsiniz.')); box.appendChild(link); box.appendChild(document.createTextNode('.')); $(box).insertAfter($('#contentSub')); } } }; // custom list-related stuff Twinkle.config.listDialog = {}; Twinkle.config.listDialog.addRow = function twinkleconfigListDialogAddRow($dlgtable, value, label) { var $contenttr, $valueInput, $labelInput; $dlgtable.append( $contenttr = $('<tr>').append( $('<td>').append( $('<button>') .attr('type', 'button') .on('click', function () { $contenttr.remove(); }) .text('Kaldır') ), $('<td>').append( $valueInput = $('<input>') .attr('type', 'text') .addClass('twinkle-config-customlist-value') .css('width', '97%') ), $('<td>').append( $labelInput = $('<input>') .attr('type', 'text') .addClass('twinkle-config-customlist-label') .css('width', '98%') ) ) ); if (value) { $valueInput.val(value); } if (label) { $labelInput.val(label); } }; Twinkle.config.listDialog.display = function twinkleconfigListDialogDisplay(e) { var $prefbutton = $(e.target); var curvalue = $prefbutton.data('value'); var curpref = $prefbutton.data('pref'); var dialog = new Morebits.simpleWindow(720, 400); dialog.setTitle(curpref.label); dialog.setScriptName('Twinkle tercihleri'); var $dlgtbody; dialog.setContent( $('<div>').append( $('<table>') .addClass('wikitable') .css({ margin: '1.4em 1em', width: 'auto' }) .append( $dlgtbody = $('<tbody>').append( // header row $('<tr>').append( $('<th>') // top-left cell .css('width', '5%'), $('<th>') // value column header .css('width', '35%') .text(curpref.customListValueTitle ? curpref.customListValueTitle : 'Value'), $('<th>') // label column header .css('width', '60%') .text(curpref.customListLabelTitle ? curpref.customListLabelTitle : 'Label') ) ), $('<tfoot>').append( $('<tr>').append( $('<td>') .attr('colspan', '3') .append( $('<button>') .text('Add') .css('min-width', '8em') .attr('type', 'button') .on('click', function () { Twinkle.config.listDialog.addRow($dlgtbody); }) ) ) ) ), $('<button>') .text('Değişiklikleri kaydet') .attr('type', 'submit') // so Morebits.simpleWindow puts the button in the button pane .on('click', function () { Twinkle.config.listDialog.save($prefbutton, $dlgtbody); dialog.close(); }), $('<button>') .text('Reset') .attr('type', 'submit') .on('click', function () { Twinkle.config.listDialog.reset($prefbutton, $dlgtbody); }), $('<button>') .text('Cancel') .attr('type', 'submit') .on('click', function () { dialog.close(); }) )[0] ); // content rows var gotRow = false; $.each(curvalue, function(k, v) { gotRow = true; Twinkle.config.listDialog.addRow($dlgtbody, v.value, v.label); }); // if there are no values present, add a blank row to start the user off if (!gotRow) { Twinkle.config.listDialog.addRow($dlgtbody); } dialog.display(); }; // Resets the data value, re-populates based on the new (default) value, then saves the // old data value again (less surprising behaviour) Twinkle.config.listDialog.reset = function twinkleconfigListDialogReset($button, $tbody) { // reset value on button var curpref = $button.data('pref'); var oldvalue = $button.data('value'); Twinkle.config.resetPref(curpref); // reset form $tbody.find('tr').slice(1).remove(); // all rows except the first (header) row // add the new values var curvalue = $button.data('value'); $.each(curvalue, function(k, v) { Twinkle.config.listDialog.addRow($tbody, v.value, v.label); }); // save the old value $button.data('value', oldvalue); }; Twinkle.config.listDialog.save = function twinkleconfigListDialogSave($button, $tbody) { var result = []; var current = {}; $tbody.find('input[type="text"]').each(function(inputkey, input) { if ($(input).hasClass('twinkle-config-customlist-value')) { current = { value: input.value }; } else { current.label = input.value; // exclude totally empty rows if (current.value || current.label) { result.push(current); } } }); $button.data('value', result); }; // reset/restore defaults Twinkle.config.resetPrefLink = function twinkleconfigResetPrefLink(e) { var wantedpref = e.target.id.substring(21); // "twinkle-config-reset-" prefix is stripped // search tactics $(Twinkle.config.sections).each(function(sectionkey, section) { if (section.hidden || (section.adminOnly && !Morebits.userIsSysop)) { return true; // continue: skip impossibilities } var foundit = false; $(section.preferences).each(function(prefkey, pref) { if (pref.name !== wantedpref) { return true; // continue } Twinkle.config.resetPref(pref); foundit = true; return false; // break }); if (foundit) { return false; // break } }); return false; // stop link from scrolling page }; Twinkle.config.resetPref = function twinkleconfigResetPref(pref) { switch (pref.type) { case 'boolean': document.getElementById(pref.name).checked = Twinkle.defaultConfig[pref.name]; break; case 'string': case 'integer': case 'enum': document.getElementById(pref.name).value = Twinkle.defaultConfig[pref.name]; break; case 'set': $.each(pref.setValues, function(itemkey) { if (document.getElementById(pref.name + '_' + itemkey)) { document.getElementById(pref.name + '_' + itemkey).checked = Twinkle.defaultConfig[pref.name].indexOf(itemkey) !== -1; } }); break; case 'customList': $(document.getElementById(pref.name)).data('value', Twinkle.defaultConfig[pref.name]); break; default: alert('twinkleconfig: tercih için bilinmeyen veri türü ' + pref.name); break; } }; Twinkle.config.resetAllPrefs = function twinkleconfigResetAllPrefs() { // no confirmation message - the user can just refresh/close the page to abort $(Twinkle.config.sections).each(function(sectionkey, section) { if (section.hidden || (section.adminOnly && !Morebits.userIsSysop)) { return true; // continue: skip impossibilities } $(section.preferences).each(function(prefkey, pref) { if (!pref.adminOnly || Morebits.userIsSysop) { Twinkle.config.resetPref(pref); } }); return true; }); return false; // stop link from scrolling page }; Twinkle.config.save = function twinkleconfigSave(e) { Morebits.status.init(document.getElementById('twinkle-config-content')); var userjs = mw.config.get('wgFormattedNamespaces')[mw.config.get('wgNamespaceIds').user] + ':' + mw.config.get('wgUserName') + '/twinkleoptions.js'; var wikipedia_page = new Morebits.wiki.page(userjs, 'Tercihler şuraya kaydediliyor: ' + userjs); wikipedia_page.setCallbackParameters(e.target); wikipedia_page.load(Twinkle.config.writePrefs); return false; }; Twinkle.config.writePrefs = function twinkleconfigWritePrefs(pageobj) { var form = pageobj.getCallbackParameters(); // this is the object which gets serialized into JSON; only // preferences that this script knows about are kept var newConfig = {optionsVersion: 2.1}; // a comparison function is needed later on // it is just enough for our purposes (i.e. comparing strings, numbers, booleans, // arrays of strings, and arrays of { value, label }) // and it is not very robust: e.g. compare([2], ["2"]) === true, and // compare({}, {}) === false, but it's good enough for our purposes here var compare = function(a, b) { if (Array.isArray(a)) { if (a.length !== b.length) { return false; } var asort = a.sort(), bsort = b.sort(); for (var i = 0; asort[i]; ++i) { // comparison of the two properties of custom lists if ((typeof asort[i] === 'object') && (asort[i].label !== bsort[i].label || asort[i].value !== bsort[i].value)) { return false; } else if (asort[i].toString() !== bsort[i].toString()) { return false; } } return true; } return a === b; }; $(Twinkle.config.sections).each(function(sectionkey, section) { if (section.adminOnly && !Morebits.userIsSysop) { return; // i.e. "continue" in this context } // reach each of the preferences from the form $(section.preferences).each(function(prefkey, pref) { var userValue; // = undefined // only read form values for those prefs that have them if (!pref.adminOnly || Morebits.userIsSysop) { if (!section.hidden) { switch (pref.type) { case 'boolean': // read from the checkbox userValue = form[pref.name].checked; break; case 'string': // read from the input box or combo box case 'enum': userValue = form[pref.name].value; break; case 'integer': // read from the input box userValue = parseInt(form[pref.name].value, 10); if (isNaN(userValue)) { Morebits.status.warn('Kaydediliyor', pref.name + ' (' + pref.value + ') için belirttiğiniz değer geçersiz. Kaydetme devam ediliyor, ancak geçersiz veri değeri atlanacak.'); userValue = null; } break; case 'set': // read from the set of check boxes userValue = []; if (pref.setDisplayOrder) { // read only those keys specified in the display order $.each(pref.setDisplayOrder, function(itemkey, item) { if (form[pref.name + '_' + item].checked) { userValue.push(item); } }); } else { // read all the keys in the list of values $.each(pref.setValues, function(itemkey) { if (form[pref.name + '_' + itemkey].checked) { userValue.push(itemkey); } }); } break; case 'customList': // read from the jQuery data stored on the button object userValue = $(form[pref.name]).data('value'); break; default: alert('twinkleconfig: tercih için bilinmeyen veri türü ' + pref.name); break; } } else if (Twinkle.prefs) { // Retain the hidden preferences that may have customised by the user from twinkleoptions.js // undefined if not set userValue = Twinkle.prefs[pref.name]; } } // only save those preferences that are *different* from the default if (userValue !== undefined && !compare(userValue, Twinkle.defaultConfig[pref.name])) { newConfig[pref.name] = userValue; } }); }); var text = "// twinkleoptions.js: kişisel Twinkle tercih dosyası\n" + "//\n" + "// NOT: Twinkle tercihlerinizi değiştirmenin en kolay yolu \n" + "// [[" + Morebits.pageNameNorm + "]] sayfasındaki Twinkle tercihleri panelini kullanmaktır.\n" + "//\n" + "// Bu sayfa OTOMATİK OLARAK OLUŞTURULUR. Yaptığınız tüm değişiklikler \n" + "// (yapılandırma parametrelerini geçerli bir JavaScript yöntemiyle\n" + "// değiştirmenin yanı sıra) Twinkle tercihleri panelinde bir sonraki \"kaydet\"\n" + "// düğmesini tıkladığınızda yazılacaktır. Bu dosyayı elle değiştiriyorsanız, \n" + "// doğru JavaScript kodunu kullanıp kodu bozmadığınızdan emin olun.\n" + '// <no' + 'wiki>\n' + "\n" + "window.Twinkle.prefs = "; text += JSON.stringify(newConfig, null, 2); text += ';\n' + '\n' + '// </no' + 'wiki>\n' + '// twinkleoptions.js sonu\n'; pageobj.setPageText(text); pageobj.setEditSummary("Twinkle tercihleri kaydediliyor: [[" + Morebits.pageNameNorm + "]] aracılığıyla yapılan otomatik değişiklik"); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setCreateOption('recreate'); pageobj.save(Twinkle.config.saveSuccess); }; Twinkle.config.saveSuccess = function twinkleconfigSaveSuccess(pageobj) { pageobj.getStatusElement().info('başarılı'); var noticebox = document.createElement('div'); noticebox.className = 'successbox'; noticebox.style.fontSize = '100%'; noticebox.style.marginTop = '2em'; noticebox.innerHTML = "<p><b>Twinkle tercihleriniz kaydedildi.</b></p><p>Değişiklikleri görebilmek için <b>tarayıcı önbelleğinizi tamamen temizlemeniz gerekir</b> (talimatlar için bknz. <a href=\"" + mw.util.getUrl("VP:ÖB") + "\" title=\"VP:ÖB\">VP:ÖB</a>).</p>";Morebits.status.root.appendChild(noticebox); var noticeclear = document.createElement('br'); noticeclear.style.clear = 'both'; Morebits.status.root.appendChild(noticeclear); }; Twinkle.addInitCallback(Twinkle.config.init); })(jQuery); // </nowiki> nark8ecknbgog9v34kydv7848quuq44