Index: trunk/extensions/Maintenance/Maintenance.alias.php |
— | — | @@ -6,256 +6,232 @@ |
7 | 7 | * @ingroup Extensions |
8 | 8 | */ |
9 | 9 | |
10 | | -$specialPageAliases = array(); |
| 10 | +$aliases = array(); |
11 | 11 | |
12 | 12 | /** English |
13 | 13 | * @author Jon Harald Søby |
14 | 14 | */ |
15 | | -$specialPageAliases['en'] = array( |
16 | | - 'Maintenance' => array( 'Maintenance' ), |
| 15 | +$aliases['en'] = array( |
| 16 | + 'Maintenance' => array( 'Maintenance' ) |
17 | 17 | ); |
18 | 18 | |
19 | 19 | /** Arabic (العربية) */ |
20 | | -$specialPageAliases['ar'] = array( |
| 20 | +$aliases['ar'] = array( |
21 | 21 | 'Maintenance' => array( 'صيانة' ), |
22 | 22 | ); |
23 | 23 | |
24 | 24 | /** Egyptian Spoken Arabic (مصرى) */ |
25 | | -$specialPageAliases['arz'] = array( |
| 25 | +$aliases['arz'] = array( |
26 | 26 | 'Maintenance' => array( 'صيانه' ), |
27 | 27 | ); |
28 | 28 | |
29 | 29 | /** Bulgarian (Български) */ |
30 | | -$specialPageAliases['bg'] = array( |
| 30 | +$aliases['bg'] = array( |
31 | 31 | 'Maintenance' => array( 'Поддръжка' ), |
32 | 32 | ); |
33 | 33 | |
34 | 34 | /** Breton (Brezhoneg) */ |
35 | | -$specialPageAliases['br'] = array( |
36 | | - 'Maintenance' => array( 'Trezalc\'h' ), |
| 35 | +$aliases['br'] = array( |
| 36 | + 'Maintenance' => array( "Trezalc'h" ), |
37 | 37 | ); |
38 | 38 | |
39 | 39 | /** Bosnian (Bosanski) */ |
40 | | -$specialPageAliases['bs'] = array( |
| 40 | +$aliases['bs'] = array( |
41 | 41 | 'Maintenance' => array( 'Odrzavanje' ), |
42 | 42 | ); |
43 | 43 | |
44 | 44 | /** German (Deutsch) */ |
45 | | -$specialPageAliases['de'] = array( |
| 45 | +$aliases['de'] = array( |
46 | 46 | 'Maintenance' => array( 'Wartung' ), |
47 | 47 | ); |
48 | 48 | |
49 | 49 | /** Lower Sorbian (Dolnoserbski) */ |
50 | | -$specialPageAliases['dsb'] = array( |
| 50 | +$aliases['dsb'] = array( |
51 | 51 | 'Maintenance' => array( 'Wótwardowanje' ), |
52 | 52 | ); |
53 | 53 | |
54 | 54 | /** Spanish (Español) */ |
55 | | -$specialPageAliases['es'] = array( |
| 55 | +$aliases['es'] = array( |
56 | 56 | 'Maintenance' => array( 'Mantenimiento' ), |
57 | 57 | ); |
58 | 58 | |
59 | 59 | /** Basque (Euskara) */ |
60 | | -$specialPageAliases['eu'] = array( |
| 60 | +$aliases['eu'] = array( |
61 | 61 | 'Maintenance' => array( 'Mantenimendua' ), |
62 | 62 | ); |
63 | 63 | |
64 | | -/** Persian (فارسی) */ |
65 | | -$specialPageAliases['fa'] = array( |
66 | | - 'Maintenance' => array( 'نگهداری' ), |
67 | | -); |
68 | | - |
69 | 64 | /** Finnish (Suomi) */ |
70 | | -$specialPageAliases['fi'] = array( |
| 65 | +$aliases['fi'] = array( |
71 | 66 | 'Maintenance' => array( 'Ylläpito' ), |
72 | 67 | ); |
73 | 68 | |
74 | 69 | /** Franco-Provençal (Arpetan) */ |
75 | | -$specialPageAliases['frp'] = array( |
| 70 | +$aliases['frp'] = array( |
76 | 71 | 'Maintenance' => array( 'Mantegnence' ), |
77 | 72 | ); |
78 | 73 | |
79 | 74 | /** Galician (Galego) */ |
80 | | -$specialPageAliases['gl'] = array( |
| 75 | +$aliases['gl'] = array( |
81 | 76 | 'Maintenance' => array( 'Mantemento' ), |
82 | 77 | ); |
83 | 78 | |
84 | 79 | /** Swiss German (Alemannisch) */ |
85 | | -$specialPageAliases['gsw'] = array( |
| 80 | +$aliases['gsw'] = array( |
86 | 81 | 'Maintenance' => array( 'Wartig' ), |
87 | 82 | ); |
88 | 83 | |
89 | 84 | /** Hebrew (עברית) */ |
90 | | -$specialPageAliases['he'] = array( |
| 85 | +$aliases['he'] = array( |
91 | 86 | 'Maintenance' => array( 'תחזוקה' ), |
92 | 87 | ); |
93 | 88 | |
94 | 89 | /** Croatian (Hrvatski) */ |
95 | | -$specialPageAliases['hr'] = array( |
| 90 | +$aliases['hr'] = array( |
96 | 91 | 'Maintenance' => array( 'Održavanje' ), |
97 | 92 | ); |
98 | 93 | |
99 | 94 | /** Upper Sorbian (Hornjoserbsce) */ |
100 | | -$specialPageAliases['hsb'] = array( |
| 95 | +$aliases['hsb'] = array( |
101 | 96 | 'Maintenance' => array( 'Wothladowanje' ), |
102 | 97 | ); |
103 | 98 | |
104 | | -/** Hungarian (Magyar) */ |
105 | | -$specialPageAliases['hu'] = array( |
106 | | - 'Maintenance' => array( 'Karbantartás' ), |
107 | | -); |
108 | | - |
109 | 99 | /** Interlingua (Interlingua) */ |
110 | | -$specialPageAliases['ia'] = array( |
| 100 | +$aliases['ia'] = array( |
111 | 101 | 'Maintenance' => array( 'Mantenentia' ), |
112 | 102 | ); |
113 | 103 | |
114 | 104 | /** Indonesian (Bahasa Indonesia) */ |
115 | | -$specialPageAliases['id'] = array( |
| 105 | +$aliases['id'] = array( |
116 | 106 | 'Maintenance' => array( 'Pemeliharaan' ), |
117 | 107 | ); |
118 | 108 | |
119 | 109 | /** Italian (Italiano) */ |
120 | | -$specialPageAliases['it'] = array( |
| 110 | +$aliases['it'] = array( |
121 | 111 | 'Maintenance' => array( 'Manutenzione' ), |
122 | 112 | ); |
123 | 113 | |
124 | 114 | /** Japanese (日本語) */ |
125 | | -$specialPageAliases['ja'] = array( |
| 115 | +$aliases['ja'] = array( |
126 | 116 | 'Maintenance' => array( 'メンテナンス' ), |
127 | 117 | ); |
128 | 118 | |
129 | 119 | /** Khmer (ភាសាខ្មែរ) */ |
130 | | -$specialPageAliases['km'] = array( |
| 120 | +$aliases['km'] = array( |
131 | 121 | 'Maintenance' => array( 'ការថែទាំ' ), |
132 | 122 | ); |
133 | 123 | |
134 | 124 | /** Korean (한국어) */ |
135 | | -$specialPageAliases['ko'] = array( |
| 125 | +$aliases['ko'] = array( |
136 | 126 | 'Maintenance' => array( '정비' ), |
137 | 127 | ); |
138 | 128 | |
139 | 129 | /** Colognian (Ripoarisch) */ |
140 | | -$specialPageAliases['ksh'] = array( |
| 130 | +$aliases['ksh'] = array( |
141 | 131 | 'Maintenance' => array( 'Waadung' ), |
142 | 132 | ); |
143 | 133 | |
144 | | -/** Ladino (Ladino) */ |
145 | | -$specialPageAliases['lad'] = array( |
146 | | - 'Maintenance' => array( 'Mantenimiento' ), |
147 | | -); |
148 | | - |
149 | 134 | /** Luxembourgish (Lëtzebuergesch) */ |
150 | | -$specialPageAliases['lb'] = array( |
| 135 | +$aliases['lb'] = array( |
151 | 136 | 'Maintenance' => array( 'Ënnerhalt' ), |
152 | 137 | ); |
153 | 138 | |
154 | 139 | /** Macedonian (Македонски) */ |
155 | | -$specialPageAliases['mk'] = array( |
| 140 | +$aliases['mk'] = array( |
156 | 141 | 'Maintenance' => array( 'Одржување' ), |
157 | 142 | ); |
158 | 143 | |
159 | 144 | /** Malayalam (മലയാളം) */ |
160 | | -$specialPageAliases['ml'] = array( |
| 145 | +$aliases['ml'] = array( |
161 | 146 | 'Maintenance' => array( 'പരിപാലനം' ), |
162 | 147 | ); |
163 | 148 | |
164 | 149 | /** Marathi (मराठी) */ |
165 | | -$specialPageAliases['mr'] = array( |
| 150 | +$aliases['mr'] = array( |
166 | 151 | 'Maintenance' => array( 'मेंटेननन्स' ), |
167 | 152 | ); |
168 | 153 | |
169 | 154 | /** Maltese (Malti) */ |
170 | | -$specialPageAliases['mt'] = array( |
| 155 | +$aliases['mt'] = array( |
171 | 156 | 'Maintenance' => array( 'Manteniment' ), |
172 | 157 | ); |
173 | 158 | |
174 | 159 | /** Nedersaksisch (Nedersaksisch) */ |
175 | | -$specialPageAliases['nds-nl'] = array( |
| 160 | +$aliases['nds-nl'] = array( |
176 | 161 | 'Maintenance' => array( 'Onderhoud' ), |
177 | 162 | ); |
178 | 163 | |
179 | 164 | /** Dutch (Nederlands) */ |
180 | | -$specialPageAliases['nl'] = array( |
| 165 | +$aliases['nl'] = array( |
181 | 166 | 'Maintenance' => array( 'Onderhoud' ), |
182 | 167 | ); |
183 | 168 | |
184 | 169 | /** Norwegian (bokmål) (Norsk (bokmål)) */ |
185 | | -$specialPageAliases['no'] = array( |
| 170 | +$aliases['no'] = array( |
186 | 171 | 'Maintenance' => array( 'Vedlikehold' ), |
187 | 172 | ); |
188 | 173 | |
189 | | -/** Polish (Polski) */ |
190 | | -$specialPageAliases['pl'] = array( |
191 | | - 'Maintenance' => array( 'Konserwacja' ), |
192 | | -); |
193 | | - |
194 | 174 | /** Portuguese (Português) */ |
195 | | -$specialPageAliases['pt'] = array( |
| 175 | +$aliases['pt'] = array( |
196 | 176 | 'Maintenance' => array( 'Manutenção' ), |
197 | 177 | ); |
198 | 178 | |
199 | 179 | /** Brazilian Portuguese (Português do Brasil) */ |
200 | | -$specialPageAliases['pt-br'] = array( |
| 180 | +$aliases['pt-br'] = array( |
201 | 181 | 'Maintenance' => array( 'Manutenção' ), |
202 | 182 | ); |
203 | 183 | |
204 | 184 | /** Sanskrit (संस्कृत) */ |
205 | | -$specialPageAliases['sa'] = array( |
| 185 | +$aliases['sa'] = array( |
206 | 186 | 'Maintenance' => array( 'निर्वहण' ), |
207 | 187 | ); |
208 | 188 | |
209 | 189 | /** Slovak (Slovenčina) */ |
210 | | -$specialPageAliases['sk'] = array( |
| 190 | +$aliases['sk'] = array( |
211 | 191 | 'Maintenance' => array( 'Údržba' ), |
212 | 192 | ); |
213 | 193 | |
214 | 194 | /** Albanian (Shqip) */ |
215 | | -$specialPageAliases['sq'] = array( |
| 195 | +$aliases['sq'] = array( |
216 | 196 | 'Maintenance' => array( 'Mirëmbajtje' ), |
217 | 197 | ); |
218 | 198 | |
219 | 199 | /** Swedish (Svenska) */ |
220 | | -$specialPageAliases['sv'] = array( |
| 200 | +$aliases['sv'] = array( |
221 | 201 | 'Maintenance' => array( 'Underhåll' ), |
222 | 202 | ); |
223 | 203 | |
224 | 204 | /** Swahili (Kiswahili) */ |
225 | | -$specialPageAliases['sw'] = array( |
| 205 | +$aliases['sw'] = array( |
226 | 206 | 'Maintenance' => array( 'Matengenezo' ), |
227 | 207 | ); |
228 | 208 | |
229 | 209 | /** Thai (ไทย) */ |
230 | | -$specialPageAliases['th'] = array( |
| 210 | +$aliases['th'] = array( |
231 | 211 | 'Maintenance' => array( 'การบำรุงรักษา' ), |
232 | 212 | ); |
233 | 213 | |
234 | 214 | /** Tagalog (Tagalog) */ |
235 | | -$specialPageAliases['tl'] = array( |
| 215 | +$aliases['tl'] = array( |
236 | 216 | 'Maintenance' => array( 'Pagpapanatili' ), |
237 | 217 | ); |
238 | 218 | |
239 | 219 | /** Turkish (Türkçe) */ |
240 | | -$specialPageAliases['tr'] = array( |
| 220 | +$aliases['tr'] = array( |
241 | 221 | 'Maintenance' => array( 'Bakım' ), |
242 | 222 | ); |
243 | 223 | |
244 | 224 | /** Vèneto (Vèneto) */ |
245 | | -$specialPageAliases['vec'] = array( |
| 225 | +$aliases['vec'] = array( |
246 | 226 | 'Maintenance' => array( 'Manutension' ), |
247 | 227 | ); |
248 | 228 | |
249 | 229 | /** Simplified Chinese (中文(简体)) */ |
250 | | -$specialPageAliases['zh-hans'] = array( |
| 230 | +$aliases['zh-hans'] = array( |
251 | 231 | 'Maintenance' => array( '维护' ), |
252 | 232 | ); |
253 | 233 | |
254 | 234 | /** Traditional Chinese (中文(繁體)) */ |
255 | | -$specialPageAliases['zh-hant'] = array( |
| 235 | +$aliases['zh-hant'] = array( |
256 | 236 | 'Maintenance' => array( '維護' ), |
257 | 237 | ); |
258 | 238 | |
259 | | -/** |
260 | | - * For backwards compatibility with MediaWiki 1.15 and earlier. |
261 | | - */ |
262 | | -$aliases =& $specialPageAliases; |
\ No newline at end of file |
Index: trunk/extensions/Maintenance/Maintenance_body.php |
— | — | @@ -5,12 +5,11 @@ |
6 | 6 | } |
7 | 7 | |
8 | 8 | class SpecialMaintenance extends SpecialPage { |
9 | | - var $type = ''; |
10 | | - static $scripts = array( |
11 | | - 'changePassword', 'createAndPromote', 'deleteBatch', 'deleteRevision', |
12 | | - 'initEditCount', 'initStats', 'moveBatch', 'runJobs', 'showJobs', 'stats', |
13 | | - 'sql', 'eval', 'reassignEdits', |
14 | | - ); |
| 9 | + private $type = ''; |
| 10 | + private $metadata = array(); |
| 11 | + private $scripts = array(); |
| 12 | + private $loc = ''; //for temporary files |
| 13 | + private $errmsg = false; //if this gets set, we halt execution and display this message |
15 | 14 | |
16 | 15 | /** |
17 | 16 | * Constructor |
— | — | @@ -18,6 +17,9 @@ |
19 | 18 | public function __construct() { |
20 | 19 | parent::__construct( 'Maintenance'/*class*/, 'maintenance'/*restriction*/ ); |
21 | 20 | } |
| 21 | + |
| 22 | + public function getType() { return $this->type; } |
| 23 | + public function getMetadata() { return $this->metadata; } |
22 | 24 | |
23 | 25 | /** |
24 | 26 | * Show the special page |
— | — | @@ -44,9 +46,19 @@ |
45 | 47 | $wgOut->permissionRequired( 'maintenance' ); |
46 | 48 | return; |
47 | 49 | } |
| 50 | + |
| 51 | + # Grab the ini file and validate it |
| 52 | + $this->metadata = parse_ini_file( dirname( __FILE__ ) . '/metadata.ini', true ); |
| 53 | + $this->scripts = @array_keys( $this->metadata ); //suppress errors since metadata could be false if the metadata.ini file doesn't exist |
| 54 | + $valid = $this->parseMetadata(); //parses the metadata ini and validates it |
| 55 | + if( !$valid ) { |
| 56 | + throw new ErrorPageError( 'error', 'maintenance-error-badini' ); |
| 57 | + return; |
| 58 | + } |
48 | 59 | |
49 | 60 | $this->type = $par ? $par : ''; |
50 | | - if( $this->type === '') { |
| 61 | + $this->validateType(); //this checks to ensure $par is valid so we don't execute arbitrary code |
| 62 | + if( $this->type === '' ) { |
51 | 63 | $this->makeInitialForm(); |
52 | 64 | } elseif( $this->type !== '' && !$wgRequest->wasPosted() ) { |
53 | 65 | $this->makeForm( $this->type ); |
— | — | @@ -54,19 +66,24 @@ |
55 | 67 | $this->executeScript( $this->type ); |
56 | 68 | } |
57 | 69 | } |
| 70 | + |
| 71 | + private function validateType() { |
| 72 | + if( !in_array( $this->type, $this->scripts ) ) { |
| 73 | + $this->errmsg = 'maintenance-error-invalidtype'; |
| 74 | + } |
| 75 | + } |
58 | 76 | |
59 | | - function makeInitialForm() { |
| 77 | + private function makeInitialForm() { |
60 | 78 | global $wgOut, $wgUser; |
61 | 79 | |
62 | | - wfLoadExtensionMessages( 'Maintenance' ); |
63 | 80 | $this->setHeaders(); |
64 | 81 | $wgOut->addWikiMsg( 'maintenance-header' ); |
| 82 | + |
65 | 83 | $sk = $wgUser->getSkin(); |
66 | 84 | $wgOut->addHTML( '<ul>' ); |
67 | 85 | |
68 | | - //scripts that we allow to run via this interface. keep them to the same name as the xxx.php in the /maintenance dir |
69 | | - //(minus the .php part... duh) |
70 | | - $scripts = self::$scripts; |
| 86 | + //scripts that we allow to run via this interface, from the metadata.ini file |
| 87 | + $scripts = $this->scripts; |
71 | 88 | sort( $scripts ); |
72 | 89 | foreach( $scripts as $type ) { |
73 | 90 | $title = $this->getTitle( $type ); |
— | — | @@ -76,531 +93,548 @@ |
77 | 94 | $wgOut->addHTML( '</ul>' ); |
78 | 95 | } |
79 | 96 | |
80 | | - function makeForm( $type ) { |
| 97 | + private function makeForm( $type ) { |
81 | 98 | global $wgOut, $wgUser; |
82 | | - wfLoadExtensionMessages( 'Maintenance' ); |
| 99 | + |
83 | 100 | $this->setHeaders(); |
84 | 101 | $wgOut->addHTML( $wgUser->getSkin()->makeKnownLinkObj( $this->getTitle(), wfMsgHtml( 'maintenance-backlink' ) ). '<br />' ); |
85 | 102 | |
86 | | - if( !in_array( $type, self::$scripts ) ) { |
87 | | - $wgOut->addWikiMsg( 'maintenance-invalidtype' ); |
| 103 | + if( $this->errmsg ) { |
| 104 | + $wgOut->addWikiMsg( $this->errmsg ); |
88 | 105 | return; |
89 | 106 | } |
90 | 107 | |
91 | 108 | $wgOut->addWikiMsg( 'maintenance-' . $type ); |
92 | 109 | |
93 | 110 | $wgOut->addHTML( Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getTitle( $type )->getFullURL() ) ) ); |
94 | | - switch( $type ) { |
95 | | - case 'changePassword': |
96 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-name' ), 'wpName', 'wpName' ) . '<br /><br />' ); |
97 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-password' ), 'wpPassword', 'wpPassword', false, false, array( 'type' => 'password' ) ) . '<br /><br />' ); |
98 | | - break; |
99 | | - case 'createAndPromote': |
100 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-name' ), 'wpName', 'wpName' ) . '<br /><br />' ); |
101 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-password' ), 'wpPassword', 'wpPassword', false, false, array( 'type' => 'password' ) ) . '<br /><br />' ); |
102 | | - $wgOut->addHTML( Xml::checkLabel( wfMsg('maintenance-bureaucrat'), 'wpBcrat', 'wpBcrat' ) . '<br /><br />' ); |
103 | | - break; |
104 | | - case 'deleteBatch': |
105 | | - $wgOut->addHTML('<textarea name="wpDelete" rows="25" cols="80"></textarea><br /><br />'); |
106 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-reason' ), 'wpReason', 'wpReason', '60', false, array( 'maxlength' => 200 ) ) . '<br /><br />' ); |
107 | | - break; |
108 | | - case 'deleteRevision': |
109 | | - $wgOut->addHTML('<textarea name="wpDelete" rows="25" cols="80"></textarea><br /><br />'); |
110 | | - break; |
111 | | - case 'eval': |
112 | | - $wgOut->addHTML('<textarea name="wpCode" rows="25" cols="80"></textarea><br /><br />'); |
113 | | - break; |
114 | | - case 'initEditCount': |
115 | | - //just hit the button to start this, no additional settings are needed :) |
116 | | - break; |
117 | | - case 'initStats': |
118 | | - $wgOut->addHTML( Xml::checkLabel( wfMsg( 'maintenance-update' ), 'wpUpdate', 'wpUpdate', true ) . '<br /><br />' ); |
119 | | - $wgOut->addHTML( Xml::checkLabel( wfMsg( 'maintenance-noviews' ), 'wpNoviews', 'wpNoviews' ) . '<br /><br />' ); |
120 | | - break; |
121 | | - case 'moveBatch': |
122 | | - $wgOut->addHTML('<textarea name="wpMove" rows="25" cols="80"></textarea><br /><br />'); |
123 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-reason' ), 'wpReason', 'wpReason', '60', false, array( 'maxlength' => 200 ) ) . '<br /><br />' ); |
124 | | - break; |
125 | | - case 'reassignEdits': |
126 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-re-from' ), 'wpFrom', 'wpFrom', '60' ) . '<br /><br />' ); |
127 | | - $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-re-to' ), 'wpTo', 'wpTo', '60' ) . '<br /><br />' ); |
128 | | - $wgOut->addHTML( Xml::checkLabel( wfMsg( 'maintenance-re-force' ), 'wpForce', 'wpForce' ) . '<br /><br />' ); |
129 | | - $wgOut->addHTML( Xml::checkLabel( wfMsg( 'maintenance-re-rc' ), 'wpRc', 'wpRc' ) . '<br /><br />' ); |
130 | | - $wgOut->addHTML( Xml::checkLabel( wfMsg( 'maintenance-re-report' ), 'wpReport', 'wpReport' ) . '<br /><br />' ); |
131 | | - break; |
132 | | - case 'runJobs': |
133 | | - //just hit the button to start this, no additional settings are needed :) |
134 | | - break; |
135 | | - case 'showJobs': |
136 | | - //just hit the button to start this, no additional settings are needed :) |
137 | | - break; |
138 | | - case 'stats': |
139 | | - //just hit the button to start this, no additional settings are needed :) |
140 | | - break; |
141 | | - case 'sql': |
142 | | - $wgOut->addHTML('<textarea name="wpQuery" rows="25" cols="80"></textarea><br /><br />'); |
143 | | - break; |
144 | | - default: |
145 | | - $wgOut->addHTML( '</form>' ); |
146 | | - $wgOut->addWikiMsg( 'maintenance-invalidtype' ); |
147 | | - return; |
| 111 | + //build the form |
| 112 | + $options = array_merge( $this->metadata[$type]['option'], $this->metadata[$type]['arg'] ); |
| 113 | + foreach( $options as $option ) { |
| 114 | + switch( $option['type'] ) { |
| 115 | + case 'check': |
| 116 | + $wgOut->addHTML( Xml::checkLabel( wfMsg( "maintenance-$type-option-" . $option['name'] ), 'wp' . ucfirst( $option['name'] ), 'wp' . ucfirst( $option['name'] ), $option['default'] ) . '<br /><br />' ); |
| 117 | + break; |
| 118 | + case 'input': |
| 119 | + $wgOut->addHTML( Xml::inputLabel( wfMsg( "maintenance-$type-option-" . $option['name'] ), 'wp' . ucfirst( $option['name'] ), 'wp' . ucfirst( $option['name'] ), $option['size'], false, $option['attrib'] ) . '<br /><br />' ); |
| 120 | + break; |
| 121 | + case 'password': |
| 122 | + $wgOut->addHTML( Xml::inputLabel( wfMsg( "maintenance-$type-option-" . $option['name'] ), 'wp' . ucfirst( $option['name'] ), 'wp' . ucfirst( $option['name'] ), $option['size'], false, array( 'type' => 'password' ) + $option['attrib'] ) . '<br /><br />' ); |
| 123 | + break; |
| 124 | + case 'textarea': |
| 125 | + $wgOut->addHTML( wfMsg( "maintenance-$type-option-" . $option['name'] ) . '<textarea name="wp' . ucfirst( $option['name'] ) . '" rows="25" cols="80"></textarea><br /><br />'); |
| 126 | + break; |
| 127 | + } |
148 | 128 | } |
149 | | - $wgOut->addHTML( Xml::submitButton( wfMsg( 'maintenance-confirm' ), array( 'name' => 'wpConfirm' ) ) . '</form>' ); |
| 129 | + $wgOut->addHTML( Xml::checkLabel( wfMsg( 'maintenance-option-quiet' ), 'wpQuiet', 'wpQuiet' ) . '<br /><br />' ); |
| 130 | + $wgOut->addHTML( Xml::checkLabel( wfMsg( 'maintenance-option-globals' ), 'wpGlobals', 'wpGlobals' ) . '<br /><br />' ); |
| 131 | + if( $this->metadata[$type]['batch'] ) { |
| 132 | + $wgOut->addHTML( Xml::inputLabel( wfMsg( 'maintenance-option-batch-size', $this->metadata[$type]['batch'] ), 'wpBatch-size', 'wpBatch-size' ) . '<br /><br />' ); |
| 133 | + } |
| 134 | + $wgOut->addHTML( Xml::submitButton( wfMsg( 'maintenance-option-confirm' ), array( 'name' => 'wpConfirm' ) ) . '</form>' ); |
150 | 135 | return; |
151 | 136 | } |
152 | 137 | |
153 | | - function executeScript( $type ) { |
154 | | - global $wgOut, $wgRequest, $wgUser; |
155 | | - wfLoadExtensionMessages('Maintenance'); |
156 | | - @set_time_limit(0); //if we can, disable the time limit |
| 138 | + private function executeScript( $type ) { |
| 139 | + global $wgOut, $wgRequest, $wgUser, $IP, $wgMaintenanceScripts; |
| 140 | + |
157 | 141 | $this->setHeaders(); |
158 | 142 | $wgOut->addHTML( $wgUser->getSkin()->makeKnownLinkObj( $this->getTitle(), wfMsgHtml( 'maintenance-backlink' ) ). '<br />' ); |
| 143 | + |
| 144 | + if( $this->errmsg ) { |
| 145 | + $wgOut->addWikiMsg( $this->errmsg ); |
| 146 | + return; |
| 147 | + } |
| 148 | + |
| 149 | + @set_time_limit( 0 ); //if we can, disable the time limit |
| 150 | + @ini_set('memory_limit', '-1'); //also try to disable the memory limit |
| 151 | + //run the script and capture output |
| 152 | + define( 'MW_NO_SETUP', true ); //we use our own setup method to work with web requests |
| 153 | + $maintClass = false; //initialize |
| 154 | + //some scripts misbehave and use exit at the end, which messes us up. Let's fix those here |
| 155 | + //(EPIC HAX MAGIC FOLLOWS) |
| 156 | + $needhax = false; |
159 | 157 | switch( $type ) { |
160 | | - case 'changePassword': |
161 | | - $name = $wgRequest->getText( 'wpName' ); |
162 | | - $password = $wgRequest->getText( 'wpPassword' ); |
163 | | - $user = User::newFromName( $name ); |
164 | | - if( !is_object( $user ) || !$user->getId() ) { |
165 | | - $wgOut->addWikiMsg( 'maintenance-invalidname' ); |
| 158 | + case 'sql': |
| 159 | + file_put_contents( $fname = tempnam( sys_get_temp_dir(), 'maintenance' ), |
| 160 | + str_replace( |
| 161 | + array( 'dirname( __FILE__ )' ), //search |
| 162 | + array( '"$IP/maintenance"' ), //replace |
| 163 | + preg_replace( '/\s+(exit|die)\s*\(.*?\)\s*;/', ';', |
| 164 | + file_get_contents( "$IP/maintenance/sql.php" ) |
| 165 | + ) |
| 166 | + ) |
| 167 | + ); |
| 168 | + $needhax = true; |
| 169 | + break; |
| 170 | + } |
| 171 | + if( $needhax ) { |
| 172 | + require_once( $fname ); |
| 173 | + } elseif( file_exists( "$IP/maintenance/$type.php" ) ) { |
| 174 | + require_once( "$IP/maintenance/$type.php" ); |
| 175 | + } else { |
| 176 | + require_once( $wgMaintenanceScripts[$type] ); |
| 177 | + } |
| 178 | + |
| 179 | + //epic hax magic (TODO: figure out a way to do this without using eval, might require core changes) |
| 180 | + eval( 'class WebMaintenanceHack extends ' . $maintClass . ' { |
| 181 | + public $mSpecialMaintenance; //our SpecialMaintenance object |
| 182 | + protected $atLineStart = true; |
| 183 | + protected $lastChannel = null; |
| 184 | + |
| 185 | + public function setSpecialMaintenance( &$abj ) { |
| 186 | + $this->mSpecialMaintenance = &$abj; |
| 187 | + } |
| 188 | + |
| 189 | + protected function output( $out, $channel = null ) { |
| 190 | + if ( $this->mQuiet ) { |
166 | 191 | return; |
167 | 192 | } |
168 | | - $dbw = wfGetDB( DB_MASTER ); |
169 | | - |
170 | | - $user->setPassword( $password ); |
171 | | - $user->saveSettings(); |
172 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
173 | | - break; |
174 | | - case 'createAndPromote': |
175 | | - $name = $wgRequest->getText( 'wpName' ); |
176 | | - $password = $wgRequest->getText( 'wpPassword' ); |
177 | | - $bcrat = $wgRequest->getCheck( 'wpBcrat' ); |
178 | | - $user = User::newFromName( $name ); |
179 | | - if( !is_object( $user ) ) { |
180 | | - $wgOut->addWikiMsg( 'maintenance-invalidname' ); |
| 193 | + if ( $channel === null ) { |
| 194 | + $this->cleanupChanneled(); |
| 195 | + $this->outputChanneled( $out ); |
| 196 | + } else { |
| 197 | + $out = preg_replace( \'/\n\z/\', \'\', $out ); |
| 198 | + $this->outputChanneled( $out, $channel ); |
| 199 | + } |
| 200 | + } |
| 201 | + |
| 202 | + public function cleanupChanneled() { |
| 203 | + global $wgOut; |
| 204 | + if ( !$this->atLineStart ) { |
| 205 | + $wgOut->addHTML( "\n" ); |
| 206 | + $this->atLineStart = true; |
| 207 | + } |
| 208 | + } |
| 209 | + |
| 210 | + public function outputChanneled( $msg, $channel = null ) { |
| 211 | + global $wgOut; |
| 212 | + |
| 213 | + if ( $msg === false ) { |
| 214 | + // For cleanup |
| 215 | + $this->cleanupChanneled(); |
181 | 216 | return; |
182 | | - } elseif( 0 != $user->idForName() ) { |
183 | | - $wgOut->addWikiMsg( 'maintenance-userexists' ); |
184 | | - return; |
185 | 217 | } |
186 | | - $user->addToDatabase(); |
187 | | - $user->setPassword( $password ); |
188 | | - $user->saveSettings(); |
189 | | - $user->addGroup( 'sysop'); |
190 | | - if( $bcrat ) |
191 | | - $user->addGroup( 'bureaucrat' ); |
192 | | - $ssu = new SiteStatsUpdate( 0, 0, 0, 0, 1 ); |
193 | | - $ssu->doUpdate(); |
194 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
195 | | - break; |
196 | | - case 'deleteBatch': |
197 | | - $reason = $wgRequest->getText( 'wpReason', '' ); |
198 | | - $interval = 0; |
199 | | - $pages = $wgRequest->getText( 'wpDelete' ); |
200 | | - $dbw = wfGetDB( DB_MASTER ); |
201 | | - $lines = explode( "\n", $pages ); |
202 | | - foreach( $lines as &$line ) { |
203 | | - $line = trim( $line ); |
204 | | - if( $line == '' ) |
205 | | - continue; |
206 | | - $page = Title::newFromText( $line ); |
207 | | - if( is_null( $page ) ) { |
208 | | - $wgOut->addWikiMsg( 'maintenance-invalidtitle', $line ); |
209 | | - continue; |
| 218 | + |
| 219 | + // End the current line if necessary |
| 220 | + if ( !$this->atLineStart && $channel !== $this->lastChannel ) { |
| 221 | + $wgOut->addHTML( "\n" ); |
| 222 | + } |
| 223 | + |
| 224 | + //look up $msg for l10n, treat as plaintext |
| 225 | + $this->output_i18n( $msg, "output" ); |
| 226 | + |
| 227 | + $this->atLineStart = false; |
| 228 | + if ( $channel === null ) { |
| 229 | + // For unchanneled messages, output trailing newline immediately |
| 230 | + $wgOut->addHTML( "\n" ); |
| 231 | + $this->atLineStart = true; |
| 232 | + } |
| 233 | + $this->lastChannel = $channel; |
| 234 | + } |
| 235 | + |
| 236 | + protected function error( $err, $die = false ) { |
| 237 | + $this->outputChanneled( false ); |
| 238 | + |
| 239 | + //look up $err for l10n, treat as plaintext |
| 240 | + $this->output_i18n( $err, "error" ); |
| 241 | + |
| 242 | + if( $die ) throw new SpecialMaintenanceException(); |
| 243 | + } |
| 244 | + |
| 245 | + //$type is either "output" or "error" |
| 246 | + private function output_i18n( $msg, $type ) { |
| 247 | + global $wgOut; |
| 248 | + |
| 249 | + $found = false; |
| 250 | + $metadata = $this->mSpecialMaintenance->getMetadata(); |
| 251 | + $script = $this->mSpecialMaintenance->getType(); |
| 252 | + foreach( $metadata[$script][$type] as $a ) { |
| 253 | + if( $a["type"] == "string" ) { |
| 254 | + if( trim( $msg ) == $a["match"] ) { |
| 255 | + $wgOut->addHTML( wfMsgExt( "maintenance-$script-$type-" . $a["name"], array( "escape" ) ) ); |
| 256 | + if( $type == "error" ) { |
| 257 | + $wgOut->addHTML( "\n" ); |
| 258 | + } |
| 259 | + $found = true; |
| 260 | + break; |
| 261 | + } |
| 262 | + } elseif( $a["type"] == "regex" ) { |
| 263 | + $matches = array(); |
| 264 | + if( preg_match( "/^" . $a["match"] . "\$/", trim( $msg ), $matches ) ) { |
| 265 | + //$matches contains the respective $1, $2, $3, $4, etc. in order once we take out the first match |
| 266 | + array_shift( $matches ); |
| 267 | + $wgOut->addHTML( wfMsgExt( "maintenance-$script-$type-" . $a["name"], array( "escape" ), $matches ) ); |
| 268 | + if( $type == "error" ) { |
| 269 | + $wgOut->addHTML( "\n" ); |
| 270 | + } |
| 271 | + $found = true; |
| 272 | + break; |
| 273 | + } |
210 | 274 | } |
211 | | - if( !$page->exists() ) { |
212 | | - $wgOut->addWikiMsg( 'maintenance-titlenoexist', $line ); |
213 | | - continue; |
| 275 | + } |
| 276 | + //not found, so just output it raw |
| 277 | + if( !$found ) { |
| 278 | + $wgOut->addHTML( htmlspecialchars( $msg ) ); |
| 279 | + if( $type == "error" ) { |
| 280 | + $wgOut->addHTML( "\n" ); |
214 | 281 | } |
215 | | - $return = '* ' . $page->getPrefixedText(); |
216 | | - // Switch the user here from the current user to Delete page script |
217 | | - $OldUser = $wgUser; |
218 | | - $wgUser = User::newFromName( 'Delete page script' ); |
219 | | - // Begin transaction |
220 | | - $dbw->begin(); |
221 | | - if( $page->getNamespace() == NS_IMAGE ) { |
222 | | - $art = new ImagePage( $page ); |
223 | | - $img = wfFindFile( $art->mTitle ); |
224 | | - if( !$img || !$img->delete( $reason ) ) { |
225 | | - $return .= '... ' . wfMsg('maintenance-failed'); |
226 | | - } |
227 | | - } else { |
228 | | - $art = new Article( $page ); |
| 282 | + } |
| 283 | + } |
| 284 | + |
| 285 | + protected function validateParamsAndArgs() { |
| 286 | + $die = false; |
| 287 | + |
| 288 | + foreach( $this->mParams as $opt => $info ) { |
| 289 | + if( $info["require"] && !$this->hasOption( $opt ) ) { |
| 290 | + $die = true; |
229 | 291 | } |
230 | | - $success = $art->doDeleteArticle( $reason ); |
231 | | - // Commit changes to the database |
232 | | - $dbw->commit(); |
233 | | - // ...and switch user back to the old user |
234 | | - $wgUser = $OldUser; |
235 | | - if ( $success ) { |
236 | | - $return .= '... ' . wfMsg( 'maintenance-deleted' ); |
237 | | - } else { |
238 | | - $return .= '... ' . wfMsg( 'maintenance-failed' ); |
239 | | - } |
240 | | - $wgOut->addWikiText( $return ); |
241 | | - waitForSlaves( 5 ); |
242 | 292 | } |
243 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
244 | | - break; |
245 | | - case 'deleteRevision': |
246 | | - $delete = $wgRequest->getText( 'wpDelete' ); |
247 | | - $revisions = explode( "\n", $delete ); |
248 | | - $wgOut->addWikiMsg( 'maintenance-revdelete', implode( ', ', $revisions ), wfWikiID(), count( $revisions ) ); |
249 | | - $affected = 0; |
250 | | - // Switch the user here from the current user to Delete page script |
251 | | - $OldUser = $wgUser; |
252 | | - $wgUser = User::newFromName( 'Delete page script' ); |
253 | | - $dbw = wfGetDB( DB_MASTER ); |
254 | | - foreach ( $revisions as $revID ) { |
255 | | - $dbw->insertSelect( 'archive', array( 'page', 'revision' ), |
256 | | - array( |
257 | | - 'ar_namespace' => 'page_namespace', |
258 | | - 'ar_title' => 'page_title', |
259 | | - 'ar_comment' => 'rev_comment', |
260 | | - 'ar_user' => 'rev_user', |
261 | | - 'ar_user_text' => 'rev_user_text', |
262 | | - 'ar_timestamp' => 'rev_timestamp', |
263 | | - 'ar_minor_edit' => 'rev_minor_edit', |
264 | | - 'ar_rev_id' => 'rev_id', |
265 | | - 'ar_text_id' => 'rev_text_id', |
266 | | - ), array( |
267 | | - 'rev_id' => $revID, |
268 | | - 'page_id = rev_page' |
269 | | - ), __METHOD__ |
270 | | - ); |
271 | | - if ( !$dbw->affectedRows() ) { |
272 | | - $wgOut->addWikiMsg( 'maintenance-revnotfound', array( $revID ) ); |
273 | | - } else { |
274 | | - $affected += $dbw->affectedRows(); |
275 | | - $dbw->delete( 'revision', array( 'rev_id' => $revID ) ); |
| 293 | + # Check arg list too |
| 294 | + foreach( $this->mArgList as $k => $info ) { |
| 295 | + if( $info["require"] && !$this->hasArg($k) ) { |
| 296 | + $die = true; |
276 | 297 | } |
277 | 298 | } |
278 | | - // ...and switch user back to the old user |
279 | | - $wgUser = $OldUser; |
280 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
281 | | - break; |
282 | | - case 'eval': |
283 | | - $temp = error_reporting( E_ALL ); |
284 | | - ob_start(); |
285 | | - $str = eval( $wgRequest->getText( 'wpCode', 'return;' ) ); |
286 | | - $ext = ob_get_clean(); |
287 | | - error_reporting( 0 ); |
288 | | - if( $ext ) { |
289 | | - $wgOut->addHTML( nl2br($ext) . '<hr />' ); |
| 299 | + |
| 300 | + return $die; |
| 301 | + } |
| 302 | + |
| 303 | + public function doValidateParamsAndArgs() { |
| 304 | + return $this->validateParamsAndArgs(); |
| 305 | + } |
| 306 | + |
| 307 | + public function globals() { |
| 308 | + if( $this->hasOption( "globals" ) ) { |
| 309 | + global $wgOut; |
| 310 | + $wgOut->addHTML( htmlspecialchars( print_r( $GLOBALS, true ) ) ); |
290 | 311 | } |
291 | | - if( !$str ) { |
292 | | - // do nothing |
293 | | - } elseif( is_string( $str ) ) { |
294 | | - $wgOut->addHTML( nl2br($str) . '<hr />' ); |
295 | | - } else { |
296 | | - $wgOut->addHTML( nl2br( var_export( $str, true ) ) . '<hr />' ); |
| 312 | + } |
| 313 | + |
| 314 | + public function memoryLimit() { |
| 315 | + return -1; |
| 316 | + } |
| 317 | + |
| 318 | + }' ); |
| 319 | + |
| 320 | + //run the script, throwing output into a <pre> block |
| 321 | + $wgOut->addHTML( '<pre>' ); |
| 322 | + $script = new WebMaintenanceHack(); |
| 323 | + $script->setSpecialMaintenance( $this ); |
| 324 | + $res = $this->setup( $script ); |
| 325 | + if( !$res ) { |
| 326 | + return; |
| 327 | + } |
| 328 | + try { |
| 329 | + $script->execute(); |
| 330 | + if( $needhax ) { |
| 331 | + unlink( $fname ); |
| 332 | + } |
| 333 | + $script->globals(); |
| 334 | + $wgOut->addHTML( wfMsgExt( 'maintenance-output-success', array( 'escape' ), $this->type ) . "\n" ); |
| 335 | + } catch( SpecialMaintenanceException $e ) { |
| 336 | + $wgOut->addHTML( wfMsgExt( 'maintenance-output-failure', array( 'escape' ), $this->type ) . "\n" ); |
| 337 | + } catch( MWException $mwe ) { |
| 338 | + $wgOut->addHTML( htmlspecialchars( $mwe->getText() ) . "\n" ); |
| 339 | + $wgOut->addHTML( wfMsgExt( 'maintenance-output-failure', array( 'escape' ), $this->type ) . "\n" ); |
| 340 | + } |
| 341 | + $wgOut->addHTML( '</pre>' ); |
| 342 | + $this->scriptDone( $script ); |
| 343 | + $wgOut->addHTML( $wgUser->getSkin()->makeKnownLinkObj( $this->getTitle(), wfMsgHtml( 'maintenance-backlink' ) ). '<br />' ); |
| 344 | + } |
| 345 | + |
| 346 | + private function parseMetadata() { |
| 347 | + global $IP, $wgMaintenanceScripts; |
| 348 | + $metadata = $this->metadata; |
| 349 | + $i = -1; |
| 350 | + foreach( $metadata as $script => &$stuff ) { |
| 351 | + //increment $i, which is the index of the $this->scripts array |
| 352 | + $i++; |
| 353 | + |
| 354 | + //is the script disabled for whatever reason? |
| 355 | + if( isset( $stuff['enabled'] ) && !$stuff['enabled'] ) { |
| 356 | + unset( $this->scripts[$i] ); //remove it from the list of scripts |
| 357 | + continue; |
| 358 | + } |
| 359 | + |
| 360 | + //make sure that the script exists |
| 361 | + if( !file_exists( "$IP/maintenance/$script.php" ) && !array_key_exists( $script, $wgMaintenanceScripts ) ) { |
| 362 | + return false; |
| 363 | + } |
| 364 | + |
| 365 | + //parse options |
| 366 | + if( !isset( $stuff['option'] ) ) { |
| 367 | + $stuff['option'] = array(); |
| 368 | + } elseif( !is_array( $stuff['option'] ) ) { |
| 369 | + $stuff['option'] = array( $stuff['option'] ); |
| 370 | + } |
| 371 | + foreach( $stuff['option'] as &$option ) { |
| 372 | + $name = strtok( $option, ' ' ); |
| 373 | + if( !preg_match( '/^[a-z0-9-]+$/i', $name ) ) { |
| 374 | + return false; |
297 | 375 | } |
298 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
299 | | - break; |
300 | | - case 'initEditCount': |
301 | | - $dbw = wfGetDB( DB_MASTER ); |
302 | | - $user = $dbw->tableName( 'user' ); |
303 | | - $revision = $dbw->tableName( 'revision' ); |
304 | | - $dbver = $dbw->getServerVersion(); |
305 | | - $dbr = wfGetDB( DB_SLAVE ); |
306 | | - $chunkSize = 100; |
307 | | - $lastUser = $dbr->selectField( 'user', 'MAX(user_id)', '', __FUNCTION__ ); |
308 | | - $start = microtime( true ); |
309 | | - $migrated = 0; |
310 | | - for( $min = 0; $min <= $lastUser; $min += $chunkSize ) { |
311 | | - $max = $min + $chunkSize; |
312 | | - $result = $dbr->query( |
313 | | - "SELECT |
314 | | - user_id, |
315 | | - COUNT(rev_user) AS user_editcount |
316 | | - FROM $user |
317 | | - LEFT OUTER JOIN $revision ON user_id=rev_user |
318 | | - WHERE user_id > $min AND user_id <= $max |
319 | | - GROUP BY user_id", |
320 | | - 'initEditCount' ); |
321 | | - while( $row = $dbr->fetchObject( $result ) ) { |
322 | | - $dbw->update( 'user', |
323 | | - array( 'user_editcount' => $row->user_editcount ), |
324 | | - array( 'user_id' => $row->user_id ), |
325 | | - 'initEditCount' ); |
326 | | - ++$migrated; |
327 | | - } |
328 | | - $dbr->freeResult( $result ); |
329 | | - waitForSlaves( 10 ); |
| 376 | + $type = strtok( ' ' ); |
| 377 | + if( !in_array( $type, array( 'check', 'input', 'password', 'textarea' ) ) ) { |
| 378 | + return false; |
330 | 379 | } |
331 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
332 | | - break; |
333 | | - case 'initStats': |
334 | | - $dbr = wfGetDB( DB_SLAVE ); |
335 | | - $edits = $dbr->selectField( 'revision', 'COUNT(*)', '', __METHOD__ ); |
336 | | - $edits += $dbr->selectField( 'archive', 'COUNT(*)', '', __METHOD__ ); |
337 | | - $wgOut->addWikiMsg( 'maintenance-stats-edits', $edits ); |
338 | | - global $wgContentNamespaces; |
339 | | - $good = $dbr->selectField( 'page', 'COUNT(*)', array( 'page_namespace' => $wgContentNamespaces, 'page_is_redirect' => 0, 'page_len > 0' ), __METHOD__ ); |
340 | | - $wgOut->addWikiMsg( 'maintenance-stats-articles', $good ); |
341 | | - $pages = $dbr->selectField( 'page', 'COUNT(*)', '', __METHOD__ ); |
342 | | - $wgOut->addWikiMsg( 'maintenance-stats-pages', $pages ); |
343 | | - $users = $dbr->selectField( 'user', 'COUNT(*)', '', __METHOD__ ); |
344 | | - $wgOut->addWikiMsg( 'maintenance-stats-users', $users ); |
345 | | - $admin = $dbr->selectField( 'user_groups', 'COUNT(*)', array( 'ug_group' => 'sysop' ), __METHOD__ ); |
346 | | - $wgOut->addWikiMsg( 'maintenance-stats-admins', $admin ); |
347 | | - $image = $dbr->selectField( 'image', 'COUNT(*)', '', __METHOD__ ); |
348 | | - $wgOut->addWikiMsg( 'maintenance-stats-images', $image ); |
349 | | - if( !$wgRequest->getCheck('wpNoview') ) { |
350 | | - $views = $dbr->selectField( 'page', 'SUM(page_counter)', '', __METHOD__ ); |
351 | | - $wgOut->addWikiMsg( 'maintenance-stats-views', $views ); |
352 | | - } |
353 | | - $wgOut->addWikiMsg('maintenance-stats-update'); |
354 | | - $dbw = wfGetDB( DB_MASTER ); |
355 | | - $values = array( 'ss_total_edits' => $edits, |
356 | | - 'ss_good_articles' => $good, |
357 | | - 'ss_total_pages' => $pages, |
358 | | - 'ss_users' => $users, |
359 | | - 'ss_admins' => $admin, |
360 | | - 'ss_images' => $image ); |
361 | | - $conds = array( 'ss_row_id' => 1 ); |
362 | | - $views = array( 'ss_total_views' => isset( $views ) ? $views : 0 ); |
363 | | - |
364 | | - if( $wgRequest->getCheck('wpUpdate') ) { |
365 | | - $dbw->update( 'site_stats', $values, $conds, __METHOD__ ); |
366 | | - } else { |
367 | | - $dbw->delete( 'site_stats', $conds, __METHOD__ ); |
368 | | - $dbw->insert( 'site_stats', array_merge( $values, $conds, $views ), __METHOD__ ); |
369 | | - } |
370 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
371 | | - break; |
372 | | - case 'moveBatch': |
373 | | - $reason = $wgRequest->getText('wpReason', ''); |
374 | | - $interval = 0; |
375 | | - $pages = $wgRequest->getText('wpMove'); |
376 | | - $dbw = wfGetDB( DB_MASTER ); |
377 | | - $lines = explode( "\n", $pages ); |
378 | | - foreach( $lines as $line ) { |
379 | | - $parts = array_map( 'trim', explode( '|', $line ) ); |
380 | | - if ( count( $parts ) != 2 ) { |
381 | | - continue; |
| 380 | + if( $type == 'check' ) { |
| 381 | + $default = strtok( ' ' ); //if it's missing, it's automatically false due to how strtok works |
| 382 | + $option = array(); |
| 383 | + $option['default'] = $default; |
| 384 | + } elseif( $type == 'input' || $type == 'password' ) { |
| 385 | + $size = strtok( ' ' ); //integer size or false |
| 386 | + if( $size !== false && !ctype_digit( $size ) ) { |
| 387 | + return false; |
382 | 388 | } |
383 | | - $source = Title::newFromText( $parts[0] ); |
384 | | - $dest = Title::newFromText( $parts[1] ); |
385 | | - if ( is_null( $source ) || is_null( $dest ) ) { |
386 | | - continue; |
| 389 | + //rest are attributes, we just ignore poorly-formatted ones here instead of rejecting the entire file |
| 390 | + $attrib = array(); |
| 391 | + while( ( $attr = strtok( ' ' ) ) !== false ) { |
| 392 | + $bits = explode( '=', $attr, 2 ); |
| 393 | + if( count( $bits ) < 2 || !ctype_alpha( $bits[0] ) ) { |
| 394 | + continue; |
| 395 | + } |
| 396 | + $attrib[strtolower( $bits[0] )] = $bits[1]; //$bits[1] gets sanitized by the Sanitizer before being sent off to output |
387 | 397 | } |
388 | | - $wgOut->addWikiText( '* '.wfMsg( 'maintenance-move', array( $source->getPrefixedText(), $dest->getPrefixedText() ) ) ); |
389 | | - $dbw->begin(); |
390 | | - $err = $source->moveTo( $dest, false, $reason ); |
391 | | - if( $err !== true ) { |
392 | | - $wgOut->addWikiText('** '.wfMsg('maintenance-movefail', array( $err ) ) ); |
393 | | - } |
394 | | - $dbw->commit(); |
395 | | - waitForSlaves( 5 ); |
| 398 | + $option = array(); |
| 399 | + $option['size'] = $size; |
| 400 | + $option['attrib'] = $attrib; |
| 401 | + } elseif( $type == 'textarea' ) { |
| 402 | + $tmpfile = strtok( ' ' ); |
| 403 | + $option = array(); |
| 404 | + $option['tmpfile'] = $tmpfile; |
396 | 405 | } |
397 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
398 | | - break; |
399 | | - case 'reassignEdits': |
400 | | - $wpFrom = $wgRequest->getVal( 'wpFrom' ); |
401 | | - $wpTo = $wgRequest->getVal( 'wpTo' ); |
402 | | - if( User::isIP( $wpFrom ) ) { |
403 | | - $from = new User(); |
404 | | - $from->setId( 0 ); |
405 | | - $from->setName( $wpFrom ); |
406 | | - } else { |
407 | | - $from = User::newFromName( $wpFrom ); |
| 406 | + $option['name'] = $name; |
| 407 | + $option['type'] = $type; |
| 408 | + } |
| 409 | + |
| 410 | + //parse args |
| 411 | + if( !isset( $stuff['arg'] ) ) { |
| 412 | + $stuff['arg'] = array(); |
| 413 | + } elseif( !is_array( $stuff['arg'] ) ) { |
| 414 | + $stuff['arg'] = array( $stuff['arg'] ); |
| 415 | + } |
| 416 | + foreach( $stuff['arg'] as &$arg ) { |
| 417 | + $name = strtok( $arg, ' ' ); |
| 418 | + if( !preg_match( '/^[a-z0-9-]+$/i', $name ) ) { |
| 419 | + return false; |
408 | 420 | } |
409 | | - if( User::isIP( $wpTo ) ) { |
410 | | - $to = new User(); |
411 | | - $to->setId( 0 ); |
412 | | - $to->setName( $wpTo ); |
413 | | - } else { |
414 | | - $to = User::newFromName( $wpTo ); |
| 421 | + $type = strtok( ' ' ); |
| 422 | + if( !in_array( $type, array( 'check', 'input', 'password', 'textarea' ) ) ) { |
| 423 | + return false; |
415 | 424 | } |
416 | | - if( $to->getId() || $wgRequest->getCheck( 'wpForce' ) ) { |
417 | | - $report = $wgRequest->getCheck( 'wpReport' ); |
418 | | - $dbw = wfGetDB( DB_MASTER ); |
419 | | - $dbw->begin(); |
420 | | - $rcond = $from->getId() ? array( 'rev_user' => $from->getId() ) : array( 'rev_user_text' => $from->getName() ); |
421 | | - $res = $dbw->select( 'revision', 'COUNT(*) AS count', $rcond, 'Maintenance::reassignEdits' ); |
422 | | - $row = $dbw->fetchObject( $res ); |
423 | | - $cur = $row->count; |
424 | | - $wgOut->addWikiMsg( 'maintenance-re-ce', $cur ); |
425 | | - $acond = $from->getId() ? array( 'ar_user' => $from->getId() ) : array( 'ar_user_text' => $from->getName() ); |
426 | | - $res = $dbw->select( 'archive', 'COUNT(*) AS count', $acond, 'Maintenance::reassignEdits' ); |
427 | | - $row = $dbw->fetchObject( $res ); |
428 | | - $del = $row->count; |
429 | | - $wgOut->addWikiMsg( 'maintenance-re-de', $del ); |
430 | | - if( !$wgRequest->getCheck( 'wpRc' ) ) { |
431 | | - $ccond = $from->getId() ? array( 'rc_user' => $from->getId() ) : array( 'rc_user_text' => $from->getName() ); |
432 | | - $res = $dbw->select( 'recentchanges', 'COUNT(*) AS count', $ccond, 'Maintenance::reassignEdits' ); |
433 | | - $row = $dbw->fetchObject( $res ); |
434 | | - $rec = $row->count; |
435 | | - $wgOut->addWikiMsg( 'maintenance-re-rce', $rec ); |
436 | | - } else { |
437 | | - $rec = 0; |
| 425 | + if( $type == 'check' ) { |
| 426 | + $default = strtok( ' ' ); //if it's missing, it's automatically false due to how strtok works |
| 427 | + $arg = array(); |
| 428 | + $arg['default'] = $default; |
| 429 | + } elseif( $type == 'input' || $type == 'password' ) { |
| 430 | + $size = strtok( ' ' ); //integer size or false |
| 431 | + if( $size !== false && !ctype_digit( $size ) ) { |
| 432 | + return false; |
438 | 433 | } |
439 | | - $total = $cur + $del + $rec; |
440 | | - $wgOut->addWikiMsg( 'maintenance-re-total', $total ); |
441 | | - if( !$report ) { |
442 | | - $rspec = array( 'rev_user' => $to->getId(), 'rev_user_text' => $to->getName() ); |
443 | | - $res = $dbw->update( 'revision', $rspec, $rcond, 'Maintenance::reassignEdits' ); |
444 | | - $aspec = array( 'ar_user' => $to->getId(), 'ar_user_text' => $to->getName() ); |
445 | | - $res = $dbw->update( 'archive', $aspec, $acond, 'Maintenance::reassignEdits' ); |
446 | | - if( !$wgRequest->getCheck( 'wpRc' ) ) { |
447 | | - $cspec = array( 'rc_user' => $to->getId(), 'rc_user_text' => $to->getName() ); |
448 | | - $res = $dbw->update( 'recentchanges', $cspec, $ccond, 'Maintenance::reassignEdits' ); |
| 434 | + //rest are attributes, we just ignore poorly-formatted ones here instead of rejecting the entire file |
| 435 | + $attrib = array(); |
| 436 | + while( ( $attr = strtok( ' ' ) ) !== false ) { |
| 437 | + $bits = explode( '=', $attr, 2 ); |
| 438 | + if( count( $bits ) < 2 || !ctype_alpha( $bits[0] ) ) { |
| 439 | + continue; |
449 | 440 | } |
| 441 | + $attrib[strtolower( $bits[0] )] = $bits[1]; //$bits[1] gets sanitized by the Sanitizer before being sent off to output |
450 | 442 | } |
451 | | - $dbw->commit(); |
452 | | - if( $report ) { |
453 | | - $wgOut->addWikiMsg( 'maintenance-re-rr', wfMsg( 'maintenance-re-report' ) ); |
454 | | - } |
455 | | - } else { |
456 | | - $ton = $to->getName(); |
457 | | - $wgOut->addWikiMsg( 'maintenance-re-nf', $ton ); |
| 443 | + $arg = array(); |
| 444 | + $arg['size'] = $size; |
| 445 | + $arg['attrib'] = $attrib; |
| 446 | + } elseif( $type == 'textarea' ) { |
| 447 | + $tmpfile = strtok( ' ' ); |
| 448 | + $arg = array(); |
| 449 | + $arg['tmpfile'] = $tmpfile; |
458 | 450 | } |
459 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
460 | | - break; |
461 | | - case 'runJobs': |
462 | | - $maxJobs = 10000; |
463 | | - $dbw = wfGetDB( DB_MASTER ); |
464 | | - $n = 0; |
465 | | - while ( $dbw->selectField( 'job', 'count(*)', '', 'runJobs.php' ) ) { |
466 | | - $offset = 0; |
467 | | - for (;;) { |
468 | | - $job = Job::pop($offset); |
469 | | - if ( $job == false ) |
470 | | - break; |
471 | | - waitForSlaves( 5 ); |
472 | | - $wgOut->addWikiText("* ".$job->id . " " . $job->toString() ); |
473 | | - $offset = $job->id; |
474 | | - if ( !$job->run() ) { |
475 | | - $wgOut->addWikiText("** ".wfMsg('maintenance-error', array( $job->error ) ) ); |
476 | | - } |
477 | | - if ( $maxJobs && ++$n > $maxJobs ) { |
478 | | - break 2; |
479 | | - } |
480 | | - } |
| 451 | + $arg['name'] = $name; |
| 452 | + $arg['type'] = $type; |
| 453 | + } |
| 454 | + |
| 455 | + //parse output messages (for i18n) |
| 456 | + if( !isset( $stuff['output'] ) ) { |
| 457 | + $stuff['output'] = array(); |
| 458 | + } elseif( !is_array( $stuff['output'] ) ) { |
| 459 | + $stuff['output'] = array( $stuff['output'] ); |
| 460 | + } |
| 461 | + foreach( $stuff['output'] as &$autput ) { |
| 462 | + $bits = explode( ' ', $autput, 3 ); |
| 463 | + if( count( $bits ) < 3 ) { |
| 464 | + return false; |
481 | 465 | } |
482 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
483 | | - break; |
484 | | - case 'showJobs': |
485 | | - $dbw = wfGetDB( DB_MASTER ); |
486 | | - $count = $dbw->selectField( 'job', 'count(*)', '', 'runJobs.php' ); |
487 | | - $wgOut->addHTML( $count ); |
488 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
489 | | - break; |
490 | | - case 'stats': |
491 | | - global $wgMemc; |
492 | | - if( get_class( $wgMemc ) == 'FakeMemCachedClient' ) { |
493 | | - $wgOut->addWikiMsg('maintenance-memc-fake'); |
494 | | - return; |
| 466 | + $autput = array(); |
| 467 | + $autput['name'] = strtolower( $bits[0] ); |
| 468 | + if( !preg_match( '/^[a-z0-9-]+$/i', $autput['name'] ) ) { |
| 469 | + return false; |
495 | 470 | } |
496 | | - $wgOut->addWikiText('<h2>'.wfMsg('maintenance-memc-requests').'</h2>'); |
497 | | - $session = intval( $wgMemc->get( wfMemcKey('stats', 'request_with_session') ) ); |
498 | | - $noSession = intval( $wgMemc->get( wfMemcKey('stats', 'request_without_session') ) ); |
499 | | - $total = $session + $noSession; |
500 | | - $requests = sprintf( wfMsg('maintenance-memc-withsession')." %-10d %6.2f%%\n", $session, $session/$total*100 ) . '<br />'; |
501 | | - $requests .= sprintf( wfMsg('maintenance-memc-withoutsession')." %-10d %6.2f%%\n", $noSession, $noSession/$total*100 ). '<br />'; |
502 | | - $requests .= sprintf( wfMsg('maintenance-memc-total')." %-10d %6.2f%%\n", $total, 100 ). '<br />'; |
503 | | - $wgOut->addWikiText($requests); |
504 | | - $wgOut->addWikiText('<h2>'.wfMsg('maintenance-memc-parsercache').'</h2>'); |
505 | | - $hits = intval( $wgMemc->get( wfMemcKey('stats', 'pcache_hit') ) ); |
506 | | - $invalid = intval( $wgMemc->get( wfMemcKey('stats', 'pcache_miss_invalid') ) ); |
507 | | - $expired = intval( $wgMemc->get( wfMemcKey('stats', 'pcache_miss_expired') ) ); |
508 | | - $absent = intval( $wgMemc->get( wfMemcKey('stats', 'pcache_miss_absent') ) ); |
509 | | - $stub = intval( $wgMemc->get( wfMemcKey('stats', 'pcache_miss_stub') ) ); |
510 | | - $total = $hits + $invalid + $expired + $absent + $stub; |
511 | | - $pcache = sprintf( wfMsg('maintenance-memc-hits')." %-10d %6.2f%%\n", $hits, $hits/$total*100 ). '<br />'; |
512 | | - $pcache .= sprintf( wfMsg('maintenance-memc-invalid')." %-10d %6.2f%%\n", $invalid, $invalid/$total*100 ). '<br />'; |
513 | | - $pcache .= sprintf( wfMsg('maintenance-memc-expired')." %-10d %6.2f%%\n", $expired, $expired/$total*100 ). '<br />'; |
514 | | - $pcache .= sprintf( wfMsg('maintenance-memc-absent')." %-10d %6.2f%%\n", $absent, $absent/$total*100 ). '<br />'; |
515 | | - $pcache .= sprintf( wfMsg('maintenance-memc-stub')." %-10d %6.2f%%\n", $stub, $stub/$total*100 ). '<br />'; |
516 | | - $pcache .= sprintf( wfMsg('maintenance-memc-total')." %-10d %6.2f%%\n", $total, 100 ). '<br />'; |
517 | | - $wgOut->addWikiText($pcache); |
518 | | - $hits = intval( $wgMemc->get( wfMemcKey('stats', 'image_cache_hit') ) ); |
519 | | - $misses = intval( $wgMemc->get( wfMemcKey('stats', 'image_cache_miss') ) ); |
520 | | - $updates = intval( $wgMemc->get( wfMemcKey('stats', 'image_cache_update') ) ); |
521 | | - $total = $hits + $misses; |
522 | | - $wgOut->addWikiText('<h2>'.wfMsg('maintenance-memc-imagecache').'</h2>'); |
523 | | - $icache = sprintf( wfMsg('maintenance-memc-hits')." %-10d %6.2f%%\n", $hits, $hits/$total*100 ). '<br />'; |
524 | | - $icache .= sprintf( wfMsg('maintenance-memc-misses')." %-10d %6.2f%%\n", $misses, $misses/$total*100 ). '<br />'; |
525 | | - $icache .= sprintf( wfMsg('maintenance-memc-updates')." %-10d\n", $updates ). '<br />'; |
526 | | - $wgOut->addWikiText($icache); |
527 | | - $hits = intval( $wgMemc->get( wfMemcKey('stats', 'diff_cache_hit') ) ); |
528 | | - $misses = intval( $wgMemc->get( wfMemcKey('stats', 'diff_cache_miss') ) ); |
529 | | - $uncacheable = intval( $wgMemc->get( wfMemcKey('stats', 'diff_uncacheable') ) ); |
530 | | - $total = $hits + $misses + $uncacheable; |
531 | | - $wgOut->addWikiText('<h2>'.wfMsg('maintenance-memc-diffcache').'</h2>'); |
532 | | - $dcache = sprintf( wfMsg('maintenance-memc-hits')." %-10d %6.2f%%\n", $hits, $hits/$total*100 ). '<br />'; |
533 | | - $dcache .= sprintf( wfMsg('maintenance-memc-misses')." %-10d %6.2f%%\n", $misses, $misses/$total*100 ). '<br />'; |
534 | | - $dcache .= sprintf( wfMsg('maintenance-memc-uncacheable')." %-10d %6.2f%%\n", $uncacheable, $uncacheable/$total*100 ). '<br />'; |
535 | | - $wgOut->addWikiText($dcache); |
536 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
537 | | - break; |
538 | | - case 'sql': |
539 | | - $db = wfGetDB( DB_MASTER ); |
540 | | - $q = $wgRequest->getText('wpQuery', ''); |
541 | | - $db->begin(); |
542 | | - try { |
543 | | - $r = $db->query( $q, 'Maintenance::sql.php' ); |
544 | | - } catch(DBQueryError $e) { |
545 | | - global $wgShowSQLErrors; |
546 | | - $temp = $wgShowSQLErrors; |
547 | | - $wgShowSQLErrors = true; |
548 | | - $wgOut->addWikiText( '<pre style="overflow: auto">' . $e->getText() . '</pre>' ); |
549 | | - $wgShowSQLErrors = $temp; |
550 | | - $r = false; |
| 471 | + $autput['type'] = $bits[1]; |
| 472 | + if( !in_array( $autput['type'], array( 'string', 'regex' ) ) ) { |
| 473 | + return false; |
551 | 474 | } |
552 | | - if($r === true) { |
553 | | - $wgOut->addWikiMsg( 'maintenance-sql-aff', $db->affectedRows() ); |
554 | | - } elseif( $r instanceOf ResultWrapper ) { |
555 | | - $res = array(); |
556 | | - for( $i = 0; $i < $r->numRows(); $i++ ) { |
557 | | - $row = $r->fetchRow(); |
558 | | - $res[] = $row; |
559 | | - foreach( $row as $key => $meh ) { |
560 | | - $names[] = $key; |
561 | | - } |
562 | | - } |
563 | | - $names = array_unique($names); |
564 | | - $rtable = '<table class="wikitable"><tr>'; |
565 | | - foreach($names as $name) { |
566 | | - if( is_numeric($name) ) continue; |
567 | | - $rtable .= '<th>' . $name . '</th>'; |
568 | | - } |
569 | | - $rtable .= '</tr>'; |
570 | | - foreach( $res as $data ) { |
571 | | - $rtable .= '<tr>'; |
572 | | - foreach( $data as $key => $value ) { |
573 | | - if( is_numeric($key) ) continue; |
574 | | - $rtable .= '<td><nowiki>' . $value . '</nowiki></td>'; |
575 | | - } |
576 | | - $rtable .= '</tr>'; |
577 | | - } |
578 | | - $rtable .= '</table>'; |
579 | | - $wgOut->addWikiMsg( 'maintenance-sql-res', $r->numRows(), $rtable ); |
580 | | - $db->freeResult($r); |
| 475 | + $autput['match'] = $bits[2]; |
| 476 | + } |
| 477 | + |
| 478 | + //parse error messages (for i18n) |
| 479 | + if( !isset( $stuff['error'] ) ) { |
| 480 | + $stuff['error'] = array(); |
| 481 | + } elseif( !is_array( $stuff['error'] ) ) { |
| 482 | + $stuff['error'] = array( $stuff['error'] ); |
| 483 | + } |
| 484 | + foreach( $stuff['error'] as &$error ) { |
| 485 | + $bits = explode( ' ', $error, 3 ); |
| 486 | + if( count( $bits ) < 3 ) { |
| 487 | + return false; |
581 | 488 | } |
582 | | - $db->commit(); |
583 | | - $wgOut->addWikiMsg( 'maintenance-success', $type ); |
| 489 | + $error = array(); |
| 490 | + $error['name'] = strtolower( $bits[0] ); |
| 491 | + if( !preg_match( '/^[a-z0-9-]+$/i', $error['name'] ) ) { |
| 492 | + return false; |
| 493 | + } |
| 494 | + $error['type'] = $bits[1]; |
| 495 | + if( !in_array( $error['type'], array( 'string', 'regex' ) ) ) { |
| 496 | + return false; |
| 497 | + } |
| 498 | + $error['match'] = $bits[2]; |
| 499 | + } |
| 500 | + |
| 501 | + //parse special options (batch, stdin) |
| 502 | + if( !isset( $stuff['batch'] ) ) { |
| 503 | + $stuff['batch'] = 0; |
| 504 | + } |
| 505 | + if( !isset( $stuff['stdin'] ) ) { |
| 506 | + $stuff['stdin'] = false; |
| 507 | + } |
| 508 | + } |
| 509 | + $this->metadata = $metadata; |
| 510 | + return true; |
| 511 | + } |
| 512 | + |
| 513 | + private function setup( $maintenance ) { |
| 514 | + //set the memory limit |
| 515 | + @ini_set( 'memory_limit', $maintenance->memoryLimit() ); |
| 516 | + |
| 517 | + //set up the params and args |
| 518 | + global $wgRequest; |
| 519 | + $goptions = $this->metadata[$this->type]['option']; |
| 520 | + $gargs = $this->metadata[$this->type]['arg']; |
| 521 | + $opts = $args = null; |
| 522 | + if( $goptions != array() ) { |
| 523 | + $opts = array(); |
| 524 | + foreach( $goptions as $a ) { |
| 525 | + if( $a['type'] == 'textarea' && $a['tmpfile'] ) { |
| 526 | + $fname = tempnam( sys_get_temp_dir(), $a['tmpfile'] ); |
| 527 | + $f = fopen( $fname, 'wt' ); |
| 528 | + fwrite( $f, $wgRequest->getText( 'wp' . ucfirst( $a['name'] ) ) ); |
| 529 | + fclose( $f ); |
| 530 | + $opts[$a['name']] = $fname; |
| 531 | + } elseif( $a['type'] == 'textarea' ) { |
| 532 | + $opts[$a['name']] = $wgRequest->getText( 'wp' . ucfirst( $a['name'] ) ); |
| 533 | + } elseif( $a['type'] != 'check' ) { |
| 534 | + $opts[$a['name']] = $wgRequest->getVal( 'wp' . ucfirst( $a['name'] ) ); |
| 535 | + } else { |
| 536 | + $opts[$a['name']] = $wgRequest->getCheck( 'wp' . ucfirst( $a['name'] ) ); |
| 537 | + } |
| 538 | + } |
| 539 | + } |
| 540 | + if( $gargs != array() ) { |
| 541 | + $args = array(); |
| 542 | + foreach( $gargs as $a ) { |
| 543 | + if( $a['type'] == 'textarea' && $a['tmpfile'] ) { |
| 544 | + $fname = tempnam( sys_get_temp_dir(), $a['tmpfile'] ); |
| 545 | + $f = fopen( $fname, 'wt' ); |
| 546 | + fwrite( $f, $wgRequest->getText( 'wp' . ucfirst( $a['name'] ) ) ); |
| 547 | + fclose( $f ); |
| 548 | + $args[] = $fname; |
| 549 | + } elseif( $a['type'] == 'textarea' ) { |
| 550 | + $args[] = $wgRequest->getText( 'wp' . ucfirst( $a['name'] ) ); |
| 551 | + } elseif( $a['type'] != 'check' ) { |
| 552 | + $args[] = $wgRequest->getVal( 'wp' . ucfirst( $a['name'] ) ); |
| 553 | + } else { |
| 554 | + $args[] = $wgRequest->getCheck( 'wp' . ucfirst( $a['name'] ) ); |
| 555 | + } |
| 556 | + } |
| 557 | + } |
| 558 | + |
| 559 | + //special opts |
| 560 | + if( $wgRequest->getCheck( 'wpQuiet' ) ) { |
| 561 | + $opts['quiet'] = true; |
| 562 | + } |
| 563 | + if( $wgRequest->getCheck( 'wpGlobals' ) ) { |
| 564 | + $opts['globals'] = true; |
| 565 | + } |
| 566 | + if( $wgRequest->getVal( 'wpBatch-size', false ) ) { |
| 567 | + $opts['batch-size'] = $wgRequest->getVal( 'wpBatch-size' ); |
| 568 | + } |
| 569 | + |
| 570 | + //per-script special cases |
| 571 | + switch( $this->type ) { |
| 572 | + case 'checkSyntax': |
| 573 | + //need to save list-file to a temp txt file and set list-file to that file's location |
| 574 | + $this->loc = tempnam( sys_get_temp_dir(), "tmpfile" ); |
| 575 | + $f = fopen( $this->loc, 'wt' ); |
| 576 | + fwrite( $f, $wgRequest->getText( 'wpList-file' ) ); |
| 577 | + fclose( $f ); |
| 578 | + $opts['list-file'] = $this->loc; |
584 | 579 | break; |
585 | | - default: |
586 | | - $wgOut->addWikiMsg( 'maintenance-invalidtype' ); |
587 | | - return; |
588 | 580 | } |
| 581 | + |
| 582 | + $maintenance->loadParamsAndArgs( $this->type, $opts, $args ); |
| 583 | + $die = $maintenance->doValidateParamsAndArgs(); |
| 584 | + if( $die ) { |
| 585 | + global $wgOut; |
| 586 | + $wgOut->addHTML( wfMsg( 'maintenance-error-badargs' ) ); |
| 587 | + return false; |
| 588 | + } |
| 589 | + |
| 590 | + global $IP; |
| 591 | + if( $maintenance->getDbType() === Maintenance::DB_ADMIN ) { |
| 592 | + global $wgDBuser, $wgDBpassword, $wgDBadminuser, $wgDBadminpassword, $wgDBuserold, $wgDBpasswordold; |
| 593 | + if( !isset( $wgDBadminuser ) && is_readable( "$IP/AdminSettings.php" ) ) { |
| 594 | + require( "$IP/AdminSettings.php" ); |
| 595 | + } |
| 596 | + if( isset( $wgDBadminuser ) ) { |
| 597 | + $wgDBuserold = $wgDBuser; |
| 598 | + $wgDBpasswordold = $wgDBpassword; |
| 599 | + $wgDBuser = $wgDBadminuser; |
| 600 | + $wgDBpassword = $wgDBadminpassword; |
| 601 | + LBFactory::destroyInstance(); |
| 602 | + } |
| 603 | + } |
| 604 | + |
| 605 | + return true; |
589 | 606 | } |
590 | | -} |
591 | | - |
592 | | -function waitForSlaves( $maxLag ) { |
593 | | - if( $maxLag ) { |
594 | | - $lb = wfGetLB(); |
595 | | - list( $host, $lag ) = $lb->getMaxLag(); |
596 | | - while( $lag > $maxLag ) { |
597 | | - $name = @gethostbyaddr( $host ); |
598 | | - if( $name !== false ) { |
599 | | - $host = $name; |
| 607 | + |
| 608 | + private function scriptDone( $script ) { |
| 609 | + global $wgDBuser, $wgDBpassword, $wgDBadminuser, $wgDBadminpassword, $wgDBuserold, $wgDBpasswordold; |
| 610 | + if( $script->getDbType() === Maintenance::DB_ADMIN && isset( $wgDBadminuser ) ) { |
| 611 | + $wgDBuser = $wgDBuserold; |
| 612 | + $wgDBpassword = $wgDBpasswordold; |
| 613 | + unset( $GLOBALS['wgDBuserold'], $GLOBALS['wgDBpasswordold'] ); |
| 614 | + LBFactory::destroyInstance(); |
| 615 | + } |
| 616 | + |
| 617 | + $goptions = $this->metadata[$this->type]['option']; |
| 618 | + $gargs = $this->metadata[$this->type]['arg']; |
| 619 | + |
| 620 | + if( $goptions != array() ) { |
| 621 | + foreach( $goptions as $a ) { |
| 622 | + if( $a['type'] == 'textarea' && $a['tmpfile'] && file_exists( $a['tmpfile'] ) ) { |
| 623 | + unlink( $a['tmpfile'] ); |
| 624 | + } |
600 | 625 | } |
601 | | - sleep($maxLag); |
602 | | - list( $host, $lag ) = $lb->getMaxLag(); |
603 | 626 | } |
| 627 | + |
| 628 | + if( $gargs != array() ) { |
| 629 | + foreach( $gargs as $a ) { |
| 630 | + if( $a['type'] == 'textarea' && $a['tmpfile'] && file_exists( $a['tmpfile'] ) ) { |
| 631 | + unlink( $a['tmpfile'] ); |
| 632 | + } |
| 633 | + } |
| 634 | + } |
604 | 635 | } |
605 | 636 | } |
606 | 637 | |
607 | | -// Helper classes |
| 638 | +class SpecialMaintenanceException extends MWException { |
| 639 | + //don't need anything here since we never print this out |
| 640 | + //only used as an exception for the "die" feature of Maintenance::error() as opposed to terminating the script |
| 641 | +} |
Index: trunk/extensions/Maintenance/Maintenance.i18n.php |
— | — | @@ -21,64 +21,247 @@ |
22 | 22 | 'right-maintenance' => 'Run maintenance scripts through [[Special:Maintenance]]', |
23 | 23 | // main form |
24 | 24 | 'maintenance-backlink' => 'Back to script selection', |
25 | | - 'maintenance-header' => 'Please select a script below to execute. |
26 | | -Descriptions are next to each script', |
27 | | - // script descriptions |
28 | | - 'maintenance-changePassword-desc' => "Change a user's password", |
29 | | - 'maintenance-createAndPromote-desc' => 'Create a user and promote to administrator status', |
30 | | - 'maintenance-deleteBatch-desc' => 'Mass-delete pages', |
31 | | - 'maintenance-deleteRevision-desc' => 'Remove revisions from the database', |
32 | | - 'maintenance-eval-desc' => 'Evaluate PHP code in the MediaWiki environment', |
33 | | - 'maintenance-initEditCount-desc' => 'Recalculate the edit counts of users', |
34 | | - 'maintenance-initStats-desc' => 'Recalculate site statistics', |
35 | | - 'maintenance-moveBatch-desc' => 'Mass-move pages', |
36 | | - 'maintenance-reassignEdits-desc' => 'Reassign edits from one user to another', |
37 | | - 'maintenance-runJobs-desc' => 'Run jobs in the job queue', |
38 | | - 'maintenance-showJobs-desc' => 'Show a list of jobs pending in the job queue', |
39 | | - 'maintenance-sql-desc' => 'Execute an SQL query', |
40 | | - 'maintenance-stats-desc' => 'Show Memcached statistics', |
| 25 | + 'maintenance-header' => 'Please select a script below to execute. Descriptions are next to each script', |
| 26 | + // errors |
| 27 | + 'maintenance-error-badini' => 'The metadata.ini file is either corrupted or missing. Please re-download the Maintenance extension', |
| 28 | + 'maintenance-error-invalidtype' => 'The script specified was not found', |
| 29 | + 'maintenance-error-badargs' => 'You did not specify all of the required options', |
| 30 | + // generic includes |
| 31 | + 'maintenance-generic-done' => 'done', |
| 32 | + 'maintenance-generic-username' => 'Username', |
| 33 | + 'maintenance-generic-password' => 'Password', |
| 34 | + 'maintenance-generic-reason' => 'Reason', |
| 35 | + 'maintenance-generic-notrans' => '$1', #Do not translate this message |
| 36 | + // generic messages from cleanupTable.inc |
| 37 | + 'maintenance-cleanupTable-dry-run' => 'Perform a dry run', |
| 38 | + 'maintenance-cleanupTable-check' => 'Checking for bad titles...', |
| 39 | + 'maintenance-cleanupTable-checkfix' => 'Checking and fixing bad titles...', |
| 40 | + 'maintenance-cleanupTable-progress' => '$1 $2: $3% done on $4; ETA $5 [$6/$7] $8/sec <$9% updated>', #$1=wiki id, $2=timestamp, $3=portion done, $4=table name, $5=eta, $6=num processed, $7=total, $8=processed/sec, $9=updated rate |
| 41 | + 'maintenance-cleanupTable-missingparam' => '$1: Missing parameter $2', #$1=method name, $2=list of params missing (hardcoded in cleanupTables.inc to be seperated by a comma and a space, e.g. "param1, param2") |
| 42 | + 'maintenance-cleanupTable-processing' => 'Processing $1...', #$1=table name |
| 43 | + 'maintenance-cleanupTable-finished' => 'Finished $1... $2 of $3 rows updated', #$1=table name, $2=num updated, $3=num processed |
| 44 | + // default options |
| 45 | + 'maintenance-option-quiet' => 'Suppress non-error output', |
| 46 | + 'maintenance-option-globals' => 'Output globals at the end of processing for debugging', |
| 47 | + 'maintenance-option-confirm' => 'Confirm', |
| 48 | + 'maintenance-option-batch-size' => 'Run this many operations per batch, default: $1', #$1=batch size |
| 49 | + 'maintenance-option-required' => '(required)', #not yet used |
| 50 | + 'maintenance-option-optional' => '(optional)', #not yet used |
| 51 | + // default output |
| 52 | + 'maintenance-output-success' => '$1 ran successfully!', #$1=name of script |
| 53 | + 'maintenance-output-failure' => '$1 did not run successfully!', #$1=name of script |
| 54 | + // attachLatest |
| 55 | + 'maintenance-attachLatest' => 'Use this form to fix entries in the page table where page_latest is set to 0', |
| 56 | + 'maintenance-attachLatest-desc' => 'Fix page_latest entries in the page table', |
| 57 | + 'maintenance-attachLatest-option-fix' => 'Actually fix the entries, will dry run otherwise', |
| 58 | + 'maintenance-attachLatest-output-begin' => 'Looking for pages with page_latest set to 0...', |
| 59 | + 'maintenance-attachLatest-output-notime' => '$1 $2 [[$3]] can\'t find the latest rev time?!', #$1=wiki id, $2=page id, $3=page name |
| 60 | + 'maintenance-attachLatest-output-norev' => '$1 $2 [[$3]] latest time $4, can\'t find revision id', #$1=wiki id, $2=page id, $3=page name, $4=latest time |
| 61 | + 'maintenance-attachLatest-output-found' => '$1 $2 [[$3]] latest time $4, rev id $5', #$1=wiki id, $2=page id, $3=page name, $4=latest time, $5=rev id |
| 62 | + 'maintenance-attachLatest-output-done' => 'Done! Processed $1 pages.', #$1=number of pages with page_latest=0 |
| 63 | + 'maintenance-attachLatest-output-dryrun' => 'This was a dry run; rerun with "{{int:maintenance-attachLatest-option-fix}}" to update page_latest.', |
| 64 | + // benchmarkPurge |
| 65 | + 'maintenance-benchmarkPurge' => 'Use this form to test how long the Squid purge functions take', |
| 66 | + 'maintenance-benchmarkPurge-desc' => 'Benchmark the Squid purge functions', |
| 67 | + 'maintenance-benchmarkPurge-option-count' => 'How many URLs to feed to Squid for purging', |
| 68 | + 'maintenance-benchmarkPurge-error-nosquid' => "Squid purge benchmark doesn't do much without squid support on.", |
| 69 | + 'maintenance-benchmarkPurge-output-numsquids' => 'There are $1 defined squid servers:', #$1=number of squid servers |
| 70 | + 'maintenance-benchmarkPurge-output-trial' => '$1 titles in $2ms ($3ms each)', #$1=number of titles, $2=total time, $3=average time |
41 | 71 | // changePassword |
42 | 72 | 'maintenance-changePassword' => "Use this form to change a user's password", |
| 73 | + 'maintenance-changePassword-desc' => "Change a user's password", |
| 74 | + 'maintenance-changePassword-option-user' => '{{int:maintenance-generic-username}}', |
| 75 | + 'maintenance-changePassword-option-password' => '{{int:maintenance-generic-password}}', |
| 76 | + 'maintenance-changePassword-error-nouser' => 'No such user: $1', #$1=username |
| 77 | + 'maintenance-changePassword-output-set' => 'Password set for $1', #$1=username |
| 78 | + // checkAutoLoader |
| 79 | + 'maintenance-checkAutoLoader' => 'Use this form to do some sanity checks on the AutoLoader', |
| 80 | + 'maintenance-checkAutoLoader-desc' => 'AutoLoader sanity checks', |
| 81 | + 'maintenance-checkAutoLoader-output-list1' => "\t'\$1' => '\$2',", #$1=class, $2=file |
| 82 | + 'maintenance-checkAutoLoader-output-list2' => '$1: Wrong file: found in $2, listed in $3', #$1=class, $2=file, $3=file |
| 83 | + // checkBadRedirects |
| 84 | + 'maintenance-checkBadRedirects' => 'Use this form to see if pages marked as redirects really are redirects', |
| 85 | + 'maintenance-checkBadRedirects-desc' => 'Look for bad redirects', |
| 86 | + 'maintenance-checkBadRedirects-output-header' => 'Fetching redirects...', |
| 87 | + 'maintenance-checkBadRedirects-output-found' => "Found \$1 total redirects.\nLooking for bad redirects...\n", #$1=number of redirects |
| 88 | + 'maintenance-checkBadRedirects-output-footer' => "\ndone.", |
| 89 | + // checkImages |
| 90 | + 'maintenance-checkImages' => 'Use this form to see which images on your server are corrupted', |
| 91 | + 'maintenance-checkImages-desc' => 'Check images to see if they exist, are readable, etc', |
| 92 | + 'maintenance-checkImages-output-noaccess' => '$1: not locally accessible', #$1=image name |
| 93 | + 'maintenance-checkImages-output-missing' => '$1: missing', #$1=image name |
| 94 | + 'maintenance-checkImages-output-isdir' => '$1: is a directory', #$1=image name |
| 95 | + 'maintenance-checkImages-output-truncated' => '$1: truncated, was $2', #$1=image name, $2=db size |
| 96 | + 'maintenance-checkImages-output-mismatch' => '$1: size mismatch DB=$2, actual=$3', #$1=image name, $2=db size, $3=actual size |
| 97 | + 'maintenance-checkImages-output-good' => 'Good images: $1/$2', #$1=good images, $2=total images |
| 98 | + // checkSyntax |
| 99 | + 'maintenance-checkSyntax' => 'Use this form to check the syntax of all PHP files in MediaWiki', |
| 100 | + 'maintenance-checkSyntax-desc' => 'Check syntax for all PHP files in MediaWiki', |
| 101 | + 'maintenance-checkSyntax-option-with-extensions' => 'Also recurse the extensions folder', |
| 102 | + 'maintenance-checkSyntax-option-path' => 'Specific path (file or directory) to check, either with absolute path or relative to the root of this MediaWiki installation', |
| 103 | + 'maintenance-checkSyntax-option-list-file' => 'List of files or directories to check', |
| 104 | + 'maintenance-checkSyntax-option-modified' => 'Check only files that were modified (requires SVN command-line client)', |
| 105 | + 'maintenance-checkSyntax-option-syntax-only' => 'Check for syntax validity only, skip code style warnings', |
| 106 | + 'maintenance-checkSyntax-output-parsekit' => 'Checking syntax (using parsekit)', |
| 107 | + 'maintenance-checkSyntax-output-phpl' => 'Checking syntax (using php -l, this can take a long time)', |
| 108 | + 'maintenance-checkSyntax-output-footer' => 'Done! $1 files checked, $2 failures and $3 warnings found', #$1=files checked, $2=php errors, $3=php warnings |
| 109 | + 'maintenance-checkSyntax-output-svnlist' => 'Retrieving list from Subversion...', |
| 110 | + 'maintenance-checkSyntax-output-done' => '{{int:maintenance-generic-done}}', |
| 111 | + 'maintenance-checkSyntax-output-buildlist' => 'Building file list...', |
| 112 | + 'maintenance-checkSyntax-output-error' => 'Error in $1 line $2: $3', #$1=file, $2=line no, $3=error message |
| 113 | + 'maintenance-checkSyntax-output-warning' => 'Warning in file $1: $2 found', #$1=file, $2=warning message |
| 114 | + 'maintenance-checkSyntax-error-nofile' => 'Error: can\'t find file or directory $1', #$1=file or directory path |
| 115 | + 'maintenance-checkSyntax-error-cantopen' => 'Can\'t open file $1', #$1=filename |
| 116 | + 'maintenance-checkSyntax-error-svnerr' => 'Error retrieving list from Subversion!', |
| 117 | + // checkUsernames |
| 118 | + 'maintenance-checkUsernames' => 'Use this form to show which usernames are invalid due to configuration changes. If nothing is listed after running this script, all usernames are valid', |
| 119 | + 'maintenance-checkUsernames-desc' => 'Verify that database usernames are actually valid', |
| 120 | + 'maintenance-checkUsernames-error-notvalid' => 'Invalid username: "$3" (user id $2)', #$1=wiki id, $2=user id, $3=username |
| 121 | + // cleanupCaps |
| 122 | + 'maintenance-cleanupCaps' => 'Use this form to fix broken pages caused by modifying $wgCapitalLinks', |
| 123 | + 'maintenance-cleanupCaps-desc' => 'Script to cleanup capitalization', |
| 124 | + 'maintenance-cleanupCaps-option-dry-run' => '{{int:maintenance-cleanupTable-dry-run}}', |
| 125 | + 'maintenance-cleanupCaps-option-namespace' => 'Namespace number to run caps cleanup on', |
| 126 | + 'maintenance-cleanupCaps-output-islower' => '"$1" already lowercase.', #$1=page name |
| 127 | + 'maintenance-cleanupCaps-output-clash' => '"$1" skipped; "$2" already exists', #$1=upppercase page name, $2=lowercase page name |
| 128 | + 'maintenance-cleanupCaps-output-dryrun' => '"$1" -> "$2": DRY RUN, NOT MOVED', #$1=upppercase page name, $2=lowercase page name |
| 129 | + 'maintenance-cleanupCaps-output-moved' => '"$1" -> "$2": $3', #$1=upppercase page name, $2=lowercase page name, $3=status of move (ok or not) |
| 130 | + 'maintenance-cleanupCaps-output-check' => '{{int:maintenance-cleanupTable-check}}', |
| 131 | + 'maintenance-cleanupCaps-output-checkfix' => '{{int:maintenance-cleanupTable-checkfix}}', |
| 132 | + 'maintenance-cleanupCaps-output-progress' => '{{int:maintenance-cleanupTable-progress|$1|$2|$3|$4|$5|$6|$7|$8|$9}}', |
| 133 | + 'maintenance-cleanupCaps-output-processing' => '{{int:maintenance-cleanupTable-processing|$1}}', |
| 134 | + 'maintenance-cleanupCaps-output-finished' => '{{int:maintenance-cleanupTable-check|$1|$2|$3}}', |
| 135 | + 'maintenance-cleanupCaps-error-missingparam' => '{{int:maintenance-cleanupTable-missingparam|$1|$2}}', |
| 136 | + 'maintenance-cleanupCaps-error-noneed' => '$wgCapitalLinks is on -- no need for caps links cleanup.', |
| 137 | + // cleanupImages |
| 138 | + // cleanupSpam |
| 139 | + // cleanupTitles |
| 140 | + // cleanupWatchlist |
| 141 | + // clear_interwiki_cache |
| 142 | + // clear_stats |
| 143 | + // convertLinks |
| 144 | + // convertUserOptions |
43 | 145 | // createAndPromote |
44 | | - 'maintenance-createAndPromote' => 'Use this form to create a new user and promote it to administrator. |
45 | | -Check the bureaucrat box if you wish to promote to bureaucrat as well', |
| 146 | + 'maintenance-createAndPromote' => 'Use this form to create a new user and promote it to administrator. Check the bureaucrat box if you wish to promote to bureaucrat as well', |
| 147 | + 'maintenance-createAndPromote-desc' => 'Create a user and promote to administrator status', |
| 148 | + 'maintenance-createAndPromote-option-bureaucrat' => 'Promote user to bureaucrat status', |
| 149 | + // deleteArchivedFiles |
| 150 | + // deleteArchivedRevisions |
46 | 151 | // deleteBatch |
47 | | - 'maintenance-deleteBatch' => 'Use this form to mass-delete pages. |
48 | | -Put only one page per line', |
| 152 | + 'maintenance-deleteBatch' => 'Use this form to mass-delete pages. Put only one page per line', |
| 153 | + 'maintenance-deleteBatch-desc' => 'Mass-delete pages', |
| 154 | + // deleteDefaultMessages |
| 155 | + // deleteImageMemcached |
| 156 | + // deleteOldRevisions |
| 157 | + // deleteOrphanedRevisions |
49 | 158 | // deleteRevision |
50 | | - 'maintenance-deleteRevision' => 'Use this form to mass-delete revisions. |
51 | | -Put only one revision number per line', |
| 159 | + 'maintenance-deleteRevision' => 'Use this form to mass-delete revisions. Put only one revision number per line', |
| 160 | + 'maintenance-deleteRevision-desc' => 'Remove revisions from the database', |
| 161 | + // deleteSelfExternals |
| 162 | + // dumpLinks |
| 163 | + // dumpSisterSites |
| 164 | + // dumpUploads |
| 165 | + // edit |
| 166 | + // fetchText |
| 167 | + // findhooks |
| 168 | + // fixSlaveDesync |
| 169 | + // fixTimestamps |
| 170 | + // fixUserRegistration |
| 171 | + // generateSitemap |
| 172 | + // getLagTimes |
| 173 | + // getSlaveServer |
| 174 | + // getText |
| 175 | + // httpSessionDownload |
52 | 176 | // initEditCount |
53 | 177 | 'maintenance-initEditCount' => '', |
| 178 | + 'maintenance-initEditCount-desc' => 'Recalculate the edit counts of users', |
54 | 179 | // initStats |
55 | 180 | 'maintenance-initStats' => 'Use this form to recalculate site statistics, specifying if you want to recalculate page views as well', |
| 181 | + 'maintenance-initStats-desc' => 'Recalculate site statistics', |
| 182 | + // lag |
| 183 | + // mctest |
| 184 | + // mergeMessageFileList |
| 185 | + // migrateUserGroup |
| 186 | + // minify |
56 | 187 | // moveBatch |
57 | | - 'maintenance-moveBatch' => 'Use this form to mass-move pages. |
58 | | -Each line should specify a source page and destination page separated by a pipe', |
| 188 | + 'maintenance-moveBatch' => 'Use this form to mass-move pages. Each line should specify a source page and destination page separated by a pipe', |
| 189 | + 'maintenance-moveBatch-desc' => 'Mass-move pages', |
| 190 | + // namespaceDupes |
| 191 | + // nextJobDB |
| 192 | + // nukeNS |
| 193 | + // nukePage |
| 194 | + // orphans |
| 195 | + // patchSql |
| 196 | + // populateCategory |
| 197 | + // populateLogSearch |
| 198 | + // populateLogUsertext |
| 199 | + // populateParentId |
| 200 | + // populateRevisionLength |
| 201 | + // populateSha1 |
| 202 | + // protect |
| 203 | + // purgeList |
| 204 | + // purgeOldText |
| 205 | + // reassignEdits |
| 206 | + 'maintenance-reassignEdits-desc' => 'Reassign edits from one user to another', |
| 207 | + // rebuildall |
| 208 | + // rebuildFileCache |
| 209 | + // rebuildLocalisationCache |
| 210 | + // rebuildmessages |
| 211 | + // rebuildrecentchanges |
| 212 | + // rebuildtextindex |
| 213 | + // refreshCategoryCounts |
| 214 | + // refreshImageCount |
| 215 | + // refreshLinks |
| 216 | + // removeUnusedAccounts |
| 217 | + // renameDbPrefix |
| 218 | + // renderDump |
| 219 | + // rollbackEdits |
| 220 | + // runBatchedQuery |
59 | 221 | // runJobs |
60 | 222 | 'maintenance-runJobs' => '', |
| 223 | + 'maintenance-runJobs-desc' => 'Run jobs in the job queue', |
| 224 | + 'maintenance-runJobs-option-maxjobs' => 'Maximum number of jobs to run', |
| 225 | + 'maintenance-runJobs-option-type' => 'Type of job to run', |
| 226 | + 'maintenance-runJobs-option-procs' => 'Number of processes to use', #currently not used |
| 227 | + 'maintenance-runJobs-option-exclusive' => 'Run only one exclusive runJobs script at a time. Timeout is 1800 seconds.', |
| 228 | + 'maintenance-runJobs-output-job' => '{{int:maintenance-generic-notrans|$1}}', #$1=job result |
| 229 | + 'maintenance-runJobs-error-invalidprocs' => 'You must specify between 1 and 1000 processes', #currently not used |
61 | 230 | // showJobs |
62 | 231 | 'maintenance-showJobs' => '', |
| 232 | + 'maintenance-showJobs-desc' => 'Show a list of jobs pending in the job queue', |
| 233 | + 'maintenance-showJobs-option-group' => 'Show number of jobs per job type', |
| 234 | + 'maintenance-showJobs-output-job' => '{{int:maintenance-generic-notrans|$1}}', #$1=job info |
| 235 | + // showStats |
| 236 | + // sql |
| 237 | + 'maintenance-sql' => 'Use this form to execute a SQL query on the database.', |
| 238 | + 'maintenance-sql-desc' => 'Execute an SQL query', |
| 239 | + 'maintenance-sql-option-file' => 'SQL to execute', |
| 240 | + 'maintenance-sql-output-row' => '{{int:maintenance-generic-notrans|$1}}', #$1=print_r result of row |
| 241 | + 'maintenance-sql-output-aff' => 'Query OK, $1 {{PLURAL:$1|row|rows}} affected', |
| 242 | + 'maintenance-sql-error-cantopen' => 'Unable to open input file', |
| 243 | + 'maintenance-sql-error-sql' => '{{int:maintenance-generic-notrans|$1}}', #$1=sql error |
| 244 | + // sqlite |
63 | 245 | // stats |
64 | 246 | 'maintenance-stats' => '', |
65 | | - // invalid type |
66 | | - 'maintenance-invalidtype' => 'Invalid type!', |
67 | | - // changePassword + createAndPromote |
68 | | - 'maintenance-name' => 'Username', |
69 | | - 'maintenance-password' => 'Password', |
70 | | - // createAndPromote |
71 | | - 'maintenance-bureaucrat' => 'Promote user to bureaucrat status', |
72 | | - // deleteBatch, moveBatch, etc. |
73 | | - 'maintenance-reason' => 'Reason', |
| 247 | + 'maintenance-stats-desc' => 'Show Memcached statistics', |
| 248 | + // undelete |
| 249 | + // updateArticleCount |
| 250 | + // updateDoubleWidthSearch |
| 251 | + // updateRestrictions |
| 252 | + // updateSearchIndex |
| 253 | + // updateSpecialPages |
| 254 | + // waitForSlave |
| 255 | +##########---------- UNSORTED AND/OR OLD MESSAGES BELOW THIS POINT ----------########## |
| 256 | + // eval |
| 257 | + 'maintenance-eval' => 'Use this form to evaluate PHP code in the MediaWiki environment.', |
| 258 | + 'maintenance-eval-desc' => 'Evaluate PHP code in the MediaWiki environment', |
74 | 259 | // initStats |
75 | 260 | 'maintenance-update' => 'Use UPDATE when updating a table? Unchecked uses DELETE/INSERT instead.', |
76 | 261 | 'maintenance-noviews' => 'Check this to prevent updating the number of pageviews', |
77 | | - // all scripts |
78 | | - 'maintenance-confirm' => 'Confirm', |
79 | 262 | // createAndPromote, perhaps others |
80 | 263 | 'maintenance-invalidname' => 'Invalid username!', |
81 | 264 | // all scripts |
82 | | - 'maintenance-success' => '$1 ran successfully!', |
| 265 | + 'maintenance-output-success' => '$1 ran successfully!', |
83 | 266 | // createAndPromote |
84 | 267 | 'maintenance-userexists' => 'User already exists!', |
85 | 268 | // deleteBatch, moveBatch, perhaps others |
— | — | @@ -91,11 +274,6 @@ |
92 | 275 | // deleteRevisions |
93 | 276 | 'maintenance-revdelete' => 'Deleting {{PLURAL:$3|revision|revisions}} $1 from wiki $2', |
94 | 277 | 'maintenance-revnotfound' => 'Revision $1 not found!', |
95 | | - // sql |
96 | | - 'maintenance-sql' => 'Use this form to execute a SQL query on the database.', |
97 | | - 'maintenance-sql-aff' => 'Affected rows: $1', |
98 | | - 'maintenance-sql-res' => '$1 {{PLURAL:$1|row|rows}} returned: |
99 | | -$2', |
100 | 278 | // stats |
101 | 279 | 'maintenance-stats-edits' => 'Number of edits: $1', |
102 | 280 | 'maintenance-stats-articles' => 'Number of pages in the main namespace: $1', |
— | — | @@ -128,8 +306,6 @@ |
129 | 307 | 'maintenance-memc-updates' => 'updates:', |
130 | 308 | 'maintenance-memc-uncacheable' => 'uncacheable:', |
131 | 309 | 'maintenance-memc-diffcache' => 'Diff Cache', |
132 | | - // eval |
133 | | - 'maintenance-eval' => 'Use this form to evaluate PHP code in the MediaWiki environment.', |
134 | 310 | // reassignEdits |
135 | 311 | 'maintenance-reassignEdits' => 'Use this form to reassign edits from one user to another.', |
136 | 312 | 'maintenance-re-from' => 'Name of the user to assign edits from', |
— | — | @@ -154,11 +330,10 @@ |
155 | 331 | * @author Lloffiwr |
156 | 332 | * @author Purodha |
157 | 333 | * @author Siebrand |
158 | | - * @author The Evil IP address |
159 | 334 | * @author Translationista |
160 | 335 | */ |
161 | 336 | $messages['qqq'] = array( |
162 | | - 'maintenance-desc' => '{{desc}}', |
| 337 | + 'maintenance-desc' => 'Short description of the Maintenance extension, shown in [[Special:Version]]. Do not translate or change links.', |
163 | 338 | 'right-maintenance' => '{{doc-right}}', |
164 | 339 | 'maintenance-name' => '{{Identical|Username}}', |
165 | 340 | 'maintenance-password' => '{{Identical|Password}}', |
— | — | @@ -166,7 +341,7 @@ |
167 | 342 | 'maintenance-update' => "This message appears next to a checkbox. 'Unchecked' means that the checkbox has not been 'checked'. Words having the same meaning as 'checked' in this sentence are 'marked', 'ticked' and 'selected'. |
168 | 343 | |
169 | 344 | Are UPDATE and DELETE/INSERT also translatable?", |
170 | | - 'maintenance-confirm' => '{{Identical|Confirm}}', |
| 345 | + 'maintenance-option-confirm' => '{{Identical|Confirm}}', |
171 | 346 | 'maintenance-deleted' => '{{Identical|Deleted}}', |
172 | 347 | 'maintenance-revdelete' => '* $1 is a list of revisions numbers |
173 | 348 | * $2 is the local wiki id (string containing database name and tables prefix, if any)', |
— | — | @@ -200,7 +375,7 @@ |
201 | 376 | 'maintenance-name' => 'Gebruikersnaam', |
202 | 377 | 'maintenance-password' => 'Wagwoord', |
203 | 378 | 'maintenance-reason' => 'Rede', |
204 | | - 'maintenance-confirm' => 'Bevestig', |
| 379 | + 'maintenance-option-confirm' => 'Bevestig', |
205 | 380 | 'maintenance-invalidname' => 'Ongeldige gebruikersnaam!', |
206 | 381 | 'maintenance-invalidtitle' => 'Ongeldige bladsynaam: "$1"!', |
207 | 382 | 'maintenance-deleted' => 'Geskrap', |
— | — | @@ -224,7 +399,7 @@ |
225 | 400 | * @author Juanpabl |
226 | 401 | */ |
227 | 402 | $messages['an'] = array( |
228 | | - 'maintenance-confirm' => 'Confirmar', |
| 403 | + 'maintenance-option-confirm' => 'Confirmar', |
229 | 404 | ); |
230 | 405 | |
231 | 406 | /** Arabic (العربية) |
— | — | @@ -234,7 +409,7 @@ |
235 | 410 | */ |
236 | 411 | $messages['ar'] = array( |
237 | 412 | 'maintenance' => 'تشغيل سكريبتات الصيانة', |
238 | | - 'maintenance-desc' => '[[Special:Maintenance|واجهة وب]] لسكربتات صيانة مختلفة', |
| 413 | + 'maintenance-desc' => '[[Special:Maintenance|واجهة ويب]] لسكريبتات صيانة مختلفة', |
239 | 414 | 'right-maintenance' => 'تشغيل سكريبتات الصيانة من خلال [[Special:Maintenance]]', |
240 | 415 | 'maintenance-backlink' => 'الرجوع إلى اختيار السكريبت', |
241 | 416 | 'maintenance-header' => 'من فضلك اختر سكريبت بالأسفل للتنفيذ. |
— | — | @@ -262,16 +437,16 @@ |
263 | 438 | 'maintenance-initStats' => 'استخدم هذه الاستمارة لإعادة حساب إحصاءات الموقع، محددا ما إذا كنت ترغب في إعادة حساب مشاهدات الصفحات أيضا', |
264 | 439 | 'maintenance-moveBatch' => 'استخدم هذه الاستمارة لنقل الصفحات بشكل كمي. |
265 | 440 | كل سطر ينبغي أن يحدد صفحة مصدر وصفحة هدف مفصولين ببايب', |
266 | | - 'maintenance-invalidtype' => 'نوع غير صحيح!', |
| 441 | + 'maintenance-error-invalidtype' => 'نوع غير صحيح!', |
267 | 442 | 'maintenance-name' => 'اسم مستخدم', |
268 | 443 | 'maintenance-password' => 'كلمة السر', |
269 | 444 | 'maintenance-bureaucrat' => 'ترقية مستخدم إلى حالة بيروقراط', |
270 | 445 | 'maintenance-reason' => 'سبب', |
271 | 446 | 'maintenance-update' => 'استخدم UPDATE عند تحديث جدول غير المعلم يستخدم DELETE/INSERT بدلا من ذلك.', |
272 | 447 | 'maintenance-noviews' => 'علم على هذا لمنع تحديث عدد عرض الصفحات', |
273 | | - 'maintenance-confirm' => 'تأكيد', |
| 448 | + 'maintenance-option-confirm' => 'تأكيد', |
274 | 449 | 'maintenance-invalidname' => 'اسم مستخدم غير صحيح!', |
275 | | - 'maintenance-success' => '$1 عمل بنجاح!', |
| 450 | + 'maintenance-output-success' => '$1 عمل بنجاح!', |
276 | 451 | 'maintenance-userexists' => 'المستخدم موجود حاليا!', |
277 | 452 | 'maintenance-invalidtitle' => 'عنوان غير صحيح "$1"!', |
278 | 453 | 'maintenance-titlenoexist' => 'العنوان المحدد ("$1") غير موجود!', |
— | — | @@ -380,16 +555,16 @@ |
381 | 556 | 'maintenance-initStats' => 'استخدم هذه الإستمارة لإعادة حساب إحصاءات الموقع، محددا ما إذا كنت ترغب فى إعادة حساب مشاهدات الصفحات أيضا', |
382 | 557 | 'maintenance-moveBatch' => 'استخدم هذه الإستمارة لنقل الصفحات بشكل كمى. |
383 | 558 | كل سطر ينبغى أن يحدد صفحة مصدر وصفحة هدف مفصولين ببايب', |
384 | | - 'maintenance-invalidtype' => 'نوع غير صحيح!', |
| 559 | + 'maintenance-error-invalidtype' => 'نوع غير صحيح!', |
385 | 560 | 'maintenance-name' => 'اسم يوزر', |
386 | 561 | 'maintenance-password' => 'كلمة السر', |
387 | 562 | 'maintenance-bureaucrat' => 'ترقية مستخدم إلى حالة بيروقراط', |
388 | 563 | 'maintenance-reason' => 'سبب', |
389 | 564 | 'maintenance-update' => 'استخدم UPDATE عند تحديث جدول غير المعلم يستخدم DELETE/INSERT بدلا من ذلك.', |
390 | 565 | 'maintenance-noviews' => 'علم على هذا لمنع تحديث عدد عرض الصفحات', |
391 | | - 'maintenance-confirm' => 'تأكيد', |
| 566 | + 'maintenance-option-confirm' => 'تأكيد', |
392 | 567 | 'maintenance-invalidname' => 'اسم يوزر مش صحيح !', |
393 | | - 'maintenance-success' => '$1 عمل بنجاح!', |
| 568 | + 'maintenance-output-success' => '$1 عمل بنجاح!', |
394 | 569 | 'maintenance-userexists' => 'اليوزر موجود دلوقتى!', |
395 | 570 | 'maintenance-invalidtitle' => 'عنوان غير صحيح "$1"!', |
396 | 571 | 'maintenance-titlenoexist' => 'العنوان المحدد ("$1") غير موجود!', |
— | — | @@ -445,14 +620,6 @@ |
446 | 621 | 'maintenance-re-re' => 'جارى إعادة إلحاق التعديلات... تم', |
447 | 622 | ); |
448 | 623 | |
449 | | -/** Belarusian (Беларуская) |
450 | | - * @author Тест |
451 | | - */ |
452 | | -$messages['be'] = array( |
453 | | - 'maintenance-reason' => 'Прычына', |
454 | | - 'maintenance-confirm' => 'Пацвердзіць', |
455 | | -); |
456 | | - |
457 | 624 | /** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) |
458 | 625 | * @author EugeneZelenko |
459 | 626 | * @author Jim-by |
— | — | @@ -487,16 +654,16 @@ |
488 | 655 | 'maintenance-initStats' => 'Выкарыстоўвайце гэтую форму для перападліку статыстыкі сайта. Пазначце, калі Вы таксама жадаеце перападлічыць прагляд старонак', |
489 | 656 | 'maintenance-moveBatch' => 'Выкарыстоўвайце гэтую форму для масавага пераносу старонак. |
490 | 657 | У кожным радку павінна быць крынічная старонка і мэтавая старонка, падзеленыя сымбалем «|»', |
491 | | - 'maintenance-invalidtype' => 'Няслушны тып!', |
| 658 | + 'maintenance-error-invalidtype' => 'Няслушны тып!', |
492 | 659 | 'maintenance-name' => 'Імя ўдзельніка', |
493 | 660 | 'maintenance-password' => 'Пароль', |
494 | 661 | 'maintenance-bureaucrat' => 'Надаць удзельніку статус бюракрата', |
495 | 662 | 'maintenance-reason' => 'Прычына', |
496 | 663 | 'maintenance-update' => 'Выкарыстоўвайце UPDATE для абнаўленьня табліцы? Паспрабуйце выкарыстоўваць замест гэтага DELETE/INSERT.', |
497 | 664 | 'maintenance-noviews' => 'Пазначце гэта, каб не абнаўляць колькасьць праглядаў старонак', |
498 | | - 'maintenance-confirm' => 'Пацьвердзіць', |
| 665 | + 'maintenance-option-confirm' => 'Пацьвердзіць', |
499 | 666 | 'maintenance-invalidname' => 'Няслушнае імя ўдзельніка!', |
500 | | - 'maintenance-success' => '$1 пасьпяхова запушчаны!', |
| 667 | + 'maintenance-output-success' => '$1 пасьпяхова запушчаны!', |
501 | 668 | 'maintenance-userexists' => 'Удзельнік ужо існуе!', |
502 | 669 | 'maintenance-invalidtitle' => 'Няслушная назва «$1»!', |
503 | 670 | 'maintenance-titlenoexist' => 'Пазначаная назва («$1») не існуе!', |
— | — | @@ -575,16 +742,16 @@ |
576 | 743 | Всеки ред трябва да съдържа по един номер на версия', |
577 | 744 | 'maintenance-moveBatch' => 'Този формуляр служи за масово преместване на страници. |
578 | 745 | Всеки ред трябва да съдържа основна страница и целева страница, разделени с отвесна черта', |
579 | | - 'maintenance-invalidtype' => 'Невалиден тип!', |
| 746 | + 'maintenance-error-invalidtype' => 'Невалиден тип!', |
580 | 747 | 'maintenance-name' => 'Потребителско име', |
581 | 748 | 'maintenance-password' => 'Парола', |
582 | 749 | 'maintenance-bureaucrat' => 'Предоставяне на права на бюрократ', |
583 | 750 | 'maintenance-reason' => 'Причина', |
584 | 751 | 'maintenance-update' => 'Използване на UPDATE при обновяване на таблиците? Без отметка се използва DELETE/INSERT.', |
585 | 752 | 'maintenance-noviews' => 'Поставянето на отметка ще спре обновяването на броя прегледи на страниците', |
586 | | - 'maintenance-confirm' => 'Потвърждаване', |
| 753 | + 'maintenance-option-confirm' => 'Потвърждаване', |
587 | 754 | 'maintenance-invalidname' => 'Невалидно потребителско име!', |
588 | | - 'maintenance-success' => '$1 беше изпълнен успешно!', |
| 755 | + 'maintenance-output-success' => '$1 беше изпълнен успешно!', |
589 | 756 | 'maintenance-userexists' => 'Този потребител вече съществува!', |
590 | 757 | 'maintenance-invalidtitle' => 'Невалидно заглавие „$1“!', |
591 | 758 | 'maintenance-titlenoexist' => 'Посоченото заглавие („$1“) не съществува!', |
— | — | @@ -663,7 +830,7 @@ |
664 | 831 | 'maintenance-noviews' => 'Askit kement-mañ evit enebiñ ouzh hizivadenn an niver a weladennoù evit ar pajennoù.', |
665 | 832 | 'maintenance-confirm' => 'Kadarnaat', |
666 | 833 | 'maintenance-invalidname' => 'Anv implijer fall !', |
667 | | - 'maintenance-success' => '$1 zo aet da benn vat !', |
| 834 | + 'maintenance-output-success' => '$1 zo aet da benn vat !', |
668 | 835 | 'maintenance-userexists' => 'An implijer zo anezhañ dija !', |
669 | 836 | 'maintenance-invalidtitle' => 'Titl fall "$1" !', |
670 | 837 | 'maintenance-titlenoexist' => 'N\'eus ket eus an titl bet lakaet ("$1") !', |
— | — | @@ -752,16 +919,16 @@ |
753 | 920 | 'maintenance-initStats' => 'Koristite ovaj obrazac za ponovo računanje statistika sajta, navodeći da li želite i ponovo računanje pregleda stranice', |
754 | 921 | 'maintenance-moveBatch' => 'Koristite ovaj obrazac za masovno premještanje stranica. |
755 | 922 | Svaka linija treba navesti izvornu stranicu i odredišnu stranicu razdvojene uspravnom linijom', |
756 | | - 'maintenance-invalidtype' => 'Nevaljan tip!', |
| 923 | + 'maintenance-error-invalidtype' => 'Nevaljan tip!', |
757 | 924 | 'maintenance-name' => 'Korisničko ime', |
758 | 925 | 'maintenance-password' => 'Šifra', |
759 | 926 | 'maintenance-bureaucrat' => 'Unaprijedi korisnika u birokratu', |
760 | 927 | 'maintenance-reason' => 'Razlog', |
761 | 928 | 'maintenance-update' => 'Koristite UPDATE kada ažurirate tabelu? Umjesto toga ukloni upotrebu DELETE/INSERT.', |
762 | 929 | 'maintenance-noviews' => 'Odaberite ovo za prevenciju ažuriranja broja pogleda na stranicu', |
763 | | - 'maintenance-confirm' => 'Potvrdi', |
| 930 | + 'maintenance-option-confirm' => 'Potvrdi', |
764 | 931 | 'maintenance-invalidname' => 'Nevaljano korisničko ime!', |
765 | | - 'maintenance-success' => '$1 je bio pokrenut uspješno!', |
| 932 | + 'maintenance-output-success' => '$1 je bio pokrenut uspješno!', |
766 | 933 | 'maintenance-userexists' => 'Korisnik već postoji!', |
767 | 934 | 'maintenance-invalidtitle' => 'Nevaljan naslov "$1"!', |
768 | 935 | 'maintenance-titlenoexist' => 'Navedeni naslov ("$1") ne postoji!', |
— | — | @@ -825,7 +992,7 @@ |
826 | 993 | 'maintenance-changePassword-desc' => "Canvia la contrasenya d'un usuari", |
827 | 994 | 'maintenance-deleteBatch-desc' => 'Eliminació massiva de pàgines', |
828 | 995 | 'maintenance-reason' => 'Motiu', |
829 | | - 'maintenance-confirm' => 'Confirma', |
| 996 | + 'maintenance-option-confirm' => 'Confirma', |
830 | 997 | 'maintenance-invalidname' => "Nom d'usuari no vàlid!", |
831 | 998 | 'maintenance-deleted' => 'ELIMINAT', |
832 | 999 | 'maintenance-stats-edits' => "Nombre d'edicions: $1", |
— | — | @@ -838,18 +1005,6 @@ |
839 | 1006 | 'maintenance-reason' => 'Бахьан', |
840 | 1007 | ); |
841 | 1008 | |
842 | | -/** Sorani (کوردی) */ |
843 | | -$messages['ckb'] = array( |
844 | | - 'maintenance-reason' => 'هۆکار', |
845 | | - 'maintenance-confirm' => 'پشتدار بکەرەوە', |
846 | | -); |
847 | | - |
848 | | -/** Czech (Česky) */ |
849 | | -$messages['cs'] = array( |
850 | | - 'maintenance-password' => 'Heslo', |
851 | | - 'maintenance-confirm' => 'Potvrdit', |
852 | | -); |
853 | | - |
854 | 1009 | /** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ) |
855 | 1010 | * @author ОйЛ |
856 | 1011 | */ |
— | — | @@ -900,16 +1055,16 @@ |
901 | 1056 | 'maintenance-initStats' => 'Verwende diese Maske, um die Seitenstatistiken neu zu berechnen und gib dabei an, ob du auch die Seitenaufrufe neu berechnen möchtest.', |
902 | 1057 | 'maintenance-moveBatch' => 'Verwende diese Maske, um viele Seiten zu verschieben. |
903 | 1058 | Jede Zeile sollte eine Quellseite und eine Zielseite angeben, durch einen Senkrechtstrich getrennt', |
904 | | - 'maintenance-invalidtype' => 'Ungültiger Typ!', |
| 1059 | + 'maintenance-error-invalidtype' => 'Ungültiger Typ!', |
905 | 1060 | 'maintenance-name' => 'Benutzername', |
906 | 1061 | 'maintenance-password' => 'Passwort', |
907 | 1062 | 'maintenance-bureaucrat' => 'Benutzer zum Bürokraten machen', |
908 | 1063 | 'maintenance-reason' => 'Grund', |
909 | 1064 | 'maintenance-update' => 'UPDATE zum Aktualisieren von Tabellen verwenden? Wenn nicht aktiviert, wird DELETE/INSERT verwendet.', |
910 | 1065 | 'maintenance-noviews' => 'Aktualisierung des Seitenaufrufszählers deaktivieren', |
911 | | - 'maintenance-confirm' => 'Bestätigen', |
| 1066 | + 'maintenance-option-confirm' => 'Bestätigen', |
912 | 1067 | 'maintenance-invalidname' => 'Ungültiger Benutzername!', |
913 | | - 'maintenance-success' => '$1 erfolgreich ausgeführt!', |
| 1068 | + 'maintenance-output-success' => '$1 erfolgreich ausgeführt!', |
914 | 1069 | 'maintenance-userexists' => 'Benutzer existiert bereits!', |
915 | 1070 | 'maintenance-invalidtitle' => 'Ungültiger Titel „$1“!', |
916 | 1071 | 'maintenance-titlenoexist' => 'Der angegebene Titel („$1“) existiert nicht!', |
— | — | @@ -1018,16 +1173,16 @@ |
1019 | 1174 | 'maintenance-initStats' => 'Wužyj toś ten formular, aby znowego woblicył statistiku sedła. Pódaj, lěc coš zwobraznjenja boka teke znowego woblicyś.', |
1020 | 1175 | 'maintenance-moveBatch' => 'Wužyj toś ten formular, aby pśesunuł boki z kopicami. |
1021 | 1176 | Kužda smužka by měła žrědłowy bok a celowy bok pódaś, kótrejž stej pśez znamješko rołka (|) wótźělonej', |
1022 | | - 'maintenance-invalidtype' => 'Njepłaśiwy typ!', |
| 1177 | + 'maintenance-error-invalidtype' => 'Njepłaśiwy typ!', |
1023 | 1178 | 'maintenance-name' => 'Wužywarske mě', |
1024 | 1179 | 'maintenance-password' => 'Gronidło', |
1025 | 1180 | 'maintenance-bureaucrat' => 'Do statusa běrokrata pózwignuś', |
1026 | 1181 | 'maintenance-reason' => 'Pśicyna', |
1027 | 1182 | 'maintenance-update' => 'UPDATE za aktualizěrowanje tabele wužywaś? Jolic to njejo wubrane, DELETE/INSERT se wužywa.', |
1028 | 1183 | 'maintenance-noviews' => 'Wubjeŕ to, aby zajźował aktualizaciji licby zwobraznjenjow boka', |
1029 | | - 'maintenance-confirm' => 'Wobkšuśiś', |
| 1184 | + 'maintenance-option-confirm' => 'Wobkšuśiś', |
1030 | 1185 | 'maintenance-invalidname' => 'Njepłaśiwe wužywarske mě!', |
1031 | | - 'maintenance-success' => '$1 wuspěšnje wuwjeźony!', |
| 1186 | + 'maintenance-output-success' => '$1 wuspěšnje wuwjeźony!', |
1032 | 1187 | 'maintenance-userexists' => 'Wužywaŕ južo eksistěrujo!', |
1033 | 1188 | 'maintenance-invalidtitle' => 'Njepłaśiwy titel "$1"!', |
1034 | 1189 | 'maintenance-titlenoexist' => 'Pódany titel ("$1") njeeksistěrujo!', |
— | — | @@ -1095,14 +1250,14 @@ |
1096 | 1251 | 'maintenance-initStats-desc' => 'Επανυπολογισμός των στατιστικών του ιστοτόπου', |
1097 | 1252 | 'maintenance-moveBatch-desc' => 'Μαζική μετακίνηση σελίδων', |
1098 | 1253 | 'maintenance-sql-desc' => 'Εκτέλεση ενός αιτήματος SQL', |
1099 | | - 'maintenance-invalidtype' => 'Μη έγκυρος τύπος!', |
| 1254 | + 'maintenance-error-invalidtype' => 'Μη έγκυρος τύπος!', |
1100 | 1255 | 'maintenance-name' => 'Όνομα χρήστη', |
1101 | 1256 | 'maintenance-password' => 'Κωδικός', |
1102 | 1257 | 'maintenance-bureaucrat' => 'Προαγωγή χρήστη σε γραφειοκράτη', |
1103 | 1258 | 'maintenance-reason' => 'Λόγος', |
1104 | | - 'maintenance-confirm' => 'Επιβεβαίωση', |
| 1259 | + 'maintenance-option-confirm' => 'Επιβεβαίωση', |
1105 | 1260 | 'maintenance-invalidname' => 'Μη έγκυρο όνομα χρήστη!', |
1106 | | - 'maintenance-success' => 'Το $1 έτρεξε επιτυχώς!', |
| 1261 | + 'maintenance-output-success' => 'Το $1 έτρεξε επιτυχώς!', |
1107 | 1262 | 'maintenance-userexists' => 'Ο χρήστης υπάρχει ήδη!', |
1108 | 1263 | 'maintenance-invalidtitle' => 'Μη έγκυρος τίτλος "$1"!', |
1109 | 1264 | 'maintenance-titlenoexist' => 'Ο τίτλος που δόθηκε ("$1") δεν υπάρχει!', |
— | — | @@ -1153,13 +1308,13 @@ |
1154 | 1309 | 'maintenance-deleteBatch-desc' => 'Amasforigi paĝojn', |
1155 | 1310 | 'maintenance-initStats-desc' => 'Rekalkuli retejan statistikon', |
1156 | 1311 | 'maintenance-moveBatch-desc' => 'Amasmovi paĝojn', |
1157 | | - 'maintenance-invalidtype' => 'Nevalida speco!', |
| 1312 | + 'maintenance-error-invalidtype' => 'Nevalida speco!', |
1158 | 1313 | 'maintenance-name' => 'Salutnomo', |
1159 | 1314 | 'maintenance-password' => 'Pasvorto', |
1160 | 1315 | 'maintenance-reason' => 'Kialo', |
1161 | | - 'maintenance-confirm' => 'Konfirmi', |
| 1316 | + 'maintenance-option-confirm' => 'Konfirmi', |
1162 | 1317 | 'maintenance-invalidname' => 'Nevalida salutnomo!', |
1163 | | - 'maintenance-success' => '$1 sukcesis!', |
| 1318 | + 'maintenance-output-success' => '$1 sukcesis!', |
1164 | 1319 | 'maintenance-userexists' => 'Uzanto jam ekzistas!', |
1165 | 1320 | 'maintenance-invalidtitle' => 'Nevalida titolo "$1"!', |
1166 | 1321 | 'maintenance-failed' => 'MALSUKCESIS', |
— | — | @@ -1228,16 +1383,16 @@ |
1229 | 1384 | 'maintenance-initStats' => 'Usar este formulario para recalcular estadísticas del sitio, especificando si deseas recalcular vistas de página también', |
1230 | 1385 | 'maintenance-moveBatch' => 'Use este formulario para mover páginas en masa. |
1231 | 1386 | Cada línea debería especificar una página fuente y página destino separadas por una barra (“|”)', |
1232 | | - 'maintenance-invalidtype' => 'Tipo inválido!', |
| 1387 | + 'maintenance-error-invalidtype' => 'Tipo inválido!', |
1233 | 1388 | 'maintenance-name' => 'Nombre de usuario', |
1234 | 1389 | 'maintenance-password' => 'Contraseña', |
1235 | 1390 | 'maintenance-bureaucrat' => 'Promover usuario al status de burócrata', |
1236 | 1391 | 'maintenance-reason' => 'Motivo', |
1237 | 1392 | 'maintenance-update' => '¿Utilizar UPDATE cuando se actualiza una tabla? Si está desmarcado utiliza DELETE/INSERT en lugar de UPDATE.', |
1238 | 1393 | 'maintenance-noviews' => 'Verificar esto para evitar la actualización del número de vistas a la página', |
1239 | | - 'maintenance-confirm' => 'Confirmar', |
| 1394 | + 'maintenance-option-confirm' => 'Confirmar', |
1240 | 1395 | 'maintenance-invalidname' => 'Nombre de usuario inválido!', |
1241 | | - 'maintenance-success' => '$1 se ejecutó con éxito!', |
| 1396 | + 'maintenance-output-success' => '$1 se ejecutó con éxito!', |
1242 | 1397 | 'maintenance-userexists' => 'Usuario ya existe!', |
1243 | 1398 | 'maintenance-invalidtitle' => 'Título inválido "$1"!', |
1244 | 1399 | 'maintenance-titlenoexist' => 'Título especificado ("$1") no existe!', |
— | — | @@ -1300,7 +1455,7 @@ |
1301 | 1456 | $messages['et'] = array( |
1302 | 1457 | 'maintenance-changePassword-desc' => 'Muuda kasutajate paroole', |
1303 | 1458 | 'maintenance-deleteBatch-desc' => 'Lehekülgede lauskustutamine', |
1304 | | - 'maintenance-invalidtype' => 'Vigane tüüp!', |
| 1459 | + 'maintenance-error-invalidtype' => 'Vigane tüüp!', |
1305 | 1460 | 'maintenance-name' => 'Kasutajanimi', |
1306 | 1461 | 'maintenance-password' => 'Parool', |
1307 | 1462 | 'maintenance-bureaucrat' => 'Eduta kasutajat bürokraadi staatusesse', |
— | — | @@ -1317,7 +1472,7 @@ |
1318 | 1473 | 'maintenance-password' => 'Pasahitza', |
1319 | 1474 | 'maintenance-bureaucrat' => 'Lankidea burokrata bihurtu', |
1320 | 1475 | 'maintenance-reason' => 'Arrazoia', |
1321 | | - 'maintenance-confirm' => 'Baieztatu', |
| 1476 | + 'maintenance-option-confirm' => 'Baieztatu', |
1322 | 1477 | 'maintenance-invalidname' => 'Lankide izen okerra!', |
1323 | 1478 | 'maintenance-deleted' => 'EZABATUA', |
1324 | 1479 | 'maintenance-memc-total' => 'guztira:', |
— | — | @@ -1363,16 +1518,16 @@ |
1364 | 1519 | 'maintenance-initStats' => 'Käytä tätä lomaketta sivuston tilastojen uudelleenlaskemiseen, määritellen myös, haluatko uudelleenlaskea sivujen näyttökerrat', |
1365 | 1520 | 'maintenance-moveBatch' => 'Käytä tätä lomaketta sivujen massasiirtoon. |
1366 | 1521 | Jokaisella rivillä tulisi olla lähdesivu ja kohdesivu pystyviivan erottamina', |
1367 | | - 'maintenance-invalidtype' => 'Kelvoton tyyppi!', |
| 1522 | + 'maintenance-error-invalidtype' => 'Kelvoton tyyppi!', |
1368 | 1523 | 'maintenance-name' => 'Käyttäjätunnus', |
1369 | 1524 | 'maintenance-password' => 'Salasana', |
1370 | 1525 | 'maintenance-bureaucrat' => 'Ylennä käyttäjä byrokraatiksi', |
1371 | 1526 | 'maintenance-reason' => 'Syy', |
1372 | 1527 | 'maintenance-update' => 'Käytä UPDATE-lausekkeita taulua päivitettäessä? Jos tätä ei ole valittu, DELETE/INSERT-lausekkeita käytetään sen sijaan.', |
1373 | 1528 | 'maintenance-noviews' => 'Valitse tämä estääksesi sivujen näyttökertojen päivittämisen', |
1374 | | - 'maintenance-confirm' => 'Vahvista', |
| 1529 | + 'maintenance-option-confirm' => 'Vahvista', |
1375 | 1530 | 'maintenance-invalidname' => 'Virheellinen käyttäjätunnus.', |
1376 | | - 'maintenance-success' => '$1 ajettiin onnistuneesti.', |
| 1531 | + 'maintenance-output-success' => '$1 ajettiin onnistuneesti.', |
1377 | 1532 | 'maintenance-userexists' => 'Käyttäjä on jo olemassa.', |
1378 | 1533 | 'maintenance-invalidtitle' => 'Kelvoton otsikko "$1"!', |
1379 | 1534 | 'maintenance-titlenoexist' => 'Määritellyn otsikon ("$1") mukaista artikkelia ei ole olemassa!', |
— | — | @@ -1466,16 +1621,16 @@ |
1467 | 1622 | 'maintenance-initStats' => 'Utilisez ce formulaire pour recalculer les statistiques du site, en indiquant, le cas échéant, si vous désirez le recalcul du nombre de visites par page.', |
1468 | 1623 | 'maintenance-moveBatch' => 'Utilisez ce formulaire pour déplacer en masse des pages. |
1469 | 1624 | Chaque ligne devra indiquer la page d’origine et celle de destination, lesquelles devront être séparées par un « <nowiki>|</nowiki> »', |
1470 | | - 'maintenance-invalidtype' => 'Type incorrect !', |
| 1625 | + 'maintenance-error-invalidtype' => 'Type incorrect !', |
1471 | 1626 | 'maintenance-name' => 'Nom d’utilisateur', |
1472 | 1627 | 'maintenance-password' => 'Mot de passe', |
1473 | 1628 | 'maintenance-bureaucrat' => 'Promouvoir l’utilisateur au statut de bureaucrate', |
1474 | 1629 | 'maintenance-reason' => 'Motif', |
1475 | 1630 | 'maintenance-update' => 'Voulez-vous utiliser la méthode « UPDATE » pour la mise à jour directe d’une table ? Décochez l’option pour utiliser plutôt « DELETE / INSERT » (suppression puis réinsertion).', |
1476 | 1631 | 'maintenance-noviews' => 'Cocher ceci pour empêcher la mise à jour du nombre de visites des pages.', |
1477 | | - 'maintenance-confirm' => 'Confirmer', |
| 1632 | + 'maintenance-option-confirm' => 'Confirmer', |
1478 | 1633 | 'maintenance-invalidname' => 'Nom d’utilisateur incorrect !', |
1479 | | - 'maintenance-success' => '$1 s’est déroulé avec succès !', |
| 1634 | + 'maintenance-output-success' => '$1 s’est déroulé avec succès !', |
1480 | 1635 | 'maintenance-userexists' => 'L’utilisateur existe déjà !', |
1481 | 1636 | 'maintenance-invalidtitle' => 'Titre incorrect « $1 » !', |
1482 | 1637 | 'maintenance-titlenoexist' => 'Le titre indiqué (« $1 ») n’existe pas !', |
— | — | @@ -1536,7 +1691,7 @@ |
1537 | 1692 | */ |
1538 | 1693 | $messages['frp'] = array( |
1539 | 1694 | 'maintenance-reason' => 'Rêson', |
1540 | | - 'maintenance-confirm' => 'Confirmar', |
| 1695 | + 'maintenance-option-confirm' => 'Confirmar', |
1541 | 1696 | 'maintenance-stats-pages' => 'Nombro de pâges : $1', |
1542 | 1697 | 'maintenance-stats-users' => 'Nombro d’utilisators : $1', |
1543 | 1698 | 'maintenance-stats-admins' => 'Nombro d’administrators : $1', |
— | — | @@ -1600,16 +1755,16 @@ |
1601 | 1756 | 'maintenance-initStats' => 'Use este formulario para volver calcular as estatísticas do sitio, especificando se tamén quere calcular de novo as vistas por páxina', |
1602 | 1757 | 'maintenance-moveBatch' => 'Use este formulario para mover páxinas en masa. |
1603 | 1758 | Cada liña debería especificar unha fonte e destino da páxina separados por unha barra (“|”)', |
1604 | | - 'maintenance-invalidtype' => 'Tipo inválido!', |
| 1759 | + 'maintenance-error-invalidtype' => 'Tipo inválido!', |
1605 | 1760 | 'maintenance-name' => 'Nome de usuario', |
1606 | 1761 | 'maintenance-password' => 'Contrasinal', |
1607 | 1762 | 'maintenance-bureaucrat' => 'Promover este usuario ao status de burócrata', |
1608 | 1763 | 'maintenance-reason' => 'Motivo', |
1609 | 1764 | 'maintenance-update' => 'Desexa usar ACTUALIZAR ao actualizar unha táboa? Se non marca a opción, usarase, no canto diso, BORRAR/INSERTAR.', |
1610 | 1765 | 'maintenance-noviews' => 'Comprove isto para previr a actualización do número de vistas por páxina', |
1611 | | - 'maintenance-confirm' => 'Confirmar', |
| 1766 | + 'maintenance-option-confirm' => 'Confirmar', |
1612 | 1767 | 'maintenance-invalidname' => 'Nome de usuario inválido!', |
1613 | | - 'maintenance-success' => '$1 executouse con éxito!', |
| 1768 | + 'maintenance-output-success' => '$1 executouse con éxito!', |
1614 | 1769 | 'maintenance-userexists' => 'O usuario xa existe!', |
1615 | 1770 | 'maintenance-invalidtitle' => 'Título inválido "$1"!', |
1616 | 1771 | 'maintenance-titlenoexist' => 'O título especificado ("$1") non existe!', |
— | — | @@ -1673,7 +1828,7 @@ |
1674 | 1829 | 'maintenance-name' => 'Ὄνομα χρωμένου', |
1675 | 1830 | 'maintenance-password' => 'Σύνθημα', |
1676 | 1831 | 'maintenance-reason' => 'Αἰτία', |
1677 | | - 'maintenance-confirm' => 'Κυροῦν', |
| 1832 | + 'maintenance-option-confirm' => 'Κυροῦν', |
1678 | 1833 | 'maintenance-failed' => 'ΑΠΕΤΕΥΧΘΗ', |
1679 | 1834 | 'maintenance-deleted' => 'ΔΙΕΓΡΑΦΗ', |
1680 | 1835 | 'maintenance-memc-requests' => 'Αἰτήσεις', |
— | — | @@ -1713,16 +1868,16 @@ |
1714 | 1869 | 'maintenance-initStats' => 'Nimm die Maschke go d Sytestatischtike nej z rächne un gib debyy aa, eb Du au d Syteufruef witt nej rächne.', |
1715 | 1870 | 'maintenance-moveBatch' => 'Nimm die Maschke go vil Syte verschiebe. |
1716 | 1871 | Jedi Zyyle sott e Quällsyten un e Ziilsyten aagee, dur e Sänkrächtstrich trännt', |
1717 | | - 'maintenance-invalidtype' => 'Nit giltige Typ!', |
| 1872 | + 'maintenance-error-invalidtype' => 'Nit giltige Typ!', |
1718 | 1873 | 'maintenance-name' => 'Benutzername', |
1719 | 1874 | 'maintenance-password' => 'Passwort', |
1720 | 1875 | 'maintenance-bureaucrat' => 'Benutzer zum Bürokrat mache', |
1721 | 1876 | 'maintenance-reason' => 'Grund', |
1722 | 1877 | 'maintenance-update' => 'UPDATE zum Aktualisiere vu Tabälle neh? Wänn nit aktiviert, wird DELETE/INSERT bruucht.', |
1723 | 1878 | 'maintenance-noviews' => 'Aktualisierig vum Sytenufruefzeller deaktiviere', |
1724 | | - 'maintenance-confirm' => 'Bstätige', |
| 1879 | + 'maintenance-option-confirm' => 'Bstätige', |
1725 | 1880 | 'maintenance-invalidname' => 'Nit giltige Benutzername!', |
1726 | | - 'maintenance-success' => '$1 erfolgrych uusgfiert!', |
| 1881 | + 'maintenance-output-success' => '$1 erfolgrych uusgfiert!', |
1727 | 1882 | 'maintenance-userexists' => 'Benutzer git s scho!', |
1728 | 1883 | 'maintenance-invalidtitle' => 'Nit giltige Titel „$1“!', |
1729 | 1884 | 'maintenance-titlenoexist' => 'Dr Titel („$1“), wu Du aagee hesch, git s nit!', |
— | — | @@ -1785,11 +1940,6 @@ |
1786 | 1941 | 'maintenance-name' => 'સભ્ય નામ', |
1787 | 1942 | ); |
1788 | 1943 | |
1789 | | -/** Hausa (هَوُسَ) */ |
1790 | | -$messages['ha'] = array( |
1791 | | - 'maintenance-reason' => 'Dalili', |
1792 | | -); |
1793 | | - |
1794 | 1944 | /** Hakka (Hak-kâ-fa) |
1795 | 1945 | * @author Hakka |
1796 | 1946 | */ |
— | — | @@ -1840,16 +1990,16 @@ |
1841 | 1991 | 'maintenance-initStats' => 'השתמשו בטופס זה כדי לחשב מחדש את סטטיסטיקות האתר, וציינו האם ברצונכם לחשב מחדש גם את סטטיסטיקות הצפיות בדפים', |
1842 | 1992 | 'maintenance-moveBatch' => 'השתמשו בטופס זה להעברה המונית של דפים. |
1843 | 1993 | כל שורה אמורה לציין דף מקור ודף יעד המופרדים ב־"|"', |
1844 | | - 'maintenance-invalidtype' => 'הסוג אינו תקין!', |
| 1994 | + 'maintenance-error-invalidtype' => 'הסוג אינו תקין!', |
1845 | 1995 | 'maintenance-name' => 'שם משתמש', |
1846 | 1996 | 'maintenance-password' => 'סיסמה', |
1847 | 1997 | 'maintenance-bureaucrat' => 'קידום משתמש למצב ביורוקרט', |
1848 | 1998 | 'maintenance-reason' => 'סיבה', |
1849 | 1999 | 'maintenance-update' => 'האם להשתמש ב־UPDATE לעדכון הטבלה? אם תבטלו את הסימון, ייעשה שימוש ב־DELETE/INSERT במקום זאת.', |
1850 | 2000 | 'maintenance-noviews' => 'סמנו זאת כדי למנוע את עדכון מספרי הצפיות בדפים', |
1851 | | - 'maintenance-confirm' => 'אישור', |
| 2001 | + 'maintenance-option-confirm' => 'אישור', |
1852 | 2002 | 'maintenance-invalidname' => 'שם משתמש בלתי תקין!', |
1853 | | - 'maintenance-success' => 'הסקריפט $1 רץ בהצלחה!', |
| 2003 | + 'maintenance-output-success' => 'הסקריפט $1 רץ בהצלחה!', |
1854 | 2004 | 'maintenance-userexists' => 'המשתמש כבר קיים!', |
1855 | 2005 | 'maintenance-invalidtitle' => 'הכותרת "$1" אינה תקינה!', |
1856 | 2006 | 'maintenance-titlenoexist' => 'הכותרת שצוינה ("$1") אינה קיימת!', |
— | — | @@ -1937,16 +2087,16 @@ |
1938 | 2088 | 'maintenance-initStats' => 'Koristite ovu stranicu za ponovno izračunavanje statistike, odredite ako želite izračunati i broj gledanja stranica također', |
1939 | 2089 | 'maintenance-moveBatch' => 'Koristite ovu stranicu za skupno premještanje stranica. |
1940 | 2090 | Svaki red mora sadržavati polazišnu stranicu i ciljnu stranicu odvojeno kosom crtom "|"', |
1941 | | - 'maintenance-invalidtype' => 'Neispravna vrsta!', |
| 2091 | + 'maintenance-error-invalidtype' => 'Neispravna vrsta!', |
1942 | 2092 | 'maintenance-name' => 'Suradničko ime', |
1943 | 2093 | 'maintenance-password' => 'Lozinka', |
1944 | 2094 | 'maintenance-bureaucrat' => 'Dodjeli suradniku pravo birokrata', |
1945 | 2095 | 'maintenance-reason' => 'Razlog', |
1946 | 2096 | 'maintenance-update' => 'Koristi UPDATE prilikom ažuriranja tablice? Neoznačeno umjesto toga koristi DELETE/INSERT.', |
1947 | 2097 | 'maintenance-noviews' => 'Označite ovo za sprečavanje ažuriranja broja gledanja stranica', |
1948 | | - 'maintenance-confirm' => 'Potvrdi', |
| 2098 | + 'maintenance-option-confirm' => 'Potvrdi', |
1949 | 2099 | 'maintenance-invalidname' => 'Nevaljano suradničko ime!', |
1950 | | - 'maintenance-success' => '$1 pokrenut uspješno!', |
| 2100 | + 'maintenance-output-success' => '$1 pokrenut uspješno!', |
1951 | 2101 | 'maintenance-userexists' => 'Suradnik već postoji!', |
1952 | 2102 | 'maintenance-invalidtitle' => 'Nevaljan naslov "$1"!', |
1953 | 2103 | 'maintenance-titlenoexist' => 'Određeni naslov ("$1") ne postoji!', |
— | — | @@ -2018,16 +2168,16 @@ |
2019 | 2169 | 'maintenance-initStats' => 'Wužij tutón formular, zo by statistiku sydła znowa wobličił. Podaj, hač chceš zwobraznjenja strony tež znowa wobličić', |
2020 | 2170 | 'maintenance-moveBatch' => 'Wužij tutón formular, zo by strony z masami přesunył. |
2021 | 2171 | Kóžda linka měła žórłowu stronu a cilowu stronu podać, wótdźělenej přez znamješko rołka (|)', |
2022 | | - 'maintenance-invalidtype' => 'Njepłaćiwy typ!', |
| 2172 | + 'maintenance-error-invalidtype' => 'Njepłaćiwy typ!', |
2023 | 2173 | 'maintenance-name' => 'Wužiwarske mjeno', |
2024 | 2174 | 'maintenance-password' => 'Hesło', |
2025 | 2175 | 'maintenance-bureaucrat' => 'Wužiwarja do statusa běrokrata pozběhnyć', |
2026 | 2176 | 'maintenance-reason' => 'Přičina', |
2027 | 2177 | 'maintenance-update' => 'Při aktualizowanju tabele UPDATE wužiwać? Jeli to njeje wubrane, so DELETE/INSERT město toho wužiwa.', |
2028 | 2178 | 'maintenance-noviews' => 'Wubjer to, zo by aktualizowanju ličby zwobraznjenjow strony zadźěwał', |
2029 | | - 'maintenance-confirm' => 'Wobkrućić', |
| 2179 | + 'maintenance-option-confirm' => 'Wobkrućić', |
2030 | 2180 | 'maintenance-invalidname' => 'Njepłaćiwe wužiwarske mjeno!', |
2031 | | - 'maintenance-success' => '$1 wuspěšnje wuwjedźeny!', |
| 2181 | + 'maintenance-output-success' => '$1 wuspěšnje wuwjedźeny!', |
2032 | 2182 | 'maintenance-userexists' => 'Wužiwar hižo eksistuje!', |
2033 | 2183 | 'maintenance-invalidtitle' => 'Njepłaćiwy titul "$1"!', |
2034 | 2184 | 'maintenance-titlenoexist' => 'Pódaty titul ("$1") njeeksistuje!', |
— | — | @@ -2117,16 +2267,16 @@ |
2118 | 2268 | 'maintenance-initStats' => 'Ezen űrlap segítségével újraszámoltathatod az oldal statisztikáit, valamint opcionálisan az oldalmegtekintések számát is', |
2119 | 2269 | 'maintenance-moveBatch' => 'Ezen űrlap segítségével tömegesen nevezhetsz át lapokat. |
2120 | 2270 | Minden sorban egy-egy forráslapnak és céllapnak kell szerepelnie, pipe ( | ) karakterrel elválasztva', |
2121 | | - 'maintenance-invalidtype' => 'Érvénytelen típus!', |
| 2271 | + 'maintenance-error-invalidtype' => 'Érvénytelen típus!', |
2122 | 2272 | 'maintenance-name' => 'Felhasználói név', |
2123 | 2273 | 'maintenance-password' => 'jelszó', |
2124 | 2274 | 'maintenance-bureaucrat' => 'Felhasználó előléptetése bürokratává', |
2125 | 2275 | 'maintenance-reason' => 'Indoklás', |
2126 | 2276 | 'maintenance-update' => 'Használja az UPDATE-et táblák frissítésekor? Ha nem pipálod ki, akkor DELETE/INSERT lesz használva helyette.', |
2127 | 2277 | 'maintenance-noviews' => 'Jelöld be ezt, ha nem szeretnéd frissíteni az oldalmegtekintések számát', |
2128 | | - 'maintenance-confirm' => 'Megerősítés', |
| 2278 | + 'maintenance-option-confirm' => 'Megerősítés', |
2129 | 2279 | 'maintenance-invalidname' => 'Érvénytelen felhasználói név!', |
2130 | | - 'maintenance-success' => '$1 sikeresen lefutott!', |
| 2280 | + 'maintenance-output-success' => '$1 sikeresen lefutott!', |
2131 | 2281 | 'maintenance-userexists' => 'A felhasználó már létezik!', |
2132 | 2282 | 'maintenance-invalidtitle' => 'Érvénytelen cím: „$1”!', |
2133 | 2283 | 'maintenance-titlenoexist' => 'A megadott cím („$1”) nem létezik!', |
— | — | @@ -2215,16 +2365,16 @@ |
2216 | 2366 | 'maintenance-initStats' => 'Usa iste formulario pro recalcular le statisticas del sito. Specifica si tu vole recalcular etiam le visitas de paginas.', |
2217 | 2367 | 'maintenance-moveBatch' => 'Usa iste formulario pro renominar paginas in massa. |
2218 | 2368 | Cata linea debe specificar un pagina de origine e un pagina de destination separate per un tubo ("<nowiki>|</nowiki>").', |
2219 | | - 'maintenance-invalidtype' => 'Typo invalide!', |
| 2369 | + 'maintenance-error-invalidtype' => 'Typo invalide!', |
2220 | 2370 | 'maintenance-name' => 'Nomine de usator', |
2221 | 2371 | 'maintenance-password' => 'Contrasigno', |
2222 | 2372 | 'maintenance-bureaucrat' => 'Promover le usator al stato de bureaucrate', |
2223 | 2373 | 'maintenance-reason' => 'Motivo', |
2224 | 2374 | 'maintenance-update' => 'Usar UPDATE pro actualisar un tabella? Dismarca pro usar DELETE/INSERT in vice.', |
2225 | 2375 | 'maintenance-noviews' => 'Marca isto pro impedir le actualisation del numero de visitas de paginas.', |
2226 | | - 'maintenance-confirm' => 'Confirmar', |
| 2376 | + 'maintenance-option-confirm' => 'Confirmar', |
2227 | 2377 | 'maintenance-invalidname' => 'Nomine de usator invalide!', |
2228 | | - 'maintenance-success' => '$1 se executava con successo!', |
| 2378 | + 'maintenance-output-success' => '$1 se executava con successo!', |
2229 | 2379 | 'maintenance-userexists' => 'Le usator existe ja!', |
2230 | 2380 | 'maintenance-invalidtitle' => 'Titulo invalide "$1"!', |
2231 | 2381 | 'maintenance-titlenoexist' => 'Le titulo specificate ("$1") non existe!', |
— | — | @@ -2316,16 +2466,16 @@ |
2317 | 2467 | 'maintenance-initStats' => 'Gunakan formulir ini untuk menghitung ulang statistik situs. Tentukan jika Anda ingin menghitung ulang juga tampilan halaman', |
2318 | 2468 | 'maintenance-moveBatch' => 'Gunakan formulir ini untuk menghapus massal halaman. |
2319 | 2469 | Setiap baris harus mencantumkan halaman sumber dan tujuan, dipisahkan dengan tanda pipa', |
2320 | | - 'maintenance-invalidtype' => 'Tipe tidak benar!', |
| 2470 | + 'maintenance-error-invalidtype' => 'Tipe tidak benar!', |
2321 | 2471 | 'maintenance-name' => 'Nama pengguna', |
2322 | 2472 | 'maintenance-password' => 'Kata sandi', |
2323 | 2473 | 'maintenance-bureaucrat' => 'Promosikan pengguna ke status birokrat', |
2324 | 2474 | 'maintenance-reason' => 'Alasan', |
2325 | 2475 | 'maintenance-update' => 'Gunakan UPDATE sewaktu memperbarui suatu tabel? Jika tidak, akan digunakan DELETE/INSERT.', |
2326 | 2476 | 'maintenance-noviews' => 'Centang ini untuk mencegah pembaruan jumlah tampilan halaman', |
2327 | | - 'maintenance-confirm' => 'Konfirmasi', |
| 2477 | + 'maintenance-option-confirm' => 'Konfirmasi', |
2328 | 2478 | 'maintenance-invalidname' => 'Nama pengguna tidak sah!', |
2329 | | - 'maintenance-success' => '$1 berjalan lancar!', |
| 2479 | + 'maintenance-output-success' => '$1 berjalan lancar!', |
2330 | 2480 | 'maintenance-userexists' => 'Pengguna sudah ada!', |
2331 | 2481 | 'maintenance-invalidtitle' => 'Judul "$1" tidak sah!', |
2332 | 2482 | 'maintenance-titlenoexist' => 'Judul yang dimaksud ("$1") tidak ada!', |
— | — | @@ -2381,11 +2531,9 @@ |
2382 | 2532 | 'maintenance-re-re' => 'Pengalihan suntingan{{int:ellipsis}} berhasil', |
2383 | 2533 | ); |
2384 | 2534 | |
2385 | | -/** Igbo (Igbo) |
2386 | | - * @author Ukabia |
2387 | | - */ |
| 2535 | +/** Igbo (Igbo) */ |
2388 | 2536 | $messages['ig'] = array( |
2389 | | - 'maintenance-password' => 'Okwúngáfè', |
| 2537 | + 'maintenance-password' => 'Mkpurụ okwu ejị a gafẹ', |
2390 | 2538 | 'maintenance-reason' => 'Mgbaghaputa:', |
2391 | 2539 | ); |
2392 | 2540 | |
— | — | @@ -2432,16 +2580,16 @@ |
2433 | 2581 | 'maintenance-initStats' => 'Usa questo modulo per ricalcolare le statistiche del sito, specificando se vuoi ricalcolare anche il numero di visualizzazioni per pagina', |
2434 | 2582 | 'maintenance-moveBatch' => 'Usa questo modulo per spostare pagine in blocco. |
2435 | 2583 | Ogni riga deve indicare una pagina di origine ed una di destinazione, separate da un pipe (|)', |
2436 | | - 'maintenance-invalidtype' => 'Tipo non valido', |
| 2584 | + 'maintenance-error-invalidtype' => 'Tipo non valido', |
2437 | 2585 | 'maintenance-name' => 'Nome utente', |
2438 | 2586 | 'maintenance-password' => 'Password', |
2439 | 2587 | 'maintenance-bureaucrat' => 'Promuovi utente a burocrate', |
2440 | 2588 | 'maintenance-reason' => 'Motivo', |
2441 | 2589 | 'maintenance-update' => "Usare l'istruzione UPDATE per l'aggiornamento delle tabelle? Se non selezionato, usa DELETE/INSERT.", |
2442 | 2590 | 'maintenance-noviews' => "Spuntare la casella per evitare l'aggiornamento del numero di visualizzazioni pagine", |
2443 | | - 'maintenance-confirm' => 'Conferma', |
| 2591 | + 'maintenance-option-confirm' => 'Conferma', |
2444 | 2592 | 'maintenance-invalidname' => 'Nome utente non valido!', |
2445 | | - 'maintenance-success' => '$1 eseguito con successo!', |
| 2593 | + 'maintenance-output-success' => '$1 eseguito con successo!', |
2446 | 2594 | 'maintenance-userexists' => 'Nome utente già esistente!', |
2447 | 2595 | 'maintenance-invalidtitle' => 'Titolo "$1" non valido!', |
2448 | 2596 | 'maintenance-titlenoexist' => 'Il titolo indicato ("$1") non esiste!', |
— | — | @@ -2526,16 +2674,16 @@ |
2527 | 2675 | 'maintenance-deleteRevision' => 'このフォームを使って版を一括削除する。1行に1版のみ書く', |
2528 | 2676 | 'maintenance-initStats' => 'このフォームを使ってサイト統計を再計算する。ページビューも同様に再計算したいか指定する', |
2529 | 2677 | 'maintenance-moveBatch' => 'このフォームを使ってページを一括移動する。各行には移動元と移動先ページをパイプで区切って指定する', |
2530 | | - 'maintenance-invalidtype' => '無効なタイプです!', |
| 2678 | + 'maintenance-error-invalidtype' => '無効なタイプです!', |
2531 | 2679 | 'maintenance-name' => '利用者名', |
2532 | 2680 | 'maintenance-password' => 'パスワード', |
2533 | 2681 | 'maintenance-bureaucrat' => '利用者をビューロクラットにする', |
2534 | 2682 | 'maintenance-reason' => '理由', |
2535 | 2683 | 'maintenance-update' => 'テーブルの更新に UPDATE を使いますか? 未チェックならば DELETE と INSERT を代わりに使います。', |
2536 | 2684 | 'maintenance-noviews' => 'ページビュー数の更新を避けるにはここをチェックする', |
2537 | | - 'maintenance-confirm' => '確認', |
| 2685 | + 'maintenance-option-confirm' => '確認', |
2538 | 2686 | 'maintenance-invalidname' => '無効な利用者名です!', |
2539 | | - 'maintenance-success' => '$1 の実行は成功しました!', |
| 2687 | + 'maintenance-output-success' => '$1 の実行は成功しました!', |
2540 | 2688 | 'maintenance-userexists' => '利用者が既に存在します!', |
2541 | 2689 | 'maintenance-invalidtitle' => '「$1」は無効なページ名です!', |
2542 | 2690 | 'maintenance-titlenoexist' => '指定した名前 (「$1」) のページは存在しません!', |
— | — | @@ -2607,14 +2755,14 @@ |
2608 | 2756 | 'maintenance' => 'ដំណើរការស្រ្គីបតំហែទាំ', |
2609 | 2757 | 'maintenance-changePassword-desc' => 'ប្តូរពាក្យសំងាត់របស់អ្នកប្រើប្រាស់', |
2610 | 2758 | 'maintenance-createAndPromote-desc' => 'បង្កើតអ្នកប្រើប្រាស់ និងដំឡើងទៅជាអ្នកអភិបាល (sysop status)', |
2611 | | - 'maintenance-invalidtype' => 'គំរូមិនត្រឹមត្រូវ!', |
| 2759 | + 'maintenance-error-invalidtype' => 'គំរូមិនត្រឹមត្រូវ!', |
2612 | 2760 | 'maintenance-name' => 'អ្នកប្រើប្រាស់', |
2613 | 2761 | 'maintenance-password' => 'ពាក្យសំងាត់', |
2614 | 2762 | 'maintenance-bureaucrat' => 'ដំឡើងអ្នកប្រើប្រាស់ទៅជាអ្នកការិយាល័យ', |
2615 | 2763 | 'maintenance-reason' => 'មូលហេតុ', |
2616 | | - 'maintenance-confirm' => 'អះអាង', |
| 2764 | + 'maintenance-option-confirm' => 'អះអាង', |
2617 | 2765 | 'maintenance-invalidname' => 'អ្នកប្រើប្រាស់មិនត្រឹមត្រូវ!', |
2618 | | - 'maintenance-success' => '$1 បានដំណើការដោយជោគជ័យ!', |
| 2766 | + 'maintenance-output-success' => '$1 បានដំណើការដោយជោគជ័យ!', |
2619 | 2767 | 'maintenance-userexists' => 'អ្នកប្រើប្រាស់មានរួចជាស្រេចហើយ!', |
2620 | 2768 | 'maintenance-invalidtitle' => 'ចំណងជើងមិនត្រឹមត្រូវ "$1"!', |
2621 | 2769 | 'maintenance-titlenoexist' => 'ចំណងជើងដែលបានផ្ដល់អោយ ("$1") មិនមានទេ!', |
— | — | @@ -2662,7 +2810,7 @@ |
2663 | 2811 | */ |
2664 | 2812 | $messages['ko'] = array( |
2665 | 2813 | 'maintenance-password' => '비밀번호', |
2666 | | - 'maintenance-confirm' => '확인', |
| 2814 | + 'maintenance-option-confirm' => '확인', |
2667 | 2815 | ); |
2668 | 2816 | |
2669 | 2817 | /** Colognian (Ripoarisch) |
— | — | @@ -2701,16 +2849,16 @@ |
2702 | 2850 | 'maintenance-moveBatch' => 'Met hee dämm Fommulaa kanns De maßisch Sigge ömnenne. |
2703 | 2851 | En jede Reih sullt ene ahle u nene neue Siggetittel hengereneejn shtonn, |
2704 | 2852 | met enem senkrääschte Shtresh dozwesche, allsu däm „|“', |
2705 | | - 'maintenance-invalidtype' => 'En onjölijje Zoot!', |
| 2853 | + 'maintenance-error-invalidtype' => 'En onjölijje Zoot!', |
2706 | 2854 | 'maintenance-name' => 'Metmaacher Name', |
2707 | 2855 | 'maintenance-password' => 'Paßwoot', |
2708 | 2856 | 'maintenance-bureaucrat' => 'Mach enne Bürrokrad uß ennem Metmaacher', |
2709 | 2857 | 'maintenance-reason' => 'Jrond oddo Aanlaß', |
2710 | 2858 | 'maintenance-update' => 'Met Höksche: bruch <span style="text-transform:uppercase">update</span> wann de Tabäll jänndert wede soll. Ohne Höksche: nemm <span style="text-transform:uppercase">delete</span> odder <span style="text-transform:uppercase">insert</span> doför.', |
2711 | 2859 | 'maintenance-noviews' => 'Maach hee e Hööksche, öm de Aanzahl affjeroofe Sigge nit aanzepacke', |
2712 | | - 'maintenance-confirm' => 'Bestätije', |
| 2860 | + 'maintenance-option-confirm' => 'Bestätije', |
2713 | 2861 | 'maintenance-invalidname' => 'Der Metmaacher kenne mer nit!', |
2714 | | - 'maintenance-success' => '„$1“ es met Erfolch jeloufe!', |
| 2862 | + 'maintenance-output-success' => '„$1“ es met Erfolch jeloufe!', |
2715 | 2863 | 'maintenance-userexists' => 'Dä Metmaacher jidd_et ald!', |
2716 | 2864 | 'maintenance-invalidtitle' => 'Onjöltije Sigge-Tittel: „$1“!', |
2717 | 2865 | 'maintenance-titlenoexist' => 'Dä aanjejovve Tittel „$1“ jidd_et nit!', |
— | — | @@ -2801,16 +2949,16 @@ |
2802 | 2950 | 'maintenance-initStats' => "Benotzt dëse Formulaire fir d'Statistike vum Site nei ze berechnen, gitt w.e.g. unn ob Dir d'Zuel vun de Säiten-Ufroen och wëllt nei berechent hunn", |
2803 | 2951 | 'maintenance-moveBatch' => "Benotzt dëse Formulaire fir eng Grous Zuel vu Säiten ze réckelen. |
2804 | 2952 | An all Linn soll en Quellsäit an eng Zilsäit, getrennt duerch een ''<nowiki>|</nowiki>'', drastoen.", |
2805 | | - 'maintenance-invalidtype' => 'Typ net valabel!', |
| 2953 | + 'maintenance-error-invalidtype' => 'Typ net valabel!', |
2806 | 2954 | 'maintenance-name' => 'Benotzernumm', |
2807 | 2955 | 'maintenance-password' => 'Passwuert', |
2808 | 2956 | 'maintenance-bureaucrat' => 'Engem Benotzer de Bürokrate-Status ginn', |
2809 | 2957 | 'maintenance-reason' => 'Grond', |
2810 | 2958 | 'maintenance-update' => "UPDATE benotze fir eng Tabell z'aktualiséieren? Wann et net ugekräizt ass gëtt DELETE/INSERT dofir benotzt.", |
2811 | 2959 | 'maintenance-noviews' => "Dëst nokucke fir d'Aktualisatioun vun der Zuel vun deVisite vun der Säit ze verhënneren", |
2812 | | - 'maintenance-confirm' => 'Confirméieren', |
| 2960 | + 'maintenance-option-confirm' => 'Confirméieren', |
2813 | 2961 | 'maintenance-invalidname' => 'Ongëltege Benotzernumm!', |
2814 | | - 'maintenance-success' => '$1 ass gemaach ginn!', |
| 2962 | + 'maintenance-output-success' => '$1 ass gemaach ginn!', |
2815 | 2963 | 'maintenance-userexists' => 'De Benotzer gëtt et schonn!', |
2816 | 2964 | 'maintenance-invalidtitle' => 'Ongëltegen Titel "$1"!', |
2817 | 2965 | 'maintenance-titlenoexist' => 'Den Titel den dir uginn hutt ("$1") gëtt et net!', |
— | — | @@ -2916,16 +3064,16 @@ |
2917 | 3065 | 'maintenance-initStats' => 'Овој образец служи за одново пресметување на статистики, назначувајќи дали сакате да одновно да ги пресметате и прегледите на страниците', |
2918 | 3066 | 'maintenance-moveBatch' => 'Овој образец служи за групно преместување на страници. |
2919 | 3067 | ВО секој ред треба да има наведено изворна страница и целна страница, одделени со знакот „|“', |
2920 | | - 'maintenance-invalidtype' => 'Неважечки тип!', |
| 3068 | + 'maintenance-error-invalidtype' => 'Неважечки тип!', |
2921 | 3069 | 'maintenance-name' => 'Корисничко име', |
2922 | 3070 | 'maintenance-password' => 'Лозинка', |
2923 | 3071 | 'maintenance-bureaucrat' => 'Промоција на корисник во бирократ', |
2924 | 3072 | 'maintenance-reason' => 'Неважечки тип!', |
2925 | 3073 | 'maintenance-update' => 'Да користам UPDATE кога ажурирам табела? Отшриклирајте ако сакате наместо тоа да користам DELETE/INSERT.', |
2926 | 3074 | 'maintenance-noviews' => 'Штиклирајте го ова за да го спречите ажурирањето на бројот на прегледи на страниците', |
2927 | | - 'maintenance-confirm' => 'Потврди', |
| 3075 | + 'maintenance-option-confirm' => 'Потврди', |
2928 | 3076 | 'maintenance-invalidname' => 'Неважечко корисничко име!', |
2929 | | - 'maintenance-success' => '$1 е успешно извршено!', |
| 3077 | + 'maintenance-output-success' => '$1 е успешно извршено!', |
2930 | 3078 | 'maintenance-userexists' => 'Корисникот веќе постои!', |
2931 | 3079 | 'maintenance-invalidtitle' => 'Неважечки наслов „$1“!', |
2932 | 3080 | 'maintenance-titlenoexist' => 'Назначениот наслов („$1“) не постои.', |
— | — | @@ -3009,15 +3157,15 @@ |
3010 | 3158 | 'maintenance-password' => 'രഹസ്യവാക്ക്', |
3011 | 3159 | 'maintenance-bureaucrat' => 'ഉപയോക്താവിനെ ബ്യൂറോക്രാറ്റ് പദവിയിലേക്കുയർത്തുക', |
3012 | 3160 | 'maintenance-reason' => 'കാരണം', |
3013 | | - 'maintenance-confirm' => 'സ്ഥിരീകരിക്കുക', |
| 3161 | + 'maintenance-option-confirm' => 'സ്ഥിരീകരിക്കുക', |
3014 | 3162 | 'maintenance-invalidname' => 'അസാധുവായ ഉപയോക്തൃനാമം!', |
3015 | | - 'maintenance-success' => '$1 വിജയകരമായി ഓടിച്ചിരിക്കുന്നു!', |
| 3163 | + 'maintenance-output-success' => '$1 വിജയകരമായി ഓടിച്ചിരിക്കുന്നു!', |
3016 | 3164 | 'maintenance-userexists' => 'ഉപയോക്തൃനാമം നിലവിലുണ്ട്', |
3017 | 3165 | 'maintenance-invalidtitle' => 'അസാധുവായ തലക്കെട്ട് "$1"!', |
3018 | 3166 | 'maintenance-titlenoexist' => '("$1") എന്ന ശീർഷകത്തിലുള്ള ലേഖനം നിലവിലില്ല', |
3019 | 3167 | 'maintenance-failed' => 'പരാജയപ്പെട്ടു', |
3020 | 3168 | 'maintenance-deleted' => 'മായ്ച്ചു', |
3021 | | - 'maintenance-revdelete' => '$2 വിക്കിയിൽ നിന്ന് {{PLURAL:$3|ഒരു പതിപ്പ്|പതിപ്പുകൾ}} $1 ഒഴിവാക്കുന്നു', |
| 3169 | + 'maintenance-revdelete' => '$2 വിക്കിയിൽ നിന്ന് $1 പതിപ്പുകൾ ഒഴിവാക്കുന്നു', |
3022 | 3170 | 'maintenance-revnotfound' => '$1 എന്ന പതിപ്പ് കണ്ടില്ല!', |
3023 | 3171 | 'maintenance-stats-edits' => 'തിരുത്തലുകളുടെ എണ്ണം: $1', |
3024 | 3172 | 'maintenance-stats-articles' => 'മുഖ്യ നാമമേഖലയിലുള്ള താളുകളുടെ എണ്ണം: $1', |
— | — | @@ -3035,24 +3183,12 @@ |
3036 | 3184 | 'maintenance-memc-withsession' => 'സെഷനോടെ:', |
3037 | 3185 | 'maintenance-memc-withoutsession' => 'സെഷനില്ലാതെ:', |
3038 | 3186 | 'maintenance-memc-total' => 'ആകെ:', |
3039 | | - 'maintenance-memc-hits' => 'എടുത്തുനോക്കലുകൾ:', |
3040 | 3187 | 'maintenance-memc-invalid' => 'അസാധു:', |
3041 | 3188 | 'maintenance-memc-expired' => 'കാലാവധി:', |
3042 | 3189 | 'maintenance-memc-absent' => 'അഭാവം:', |
3043 | 3190 | 'maintenance-memc-updates' => 'അപ്ഡേറ്റ്സ്:', |
3044 | | - 'maintenance-re-nf' => '$1 എന്ന ഉപയോക്താവിനെ കണ്ടെത്താനായില്ല', |
3045 | | - 'maintenance-re-ce' => 'ഇപ്പോഴത്തെ തിരുത്തലുകൾ: $1', |
3046 | | - 'maintenance-re-de' => 'മായ്ക്കപ്പെട്ട തിരുത്തലുകൾ: $1', |
3047 | 3191 | ); |
3048 | 3192 | |
3049 | | -/** Mongolian (Монгол) |
3050 | | - * @author Chinneeb |
3051 | | - */ |
3052 | | -$messages['mn'] = array( |
3053 | | - 'maintenance-name' => 'Хэрэглэгчийн нэр', |
3054 | | - 'maintenance-reason' => 'Шалтгаан', |
3055 | | -); |
3056 | | - |
3057 | 3193 | /** Marathi (मराठी) |
3058 | 3194 | * @author Kaustubh |
3059 | 3195 | */ |
— | — | @@ -3082,16 +3218,16 @@ |
3083 | 3219 | 'maintenance-initStats' => 'हा अर्ज सांख्यिकी पुन्हा मोजण्यासाठी वापरा, त्यामध्ये तुम्ही पान बघण्याची सांख्यिकी सुद्धा पुन्हा मोजू शकता', |
3084 | 3220 | 'maintenance-moveBatch' => 'हा अर्ज एकाचवेळी अनेक पाने स्थानांतरीत करण्यासाठी वापरा. |
3085 | 3221 | प्रत्येक ओळीवर स्रोत पान व लक्ष्य पान पाईप चिन्ह वापरून लिहा', |
3086 | | - 'maintenance-invalidtype' => 'चुकीचा प्रकार!', |
| 3222 | + 'maintenance-error-invalidtype' => 'चुकीचा प्रकार!', |
3087 | 3223 | 'maintenance-name' => 'सदस्यनाव', |
3088 | 3224 | 'maintenance-password' => 'परवलीचा शब्द', |
3089 | 3225 | 'maintenance-bureaucrat' => 'सदस्याला अधिकारीपद द्या', |
3090 | 3226 | 'maintenance-reason' => 'कारण', |
3091 | 3227 | 'maintenance-update' => 'सारणी बदलताना UPDATE चा वापर करायचा का? जर निवडले नाही तर DELETE/INSERT चा वापर होईल.', |
3092 | 3228 | 'maintenance-noviews' => 'पान पहाण्याची सांख्यिकी न बदलण्यासाठी हे निवडा', |
3093 | | - 'maintenance-confirm' => 'निश्चित करा', |
| 3229 | + 'maintenance-option-confirm' => 'निश्चित करा', |
3094 | 3230 | 'maintenance-invalidname' => 'चुकीचे सदस्यनाव!', |
3095 | | - 'maintenance-success' => '$1 यशस्वीरित्या पूर्ण झाले!', |
| 3231 | + 'maintenance-output-success' => '$1 यशस्वीरित्या पूर्ण झाले!', |
3096 | 3232 | 'maintenance-userexists' => 'सदस्य अगोदरच अस्तित्वात आहे!', |
3097 | 3233 | 'maintenance-invalidtitle' => 'चुकीचे शीर्षक "$1"!', |
3098 | 3234 | 'maintenance-titlenoexist' => 'दिलेले शीर्षक ("$1") अस्तित्वात नाही!', |
— | — | @@ -3151,7 +3287,7 @@ |
3152 | 3288 | 'maintenance-name' => 'Теицянь лем', |
3153 | 3289 | 'maintenance-password' => 'Совамо вал', |
3154 | 3290 | 'maintenance-reason' => 'Тувтал', |
3155 | | - 'maintenance-confirm' => 'Кемекстамс', |
| 3291 | + 'maintenance-option-confirm' => 'Кемекстамс', |
3156 | 3292 | 'maintenance-failed' => 'ЭЗЬ ЛИСЕ', |
3157 | 3293 | 'maintenance-deleted' => 'НАРДАЗЬ', |
3158 | 3294 | 'maintenance-stats-edits' => 'Зяроксть витнезь-петнезь: $1', |
— | — | @@ -3217,16 +3353,16 @@ |
3218 | 3354 | 'maintenance-initStats' => 'Gebruik dit formulier de sitestatistieken opnieuw te berekenen. Geef daarbij aan of u de tellingen van het aantal keren dat een pagina is bekeken ook wilt bijwerken', |
3219 | 3355 | 'maintenance-moveBatch' => 'Gebruik dit formulier om en masse pagina\'s te hernoemen. |
3220 | 3356 | Iedere regel moet een doelpagina en een bestemmingspagina bevatten, gescheiden door een pipe-teken ("|")', |
3221 | | - 'maintenance-invalidtype' => 'Ongeldig type!', |
| 3357 | + 'maintenance-error-invalidtype' => 'Ongeldig type!', |
3222 | 3358 | 'maintenance-name' => 'Gebruiker', |
3223 | 3359 | 'maintenance-password' => 'Wachtwoord', |
3224 | 3360 | 'maintenance-bureaucrat' => 'De gebruiker bureaucraat maken', |
3225 | 3361 | 'maintenance-reason' => 'Reden', |
3226 | 3362 | 'maintenance-update' => 'Gebruik UPDATE als u een tabel wilt bijwerken? Unchecked gebruiker in plaats daarvan DELETE/INSERT.', |
3227 | 3363 | 'maintenance-noviews' => 'Vink dit aan om te voorkomen dat het aantal keren dat een pagina is bekeken wordt bijgewerkt', |
3228 | | - 'maintenance-confirm' => 'Bevestigen', |
| 3364 | + 'maintenance-option-confirm' => 'Bevestigen', |
3229 | 3365 | 'maintenance-invalidname' => 'Ongeldige gebruikersnaam!', |
3230 | | - 'maintenance-success' => '$1 is uitgevoerd!', |
| 3366 | + 'maintenance-output-success' => '$1 is uitgevoerd!', |
3231 | 3367 | 'maintenance-userexists' => 'De gebruiker bestaat al!', |
3232 | 3368 | 'maintenance-invalidtitle' => 'Ongeldige paginanaam "$1"!', |
3233 | 3369 | 'maintenance-titlenoexist' => 'De opgegeven pagina ("$1") bestaat niet!', |
— | — | @@ -3315,16 +3451,16 @@ |
3316 | 3452 | 'maintenance-initStats' => 'Nytt dette skjemaet for å rekna ut sidestatistikken på nytt. Spesifiser om du òg ynskjer å rekna ut sidevisingar på nytt', |
3317 | 3453 | 'maintenance-moveBatch' => 'Nytt dette skjemaet for å flytta mange sider på éin gong. |
3318 | 3454 | Kvar linja bør oppgje ei kjeldesida og ei målsida skilde med ein strek (|).', |
3319 | | - 'maintenance-invalidtype' => 'Ugyldig type!', |
| 3455 | + 'maintenance-error-invalidtype' => 'Ugyldig type!', |
3320 | 3456 | 'maintenance-name' => 'Brukarnamn', |
3321 | 3457 | 'maintenance-password' => 'Passord', |
3322 | 3458 | 'maintenance-bureaucrat' => 'Gjer ein brukar til byråkrat', |
3323 | 3459 | 'maintenance-reason' => 'Årsak', |
3324 | 3460 | 'maintenance-update' => 'Nytt UPDATE under oppdatering av tabell? Om uavkryssa vert DELETE/INSERT nytta i staden.', |
3325 | 3461 | 'maintenance-noviews' => 'Kryss av her for ikkje å oppdatera sidevisingar', |
3326 | | - 'maintenance-confirm' => 'Stadfest', |
| 3462 | + 'maintenance-option-confirm' => 'Stadfest', |
3327 | 3463 | 'maintenance-invalidname' => 'Ugyldig brukarnamn.', |
3328 | | - 'maintenance-success' => '$1 blei køyrt gjennom utan problem.', |
| 3464 | + 'maintenance-output-success' => '$1 blei køyrt gjennom utan problem.', |
3329 | 3465 | 'maintenance-userexists' => 'Brukaren finst frå før.', |
3330 | 3466 | 'maintenance-invalidtitle' => 'Tittelen «$1» er ugyldig.', |
3331 | 3467 | 'maintenance-titlenoexist' => 'Den oppgjevne tittelen («$1») finst ikkje.', |
— | — | @@ -3415,16 +3551,16 @@ |
3416 | 3552 | 'maintenance-initStats' => 'Bruk dette skjemaet for å regne ut sidestatistikken på nytt, spesielt om du vil regne ut sidevisninger på nytt', |
3417 | 3553 | 'maintenance-moveBatch' => 'Bruk dette skjemaet for å flytte mange sider på én gang. |
3418 | 3554 | Hver linje bør oppgi kildeside og målside adskilt med strek (|)', |
3419 | | - 'maintenance-invalidtype' => 'Ugyldig type!', |
| 3555 | + 'maintenance-error-invalidtype' => 'Ugyldig type!', |
3420 | 3556 | 'maintenance-name' => 'Brukernavn', |
3421 | 3557 | 'maintenance-password' => 'Passord', |
3422 | 3558 | 'maintenance-bureaucrat' => 'Forfrem en bruker til byråkrat', |
3423 | 3559 | 'maintenance-reason' => 'Årsak', |
3424 | 3560 | 'maintenance-update' => 'Bruk UPDATE under oppdatering av tabell? Om uavkrysset brukes DELETE/INSERT i stedet.', |
3425 | 3561 | 'maintenance-noviews' => 'Kryss av her for ikke å oppdatere sidevisninger', |
3426 | | - 'maintenance-confirm' => 'Bekreft', |
| 3562 | + 'maintenance-option-confirm' => 'Bekreft', |
3427 | 3563 | 'maintenance-invalidname' => 'Ugyldig brukernavn.', |
3428 | | - 'maintenance-success' => '$1 ble gjennomført uten uhell.', |
| 3564 | + 'maintenance-output-success' => '$1 ble gjennomført uten uhell.', |
3429 | 3565 | 'maintenance-userexists' => 'Brukeren finnes allerede.', |
3430 | 3566 | 'maintenance-invalidtitle' => 'Ugyldig tittel «$1».', |
3431 | 3567 | 'maintenance-titlenoexist' => 'Den oppgitte tittelen («$1») finnes ikke.', |
— | — | @@ -3509,7 +3645,7 @@ |
3510 | 3646 | 'maintenance-runJobs-desc' => "Aviar los prètzfaches dins la lista de los d'acomplir", |
3511 | 3647 | 'maintenance-showJobs-desc' => "Afichar una lista dels prètzfaches en cors dins la lista de los d'acomplir", |
3512 | 3648 | 'maintenance-sql-desc' => 'Executar una requèsta SQL', |
3513 | | - 'maintenance-stats-desc' => 'Afichar las estatisticas de la memòria-escondedor', |
| 3649 | + 'maintenance-stats-desc' => 'Afichar las estatisticas de la memòria-amagatal', |
3514 | 3650 | 'maintenance-changePassword' => 'Utilizar aqueste formulari per cambiar lo senhal d’un utilizaire', |
3515 | 3651 | 'maintenance-createAndPromote' => 'Utilizar aqueste formulari per crear un utilizaire novèl e per lo promòure administrator. |
3516 | 3652 | Marcar la casa burocrata se li desiratz conferir tanben aqueste estatut.', |
— | — | @@ -3520,16 +3656,16 @@ |
3521 | 3657 | 'maintenance-initStats' => 'Utilizatz aqueste formulari per tornar calcular las estatisticas del site, en indicant, se fa mestièr, se desiratz lo recalcul del nombre de visitas per pagina.', |
3522 | 3658 | 'maintenance-moveBatch' => 'Utilizatz aqueste formulari per desplaçar en massa las paginas. |
3523 | 3659 | Cada linha deurà indicar la pagina d’origina e la de destinacion ; las qualas deuràn èsser separadas per un « <nowiki>|</nowiki> »', |
3524 | | - 'maintenance-invalidtype' => 'Tipe incorrècte !', |
| 3660 | + 'maintenance-error-invalidtype' => 'Tipe incorrècte !', |
3525 | 3661 | 'maintenance-name' => "Nom d'utilizaire", |
3526 | 3662 | 'maintenance-password' => 'Senhal', |
3527 | 3663 | 'maintenance-bureaucrat' => "Promòure l’utilizaire a l'estatut de burocrata", |
3528 | 3664 | 'maintenance-reason' => 'Motiu', |
3529 | 3665 | 'maintenance-update' => "Utilizar UPDATE al moment de la mesa a jorn d'una taula ? Desmarcatz l'usatge DELETE/INSERT al luòc d'aquò.", |
3530 | 3666 | 'maintenance-noviews' => 'Marcar aquò per evitar la mesa a jorn del nombre de visitas de las paginas.', |
3531 | | - 'maintenance-confirm' => 'Confirmar', |
| 3667 | + 'maintenance-option-confirm' => 'Confirmar', |
3532 | 3668 | 'maintenance-invalidname' => 'Nom d’utilizaire incorrècte !', |
3533 | | - 'maintenance-success' => '$1 a marchat amb succès !', |
| 3669 | + 'maintenance-output-success' => '$1 a marchat amb succès !', |
3534 | 3670 | 'maintenance-userexists' => 'L’utilizaire existís ja !', |
3535 | 3671 | 'maintenance-invalidtitle' => 'Títol incorrècte « $1 » !', |
3536 | 3672 | 'maintenance-titlenoexist' => 'Lo títol indicat (« $1 ») existís pas !', |
— | — | @@ -3558,17 +3694,17 @@ |
3559 | 3695 | 'maintenance-memc-withsession' => 'amb la sesilha :', |
3560 | 3696 | 'maintenance-memc-withoutsession' => 'sens la sesilha :', |
3561 | 3697 | 'maintenance-memc-total' => 'soma :', |
3562 | | - 'maintenance-memc-parsercache' => 'Escondedor del parser', |
| 3698 | + 'maintenance-memc-parsercache' => 'Amagatal del parser', |
3563 | 3699 | 'maintenance-memc-hits' => 'clics :', |
3564 | 3700 | 'maintenance-memc-invalid' => 'invalid :', |
3565 | 3701 | 'maintenance-memc-expired' => 'expirats :', |
3566 | 3702 | 'maintenance-memc-absent' => 'absent :', |
3567 | 3703 | 'maintenance-memc-stub' => 'sulhèt de despart :', |
3568 | | - 'maintenance-memc-imagecache' => 'Escondedor imatge', |
| 3704 | + 'maintenance-memc-imagecache' => 'Amagatal imatge', |
3569 | 3705 | 'maintenance-memc-misses' => 'perduts :', |
3570 | 3706 | 'maintenance-memc-updates' => 'meses a jorn :', |
3571 | 3707 | 'maintenance-memc-uncacheable' => "fòra de l'amagatal :", |
3572 | | - 'maintenance-memc-diffcache' => 'Escondedor dels dif', |
| 3708 | + 'maintenance-memc-diffcache' => 'Amagatal dels dif', |
3573 | 3709 | 'maintenance-eval' => 'Utilizatz aquesta forma per avalorar lo còde PHP dins un environament MediaWiki.', |
3574 | 3710 | 'maintenance-reassignEdits' => "Utilizatz aqueste formulari per tornar assignar de modificacions d'un utilizaire cap a un autre.", |
3575 | 3711 | 'maintenance-re-from' => "Nom de l'utilizaire al qual préner las modificacions", |
— | — | @@ -3625,16 +3761,11 @@ |
3626 | 3762 | 'maintenance-changePassword-desc' => 'Zmień hasło użytkownika', |
3627 | 3763 | 'maintenance-createAndPromote-desc' => 'Utwórz użytkownika i nadaj mu uprawnienia administratora', |
3628 | 3764 | 'maintenance-deleteBatch-desc' => 'Usuń masowo strony', |
3629 | | - 'maintenance-deleteRevision-desc' => 'Usuwanie wersji z bazy danych', |
3630 | | - 'maintenance-eval-desc' => 'Sprawdzanie kodu PHP w środowisku MediaWiki', |
3631 | 3765 | 'maintenance-initEditCount-desc' => 'Przelicz ponownie liczniki edycji użytkowników', |
3632 | 3766 | 'maintenance-initStats-desc' => 'Przelicz ponownie statystyki strony', |
3633 | 3767 | 'maintenance-moveBatch-desc' => 'Przenieś masowo strony', |
3634 | | - 'maintenance-reassignEdits-desc' => 'Przypisanie edycji jednego użytkownika drugiemu', |
3635 | 3768 | 'maintenance-runJobs-desc' => 'Uruchom zadania z kolejki', |
3636 | 3769 | 'maintenance-showJobs-desc' => 'Pokaż kolejkę zadań oczekujących na wykonanie', |
3637 | | - 'maintenance-sql-desc' => 'Wykonywanie zapytań SQL', |
3638 | | - 'maintenance-stats-desc' => 'Statystyki pamięci podręcznej', |
3639 | 3770 | 'maintenance-changePassword' => 'Użyj tego formularza, by zmienić hasło użytkownika', |
3640 | 3771 | 'maintenance-createAndPromote' => 'Użyj tego formularza, by utworzyć nowe konto użytkownika i nadać mu uprawnienia administratora. |
3641 | 3772 | Zaznacz pole wyboru poniżej, aby przyznać mu również uprawnienia biurokraty.', |
— | — | @@ -3642,19 +3773,11 @@ |
3643 | 3774 | W każdej linijce podaj tylko jedną nazwę strony.', |
3644 | 3775 | 'maintenance-deleteRevision' => 'Używaj tego formularza do masowego usuwania wersji artykułów. |
3645 | 3776 | W każdej linijce podaj tylko jeden numer wersji artykułu.', |
3646 | | - 'maintenance-initStats' => 'Formularz pozwala na przeliczanie statystyk witryny, z możliwością wymuszenia przeliczenia również liczby odsłon', |
3647 | | - 'maintenance-moveBatch' => 'Formularz służy do masowego przenoszenia stron. |
3648 | | -W każdym wierszu należy określić stronę źródłową oraz stronę docelową rozdzielając je pionową kreską', |
3649 | | - 'maintenance-invalidtype' => 'Nieprawidłowy typ!', |
3650 | 3777 | 'maintenance-name' => 'Nazwa użytkownika', |
3651 | 3778 | 'maintenance-password' => 'Hasło', |
3652 | 3779 | 'maintenance-bureaucrat' => 'Przyznaj użytkownikowi uprawnienia biurokraty', |
3653 | 3780 | 'maintenance-reason' => 'Powód', |
3654 | | - 'maintenance-update' => 'Użyj UPDATE do aktualizacji tabel. Alternatywą jest zestawienie poleceń DELETE i INSERT.', |
3655 | | - 'maintenance-noviews' => 'Zaznacz aby zapobiec aktualizacji liczników odsłon stron', |
3656 | | - 'maintenance-confirm' => 'Potwierdź', |
3657 | | - 'maintenance-invalidname' => 'Nieprawidłowa nazwa użytkownika!', |
3658 | | - 'maintenance-success' => '$1 uruchomiono!', |
| 3781 | + 'maintenance-option-confirm' => 'Potwierdź', |
3659 | 3782 | 'maintenance-userexists' => 'Użytkownik już istnieje!', |
3660 | 3783 | 'maintenance-invalidtitle' => 'Niepoprawny tytuł „$1”!', |
3661 | 3784 | 'maintenance-titlenoexist' => 'Wybrana nazwa „$1” nie istnieje!', |
— | — | @@ -3662,10 +3785,6 @@ |
3663 | 3786 | 'maintenance-deleted' => 'USUNIĘTO', |
3664 | 3787 | 'maintenance-revdelete' => 'Usuwanie {{PLURAL:$3|wersji|wersji:}} $1 z wiki $2', |
3665 | 3788 | 'maintenance-revnotfound' => 'Wersja $1 nie została odnaleziona!', |
3666 | | - 'maintenance-sql' => 'Formularz ten służy do wykonania zapytania SQL do bazy danych.', |
3667 | | - 'maintenance-sql-aff' => '{{PLURAL:$1|Zmieniono $1 wiersz|Zmieniono $1 wiersze|Zmienionych $1 wierszy}}', |
3668 | | - 'maintenance-sql-res' => 'Zwróciło $1 {{PLURAL:$1|wiersz|wiersze|wierszy}}: |
3669 | | -$2', |
3670 | 3789 | 'maintenance-stats-edits' => 'Liczba edycji $1', |
3671 | 3790 | 'maintenance-stats-articles' => 'Liczba stron w głównej przestrzeni nazw $1', |
3672 | 3791 | 'maintenance-stats-pages' => 'Liczba stron: $1', |
— | — | @@ -3678,36 +3797,8 @@ |
3679 | 3798 | 'maintenance-movefail' => 'Wystąpił błąd przy przenoszeniu $1. |
3680 | 3799 | Przenoszenie przerwane.', |
3681 | 3800 | 'maintenance-error' => 'Błąd: $1', |
3682 | | - 'maintenance-memc-fake' => 'Korzystasz z FakeMemCachedClient. Statystyk brak', |
3683 | | - 'maintenance-memc-requests' => 'Żądania', |
3684 | | - 'maintenance-memc-withsession' => 'z sesją', |
3685 | | - 'maintenance-memc-withoutsession' => 'bez sesji', |
3686 | | - 'maintenance-memc-total' => 'łącznie', |
3687 | 3801 | 'maintenance-memc-parsercache' => 'Pamięć podręczna analizatora składni', |
3688 | | - 'maintenance-memc-hits' => 'trafienia', |
3689 | | - 'maintenance-memc-invalid' => 'nieważne', |
3690 | | - 'maintenance-memc-expired' => 'przeterminowane', |
3691 | | - 'maintenance-memc-absent' => 'nieobecne', |
3692 | | - 'maintenance-memc-stub' => 'próg zalążków', |
3693 | | - 'maintenance-memc-imagecache' => 'Obraz pamięci podręcznej', |
3694 | | - 'maintenance-memc-misses' => 'nietrafionych', |
3695 | 3802 | 'maintenance-memc-updates' => 'aktualizacje:', |
3696 | | - 'maintenance-memc-uncacheable' => 'nieobsługiwane przez pamięć podręczną', |
3697 | | - 'maintenance-memc-diffcache' => 'Różnica w pamięci podręcznej', |
3698 | | - 'maintenance-eval' => 'Formularz ten służy do oceny kodu PHP w środowisku MediaWiki.', |
3699 | | - 'maintenance-reassignEdits' => 'Formularz ten służy do przypisania edycji jednego użytkownika drugiemu.', |
3700 | | - 'maintenance-re-from' => 'Nazwa użytkownika, którego edycje mają być przypisane', |
3701 | | - 'maintenance-re-to' => 'Nazwa użytkownika, któremu edycje mają być przypisane', |
3702 | | - 'maintenance-re-force' => 'Przypisz nawet jeśli użytkownik docelowy nie istnieje', |
3703 | | - 'maintenance-re-rc' => 'Nie aktualizuj ostatnich zmian', |
3704 | | - 'maintenance-re-report' => 'Pokaż jakie zmiany zostaną wprowadzone, ale ich nie wykonuj', |
3705 | | - 'maintenance-re-nf' => 'Nie odnaleziono użytkownika $1', |
3706 | | - 'maintenance-re-rr' => 'Uruchom skrypt ponownie, ale bez „$1”.', |
3707 | | - 'maintenance-re-ce' => 'Obecnie {{PLURAL:$1|jest $1 edycja|są $1 edycje|jest $1 edycji}}', |
3708 | | - 'maintenance-re-de' => 'Usunięto $1 {{PLURAL:$1|edycję|edycje|edycji}}', |
3709 | | - 'maintenance-re-rce' => '$1 {{PLURAL:$1|wpis|wpisy|wpisów}} w ostatnich zmianach', |
3710 | | - 'maintenance-re-total' => '{{PLURAL:$1|Jest $1 wpis|Są $1 wpisy|Jest $1 wpisów}} do zmienienia', |
3711 | | - 'maintenance-re-re' => 'Edycje przypisano', |
3712 | 3803 | ); |
3713 | 3804 | |
3714 | 3805 | /** Piedmontese (Piemontèis) |
— | — | @@ -3744,16 +3835,16 @@ |
3745 | 3836 | 'maintenance-initStats' => "Dovré ës formolari për calcolé torna le statìstiche dël sit, spessificand s'a veul ëdcò calcolé torna le vìsite a le pàgine", |
3746 | 3837 | 'maintenance-moveBatch' => 'Dovré ës formolari për tramudé dle pàgine a bocc. |
3747 | 3838 | Minca linia a dovrìa spessifiché na pàgina sorgiss e na pàgina destinassion separà da na bara vertical', |
3748 | | - 'maintenance-invalidtype' => 'Sòrt pa bon-a!', |
| 3839 | + 'maintenance-error-invalidtype' => 'Sòrt pa bon-a!', |
3749 | 3840 | 'maintenance-name' => 'Nòm utent', |
3750 | 3841 | 'maintenance-password' => 'Ciav', |
3751 | 3842 | 'maintenance-bureaucrat' => 'Promeuv utent a mangiapapé', |
3752 | 3843 | 'maintenance-reason' => 'Rason', |
3753 | 3844 | 'maintenance-update' => "Dovré UPDATE an modificand na tàula? Se pa marcà, a sò pòst a l'é dovrà DELETE/INSERT.", |
3754 | 3845 | 'maintenance-noviews' => "Marché sòn për ch'as modìfica pa ël nùmer ëd vìsite dle pàgine", |
3755 | | - 'maintenance-confirm' => 'Conferma', |
| 3846 | + 'maintenance-option-confirm' => 'Conferma', |
3756 | 3847 | 'maintenance-invalidname' => 'Nòm utent pa bon!', |
3757 | | - 'maintenance-success' => "$1 a l'ha girà da bin!", |
| 3848 | + 'maintenance-output-success' => "$1 a l'ha girà da bin!", |
3758 | 3849 | 'maintenance-userexists' => "L'utent a esist già!", |
3759 | 3850 | 'maintenance-invalidtitle' => 'Tìtol "$1" pa bon!', |
3760 | 3851 | 'maintenance-titlenoexist' => 'Ël tìtol spessificà ("$1") a esist pa!', |
— | — | @@ -3818,8 +3909,6 @@ |
3819 | 3910 | 'maintenance-reason' => 'سبب', |
3820 | 3911 | 'maintenance-invalidname' => 'ناسم کارن-نوم!', |
3821 | 3912 | 'maintenance-userexists' => 'دا کارن د پخوا نه ثبت دی!', |
3822 | | - 'maintenance-deleted' => 'ړنګ شو', |
3823 | | - 'maintenance-stats-edits' => 'د سمونو شمېر: $1', |
3824 | 3913 | 'maintenance-stats-pages' => 'د مخونو شمېر: $1', |
3825 | 3914 | 'maintenance-stats-users' => 'د کارنانو شمېر: $1', |
3826 | 3915 | 'maintenance-stats-admins' => 'د پازوالانو شمېر: $1', |
— | — | @@ -3864,16 +3953,16 @@ |
3865 | 3954 | 'maintenance-initStats' => 'Utilize este formulário para recalcular as estatísticas do site, especificando se pretende recalcular também os visionamentos de páginas', |
3866 | 3955 | 'maintenance-moveBatch' => 'Utilize este formulário para mover páginas em massa. |
3867 | 3956 | Cada linha deverá especificar uma página fonte e uma página destino, separadas por uma barra vertical ("pipe")', |
3868 | | - 'maintenance-invalidtype' => 'Tipo inválido!', |
| 3957 | + 'maintenance-error-invalidtype' => 'Tipo inválido!', |
3869 | 3958 | 'maintenance-name' => 'Nome de utilizador', |
3870 | 3959 | 'maintenance-password' => 'Palavra-chave', |
3871 | 3960 | 'maintenance-bureaucrat' => 'Promover utilizador a estatuto de burocrata', |
3872 | 3961 | 'maintenance-reason' => 'Motivo', |
3873 | 3962 | 'maintenance-update' => 'Usar UPDATE para actualizar tabelas? Se desmarcado, será usado DELETE/INSERT.', |
3874 | 3963 | 'maintenance-noviews' => 'Marque esta opção para impedir a actualização dos visionamentos de páginas', |
3875 | | - 'maintenance-confirm' => 'Confirmar', |
| 3964 | + 'maintenance-option-confirm' => 'Confirmar', |
3876 | 3965 | 'maintenance-invalidname' => 'Nome de utilizador inválido!', |
3877 | | - 'maintenance-success' => '$1 executado com sucesso!', |
| 3966 | + 'maintenance-output-success' => '$1 executado com sucesso!', |
3878 | 3967 | 'maintenance-userexists' => 'O utilizador já existe!', |
3879 | 3968 | 'maintenance-invalidtitle' => 'Título "$1" inválido!', |
3880 | 3969 | 'maintenance-titlenoexist' => 'O título especificado ("$1") não existe!', |
— | — | @@ -3962,16 +4051,16 @@ |
3963 | 4052 | 'maintenance-initStats' => 'Utilize este formulário para recalcular as estatísticas do sítio, especificando se pretende recalcular as visualizações de página também', |
3964 | 4053 | 'maintenance-moveBatch' => 'Utilize este formulário para mover páginas em massa. |
3965 | 4054 | Cada linha deverá especificar uma página fonte e uma página destino, separadas por uma barra vertical ("pipe")', |
3966 | | - 'maintenance-invalidtype' => 'Tipo inválido!', |
| 4055 | + 'maintenance-error-invalidtype' => 'Tipo inválido!', |
3967 | 4056 | 'maintenance-name' => 'Nome de utilizador', |
3968 | 4057 | 'maintenance-password' => 'Palavra-chave', |
3969 | 4058 | 'maintenance-bureaucrat' => 'Promover utilizador a estatuto de burocrata', |
3970 | 4059 | 'maintenance-reason' => 'Motivo', |
3971 | 4060 | 'maintenance-update' => 'Usar UPDATE para atualizar uma tabela? Se desselecionado, usa DELETE/INSERT.', |
3972 | 4061 | 'maintenance-noviews' => 'Assinale aqui para prevenir a atualização do número de visualizações de página', |
3973 | | - 'maintenance-confirm' => 'Confirmar', |
| 4062 | + 'maintenance-option-confirm' => 'Confirmar', |
3974 | 4063 | 'maintenance-invalidname' => 'Nome de utilizador inválido!', |
3975 | | - 'maintenance-success' => '$1 executado com sucesso!', |
| 4064 | + 'maintenance-output-success' => '$1 executado com sucesso!', |
3976 | 4065 | 'maintenance-userexists' => 'O utilizador já existe!', |
3977 | 4066 | 'maintenance-invalidtitle' => 'Título "$1" inválido!', |
3978 | 4067 | 'maintenance-titlenoexist' => 'O título especificado ("$1") não existe!', |
— | — | @@ -4057,13 +4146,13 @@ |
4058 | 4147 | Puneți doar o pagină pe un rând', |
4059 | 4148 | 'maintenance-deleteRevision' => 'Utilizați acest formular pentru ștergerea în masă a reviziilor. |
4060 | 4149 | Puneți doar o revizie pe un rând', |
4061 | | - 'maintenance-invalidtype' => 'Tip incorect!', |
| 4150 | + 'maintenance-error-invalidtype' => 'Tip incorect!', |
4062 | 4151 | 'maintenance-name' => 'Nume de utilizator', |
4063 | 4152 | 'maintenance-password' => 'Parolă', |
4064 | 4153 | 'maintenance-reason' => 'Motiv', |
4065 | | - 'maintenance-confirm' => 'Confirmă', |
| 4154 | + 'maintenance-option-confirm' => 'Confirmă', |
4066 | 4155 | 'maintenance-invalidname' => 'Nume de utilizator incorect!', |
4067 | | - 'maintenance-success' => '$1 a rulat cu succes!', |
| 4156 | + 'maintenance-output-success' => '$1 a rulat cu succes!', |
4068 | 4157 | 'maintenance-userexists' => 'Utilizatorul există deja!', |
4069 | 4158 | 'maintenance-invalidtitle' => 'Titlu incorect "$1"!', |
4070 | 4159 | 'maintenance-titlenoexist' => 'Titlul specificat ("$1") nu există!', |
— | — | @@ -4139,16 +4228,16 @@ |
4140 | 4229 | 'maintenance-initStats' => 'Используйте эту форму для пересчёта статистики сайта, при необходимости укажите, что нужно пересчитывать также просмотры страниц', |
4141 | 4230 | 'maintenance-moveBatch' => 'Используйте эту форму для массового переименования страниц. |
4142 | 4231 | Каждая строка должна содержать исходную страницу и её новое название, разделённые знаком «|»', |
4143 | | - 'maintenance-invalidtype' => 'Ошибочный тип!', |
| 4232 | + 'maintenance-error-invalidtype' => 'Ошибочный тип!', |
4144 | 4233 | 'maintenance-name' => 'Имя участника', |
4145 | 4234 | 'maintenance-password' => 'Пароль', |
4146 | 4235 | 'maintenance-bureaucrat' => 'Присвоить участнику статус бюрократа', |
4147 | 4236 | 'maintenance-reason' => 'Причина', |
4148 | 4237 | 'maintenance-update' => 'Использовать UPDATE для обновления таблицы? Снимите отметку чтобы использовать DELETE/INSERT.', |
4149 | 4238 | 'maintenance-noviews' => 'Проверьте это для предотвращения обновления числа просмотров', |
4150 | | - 'maintenance-confirm' => 'Подтвердить', |
| 4239 | + 'maintenance-option-confirm' => 'Подтвердить', |
4151 | 4240 | 'maintenance-invalidname' => 'Ошибочное имя участника!', |
4152 | | - 'maintenance-success' => '$1 успешно выполнено!', |
| 4241 | + 'maintenance-output-success' => '$1 успешно выполнено!', |
4153 | 4242 | 'maintenance-userexists' => 'Участник уже существует!', |
4154 | 4243 | 'maintenance-invalidtitle' => 'Ошибочный заголовок «$1»!', |
4155 | 4244 | 'maintenance-titlenoexist' => 'Указанный заголовок («$1») не существует!', |
— | — | @@ -4204,7 +4293,7 @@ |
4205 | 4294 | 'maintenance-re-re' => 'Переназначение правок{{int:ellipsis}} завершено', |
4206 | 4295 | ); |
4207 | 4296 | |
4208 | | -/** Rusyn (Русиньскый) |
| 4297 | +/** Rusyn (русиньскый язык) |
4209 | 4298 | * @author Gazeb |
4210 | 4299 | */ |
4211 | 4300 | $messages['rue'] = array( |
— | — | @@ -4245,16 +4334,16 @@ |
4246 | 4335 | 'maintenance-initStats' => 'Tento formulár slúži na prepočítanie štatistík tejto wiki. Môžete určiť, či chcete prepočítať aj zobrazenia stránok.', |
4247 | 4336 | 'maintenance-moveBatch' => 'Tento formulár slúži na hromadné presúvanie stránok. |
4248 | 4337 | Na každom riadku by ste mali určiť zdrojovú a cieľovú stránku oddelenú znakom rúry („|”).', |
4249 | | - 'maintenance-invalidtype' => 'Neplatný typ!', |
| 4338 | + 'maintenance-error-invalidtype' => 'Neplatný typ!', |
4250 | 4339 | 'maintenance-name' => 'Používateľské meno', |
4251 | 4340 | 'maintenance-password' => 'Heslo', |
4252 | 4341 | 'maintenance-bureaucrat' => 'Povýšiť používateľa na stav byrokrat', |
4253 | 4342 | 'maintenance-reason' => 'Dôvod', |
4254 | 4343 | 'maintenance-update' => 'Použiť na aktualizáciu tabuľky UPDATE? Ak nie, použije sa DELETE/INSERT.', |
4255 | 4344 | 'maintenance-noviews' => 'Ak je toto pole označené, nebude sa aktualizovať počet zobrazení stránky', |
4256 | | - 'maintenance-confirm' => 'Potvrdiť', |
| 4345 | + 'maintenance-option-confirm' => 'Potvrdiť', |
4257 | 4346 | 'maintenance-invalidname' => 'Neplatné používateľské meno!', |
4258 | | - 'maintenance-success' => '$1 prebehol úspešne!', |
| 4347 | + 'maintenance-output-success' => '$1 prebehol úspešne!', |
4259 | 4348 | 'maintenance-userexists' => 'Používateľ už existuje!', |
4260 | 4349 | 'maintenance-invalidtitle' => 'Neplatný názov „$1”!', |
4261 | 4350 | 'maintenance-titlenoexist' => 'Uvedený názov („$1”) neexistuje!', |
— | — | @@ -4310,17 +4399,8 @@ |
4311 | 4400 | 'maintenance-re-re' => 'Zmena pôvodcu úprav{{int:ellipsis}} hotovo', |
4312 | 4401 | ); |
4313 | 4402 | |
4314 | | -/** Slovenian (Slovenščina) |
4315 | | - * @author Dbc334 |
4316 | | - */ |
4317 | | -$messages['sl'] = array( |
4318 | | - 'maintenance-password' => 'Geslo', |
4319 | | - 'maintenance-reason' => 'Razlog', |
4320 | | -); |
4321 | | - |
4322 | 4403 | /** Serbian Cyrillic ekavian (Српски (ћирилица)) |
4323 | 4404 | * @author Rancher |
4324 | | - * @author Жељко Тодоровић |
4325 | 4405 | * @author Михајло Анђелковић |
4326 | 4406 | */ |
4327 | 4407 | $messages['sr-ec'] = array( |
— | — | @@ -4349,15 +4429,15 @@ |
4350 | 4430 | 'maintenance-initStats' => 'Користите ову форму да бисте освежили статистике сајта, означивши да ли такође желите да освежите и прегледе страница.', |
4351 | 4431 | 'maintenance-moveBatch' => 'Користите ову форму да бисте масовно премештали странице. |
4352 | 4432 | У свакој линији треба (тим редом) означити тренутно и циљано име странице, и раздвојити их знаком "|"', |
4353 | | - 'maintenance-invalidtype' => 'Непознат тип!', |
| 4433 | + 'maintenance-error-invalidtype' => 'Непознат тип!', |
4354 | 4434 | 'maintenance-name' => 'Корисничко име', |
4355 | 4435 | 'maintenance-password' => 'Лозинка', |
4356 | 4436 | 'maintenance-bureaucrat' => 'Унапредите корисника у бирократу', |
4357 | 4437 | 'maintenance-reason' => 'Разлог', |
4358 | 4438 | 'maintenance-noviews' => 'Означите ово да бисте спрежили освежавање броја прегледа страна', |
4359 | | - 'maintenance-confirm' => 'Потврди', |
| 4439 | + 'maintenance-option-confirm' => 'Потврди', |
4360 | 4440 | 'maintenance-invalidname' => 'Погрешно корисничко име!', |
4361 | | - 'maintenance-success' => '$1 се успешно извршила!', |
| 4441 | + 'maintenance-output-success' => '$1 се успешно извршила!', |
4362 | 4442 | 'maintenance-userexists' => 'Тај корисник већ постоји!', |
4363 | 4443 | 'maintenance-invalidtitle' => 'Неисправан наслов "$1"!', |
4364 | 4444 | 'maintenance-titlenoexist' => 'Наведени наслов ("$1") не постоји!', |
— | — | @@ -4370,12 +4450,12 @@ |
4371 | 4451 | 'maintenance-sql-res' => '{{PLURAL:$1|Враћен је $1 ред|Враћена су $1 реда|Враћено је $1 редова}}: |
4372 | 4452 | $2', |
4373 | 4453 | 'maintenance-stats-edits' => 'Број измена: $1', |
4374 | | - 'maintenance-stats-articles' => 'Број страница у главном именском простору: $1', |
4375 | | - 'maintenance-stats-pages' => 'Број страница: $1', |
| 4454 | + 'maintenance-stats-articles' => 'Број страна у главном именском простору: $1', |
| 4455 | + 'maintenance-stats-pages' => 'Број страна: $1', |
4376 | 4456 | 'maintenance-stats-users' => 'Број корисника: $1', |
4377 | 4457 | 'maintenance-stats-admins' => 'Број администратора: $1', |
4378 | 4458 | 'maintenance-stats-images' => 'Број фајлова: $1', |
4379 | | - 'maintenance-stats-views' => 'Број прегледа страница: $1', |
| 4459 | + 'maintenance-stats-views' => 'Број прегледа страна: $1', |
4380 | 4460 | 'maintenance-stats-update' => 'Освежавање базе података{{int:ellipsis}}', |
4381 | 4461 | 'maintenance-move' => 'Премештање $1 на $2{{int:ellipsis}}', |
4382 | 4462 | 'maintenance-movefail' => 'Грешка приликом премештања: $1. |
— | — | @@ -4437,15 +4517,15 @@ |
4438 | 4518 | 'maintenance-initStats' => 'Koristite ovu formu da biste osvežili statistike sajta, označivši da li takođe želite da osvežite i preglede stranica.', |
4439 | 4519 | 'maintenance-moveBatch' => 'Koristite ovu formu da biste masovno premeštali stranice. |
4440 | 4520 | U svakoj liniji treba (tim redom) označiti trenutno i ciljano ime stranice, i razdvojiti ih znakom "|"', |
4441 | | - 'maintenance-invalidtype' => 'Nepoznat tip!', |
| 4521 | + 'maintenance-error-invalidtype' => 'Nepoznat tip!', |
4442 | 4522 | 'maintenance-name' => 'Korisničko ime', |
4443 | 4523 | 'maintenance-password' => 'Lozinka', |
4444 | 4524 | 'maintenance-bureaucrat' => 'Unapredite korisnika u birokratu', |
4445 | 4525 | 'maintenance-reason' => 'Razlog', |
4446 | 4526 | 'maintenance-noviews' => 'Označite ovo da biste sprežili osvežavanje broja pregleda strana', |
4447 | | - 'maintenance-confirm' => 'Potvrdi', |
| 4527 | + 'maintenance-option-confirm' => 'Potvrdi', |
4448 | 4528 | 'maintenance-invalidname' => 'Pogrešno korisničko ime!', |
4449 | | - 'maintenance-success' => '$1 se uspešno izvršila!', |
| 4529 | + 'maintenance-output-success' => '$1 se uspešno izvršila!', |
4450 | 4530 | 'maintenance-userexists' => 'Taj korisnik već postoji!', |
4451 | 4531 | 'maintenance-invalidtitle' => 'Neispravan naslov "$1"!', |
4452 | 4532 | 'maintenance-titlenoexist' => 'Navedeni naslov ("$1") ne postoji!', |
— | — | @@ -4541,16 +4621,16 @@ |
4542 | 4622 | 'maintenance-initStats' => 'Använd detta formulär för att räkna om sajtens statistik, speciellt om du vill räkna om sidvisningar', |
4543 | 4623 | 'maintenance-moveBatch' => 'Använd detta formulär för att mass-flytta sidor. |
4544 | 4624 | Varje rad specifierar den nuvarande sidan och destinationssidan separerade med ett lodrätt streck (|)', |
4545 | | - 'maintenance-invalidtype' => 'Ogiltig typ!', |
| 4625 | + 'maintenance-error-invalidtype' => 'Ogiltig typ!', |
4546 | 4626 | 'maintenance-name' => 'Användarnamn', |
4547 | 4627 | 'maintenance-password' => 'Lösenord', |
4548 | 4628 | 'maintenance-bureaucrat' => 'Befodra en användare till en byråkrat', |
4549 | 4629 | 'maintenance-reason' => 'Anledning', |
4550 | 4630 | 'maintenance-update' => 'Använd UPPDATERA när du uppdaterar en tabell? Okryssade använder RADERA/INFOGA istället.', |
4551 | 4631 | 'maintenance-noviews' => 'Kolla det här för att förhindra uppdatering av sidvisningar', |
4552 | | - 'maintenance-confirm' => 'Bekräfta', |
| 4632 | + 'maintenance-option-confirm' => 'Bekräfta', |
4553 | 4633 | 'maintenance-invalidname' => 'Ogiltigt användarnamn!', |
4554 | | - 'maintenance-success' => '$1 kördes lyckat!', |
| 4634 | + 'maintenance-output-success' => '$1 kördes lyckat!', |
4555 | 4635 | 'maintenance-userexists' => 'Användaren existerar redan!', |
4556 | 4636 | 'maintenance-invalidtitle' => 'Ogiltig titel "$1"!', |
4557 | 4637 | 'maintenance-titlenoexist' => 'Titeln som specifierades ("$1") finns inte!', |
— | — | @@ -4606,14 +4686,6 @@ |
4607 | 4687 | 'maintenance-re-re' => 'Flyttar redigeringar{{int:ellipsis}} klart', |
4608 | 4688 | ); |
4609 | 4689 | |
4610 | | -/** Tamil (தமிழ்) |
4611 | | - * @author TRYPPN |
4612 | | - */ |
4613 | | -$messages['ta'] = array( |
4614 | | - 'maintenance-deleted' => 'நீக்கப்பட்டுவிட்டது', |
4615 | | - 'maintenance-memc-total' => 'மொத்தம்:', |
4616 | | -); |
4617 | | - |
4618 | 4690 | /** Telugu (తెలుగు) |
4619 | 4691 | * @author C.Chandra Kanth Rao |
4620 | 4692 | * @author Veeven |
— | — | @@ -4622,13 +4694,13 @@ |
4623 | 4695 | 'maintenance-changePassword-desc' => 'వాడుకరి యొక్క సంకేతపదం మార్చండి', |
4624 | 4696 | 'maintenance-initEditCount-desc' => 'వాడుకరులు మార్పుల సంఖ్యను మళ్లీ లెక్కించు', |
4625 | 4697 | 'maintenance-initStats-desc' => 'సైటు గణాంకాలని మళ్ళీ లెక్కించు', |
4626 | | - 'maintenance-invalidtype' => 'చెల్లని రకం!', |
| 4698 | + 'maintenance-error-invalidtype' => 'చెల్లని రకం!', |
4627 | 4699 | 'maintenance-name' => 'వాడుకరిపేరు', |
4628 | 4700 | 'maintenance-password' => 'సంకేతపదం', |
4629 | 4701 | 'maintenance-reason' => 'కారణం', |
4630 | | - 'maintenance-confirm' => 'నిర్ధారించండి', |
| 4702 | + 'maintenance-option-confirm' => 'నిర్ధారించండి', |
4631 | 4703 | 'maintenance-invalidname' => 'తప్పుడు వాడుకరిపేరు!', |
4632 | | - 'maintenance-success' => '$1 విజయవంతంగా నడిచింది!', |
| 4704 | + 'maintenance-output-success' => '$1 విజయవంతంగా నడిచింది!', |
4633 | 4705 | 'maintenance-userexists' => 'వాడుకరి ఇప్పటికే ఉన్నారు!', |
4634 | 4706 | 'maintenance-invalidtitle' => 'తప్పుడు శీర్షిక "$1"!', |
4635 | 4707 | 'maintenance-failed' => 'విఫలమైనది', |
— | — | @@ -4644,10 +4716,6 @@ |
4645 | 4717 | 'maintenance-memc-requests' => 'అభ్యర్థనలు', |
4646 | 4718 | 'maintenance-memc-total' => 'మొత్తం:', |
4647 | 4719 | 'maintenance-memc-invalid' => 'చెల్లనివి:', |
4648 | | - 'maintenance-memc-updates' => 'తాజాకరణలు:', |
4649 | | - 'maintenance-re-nf' => 'వాడుకరి $1 కనబడలేదు', |
4650 | | - 'maintenance-re-ce' => 'ప్రస్తుత మార్పుల: $1', |
4651 | | - 'maintenance-re-de' => 'తొలగించిన మార్పులు: $1', |
4652 | 4720 | ); |
4653 | 4721 | |
4654 | 4722 | /** Tetum (Tetun) |
— | — | @@ -4663,7 +4731,7 @@ |
4664 | 4732 | */ |
4665 | 4733 | $messages['th'] = array( |
4666 | 4734 | 'maintenance-reason' => 'เหตุผล', |
4667 | | - 'maintenance-confirm' => 'ยืนยัน', |
| 4735 | + 'maintenance-option-confirm' => 'ยืนยัน', |
4668 | 4736 | 'maintenance-memc-total' => 'รวม:', |
4669 | 4737 | ); |
4670 | 4738 | |
— | — | @@ -4707,16 +4775,16 @@ |
4708 | 4776 | 'maintenance-initStats' => 'Gamitin ang pormularyong ito upang muling tuusin ang mga estadistika ng sityo, na tinutukoy kung nais mo ring tuusing muli ang mga pagtingin sa pahina', |
4709 | 4777 | 'maintenance-moveBatch' => "Gamitin ang pormularyong ito upang malawakang makapaglipat ng mga pahina. |
4710 | 4778 | Dapat na tinutukoy ng bawat guhit ang isang pinagmulang pahina at kapupuntahang pahina na pinaghihiwalay ng isang \"tubo\" (''pipe'')", |
4711 | | - 'maintenance-invalidtype' => 'Hindi tanggap na uri!', |
| 4779 | + 'maintenance-error-invalidtype' => 'Hindi tanggap na uri!', |
4712 | 4780 | 'maintenance-name' => 'Pangalan ng tagagamit', |
4713 | 4781 | 'maintenance-password' => 'Hudyat', |
4714 | 4782 | 'maintenance-bureaucrat' => 'Itaas ang tagagamit patungo sa katayuang burokrato', |
4715 | 4783 | 'maintenance-reason' => 'Dahilan', |
4716 | 4784 | 'maintenance-update' => 'Gamitin ang ISAPANAHON kapag nagsasapanahon ng mga tabla? Sa halip nito, gumagamit ang mga hindi pa nasusuri ng BURAHIN/ISINGIT.', |
4717 | 4785 | 'maintenance-noviews' => 'Lagyan ito ng tsek upang maiwasan ang pagsasapanahon ng bilang ng mga pagtingin sa pahina', |
4718 | | - 'maintenance-confirm' => 'Tiyakin', |
| 4786 | + 'maintenance-option-confirm' => 'Tiyakin', |
4719 | 4787 | 'maintenance-invalidname' => 'Hindi tanggap na pangalan ng tagagamit!', |
4720 | | - 'maintenance-success' => 'Matagumpay na tumakbo ang $1!', |
| 4788 | + 'maintenance-output-success' => 'Matagumpay na tumakbo ang $1!', |
4721 | 4789 | 'maintenance-userexists' => 'Umiiral na ang tagagamit!', |
4722 | 4790 | 'maintenance-invalidtitle' => 'Hindi tanggap na pamagat ang "$1"!', |
4723 | 4791 | 'maintenance-titlenoexist' => 'Hindi umiiral ang tinukoy na pamagat ("$1")!', |
— | — | @@ -4790,12 +4858,12 @@ |
4791 | 4859 | 'maintenance-initStats-desc' => 'Site istatistiklerini tekrar hesapla', |
4792 | 4860 | 'maintenance-moveBatch-desc' => 'Sayfaları toplu taşı', |
4793 | 4861 | 'maintenance-runJobs-desc' => 'İş kuyruğunda işleri yürüt', |
4794 | | - 'maintenance-invalidtype' => 'Geçersiz tür!', |
| 4862 | + 'maintenance-error-invalidtype' => 'Geçersiz tür!', |
4795 | 4863 | 'maintenance-name' => 'Kullanıcı adı', |
4796 | 4864 | 'maintenance-password' => 'Parola', |
4797 | 4865 | 'maintenance-bureaucrat' => 'Kullanıcıyı bürokrat statüsüne yükselt', |
4798 | 4866 | 'maintenance-reason' => 'Neden', |
4799 | | - 'maintenance-confirm' => 'Onayla', |
| 4867 | + 'maintenance-option-confirm' => 'Onayla', |
4800 | 4868 | 'maintenance-invalidname' => 'Geçersiz kullanıcı adı!', |
4801 | 4869 | 'maintenance-userexists' => 'Kullanıcı zaten mevcut!', |
4802 | 4870 | 'maintenance-failed' => 'BAŞARISIZ', |
— | — | @@ -4834,7 +4902,7 @@ |
4835 | 4903 | 'maintenance-name' => 'ئىشلەتكۇچى ئىسمى', |
4836 | 4904 | ); |
4837 | 4905 | |
4838 | | -/** Uighur (Latin) (ئۇيغۇرچە / Uyghurche (Latin)) |
| 4906 | +/** Uighur (Latin) (Uyghurche / ئۇيغۇرچە (Latin)) |
4839 | 4907 | * @author Jose77 |
4840 | 4908 | */ |
4841 | 4909 | $messages['ug-latn'] = array( |
— | — | @@ -4846,54 +4914,20 @@ |
4847 | 4915 | * @author Тест |
4848 | 4916 | */ |
4849 | 4917 | $messages['uk'] = array( |
4850 | | - 'maintenance' => 'Запуск скриптів обслуговування', |
4851 | | - 'maintenance-desc' => '[[Special:Maintenance|Вікі інтерфейс]] для різноманітних скриптів обслуговування', |
4852 | | - 'right-maintenance' => 'Запуск скриптів обслуговування через [[Special:Maintenance]]', |
4853 | | - 'maintenance-backlink' => 'Повернутися до вибору скрипту', |
4854 | | - 'maintenance-initEditCount-desc' => 'Перерахувати кількість редагувань користувачів', |
4855 | | - 'maintenance-initStats-desc' => 'Перерахувати статистику сайту', |
4856 | | - 'maintenance-invalidtype' => 'Невірний тип!', |
4857 | | - 'maintenance-name' => "Ім'я користувача", |
4858 | | - 'maintenance-password' => 'Пароль', |
4859 | 4918 | 'maintenance-reason' => 'Причина', |
4860 | 4919 | 'maintenance-confirm' => 'Підтвердити', |
4861 | | - 'maintenance-invalidname' => "Неправильне ім'я користувача!", |
4862 | | - 'maintenance-userexists' => 'Користувач вже існує!', |
4863 | | - 'maintenance-invalidtitle' => 'Неприпустима назва "$1"!', |
4864 | | - 'maintenance-titlenoexist' => 'Вказаного заголовку ("$1") не існує!', |
4865 | | - 'maintenance-deleted' => 'ВИЛУЧЕНО', |
4866 | | - 'maintenance-revnotfound' => 'Версію $1 не знайдено!', |
4867 | | - 'maintenance-stats-edits' => 'Кількість редагувань: $1', |
4868 | | - 'maintenance-stats-articles' => 'Кількість сторінок в основному просторі назв: $1', |
4869 | | - 'maintenance-stats-pages' => 'Кількість сторінок: $1', |
4870 | | - 'maintenance-stats-users' => 'Кількість користувачів: $1', |
4871 | | - 'maintenance-stats-admins' => 'Кількість адміністраторів: $1', |
4872 | | - 'maintenance-stats-images' => 'Кількість файлів: $1', |
4873 | | - 'maintenance-stats-views' => 'Кількість переглядів сторінок: $1', |
4874 | | - 'maintenance-stats-update' => 'Оновлення бази даних{{int:ellipsis}}', |
4875 | | - 'maintenance-error' => 'Помилка: $1', |
4876 | | - 'maintenance-memc-requests' => 'Запити', |
4877 | | - 'maintenance-memc-total' => 'всього:', |
4878 | | - 'maintenance-memc-parsercache' => 'Кеш парсера', |
4879 | | - 'maintenance-memc-imagecache' => 'Кеш зображень', |
4880 | | - 'maintenance-re-nf' => 'Користувача $1 не знайдено', |
4881 | 4920 | ); |
4882 | 4921 | |
4883 | | -/** Urdu (اردو) */ |
4884 | | -$messages['ur'] = array( |
4885 | | - 'maintenance-reason' => 'وجہ', |
4886 | | -); |
4887 | | - |
4888 | 4922 | /** Veps (Vepsan kel') |
4889 | 4923 | * @author Игорь Бродский |
4890 | 4924 | */ |
4891 | 4925 | $messages['vep'] = array( |
4892 | | - 'maintenance-invalidtype' => 'Vär tip!', |
| 4926 | + 'maintenance-error-invalidtype' => 'Vär tip!', |
4893 | 4927 | 'maintenance-name' => 'Kävutajan nimi', |
4894 | 4928 | 'maintenance-password' => 'Peitsana', |
4895 | 4929 | 'maintenance-bureaucrat' => 'Panda kävutai bürokrataks', |
4896 | 4930 | 'maintenance-reason' => 'Sü', |
4897 | | - 'maintenance-confirm' => 'Vahvištoitta', |
| 4931 | + 'maintenance-option-confirm' => 'Vahvištoitta', |
4898 | 4932 | 'maintenance-invalidname' => 'Vär kävutajannimi!', |
4899 | 4933 | 'maintenance-failed' => 'ONETOMAŠTI', |
4900 | 4934 | 'maintenance-deleted' => 'ČUTUD POIŠ', |
— | — | @@ -4936,16 +4970,16 @@ |
4937 | 4971 | 'maintenance-initStats' => 'Sử dụng mẫu này để tính lại các thống kê của trang, hãy chỉ rõ nếu bạn cũng muốn tính lại số lần xem trang', |
4938 | 4972 | 'maintenance-moveBatch' => 'Sử dụng mẫu này để di chuyển trang hàng loạt. |
4939 | 4973 | Mỗi dòng nên ghi rõ trang nguồn và trang đích, cách nhau bằng dấu sọc đứng', |
4940 | | - 'maintenance-invalidtype' => 'Kiểu không hợp lệ!', |
| 4974 | + 'maintenance-error-invalidtype' => 'Kiểu không hợp lệ!', |
4941 | 4975 | 'maintenance-name' => 'Tên người dùng', |
4942 | 4976 | 'maintenance-password' => 'Mật khẩu', |
4943 | 4977 | 'maintenance-bureaucrat' => 'Thăng người này làm hành chính viên', |
4944 | 4978 | 'maintenance-reason' => 'Lý do', |
4945 | 4979 | 'maintenance-update' => 'Có sử dụng UPDATE khi cập nhật một bảng? Thay vào đó hãy bỏ chọn cách dùng DELETE/INSERT.', |
4946 | 4980 | 'maintenance-noviews' => 'Chọn cái này để ngăn cập nhật số lần xem trang', |
4947 | | - 'maintenance-confirm' => 'Xác nhận', |
| 4981 | + 'maintenance-option-confirm' => 'Xác nhận', |
4948 | 4982 | 'maintenance-invalidname' => 'Tên người dùng không hợp lệ!', |
4949 | | - 'maintenance-success' => '$1 đã chạy thành công!', |
| 4983 | + 'maintenance-output-success' => '$1 đã chạy thành công!', |
4950 | 4984 | 'maintenance-userexists' => 'Người dùng đã tồn tại!', |
4951 | 4985 | 'maintenance-invalidtitle' => 'Tựa đề “$1” không hợp lệ!', |
4952 | 4986 | 'maintenance-titlenoexist' => 'Tựa đề chỉ định (“$1”) không tồn tại!', |
— | — | @@ -5005,12 +5039,12 @@ |
5006 | 5040 | 'maintenance-initStats' => 'Gebolös fometi at ad dönukalkulön statitis topädik. Mäniotolös, if vilol dönukalkulön i padilogamis.', |
5007 | 5041 | 'maintenance-moveBatch' => 'Gebolös fometi at ad topätükön padamödoti. |
5008 | 5042 | Lien alik muton ninädön fonätapadi e zeilapadi pateilölis dub malat: „|“', |
5009 | | - 'maintenance-invalidtype' => 'Sot no lonöföl!', |
| 5043 | + 'maintenance-error-invalidtype' => 'Sot no lonöföl!', |
5010 | 5044 | 'maintenance-name' => 'Gebananem', |
5011 | 5045 | 'maintenance-password' => 'Letavöd', |
5012 | 5046 | 'maintenance-bureaucrat' => 'Gevön gebane stadi bürana', |
5013 | 5047 | 'maintenance-reason' => 'Kod', |
5014 | | - 'maintenance-confirm' => 'Fümedön', |
| 5048 | + 'maintenance-option-confirm' => 'Fümedön', |
5015 | 5049 | 'maintenance-invalidname' => 'Gebananem no lonöfon!', |
5016 | 5050 | 'maintenance-userexists' => 'Geban ya dabinon!', |
5017 | 5051 | 'maintenance-invalidtitle' => 'Tiäd no lonöföl: „$1“!', |
— | — | @@ -5041,13 +5075,6 @@ |
5042 | 5076 | 'maintenance-re-re' => 'Redakams padönugivülons{{int:ellipsis}} peledunon.', |
5043 | 5077 | ); |
5044 | 5078 | |
5045 | | -/** Walloon (Walon) |
5046 | | - * @author Lucyin |
5047 | | - */ |
5048 | | -$messages['wa'] = array( |
5049 | | - 'maintenance-deleted' => 'DISFACÉ', |
5050 | | -); |
5051 | | - |
5052 | 5079 | /** Wu (吴语) */ |
5053 | 5080 | $messages['wuu'] = array( |
5054 | 5081 | 'maintenance-reason' => '理由:', |
— | — | @@ -5060,8 +5087,7 @@ |
5061 | 5088 | 'maintenance-name' => 'באַניצער נאָמען', |
5062 | 5089 | 'maintenance-password' => 'פאַסווארט', |
5063 | 5090 | 'maintenance-reason' => 'אורזאַך', |
5064 | | - 'maintenance-confirm' => 'באַשטעטיגן', |
5065 | | - 'maintenance-invalidname' => 'אומגילטיקער באַניצער נאָמען!', |
| 5091 | + 'maintenance-option-confirm' => 'באַשטעטיגן', |
5066 | 5092 | ); |
5067 | 5093 | |
5068 | 5094 | /** Simplified Chinese (中文(简体)) |
— | — | @@ -5073,7 +5099,7 @@ |
5074 | 5100 | 'maintenance-name' => '使用者名称', |
5075 | 5101 | 'maintenance-password' => '密码', |
5076 | 5102 | 'maintenance-reason' => '原因', |
5077 | | - 'maintenance-confirm' => '确认', |
| 5103 | + 'maintenance-option-confirm' => '确认', |
5078 | 5104 | 'maintenance-memc-requests' => '请求', |
5079 | 5105 | ); |
5080 | 5106 | |
— | — | @@ -5089,7 +5115,7 @@ |
5090 | 5116 | 'maintenance-name' => '使用者名稱', |
5091 | 5117 | 'maintenance-password' => '密碼', |
5092 | 5118 | 'maintenance-reason' => '原因', |
5093 | | - 'maintenance-confirm' => '確認', |
| 5119 | + 'maintenance-option-confirm' => '確認', |
5094 | 5120 | 'maintenance-invalidname' => '無效的使用者名稱!', |
5095 | 5121 | 'maintenance-userexists' => '用戶已存在!', |
5096 | 5122 | 'maintenance-invalidtitle' => '無效的標題「$1」!', |
Index: trunk/extensions/Maintenance/Maintenance.php |
— | — | @@ -4,7 +4,7 @@ |
5 | 5 | * |
6 | 6 | * @file |
7 | 7 | * @ingroup Extensions |
8 | | - * @version 1.0.1 |
| 8 | + * @version 2.0.0 |
9 | 9 | * @author Ryan Schmidt |
10 | 10 | * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later |
11 | 11 | * @link http://www.mediawiki.org/wiki/Extension:Maintenance Documentation |
— | — | @@ -20,7 +20,7 @@ |
21 | 21 | 'path' => __FILE__, |
22 | 22 | 'name' => 'Maintenance', |
23 | 23 | 'author' => 'Ryan Schmidt', |
24 | | - 'version' => '1.0.3', |
| 24 | + 'version' => '2.0.0', |
25 | 25 | 'descriptionmsg' => 'maintenance-desc', |
26 | 26 | 'url' => 'http://www.mediawiki.org/wiki/Extension:Maintenance', |
27 | 27 | ); |
Index: trunk/extensions/Maintenance/metadata.ini |
— | — | @@ -0,0 +1,338 @@ |
| 2 | +;Script metadata file for Special:Maintenance
|
| 3 | +;used to populate the form as well as localise the output messages
|
| 4 | +;do not edit this file unless you know what you are doing
|
| 5 | +;valid keys: option, arg, error, output, stdin, batch, enabled
|
| 6 | +
|
| 7 | +[attachLatest]
|
| 8 | +option = "fix check 0"
|
| 9 | +output[] = "begin string Looking for pages with page_latest set to 0..."
|
| 10 | +output[] = "notime regex (.*) (.*) \[\[(.*)\]\] can't find latest rev time\?!"
|
| 11 | +output[] = "norev regex (.*) (.*) \[\[(.*)\]\] latest time (.*), can't find revision id"
|
| 12 | +output[] = "found regex (.*) (.*) \[\[(.*)\]\] latest time (.*), rev id (.*)"
|
| 13 | +output[] = "done regex Done! Processed (.*) pages\."
|
| 14 | +output[] = "dryrun string This was a dry run; rerun with --fix to update page_latest."
|
| 15 | +
|
| 16 | +[benchmarkPurge]
|
| 17 | +option = "count input"
|
| 18 | +error = "nosquid string Squid purge benchmark doesn't do much without squid support on."
|
| 19 | +output[] = "numsquids regex There are (.*) defined squid servers:"
|
| 20 | +output[] = "trial regex (.*) titles in (.*)ms \((.*)ms each\)"
|
| 21 | +
|
| 22 | +[changePassword]
|
| 23 | +option[] = "user input"
|
| 24 | +option[] = "password password"
|
| 25 | +error = "nouser regex No such user: (.*)"
|
| 26 | +output = "set regex Password set for (.*)"
|
| 27 | +
|
| 28 | +[checkAutoLoader]
|
| 29 | +output[] = "list1 regex \t'(.*)' => '(.*)',"
|
| 30 | +output[] = "list2 regex (.*): Wrong file: found in (.*), listed in (.*)"
|
| 31 | +
|
| 32 | +[checkBadRedirects]
|
| 33 | +output[] = "header string Fetching redirects..."
|
| 34 | +output[] = "found regex Found (.*) total redirects\.\nLooking for bad redirects\.\.\."
|
| 35 | +output[] = "footer string done."
|
| 36 | +
|
| 37 | +[checkImages]
|
| 38 | +batch = 1000
|
| 39 | +output[] = "noaccess regex (.*): not locally accessible"
|
| 40 | +output[] = "missing regex (.*): missing"
|
| 41 | +output[] = "isdir regex (.*): is a directory"
|
| 42 | +output[] = "truncated regex (.*): truncated, was (.*)"
|
| 43 | +output[] = "mismatch regex (.*): size mismatch DB=(.*), actual=(.*)"
|
| 44 | +output[] = "good regex Good images: (.*)\/(.*)"
|
| 45 | +
|
| 46 | +[checkSyntax]
|
| 47 | +option[] = "with-extensions check 0"
|
| 48 | +option[] = "path input"
|
| 49 | +option[] = "list-file textarea lstfile.tmp"
|
| 50 | +option[] = "modified check 0"
|
| 51 | +option[] = "syntax-only check 0"
|
| 52 | +output[] = "parsekit string Checking syntax (using parsekit)"
|
| 53 | +output[] = "phpl string Checking syntax (using php -l, this can take a long time)"
|
| 54 | +output[] = "footer regex Done! (.*) files checked, (.*) failures and (.*) warnings found"
|
| 55 | +output[] = "svnlist string Retrieving list from Subversion..."
|
| 56 | +output[] = "done regex done(\.?)"
|
| 57 | +output[] = "buildlist string Building file list..."
|
| 58 | +output[] = "error regex Error in (.*) line (.*): (.*)"
|
| 59 | +output[] = "warning regex Warning in file (.*): (.*) found"
|
| 60 | +error[] = "nofile regex Error: can't find file or directory (.*)"
|
| 61 | +error[] = "cantopen regex Can't open file (.*)"
|
| 62 | +error[] = "svnerr string Error retrieving list from Subversion!"
|
| 63 | +
|
| 64 | +[checkUsernames]
|
| 65 | +error = "notvalid regex (.*): ([0-9]+): '(.*)'"
|
| 66 | +
|
| 67 | +[cleanupCaps]
|
| 68 | +option[] = "dry-run check 0"
|
| 69 | +option[] = "namespace input"
|
| 70 | +output[] = "islower regex \"(.*)\" already lowercase\."
|
| 71 | +output[] = "clash regex \"(.*)\" skipped; \"(.*)\" already exists"
|
| 72 | +output[] = "dryrun regex \"(.*)\" -> \"(.*)\": DRY RUN, NOT MOVED"
|
| 73 | +output[] = "moved regex \"(.*)\" -> \"(.*)\": (.*)"
|
| 74 | +output[] = "check string Checking for bad titles..."
|
| 75 | +output[] = "checkfix string Checking and fixing bad titles..."
|
| 76 | +output[] = "progress regex (.*) (.*): (.*)% done on (.*); ETA (.*) \[(.*)/(.*)\] (.*)\/sec <(.*)% updated>"
|
| 77 | +output[] = "processing regex Processing (.*)\.\.\."
|
| 78 | +output[] = "finished regex Finished (.*)\.\.\. (.*) of (.*) rows updated"
|
| 79 | +error[] = "noneed string $wgCapitalLinks is on -- no need for caps links cleanup."
|
| 80 | +error[] = "missingparam regex (.*): Missing parameter (.*)"
|
| 81 | +
|
| 82 | +[cleanupImages]
|
| 83 | +enabled = 0
|
| 84 | +
|
| 85 | +[cleanupSpam]
|
| 86 | +enabled = 0
|
| 87 | +
|
| 88 | +[cleanupTitles]
|
| 89 | +enabled = 0
|
| 90 | +
|
| 91 | +[cleanupWatchlist]
|
| 92 | +enabled = 0
|
| 93 | +
|
| 94 | +[clear_interwiki_cache]
|
| 95 | +enabled = 0
|
| 96 | +
|
| 97 | +[clear_stats]
|
| 98 | +enabled = 0
|
| 99 | +
|
| 100 | +[convertLinks]
|
| 101 | +enabled = 0
|
| 102 | +
|
| 103 | +[convertUserOptions]
|
| 104 | +enabled = 0
|
| 105 | +
|
| 106 | +[createAndPromote]
|
| 107 | +enabled = 0
|
| 108 | +
|
| 109 | +[deleteArchivedFiles]
|
| 110 | +enabled = 0
|
| 111 | +
|
| 112 | +[deleteArchivedRevisions]
|
| 113 | +enabled = 0
|
| 114 | +
|
| 115 | +[deleteBatch]
|
| 116 | +enabled = 0
|
| 117 | +
|
| 118 | +[deleteDefaultMessages]
|
| 119 | +enabled = 0
|
| 120 | +
|
| 121 | +[deleteImageMemcached]
|
| 122 | +enabled = 0
|
| 123 | +
|
| 124 | +[deleteOldRevisions]
|
| 125 | +enabled = 0
|
| 126 | +
|
| 127 | +[deleteOrphanedRevisions]
|
| 128 | +enabled = 0
|
| 129 | +
|
| 130 | +[deleteRevision]
|
| 131 | +enabled = 0
|
| 132 | +
|
| 133 | +[deleteSelfExternals]
|
| 134 | +enabled = 0
|
| 135 | +
|
| 136 | +[dumpLinks]
|
| 137 | +enabled = 0
|
| 138 | +
|
| 139 | +[dumpSisterSites]
|
| 140 | +enabled = 0
|
| 141 | +
|
| 142 | +[dumpUploads]
|
| 143 | +enabled = 0
|
| 144 | +
|
| 145 | +[edit]
|
| 146 | +enabled = 0
|
| 147 | +
|
| 148 | +[fetchText]
|
| 149 | +enabled = 0
|
| 150 | +
|
| 151 | +[findhooks]
|
| 152 | +enabled = 0
|
| 153 | +
|
| 154 | +[fixSlaveDesync]
|
| 155 | +enabled = 0
|
| 156 | +
|
| 157 | +[fixTimestamps]
|
| 158 | +enabled = 0
|
| 159 | +
|
| 160 | +[fixUserRegistration]
|
| 161 | +enabled = 0
|
| 162 | +
|
| 163 | +[generateSitemap]
|
| 164 | +enabled = 0
|
| 165 | +
|
| 166 | +[getLagTimes]
|
| 167 | +enabled = 0
|
| 168 | +
|
| 169 | +[getSlaveServer]
|
| 170 | +enabled = 0
|
| 171 | +
|
| 172 | +[getText]
|
| 173 | +enabled = 0
|
| 174 | +
|
| 175 | +[httpSessionDownload]
|
| 176 | +enabled = 0
|
| 177 | +
|
| 178 | +[initEditCount]
|
| 179 | +enabled = 0
|
| 180 | +
|
| 181 | +[initStats]
|
| 182 | +enabled = 0
|
| 183 | +
|
| 184 | +[lag]
|
| 185 | +enabled = 0
|
| 186 | +
|
| 187 | +[mctest]
|
| 188 | +enabled = 0
|
| 189 | +
|
| 190 | +[mergeMessageFileList]
|
| 191 | +enabled = 0
|
| 192 | +
|
| 193 | +[migrateUserGroup]
|
| 194 | +enabled = 0
|
| 195 | +
|
| 196 | +[minify]
|
| 197 | +enabled = 0
|
| 198 | +
|
| 199 | +[moveBatch]
|
| 200 | +enabled = 0
|
| 201 | +
|
| 202 | +[namespaceDupes]
|
| 203 | +enabled = 0
|
| 204 | +
|
| 205 | +[nextJobDB]
|
| 206 | +enabled = 0
|
| 207 | +
|
| 208 | +[nukeNS]
|
| 209 | +enabled = 0
|
| 210 | +
|
| 211 | +[nukePage]
|
| 212 | +enabled = 0
|
| 213 | +
|
| 214 | +[orphans]
|
| 215 | +enabled = 0
|
| 216 | +
|
| 217 | +[patchSql]
|
| 218 | +enabled = 0
|
| 219 | +
|
| 220 | +[populateCategory]
|
| 221 | +enabled = 0
|
| 222 | +
|
| 223 | +[populateLogSearch]
|
| 224 | +enabled = 0
|
| 225 | +
|
| 226 | +[populateLogUsertext]
|
| 227 | +enabled = 0
|
| 228 | +
|
| 229 | +[populateParentId]
|
| 230 | +enabled = 0
|
| 231 | +
|
| 232 | +[populateRevisionLength]
|
| 233 | +enabled = 0
|
| 234 | +
|
| 235 | +[populateSha1]
|
| 236 | +enabled = 0
|
| 237 | +
|
| 238 | +[protect]
|
| 239 | +enabled = 0
|
| 240 | +
|
| 241 | +[purgeList]
|
| 242 | +enabled = 0
|
| 243 | +
|
| 244 | +[purgeOldText]
|
| 245 | +enabled = 0
|
| 246 | +
|
| 247 | +[reassignEdits]
|
| 248 | +enabled = 0
|
| 249 | +
|
| 250 | +[rebuildall]
|
| 251 | +enabled = 0
|
| 252 | +
|
| 253 | +[rebuildFileCache]
|
| 254 | +enabled = 0
|
| 255 | +
|
| 256 | +[rebuildLocalisationCache]
|
| 257 | +enabled = 0
|
| 258 | +
|
| 259 | +[rebuildmessages]
|
| 260 | +enabled = 0
|
| 261 | +
|
| 262 | +[rebuildrecentchanges]
|
| 263 | +enabled = 0
|
| 264 | +
|
| 265 | +[rebuildtextindex]
|
| 266 | +enabled = 0
|
| 267 | +
|
| 268 | +[refreshCategoryCounts]
|
| 269 | +enabled = 0
|
| 270 | +
|
| 271 | +[refreshImageCount]
|
| 272 | +enabled = 0
|
| 273 | +
|
| 274 | +[refreshLinks]
|
| 275 | +enabled = 0
|
| 276 | +
|
| 277 | +[removeUnusedAccounts]
|
| 278 | +enabled = 0
|
| 279 | +
|
| 280 | +[renameDbPrefix]
|
| 281 | +enabled = 0
|
| 282 | +
|
| 283 | +[renderDump]
|
| 284 | +enabled = 0
|
| 285 | +
|
| 286 | +[rollbackEdits]
|
| 287 | +enabled = 0
|
| 288 | +
|
| 289 | +[runBatchedQuery]
|
| 290 | +enabled = 0
|
| 291 | +
|
| 292 | +[runJobs]
|
| 293 | +option[] = "maxjobs input"
|
| 294 | +option[] = "type input"
|
| 295 | +;option[] = "procs input" ;Commented out by default since we're running on a web interface
|
| 296 | +option[] = "exclusive check 0"
|
| 297 | +output = "job regex (.*)"
|
| 298 | +error = "invalidprocs string Invalid argument to --procs"
|
| 299 | +
|
| 300 | +[showJobs]
|
| 301 | +option = "group check 0"
|
| 302 | +output = "job regex (.*)"
|
| 303 | +
|
| 304 | +[showStats]
|
| 305 | +enabled = 0
|
| 306 | +
|
| 307 | +[sql]
|
| 308 | +arg = "file textarea tmpfile"
|
| 309 | +output[] = "aff regex Query OK, (.*) row\(s\) affected"
|
| 310 | +output[] = "row regex (.*)"
|
| 311 | +error[] = "cantopen string Unable to open input file"
|
| 312 | +error[] = "sql regex (.*)"
|
| 313 | +
|
| 314 | +[sqlite]
|
| 315 | +enabled = 0
|
| 316 | +
|
| 317 | +[stats]
|
| 318 | +enabled = 0
|
| 319 | +
|
| 320 | +[undelete]
|
| 321 | +enabled = 0
|
| 322 | +
|
| 323 | +[updateArticleCount]
|
| 324 | +enabled = 0
|
| 325 | +
|
| 326 | +[updateDoubleWidthSearch]
|
| 327 | +enabled = 0
|
| 328 | +
|
| 329 | +[updateRestrictions]
|
| 330 | +enabled = 0
|
| 331 | +
|
| 332 | +[updateSearchIndex]
|
| 333 | +enabled = 0
|
| 334 | +
|
| 335 | +[updateSpecialPages]
|
| 336 | +enabled = 0
|
| 337 | +
|
| 338 | +[waitForSlave]
|
| 339 | +enabled = 0
|