Index: trunk/extensions/DynamicPageList/DynamicPageList2.i18n.php |
— | — | @@ -155,24 +155,24 @@ |
156 | 156 | * $1: wrong parameter given by user |
157 | 157 | * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special) |
158 | 158 | */ |
159 | | - 'dpl2_log_' . self::FATAL_WRONGNS => "?????: ????? '$0' ????: '$1'! ????: <code>$0= <i>?????? ????</i> (????)$3</code>. (???? ?????? ?? ????? ??? ??????? ????? ???.)", |
| 159 | + 'dpl2_log_' . self::FATAL_WRONGNS => "שגיאה: פרמטר '$0' שגוי: '$1'! עזרה: <code>$0= <i>מחרוזת ריקה</i> (ראשי)$3</code>. (ניתן להשתמש גם בשווי ערך באמצעות מילות קסם.)", |
160 | 160 | /** |
161 | 161 | * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future) |
162 | 162 | * $1: wrong parameter given by user |
163 | 163 | */ |
164 | | - 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "?????: ????? '$0' ????: '$1'! ????: <code>$0= <i>?? ??? ????</i></code>. (???? ?????? ?????? ???.)", |
| 164 | + 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "שגיאה: פרמטר '$0' שגוי: '$1'! עזרה: <code>$0= <i>שם הדף המלא</i></code>. (ניתן להשתמש במילות קסם.)", |
165 | 165 | /** |
166 | 166 | * $0: max number of categories that can be included |
167 | 167 | */ |
168 | | - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '?????: ???????? ???? ???! ???????: $0. ????: ???? ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ??? ????? ??? ???????? ?? ?????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ??? ???? ?? ??????. (?????? ?? ?????? ????? <code>LocalSettings.php</code>, ???? ????? <code>DynamicPageList2.php</code>.)', |
| 168 | + 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'שגיאה: קטגוריות רבות מדי! מקסימום: $0. עזרה: העלו את <code>ExtDynamicPageList2::$maxCategoryCount</code> כדי לציין עוד קטגוריות או הגדירו <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> כדי לבטל את ההגבלה. (הגידרו את המשתנה בקובץ <code>LocalSettings.php</code>, לאחר הכללת <code>DynamicPageList2.php</code>.)', |
169 | 169 | /** |
170 | 170 | * $0: min number of categories that have to be included |
171 | 171 | */ |
172 | | - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '?????: ???????? ????? ???! ???????: $0. ????: ?????? ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??? ????? ???? ????????. (?????? ?? ?????? ????? <code>LocalSettings.php</code>, ???? ????? <code>DynamicPageList2.php</code>.)', |
| 172 | + 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'שגיאה: קטגוריות מעטות מדי! מינימום: $0. עזרה: הורידו את <code>ExtDynamicPageList2::$minCategoryCount</code> כדי לציין פחות קטגוריות. (הגידרו את המשתנה בקובץ <code>LocalSettings.php</code>, לאחר הכללת <code>DynamicPageList2.php</code>.)', |
173 | 173 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
174 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "?????: ????? ?????? ????? ??????? ??? ?? ??????? ?????? ??'addfirstcategorydate=true' ?? ??'ordermethod=categoryadd'!", |
175 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "?????: ?? ??? ??????? ???? ???????? ???, ????? ?????? ?????? ??'addfirstcategorydate=true' ?? ??'ordermethod=categoryadd'!", |
176 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '?????: ????? ?????? ?????? ???? ???? ??? ?? ????? ?? ?????!', |
| 174 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "שגיאה: עליכם להכליל לפחות קטגוריה אחת אם ברצונכם להשתמש ב־'addfirstcategorydate=true' או ב־'ordermethod=categoryadd'!", |
| 175 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "שגיאה: אם אתם מכלילים יותר מקטגוריה אחת, אינכם יכולים להשתמש ב־'addfirstcategorydate=true' או ב־'ordermethod=categoryadd'!", |
| 176 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'שגיאה: אינכם יכולים להוסיף יותר מסוג אחד של תאריך בו זמנית!', |
177 | 177 | /** |
178 | 178 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
179 | 179 | * $1: last 'ordermethod' parameter required for $0 |
— | — | @@ -186,7 +186,7 @@ |
187 | 187 | * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names |
188 | 188 | * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB |
189 | 189 | */ |
190 | | - 'dpl2_log_' . self::FATAL_NOCLVIEW => "?????: ?? ???? ???? ?????? ?????? ?? ???? ??? ???????? (????, ?? ?????? '???????') ????? ?????? $0 ???? ????? ???? ???????! ????: ???? ??? ??????? ???? ????? ?? ???????: <code>$1</code>.", |
| 190 | + 'dpl2_log_' . self::FATAL_NOCLVIEW => "שגיאה: לא ניתן לבצע פעולות לוגיות על דפים ללא קטגוריות (למשל, עם הפרמטר 'קטגוריה') כיוון שתצוגת $0 אינה קיימת במסד הנתונים! עזרה: מנהל מסד הנתונים צריך להריץ את השאילתה: <code>$1</code>.", |
191 | 191 | 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.', |
192 | 192 | |
193 | 193 | // WARN |
— | — | @@ -194,38 +194,38 @@ |
195 | 195 | * $0: unknown parameter given by user |
196 | 196 | * $1: list of DPL2 available parameters separated by ', ' |
197 | 197 | */ |
198 | | - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "?????: ????? ??????? ??????? ??? ???? '$0'. ????: ??????? ??????: <code>$1</code>.", |
| 198 | + 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "אזהרה: בוצעה התעלמות מהפרמטר הלא ידוע '$0'. עזרה: פרמטרים זמינים: <code>$1</code>.", |
199 | 199 | /** |
200 | 200 | * $3: list of valid param values separated by ' | ' |
201 | 201 | */ |
202 | | - 'dpl2_log_' . self::WARN_WRONGPARAM => "?????: ????? '$0' ????: '$1'! ????? ?????? ?????: '$2'. ????: <code>$0= $3</code>.", |
| 202 | + 'dpl2_log_' . self::WARN_WRONGPARAM => "אזהרה: פרמטר '$0' שגוי: '$1'! משתמש בברירת המחדל: '$2'. עזרה: <code>$0= $3</code>.", |
203 | 203 | /** |
204 | 204 | * $0: param name |
205 | 205 | * $1: wrong param value given by user |
206 | 206 | * $2: default param value used instead by program |
207 | 207 | */ |
208 | | - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "?????: ????? '$0' ????: '$1'! ????? ?????? ?????: '$2' (??? ?????). ????: <code>$0= <i>?????? ????</i> (??? ?????) | n</code>, ?? <code>n</code> ????? ??? ??????.", |
| 208 | + 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "אזהרה: פרמטר '$0' שגוי: '$1'! משתמש בברירת המחדל: '$2' (ללא הגבלה). עזרה: <code>$0= <i>מחרוזת ריקה</i> (ללא הגבלה) | n</code>, עם <code>n</code> כמספר שלם וחיובי.", |
209 | 209 | 'dpl2_log_' . self::WARN_NORESULTS => '?????: ??? ??????!', |
210 | | - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "?????: ??????* ???????? ('adduser',? 'addeditdate' ??????) ??? ??'includepage' ??? ????? ?? 'mode=category'. ???? ????? ?? ????? ??? ?? ?????? ??? ???? ??.", |
| 210 | + 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "אזהרה: להוספת* הפרמטרים ('adduser', 'addeditdate' וכדומה) וכן ל־'includepage' אין השפעה עם 'mode=category'. ניתן לצפות רק במרחב השם או בכותרת הדף במצב זה.", |
211 | 211 | /** |
212 | 212 | * $0: 'headingmode' value given by user |
213 | 213 | * $1: value used instead by program (which means no heading) |
214 | 214 | */ |
215 | | - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "?????: ??'headingmode=$0' ??? ????? ?? 'ordermethod' ?? ???? ????. ????? ?: '$1'. ????: ????????? ?????? ?????? ?? 'headingmode' ????? $1 ?? 'ordermethod' ?? ?????? ??????. ??????? ????? ?????? ??????. ????, 'ordermethod=category,<i>comp</i>' (<i>comp</i> ??? ???? ???) ??????? ????????.", |
| 215 | + 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "אזהרה: ל־'headingmode=$0' אין השפעה עם 'ordermethod' על פריט יחיד. משתמש ב: '$1'. עזרה: באפשרותכם להשתמש בערכים של 'headingmode' שאינם $1 עם 'ordermethod' על פריטים מרובים. משתמשים בפריט הראשון לכותרת. למשל, 'ordermethod=category,<i>comp</i>' (<i>comp</i> הוא פריט אחר) לכותרות הקטגוריה.", |
216 | 216 | /** |
217 | 217 | * $0: 'debug' value |
218 | 218 | */ |
219 | | - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "?????: 'debug=$0w ??? ?? ????? ?????? ????? ??DPL. ?????? ????? ??????? ?????? ?? ????? ???? ??? ???????? ??????? ?????? ???????.", |
| 219 | + 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "אזהרה: 'debug=$0w הוא לא במקום הראשון ברכיב ה־DPL. הגדרות ניפוי השגיאות החדשות לא יחולו לפני שכל הפרמטרים הקודמים ינותחו וייבדקו.", |
220 | 220 | /** |
221 | 221 | * $0: title of page that creates an infinite transclusion loop |
222 | 222 | */ |
223 | | - 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "?????: ????? ????? ???????? ????? ??? '$0'.", |
| 223 | + 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "אזהרה: לולאת הכללה אינסופית נוצרה בדף '$0'.", |
224 | 224 | |
225 | 225 | // DEBUG |
226 | 226 | /** |
227 | 227 | * $0: SQL query executed to generate the dynamic page list |
228 | 228 | */ |
229 | | - 'dpl2_log_' . self::DEBUG_QUERY => '??????: <code>$0</code>', |
| 229 | + 'dpl2_log_' . self::DEBUG_QUERY => 'שאילתה: <code>$0</code>', |
230 | 230 | |
231 | 231 | /* |
232 | 232 | Output formatting |
— | — | @@ -233,7 +233,7 @@ |
234 | 234 | /** |
235 | 235 | * $1: number of articles |
236 | 236 | */ |
237 | | - 'dpl2_articlecount' => '{{plural:$1|???? $1 ????|???? ?? ???}} ??? ????? ??.' |
| 237 | + 'dpl2_articlecount' => '{{PLURAL:$1|ישנם $1 דפים|ישנו דף אחד}} תחת כותרת זו.' |
238 | 238 | ); |
239 | 239 | self::$messages['it'] = array( |
240 | 240 | /* |
— | — | @@ -260,14 +260,14 @@ |
261 | 261 | */ |
262 | 262 | 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'ERRORE: Categorie insufficienti (minimo $0). Suggerimento: diminuire il valore di <code>ExtDynamicPageList2::$minCategoryCount</code> per indicare un numero minore di categorie. (Impostare la variabile nel file <code>LocalSettings.php</code>, dopo l\'inclusione di <code>DynamicPageList2.php</code>.)', |
263 | 263 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
264 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "ERRORE: L'uso dei parametri 'addfirstcategorydate=true' e 'ordermethod=categoryadd' richiede l'inserimento di una o pi� categorie.", |
265 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "ERRORE: L'inserimento di pi� categorie impedisce l'uso dei parametri 'addfirstcategorydate=true' e 'ordermethod=categoryadd'.", |
266 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'ERRORE: Non � consentito l\'uso contemporaneo di pi� tipi di data.', |
| 264 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "ERRORE: L'uso dei parametri 'addfirstcategorydate=true' e 'ordermethod=categoryadd' richiede l'inserimento di una o più categorie.", |
| 265 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "ERRORE: L'inserimento di più categorie impedisce l'uso dei parametri 'addfirstcategorydate=true' e 'ordermethod=categoryadd'.", |
| 266 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'ERRORE: Non è consentito l\'uso contemporaneo di più tipi di data.', |
267 | 267 | /** |
268 | 268 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
269 | 269 | * $1: last 'ordermethod' parameter required for $0 |
270 | 270 | */ |
271 | | - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ERRORE: L'uso del parametro '$0' � consentito unicamente con 'ordermethod=[...,]$1'.", |
| 271 | + 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ERRORE: L'uso del parametro '$0' è consentito unicamente con 'ordermethod=[...,]$1'.", |
272 | 272 | /** |
273 | 273 | * $0: the number of arguments in includepage |
274 | 274 | */ |
— | — | @@ -284,28 +284,28 @@ |
285 | 285 | * $0: unknown parameter given by user |
286 | 286 | * $1: list of DPL2 available parameters separated by ', ' |
287 | 287 | */ |
288 | | - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "ATTENZIONE: Il parametro non riconosciuto '$0' � stato ignorato. Suggerimento: i parametri disponibili sono: <code>$1</code>.", |
| 288 | + 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "ATTENZIONE: Il parametro non riconosciuto '$0' è stato ignorato. Suggerimento: i parametri disponibili sono: <code>$1</code>.", |
289 | 289 | /** |
290 | 290 | * $3: list of valid param values separated by ' | ' |
291 | 291 | */ |
292 | | - 'dpl2_log_' . self::WARN_WRONGPARAM => "ATTENZIONE: Errore nel parametro '$0': '$1'. � stato usato il valore predefinito '$2'. Suggerimento: <code>$0= $3</code>.", |
| 292 | + 'dpl2_log_' . self::WARN_WRONGPARAM => "ATTENZIONE: Errore nel parametro '$0': '$1'. È stato usato il valore predefinito '$2'. Suggerimento: <code>$0= $3</code>.", |
293 | 293 | /** |
294 | 294 | * $0: param name |
295 | 295 | * $1: wrong param value given by user |
296 | 296 | * $2: default param value used instead by program |
297 | 297 | */ |
298 | | - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "ATTENZIONE: errore nel parametro '$0': '$1'. � stato usato il valore predefinito '$2' (nessun limite). Suggerimento: <code>$0= <i>stringa vuota</i> (nessun limite) | n</code>, con <code>n</code> intero positivo.", |
| 298 | + 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "ATTENZIONE: errore nel parametro '$0': '$1'. È stato usato il valore predefinito '$2' (nessun limite). Suggerimento: <code>$0= <i>stringa vuota</i> (nessun limite) | n</code>, con <code>n</code> intero positivo.", |
299 | 299 | 'dpl2_log_' . self::WARN_NORESULTS => 'ATTENZIONE: Nessun risultato.', |
300 | | - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "ATTENZIONE: I parametri add* ('adduser', 'addeditdate', ecc.)' non hanno alcun effetto quando � specificato 'mode=category'. In tale modalit� vengono visualizzati unicamente il namespace e il titolo della pagina.", |
| 300 | + 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "ATTENZIONE: I parametri add* ('adduser', 'addeditdate', ecc.)' non hanno alcun effetto quando è specificato 'mode=category'. In tale modalità vengono visualizzati unicamente il namespace e il titolo della pagina.", |
301 | 301 | /** |
302 | 302 | * $0: 'headingmode' value given by user |
303 | 303 | * $1: value used instead by program (which means no heading) |
304 | 304 | */ |
305 | | - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "ATTENZIONE: Il parametro 'headingmode=$0' non ha alcun effetto quando � specificato 'ordermethod' su un solo componente. Verr� utilizzato il valore '$1'. Suggerimento: � posibile utilizzare i valori diversi da $1 per il parametro 'headingmode' nel caso di 'ordermethod' su pi� componenti. Il primo componente viene usato per generare i titoli di sezione. Ad es. 'ordermethod=category,<i>comp</i>' (dove <i>comp</i> � un altro componente) per avere titoli di sezione basati sulla categoria.", |
| 305 | + 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "ATTENZIONE: Il parametro 'headingmode=$0' non ha alcun effetto quando è specificato 'ordermethod' su un solo componente. Verrà utilizzato il valore '$1'. Suggerimento: è posibile utilizzare i valori diversi da $1 per il parametro 'headingmode' nel caso di 'ordermethod' su più componenti. Il primo componente viene usato per generare i titoli di sezione. Ad es. 'ordermethod=category,<i>comp</i>' (dove <i>comp</i> è un altro componente) per avere titoli di sezione basati sulla categoria.", |
306 | 306 | /** |
307 | 307 | * $0: 'debug' value |
308 | 308 | */ |
309 | | - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "ATTENZIONE: Il parametro 'debug=$0' non � il primo elemento della sezione DPL. Le nuove impostazioni di debug non verranno applicate prima di aver completato il parsing e la verifica di tutti i parametri che lo precedono.", |
| 309 | + 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "ATTENZIONE: Il parametro 'debug=$0' non è il primo elemento della sezione DPL. Le nuove impostazioni di debug non verranno applicate prima di aver completato il parsing e la verifica di tutti i parametri che lo precedono.", |
310 | 310 | |
311 | 311 | // DEBUG |
312 | 312 | /** |
— | — | @@ -335,15 +335,15 @@ |
336 | 336 | /** |
337 | 337 | * $0: max number of categories that can be included |
338 | 338 | */ |
339 | | - 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'FOUT: Te veel categori�n! Maximum: $0. Hulp: verhoog <code>ExtDynamicPageList2::$maxCategoryCount</code> om meer categorie�n op te kunnen geven of stel geen limiet in met <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code>. (Neem deze variabele op in <code>LocalSettings.php</code>, na het toevoegen van <code>DynamicPageList2.php</code>.)', |
| 339 | + 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'FOUT: Te veel categoriën! Maximum: $0. Hulp: verhoog <code>ExtDynamicPageList2::$maxCategoryCount</code> om meer categorieën op te kunnen geven of stel geen limiet in met <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code>. (Neem deze variabele op in <code>LocalSettings.php</code>, na het toevoegen van <code>DynamicPageList2.php</code>.)', |
340 | 340 | /** |
341 | 341 | * $0: min number of categories that have to be included |
342 | 342 | */ |
343 | | - 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'FOUT: Te weinig categorie�n! Minimum: $0. Hulp: verlaag <code>ExtDynamicPageList2::$minCategoryCount</code> om minder categorie�n aan te hoeven geven. (Stel de variabele bij voorkeur in via <code>LocalSettings.php</code>, na het toevoegen van <code>DynamicPageList2.php</code>.)', |
| 343 | + 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'FOUT: Te weinig categorieën! Minimum: $0. Hulp: verlaag <code>ExtDynamicPageList2::$minCategoryCount</code> om minder categorieën aan te hoeven geven. (Stel de variabele bij voorkeur in via <code>LocalSettings.php</code>, na het toevoegen van <code>DynamicPageList2.php</code>.)', |
344 | 344 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
345 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "FOUT: U dient tenminste ��n categorie op te nemen als u 'addfirstcategorydate=true' of 'ordermethod=categoryadd' wilt gebruiken!", |
346 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "FOUT: Als u meer dan ��n categorie opneemt, kunt u 'addfirstcategorydate=true' of 'ordermethod=categoryadd' niet gebruiken!", |
347 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'FOUT: U kunt niet meer dan ��n type of datum tegelijk gebruiken!', |
| 345 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "FOUT: U dient tenminste één categorie op te nemen als u 'addfirstcategorydate=true' of 'ordermethod=categoryadd' wilt gebruiken!", |
| 346 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "FOUT: Als u meer dan één categorie opneemt, kunt u 'addfirstcategorydate=true' of 'ordermethod=categoryadd' niet gebruiken!", |
| 347 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'FOUT: U kunt niet meer dan één type of datum tegelijk gebruiken!', |
348 | 348 | /** |
349 | 349 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
350 | 350 | * $1: last 'ordermethod' parameter required for $0 |
— | — | @@ -400,7 +400,7 @@ |
401 | 401 | /** |
402 | 402 | * $1: number of articles |
403 | 403 | */ |
404 | | - 'dpl2_articlecount' => 'Er {{PLURAL:$1|is ��n pagina|zijn $1 pagina\'s}} onder deze kop.' |
| 404 | + 'dpl2_articlecount' => 'Er {{PLURAL:$1|is één pagina|zijn $1 pagina\'s}} onder deze kop.' |
405 | 405 | ); |
406 | 406 | self::$messages['ru'] = array( |
407 | 407 | /* |
— | — | @@ -412,24 +412,24 @@ |
413 | 413 | * $1: wrong parameter given by user |
414 | 414 | * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special) |
415 | 415 | */ |
416 | | - 'dpl2_log_' . self::FATAL_WRONGNS => "??????: ???????????? �$0�-????????: �$1�! ?????????: <code>$0= <i>?????? ??????</i> (????????)$3</code>.", |
| 416 | + 'dpl2_log_' . self::FATAL_WRONGNS => "ОШИБКА: неправильный «$0»-параметр: «$1»! Подсказка: <code>$0= <i>пустая строка</i> (Основное)$3</code>.", |
417 | 417 | /** |
418 | 418 | * $0: max number of categories that can be included |
419 | 419 | */ |
420 | | - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??????: ??????? ????? ?????????! ????????: $0. ?????????: ???????? <code>ExtDynamicPageList2::$maxCategoryCount</code> ????? ????????? ?????? ????????? ??? ?????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ??? ?????? ???????????. (?????????????? ?????????? ? <code>LocalSettings.php</code>, ????? ??????????? <code>DynamicPageList2.php</code>.)', |
| 420 | + 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'ОШИБКА: слишком много категорий! Максимум: $0. Подсказка: увеличте <code>ExtDynamicPageList2::$maxCategoryCount</code> чтобы разрешить больше категорий или установите <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> для снятия ограничения. (Устанавливайте переменные в <code>LocalSettings.php</code>, после подключения <code>DynamicPageList2.php</code>.)', |
421 | 421 | /** |
422 | 422 | * $0: min number of categories that have to be included |
423 | 423 | */ |
424 | | - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??????: ??????? ???? ?????????! ???????: $0. ?????????: ????????? <code>ExtDynamicPageList2::$minCategoryCount</code> ????? ????????? ?????? ?????????. (?????????????? ?????????? ? <code>LocalSettings.php</code>, ????? ??????????? <code>DynamicPageList2.php</code>.)', |
| 424 | + 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'ОШИБКА: слишком мало категорий! Минимум: $0. Подсказка: уменьшите <code>ExtDynamicPageList2::$minCategoryCount</code> чтобы разрешить меньше категорий. (Устанавливайте переменную в <code>LocalSettings.php</code>, после подключения <code>DynamicPageList2.php</code>.)', |
425 | 425 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
426 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "??????: ?? ?????? ???????? ???? ?? ???? ?????????, ???? ?? ?????? ???????????? �addfirstcategorydate=true� ??? �ordermethod=categoryadd�!", |
427 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "??????: ???? ?? ????????? ?????? ????? ?????????, ?? ?? ?? ?????? ???????????? �addfirstcategorydate=true� ??? �ordermethod=categoryadd�!", |
428 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '??????: ?? ?? ?????? ???????? ????? ?????? ???? ?????? ?? ???!', |
| 426 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "ОШИБКА: вы должны включить хотя бы одну категорию, если вы хотите использовать «addfirstcategorydate=true» или «ordermethod=categoryadd»!", |
| 427 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "ОШИБКА: если вы включаете больше одной категории, то вы не можете использовать «addfirstcategorydate=true» или «ordermethod=categoryadd»!", |
| 428 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'ОШИБКА: вы не можете добавить более одного типа данных за раз!', |
429 | 429 | /** |
430 | 430 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
431 | 431 | * $1: last 'ordermethod' parameter required for $0 |
432 | 432 | */ |
433 | | - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??????: ?? ?????? ???????????? �$0� ?????? ? �ordermethod=[...,]$1�!", |
| 433 | + 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ОШИБКА: вы можете использовать «$0» только с «ordermethod=[...,]$1»!", |
434 | 434 | /** |
435 | 435 | * $0: the number of arguments in includepage |
436 | 436 | */ |
— | — | @@ -446,34 +446,34 @@ |
447 | 447 | * $0: unknown parameter given by user |
448 | 448 | * $1: list of DPL2 available parameters separated by ', ' |
449 | 449 | */ |
450 | | - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??????????????: ??????????? ???????? �$0� ??????????????. ?????????: ????????? ?????????: <code>$1</code>.", |
| 450 | + 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "ПРЕДУПРЕЖДЕНИЕ: неизвестный параметр «$0» проигнорирован. Подсказка: доступные параметры: <code>$1</code>.", |
451 | 451 | /** |
452 | 452 | * $3: list of valid param values separated by ' | ' |
453 | 453 | */ |
454 | | - 'dpl2_log_' . self::WARN_WRONGPARAM => "??????????????: ???????????? ???????? �$0�: �$1�! ????????????? ????????? ?? ?????????: �$2�. ?????????: <code>$0= $3</code>.", |
| 454 | + 'dpl2_log_' . self::WARN_WRONGPARAM => "ПРЕДУПРЕЖДЕНИЕ: неправильный параметр «$0»: «$1»! Использование параметра по умолчанию: «$2». Подсказка: <code>$0= $3</code>.", |
455 | 455 | /** |
456 | 456 | * $0: param name |
457 | 457 | * $1: wrong param value given by user |
458 | 458 | * $2: default param value used instead by program |
459 | 459 | */ |
460 | | - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "??????????????: ???????????? ???????? �$0�: �$1�! ????????????? ????????? ?? ?????????: �$2� (??? ???????????). ?????????: <code>$0= <i>?????? ??????</i> (??? ???????????) | n</code>, ? <code>n</code> ?????? ?????????????? ?????? ?????.", |
461 | | - 'dpl2_log_' . self::WARN_NORESULTS => '??????????????: ?? ???????!', |
462 | | - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "??????????????: ??????????* ?????????? (�adduser�, �addeditdate�, ? ??.) ?? ????????????? ? �mode=category�. ?????? ???????????? ???? ??? ???????? ????? ??????????????? ? ???? ??????.", |
| 460 | + 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "ПРЕДУПРЕЖДЕНИЕ: неправильный параметр «$0»: «$1»! Использование параметра по умолчанию: «$2» (без ограничений). Подсказка: <code>$0= <i>пустая строка</i> (без ограничений) | n</code>, с <code>n</code> равным положительному целому числу.", |
| 461 | + 'dpl2_log_' . self::WARN_NORESULTS => 'ПРЕДУПРЕЖДЕНИЕ: не найдено!', |
| 462 | + 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "ПРЕДУПРЕЖДЕНИЕ: Добавление* параметров («adduser», «addeditdate», и др.) не действительны с «mode=category». Только пространства имён или названия могут просматриваться в этом режиме.", |
463 | 463 | /** |
464 | 464 | * $0: 'headingmode' value given by user |
465 | 465 | * $1: value used instead by program (which means no heading) |
466 | 466 | */ |
467 | | - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??????????????: �headingmode=$0� ?? ???????????? ? �ordermethod� ? ????? ??????????. ?????????????: �$1�. ?????????: ?? ?????? ????????????e ??-$1 �headingmode� ???????? ? �ordermethod� ?? ????????? ???????????. ?????? ????????? ???????????? ??? ??????????. ????????, �ordermethod=category,<i>comp</i>� (<i>comp</i> ???????? ?????? ???????????) ??? ?????????? ?????????.", |
| 467 | + 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "ПРЕДУПРЕЖДЕНИЕ: «headingmode=$0» не действителен с «ordermethod» в одном компоненте. Использование: «$1». Подсказка: вы можете использоватьe не-$1 «headingmode» значения с «ordermethod» во множестве компонентов. Первый компонент используется для заголовков. Например, «ordermethod=category,<i>comp</i>» (<i>comp</i> является другим компонентом) для заголовков категорий.", |
468 | 468 | /** |
469 | 469 | * $0: 'debug' value |
470 | 470 | */ |
471 | | - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??????????????: �debug=$0� ?? ????????? ?? ?????? ????? ? DPL-????????. ????? ????????? ??????? ?? ????? ????????? ???? ??? ?????????? ????????? ?? ????? ????????? ? ?????????.", |
| 471 | + 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "ПРЕДУПРЕЖДЕНИЕ: «debug=$0» не находится на первом месте в DPL-элементе. Новые настройки отладки не будут применены пока все предыдущие параметры не будут разобраны и проверены.", |
472 | 472 | |
473 | 473 | // DEBUG |
474 | 474 | /** |
475 | 475 | * $0: SQL query executed to generate the dynamic page list |
476 | 476 | */ |
477 | | - 'dpl2_log_' . self::DEBUG_QUERY => '??????: <code>$0</code>', |
| 477 | + 'dpl2_log_' . self::DEBUG_QUERY => 'ЗАПРОС: <code>$0</code>', |
478 | 478 | |
479 | 479 | /* |
480 | 480 | Output formatting |
— | — | @@ -481,7 +481,7 @@ |
482 | 482 | /** |
483 | 483 | * $1: number of articles |
484 | 484 | */ |
485 | | - 'dpl2_articlecount' => '? ???? ????????? $1 {{PLURAL:$1|??????|??????|??????}}.' |
| 485 | + 'dpl2_articlecount' => 'В этом заголовке $1 {{PLURAL:$1|статья|статьи|статей}}.' |
486 | 486 | ); |
487 | 487 | self::$messages['sk'] = array( |
488 | 488 | /* |
— | — | @@ -493,29 +493,29 @@ |
494 | 494 | * $1: wrong parameter given by user |
495 | 495 | * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special) |
496 | 496 | */ |
497 | | - 'dpl2_log_' . self::FATAL_WRONGNS => "CHYBA: nespr�vny parameter '$0': '$1'! Pomocn�k <code>$0= <i>pr�zdny retazec</i> (Hlavn�)$3<code>.", |
| 497 | + 'dpl2_log_' . self::FATAL_WRONGNS => "CHYBA: nesprávny parameter '$0': '$1'! Pomocník <code>$0= <i>prázdny retazec</i> (Hlavný)$3<code>.", |
498 | 498 | /** |
499 | 499 | * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future) |
500 | 500 | * $1: wrong parameter given by user |
501 | 501 | */ |
502 | | - 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "CHYBA: Zl� parameter '$0': '$1'! Pomocn�k <code>$0= <i>pln� n�zov str�nky</i></code>.", |
| 502 | + 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "CHYBA: Zlý parameter '$0': '$1'! Pomocník <code>$0= <i>plný názov stránky</i></code>.", |
503 | 503 | /** |
504 | 504 | * $0: max number of categories that can be included |
505 | 505 | */ |
506 | | - 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'CHYBA: Pr�li� vela kateg�ri�! Maximum: $0. Pomocn�k: zv�c�ite <code>ExtDynamicPageList2::$maxCategoryCount</code>, aby ste mohli �pecifikovat viac kateg�ri� alebo nastavte <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> pre vypnutie limitu. (Premenn� nastatavte v <code>LocalSettings.php</code>, potom ako bol includovan� <code>DynamicPageList2.php</code>.)', |
| 506 | + 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'CHYBA: Príli vela kategórií! Maximum: $0. Pomocník: zväcite <code>ExtDynamicPageList2::$maxCategoryCount</code>, aby ste mohli pecifikovat viac kategórií alebo nastavte <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> pre vypnutie limitu. (Premennú nastatavte v <code>LocalSettings.php</code>, potom ako bol includovaný <code>DynamicPageList2.php</code>.)', |
507 | 507 | /** |
508 | 508 | * $0: min number of categories that have to be included |
509 | 509 | */ |
510 | | - 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'CHYBA: Pr�li� m�lo kateg�ri�! Minimum: $0. Pomocn�k: zn�te <code>ExtDynamicPageList2::$minCategoryCount</code>, aby ste mohli �pecifikovat menej kateg�ri�. (Premenn� nastavte najlep�ie v <code>LocalSettings.php</code> potom, ako v nom bol includovan� <code>DynamicPageList2.php</code>.)', |
| 510 | + 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'CHYBA: Príli málo kategórií! Minimum: $0. Pomocník: zníte <code>ExtDynamicPageList2::$minCategoryCount</code>, aby ste mohli pecifikovat menej kategórií. (Premennú nastavte najlepie v <code>LocalSettings.php</code> potom, ako v nom bol includovaný <code>DynamicPageList2.php</code>.)', |
511 | 511 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
512 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "CHYBA: Mus�te uviest aspon jednu kateg�riu ak chcete pou�it 'addfirstcategorydate=true' alebo 'ordermethod=categoryadd'!", |
513 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "CHYBA: Ak zahrniete viac ako jednu kateg�riu, nem��ete pou�it 'addfirstcategorydate=true' alebo 'ordermethod=categoryadd'!", |
514 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'CHYBA: Nem��ete naraz pridat viac ako jeden typ d�tumu!', |
| 512 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "CHYBA: Musíte uviest aspon jednu kategóriu ak chcete pouit 'addfirstcategorydate=true' alebo 'ordermethod=categoryadd'!", |
| 513 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "CHYBA: Ak zahrniete viac ako jednu kategóriu, nemôete pouit 'addfirstcategorydate=true' alebo 'ordermethod=categoryadd'!", |
| 514 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'CHYBA: Nemôete naraz pridat viac ako jeden typ dátumu!', |
515 | 515 | /** |
516 | 516 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
517 | 517 | * $1: last 'ordermethod' parameter required for $0 |
518 | 518 | */ |
519 | | - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "CHYBA: '$0' m��ete pou�it iba s 'ordermethod=[...,]$1'!", |
| 519 | + 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "CHYBA: '$0' môete pouit iba s 'ordermethod=[...,]$1'!", |
520 | 520 | /** |
521 | 521 | * $0: the number of arguments in includepage |
522 | 522 | */ |
— | — | @@ -524,7 +524,7 @@ |
525 | 525 | * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names |
526 | 526 | * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB |
527 | 527 | */ |
528 | | - 'dpl2_log_' . self::FATAL_NOCLVIEW => "CHYBA: Nie je momo�n� vykon�vat logick� oper�cie na nekategorizovan�ch kateg�ri�ch (napr. s parametrom 'Kateg�ria') lebo neexistuje na datab�zu pohlad $0! Pomocn�k: nech admin datab�zy vykon� tento dotaz: <code>$1</code>.", |
| 528 | + 'dpl2_log_' . self::FATAL_NOCLVIEW => "CHYBA: Nie je momoné vykonávat logické operácie na nekategorizovaných kategóriách (napr. s parametrom 'Kategória') lebo neexistuje na databázu pohlad $0! Pomocník: nech admin databázy vykoná tento dotaz: <code>$1</code>.", |
529 | 529 | 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.', |
530 | 530 | |
531 | 531 | // WARN |
— | — | @@ -532,28 +532,28 @@ |
533 | 533 | * $0: unknown parameter given by user |
534 | 534 | * $1: list of DPL2 available parameters separated by ', ' |
535 | 535 | */ |
536 | | - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "VAROVANIE: Nezn�my parameter '$0' ignorovan�. Pomocn�k: dostupn� parametre: <code>$1</code>.", |
| 536 | + 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "VAROVANIE: Neznámy parameter '$0' ignorovaný. Pomocník: dostupné parametre: <code>$1</code>.", |
537 | 537 | /** |
538 | 538 | * $3: list of valid param values separated by ' | ' |
539 | 539 | */ |
540 | | - 'dpl2_log_' . self::WARN_WRONGPARAM => "VAROVANIE: Nespr�vny '$0' parameter: '$1'! Pou��vam �tandardn� '$2'. Pomocn�k: <code>$0= $3</code>.", |
| 540 | + 'dpl2_log_' . self::WARN_WRONGPARAM => "VAROVANIE: Nesprávny '$0' parameter: '$1'! Pouívam tandardný '$2'. Pomocník: <code>$0= $3</code>.", |
541 | 541 | /** |
542 | 542 | * $0: param name |
543 | 543 | * $1: wrong param value given by user |
544 | 544 | * $2: default param value used instead by program |
545 | 545 | */ |
546 | | - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "VAROVANIE: Nespr�vny parameter '$0': '$1'! Pou��vam �tandardn�: '$2' (bez obmedzenia). Pomocn�k: <code>$0= <i>pr�zdny retazec</i> (bez obmedzenia) | n</code>, s kladn�m cel�m c�slom <code>n</code>.", |
| 546 | + 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "VAROVANIE: Nesprávny parameter '$0': '$1'! Pouívam tandardný: '$2' (bez obmedzenia). Pomocník: <code>$0= <i>prázdny retazec</i> (bez obmedzenia) | n</code>, s kladným celým císlom <code>n</code>.", |
547 | 547 | 'dpl2_log_' . self::WARN_NORESULTS => 'VAROVANIE: No results!', |
548 | | - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "VAROVANIE: Parametre Add* ('adduser', 'addeditdate', atd' nepracuj� s mode=category'. V tomto re�ime je mo�n� prehliadat iba menn� priestor/titulok str�nky.", |
| 548 | + 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "VAROVANIE: Parametre Add* ('adduser', 'addeditdate', atd' nepracujú s mode=category'. V tomto reime je moné prehliadat iba menná priestor/titulok stránky.", |
549 | 549 | /** |
550 | 550 | * $0: 'headingmode' value given by user |
551 | 551 | * $1: value used instead by program (which means no heading) |
552 | 552 | */ |
553 | | - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "VAROVANIE: 'headingmode=$0' nepracuje s 'ordermethod' na jednom komponente. Pou�itie: '$1'. Pomocn�k: m��ete pou�it not-$1 hodnoty 'headingmode' s 'ordermethod' na viacer� komponenty. Prv� komponent sa pou��va na nadpisy. Napr. 'ordermethod=category,<i>comp</i>' (<i>comp</i> je in� komponent) pre nadpisy kateg�ri�.", |
| 553 | + 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "VAROVANIE: 'headingmode=$0' nepracuje s 'ordermethod' na jednom komponente. Pouitie: '$1'. Pomocník: môete pouit not-$1 hodnoty 'headingmode' s 'ordermethod' na viaceré komponenty. Prvý komponent sa pouíva na nadpisy. Napr. 'ordermethod=category,<i>comp</i>' (<i>comp</i> je iný komponent) pre nadpisy kategórií.", |
554 | 554 | /** |
555 | 555 | * $0: 'debug' value |
556 | 556 | */ |
557 | | - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "VAROVANIE: 'debug=$0' nie je na prvej poz�cii v prvku DPL. Nov� ladiacie nastavenia nebud� pou��t� sk�r ne� bud� parsovan� a skontrolovan� v�etky predch�dzaj�ce.", |
| 557 | + 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "VAROVANIE: 'debug=$0' nie je na prvej pozícii v prvku DPL. Nové ladiacie nastavenia nebudú pouíté skôr ne budú parsované a skontrolované vetky predchádzajúce.", |
558 | 558 | |
559 | 559 | // DEBUG |
560 | 560 | /** |
— | — | @@ -567,9 +567,9 @@ |
568 | 568 | /** |
569 | 569 | * $1: number of articles |
570 | 570 | */ |
571 | | - 'dpl2_articlecount' => 'V tomto nadpise {{PLURAL:$1|je jeden cl�nok|s� $1 cl�nky|je $1 cl�nkov}}.' |
| 571 | + 'dpl2_articlecount' => 'V tomto nadpise {{PLURAL:$1|je jeden clánok|sú $1 clánky|je $1 clánkov}}.' |
572 | 572 | ); |
573 | | - self::$messages['zh-cn'] = array( |
| 573 | + self::$messages['yue'] = array( |
574 | 574 | /* |
575 | 575 | Log |
576 | 576 | */ |
— | — | @@ -579,24 +579,24 @@ |
580 | 580 | * $1: wrong parameter given by user |
581 | 581 | * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special) |
582 | 582 | */ |
583 | | - 'dpl2_log_' . self::FATAL_WRONGNS => "??: ??? '$0' ??: '$1'! ??: <code>$0= <i>?????</i> (?)$3</code>?", |
| 583 | + 'dpl2_log_' . self::FATAL_WRONGNS => "錯誤: 錯嘅 '$0' 參數: '$1'! 幫助: <code>$0= <i>空字串</i> (主)$3</code>。", |
584 | 584 | /** |
585 | 585 | * $0: max number of categories that can be included |
586 | 586 | */ |
587 | | - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ????????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ?????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>??????)', |
| 587 | + 'dpl2_log_' . self::FATAL_TOOMANYCATS => '錯誤: 太多分類! 最大值: $0。 幫助: 增加 <code>ExtDynamicPageList2::$maxCategoryCount</code> 嘅值去指定更多嘅分類或者設定 <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> 以解除限制。 (當加上 <code>DynamicPageList2.php</code>之後,響<code>LocalSettings.php</code>度設定變數。)', |
588 | 588 | /** |
589 | 589 | * $0: min number of categories that have to be included |
590 | 590 | */ |
591 | | - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??????????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>???????????)', |
| 591 | + 'dpl2_log_' . self::FATAL_TOOFEWCATS => '錯誤: 太少分類! 最小值: $0. 幫助: 減少 <code>ExtDynamicPageList2::$minCategoryCount</code> 嘅值去指定更少嘅分類。 (當加上 <code>DynamicPageList2.php</code>之後,響<code>LocalSettings.php</code>度設定一個合適嘅變數。)', |
592 | 592 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
593 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "??: ????? 'addfirstcategorydate=true' ? 'ordermethod=categoryadd' ,???????????!", |
594 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "??: ??????????,????? 'addfirstcategorydate=true' ? 'ordermethod=categoryadd'!", |
595 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '??: ???????????????????!', |
| 593 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "錯誤: 如果你想去用 'addfirstcategorydate=true' 或者 'ordermethod=categoryadd' ,你需要包含最少一個分類!", |
| 594 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "錯誤: 如果你包含多過一個分類,你唔可以用 'addfirstcategorydate=true' 或者 'ordermethod=categoryadd'!", |
| 595 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '錯誤: 你唔可以響一個時間度加入多個一種嘅日期!', |
596 | 596 | /** |
597 | 597 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
598 | 598 | * $1: last 'ordermethod' parameter required for $0 |
599 | 599 | */ |
600 | | - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??: ????? 'ordermethod=[...,]$1' ? '$0' ?!", |
| 600 | + 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "錯誤: 你只可以用 'ordermethod=[...,]$1' 響 '$0' 上!", |
601 | 601 | /** |
602 | 602 | * $0: the number of arguments in includepage |
603 | 603 | */ |
— | — | @@ -613,34 +613,34 @@ |
614 | 614 | * $0: unknown parameter given by user |
615 | 615 | * $1: list of DPL2 available parameters separated by ', ' |
616 | 616 | */ |
617 | | - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??: ????? '$0' ???? ??: ?????: <code>$1</code>?", |
| 617 | + 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "警告: 不明嘅參數 '$0' 被忽略。 幫助: 可用嘅參數: <code>$1</code>。", |
618 | 618 | /** |
619 | 619 | * $3: list of valid param values separated by ' | ' |
620 | 620 | */ |
621 | | - 'dpl2_log_' . self::WARN_WRONGPARAM => "??: ??? '$0' ??: '$1'! ???????: '$2'? ??: <code>$0= $3</code>?", |
| 621 | + 'dpl2_log_' . self::WARN_WRONGPARAM => "警告: 錯誤嘅 '$0' 參數: '$1'! 用緊預設嘅: '$2'。 幫助: <code>$0= $3</code>。", |
622 | 622 | /** |
623 | 623 | * $0: param name |
624 | 624 | * $1: wrong param value given by user |
625 | 625 | * $2: default param value used instead by program |
626 | 626 | */ |
627 | | - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "??: ??? '$0' ??: '$1'! ???????: '$2' (????)? ??: <code>$0= <i>?????</i> (????) | n</code>, <code>n</code>???????", |
628 | | - 'dpl2_log_' . self::WARN_NORESULTS => '??: ???!', |
629 | | - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "??: ??* ?? ('adduser', 'addeditdate', ?)' ?? 'mode=category' ????????????/??????????????", |
| 627 | + 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "警告: 錯誤嘅 '$0' 參數: '$1'! 用緊預設嘅: '$2' (冇上限)。 幫助: <code>$0= <i>空字串</i> (冇上限) | n</code>, <code>n</code>係一個正整數。", |
| 628 | + 'dpl2_log_' . self::WARN_NORESULTS => '警告: 無結果!', |
| 629 | + 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "警告: 加入* 參數 ('adduser', 'addeditdate', 等)' 係對 'mode=category' 冇作用嘅。只有頁空間名/標題至可以響呢個模式度睇到。", |
630 | 630 | /** |
631 | 631 | * $0: 'headingmode' value given by user |
632 | 632 | * $1: value used instead by program (which means no heading) |
633 | 633 | */ |
634 | | - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??: ??????, 'ordermethod' ? 'headingmode=$0' ??????? ????: '$1'? ??: ?????$1 'headingmode' ??,??????? 'ordermethod' ????????????????????? 'ordermethod=category,<i>comp</i>' (<i>comp</i>???????) ?", |
| 634 | + 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "警告: 響單一部件中, 'ordermethod' 度用 'headingmode=$0' 係冇作用嘅。 用緊: '$1'。 幫助: 你可以用非$1 'headingmode' 數值,響多個部件中用 'ordermethod' 。第一個部件係用嚟做標題。例如響分類標題度用 'ordermethod=category,<i>comp</i>' (<i>comp</i>係另外一個部件) 。", |
635 | 635 | /** |
636 | 636 | * $0: 'debug' value |
637 | 637 | */ |
638 | | - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??: 'debug=$0' ??????DPL?????????????????????????????????", |
| 638 | + 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "警告: 'debug=$0' 唔係第一個響DPL元素嘅第一位。新嘅除錯設定響所有參數都能夠處理同檢查之前都唔會應用。", |
639 | 639 | |
640 | 640 | // DEBUG |
641 | 641 | /** |
642 | 642 | * $0: SQL query executed to generate the dynamic page list |
643 | 643 | */ |
644 | | - 'dpl2_log_' . self::DEBUG_QUERY => '??: <code>$0</code>', |
| 644 | + 'dpl2_log_' . self::DEBUG_QUERY => '查訽: <code>$0</code>', |
645 | 645 | |
646 | 646 | /* |
647 | 647 | Output formatting |
— | — | @@ -648,9 +648,9 @@ |
649 | 649 | /** |
650 | 650 | * $1: number of articles |
651 | 651 | */ |
652 | | - 'dpl2_articlecount' => '???????$1????' |
| 652 | + 'dpl2_articlecount' => '響呢個標題度有$1篇文。' |
653 | 653 | ); |
654 | | - self::$messages['zh-tw'] = array( |
| 654 | + self::$messages['zh-hans'] = array( |
655 | 655 | /* |
656 | 656 | Log |
657 | 657 | */ |
— | — | @@ -660,24 +660,24 @@ |
661 | 661 | * $1: wrong parameter given by user |
662 | 662 | * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special) |
663 | 663 | */ |
664 | | - 'dpl2_log_' . self::FATAL_WRONGNS => "??: ??? '$0' ??: '$1'! ??: <code>$0= <i>????</i> (?)$3</code>?", |
| 664 | + 'dpl2_log_' . self::FATAL_WRONGNS => "错误: 错误的 '$0' 参数: '$1'! 帮助: <code>$0= <i>空白字符串</i> (主)$3</code>。", |
665 | 665 | /** |
666 | 666 | * $0: max number of categories that can be included |
667 | 667 | */ |
668 | | - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ????????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ?????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>??????)', |
| 668 | + 'dpl2_log_' . self::FATAL_TOOMANYCATS => '错误: 过多分类! 最大值: $0。 帮助: 增加 <code>ExtDynamicPageList2::$maxCategoryCount</code> 的值去指定更多的分类或设定 <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> 以解除限制。 (当加上 <code>DynamicPageList2.php</code>后,在<code>LocalSettings.php</code>中设定变量。)', |
669 | 669 | /** |
670 | 670 | * $0: min number of categories that have to be included |
671 | 671 | */ |
672 | | - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??????????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>???????????)', |
| 672 | + 'dpl2_log_' . self::FATAL_TOOFEWCATS => '错误: 过少分类! 最小值: $0。 帮助: 减少 <code>ExtDynamicPageList2::$minCategoryCount</code> 的值去指定更少的分类。 (当加上 <code>DynamicPageList2.php</code>后,在<code>LocalSettings.php</code>中设定一个合适的变量。)', |
673 | 673 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
674 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "??: ????? 'addfirstcategorydate=true' ? 'ordermethod=categoryadd' ,???????????!", |
675 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "??: ??????????,????? 'addfirstcategorydate=true' ? 'ordermethod=categoryadd'!", |
676 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '??: ???????????????????!', |
| 674 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "错误: 如果您想用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd' ,您需要包含最少一个分类!", |
| 675 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "错误: 如果您包含多一个分类,您不可以用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd'!", |
| 676 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '错误: 您不可以在一个时间里加入多于一种的日期!', |
677 | 677 | /** |
678 | 678 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
679 | 679 | * $1: last 'ordermethod' parameter required for $0 |
680 | 680 | */ |
681 | | - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??: ????? 'ordermethod=[...,]$1' ? '$0' ?!", |
| 681 | + 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "错误: 你只可以用 'ordermethod=[...,]$1' 在 '$0' 上!", |
682 | 682 | /** |
683 | 683 | * $0: the number of arguments in includepage |
684 | 684 | */ |
— | — | @@ -694,34 +694,34 @@ |
695 | 695 | * $0: unknown parameter given by user |
696 | 696 | * $1: list of DPL2 available parameters separated by ', ' |
697 | 697 | */ |
698 | | - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??: ????? '$0' ???? ??: ?????: <code>$1</code>?", |
| 698 | + 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "警告: 不明的参数 '$0' 被忽略。 帮助: 可用的参数: <code>$1</code>。", |
699 | 699 | /** |
700 | 700 | * $3: list of valid param values separated by ' | ' |
701 | 701 | */ |
702 | | - 'dpl2_log_' . self::WARN_WRONGPARAM => "??: ??? '$0' ??: '$1'! ???????: '$2'? ??: <code>$0= $3</code>?", |
| 702 | + 'dpl2_log_' . self::WARN_WRONGPARAM => "警告: 错误的 '$0' 参数: '$1'! 正在使用默认值: '$2'。 帮助: <code>$0= $3</code>。", |
703 | 703 | /** |
704 | 704 | * $0: param name |
705 | 705 | * $1: wrong param value given by user |
706 | 706 | * $2: default param value used instead by program |
707 | 707 | */ |
708 | | - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "??: ??? '$0' ??: '$1'! ???????: '$2' (????)? ??: <code>$0= <i>????</i> (????) | n</code>, <code>n</code>???????", |
709 | | - 'dpl2_log_' . self::WARN_NORESULTS => '??: ???!', |
710 | | - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "??: ??* ?? ('adduser', 'addeditdate', ?)' ?? 'mode=category' ????????????/??????????????", |
| 708 | + 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "警告: 错误的 '$0' 参数: '$1'! 正在使用默认值: '$2' (没有上限)。 帮助: <code>$0= <i>空白字符串</i> (没有上限) | n</code>, <code>n</code>是一个正整数。", |
| 709 | + 'dpl2_log_' . self::WARN_NORESULTS => '警告: 无结果!', |
| 710 | + 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "警告: 加入* 参数 ('adduser', 'addeditdate', 等)' 是对 'mode=category' 没有作用。只有页面空间名/标题才可以在这个模式度看到。", |
711 | 711 | /** |
712 | 712 | * $0: 'headingmode' value given by user |
713 | 713 | * $1: value used instead by program (which means no heading) |
714 | 714 | */ |
715 | | - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??: ??????, 'ordermethod' ? 'headingmode=$0' ??????? ????: '$1'? ??: ?????$1 'headingmode' ??,??????? 'ordermethod' ????????????????????? 'ordermethod=category,<i>comp</i>' (<i>comp</i>???????) ?", |
| 715 | + 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "警告: 在单一部件中, 'ordermethod' 用 'headingmode=$0' 是没有作用的。 正在使用: '$1'。 帮助: 你可以用非$1 'headingmode' 数值,在多个部件中用 'ordermethod' 。第一个部是用来作标题。例如在分类标题中用 'ordermethod=category,<i>comp</i>' (<i>comp</i>是另外一个部件) 。", |
716 | 716 | /** |
717 | 717 | * $0: 'debug' value |
718 | 718 | */ |
719 | | - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??: 'debug=$0' ??????DPL?????????????????????????????????", |
| 719 | + 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "警告: 'debug=$0' 不是第一个在DPL元素嘅第一位置。新的除错设定在所有参数都能处理和检查前都不会应用。", |
720 | 720 | |
721 | 721 | // DEBUG |
722 | 722 | /** |
723 | 723 | * $0: SQL query executed to generate the dynamic page list |
724 | 724 | */ |
725 | | - 'dpl2_log_' . self::DEBUG_QUERY => '??: <code>$0</code>', |
| 725 | + 'dpl2_log_' . self::DEBUG_QUERY => '查訽: <code>$0</code>', |
726 | 726 | |
727 | 727 | /* |
728 | 728 | Output formatting |
— | — | @@ -729,9 +729,9 @@ |
730 | 730 | /** |
731 | 731 | * $1: number of articles |
732 | 732 | */ |
733 | | - 'dpl2_articlecount' => '???????$1????' |
| 733 | + 'dpl2_articlecount' => '在这个标题中有$1篇条目。' |
734 | 734 | ); |
735 | | - self::$messages['zh-yue'] = array( |
| 735 | + self::$messages['zh-hant'] = array( |
736 | 736 | /* |
737 | 737 | Log |
738 | 738 | */ |
— | — | @@ -741,24 +741,24 @@ |
742 | 742 | * $1: wrong parameter given by user |
743 | 743 | * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special) |
744 | 744 | */ |
745 | | - 'dpl2_log_' . self::FATAL_WRONGNS => "??: ?? '$0' ??: '$1'! ??: <code>$0= <i>???</i> (?)$3</code>?", |
| 745 | + 'dpl2_log_' . self::FATAL_WRONGNS => "錯誤: 錯誤的 '$0' 參數: '$1'! 說明: <code>$0= <i>空白字串</i> (主)$3</code>。", |
746 | 746 | /** |
747 | 747 | * $0: max number of categories that can be included |
748 | 748 | */ |
749 | | - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ?????????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ?????? (??? <code>DynamicPageList2.php</code>??,?<code>LocalSettings.php</code>??????)', |
| 749 | + 'dpl2_log_' . self::FATAL_TOOMANYCATS => '錯誤: 過多分類! 最大值: $0。 說明: 增加 <code>ExtDynamicPageList2::$maxCategoryCount</code> 的值去指定更多的分類或設定 <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> 以解除限制。 (當加上 <code>DynamicPageList2.php</code>後,在<code>LocalSettings.php</code>中設定變數。)', |
750 | 750 | /** |
751 | 751 | * $0: min number of categories that have to be included |
752 | 752 | */ |
753 | | - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??: ????! ???: $0. ??: ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??????????? (??? <code>DynamicPageList2.php</code>??,?<code>LocalSettings.php</code>???????????)', |
| 753 | + 'dpl2_log_' . self::FATAL_TOOFEWCATS => '錯誤: 過少分類! 最小值: $0。 說明: 減少 <code>ExtDynamicPageList2::$minCategoryCount</code> 的值去指定更少的分類。 (當加上 <code>DynamicPageList2.php</code>後,在<code>LocalSettings.php</code>中設定一個合適的變數。)', |
754 | 754 | 'dpl2_log_' . self::FATAL_NOSELECTION => "ERROR: No selection criteria found! You must use at least one of the following parameters: category, namespace, titlematch, linksto, uses, createdby, modifiedby, lastmodifiedby or their 'not' variants", |
755 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "??: ?????? 'addfirstcategorydate=true' ?? 'ordermethod=categoryadd' ,???????????!", |
756 | | - 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "??: ???????????,????? 'addfirstcategorydate=true' ?? 'ordermethod=categoryadd'!", |
757 | | - 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '??: ???????????????????!', |
| 755 | + 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "錯誤: 如果您想用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd' ,您需要包含最少一個分類!", |
| 756 | + 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "錯誤: 如果您包含多一個分類,您不可以用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd'!", |
| 757 | + 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '錯誤: 您不可以在一個時間裡加入多於一種的日期!', |
758 | 758 | /** |
759 | 759 | * $0: param=val that is possible only with $1 as last 'ordermethod' parameter |
760 | 760 | * $1: last 'ordermethod' parameter required for $0 |
761 | 761 | */ |
762 | | - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??: ????? 'ordermethod=[...,]$1' ? '$0' ?!", |
| 762 | + 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "錯誤: 你只可以用 'ordermethod=[...,]$1' 在 '$0' 上!", |
763 | 763 | /** |
764 | 764 | * $0: the number of arguments in includepage |
765 | 765 | */ |
— | — | @@ -775,34 +775,34 @@ |
776 | 776 | * $0: unknown parameter given by user |
777 | 777 | * $1: list of DPL2 available parameters separated by ', ' |
778 | 778 | */ |
779 | | - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??: ????? '$0' ???? ??: ?????: <code>$1</code>?", |
| 779 | + 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "警告: 不明的參數 '$0' 被忽略。 說明: 可用的參數: <code>$1</code>。", |
780 | 780 | /** |
781 | 781 | * $3: list of valid param values separated by ' | ' |
782 | 782 | */ |
783 | | - 'dpl2_log_' . self::WARN_WRONGPARAM => "??: ??? '$0' ??: '$1'! ?????: '$2'? ??: <code>$0= $3</code>?", |
| 783 | + 'dpl2_log_' . self::WARN_WRONGPARAM => "警告: 錯誤的 '$0' 參數: '$1'! 正在使用預設值: '$2'。 說明: <code>$0= $3</code>。", |
784 | 784 | /** |
785 | 785 | * $0: param name |
786 | 786 | * $1: wrong param value given by user |
787 | 787 | * $2: default param value used instead by program |
788 | 788 | */ |
789 | | - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "??: ??? '$0' ??: '$1'! ?????: '$2' (???)? ??: <code>$0= <i>???</i> (???) | n</code>, <code>n</code>???????", |
790 | | - 'dpl2_log_' . self::WARN_NORESULTS => '??: ???!', |
791 | | - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "??: ??* ?? ('adduser', 'addeditdate', ?)' ?? 'mode=category' ???????????/??????????????", |
| 789 | + 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "警告: 錯誤的 '$0' 參數: '$1'! 正在使用預設值: '$2' (沒有上限)。 說明: <code>$0= <i>空白字串</i> (沒有上限) | n</code>, <code>n</code>是一個正整數。", |
| 790 | + 'dpl2_log_' . self::WARN_NORESULTS => '警告: 無結果!', |
| 791 | + 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "警告: 加入* 參數 ('adduser', 'addeditdate', 等)' 是對 'mode=category' 沒有作用。只有頁面空間名/標題才可以在這個模式度看到。", |
792 | 792 | /** |
793 | 793 | * $0: 'headingmode' value given by user |
794 | 794 | * $1: value used instead by program (which means no heading) |
795 | 795 | */ |
796 | | - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??: ??????, 'ordermethod' ?? 'headingmode=$0' ?????? ??: '$1'? ??: ?????$1 'headingmode' ??,??????? 'ordermethod' ?????????????????????? 'ordermethod=category,<i>comp</i>' (<i>comp</i>???????) ?", |
| 796 | + 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "警告: 在單一部件中, 'ordermethod' 用 'headingmode=$0' 是沒有作用的。 正在使用: '$1'。 說明: 你可以用非$1 'headingmode' 數值,在多個部件中用 'ordermethod' 。第一個部是用來作標題。例如在分類標題中用 'ordermethod=category,<i>comp</i>' (<i>comp</i>是另外一個部件) 。", |
797 | 797 | /** |
798 | 798 | * $0: 'debug' value |
799 | 799 | */ |
800 | | - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??: 'debug=$0' ??????DPL??????????????????????????????????", |
| 800 | + 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "警告: 'debug=$0' 不是第一個在DPL元素嘅第一位置。新的除錯設定在所有參數都能處理和檢查前都不會應用。", |
801 | 801 | |
802 | 802 | // DEBUG |
803 | 803 | /** |
804 | 804 | * $0: SQL query executed to generate the dynamic page list |
805 | 805 | */ |
806 | | - 'dpl2_log_' . self::DEBUG_QUERY => '??: <code>$0</code>', |
| 806 | + 'dpl2_log_' . self::DEBUG_QUERY => '查訽: <code>$0</code>', |
807 | 807 | |
808 | 808 | /* |
809 | 809 | Output formatting |
— | — | @@ -810,10 +810,15 @@ |
811 | 811 | /** |
812 | 812 | * $1: number of articles |
813 | 813 | */ |
814 | | - 'dpl2_articlecount' => '???????$1???' |
| 814 | + 'dpl2_articlecount' => '在這個標題中有$1篇條目。' |
815 | 815 | ); |
816 | | - self::$messages['zh-hk'] = self::$messages['zh-tw']; |
817 | | - self::$messages['zh-sg'] = self::$messages['zh-cn']; |
| 816 | + self::$messages['zh-cn'] = self::$messages['zh-hans']; |
| 817 | + self::$messages['zh-hk'] = self::$messages['zh-hant']; |
| 818 | + self::$messages['zh-mo'] = self::$messages['zh-hant']; |
| 819 | + self::$messages['zh-my'] = self::$messages['zh-hans']; |
| 820 | + self::$messages['zh-sg'] = self::$messages['zh-hans']; |
| 821 | + self::$messages['zh-tw'] = self::$messages['zh-hant']; |
| 822 | + self::$messages['zh-yue'] = self::$messages['yue']; |
818 | 823 | return self::$messages; |
819 | 824 | } |
820 | 825 | } |
Index: trunk/extensions/DynamicPageList/DynamicPageList2.php |
— | — | @@ -27,7 +27,7 @@ |
28 | 28 | * addcategories: bug fixed |
29 | 29 | * CATLIST variable defined |
30 | 30 | * @version 0.9.3 |
31 | | - * allow � as an alias for | |
| 31 | + * allow ¦ as an alias for | |
32 | 32 | * escapelinks= introduced |
33 | 33 | * @version 0.9.4 |
34 | 34 | * allow "-" with categories = |
— | — | @@ -273,8 +273,17 @@ |
274 | 274 | * @version 1.7.4 |
275 | 275 | * new command: imagecontainer |
276 | 276 | * @version 1.7.5 |
277 | | - |
278 | | - * ! when making changes here you must update the VERSION constant at the beginning of class ExtSynamicPageList2 ! |
| 277 | + * suppresserrors |
| 278 | + * changed UPPER to LOWER in all SQL statements which ignore case |
| 279 | + * added updaterules feature |
| 280 | + * includematch now also works with include=*; note that it always tries to match the raw text, including template parameters |
| 281 | + * allowcachedresults accepts now 'yes+warn' |
| 282 | + * usedby |
| 283 | + * CATBULLETS variable |
| 284 | + * @version 1.7.6 |
| 285 | + * error correction: non existing array index 0 when trying to includematch content in a non-existing chapter (near #3887) |
| 286 | + * |
| 287 | + * ! when making changes here you must update the VERSION constant at the beginning of class ExtDynamicPageList2 ! |
279 | 288 | */ |
280 | 289 | |
281 | 290 | /** |
— | — | @@ -292,11 +301,9 @@ |
293 | 302 | $wgExtensionCredits['parserhook'][] = array( |
294 | 303 | 'path' => __FILE__, |
295 | 304 | 'name' => 'DynamicPageList2', |
296 | | - 'author' => '[http://en.wikinews.org/wiki/User:IlyaHaykinson IlyaHaykinson], [http://en.wikinews.org/wiki/User:Amgine Amgine],' |
297 | | - .'[http://de.wikipedia.org/wiki/Benutzer:Unendlich Unendlich], [http://meta.wikimedia.org/wiki/User:Dangerman Cyril Dangerville],' |
298 | | - .'[http://de.wikipedia.org/wiki/Benutzer:Algorithmix Algorithmix]', |
| 305 | + 'author' => array( "[http://en.wikinews.org/wiki/User:IlyaHaykinson IlyaHaykinson]", "[http://en.wikinews.org/wiki/User:Amgine Amgine]", "[http://de.wikipedia.org/wiki/Benutzer:Unendlich Unendlich]", "[http://meta.wikimedia.org/wiki/User:Dangerman Cyril Dangerville]", "[http://de.wikipedia.org/wiki/Benutzer:Algorithmix Algorithmix]" ), |
299 | 306 | 'url' => 'http://www.mediawiki.org/wiki/Extension:DynamicPageList', |
300 | | - 'description' => 'based on [http://www.mediawiki.org/wiki/Extension:DynamicPageList DynamicPageList], featuring many improvements', |
| 307 | + 'description' => 'a highly flexible report generator for MediaWikis - manual and examples: see [http://semeb.com/dpldemo]', |
301 | 308 | 'version' => ExtDynamicPageList2::VERSION |
302 | 309 | ); |
303 | 310 | |
— | — | @@ -313,7 +320,7 @@ |
314 | 321 | |
315 | 322 | class ExtDynamicPageList2 |
316 | 323 | { |
317 | | - const VERSION = '1.7.4'; // current version |
| 324 | + const VERSION = '1.7.6'; // current version |
318 | 325 | |
319 | 326 | /** |
320 | 327 | * Extension options |
— | — | @@ -344,7 +351,7 @@ |
345 | 352 | 'addauthor' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'), |
346 | 353 | 'addcontribution' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'), |
347 | 354 | 'addlasteditor' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'), |
348 | | - 'allowcachedresults' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'), |
| 355 | + 'allowcachedresults' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on', 'yes+warn'), |
349 | 356 | /** |
350 | 357 | * search for a page with the same title in another namespace (this is normally the article to a talk page) |
351 | 358 | */ |
— | — | @@ -497,7 +504,7 @@ |
498 | 505 | /** |
499 | 506 | * listseparators is an array of four tags (in html or wiki syntax) which defines the output of DPL2 |
500 | 507 | * if mode = 'userformat' was specified. |
501 | | - * '\n' or '�' in the input will be interpreted as a newline character. |
| 508 | + * '\n' or '¶' in the input will be interpreted as a newline character. |
502 | 509 | * '%xxx%' in the input will be replaced by a corresponding value (xxx= PAGE, NR, COUNT etc.) |
503 | 510 | * t1 and t4 are the "outer envelope" for the whole result list, |
504 | 511 | * t2,t3 form an inner envelope around the article name of each entry. |
— | — | @@ -553,6 +560,10 @@ |
554 | 561 | */ |
555 | 562 | 'notuses' => array('default' => ''), |
556 | 563 | /** |
| 564 | + * this parameter restricts the output to the template used by the specified page. |
| 565 | + */ |
| 566 | + 'usedby' => array('default' => ''), |
| 567 | + /** |
557 | 568 | * allows to specify a username who must be the first editor of the pages we select |
558 | 569 | */ |
559 | 570 | 'createdby' => NULL, |
— | — | @@ -632,12 +643,14 @@ |
633 | 644 | */ |
634 | 645 | 'titlematch' => NULL, |
635 | 646 | 'titleregexp' => NULL, |
| 647 | + 'userdateformat' => array('default' => ''), |
| 648 | + 'updaterules' => array('default' => ''), |
| 649 | + 'deleterules' => array('default' => ''), |
| 650 | + |
636 | 651 | /** |
637 | 652 | * nottitlematch is a (SQL-LIKE-expression) pattern |
638 | 653 | * which excludes pages matching that pattern from the result |
639 | 654 | */ |
640 | | - 'userdateformat' => array('default' => ''), |
641 | | - |
642 | 655 | 'nottitlematch' => NULL, |
643 | 656 | 'nottitleregexp' => NULL, |
644 | 657 | 'order' => array('default' => 'ascending', 'ascending', 'descending'), |
— | — | @@ -680,6 +693,7 @@ |
681 | 694 | * if the result set is empty; setting 'noresultsheader' to something like ' ' will suppress |
682 | 695 | * the warning about empty result set. |
683 | 696 | */ |
| 697 | + 'suppresserrors' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'), |
684 | 698 | 'noresultsheader' => array('default' => ''), |
685 | 699 | 'noresultsfooter' => array('default' => ''), |
686 | 700 | /** |
— | — | @@ -784,7 +798,7 @@ |
785 | 799 | // phase of the MediaWiki parser |
786 | 800 | |
787 | 801 | public static function setup() { |
788 | | - // Page Transclusion, adopted from Steve Sanbeg�s LabeledSectionTransclusion |
| 802 | + // Page Transclusion, adopted from Steve Sanbeg´s LabeledSectionTransclusion |
789 | 803 | require_once( 'DynamicPageList2Include.php' ); |
790 | 804 | |
791 | 805 | global $wgParser, $wgMessageCache; |
— | — | @@ -889,7 +903,7 @@ |
890 | 904 | $numargs = func_num_args(); |
891 | 905 | if ($numargs < 2) { |
892 | 906 | $input = "#dpl: no arguments specified"; |
893 | | - return str_replace('�','<','�pre>�nowiki>'.$input.'�/nowiki>�/pre>'); |
| 907 | + return str_replace('§','<','§pre>§nowiki>'.$input.'§/nowiki>§/pre>'); |
894 | 908 | } |
895 | 909 | |
896 | 910 | // fetch all user-provided arguments (skipping $parser) |
— | — | @@ -899,7 +913,7 @@ |
900 | 914 | $input .= str_replace("\n","",$p1) ."\n"; |
901 | 915 | } |
902 | 916 | // for debugging you may want to uncomment the following statement |
903 | | - // return str_replace('�','<','�pre>�nowiki>'.$input.'�/nowiki>�/pre>'); |
| 917 | + // return str_replace('§','<','§pre>§nowiki>'.$input.'§/nowiki>§/pre>'); |
904 | 918 | |
905 | 919 | |
906 | 920 | // $dump1 = self::dumpParsedRefs($parser,"before DPL func"); |
— | — | @@ -1158,6 +1172,7 @@ |
1159 | 1173 | |
1160 | 1174 | $sRedirects = self::$options['redirects']['default']; |
1161 | 1175 | |
| 1176 | + $bSuppressErrors = self::argBoolean(self::$options['suppresserrors']['default']); |
1162 | 1177 | $sResultsHeader = self::$options['resultsheader']['default']; |
1163 | 1178 | $sResultsFooter = self::$options['resultsfooter']['default']; |
1164 | 1179 | $sNoResultsHeader = self::$options['noresultsheader']['default']; |
— | — | @@ -1190,6 +1205,7 @@ |
1191 | 1206 | $bAddLastEditor = self::argBoolean(self::$options['addlasteditor']['default']); |
1192 | 1207 | |
1193 | 1208 | $bAllowCachedResults = self::argBoolean(self::$options['allowcachedresults']['default']); |
| 1209 | + $bWarnCachedResults = false; |
1194 | 1210 | |
1195 | 1211 | $sUserDateFormat = self::$options['userdateformat']['default']; |
1196 | 1212 | |
— | — | @@ -1268,6 +1284,7 @@ |
1269 | 1285 | |
1270 | 1286 | $aUses = array(); |
1271 | 1287 | $aNotUses = array(); |
| 1288 | + $aUsedBy = array(); |
1272 | 1289 | |
1273 | 1290 | $sCreatedBy = ''; |
1274 | 1291 | $sNotCreatedBy = ''; |
— | — | @@ -1292,6 +1309,9 @@ |
1293 | 1310 | |
1294 | 1311 | $sArticleCategory = null; |
1295 | 1312 | |
| 1313 | + $sUpdateRules = self::$options['updaterules']['default']; |
| 1314 | + $sDeleteRules = self::$options['deleterules']['default']; |
| 1315 | + |
1296 | 1316 | // Output |
1297 | 1317 | $output = ''; |
1298 | 1318 | |
— | — | @@ -1299,16 +1319,16 @@ |
1300 | 1320 | // ###### PARSE PARAMETERS ###### |
1301 | 1321 | |
1302 | 1322 | // we replace double angle brackets by < > ; thus we avoid premature tag expansion in the input |
1303 | | - $input = str_replace('»','>',$input); |
1304 | | - $input = str_replace('«','<',$input); |
| 1323 | + $input = str_replace('»','>',$input); |
| 1324 | + $input = str_replace('«','<',$input); |
1305 | 1325 | |
1306 | | - // use the � as a general alias for | |
1307 | | - $input = str_replace('¦','|',$input); // the symbol is utf8-escaped |
| 1326 | + // use the ¦ as a general alias for | |
| 1327 | + $input = str_replace('¦','|',$input); // the symbol is utf8-escaped |
1308 | 1328 | |
1309 | | - // the combination '�{' and '}�'will be translated to double curly braces; this allows postponed template execution |
| 1329 | + // the combination '²{' and '}²'will be translated to double curly braces; this allows postponed template execution |
1310 | 1330 | // which is crucial for DPL queries which call other DPL queries |
1311 | | - $input = str_replace('²{','{{',$input); |
1312 | | - $input = str_replace('}²','}}',$input); |
| 1331 | + $input = str_replace('²{','{{',$input); |
| 1332 | + $input = str_replace('}²','}}',$input); |
1313 | 1333 | |
1314 | 1334 | $aParams = explode("\n", $input); |
1315 | 1335 | $bIncludeUncat = false; // to check if pseudo-category of Uncategorized pages is included |
— | — | @@ -1568,6 +1588,19 @@ |
1569 | 1589 | $bConflictsWithOpenReferences=true; |
1570 | 1590 | break; |
1571 | 1591 | |
| 1592 | + case 'usedby': |
| 1593 | + $pages = explode('|', $sArg); |
| 1594 | + $n=0; |
| 1595 | + foreach($pages as $page) { |
| 1596 | + if (trim($page)=='') continue; |
| 1597 | + if (!($theTitle = Title::newFromText(trim($page)))) return $logger->msgWrongParam('usedby', $sArg); |
| 1598 | + $aUsedBy[$n++] = $theTitle; |
| 1599 | + $bSelectionCriteriaFound=true; |
| 1600 | + } |
| 1601 | + if(!$bSelectionCriteriaFound) return $logger->msgWrongParam('usedby', $sArg); |
| 1602 | + $bConflictsWithOpenReferences=true; |
| 1603 | + break; |
| 1604 | + |
1572 | 1605 | case 'createdby': |
1573 | 1606 | $sCreatedBy = $sArg; |
1574 | 1607 | if ($sCreatedBy != '') $bSelectionCriteriaFound=true; |
— | — | @@ -1999,7 +2032,7 @@ |
2000 | 2033 | // parsing of wikitext will happen at the end of the output phase |
2001 | 2034 | // we replace '\n' in the input by linefeed because wiki syntax depends on linefeeds |
2002 | 2035 | $sArg = str_replace( '\n', "\n", $sArg ); |
2003 | | - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
| 2036 | + $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
2004 | 2037 | $aListSeparators = explode (',', $sArg, 4); |
2005 | 2038 | // mode=userformat will be automatically assumed |
2006 | 2039 | $sPageListMode='userformat'; |
— | — | @@ -2009,25 +2042,25 @@ |
2010 | 2043 | case 'secseparators': |
2011 | 2044 | // we replace '\n' by newline to support wiki syntax within the section separators |
2012 | 2045 | $sArg = str_replace( '\n', "\n", $sArg ); |
2013 | | - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
| 2046 | + $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
2014 | 2047 | $aSecSeparators = explode (',',$sArg); |
2015 | 2048 | break; |
2016 | 2049 | |
2017 | 2050 | case 'multisecseparators': |
2018 | 2051 | // we replace '\n' by newline to support wiki syntax within the section separators |
2019 | 2052 | $sArg = str_replace( '\n', "\n", $sArg ); |
2020 | | - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
| 2053 | + $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
2021 | 2054 | $aMultiSecSeparators = explode (',',$sArg); |
2022 | 2055 | break; |
2023 | 2056 | |
2024 | 2057 | case 'table': |
2025 | 2058 | $sArg = str_replace( '\n', "\n", $sArg ); |
2026 | | - $sTable = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
| 2059 | + $sTable = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
2027 | 2060 | break; |
2028 | 2061 | |
2029 | 2062 | case 'tablerow': |
2030 | 2063 | $sArg = str_replace( '\n', "\n", $sArg ); |
2031 | | - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
| 2064 | + $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped |
2032 | 2065 | if (trim($sArg)=='') $aTableRow = array(); |
2033 | 2066 | else $aTableRow = explode (',',$sArg); |
2034 | 2067 | break; |
— | — | @@ -2095,6 +2128,16 @@ |
2096 | 2129 | case 'noresultsheader': |
2097 | 2130 | $sNoResultsHeader = $sArg; |
2098 | 2131 | break; |
| 2132 | + case 'suppresserrors': |
| 2133 | + if( in_array($sArg, self::$options['suppresserrors'])) { |
| 2134 | + $bSuppressErrors = self::argBoolean($sArg); |
| 2135 | + if( $bSuppressErrors ) $sNoResultsHeader = ' '; |
| 2136 | + } |
| 2137 | + else { |
| 2138 | + $output .= $logger->msgWrongParam('suppresserrors', $sArg); |
| 2139 | + } |
| 2140 | + break; |
| 2141 | + |
2099 | 2142 | case 'noresultsfooter': |
2100 | 2143 | $sNoResultsFooter = $sArg; |
2101 | 2144 | break; |
— | — | @@ -2106,12 +2149,32 @@ |
2107 | 2150 | break; |
2108 | 2151 | |
2109 | 2152 | /** |
| 2153 | + * UPDATERULES |
| 2154 | + */ |
| 2155 | + |
| 2156 | + case 'updaterules': |
| 2157 | + $sUpdateRules = $sArg; |
| 2158 | + break; |
| 2159 | + |
| 2160 | + /** |
| 2161 | + * DELETERULES |
| 2162 | + */ |
| 2163 | + |
| 2164 | + case 'deleterules': |
| 2165 | + $sDeleteRules = $sArg; |
| 2166 | + break; |
| 2167 | + |
| 2168 | + /** |
2110 | 2169 | * DEBUG, RESET and CACHE PARAMETER |
2111 | 2170 | */ |
2112 | 2171 | |
2113 | 2172 | case 'allowcachedresults': |
2114 | 2173 | if( in_array($sArg, self::$options['allowcachedresults'])) { |
2115 | 2174 | $bAllowCachedResults = self::argBoolean($sArg); |
| 2175 | + if ($sArg=='yes+warn') { |
| 2176 | + $bAllowCachedResults = true; |
| 2177 | + $bWarnCachedResults = true; |
| 2178 | + } |
2116 | 2179 | } |
2117 | 2180 | else |
2118 | 2181 | $output .= $logger->msgWrongParam('allowcachedresults', $sArg); |
— | — | @@ -2188,6 +2251,9 @@ |
2189 | 2252 | |
2190 | 2253 | // disable parser cache |
2191 | 2254 | if ( !$bAllowCachedResults) $parser->disableCache(); |
| 2255 | + |
| 2256 | + // place cache warning in resultsheader |
| 2257 | + if ($bWarnCachedResults) $sResultsHeader = '{{DPL Cache Warning}}' . $sResultsHeader; |
2192 | 2258 | |
2193 | 2259 | if ($calledInMode=='tag') { |
2194 | 2260 | // in tag mode 'eliminate' is the same as 'reset' for tpl,cat,img |
— | — | @@ -2387,6 +2453,7 @@ |
2388 | 2454 | $sTemplateLinksTable = $dbr->tableName( 'templatelinks' ); |
2389 | 2455 | $sSqlPageLinksTable = ''; |
2390 | 2456 | $sSqlCond_page_pl = ''; |
| 2457 | + $sSqlCond_page_tpl = ''; |
2391 | 2458 | $sSqlCond_MaxCat = ''; |
2392 | 2459 | $sSqlWhere = ' WHERE 1=1 '; |
2393 | 2460 | $sSqlSelPage = ''; // initial page for selection |
— | — | @@ -2432,14 +2499,14 @@ |
2433 | 2500 | // UTF-8 created problems with non-utf-8 MySQL databases |
2434 | 2501 | //see line 2011 (order method sortkey requires category |
2435 | 2502 | if (in_array('category',$aOrderMethods)) { |
2436 | | - $sSqlSortkey = ", IFNULL(cl_head.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣')) ".$sOrderCollation." as sortkey"; |
| 2503 | + $sSqlSortkey = ", IFNULL(cl_head.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'â£','⣣')) ".$sOrderCollation." as sortkey"; |
2437 | 2504 | } |
2438 | 2505 | else { |
2439 | | - $sSqlSortkey = ", IFNULL(cl0.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣')) ".$sOrderCollation." as sortkey"; |
| 2506 | + $sSqlSortkey = ", IFNULL(cl0.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'â£','⣣')) ".$sOrderCollation." as sortkey"; |
2440 | 2507 | } |
2441 | 2508 | break; |
2442 | 2509 | case 'titlewithoutnamespace': |
2443 | | - $sSqlSortkey = ", REPLACE(page_title,'♣','⣣') ".$sOrderCollation." as sortkey"; |
| 2510 | + $sSqlSortkey = ", REPLACE(page_title,'â£','⣣') ".$sOrderCollation." as sortkey"; |
2444 | 2511 | break; |
2445 | 2512 | case 'pagesel': |
2446 | 2513 | $sSqlSortkey = ", CONCAT(pl.pl_namespace,pl.pl_title) ".$sOrderCollation." as sortkey"; |
— | — | @@ -2452,7 +2519,7 @@ |
2453 | 2520 | foreach($aStrictNs as $iNs => $sNs) |
2454 | 2521 | $sSqlNsIdToText .= ' WHEN ' . intval( $iNs ) . " THEN " . $dbr->addQuotes( $sNs ) ; |
2455 | 2522 | $sSqlNsIdToText .= ' END'; |
2456 | | - $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(pl_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), pl_title), '_', ' '),'♣','⣣') ".$sOrderCollation." as sortkey"; |
| 2523 | + $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(pl_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), pl_title), '_', ' '),'â£','⣣') ".$sOrderCollation." as sortkey"; |
2457 | 2524 | } |
2458 | 2525 | else { |
2459 | 2526 | $sSqlNsIdToText = 'CASE '.$sPageTable.'.page_namespace'; |
— | — | @@ -2460,7 +2527,7 @@ |
2461 | 2528 | $sSqlNsIdToText .= ' WHEN ' . intval( $iNs ) . " THEN " . $dbr->addQuotes( $sNs ) ; |
2462 | 2529 | $sSqlNsIdToText .= ' END'; |
2463 | 2530 | // Generate sortkey like for category links. UTF-8 created problems with non-utf-8 MySQL databases |
2464 | | - $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣') ".$sOrderCollation." as sortkey"; |
| 2531 | + $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'â£','⣣') ".$sOrderCollation." as sortkey"; |
2465 | 2532 | } |
2466 | 2533 | break; |
2467 | 2534 | case 'user': |
— | — | @@ -2479,7 +2546,7 @@ |
2480 | 2547 | foreach ($aLinksTo as $link) { |
2481 | 2548 | if ($n>0) $sSqlCond_page_pl .= ' OR '; |
2482 | 2549 | $sSqlCond_page_pl .= '(pl.pl_namespace=' . intval( $link->getNamespace() ); |
2483 | | - if ($bIgnoreCase) $sSqlCond_page_pl .= " AND UPPER(pl.pl_title)=UPPER(" . $dbr->addQuotes( $link->getDBKey() ).'))'; |
| 2550 | + if ($bIgnoreCase) $sSqlCond_page_pl .= " AND LOWER(pl.pl_title)=LOWER(" . $dbr->addQuotes( $link->getDBKey() ).'))'; |
2484 | 2551 | else $sSqlCond_page_pl .= " AND pl.pl_title=" . $dbr->addQuotes( $link->getDBKey() ).')'; |
2485 | 2552 | $n++; |
2486 | 2553 | } |
— | — | @@ -2493,7 +2560,7 @@ |
2494 | 2561 | foreach ($aNotLinksTo as $link) { |
2495 | 2562 | if ($n>0) $sSqlCond_page_pl .= ' OR '; |
2496 | 2563 | $sSqlCond_page_pl .= '('.$sPageLinksTable.'.pl_namespace=' . intval($link->getNamespace()); |
2497 | | - if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND UPPER('.$sPageLinksTable.'.pl_title)=UPPER(' . $dbr->addQuotes( $link->getDBKey() ).'))'; |
| 2564 | + if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND LOWER('.$sPageLinksTable.'.pl_title)=LOWER(' . $dbr->addQuotes( $link->getDBKey() ).'))'; |
2498 | 2565 | else $sSqlCond_page_pl .= ' AND '.$sPageLinksTable.'.pl_title=' . $dbr->addQuotes( $link->getDBKey() ).')'; |
2499 | 2566 | $n++; |
2500 | 2567 | } |
— | — | @@ -2559,7 +2626,7 @@ |
2560 | 2627 | $n=0; |
2561 | 2628 | foreach ($aImageUsed as $link) { |
2562 | 2629 | if ($n>0) $sSqlCond_page_pl .= ' OR '; |
2563 | | - if ($bIgnoreCase) $sSqlCond_page_pl .= "UPPER(il.il_to)=UPPER(" . $dbr->addQuotes( $link->getDBKey() ).')'; |
| 2630 | + if ($bIgnoreCase) $sSqlCond_page_pl .= "LOWER(il.il_to)=LOWER(" . $dbr->addQuotes( $link->getDBKey() ).')'; |
2564 | 2631 | else $sSqlCond_page_pl .= "il.il_to=" . $dbr->addQuotes( $link->getDBKey() ); |
2565 | 2632 | $n++; |
2566 | 2633 | } |
— | — | @@ -2578,7 +2645,7 @@ |
2579 | 2646 | $n=0; |
2580 | 2647 | foreach ($aImageContainer as $link) { |
2581 | 2648 | if ($n>0) $sSqlCond_page_pl .= ' OR '; |
2582 | | - if ($bIgnoreCase) $sSqlCond_page_pl .= "UPPER(ic.il_from)=UPPER(" . $dbr->addQuotes( $link->getArticleID() ).')'; |
| 2649 | + if ($bIgnoreCase) $sSqlCond_page_pl .= "LOWER(ic.il_from)=LOWER(" . $dbr->addQuotes( $link->getArticleID() ).')'; |
2583 | 2650 | else $sSqlCond_page_pl .= "ic.il_from=" . $dbr->addQuotes( $link->getArticleID() ); |
2584 | 2651 | $n++; |
2585 | 2652 | } |
— | — | @@ -2593,7 +2660,7 @@ |
2594 | 2661 | foreach ($aUses as $link) { |
2595 | 2662 | if ($n>0) $sSqlCond_page_pl .= ' OR '; |
2596 | 2663 | $sSqlCond_page_pl .= '(tl.tl_namespace=' . intval( $link->getNamespace() ); |
2597 | | - if ($bIgnoreCase) $sSqlCond_page_pl .= " AND UPPER(tl.tl_title)=UPPER(" . $dbr->addQuotes( $link->getDBKey() ).'))'; |
| 2664 | + if ($bIgnoreCase) $sSqlCond_page_pl .= " AND LOWER(tl.tl_title)=LOWER(" . $dbr->addQuotes( $link->getDBKey() ).'))'; |
2598 | 2665 | else $sSqlCond_page_pl .= " AND tl.tl_title=" . $dbr->addQuotes( $link->getDBKey() ).')'; |
2599 | 2666 | $n++; |
2600 | 2667 | } |
— | — | @@ -2607,13 +2674,40 @@ |
2608 | 2675 | foreach ($aNotUses as $link) { |
2609 | 2676 | if ($n>0) $sSqlCond_page_pl .= ' OR '; |
2610 | 2677 | $sSqlCond_page_pl .= '('.$sTemplateLinksTable.'.tl_namespace=' . intval($link->getNamespace()); |
2611 | | - if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND UPPER('.$sTemplateLinksTable.'.tl_title)=UPPER(' . $dbr->addQuotes( $link->getDBKey() ).'))'; |
| 2678 | + if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND LOWER('.$sTemplateLinksTable.'.tl_title)=LOWER(' . $dbr->addQuotes( $link->getDBKey() ).'))'; |
2612 | 2679 | else $sSqlCond_page_pl .= ' AND '.$sTemplateLinksTable.'.tl_title=' . $dbr->addQuotes( $link->getDBKey() ).')'; |
2613 | 2680 | $n++; |
2614 | 2681 | } |
2615 | 2682 | $sSqlCond_page_pl .= ') )'; |
2616 | 2683 | } |
| 2684 | + |
| 2685 | + // usedby |
| 2686 | + if ( count($aUsedBy)>0 ) { |
| 2687 | + if ($acceptOpenReferences) { |
| 2688 | + $sSqlCond_page_tpl .= ' AND ('; |
| 2689 | + $n=0; |
| 2690 | + foreach ($aUsedBy as $link) { |
| 2691 | + if ($n>0) $sSqlCond_page_pl .= ' OR '; |
| 2692 | + $sSqlCond_page_tpl .= '(tpl_from=' . $link->getArticleID().')'; |
| 2693 | + $n++; |
| 2694 | + } |
| 2695 | + $sSqlCond_page_tpl .= ')'; |
| 2696 | + } |
| 2697 | + else { |
| 2698 | + $sSqlPageLinksTable .= $sTemplateLinksTable . ' as tpl, '. $sPageTable . 'as tplsrc, '; |
| 2699 | + $sSqlCond_page_tpl .= ' AND '.$sPageTable.'.page_title = tpl.tl_title AND tplsrc.page_id=tpl.tl_from AND ('; |
| 2700 | + $sSqlSelPage = ', tplsrc.page_title as tpl_sel_title, tplsrc.page_namespace as tpl_sel_ns'; |
| 2701 | + $n=0; |
| 2702 | + foreach ($aUsedBy as $link) { |
| 2703 | + if ($n>0) $sSqlCond_page_tpl .= ' OR '; |
| 2704 | + $sSqlCond_page_tpl .= '(tpl.tl_from=' . $link->getArticleID().')'; |
| 2705 | + $n++; |
| 2706 | + } |
| 2707 | + $sSqlCond_page_tpl .= ')'; |
| 2708 | + } |
| 2709 | + } |
2617 | 2710 | |
| 2711 | + |
2618 | 2712 | // recent changes ============================= |
2619 | 2713 | |
2620 | 2714 | if ( $bAddContribution ) { |
— | — | @@ -2651,14 +2745,13 @@ |
2652 | 2746 | |
2653 | 2747 | if ($bAddAuthor && $sSqlRevisionTable =='') { |
2654 | 2748 | $sSqlRevisionTable = $sRevisionTable . ' AS rev, '; |
2655 | | - $sSqlCond_page_rev = ' AND '.$sPageTable.'.page_id=rev.rev_page AND rev.rev_timestamp=( SELECT MIN(rev_aux.rev_timestamp) FROM ' . $sRevisionTable . ' AS rev_aux WHERE rev_aux.rev_page=rev.rev_page )'; |
| 2749 | + $sSqlCond_page_rev .= ' AND '.$sPageTable.'.page_id=rev.rev_page AND rev.rev_timestamp=( SELECT MIN(rev_aux.rev_timestamp) FROM ' . $sRevisionTable . ' AS rev_aux WHERE rev_aux.rev_page=rev.rev_page )'; |
2656 | 2750 | } |
2657 | 2751 | if ($bAddLastEditor && $sSqlRevisionTable =='') { |
2658 | 2752 | $sSqlRevisionTable = $sRevisionTable . ' AS rev, '; |
2659 | | - $sSqlCond_page_rev = ' AND '.$sPageTable.'.page_id=rev.rev_page AND rev.rev_timestamp=( SELECT MAX(rev_aux.rev_timestamp) FROM ' . $sRevisionTable . ' AS rev_aux WHERE rev_aux.rev_page=rev.rev_page )'; |
| 2753 | + $sSqlCond_page_rev .= ' AND '.$sPageTable.'.page_id=rev.rev_page AND rev.rev_timestamp=( SELECT MAX(rev_aux.rev_timestamp) FROM ' . $sRevisionTable . ' AS rev_aux WHERE rev_aux.rev_page=rev.rev_page )'; |
2660 | 2754 | } |
2661 | 2755 | |
2662 | | - |
2663 | 2756 | if ($sLastRevisionBefore.$sAllRevisionsBefore.$sFirstRevisionSince.$sAllRevisionsSince != '') { |
2664 | 2757 | |
2665 | 2758 | // later during output we are going to create html links to the revisions, so we must enable RawHtml |
— | — | @@ -2777,7 +2870,7 @@ |
2778 | 2871 | |
2779 | 2872 | // TitleIs |
2780 | 2873 | if ( $sTitleIs != '' ) { |
2781 | | - if ($bIgnoreCase) $sSqlWhere .= ' AND UPPER('.$sPageTable.'.page_title) = UPPER(' . $dbr->addQuotes($sTitleIs) .')' ; |
| 2874 | + if ($bIgnoreCase) $sSqlWhere .= ' AND LOWER('.$sPageTable.'.page_title) = LOWER(' . $dbr->addQuotes($sTitleIs) .')' ; |
2782 | 2875 | else $sSqlWhere .= ' AND '.$sPageTable.'.page_title = ' . $dbr->addQuotes($sTitleIs) ; |
2783 | 2876 | } |
2784 | 2877 | |
— | — | @@ -2788,10 +2881,10 @@ |
2789 | 2882 | foreach ($aTitleMatch as $link) { |
2790 | 2883 | if ($n>0) $sSqlWhere .= ' OR '; |
2791 | 2884 | if ($acceptOpenReferences) { |
2792 | | - if ($bIgnoreCase) $sSqlWhere .= 'UPPER(pl_title)' . $sTitleMatchMode . 'UPPER('. $dbr->addQuotes($link) . ')' ; |
| 2885 | + if ($bIgnoreCase) $sSqlWhere .= 'LOWER(pl_title)' . $sTitleMatchMode . strtolower($dbr->addQuotes($link)) ; |
2793 | 2886 | else $sSqlWhere .= 'pl_title' . $sTitleMatchMode . $dbr->addQuotes($link) ; |
2794 | 2887 | } else { |
2795 | | - if ($bIgnoreCase) $sSqlWhere .= 'UPPER(' . $sPageTable.'.page_title)' . $sTitleMatchMode . 'UPPER('. $dbr->addQuotes($link) .')' ; |
| 2888 | + if ($bIgnoreCase) $sSqlWhere .= 'LOWER(' . $sPageTable.'.page_title)' . $sTitleMatchMode . strtolower($dbr->addQuotes($link)) ; |
2796 | 2889 | else $sSqlWhere .= $sPageTable.'.page_title' . $sTitleMatchMode . $dbr->addQuotes($link) ; |
2797 | 2890 | } |
2798 | 2891 | $n++; |
— | — | @@ -2806,10 +2899,10 @@ |
2807 | 2900 | foreach ($aNotTitleMatch as $link) { |
2808 | 2901 | if ($n>0) $sSqlWhere .= ' OR '; |
2809 | 2902 | if ($acceptOpenReferences) { |
2810 | | - if ($bIgnoreCase) $sSqlWhere .= 'UPPER(pl_title)' . $sNotTitleMatchMode . 'UPPER(' . $dbr->addQuotes($link) . ')'; |
| 2903 | + if ($bIgnoreCase) $sSqlWhere .= 'LOWER(pl_title)' . $sNotTitleMatchMode . 'LOWER(' . $dbr->addQuotes($link) . ')'; |
2811 | 2904 | else $sSqlWhere .= 'pl_title' . $sNotTitleMatchMode . $dbr->addQuotes($link); |
2812 | 2905 | } else { |
2813 | | - if ($bIgnoreCase) $sSqlWhere .= 'UPPER('.$sPageTable.'.page_title)' . $sNotTitleMatchMode . 'UPPER(' . $dbr->addQuotes($link) .')'; |
| 2906 | + if ($bIgnoreCase) $sSqlWhere .= 'LOWER('.$sPageTable.'.page_title)' . $sNotTitleMatchMode . 'LOWER(' . $dbr->addQuotes($link) .')'; |
2814 | 2907 | else $sSqlWhere .= $sPageTable.'.page_title' . $sNotTitleMatchMode . $dbr->addQuotes($link); |
2815 | 2908 | } |
2816 | 2909 | $n++; |
— | — | @@ -2834,7 +2927,7 @@ |
2835 | 2928 | |
2836 | 2929 | // page_id=rev_page (if revision table required) |
2837 | 2930 | $sSqlWhere .= $sSqlCond_page_rev; |
2838 | | - |
| 2931 | + |
2839 | 2932 | // count(all categories) <= max no of categories |
2840 | 2933 | $sSqlWhere .= $sSqlCond_MaxCat; |
2841 | 2934 | |
— | — | @@ -2847,6 +2940,9 @@ |
2848 | 2941 | // page_id=pl.pl_from (if pagelinks table required) |
2849 | 2942 | $sSqlWhere .= $sSqlCond_page_pl; |
2850 | 2943 | |
| 2944 | + // page_id=tpl.pl_from (if templatelinks table required) |
| 2945 | + $sSqlWhere .= $sSqlCond_page_tpl; |
| 2946 | + |
2851 | 2947 | if ( isset($sArticleCategory) && $sArticleCategory !== null ) { |
2852 | 2948 | $sSqlWhere .= " AND $sPageTable.page_title IN ( |
2853 | 2949 | select p2.page_title |
— | — | @@ -2941,8 +3037,8 @@ |
2942 | 3038 | } |
2943 | 3039 | |
2944 | 3040 | if ($dbr->numRows( $res ) <= 0) { |
2945 | | - if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader)); |
2946 | | - if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter)); |
| 3041 | + if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader)); |
| 3042 | + if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter)); |
2947 | 3043 | if ($sNoResultsHeader == '' && $sNoResultsFooter == '') $output .= $logger->escapeMsg(DPL2_i18n::WARN_NORESULTS); |
2948 | 3044 | $dbr->freeResult( $res ); |
2949 | 3045 | return $output; |
— | — | @@ -3093,7 +3189,7 @@ |
3094 | 3190 | |
3095 | 3191 | //USER/AUTHOR(S) |
3096 | 3192 | // because we are going to do a recursive parse at the end of the output phase |
3097 | | - // we have to generate wiki syntax for linking to a user�s homepage |
| 3193 | + // we have to generate wiki syntax for linking to a user´s homepage |
3098 | 3194 | if($bAddUser || $bAddAuthor || $bAddLastEditor || $sLastRevisionBefore.$sAllRevisionsBefore.$sFirstRevisionSince.$sAllRevisionsSince != '') { |
3099 | 3195 | $dplArticle->mUserLink = '[[User:'.$row->rev_user_text.'|'.$row->rev_user_text.']]'; |
3100 | 3196 | $dplArticle->mUser = $row->rev_user_text; |
— | — | @@ -3156,7 +3252,7 @@ |
3157 | 3253 | $dpl = new DPL2($aHeadings, $bHeadingCount, $iColumns, $iRows, $iRowSize, $sRowColFormat, $aArticles, |
3158 | 3254 | $aOrderMethods[0], $hListMode, $listMode, $bEscapeLinks, $bIncPage, $iIncludeMaxLen, |
3159 | 3255 | $aSecLabels, $aSecLabelsMatch, $aSecLabelsNotMatch, $bIncParsed, $parser, $logger, $aReplaceInTitle, |
3160 | | - $iTitleMaxLen, $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol); |
| 3256 | + $iTitleMaxLen, $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol, $sUpdateRules, $sDeleteRules); |
3161 | 3257 | |
3162 | 3258 | if ($rowcount == -1) $rowcount = $dpl->getRowCount(); |
3163 | 3259 | $dpl2result = $dpl->getText(); |
— | — | @@ -3164,14 +3260,14 @@ |
3165 | 3261 | if ($sOneResultHeader != '' && $rowcount==1) { |
3166 | 3262 | $header = str_replace('%PAGES%',1,$sOneResultHeader); |
3167 | 3263 | } else if ($rowcount==0) { |
3168 | | - if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader)); |
3169 | | - if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter)); |
| 3264 | + if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader)); |
| 3265 | + if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter)); |
3170 | 3266 | if ($sNoResultsHeader == '' && $sNoResultsFooter == '') $output .= $logger->escapeMsg(DPL2_i18n::WARN_NORESULTS); |
3171 | 3267 | } |
3172 | 3268 | else { |
3173 | 3269 | if ($sResultsHeader != '') $header = str_replace('%TOTALPAGES%',$rowcount,str_replace('%PAGES%',$rowcount,$sResultsHeader)); |
3174 | 3270 | } |
3175 | | - $header = str_replace( '\n', "\n", str_replace( "¶", "\n", $header )); |
| 3271 | + $header = str_replace( '\n', "\n", str_replace( "¶", "\n", $header )); |
3176 | 3272 | $header = str_replace('%VERSION%', self::VERSION,$header); |
3177 | 3273 | $footer=''; |
3178 | 3274 | if ($sOneResultFooter != '' && $rowcount==1) { |
— | — | @@ -3179,7 +3275,7 @@ |
3180 | 3276 | } else { |
3181 | 3277 | if ($sResultsFooter != '') $footer = str_replace('%TOTALPAGES%',$rowcount,str_replace('%PAGES%',$rowcount,$sResultsFooter)); |
3182 | 3278 | } |
3183 | | - $footer = str_replace( '\n', "\n", str_replace( "¶", "\n", $footer )); |
| 3279 | + $footer = str_replace( '\n', "\n", str_replace( "¶", "\n", $footer )); |
3184 | 3280 | $footer = str_replace('%VERSION%', self::VERSION, $footer); |
3185 | 3281 | |
3186 | 3282 | $output .= $header . $dpl2result . $footer; |
— | — | @@ -3478,7 +3574,7 @@ |
3479 | 3575 | function DPL2($headings, $bHeadingCount, $iColumns, $iRows, $iRowSize, $sRowColFormat, $articles, $headingtype, $hlistmode, |
3480 | 3576 | $listmode, $bescapelinks, $includepage, $includemaxlen, $includeseclabels, $includeseclabelsmatch, |
3481 | 3577 | $includeseclabelsnotmatch, $includematchparsed, &$parser, $logger, $replaceInTitle, $iTitleMaxLen, |
3482 | | - $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol ) { |
| 3578 | + $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules ) { |
3483 | 3579 | global $wgContLang; |
3484 | 3580 | $this->nameSpaces = $wgContLang->getNamespaces(); |
3485 | 3581 | $this->mArticles = $articles; |
— | — | @@ -3534,13 +3630,13 @@ |
3535 | 3631 | $greml -= $portion; |
3536 | 3632 | // $this->mOutput .= "nsize=$nsize, portion=$portion, greml=$greml"; |
3537 | 3633 | if ($greml>0) { |
3538 | | - $this->mOutput .= $this->formatList($nstart-$offset, $portion, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol); |
| 3634 | + $this->mOutput .= $this->formatList($nstart-$offset, $portion, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules); |
3539 | 3635 | $nstart += $portion; |
3540 | 3636 | $portion=0; |
3541 | 3637 | break; |
3542 | 3638 | } |
3543 | 3639 | else { |
3544 | | - $this->mOutput .= $this->formatList($nstart-$offset, $portion+$greml, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol); |
| 3640 | + $this->mOutput .= $this->formatList($nstart-$offset, $portion+$greml, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules); |
3545 | 3641 | $nstart += ($portion+$greml); |
3546 | 3642 | $portion = (-$greml); |
3547 | 3643 | if ($iColumns!=1) $this->mOutput .= "\n|valign=top|\n"; |
— | — | @@ -3567,7 +3663,7 @@ |
3568 | 3664 | $this->mOutput .= $hlistmode->sItemStart; |
3569 | 3665 | $this->mOutput .= $hlistmode->sHeadingStart . $headingLink . $hlistmode->sHeadingEnd; |
3570 | 3666 | if ($bHeadingCount) $this->mOutput .= $this->formatCount($headingCount); |
3571 | | - $this->mOutput .= $this->formatList($headingStart, $headingCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol); |
| 3667 | + $this->mOutput .= $this->formatList($headingStart, $headingCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules); |
3572 | 3668 | $this->mOutput .= $hlistmode->sItemEnd; |
3573 | 3669 | $headingStart += $headingCount; |
3574 | 3670 | } |
— | — | @@ -3584,7 +3680,7 @@ |
3585 | 3681 | if ($rest>0) $nsize += 1; |
3586 | 3682 | $this->mOutput .= "{|".$sRowColFormat."\n|\n"; |
3587 | 3683 | for ($g=0;$g<$iGroup;$g++) { |
3588 | | - $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol); |
| 3684 | + $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules); |
3589 | 3685 | if ($iColumns!=1) $this->mOutput .= "\n|valign=top|\n"; |
3590 | 3686 | else $this->mOutput .= "\n|-\n|\n"; |
3591 | 3687 | $nstart = $nstart + $nsize; |
— | — | @@ -3600,14 +3696,14 @@ |
3601 | 3697 | $this->mOutput .= '{|'.$sRowColFormat."\n|\n"; |
3602 | 3698 | do { |
3603 | 3699 | if ($nstart+$nsize > $count) $nsize = $count - $nstart; |
3604 | | - $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol); |
| 3700 | + $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules); |
3605 | 3701 | $this->mOutput .= "\n|-\n|\n"; |
3606 | 3702 | $nstart = $nstart + $nsize; |
3607 | 3703 | if ($nstart >= $count) break; |
3608 | 3704 | } while (true); |
3609 | 3705 | $this->mOutput .= "\n|}\n"; |
3610 | 3706 | } else { |
3611 | | - $this->mOutput .= $this->formatList(0, count($articles), $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol); |
| 3707 | + $this->mOutput .= $this->formatList(0, count($articles), $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules); |
3612 | 3708 | } |
3613 | 3709 | |
3614 | 3710 | } |
— | — | @@ -3663,16 +3759,18 @@ |
3664 | 3760 | if ($article->mImageSelTitle!= '') $sTag = str_replace('%IMAGESEL%',str_replace('_',' ',$article->mImageSelTitle),$sTag); |
3665 | 3761 | if (!empty($article->mCategoryLinks) ) { |
3666 | 3762 | $sTag = str_replace('%'.'CATLIST%',implode(', ', $article->mCategoryLinks),$sTag); |
| 3763 | + $sTag = str_replace('%'.'CATBULLETS%','* '.implode("\n* ", $article->mCategoryLinks),$sTag); |
3667 | 3764 | $sTag = str_replace('%'.'CATNAMES%',implode(', ', $article->mCategoryTexts),$sTag); |
3668 | 3765 | } |
3669 | 3766 | else { |
3670 | 3767 | $sTag = str_replace('%'.'CATLIST%','',$sTag); |
| 3768 | + $sTag = str_replace('%'.'CATBULLETS%','',$sTag); |
3671 | 3769 | $sTag = str_replace('%'.'CATNAMES%','',$sTag); |
3672 | 3770 | } |
3673 | 3771 | return $sTag; |
3674 | 3772 | } |
3675 | 3773 | |
3676 | | - function formatList($iStart, $iCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol) { |
| 3774 | + function formatList($iStart, $iCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules) { |
3677 | 3775 | global $wgUser, $wgLang, $wgContLang; |
3678 | 3776 | |
3679 | 3777 | $mode = $this->mListMode; |
— | — | @@ -3703,12 +3801,35 @@ |
3704 | 3802 | if ($mode->name == 'userformat') $incwiki = ''; |
3705 | 3803 | else $incwiki = '<br/>'; |
3706 | 3804 | $text = $this->mParser->fetchTemplate(Title::newFromText($title)); |
3707 | | - if( $this->mIncMaxLen > 0 && (strlen($text) > $this->mIncMaxLen) ) { |
3708 | | - $text = DPL2Include::limitTranscludedText($text, $this->mIncMaxLen, ' [['.$title.'|..→]]'); |
| 3805 | + if ((count($this->mIncSecLabelsMatch)<=0 || $this->mIncSecLabelsMatch[0] == '' || |
| 3806 | + !preg_match($this->mIncSecLabelsMatch[0],$text)==false) && |
| 3807 | + (count($this->mIncSecLabelsNotMatch)<=0 || $this->mIncSecLabelsNotMatch[0] == '' || |
| 3808 | + preg_match($this->mIncSecLabelsNotMatch[0],$text)==false)) { |
| 3809 | + if( $this->mIncMaxLen > 0 && (strlen($text) > $this->mIncMaxLen) ) { |
| 3810 | + $text = DPL2Include::limitTranscludedText($text, $this->mIncMaxLen, ' [['.$title.'|..→]]'); |
| 3811 | + } |
| 3812 | + $this->filteredCount = $this->filteredCount + 1; |
| 3813 | + |
| 3814 | + // update article if include=* and updaterules are given |
| 3815 | + if ($updateRules!='') { |
| 3816 | + $message = $this->updateArticleByRule($title,$text,$updateRules); |
| 3817 | + // append update message to output |
| 3818 | + $incwiki .= $message; |
| 3819 | + } |
| 3820 | + else if ($deleteRules!='') { |
| 3821 | + $message = $this->deleteArticleByRule($title,$text,$deleteRules); |
| 3822 | + // append delete message to output |
| 3823 | + $incwiki .= $message; |
| 3824 | + } |
| 3825 | + else { |
| 3826 | + // append full text to output |
| 3827 | + $incwiki .= $text; |
| 3828 | + } |
3709 | 3829 | } |
3710 | | - $incwiki .= $text; |
3711 | | - $this->filteredCount = $this->filteredCount + 1; |
3712 | | - |
| 3830 | + else { |
| 3831 | + continue; |
| 3832 | + } |
| 3833 | + |
3713 | 3834 | } else { |
3714 | 3835 | // identify section pieces |
3715 | 3836 | $secPiece=array(); |
— | — | @@ -3764,6 +3885,7 @@ |
3765 | 3886 | } |
3766 | 3887 | } |
3767 | 3888 | $this->formatSingleItems($secPieces,$s); |
| 3889 | + if (!array_key_exists(0,$secPieces)) break; # to avoid matching against a non-existing array element |
3768 | 3890 | $secPiece[$s] = $secPieces[0]; |
3769 | 3891 | for ($sp=1;$sp<count($secPieces);$sp++) { |
3770 | 3892 | if (isset($mode->aMultiSecSeparators[$s])) { |
— | — | @@ -3880,7 +4002,7 @@ |
3881 | 4003 | if($article->mUserLink != '') $rBody .= ' . . [[User:' . $article->mUser .'|'.$article->mUser.']]'; |
3882 | 4004 | if($article->mContributor != '')$rBody .= ' . . [[User:' . $article->mContributor .'|'.$article->mContributor." $article->mContrib]]"; |
3883 | 4005 | |
3884 | | - if( !empty($article->mCategoryLinks) ) $rBody .= ' . . <small>' . wfMsg('categories') . ': ' . $wgLang->pipeList( $article->mCategoryLinks ) . '</small>'; |
| 4006 | + if( !empty($article->mCategoryLinks) ) $rBody .= ' . . <small>' . wfMsg('categories') . ': ' . $wgLang->pipeList( $article->mCategoryLinks ) . '</small>'; |
3885 | 4007 | } |
3886 | 4008 | |
3887 | 4009 | // add included contents |
— | — | @@ -3917,7 +4039,138 @@ |
3918 | 4040 | } |
3919 | 4041 | return $mode->sListStart . $rBody . $mode->sListEnd; |
3920 | 4042 | } |
| 4043 | + |
3921 | 4044 | |
| 4045 | + function updateArticleByRule($title,$text,$rulesText) { |
| 4046 | + // we use ; as command delimiter; \; stands for a semicolon |
| 4047 | + // \n is translated to a real linefeed |
| 4048 | + $rulesText = str_replace(";",'°',$rulesText); |
| 4049 | + $rulesText = str_replace('\°',';',$rulesText); |
| 4050 | + $rulesText = str_replace("\\n","\n",$rulesText); |
| 4051 | + $rules=split('°',$rulesText); |
| 4052 | + $exec=false; |
| 4053 | + $replaceThis=''; |
| 4054 | + $replacement=''; |
| 4055 | + $after=''; |
| 4056 | + $insertionAfter=''; |
| 4057 | + $before=''; |
| 4058 | + $insertionBefore=''; |
| 4059 | + $lastCmd=''; |
| 4060 | + $message= ''; |
| 4061 | + $summary=''; |
| 4062 | + // $message .= 'updaterules=<pre><nowiki>'; |
| 4063 | + foreach ($rules as $rule) { |
| 4064 | + $cmd = preg_split("/ +/",$rule,2); |
| 4065 | + if (count($cmd)>1) $arg = $cmd[1]; |
| 4066 | + else $arg=''; |
| 4067 | + $cmd[0]=trim($cmd[0]); |
| 4068 | + |
| 4069 | + // after ... insert ... , before ... insert ... |
| 4070 | + if ($cmd[0] == 'before') { |
| 4071 | + // $message.= "before = $arg\n"; |
| 4072 | + $before=$arg; |
| 4073 | + $lastCmd='B'; |
| 4074 | + } |
| 4075 | + if ($cmd[0] == 'after') { |
| 4076 | + // $message.= "after = $arg\n"; |
| 4077 | + $after=$arg; |
| 4078 | + $lastCmd='A'; |
| 4079 | + } |
| 4080 | + if ($cmd[0] == 'insert' && $lastCmd!='') { |
| 4081 | + // $message.= "insert $lastCmd = $arg\n"; |
| 4082 | + if ($lastCmd=='A') $insertionAfter=$arg; |
| 4083 | + if ($lastCmd=='B') $insertionBefore=$arg; |
| 4084 | + } |
| 4085 | + |
| 4086 | + // replace ... by ... |
| 4087 | + if ($cmd[0] == 'replace') { |
| 4088 | + // $message.= "repl = $arg\n"; |
| 4089 | + $replaceThis=$arg; |
| 4090 | + } |
| 4091 | + if ($cmd[0] == 'by') { |
| 4092 | + // $message.= "by = $arg\n"; |
| 4093 | + $replacement=$arg; |
| 4094 | + } |
| 4095 | + |
| 4096 | + if ($cmd[0] == 'summary') { |
| 4097 | + // $message.= "summary = $arg\n"; |
| 4098 | + $summary=$arg; |
| 4099 | + } |
| 4100 | + |
| 4101 | + // we execute only if "exec" is given, otherwise we merely show what would be done |
| 4102 | + if ($cmd[0] == 'exec') { |
| 4103 | + // $message.= "exec = true\n"; |
| 4104 | + $exec=true; |
| 4105 | + } |
| 4106 | + |
| 4107 | + |
| 4108 | + } |
| 4109 | + $summary .= "\nbulk update:"; |
| 4110 | + if ($replaceThis!='') $summary .= "\n replace $replaceThis\n by $replacement"; |
| 4111 | + if ($before!='') $summary .= "\n before $before\n insertionBefore"; |
| 4112 | + if ($after!='') $summary .= "\n after $after\n insertionAfter"; |
| 4113 | + |
| 4114 | + // $message.= '</nowiki></pre>'; |
| 4115 | + |
| 4116 | + if ($replaceThis!='') { |
| 4117 | + $text = preg_replace("$replaceThis",$replacement,$text); |
| 4118 | + } |
| 4119 | + |
| 4120 | + if ($insertionBefore!='' && $before != '') { |
| 4121 | + $text = preg_replace("/($before)/",$insertionBefore.'\1',$text); |
| 4122 | + } |
| 4123 | + |
| 4124 | + if ($insertionAfter!='' && $after != '') { |
| 4125 | + $text = preg_replace("/($after)/",'\1'.$insertionAfter,$text); |
| 4126 | + } |
| 4127 | + |
| 4128 | + $titleX = Title::newFromText($title); |
| 4129 | + global $wgArticle; |
| 4130 | + $wgArticle = $articleX = new Article($titleX); |
| 4131 | + if ($exec) $articleX->updateArticle($text, $summary, false, $titleX->userIsWatching()); |
| 4132 | + else $message .= "set 'exec yes' to perform the following modification to <big>'''$title'''</big>\n"; |
| 4133 | + $message .= "<pre><nowiki>" |
| 4134 | + ."\n".$text."</nowiki></pre>"; // <pre><nowiki>\n"; // .$text."\n</nowiki></pre>\n"; |
| 4135 | + return $message; |
| 4136 | + } |
| 4137 | + |
| 4138 | + function deleteArticleByRule($title,$text,$rulesText) { |
| 4139 | + // we use ; as command delimiter; \; stands for a semicolon |
| 4140 | + // \n is translated to a real linefeed |
| 4141 | + $rulesText = str_replace(";",'°',$rulesText); |
| 4142 | + $rulesText = str_replace('\°',';',$rulesText); |
| 4143 | + $rulesText = str_replace("\\n","\n",$rulesText); |
| 4144 | + $rules=split('°',$rulesText); |
| 4145 | + $exec=false; |
| 4146 | + $message= ''; |
| 4147 | + $reason=''; |
| 4148 | + foreach ($rules as $rule) { |
| 4149 | + $cmd = preg_split("/ +/",$rule,2); |
| 4150 | + if (count($cmd)>1) $arg = $cmd[1]; |
| 4151 | + else $arg=''; |
| 4152 | + $cmd[0]=trim($cmd[0]); |
| 4153 | + |
| 4154 | + if ($cmd[0] == 'reason') { |
| 4155 | + $reason=$arg; |
| 4156 | + } |
| 4157 | + |
| 4158 | + // we execute only if "exec" is given, otherwise we merely show what would be done |
| 4159 | + if ($cmd[0] == 'exec') { |
| 4160 | + $exec=true; |
| 4161 | + } |
| 4162 | + } |
| 4163 | + $reason .= "\nbulk delete by DPL query"; |
| 4164 | + |
| 4165 | + $titleX = Title::newFromText($title); |
| 4166 | + global $wgArticle; |
| 4167 | + $wgArticle = $articleX = new Article($titleX); |
| 4168 | + if ($exec) $articleX->doDelete($reason); |
| 4169 | + else $message .= "set 'exec yes' to delete <big>'''$title'''</big>\n"; |
| 4170 | + $message .= "<pre><nowiki>" |
| 4171 | + ."\n".$text."</nowiki></pre>"; // <pre><nowiki>\n"; // .$text."\n</nowiki></pre>\n"; |
| 4172 | + return $message; |
| 4173 | + } |
| 4174 | + |
3922 | 4175 | // generate a hyperlink to the article |
3923 | 4176 | function articleLink($tag,$article,$iTitleMaxLen) { |
3924 | 4177 | $pagename = $article->mTitle->getPrefixedText(); |
Index: trunk/extensions/DynamicPageList/DynamicPageList2Include.php |
— | — | @@ -8,7 +8,7 @@ |
9 | 9 | * |
10 | 10 | * |
11 | 11 | * @author Steve Sanbeg |
12 | | - * @copyright Copyright � 2006, Steve Sanbeg |
| 12 | + * @copyright Copyright © 2006, Steve Sanbeg |
13 | 13 | * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later |
14 | 14 | * |
15 | 15 | * |
— | — | @@ -436,7 +436,7 @@ |
437 | 437 | $extractParm = array(); |
438 | 438 | |
439 | 439 | // check if we want to extract parameters directly from the call |
440 | | - // in that case we won�t invoke template2 but will directly return the extracted parameters |
| 440 | + // in that case we won´t invoke template2 but will directly return the extracted parameters |
441 | 441 | // as a sequence of table columns; |
442 | 442 | if (strlen($template2)>strlen($template1) && ($template2[strlen($template1)]==':')) { |
443 | 443 | $extractParm = split(':',substr($template2,strlen($template1)+1)); |
— | — | @@ -572,4 +572,3 @@ |
573 | 573 | } |
574 | 574 | |
575 | 575 | } |
576 | | -?> |
\ No newline at end of file |