Index: branches/REL1_17/extensions/MassEditRegex/MassEditRegex.i18n.php |
— | — | @@ -10,6 +10,7 @@ |
11 | 11 | |
12 | 12 | /** English |
13 | 13 | * @author Adam Nielsen |
| 14 | + * @author SVG |
14 | 15 | */ |
15 | 16 | $messages['en'] = array( |
16 | 17 | 'masseditregex' => 'Mass edit using regular expressions', |
— | — | @@ -50,17 +51,22 @@ |
51 | 52 | 'masseditregex-badregex' => 'Invalid regex:', |
52 | 53 | 'masseditregex-editfailed' => 'Edit failed:', |
53 | 54 | 'masseditregex-tooltip-execute' => 'Apply these changes to each page', |
| 55 | + |
| 56 | + 'right-masseditregex' => 'Replace page contents using regular expressions', |
54 | 57 | ); |
55 | 58 | |
56 | 59 | /** Message documentation (Message documentation) |
57 | 60 | * @author Fryed-peach |
58 | 61 | * @author Purodha |
59 | 62 | * @author Siebrand |
| 63 | + * @author SVG |
60 | 64 | */ |
61 | 65 | $messages['qqq'] = array( |
62 | 66 | 'masseditregex-desc' => '{{desc}}', |
63 | 67 | 'masseditregextext' => 'Replace <code>/en/</code> in the middle in link <code>http://php.net/manual/en/function.preg-replace.php</code> with your language code between slashes, if that page exists. Otherwise leave it as is to link to the English documentation, or choose an appropriate fallback language code.', |
64 | 68 | 'masseditregex-hint-headmatch' => "Noun. This is a column header for the 'match' regexes.", |
| 69 | + |
| 70 | + 'right-masseditregex' => '{{doc-right|masseditregex}}', |
65 | 71 | ); |
66 | 72 | |
67 | 73 | /** Afrikaans (Afrikaans) |
— | — | @@ -217,7 +223,14 @@ |
218 | 224 | 'masseditregex-tooltip-execute' => 'طبق هذه التغييرات على كل صفحة', |
219 | 225 | ); |
220 | 226 | |
221 | | -/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) |
| 227 | +/** Azerbaijani (Azərbaycanca) |
| 228 | + * @author Cekli829 |
| 229 | + */ |
| 230 | +$messages['az'] = array( |
| 231 | + 'masseditregex-matchtxt' => 'Axtarış üçün:', |
| 232 | +); |
| 233 | + |
| 234 | +/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) |
222 | 235 | * @author EugeneZelenko |
223 | 236 | * @author Jim-by |
224 | 237 | */ |
— | — | @@ -272,6 +285,28 @@ |
273 | 286 | 'masseditregex-hint-headreplace' => 'Заместване', |
274 | 287 | ); |
275 | 288 | |
| 289 | +/** Bengali (বাংলা) |
| 290 | + * @author Wikitanvir |
| 291 | + */ |
| 292 | +$messages['bn'] = array( |
| 293 | + 'masseditregex' => 'রেগুলার এক্সপ্রেশন ব্যবহার করে গণ সম্পাদনা', |
| 294 | + 'masseditregex-matchtxt' => 'অনুসন্ধান:', |
| 295 | + 'masseditregex-replacetxt' => 'যা দিয়ে প্রতিস্থাপিত হবে:', |
| 296 | + 'masseditregex-executebtn' => 'এক্সকিউট', |
| 297 | + 'masseditregex-err-nopages' => 'আপনাকে অবশ্যই পরিবর্তনের জন্য কমপক্ষে একটি পাতা নির্বাচন করতে হবে।', |
| 298 | + 'masseditregex-before' => 'পূর্বে', |
| 299 | + 'masseditregex-after' => 'পরে', |
| 300 | + 'masseditregex-view-full-summary' => 'সম্পূর্ণ সম্পাদনা সারাংশ পরিদর্শন', |
| 301 | + 'masseditregex-hint-headmatch' => 'সাদৃশ্য', |
| 302 | + 'masseditregex-hint-headreplace' => 'প্রতিস্থাপিত', |
| 303 | + 'masseditregex-hint-headeffect' => 'প্রভাব', |
| 304 | + 'masseditregex-listtype-intro' => 'এটি যার তালিকা:', |
| 305 | + 'masseditregex-listtype-pagenames' => 'পাতার নাম (এই পাতাগুলি সম্পাদনা করুন)', |
| 306 | + 'masseditregex-badregex' => 'ত্রুটিপূর্ণ রিজেক্স:', |
| 307 | + 'masseditregex-editfailed' => 'সম্পাদনা ব্যর্থ:', |
| 308 | + 'masseditregex-tooltip-execute' => 'প্রতিটি পাতায় এই পরিবর্তন প্রয়োগ করো', |
| 309 | +); |
| 310 | + |
276 | 311 | /** Breton (Brezhoneg) |
277 | 312 | * @author Fohanno |
278 | 313 | * @author Fulup |
— | — | @@ -367,12 +402,13 @@ |
368 | 403 | * @author Imre |
369 | 404 | * @author LWChris |
370 | 405 | * @author Pill |
| 406 | + * @author SVG |
371 | 407 | * @author Tbleher |
372 | 408 | */ |
373 | 409 | $messages['de'] = array( |
374 | 410 | 'masseditregex' => 'Massenbearbeitung mithilfe von regulärem Ausdruck', |
375 | 411 | 'masseditregex-desc' => 'Reguläre Ausdrücke benutzen, um [[Special:MassEditRegex|viele Seiten auf einmal zu bearbeiten]]', |
376 | | - 'masseditregextext' => 'Gib einen oder mehrere reguläre Ausdrücke (eine pro Zeile) für die Suche an, und einen oder mehrere Ausdrücke um einen jeweiligen Treffer zu ersetzen. Der erste Such-Ausdruck wird bei Übereinstimmung durch den ersten Ersatz-Ausdruck ersetzt, und so weiter. Siehe [ http://php.net/manual/de/function.preg-replace.php der PHP-Funktion preg_replace ()] für Details.', |
| 412 | + 'masseditregextext' => 'Gib einen oder mehrere reguläre Ausdrücke (eine pro Zeile) für die Suche an, und einen oder mehrere Ausdrücke um einen jeweiligen Treffer zu ersetzen. Der erste Such-Ausdruck wird bei Übereinstimmung durch den ersten Ersatz-Ausdruck ersetzt, und so weiter. Siehe [http://php.net/manual/de/function.preg-replace.php die Dokumentation der PHP-Funktion preg_replace ()] für Details.', |
377 | 413 | 'masseditregex-pagelisttxt' => 'Zu bearbeitende Seiten (kein Namensraum-Prefix benutzen):', |
378 | 414 | 'masseditregex-matchtxt' => 'Suchen nach:', |
379 | 415 | 'masseditregex-replacetxt' => 'Ersetzen durch:', |
— | — | @@ -403,9 +439,11 @@ |
404 | 440 | 'masseditregex-badregex' => 'Ungültiger regulärer Ausdruck:', |
405 | 441 | 'masseditregex-editfailed' => 'Bearbeitung fehlgeschlagen:', |
406 | 442 | 'masseditregex-tooltip-execute' => 'Diese Änderungen an jeder Seite durchführen', |
| 443 | + |
| 444 | + 'right-masseditregex' => 'Textersetzungen mit regulären Ausdrücken durchführen', |
407 | 445 | ); |
408 | 446 | |
409 | | -/** German (formal address) (Deutsch (Sie-Form)) |
| 447 | +/** German (formal address) (Deutsch (Sie-Form)) |
410 | 448 | * @author Imre |
411 | 449 | * @author LWChris |
412 | 450 | */ |
— | — | @@ -582,6 +620,27 @@ |
583 | 621 | 'masseditregex-tooltip-execute' => 'Appliquer ces changements à chaque page', |
584 | 622 | ); |
585 | 623 | |
| 624 | +/** Franco-Provençal (Arpetan) |
| 625 | + * @author ChrisPtDe |
| 626 | + */ |
| 627 | +$messages['frp'] = array( |
| 628 | + 'masseditregex-matchtxt' => 'Rechèrchiér :', |
| 629 | + 'masseditregex-replacetxt' => 'Remplaciér avouéc :', |
| 630 | + 'masseditregex-executebtn' => 'Ègzécutar', |
| 631 | + 'masseditregex-before' => 'Devant', |
| 632 | + 'masseditregex-after' => 'Aprés', |
| 633 | + 'masseditregex-num-changes' => '$1 : $2 changement{{PLURAL:$2||s}}', |
| 634 | + 'masseditregex-page-not-exists' => '$1 ègziste pas', |
| 635 | + 'masseditregex-num-articles-changed' => '$1 {{PLURAL:$1|pâge changiê|pâges changiês}}', |
| 636 | + 'masseditregex-hint-headmatch' => 'Corrèspondance', |
| 637 | + 'masseditregex-hint-headreplace' => 'Remplaciér', |
| 638 | + 'masseditregex-hint-headeffect' => 'Èfèt', |
| 639 | + 'masseditregex-listtype-intro' => 'Vê-que una lista de :', |
| 640 | + 'masseditregex-listtype-pagenames' => 'Nom de les pâges (changiér cetes pâges)', |
| 641 | + 'masseditregex-badregex' => 'Èxprèssion racionèla fôssa :', |
| 642 | + 'masseditregex-editfailed' => 'Èrror pendent l’èdicion :', |
| 643 | +); |
| 644 | + |
586 | 645 | /** Galician (Galego) |
587 | 646 | * @author Toliño |
588 | 647 | */ |
— | — | @@ -662,11 +721,15 @@ |
663 | 722 | ); |
664 | 723 | |
665 | 724 | /** Hebrew (עברית) |
| 725 | + * @author Amire80 |
666 | 726 | * @author YaronSh |
667 | 727 | */ |
668 | 728 | $messages['he'] = array( |
669 | 729 | 'masseditregex' => 'עריכה המונית באמצעות ביטויים רגולאריים', |
670 | 730 | 'masseditregex-desc' => 'שימוש בביטויים רגלואריים כדי [[Special:MassEditRegex|לערוך דפים רבים בבת אחת]]', |
| 731 | + 'masseditregextext' => 'הכניסו ביטוי רגולרי אחד או יותר (אחד בכל שורה) לחיפוש התאמות, וביטוי אחד או יותר שבו יוחלפו המחרוזות המתאימות שתימצאנה. |
| 732 | +,ביטוי החיפוש הראשון, אם יימצא, יוחלף בביטוי ההחלפה הראשון וכולי. |
| 733 | +ר\' [http://php.net/manual/en/function.preg-replace.php את תיעוד הפונקציה <span dir="ltr">preg_replace()</span> של PHP] למידע נוסף.', |
671 | 734 | 'masseditregex-pagelisttxt' => 'דפים לעריכה (אין להשתמש בקידומת שם המרחב:):', |
672 | 735 | 'masseditregex-matchtxt' => 'חיפוש אחר:', |
673 | 736 | 'masseditregex-replacetxt' => 'החלפה ב־:', |
— | — | @@ -685,9 +748,13 @@ |
686 | 749 | 'masseditregex-hint-headeffect' => 'אפקט', |
687 | 750 | 'masseditregex-hint-toappend' => 'הוספת טקסט כלשהו לסוף הדף - מעולה לצורך הוספת דפים לקטגוריות', |
688 | 751 | 'masseditregex-hint-remove' => 'הסרת טקסט כלשהו מכל הדפים שברשימה', |
| 752 | + 'masseditregex-hint-removecat' => 'להסיר את כל הקטגוריות מהדף (שימו לב לחילוף הסוגריים המרובעים בקוד ויקי). |
| 753 | +אין להוסיף תווי חילוף לערכים להחלפה.', |
689 | 754 | 'masseditregex-listtype-intro' => 'זוהי רשימה של:', |
690 | 755 | 'masseditregex-listtype-pagenames' => 'שמות הדפים (עריכת דפים אלה)', |
691 | 756 | 'masseditregex-listtype-pagename-prefixes' => 'קידומות שמות הדפים (עריכת דפים ששמם מתחיל בטקסט זה)', |
| 757 | + 'masseditregex-listtype-categories' => 'שמות קטגוריות (עריכת כל הדפים בקטגוריות האלו; אין חשיבות לבחירה לפי מרחב שמות)', |
| 758 | + 'masseditregex-listtype-backlinks' => 'דפים המקשרים אל הדף (עריכת דפים שמקשרים לדפים האלה)', |
692 | 759 | 'masseditregex-namespace-intro' => 'כל דפים אלו הם במרחב שם זה:', |
693 | 760 | 'masseditregex-exprnomatch' => 'הביטוי "$1" אינו תואם לאף דף.', |
694 | 761 | 'masseditregex-badregex' => 'ביטוי רגולארי שגוי:', |
— | — | @@ -859,13 +926,20 @@ |
860 | 927 | 'masseditregex-tooltip-execute' => 'Terapkan perubahan ini ke setiap halaman', |
861 | 928 | ); |
862 | 929 | |
863 | | -/** Italian (Italiano) */ |
| 930 | +/** Italian (Italiano) |
| 931 | + * @author Beta16 |
| 932 | + */ |
864 | 933 | $messages['it'] = array( |
865 | 934 | 'masseditregex-matchtxt' => 'Cerca per:', |
866 | 935 | 'masseditregex-replacetxt' => 'Sostituisci con:', |
| 936 | + 'masseditregex-executebtn' => 'Esegui', |
867 | 937 | 'masseditregex-before' => 'Prima del', |
868 | 938 | 'masseditregex-after' => 'Dopo il', |
| 939 | + 'masseditregex-num-changes' => '$1: $2 {{PLURAL:$2|modifica|modifiche}}', |
| 940 | + 'masseditregex-page-not-exists' => '$1 non esiste', |
| 941 | + 'masseditregex-num-articles-changed' => '$1 {{PLURAL:$1|pagina|pagine}} modificate', |
869 | 942 | 'masseditregex-hint-headreplace' => 'Sostituisci', |
| 943 | + 'masseditregex-tooltip-execute' => 'Applica queste modifiche ad ogni pagina', |
870 | 944 | ); |
871 | 945 | |
872 | 946 | /** Japanese (日本語) |
— | — | @@ -991,7 +1065,7 @@ |
992 | 1066 | 'masseditregex-matchtxt' => 'Пребарај:', |
993 | 1067 | 'masseditregex-replacetxt' => 'Замени со:', |
994 | 1068 | 'masseditregex-executebtn' => 'Изврши', |
995 | | - 'masseditregex-err-nopages' => 'Мора да назначите барем една страница за менување.', |
| 1069 | + 'masseditregex-err-nopages' => 'Мора да наведете барем една страница за менување.', |
996 | 1070 | 'masseditregex-before' => 'Пред', |
997 | 1071 | 'masseditregex-after' => 'По', |
998 | 1072 | 'masseditregex-max-preview-diffs' => 'Прегледот е ограничен на {{PLURAL:$1|првото $1 совпаѓање|првите $1 совпаѓања}}.', |
— | — | @@ -1383,7 +1457,8 @@ |
1384 | 1458 | 'masseditregex-tooltip-execute' => 'Применить эти изменения для каждой страницы', |
1385 | 1459 | ); |
1386 | 1460 | |
1387 | | -/** Serbian Cyrillic ekavian (Српски (ћирилица)) |
| 1461 | +/** Serbian Cyrillic ekavian (Српски (ћирилица)) |
| 1462 | + * @author Rancher |
1388 | 1463 | * @author Жељко Тодоровић |
1389 | 1464 | * @author Михајло Анђелковић |
1390 | 1465 | */ |
— | — | @@ -1399,7 +1474,7 @@ |
1400 | 1475 | 'masseditregex-page-not-exists' => '$1 не постоји', |
1401 | 1476 | 'masseditregex-num-articles-changed' => '$1 {{PLURAL:$1|страна|стране|страна}} измењено', |
1402 | 1477 | 'masseditregex-view-full-summary' => 'Види потпун опис измене', |
1403 | | - 'masseditregex-hint-headmatch' => 'Нађи', |
| 1478 | + 'masseditregex-hint-headmatch' => 'Поклапање', |
1404 | 1479 | 'masseditregex-hint-headreplace' => 'Замени', |
1405 | 1480 | 'masseditregex-hint-headeffect' => 'Ефекат', |
1406 | 1481 | 'masseditregex-listtype-intro' => 'Ово је списак од:', |
— | — | @@ -1410,7 +1485,9 @@ |
1411 | 1486 | 'masseditregex-tooltip-execute' => 'Примени ове промене на сваку страну', |
1412 | 1487 | ); |
1413 | 1488 | |
1414 | | -/** Serbian Latin ekavian (Srpski (latinica)) */ |
| 1489 | +/** Serbian Latin ekavian (Srpski (latinica)) |
| 1490 | + * @author Rancher |
| 1491 | + */ |
1415 | 1492 | $messages['sr-el'] = array( |
1416 | 1493 | 'masseditregex-pagelisttxt' => 'Strane za izmenu (ne koristite prefiks za imenski prostor):', |
1417 | 1494 | 'masseditregex-matchtxt' => 'Traži:', |
— | — | @@ -1423,7 +1500,7 @@ |
1424 | 1501 | 'masseditregex-page-not-exists' => '$1 ne postoji', |
1425 | 1502 | 'masseditregex-num-articles-changed' => '$1 {{PLURAL:$1|strana|strane|strana}} izmenjeno', |
1426 | 1503 | 'masseditregex-view-full-summary' => 'Vidi potpun opis izmene', |
1427 | | - 'masseditregex-hint-headmatch' => 'Nađi', |
| 1504 | + 'masseditregex-hint-headmatch' => 'Poklapanje', |
1428 | 1505 | 'masseditregex-hint-headreplace' => 'Zameni', |
1429 | 1506 | 'masseditregex-hint-headeffect' => 'Efekat', |
1430 | 1507 | 'masseditregex-listtype-intro' => 'Ovo je spisak od:', |
— | — | @@ -1540,10 +1617,30 @@ |
1541 | 1618 | 'masseditregex-hint-headeffect' => 'Effekt', |
1542 | 1619 | ); |
1543 | 1620 | |
1544 | | -/** Simplified Chinese (中文(简体)) */ |
| 1621 | +/** Simplified Chinese (中文(简体)) |
| 1622 | + * @author Hydra |
| 1623 | + */ |
1545 | 1624 | $messages['zh-hans'] = array( |
1546 | 1625 | 'masseditregex-matchtxt' => '查找:', |
1547 | 1626 | 'masseditregex-executebtn' => '执行', |
| 1627 | + 'masseditregex-before' => '前', |
| 1628 | + 'masseditregex-after' => '后', |
1548 | 1629 | 'masseditregex-hint-headreplace' => '替换', |
1549 | 1630 | ); |
1550 | 1631 | |
| 1632 | +/** Traditional Chinese (中文(繁體)) |
| 1633 | + * @author Mark85296341 |
| 1634 | + */ |
| 1635 | +$messages['zh-hant'] = array( |
| 1636 | + 'masseditregex-replacetxt' => '替換為:', |
| 1637 | + 'masseditregex-executebtn' => '執行', |
| 1638 | + 'masseditregex-before' => '之前', |
| 1639 | + 'masseditregex-after' => '之後', |
| 1640 | + 'masseditregex-page-not-exists' => '$1 不存在', |
| 1641 | + 'masseditregex-hint-headeffect' => '影響', |
| 1642 | + 'masseditregex-listtype-intro' => '這是一個列表:', |
| 1643 | + 'masseditregex-listtype-pagenames' => '頁面名稱(編輯這些網頁)', |
| 1644 | + 'masseditregex-listtype-pagename-prefixes' => '網頁名稱前綴(編輯網頁名稱的開頭有這個文字)', |
| 1645 | + 'masseditregex-editfailed' => '編輯失敗:', |
| 1646 | +); |
| 1647 | + |
Index: branches/REL1_17/extensions/MassEditRegex/MassEditRegex.php |
— | — | @@ -30,3 +30,6 @@ |
31 | 31 | $wgAutoloadClasses['MassEditRegex'] = $dir . 'MassEditRegex.class.php'; |
32 | 32 | $wgSpecialPages['MassEditRegex'] = 'MassEditRegex'; |
33 | 33 | $wgSpecialPageGroups['MassEditRegex'] = 'pagetools'; |
| 34 | + |
| 35 | +// Required permission to use Special:MassEditRegex |
| 36 | +$wgAvailableRights[] = 'masseditregex'; |
Index: branches/REL1_17/extensions/MassEditRegex/README |
— | — | @@ -12,8 +12,8 @@ |
13 | 13 | |
14 | 14 | 1. Add to LocalSettings.php: |
15 | 15 | |
16 | | - include_once("$IP/extensions/MassEditRegex/MassEditRegex.php"); |
| 16 | + require_once ( "$IP/extensions/MassEditRegex/MassEditRegex.php" ); |
| 17 | + // Allow administrators to use Special:MassEditRegex |
| 18 | + $wgGroupPermissions['sysop']['masseditregex'] = true; |
17 | 19 | |
18 | 20 | 2. Go to [[Special:MassEditRegex]] |
19 | | - |
20 | | - 3. If you don't have access, go to [[Special:User rights management]] and add yourself to the Bot group. |
Index: branches/REL1_17/extensions/MassEditRegex/MassEditRegex.class.php |
— | — | @@ -34,21 +34,34 @@ |
35 | 35 | private $sk; |
36 | 36 | |
37 | 37 | function __construct() { |
38 | | - parent::__construct( 'MassEditRegex', 'bot' ); |
| 38 | + parent::__construct( 'MassEditRegex', 'masseditregex' ); |
39 | 39 | } |
40 | 40 | |
41 | 41 | function execute( $par ) { |
42 | 42 | global $wgUser, $wgRequest, $wgOut; |
43 | 43 | |
44 | | - wfLoadExtensionMessages('MassEditRegex'); |
45 | | - |
46 | 44 | $this->setHeaders(); |
47 | 45 | |
48 | | - #if ( !$wgUser->isAllowed( 'bot' ) ) { |
49 | | - # $wgOut->permissionRequired( 'bot' ); |
50 | | - # return; |
51 | | - #} |
| 46 | + # Check permissions |
| 47 | + if ( !$wgUser->isAllowed( 'masseditregex' ) ) { |
| 48 | + $this->displayRestrictionError(); |
| 49 | + return; |
| 50 | + } |
52 | 51 | |
| 52 | + # Show a message if the database is in read-only mode |
| 53 | + if ( wfReadOnly() ) { |
| 54 | + $wgOut->readOnlyPage(); |
| 55 | + return; |
| 56 | + } |
| 57 | + |
| 58 | + # If user is blocked, s/he doesn't need to access this page |
| 59 | + if ( $wgUser->isBlocked() ) { |
| 60 | + $wgOut->blockedPage(); |
| 61 | + return; |
| 62 | + } |
| 63 | + |
| 64 | + wfLoadExtensionMessages('MassEditRegex'); |
| 65 | + |
53 | 66 | $this->outputHeader(); |
54 | 67 | |
55 | 68 | $strPageList = $wgRequest->getText( 'wpPageList', 'Sandbox' ); |