r50226 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r50225‎ | r50226 | r50227 >
Date:14:38, 5 May 2009
Author:shinjiman
Status:deferred
Tags:
Comment:
Backport r50074 and r50075 from trunk, due to encoding error.
Modified paths:
  • /branches/REL1_15/extensions/DynamicPageList (modified) (history)
  • /branches/REL1_15/extensions/DynamicPageList/DynamicPageList2.i18n.php (modified) (history)
  • /branches/REL1_15/extensions/DynamicPageList/DynamicPageList2.php (modified) (history)
  • /branches/REL1_15/extensions/DynamicPageList/DynamicPageList2Include.php (modified) (history)

Diff [purge]

Index: branches/REL1_15/extensions/DynamicPageList/DynamicPageList2.i18n.php
@@ -145,6 +145,96 @@
146146 */
147147 'dpl2_articlecount' => 'There {{PLURAL:$1|is one article|are $1 articles}} in this heading.'
148148 );
 149+ self::$messages['fr'] = array(
 150+ /*
 151+ Log
 152+ */
 153+ // FATAL
 154+ /**
 155+ * $0: 'namespace' or 'notnamespace'
 156+ * $1: wrong parameter given by user
 157+ * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
 158+ */
 159+ 'dpl2_log_' . self::FATAL_WRONGNS => "ERREUR : Mauvais paramètre '$0' : '$1'! Aide : <code>$0= <i>chaîne vide</i> (Principal)$3</code>. (Les équivalents avec des mots magiques sont aussi autorisés.)",
 160+ /**
 161+ * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future)
 162+ * $1: wrong parameter given by user
 163+ */
 164+ 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "ERREUR : Mauvais paramètre '$0' : '$1'! Aide : <code>$0= <i>Nom complet de la page</i></code>. (Les mots magiques sont autorisés.)",
 165+ /**
 166+ * $0: max number of categories that can be included
 167+ */
 168+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'ERREUR : Trop de catégories ! Maximum : $0. Aide : accroître <code>ExtDynamicPageList2::$maxCategoryCount</code> pour autoriser plus de catégories ou régler <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> pour aucune limite. (À régler dans <code>LocalSettings.php</code>, après avoir inclus <code>DynamicPageList2.php</code>.)',
 169+ /**
 170+ * $0: min number of categories that have to be included
 171+ */
 172+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'ERREUR : Pas assez de catégories ! Minimum : $0. Aide : décroître <code>ExtDynamicPageList2::$minCategoryCount</code> pour autoriser moins de catégories. (À régler dans <code>LocalSettings.php</code> de préférence, après avoir inclus <code>DynamicPageList2.php</code>.)',
 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 => "ERREUR : Vous devez inclure au moins une catégorie si vous voulez utiliser 'addfirstcategorydate=true' ou 'ordermethod=categoryadd' !",
 175+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "ERREUR : Si vous incluez plus d’une catégorie, vous ne pouvez pas utiliser 'addfirstcategorydate=true' ou 'ordermethod=categoryadd' !",
 176+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'ERREUR : Vous ne pouvez pas utiliser plus d’un type de date à la fois !',
 177+ /**
 178+ * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
 179+ * $1: last 'ordermethod' parameter required for $0
 180+ */
 181+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ERREUR : Vous ne pouvez utiliser '$0' qu’avec 'ordermethod=[...,]$1' !",
 182+ /**
 183+ * $0: the number of arguments in includepage
 184+ */
 185+ 'dpl2_log_' . self::FATAL_DOMINANTSECTIONRANGE => "ERROR: the index for the dominant section must be between 1 and the number of arguments of includepage ($0 in this case)",
 186+ /**
 187+ * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names
 188+ * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB
 189+ */
 190+ 'dpl2_log_' . self::FATAL_NOCLVIEW => "ERREUR : Ne peut pas effectuer d’opérations logiques sur les pages sans catégories (avec la paramètre 'category') car la vue $0 n’existe pas dans la base de données ! Aide : demander à un administrateur de la base de données d'effectuer : <code>$1</code>.",
 191+ 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.',
 192+
 193+ // WARN
 194+ /**
 195+ * $0: unknown parameter given by user
 196+ * $1: list of DPL2 available parameters separated by ', '
 197+ */
 198+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "AVERTISSEMENT : Le paramètre inconnu '$0' est ignoré. Aide : paramètres disponibles : <code>$1</code>.",
 199+ /**
 200+ * $3: list of valid param values separated by ' | '
 201+ */
 202+ 'dpl2_log_' . self::WARN_WRONGPARAM => "AVERTISSEMENT : Mauvais paramètre '$0' : '$1'! Utilisation de la valeur par défaut : '$2'. Aide : <code>$0= $3</code>.",
 203+ /**
 204+ * $0: param name
 205+ * $1: wrong param value given by user
 206+ * $2: default param value used instead by program
 207+ */
 208+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "AVERTISSEMENT : Mauvais paramètre '$0' : '$1'! Utilisattion de la valeur par défaut : '$2' (aucune limite). Aide : <code>$0= <i>chaîne vide</i> (aucune limite) | n</code>, avec <code>n</code> un entier positif.",
 209+ 'dpl2_log_' . self::WARN_NORESULTS => 'AVERTISSEMENT : Aucun résultat !',
 210+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "AVERTISSEMENT : Les paramètres Add* ('adduser', 'addeditdate', etc.)' et 'includepage' n’ont aucun effet avec 'mode=category'. Seuls l’espace de nom et le titre de la page peuvent être vus dans ce mode..",
 211+ /**
 212+ * $0: 'headingmode' value given by user
 213+ * $1: value used instead by program (which means no heading)
 214+ */
 215+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "AVERTISSEMENT : 'headingmode=$0' n'a aucun effet avec 'ordermethod' sur une simple composante. Utiliser : '$1'. Aide : vous pouvez utiliser not-$1 sur les valeurs de 'headingmode' avec 'ordermethod' sur plusieurs composantes. La première composante est utilisée pour les en-têtes. Exemple : 'ordermethod=category,<i>comp</i>' (<i>comp</i> est une autre composante) pour les en-têtes de catégorie.",
 216+ /**
 217+ * $0: 'log' value
 218+ */
 219+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "AVERTISSEMENT : 'debug=$0' n’est pas en première position dans l’élément DPL. Les nouveaux réglages de débogage ne seront appliqués qu’après que les paramètres précédents aient été vérifiés.",
 220+ /**
 221+ * $0: title of page that creates an infinite transclusion loop
 222+ */
 223+ 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "AVERTISSEMENT : Une boucle d’inclusion infinie est créée par la page '$0'.",
 224+
 225+ // DEBUG
 226+ /**
 227+ * $0: SQL query executed to generate the dynamic page list
 228+ */
 229+ 'dpl2_log_' . self::DEBUG_QUERY => 'REQUÊTE : <code>$0</code>',
 230+
 231+ /*
 232+ Output formatting
 233+ */
 234+ /**
 235+ * $1: number of articles
 236+ */
 237+ 'dpl2_articlecount' => 'Il y a {{PLURAL:$1|un article|$1 articles}} dans cette section.'
 238+ );
149239 self::$messages['he'] = array(
150240 /*
151241 Log
@@ -155,24 +245,24 @@
156246 * $1: wrong parameter given by user
157247 * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
158248 */
159 - 'dpl2_log_' . self::FATAL_WRONGNS => "?????: ????? '$0' ????: '$1'! ????: <code>$0= <i>?????? ????</i> (????)$3</code>. (???? ?????? ?? ????? ??? ??????? ????? ???.)",
 249+ 'dpl2_log_' . self::FATAL_WRONGNS => "שגיאה: פרמטר '$0' שגוי: '$1'! עזרה: <code>$0= <i>מחרוזת ריקה</i> (ראשי)$3</code>. (ניתן להשתמש גם בשווי ערך באמצעות מילות קסם.)",
160250 /**
161251 * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future)
162252 * $1: wrong parameter given by user
163253 */
164 - 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "?????: ????? '$0' ????: '$1'! ????: <code>$0= <i>?? ??? ????</i></code>. (???? ?????? ?????? ???.)",
 254+ 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "שגיאה: פרמטר '$0' שגוי: '$1'! עזרה: <code>$0= <i>שם הדף המלא</i></code>. (ניתן להשתמש במילות קסם.)",
165255 /**
166256 * $0: max number of categories that can be included
167257 */
168 - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '?????: ???????? ???? ???! ???????: $0. ????: ???? ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ??? ????? ??? ???????? ?? ?????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ??? ???? ?? ??????. (?????? ?? ?????? ????? <code>LocalSettings.php</code>, ???? ????? <code>DynamicPageList2.php</code>.)',
 258+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'שגיאה: קטגוריות רבות מדי! מקסימום: $0. עזרה: העלו את <code>ExtDynamicPageList2::$maxCategoryCount</code> כדי לציין עוד קטגוריות או הגדירו <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> כדי לבטל את ההגבלה. (הגידרו את המשתנה בקובץ <code>LocalSettings.php</code>, לאחר הכללת <code>DynamicPageList2.php</code>.)',
169259 /**
170260 * $0: min number of categories that have to be included
171261 */
172 - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '?????: ???????? ????? ???! ???????: $0. ????: ?????? ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??? ????? ???? ????????. (?????? ?? ?????? ????? <code>LocalSettings.php</code>, ???? ????? <code>DynamicPageList2.php</code>.)',
 262+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'שגיאה: קטגוריות מעטות מדי! מינימום: $0. עזרה: הורידו את <code>ExtDynamicPageList2::$minCategoryCount</code> כדי לציין פחות קטגוריות. (הגידרו את המשתנה בקובץ <code>LocalSettings.php</code>, לאחר הכללת <code>DynamicPageList2.php</code>.)',
173263 '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 => '?????: ????? ?????? ?????? ???? ???? ??? ?? ????? ?? ?????!',
 264+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "שגיאה: עליכם להכליל לפחות קטגוריה אחת אם ברצונכם להשתמש ב־'addfirstcategorydate=true' או ב־'ordermethod=categoryadd'!",
 265+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "שגיאה: אם אתם מכלילים יותר מקטגוריה אחת, אינכם יכולים להשתמש ב־'addfirstcategorydate=true' או ב־'ordermethod=categoryadd'!",
 266+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'שגיאה: אינכם יכולים להוסיף יותר מסוג אחד של תאריך בו זמנית!',
177267 /**
178268 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
179269 * $1: last 'ordermethod' parameter required for $0
@@ -186,7 +276,7 @@
187277 * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names
188278 * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB
189279 */
190 - 'dpl2_log_' . self::FATAL_NOCLVIEW => "?????: ?? ???? ???? ?????? ?????? ?? ???? ??? ???????? (????, ?? ?????? '???????') ????? ?????? $0 ???? ????? ???? ???????! ????: ???? ??? ??????? ???? ????? ?? ???????: <code>$1</code>.",
 280+ 'dpl2_log_' . self::FATAL_NOCLVIEW => "שגיאה: לא ניתן לבצע פעולות לוגיות על דפים ללא קטגוריות (למשל, עם הפרמטר 'קטגוריה') כיוון שתצוגת $0 אינה קיימת במסד הנתונים! עזרה: מנהל מסד הנתונים צריך להריץ את השאילתה: <code>$1</code>.",
191281 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.',
192282
193283 // WARN
@@ -194,38 +284,38 @@
195285 * $0: unknown parameter given by user
196286 * $1: list of DPL2 available parameters separated by ', '
197287 */
198 - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "?????: ????? ??????? ??????? ??? ???? '$0'. ????: ??????? ??????: <code>$1</code>.",
 288+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "אזהרה: בוצעה התעלמות מהפרמטר הלא ידוע '$0'. עזרה: פרמטרים זמינים: <code>$1</code>.",
199289 /**
200290 * $3: list of valid param values separated by ' | '
201291 */
202 - 'dpl2_log_' . self::WARN_WRONGPARAM => "?????: ????? '$0' ????: '$1'! ????? ?????? ?????: '$2'. ????: <code>$0= $3</code>.",
 292+ 'dpl2_log_' . self::WARN_WRONGPARAM => "אזהרה: פרמטר '$0' שגוי: '$1'! משתמש בברירת המחדל: '$2'. עזרה: <code>$0= $3</code>.",
203293 /**
204294 * $0: param name
205295 * $1: wrong param value given by user
206296 * $2: default param value used instead by program
207297 */
208 - 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "?????: ????? '$0' ????: '$1'! ????? ?????? ?????: '$2' (??? ?????). ????: <code>$0= <i>?????? ????</i> (??? ?????) | n</code>, ?? <code>n</code> ????? ??? ??????.",
 298+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "אזהרה: פרמטר '$0' שגוי: '$1'! משתמש בברירת המחדל: '$2' (ללא הגבלה). עזרה: <code>$0= <i>מחרוזת ריקה</i> (ללא הגבלה) | n</code>, עם <code>n</code> כמספר שלם וחיובי.",
209299 'dpl2_log_' . self::WARN_NORESULTS => '?????: ??? ??????!',
210 - 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "?????: ??????* ???????? ('adduser',? 'addeditdate' ??????) ??? ??'includepage' ??? ????? ?? 'mode=category'. ???? ????? ?? ????? ??? ?? ?????? ??? ???? ??.",
 300+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "אזהרה: להוספת* הפרמטרים ('adduser',‏ 'addeditdate' וכדומה) וכן ל־'includepage' אין השפעה עם 'mode=category'. ניתן לצפות רק במרחב השם או בכותרת הדף במצב זה.",
211301 /**
212302 * $0: 'headingmode' value given by user
213303 * $1: value used instead by program (which means no heading)
214304 */
215 - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "?????: ??'headingmode=$0' ??? ????? ?? 'ordermethod' ?? ???? ????. ????? ?: '$1'. ????: ????????? ?????? ?????? ?? 'headingmode' ????? $1 ?? 'ordermethod' ?? ?????? ??????. ??????? ????? ?????? ??????. ????, 'ordermethod=category,<i>comp</i>' (<i>comp</i> ??? ???? ???) ??????? ????????.",
 305+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "אזהרה: ל־'headingmode=$0' אין השפעה עם 'ordermethod' על פריט יחיד. משתמש ב: '$1'. עזרה: באפשרותכם להשתמש בערכים של 'headingmode' שאינם $1 עם 'ordermethod' על פריטים מרובים. משתמשים בפריט הראשון לכותרת. למשל, 'ordermethod=category,<i>comp</i>' (<i>comp</i> הוא פריט אחר) לכותרות הקטגוריה.",
216306 /**
217307 * $0: 'debug' value
218308 */
219 - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "?????: 'debug=$0w ??? ?? ????? ?????? ????? ??DPL. ?????? ????? ??????? ?????? ?? ????? ???? ??? ???????? ??????? ?????? ???????.",
 309+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "אזהרה: 'debug=$0w הוא לא במקום הראשון ברכיב ה־DPL. הגדרות ניפוי השגיאות החדשות לא יחולו לפני שכל הפרמטרים הקודמים ינותחו וייבדקו.",
220310 /**
221311 * $0: title of page that creates an infinite transclusion loop
222312 */
223 - 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "?????: ????? ????? ???????? ????? ??? '$0'.",
 313+ 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "אזהרה: לולאת הכללה אינסופית נוצרה בדף '$0'.",
224314
225315 // DEBUG
226316 /**
227317 * $0: SQL query executed to generate the dynamic page list
228318 */
229 - 'dpl2_log_' . self::DEBUG_QUERY => '??????: <code>$0</code>',
 319+ 'dpl2_log_' . self::DEBUG_QUERY => 'שאילתה: <code>$0</code>',
230320
231321 /*
232322 Output formatting
@@ -233,8 +323,98 @@
234324 /**
235325 * $1: number of articles
236326 */
237 - 'dpl2_articlecount' => '{{plural:$1|???? $1 ????|???? ?? ???}} ??? ????? ??.'
 327+ 'dpl2_articlecount' => '{{PLURAL:$1|ישנם $1 דפים|ישנו דף אחד}} תחת כותרת זו.'
238328 );
 329+ self::$messages['id'] = array(
 330+ /*
 331+ Log
 332+ */
 333+ // FATAL
 334+ /**
 335+ * $0: 'namespace' or 'notnamespace'
 336+ * $1: wrong parameter given by user
 337+ * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
 338+ */
 339+ 'dpl2_log_' . self::FATAL_WRONGNS => "KESALAHAN: Parameter '$0' salah: '$1'! Bantuan: <code>$0= <i>string kosong</i> (Utama)$3</code>. (Ekivalen kata kunci juga diizinkan.)",
 340+ /**
 341+ * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future)
 342+ * $1: wrong parameter given by user
 343+ */
 344+ 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "KESALAHAN: Parameter '$0' salah: '$1'! Bantuan: <code>$0= <i>nama lengkap halaman</i></code>. (Kata kunci diizinkan.)",
 345+ /**
 346+ * $0: max number of categories that can be included
 347+ */
 348+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'KESALAHAN: Kategori terlalu banyak! Maksimum: $0. Bantuan: perbesar <code>ExtDynamicPageList2::$maxCategoryCount</code> untuk memberikan lebih banyak kategori atau atur <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> untuk menghapus batasan. (Atur variabel tersebut di <code>LocalSettings.php</code>, setelah mencantumkan <code>DynamicPageList2.php</code>.)',
 349+ /**
 350+ * $0: min number of categories that have to be included
 351+ */
 352+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'KESALAHAN: Kategori terlalu sedikit! Minimum: $0. Bantuan: kurangi <code>ExtDynamicPageList2::$minCategoryCount</code> untuk mengurangi kategori. (Atur variabel tersebut di <code>LocalSettings.php</code>, setelah mencantumkan <code>DynamicPageList2.php</code>.)',
 353+ '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",
 354+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "KESALAHAN: Anda harus memberikan paling tidak satu kategori jika menggunakan 'addfirstcategorydate=true' atau 'ordermethod=categoryadd'!",
 355+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "KESALAHAN: Jika Anda memberikan lebih dari satu kategori, Anda tidak dapat menggunakan 'addfirstcategorydate=true' atau 'ordermethod=categoryadd'!",
 356+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'KESALAHAN: Anda tidak dapat memberikan lebih dari satu jenis tanggal dalam satu waktu!',
 357+ /**
 358+ * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
 359+ * $1: last 'ordermethod' parameter required for $0
 360+ */
 361+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "KESALAHAN: Anda dapat menggunakan '$0' hanya dengan 'ordermethod=[...,]$1'!",
 362+ /**
 363+ * $0: the number of arguments in includepage
 364+ */
 365+ 'dpl2_log_' . self::FATAL_DOMINANTSECTIONRANGE => "ERROR: the index for the dominant section must be between 1 and the number of arguments of includepage ($0 in this case)",
 366+ /**
 367+ * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names
 368+ * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB
 369+ */
 370+ 'dpl2_log_' . self::FATAL_NOCLVIEW => "KESALAHAN: Tidak dapat melakukan operasi logika pada halaman yang tak terkategori (misalnya dengan parameter 'kategori') karena view $0 tidak ada di basis data! Bantuan: mintalah admin basis data untuk menjalankan kueri berikut: <code>$1</code>.",
 371+ 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.',
 372+
 373+ // WARN
 374+ /**
 375+ * $0: unknown parameter given by user
 376+ * $1: list of DPL2 available parameters separated by ', '
 377+ */
 378+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "KESALAHAN: Paramater yang tak dikenal '$0' diabaikan. Bantuan: parameter yang tersedia: <code>$1</code>.",
 379+ /**
 380+ * $3: list of valid param values separated by ' | '
 381+ */
 382+ 'dpl2_log_' . self::WARN_WRONGPARAM => "KESALAHAN: Parameter '$0' salah: '$1'! Menggunakan konfigurasi baku: '$2'. Bantuan: <code>$0= $3</code>.",
 383+ /**
 384+ * $0: param name
 385+ * $1: wrong param value given by user
 386+ * $2: default param value used instead by program
 387+ */
 388+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "KESALAHAN: Parameter '$0' salah: '$1'! Menggunakan konfigurasi baku: '$2' (tanpa limitasi). Bantuan: <code>$0= <i>string kosong</i> (tanpa limitasi) | n</code>, dengan <code>n</code> suatu bilangan positif.",
 389+ 'dpl2_log_' . self::WARN_NORESULTS => 'KESALAHAN: Hasil tak ditemukan!',
 390+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "KESALAHAN: Menambahkan * parameter ('adduser', 'addeditdate', dll.)' dan 'includepage' tidak berpengaruh pada 'mode=category'. Hanya ruang nama/judul halaman yang dapat ditampilkan dengan mode ini.",
 391+ /**
 392+ * $0: 'headingmode' value given by user
 393+ * $1: value used instead by program (which means no heading)
 394+ */
 395+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "KESALAHAN: 'headingmode=$0' tidak berpengaruh dengan 'ordermethod' pada suatu komponen tunggal. Menggunakan: '$1'. Bantuan: Anda dapat menggunakan nilai not-$1 'headingmode' dengan 'ordermethod' terhadap beberapa komponen. Komponen pertama digunakan sebagai judul. Misalnya 'ordermethod=category,<i>comp</i>' (<i>comp</i> adalah komponen lain) untuk judul kategori.",
 396+ /**
 397+ * $0: 'log' value
 398+ */
 399+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "KESALAHAN: 'debug=$0' tidak pada posisi pertama pada elemen DPL. Aturan debug tidak diterapkan sebelum semua variabel sebelumnya telah diparsing dan dicek.",
 400+ /**
 401+ * $0: title of page that creates an infinite transclusion loop
 402+ */
 403+ 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "KESALAHAN: Suatu lingkaran transklusi tak hingga ditimbulkan oleh halaman '$0'.",
 404+
 405+ // DEBUG
 406+ /**
 407+ * $0: SQL query executed to generate the dynamic page list
 408+ */
 409+ 'dpl2_log_' . self::DEBUG_QUERY => 'KUERI: <code>$0</code>',
 410+
 411+ /*
 412+ Output formatting
 413+ */
 414+ /**
 415+ * $1: number of articles
 416+ */
 417+ 'dpl2_articlecount' => 'Terdapat {{PLURAL:$1|artikel|artikel}} dalam judul ini.'
 418+ );
239419 self::$messages['it'] = array(
240420 /*
241421 Log
@@ -260,14 +440,14 @@
261441 */
262442 '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>.)',
263443 '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.',
 444+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "ERRORE: L'uso dei parametri 'addfirstcategorydate=true' e 'ordermethod=categoryadd' richiede l'inserimento di una o più categorie.",
 445+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "ERRORE: L'inserimento di più categorie impedisce l'uso dei parametri 'addfirstcategorydate=true' e 'ordermethod=categoryadd'.",
 446+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'ERRORE: Non è consentito l\'uso contemporaneo di più tipi di data.',
267447 /**
268448 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
269449 * $1: last 'ordermethod' parameter required for $0
270450 */
271 - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ERRORE: L'uso del parametro '$0' � consentito unicamente con 'ordermethod=[...,]$1'.",
 451+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ERRORE: L'uso del parametro '$0' è consentito unicamente con 'ordermethod=[...,]$1'.",
272452 /**
273453 * $0: the number of arguments in includepage
274454 */
@@ -284,28 +464,28 @@
285465 * $0: unknown parameter given by user
286466 * $1: list of DPL2 available parameters separated by ', '
287467 */
288 - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "ATTENZIONE: Il parametro non riconosciuto '$0' � stato ignorato. Suggerimento: i parametri disponibili sono: <code>$1</code>.",
 468+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "ATTENZIONE: Il parametro non riconosciuto '$0' è stato ignorato. Suggerimento: i parametri disponibili sono: <code>$1</code>.",
289469 /**
290470 * $3: list of valid param values separated by ' | '
291471 */
292 - 'dpl2_log_' . self::WARN_WRONGPARAM => "ATTENZIONE: Errore nel parametro '$0': '$1'. � stato usato il valore predefinito '$2'. Suggerimento: <code>$0= $3</code>.",
 472+ 'dpl2_log_' . self::WARN_WRONGPARAM => "ATTENZIONE: Errore nel parametro '$0': '$1'. È stato usato il valore predefinito '$2'. Suggerimento: <code>$0= $3</code>.",
293473 /**
294474 * $0: param name
295475 * $1: wrong param value given by user
296476 * $2: default param value used instead by program
297477 */
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.",
 478+ '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.",
299479 '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.",
 480+ '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.",
301481 /**
302482 * $0: 'headingmode' value given by user
303483 * $1: value used instead by program (which means no heading)
304484 */
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.",
 485+ '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.",
306486 /**
307487 * $0: 'debug' value
308488 */
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.",
 489+ '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.",
310490
311491 // DEBUG
312492 /**
@@ -335,15 +515,15 @@
336516 /**
337517 * $0: max number of categories that can be included
338518 */
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>.)',
 519+ '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>.)',
340520 /**
341521 * $0: min number of categories that have to be included
342522 */
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>.)',
 523+ '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>.)',
344524 '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!',
 525+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "FOUT: U dient tenminste één categorie op te nemen als u 'addfirstcategorydate=true' of 'ordermethod=categoryadd' wilt gebruiken!",
 526+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "FOUT: Als u meer dan één categorie opneemt, kunt u 'addfirstcategorydate=true' of 'ordermethod=categoryadd' niet gebruiken!",
 527+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'FOUT: U kunt niet meer dan één type of datum tegelijk gebruiken!',
348528 /**
349529 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
350530 * $1: last 'ordermethod' parameter required for $0
@@ -400,7 +580,7 @@
401581 /**
402582 * $1: number of articles
403583 */
404 - 'dpl2_articlecount' => 'Er {{PLURAL:$1|is ��n pagina|zijn $1 pagina\'s}} onder deze kop.'
 584+ 'dpl2_articlecount' => 'Er {{PLURAL:$1|is één pagina|zijn $1 pagina\'s}} onder deze kop.'
405585 );
406586 self::$messages['ru'] = array(
407587 /*
@@ -412,24 +592,24 @@
413593 * $1: wrong parameter given by user
414594 * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
415595 */
416 - 'dpl2_log_' . self::FATAL_WRONGNS => "??????: ???????????? �$0�-????????: �$1�! ?????????: <code>$0= <i>?????? ??????</i> (????????)$3</code>.",
 596+ 'dpl2_log_' . self::FATAL_WRONGNS => "ОШИБКА: неправильный «$0»-параметр: «$1»! Подсказка: <code>$0= <i>пустая строка</i> (Основное)$3</code>.",
417597 /**
418598 * $0: max number of categories that can be included
419599 */
420 - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??????: ??????? ????? ?????????! ????????: $0. ?????????: ???????? <code>ExtDynamicPageList2::$maxCategoryCount</code> ????? ????????? ?????? ????????? ??? ?????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ??? ?????? ???????????. (?????????????? ?????????? ? <code>LocalSettings.php</code>, ????? ??????????? <code>DynamicPageList2.php</code>.)',
 600+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'ОШИБКА: слишком много категорий! Максимум: $0. Подсказка: увеличте <code>ExtDynamicPageList2::$maxCategoryCount</code> чтобы разрешить больше категорий или установите <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> для снятия ограничения. (Устанавливайте переменные в <code>LocalSettings.php</code>, после подключения <code>DynamicPageList2.php</code>.)',
421601 /**
422602 * $0: min number of categories that have to be included
423603 */
424 - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??????: ??????? ???? ?????????! ???????: $0. ?????????: ????????? <code>ExtDynamicPageList2::$minCategoryCount</code> ????? ????????? ?????? ?????????. (?????????????? ?????????? ? <code>LocalSettings.php</code>, ????? ??????????? <code>DynamicPageList2.php</code>.)',
 604+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'ОШИБКА: слишком мало категорий! Минимум: $0. Подсказка: уменьшите <code>ExtDynamicPageList2::$minCategoryCount</code> чтобы разрешить меньше категорий. (Устанавливайте переменную в <code>LocalSettings.php</code>, после подключения <code>DynamicPageList2.php</code>.)',
425605 '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 => '??????: ?? ?? ?????? ???????? ????? ?????? ???? ?????? ?? ???!',
 606+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "ОШИБКА: вы должны включить хотя бы одну категорию, если вы хотите использовать «addfirstcategorydate=true» или «ordermethod=categoryadd»!",
 607+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "ОШИБКА: если вы включаете больше одной категории, то вы не можете использовать «addfirstcategorydate=true» или «ordermethod=categoryadd»!",
 608+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'ОШИБКА: вы не можете добавить более одного типа данных за раз!',
429609 /**
430610 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
431611 * $1: last 'ordermethod' parameter required for $0
432612 */
433 - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??????: ?? ?????? ???????????? �$0� ?????? ? �ordermethod=[...,]$1�!",
 613+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ОШИБКА: вы можете использовать «$0» только с «ordermethod=[...,]$1»!",
434614 /**
435615 * $0: the number of arguments in includepage
436616 */
@@ -446,34 +626,34 @@
447627 * $0: unknown parameter given by user
448628 * $1: list of DPL2 available parameters separated by ', '
449629 */
450 - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??????????????: ??????????? ???????? �$0� ??????????????. ?????????: ????????? ?????????: <code>$1</code>.",
 630+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "ПРЕДУПРЕЖДЕНИЕ: неизвестный параметр «$0» проигнорирован. Подсказка: доступные параметры: <code>$1</code>.",
451631 /**
452632 * $3: list of valid param values separated by ' | '
453633 */
454 - 'dpl2_log_' . self::WARN_WRONGPARAM => "??????????????: ???????????? ???????? �$0�: �$1�! ????????????? ????????? ?? ?????????: �$2�. ?????????: <code>$0= $3</code>.",
 634+ 'dpl2_log_' . self::WARN_WRONGPARAM => "ПРЕДУПРЕЖДЕНИЕ: неправильный параметр «$0»: «$1»! Использование параметра по умолчанию: «$2». Подсказка: <code>$0= $3</code>.",
455635 /**
456636 * $0: param name
457637 * $1: wrong param value given by user
458638 * $2: default param value used instead by program
459639 */
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�. ?????? ???????????? ???? ??? ???????? ????? ??????????????? ? ???? ??????.",
 640+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "ПРЕДУПРЕЖДЕНИЕ: неправильный параметр «$0»: «$1»! Использование параметра по умолчанию: «$2» (без ограничений). Подсказка: <code>$0= <i>пустая строка</i> (без ограничений) | n</code>, с <code>n</code> равным положительному целому числу.",
 641+ 'dpl2_log_' . self::WARN_NORESULTS => 'ПРЕДУПРЕЖДЕНИЕ: не найдено!',
 642+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "ПРЕДУПРЕЖДЕНИЕ: Добавление* параметров («adduser», «addeditdate», и др.) не действительны с «mode=category». Только пространства имён или названия могут просматриваться в этом режиме.",
463643 /**
464644 * $0: 'headingmode' value given by user
465645 * $1: value used instead by program (which means no heading)
466646 */
467 - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??????????????: �headingmode=$0� ?? ???????????? ? �ordermethod� ? ????? ??????????. ?????????????: �$1�. ?????????: ?? ?????? ????????????e ??-$1 �headingmode� ???????? ? �ordermethod� ?? ????????? ???????????. ?????? ????????? ???????????? ??? ??????????. ????????, �ordermethod=category,<i>comp</i>� (<i>comp</i> ???????? ?????? ???????????) ??? ?????????? ?????????.",
 647+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "ПРЕДУПРЕЖДЕНИЕ: «headingmode=$0» не действителен с «ordermethod» в одном компоненте. Использование: «$1». Подсказка: вы можете использоватьe не-$1 «headingmode» значения с «ordermethod» во множестве компонентов. Первый компонент используется для заголовков. Например, «ordermethod=category,<i>comp</i>» (<i>comp</i> является другим компонентом) для заголовков категорий.",
468648 /**
469649 * $0: 'debug' value
470650 */
471 - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??????????????: �debug=$0� ?? ????????? ?? ?????? ????? ? DPL-????????. ????? ????????? ??????? ?? ????? ????????? ???? ??? ?????????? ????????? ?? ????? ????????? ? ?????????.",
 651+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "ПРЕДУПРЕЖДЕНИЕ: «debug=$0» не находится на первом месте в DPL-элементе. Новые настройки отладки не будут применены пока все предыдущие параметры не будут разобраны и проверены.",
472652
473653 // DEBUG
474654 /**
475655 * $0: SQL query executed to generate the dynamic page list
476656 */
477 - 'dpl2_log_' . self::DEBUG_QUERY => '??????: <code>$0</code>',
 657+ 'dpl2_log_' . self::DEBUG_QUERY => 'ЗАПРОС: <code>$0</code>',
478658
479659 /*
480660 Output formatting
@@ -481,7 +661,7 @@
482662 /**
483663 * $1: number of articles
484664 */
485 - 'dpl2_articlecount' => '? ???? ????????? $1 {{PLURAL:$1|??????|??????|??????}}.'
 665+ 'dpl2_articlecount' => 'В этом заголовке $1 {{PLURAL:$1|статья|статьи|статей}}.'
486666 );
487667 self::$messages['sk'] = array(
488668 /*
@@ -493,29 +673,29 @@
494674 * $1: wrong parameter given by user
495675 * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
496676 */
497 - 'dpl2_log_' . self::FATAL_WRONGNS => "CHYBA: nespr�vny parameter '$0': '$1'! Pomocn�k <code>$0= <i>pr�zdny retazec</i> (Hlavn�)$3<code>.",
 677+ 'dpl2_log_' . self::FATAL_WRONGNS => "CHYBA: nesprávny parameter '$0': '$1'! Pomocník <code>$0= <i>prázdny retazec</i> (Hlavný)$3<code>.",
498678 /**
499679 * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future)
500680 * $1: wrong parameter given by user
501681 */
502 - 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "CHYBA: Zl� parameter '$0': '$1'! Pomocn�k <code>$0= <i>pln� n�zov str�nky</i></code>.",
 682+ 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "CHYBA: Zlý parameter '$0': '$1'! Pomocník <code>$0= <i>plný názov stránky</i></code>.",
503683 /**
504684 * $0: max number of categories that can be included
505685 */
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>.)',
 686+ '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>.)',
507687 /**
508688 * $0: min number of categories that have to be included
509689 */
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>.)',
 690+ '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>.)',
511691 '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!',
 692+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "CHYBA: Musíte uviest aspon jednu kategóriu ak chcete použit 'addfirstcategorydate=true' alebo 'ordermethod=categoryadd'!",
 693+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "CHYBA: Ak zahrniete viac ako jednu kategóriu, nemôžete použit 'addfirstcategorydate=true' alebo 'ordermethod=categoryadd'!",
 694+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'CHYBA: Nemôžete naraz pridat viac ako jeden typ dátumu!',
515695 /**
516696 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
517697 * $1: last 'ordermethod' parameter required for $0
518698 */
519 - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "CHYBA: '$0' m��ete pou�it iba s 'ordermethod=[...,]$1'!",
 699+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "CHYBA: '$0' môžete použit iba s 'ordermethod=[...,]$1'!",
520700 /**
521701 * $0: the number of arguments in includepage
522702 */
@@ -524,7 +704,7 @@
525705 * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names
526706 * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB
527707 */
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>.",
 708+ '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>.",
529709 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.',
530710
531711 // WARN
@@ -532,28 +712,28 @@
533713 * $0: unknown parameter given by user
534714 * $1: list of DPL2 available parameters separated by ', '
535715 */
536 - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "VAROVANIE: Nezn�my parameter '$0' ignorovan�. Pomocn�k: dostupn� parametre: <code>$1</code>.",
 716+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "VAROVANIE: Neznámy parameter '$0' ignorovaný. Pomocník: dostupné parametre: <code>$1</code>.",
537717 /**
538718 * $3: list of valid param values separated by ' | '
539719 */
540 - 'dpl2_log_' . self::WARN_WRONGPARAM => "VAROVANIE: Nespr�vny '$0' parameter: '$1'! Pou��vam �tandardn� '$2'. Pomocn�k: <code>$0= $3</code>.",
 720+ 'dpl2_log_' . self::WARN_WRONGPARAM => "VAROVANIE: Nesprávny '$0' parameter: '$1'! Používam štandardný '$2'. Pomocník: <code>$0= $3</code>.",
541721 /**
542722 * $0: param name
543723 * $1: wrong param value given by user
544724 * $2: default param value used instead by program
545725 */
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>.",
 726+ '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>.",
547727 '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.",
 728+ '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.",
549729 /**
550730 * $0: 'headingmode' value given by user
551731 * $1: value used instead by program (which means no heading)
552732 */
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�.",
 733+ '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í.",
554734 /**
555735 * $0: 'debug' value
556736 */
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.",
 737+ '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.",
558738
559739 // DEBUG
560740 /**
@@ -567,9 +747,9 @@
568748 /**
569749 * $1: number of articles
570750 */
571 - 'dpl2_articlecount' => 'V tomto nadpise {{PLURAL:$1|je jeden cl�nok|s� $1 cl�nky|je $1 cl�nkov}}.'
 751+ 'dpl2_articlecount' => 'V tomto nadpise {{PLURAL:$1|je jeden clánok|sú $1 clánky|je $1 clánkov}}.'
572752 );
573 - self::$messages['zh-cn'] = array(
 753+ self::$messages['sr-ec'] = array(
574754 /*
575755 Log
576756 */
@@ -579,32 +759,212 @@
580760 * $1: wrong parameter given by user
581761 * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
582762 */
583 - 'dpl2_log_' . self::FATAL_WRONGNS => "??: ??? '$0' ??: '$1'! ??: <code>$0= <i>?????</i> (?)$3</code>?",
 763+ 'dpl2_log_' . self::FATAL_WRONGNS => "ГРЕШКА: Погреан '$0' параметар: '$1'! Помоћ: <code>$0= <i>погрешан стринг</i> (Главно)$3</code>. (Еквиваленти са магичним речима су такође дозвољени.)",
584764 /**
 765+ * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future)
 766+ * $1: wrong parameter given by user
 767+ */
 768+ 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "ГРЕШКА: Погрешан '$0' параметар: '$1'! Помоћ: <code>$0= <i>пуно име странице</i></code>. (Магичне речи су дозвољене.)",
 769+ /**
585770 * $0: max number of categories that can be included
586771 */
587 - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ????????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ?????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>??????)',
 772+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'ГРЕШКА: Превише категорија! Максимум је: $0. Помоћ: повећајте <code>ExtDynamicPageList2::$maxCategoryCount</code> како бисте поставили више категорија или промените <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> за без граница. (Подесите варијаблу у <code>LocalSettings.php</code>, након укључивања <code>DynamicPageList2.php</code>.)',
588773 /**
589774 * $0: min number of categories that have to be included
590775 */
591 - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??????????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>???????????)',
 776+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'ГРЕШКА: Премало категорија! Минимум је: $0. Помоћ: повећајте <code>ExtDynamicPageList2::$minCategoryCount</code> како бисте поставили мање категорија. (Подесите варијаблу у <code>LocalSettings.php</code>, након укључивања <code>DynamicPageList2.php</code>.)',
592777 '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 => '??: ???????????????????!',
 778+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "ГРЕШКА: Морате укључити бар једну категорију уколико желите да користите 'addfirstcategorydate=true' или 'ordermethod=categoryadd'!",
 779+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "ГРЕШКА: Уколико укључујете више од једне категорије, не можете користити 'addfirstcategorydate=true' или 'ordermethod=categoryadd'!",
 780+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'ГРЕШКА: Не можете додати више од једног типа датума!',
596781 /**
597782 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
598783 * $1: last 'ordermethod' parameter required for $0
599784 */
600 - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??: ????? 'ordermethod=[...,]$1' ? '$0' ?!",
 785+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "ГРЕШКА: Можете користити '$0' са 'ordermethod=[...,]$1' искључиво!",
601786 /**
602787 * $0: the number of arguments in includepage
603788 */
 789+ 'dpl2_log_' . self::FATAL_DOMINANTSECTIONRANGE => "ГРЕШКА: Немогуће извршити операцију на некатегоризованим страницама (нпр. са 'category' параметром) зато што $0 преглед не постоји у бази података! Помоћ: нека администратор базе изврши овај упит: <code>$1</code>.",
 790+ /**
 791+ * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names
 792+ * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB
 793+ */
 794+ 'dpl2_log_' . self::FATAL_NOCLVIEW => "ERROR: Cannot perform logical operations on the Uncategorized pages (f.e. with the 'category' parameter) because the $0 view does not exist on the database! Help: have the database administrator execute this query: <code>$1</code>.",
 795+ 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.',
 796+
 797+ // WARN
 798+ /**
 799+ * $0: unknown parameter given by user
 800+ * $1: list of DPL2 available parameters separated by ', '
 801+ */
 802+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "ПАЖЊА: Непознат параметар '$0' је игнорисан. Помоћ: доступни параметри су: <code>$1</code>.",
 803+ /**
 804+ * $3: list of valid param values separated by ' | '
 805+ */
 806+ 'dpl2_log_' . self::WARN_WRONGPARAM => "ПАЖЊА: Погрешан '$0' параметар: '$1'! Користи се основни: '$2'. Помоћ: <code>$0= $3</code>.",
 807+ /**
 808+ * $0: param name
 809+ * $1: wrong param value given by user
 810+ * $2: default param value used instead by program
 811+ */
 812+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "ПАЖЊА: Погрешан '$0' параметар: '$1'! Користи се основни: '$2' (без границе). Помоћ: <code>$0= <i>празан стринг</i> (без границе) | n</code>, с <code>n</code> је позитиван интегер.",
 813+ 'dpl2_log_' . self::WARN_NORESULTS => 'ПАЖЊА: Нема резултата!',
 814+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "ПАЖЊА: Додавање* параметара ('adduser', 'addeditdate', итд.)' и 'includepage' нема ефекта са 'mode=category'. Искључиво име странице/именски простор могу да се виде у овом моду.",
 815+ /**
 816+ * $0: 'headingmode' value given by user
 817+ * $1: value used instead by program (which means no heading)
 818+ */
 819+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "ПАЖЊА: 'headingmode=$0' нема ефекта са 'ordermethod' на једној компоненти. Користи се: '$1'. Помоћ: не морате користити-$1 'headingmode' податке 'ordermethod' на више компоненти. Прва компонента се користи за наслов. Нпр. 'ordermethod=category,<i>компонента</i>' (<i>компонента</i> је друга компонента) за наслове категорија.",
 820+ /**
 821+ * $0: 'log' value
 822+ */
 823+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "ПАЖЊА: 'debug=$0' није на првом месту у DPL елементу. Нова дебаг подешавања нису примењена пре свих параметара који су проверени",
 824+ /**
 825+ * $0: title of page that creates an infinite transclusion loop
 826+ */
 827+ 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "ПАЖЊА: Бесконачна петљаса странице '$0'.",
 828+
 829+ // DEBUG
 830+ /**
 831+ * $0: SQL query executed to generate the dynamic page list
 832+ */
 833+ 'dpl2_log_' . self::DEBUG_QUERY => 'УПИТ: <code>$0</code>',
 834+
 835+ /*
 836+ Output formatting
 837+ */
 838+ /**
 839+ * $1: number of articles
 840+ */
 841+ 'dpl2_articlecount' => 'У овом наслову се тренутно налази {{PLURAL:$1|један чланак|$1 чланка|$1 чланака}}.'
 842+ );
 843+ self::$messages['sr-el'] = array(
 844+ /*
 845+ Log
 846+ */
 847+ // FATAL
 848+ /**
 849+ * $0: 'namespace' or 'notnamespace'
 850+ * $1: wrong parameter given by user
 851+ * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
 852+ */
 853+ 'dpl2_log_' . self::FATAL_WRONGNS => "GREŠKA: Pogrean '$0' parametar: '$1'! Pomoć: <code>$0= <i>pogrešan string</i> (Glavno)$3</code>. (Ekvivalenti sa magičnim rečima su takođe dozvoljeni.)",
 854+ /**
 855+ * $0: 'linksto' (left as $0 just in case the parameter is renamed in the future)
 856+ * $1: wrong parameter given by user
 857+ */
 858+ 'dpl2_log_' . self::FATAL_WRONGLINKSTO => "GREŠKA: Pogrešan '$0' parametar: '$1'! Pomoć: <code>$0= <i>puno ime stranice</i></code>. (Magične reči su dozvoljene.)",
 859+ /**
 860+ * $0: max number of categories that can be included
 861+ */
 862+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => 'GREŠKA: Previše kategorija! Maksimum je: $0. Pomoć: povećajte <code>ExtDynamicPageList2::$maxCategoryCount</code> kako biste postavili više kategorija ili promenite <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> za bez granica. (Podesite varijablu u <code>LocalSettings.php</code>, nakon uključivanja <code>DynamicPageList2.php</code>.)',
 863+ /**
 864+ * $0: min number of categories that have to be included
 865+ */
 866+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => 'GREŠKA: Premalo kategorija! Minimum je: $0. Pomoć: povećajte <code>ExtDynamicPageList2::$minCategoryCount</code> kako biste postavili manje kategorija. (Podesite varijablu u <code>LocalSettings.php</code>, nakon uključivanja <code>DynamicPageList2.php</code>.)',
 867+ '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",
 868+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "GREŠKA: Morate uključiti bar jednu kategoriju ukoliko želite da koristite 'addfirstcategorydate=true' ili 'ordermethod=categoryadd'!",
 869+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "GREŠKA: Ukoliko uključujete više od jedne kategorije, ne možete koristiti 'addfirstcategorydate=true' ili 'ordermethod=categoryadd'!",
 870+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => 'GREŠKA: Ne možete dodati više od jednog tipa datuma!',
 871+ /**
 872+ * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
 873+ * $1: last 'ordermethod' parameter required for $0
 874+ */
 875+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "GREŠKA: Možete koristiti '$0' sa 'ordermethod=[...,]$1' isključivo!",
 876+ /**
 877+ * $0: the number of arguments in includepage
 878+ */
604879 'dpl2_log_' . self::FATAL_DOMINANTSECTIONRANGE => "ERROR: the index for the dominant section must be between 1 and the number of arguments of includepage ($0 in this case)",
605880 /**
606881 * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names
607882 * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB
608883 */
 884+ 'dpl2_log_' . self::FATAL_NOCLVIEW => "GREŠKA: Nemoguće izvršiti operaciju na nekategorizovanim stranicama (npr. sa 'category' parametrom) zato što $0 pregled ne postoji u bazi podataka! Pomoć: neka administrator baze izvrši ovaj upit: <code>$1</code>.",
 885+ 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.',
 886+
 887+ // WARN
 888+ /**
 889+ * $0: unknown parameter given by user
 890+ * $1: list of DPL2 available parameters separated by ', '
 891+ */
 892+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "PAŽNJA: Nepoznat parametar '$0' je ignorisan. Pomoć: dostupni parametri su: <code>$1</code>.",
 893+ /**
 894+ * $3: list of valid param values separated by ' | '
 895+ */
 896+ 'dpl2_log_' . self::WARN_WRONGPARAM => "PAŽNJA: Pogrešan '$0' parametar: '$1'! Koristi se osnovni: '$2'. Pomoć: <code>$0= $3</code>.",
 897+ /**
 898+ * $0: param name
 899+ * $1: wrong param value given by user
 900+ * $2: default param value used instead by program
 901+ */
 902+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "PAŽNJA: Pogrešan '$0' parametar: '$1'! Koristi se osnovni: '$2' (bez granice). Pomoć: <code>$0= <i>prazan string</i> (bez granice) | n</code>, s <code>n</code> je pozitivan integer.",
 903+ 'dpl2_log_' . self::WARN_NORESULTS => 'PAŽNJA: Nema rezultata!',
 904+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "PAŽNJA: Dodavanje* parametara ('adduser', 'addeditdate', itd.)' i 'includepage' nema efekta sa 'mode=category'. Isključivo ime stranice/imenski prostor mogu da se vide u ovom modu.",
 905+ /**
 906+ * $0: 'headingmode' value given by user
 907+ * $1: value used instead by program (which means no heading)
 908+ */
 909+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "PAŽNJA: 'headingmode=$0' nema efekta sa 'ordermethod' na jednoj komponenti. Koristi se: '$1'. Pomoć: ne morate koristiti-$1 'headingmode' podatke 'ordermethod' na više komponenti. Prva komponenta se koristi za naslov. Npr. 'ordermethod=category,<i>komponenta</i>' (<i>komponenta</i> je druga komponenta) za naslove kategorija.",
 910+ /**
 911+ * $0: 'log' value
 912+ */
 913+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "PAŽNJA: 'debug=$0' nije na prvom mestu u DPL elementu. Nova debag podešavanja nisu primenjena pre svih parametara koji su provereni",
 914+ /**
 915+ * $0: title of page that creates an infinite transclusion loop
 916+ */
 917+ 'dpl2_log_' . self::WARN_TRANSCLUSIONLOOP => "PAŽNJA: Beskonačna petljasa stranice '$0'.",
 918+
 919+ // DEBUG
 920+ /**
 921+ * $0: SQL query executed to generate the dynamic page list
 922+ */
 923+ 'dpl2_log_' . self::DEBUG_QUERY => 'UPIT: <code>$0</code>',
 924+
 925+ /*
 926+ Output formatting
 927+ */
 928+ /**
 929+ * $1: number of articles
 930+ */
 931+ 'dpl2_articlecount' => 'U ovom naslovu se trenutno nalazi {{PLURAL:$1|jedan članak|$1 članka|$1 članaka}}'
 932+ );
 933+ self::$messages['yue'] = array(
 934+ /*
 935+ Log
 936+ */
 937+ // FATAL
 938+ /**
 939+ * $0: 'namespace' or 'notnamespace'
 940+ * $1: wrong parameter given by user
 941+ * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
 942+ */
 943+ 'dpl2_log_' . self::FATAL_WRONGNS => "錯誤: 錯嘅 '$0' 參數: '$1'! 幫助: <code>$0= <i>空字串</i> (主)$3</code>。",
 944+ /**
 945+ * $0: max number of categories that can be included
 946+ */
 947+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => '錯誤: 太多分類! 最大值: $0。 幫助: 增加 <code>ExtDynamicPageList2::$maxCategoryCount</code> 嘅值去指定更多嘅分類或者設定 <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> 以解除限制。 (當加上 <code>DynamicPageList2.php</code>之後,響<code>LocalSettings.php</code>度設定變數。)',
 948+ /**
 949+ * $0: min number of categories that have to be included
 950+ */
 951+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => '錯誤: 太少分類! 最小值: $0. 幫助: 減少 <code>ExtDynamicPageList2::$minCategoryCount</code> 嘅值去指定更少嘅分類。 (當加上 <code>DynamicPageList2.php</code>之後,響<code>LocalSettings.php</code>度設定一個合適嘅變數。)',
 952+ '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",
 953+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "錯誤: 如果你想去用 'addfirstcategorydate=true' 或者 'ordermethod=categoryadd' ,你需要包含最少一個分類!",
 954+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "錯誤: 如果你包含多過一個分類,你唔可以用 'addfirstcategorydate=true' 或者 'ordermethod=categoryadd'!",
 955+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '錯誤: 你唔可以響一個時間度加入多個一種嘅日期!',
 956+ /**
 957+ * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
 958+ * $1: last 'ordermethod' parameter required for $0
 959+ */
 960+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "錯誤: 你只可以用 'ordermethod=[...,]$1' 響 '$0' 上!",
 961+ /**
 962+ * $0: the number of arguments in includepage
 963+ */
 964+ 'dpl2_log_' . self::FATAL_DOMINANTSECTIONRANGE => "ERROR: the index for the dominant section must be between 1 and the number of arguments of includepage ($0 in this case)",
 965+ /**
 966+ * $0: prefix_dpl_clview where 'prefix' is the prefix of your mediawiki table names
 967+ * $1: SQL query to create the prefix_dpl_clview on your mediawiki DB
 968+ */
609969 'dpl2_log_' . self::FATAL_NOCLVIEW => self::$messages['en']['dpl2_log_' . self::FATAL_NOCLVIEW],
610970 'dpl2_log_' . self::FATAL_OPENREFERENCES => 'ERROR: specifying "openreferences" is incompatible with some other option you specified. See the manual for details.',
611971
@@ -613,34 +973,34 @@
614974 * $0: unknown parameter given by user
615975 * $1: list of DPL2 available parameters separated by ', '
616976 */
617 - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??: ????? '$0' ???? ??: ?????: <code>$1</code>?",
 977+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "警告: 不明嘅參數 '$0' 被忽略。 幫助: 可用嘅參數: <code>$1</code>。",
618978 /**
619979 * $3: list of valid param values separated by ' | '
620980 */
621 - 'dpl2_log_' . self::WARN_WRONGPARAM => "??: ??? '$0' ??: '$1'! ???????: '$2'? ??: <code>$0= $3</code>?",
 981+ 'dpl2_log_' . self::WARN_WRONGPARAM => "警告: 錯誤嘅 '$0' 參數: '$1'! 用緊預設嘅: '$2'。 幫助: <code>$0= $3</code>。",
622982 /**
623983 * $0: param name
624984 * $1: wrong param value given by user
625985 * $2: default param value used instead by program
626986 */
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' ????????????/??????????????",
 987+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "警告: 錯誤嘅 '$0' 參數: '$1'! 用緊預設嘅: '$2' (冇上限)。 幫助: <code>$0= <i>空字串</i> (冇上限) | n</code>, <code>n</code>係一個正整數。",
 988+ 'dpl2_log_' . self::WARN_NORESULTS => '警告: 無結果!',
 989+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "警告: 加入* 參數 ('adduser', 'addeditdate', 等)' 係對 'mode=category' 冇作用嘅。只有頁空間名/標題至可以響呢個模式度睇到。",
630990 /**
631991 * $0: 'headingmode' value given by user
632992 * $1: value used instead by program (which means no heading)
633993 */
634 - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??: ??????, 'ordermethod' ? 'headingmode=$0' ??????? ????: '$1'? ??: ?????$1 'headingmode' ??,??????? 'ordermethod' ????????????????????? 'ordermethod=category,<i>comp</i>' (<i>comp</i>???????) ?",
 994+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "警告: 響單一部件中, 'ordermethod' 度用 'headingmode=$0' 係冇作用嘅。 用緊: '$1'。 幫助: 你可以用非$1 'headingmode' 數值,響多個部件中用 'ordermethod' 。第一個部件係用嚟做標題。例如響分類標題度用 'ordermethod=category,<i>comp</i>' (<i>comp</i>係另外一個部件) 。",
635995 /**
636996 * $0: 'debug' value
637997 */
638 - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??: 'debug=$0' ??????DPL?????????????????????????????????",
 998+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "警告: 'debug=$0' 唔係第一個響DPL元素嘅第一位。新嘅除錯設定響所有參數都能夠處理同檢查之前都唔會應用。",
639999
6401000 // DEBUG
6411001 /**
6421002 * $0: SQL query executed to generate the dynamic page list
6431003 */
644 - 'dpl2_log_' . self::DEBUG_QUERY => '??: <code>$0</code>',
 1004+ 'dpl2_log_' . self::DEBUG_QUERY => '查訽: <code>$0</code>',
6451005
6461006 /*
6471007 Output formatting
@@ -648,9 +1008,9 @@
6491009 /**
6501010 * $1: number of articles
6511011 */
652 - 'dpl2_articlecount' => '???????$1????'
 1012+ 'dpl2_articlecount' => '響呢個標題度有$1篇文。'
6531013 );
654 - self::$messages['zh-tw'] = array(
 1014+ self::$messages['zh-hans'] = array(
6551015 /*
6561016 Log
6571017 */
@@ -660,24 +1020,24 @@
6611021 * $1: wrong parameter given by user
6621022 * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
6631023 */
664 - 'dpl2_log_' . self::FATAL_WRONGNS => "??: ??? '$0' ??: '$1'! ??: <code>$0= <i>????</i> (?)$3</code>?",
 1024+ 'dpl2_log_' . self::FATAL_WRONGNS => "错误: 错误的 '$0' 参数: '$1'! 帮助: <code>$0= <i>空白字符串</i> (主)$3</code>。",
6651025 /**
6661026 * $0: max number of categories that can be included
6671027 */
668 - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ????????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ?????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>??????)',
 1028+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => '错误: 过多分类! 最大值: $0。 帮助: 增加 <code>ExtDynamicPageList2::$maxCategoryCount</code> 的值去指定更多的分类或设定 <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> 以解除限制。 (当加上 <code>DynamicPageList2.php</code>后,在<code>LocalSettings.php</code>中设定变量。)',
6691029 /**
6701030 * $0: min number of categories that have to be included
6711031 */
672 - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??????????? (??? <code>DynamicPageList2.php</code>?,?<code>LocalSettings.php</code>???????????)',
 1032+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => '错误: 过少分类! 最小值: $0。 帮助: 减少 <code>ExtDynamicPageList2::$minCategoryCount</code> 的值去指定更少的分类。 (当加上 <code>DynamicPageList2.php</code>后,在<code>LocalSettings.php</code>中设定一个合适的变量。)',
6731033 '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 => '??: ???????????????????!',
 1034+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "错误: 如果您想用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd' ,您需要包含最少一个分类!",
 1035+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "错误: 如果您包含多一个分类,您不可以用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd'!",
 1036+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '错误: 您不可以在一个时间里加入多于一种的日期!',
6771037 /**
6781038 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
6791039 * $1: last 'ordermethod' parameter required for $0
6801040 */
681 - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??: ????? 'ordermethod=[...,]$1' ? '$0' ?!",
 1041+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "错误: 你只可以用 'ordermethod=[...,]$1' 在 '$0' 上!",
6821042 /**
6831043 * $0: the number of arguments in includepage
6841044 */
@@ -694,34 +1054,34 @@
6951055 * $0: unknown parameter given by user
6961056 * $1: list of DPL2 available parameters separated by ', '
6971057 */
698 - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??: ????? '$0' ???? ??: ?????: <code>$1</code>?",
 1058+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "警告: 不明的参数 '$0' 被忽略。 帮助: 可用的参数: <code>$1</code>。",
6991059 /**
7001060 * $3: list of valid param values separated by ' | '
7011061 */
702 - 'dpl2_log_' . self::WARN_WRONGPARAM => "??: ??? '$0' ??: '$1'! ???????: '$2'? ??: <code>$0= $3</code>?",
 1062+ 'dpl2_log_' . self::WARN_WRONGPARAM => "警告: 错误的 '$0' 参数: '$1'! 正在使用默认值: '$2'。 帮助: <code>$0= $3</code>。",
7031063 /**
7041064 * $0: param name
7051065 * $1: wrong param value given by user
7061066 * $2: default param value used instead by program
7071067 */
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' ????????????/??????????????",
 1068+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "警告: 错误的 '$0' 参数: '$1'! 正在使用默认值: '$2' (没有上限)。 帮助: <code>$0= <i>空白字符串</i> (没有上限) | n</code>, <code>n</code>是一个正整数。",
 1069+ 'dpl2_log_' . self::WARN_NORESULTS => '警告: 无结果!',
 1070+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "警告: 加入* 参数 ('adduser', 'addeditdate', 等)' 是对 'mode=category' 没有作用。只有页面空间名/标题才可以在这个模式度看到。",
7111071 /**
7121072 * $0: 'headingmode' value given by user
7131073 * $1: value used instead by program (which means no heading)
7141074 */
715 - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??: ??????, 'ordermethod' ? 'headingmode=$0' ??????? ????: '$1'? ??: ?????$1 'headingmode' ??,??????? 'ordermethod' ????????????????????? 'ordermethod=category,<i>comp</i>' (<i>comp</i>???????) ?",
 1075+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "警告: 在单一部件中, 'ordermethod' 用 'headingmode=$0' 是没有作用的。 正在使用: '$1'。 帮助: 你可以用非$1 'headingmode' 数值,在多个部件中用 'ordermethod' 。第一个部是用来作标题。例如在分类标题中用 'ordermethod=category,<i>comp</i>' (<i>comp</i>是另外一个部件) 。",
7161076 /**
7171077 * $0: 'debug' value
7181078 */
719 - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??: 'debug=$0' ??????DPL?????????????????????????????????",
 1079+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "警告: 'debug=$0' 不是第一个在DPL元素嘅第一位置。新的除错设定在所有参数都能处理和检查前都不会应用。",
7201080
7211081 // DEBUG
7221082 /**
7231083 * $0: SQL query executed to generate the dynamic page list
7241084 */
725 - 'dpl2_log_' . self::DEBUG_QUERY => '??: <code>$0</code>',
 1085+ 'dpl2_log_' . self::DEBUG_QUERY => '查訽: <code>$0</code>',
7261086
7271087 /*
7281088 Output formatting
@@ -729,9 +1089,9 @@
7301090 /**
7311091 * $1: number of articles
7321092 */
733 - 'dpl2_articlecount' => '???????$1????'
 1093+ 'dpl2_articlecount' => '在这个标题中有$1篇条目。'
7341094 );
735 - self::$messages['zh-yue'] = array(
 1095+ self::$messages['zh-hant'] = array(
7361096 /*
7371097 Log
7381098 */
@@ -741,24 +1101,24 @@
7421102 * $1: wrong parameter given by user
7431103 * $3: list of possible titles of namespaces (except pseudo-namespaces: Media, Special)
7441104 */
745 - 'dpl2_log_' . self::FATAL_WRONGNS => "??: ?? '$0' ??: '$1'! ??: <code>$0= <i>???</i> (?)$3</code>?",
 1105+ 'dpl2_log_' . self::FATAL_WRONGNS => "錯誤: 錯誤的 '$0' 參數: '$1'! 說明: <code>$0= <i>空白字串</i> (主)$3</code>。",
7461106 /**
7471107 * $0: max number of categories that can be included
7481108 */
749 - 'dpl2_log_' . self::FATAL_TOOMANYCATS => '??: ????! ???: $0? ??: ?? <code>ExtDynamicPageList2::$maxCategoryCount</code> ?????????????? <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> ?????? (??? <code>DynamicPageList2.php</code>??,?<code>LocalSettings.php</code>??????)',
 1109+ 'dpl2_log_' . self::FATAL_TOOMANYCATS => '錯誤: 過多分類! 最大值: $0。 說明: 增加 <code>ExtDynamicPageList2::$maxCategoryCount</code> 的值去指定更多的分類或設定 <code>ExtDynamicPageList2::$allowUnlimitedCategories=true</code> 以解除限制。 (當加上 <code>DynamicPageList2.php</code>後,在<code>LocalSettings.php</code>中設定變數。)',
7501110 /**
7511111 * $0: min number of categories that have to be included
7521112 */
753 - 'dpl2_log_' . self::FATAL_TOOFEWCATS => '??: ????! ???: $0. ??: ?? <code>ExtDynamicPageList2::$minCategoryCount</code> ??????????? (??? <code>DynamicPageList2.php</code>??,?<code>LocalSettings.php</code>???????????)',
 1113+ 'dpl2_log_' . self::FATAL_TOOFEWCATS => '錯誤: 過少分類! 最小值: $0。 說明: 減少 <code>ExtDynamicPageList2::$minCategoryCount</code> 的值去指定更少的分類。 (當加上 <code>DynamicPageList2.php</code>後,在<code>LocalSettings.php</code>中設定一個合適的變數。)',
7541114 '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 => '??: ???????????????????!',
 1115+ 'dpl2_log_' . self::FATAL_CATDATEBUTNOINCLUDEDCATS => "錯誤: 如果您想用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd' ,您需要包含最少一個分類!",
 1116+ 'dpl2_log_' . self::FATAL_CATDATEBUTMORETHAN1CAT => "錯誤: 如果您包含多一個分類,您不可以用 'addfirstcategorydate=true' 或 'ordermethod=categoryadd'!",
 1117+ 'dpl2_log_' . self::FATAL_MORETHAN1TYPEOFDATE => '錯誤: 您不可以在一個時間裡加入多於一種的日期!',
7581118 /**
7591119 * $0: param=val that is possible only with $1 as last 'ordermethod' parameter
7601120 * $1: last 'ordermethod' parameter required for $0
7611121 */
762 - 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "??: ????? 'ordermethod=[...,]$1' ? '$0' ?!",
 1122+ 'dpl2_log_' . self::FATAL_WRONGORDERMETHOD => "錯誤: 你只可以用 'ordermethod=[...,]$1' 在 '$0' 上!",
7631123 /**
7641124 * $0: the number of arguments in includepage
7651125 */
@@ -775,34 +1135,34 @@
7761136 * $0: unknown parameter given by user
7771137 * $1: list of DPL2 available parameters separated by ', '
7781138 */
779 - 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "??: ????? '$0' ???? ??: ?????: <code>$1</code>?",
 1139+ 'dpl2_log_' . self::WARN_UNKNOWNPARAM => "警告: 不明的參數 '$0' 被忽略。 說明: 可用的參數: <code>$1</code>。",
7801140 /**
7811141 * $3: list of valid param values separated by ' | '
7821142 */
783 - 'dpl2_log_' . self::WARN_WRONGPARAM => "??: ??? '$0' ??: '$1'! ?????: '$2'? ??: <code>$0= $3</code>?",
 1143+ 'dpl2_log_' . self::WARN_WRONGPARAM => "警告: 錯誤的 '$0' 參數: '$1'! 正在使用預設值: '$2'。 說明: <code>$0= $3</code>。",
7841144 /**
7851145 * $0: param name
7861146 * $1: wrong param value given by user
7871147 * $2: default param value used instead by program
7881148 */
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' ???????????/??????????????",
 1149+ 'dpl2_log_' . self::WARN_WRONGPARAM_INT => "警告: 錯誤的 '$0' 參數: '$1'! 正在使用預設值: '$2' (沒有上限)。 說明: <code>$0= <i>空白字串</i> (沒有上限) | n</code>, <code>n</code>是一個正整數。",
 1150+ 'dpl2_log_' . self::WARN_NORESULTS => '警告: 無結果!',
 1151+ 'dpl2_log_' . self::WARN_CATOUTPUTBUTWRONGPARAMS => "警告: 加入* 參數 ('adduser', 'addeditdate', 等)' 是對 'mode=category' 沒有作用。只有頁面空間名/標題才可以在這個模式度看到。",
7921152 /**
7931153 * $0: 'headingmode' value given by user
7941154 * $1: value used instead by program (which means no heading)
7951155 */
796 - 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "??: ??????, 'ordermethod' ?? 'headingmode=$0' ?????? ??: '$1'? ??: ?????$1 'headingmode' ??,??????? 'ordermethod' ?????????????????????? 'ordermethod=category,<i>comp</i>' (<i>comp</i>???????) ?",
 1156+ 'dpl2_log_' . self::WARN_HEADINGBUTSIMPLEORDERMETHOD => "警告: 在單一部件中, 'ordermethod' 用 'headingmode=$0' 是沒有作用的。 正在使用: '$1'。 說明: 你可以用非$1 'headingmode' 數值,在多個部件中用 'ordermethod' 。第一個部是用來作標題。例如在分類標題中用 'ordermethod=category,<i>comp</i>' (<i>comp</i>是另外一個部件) 。",
7971157 /**
7981158 * $0: 'debug' value
7991159 */
800 - 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "??: 'debug=$0' ??????DPL??????????????????????????????????",
 1160+ 'dpl2_log_' . self::WARN_DEBUGPARAMNOTFIRST => "警告: 'debug=$0' 不是第一個在DPL元素嘅第一位置。新的除錯設定在所有參數都能處理和檢查前都不會應用。",
8011161
8021162 // DEBUG
8031163 /**
8041164 * $0: SQL query executed to generate the dynamic page list
8051165 */
806 - 'dpl2_log_' . self::DEBUG_QUERY => '??: <code>$0</code>',
 1166+ 'dpl2_log_' . self::DEBUG_QUERY => '查訽: <code>$0</code>',
8071167
8081168 /*
8091169 Output formatting
@@ -810,10 +1170,16 @@
8111171 /**
8121172 * $1: number of articles
8131173 */
814 - 'dpl2_articlecount' => '???????$1???'
 1174+ 'dpl2_articlecount' => '在這個標題中有$1篇條目。'
8151175 );
816 - self::$messages['zh-hk'] = self::$messages['zh-tw'];
817 - self::$messages['zh-sg'] = self::$messages['zh-cn'];
 1176+ self::$messages['sr'] = self::$messages['sr-ec'];
 1177+ self::$messages['zh-cn'] = self::$messages['zh-hans'];
 1178+ self::$messages['zh-hk'] = self::$messages['zh-hant'];
 1179+ self::$messages['zh-mo'] = self::$messages['zh-hant'];
 1180+ self::$messages['zh-my'] = self::$messages['zh-hans'];
 1181+ self::$messages['zh-sg'] = self::$messages['zh-hans'];
 1182+ self::$messages['zh-tw'] = self::$messages['zh-hant'];
 1183+ self::$messages['zh-yue'] = self::$messages['yue'];
8181184 return self::$messages;
8191185 }
8201186 }
Index: branches/REL1_15/extensions/DynamicPageList/DynamicPageList2.php
@@ -27,7 +27,7 @@
2828 * addcategories: bug fixed
2929 * CATLIST variable defined
3030 * @version 0.9.3
31 - * allow � as an alias for |
 31+ * allow ¦ as an alias for |
3232 * escapelinks= introduced
3333 * @version 0.9.4
3434 * allow "-" with categories =
@@ -273,8 +273,17 @@
274274 * @version 1.7.4
275275 * new command: imagecontainer
276276 * @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 !
279288 */
280289
281290 /**
@@ -291,11 +300,9 @@
292301
293302 $wgExtensionCredits['parserhook'][] = array(
294303 'name' => 'DynamicPageList2',
295 - 'author' => '[http://en.wikinews.org/wiki/User:IlyaHaykinson IlyaHaykinson], [http://en.wikinews.org/wiki/User:Amgine Amgine],'
296 - .'[http://de.wikipedia.org/wiki/Benutzer:Unendlich Unendlich], [http://meta.wikimedia.org/wiki/User:Dangerman Cyril Dangerville],'
297 - .'[http://de.wikipedia.org/wiki/Benutzer:Algorithmix Algorithmix]',
 304+ '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]" ),
298305 'url' => 'http://www.mediawiki.org/wiki/Extension:DynamicPageList',
299 - 'description' => 'based on [http://www.mediawiki.org/wiki/Extension:DynamicPageList DynamicPageList], featuring many improvements',
 306+ 'description' => 'a highly flexible report generator for MediaWikis - manual and examples: see [http://semeb.com/dpldemo]',
300307 'version' => ExtDynamicPageList2::VERSION
301308 );
302309
@@ -312,7 +319,7 @@
313320
314321 class ExtDynamicPageList2
315322 {
316 - const VERSION = '1.7.4'; // current version
 323+ const VERSION = '1.7.6'; // current version
317324
318325 /**
319326 * Extension options
@@ -343,7 +350,7 @@
344351 'addauthor' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'),
345352 'addcontribution' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'),
346353 'addlasteditor' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'),
347 - 'allowcachedresults' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'),
 354+ 'allowcachedresults' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on', 'yes+warn'),
348355 /**
349356 * search for a page with the same title in another namespace (this is normally the article to a talk page)
350357 */
@@ -496,7 +503,7 @@
497504 /**
498505 * listseparators is an array of four tags (in html or wiki syntax) which defines the output of DPL2
499506 * if mode = 'userformat' was specified.
500 - * '\n' or '�' in the input will be interpreted as a newline character.
 507+ * '\n' or '¶' in the input will be interpreted as a newline character.
501508 * '%xxx%' in the input will be replaced by a corresponding value (xxx= PAGE, NR, COUNT etc.)
502509 * t1 and t4 are the "outer envelope" for the whole result list,
503510 * t2,t3 form an inner envelope around the article name of each entry.
@@ -552,6 +559,10 @@
553560 */
554561 'notuses' => array('default' => ''),
555562 /**
 563+ * this parameter restricts the output to the template used by the specified page.
 564+ */
 565+ 'usedby' => array('default' => ''),
 566+ /**
556567 * allows to specify a username who must be the first editor of the pages we select
557568 */
558569 'createdby' => NULL,
@@ -631,12 +642,14 @@
632643 */
633644 'titlematch' => NULL,
634645 'titleregexp' => NULL,
 646+ 'userdateformat' => array('default' => ''),
 647+ 'updaterules' => array('default' => ''),
 648+ 'deleterules' => array('default' => ''),
 649+
635650 /**
636651 * nottitlematch is a (SQL-LIKE-expression) pattern
637652 * which excludes pages matching that pattern from the result
638653 */
639 - 'userdateformat' => array('default' => ''),
640 -
641654 'nottitlematch' => NULL,
642655 'nottitleregexp' => NULL,
643656 'order' => array('default' => 'ascending', 'ascending', 'descending'),
@@ -679,6 +692,7 @@
680693 * if the result set is empty; setting 'noresultsheader' to something like ' ' will suppress
681694 * the warning about empty result set.
682695 */
 696+ 'suppresserrors' => array('default' => 'false', 'true', 'no', 'yes', '0', '1', 'off', 'on'),
683697 'noresultsheader' => array('default' => ''),
684698 'noresultsfooter' => array('default' => ''),
685699 /**
@@ -783,7 +797,7 @@
784798 // phase of the MediaWiki parser
785799
786800 public static function setup() {
787 - // Page Transclusion, adopted from Steve Sanbeg�s LabeledSectionTransclusion
 801+ // Page Transclusion, adopted from Steve Sanbeg´s LabeledSectionTransclusion
788802 require_once( 'DynamicPageList2Include.php' );
789803
790804 global $wgParser, $wgMessageCache;
@@ -888,7 +902,7 @@
889903 $numargs = func_num_args();
890904 if ($numargs < 2) {
891905 $input = "#dpl: no arguments specified";
892 - return str_replace('�','<','�pre>�nowiki>'.$input.'�/nowiki>�/pre>');
 906+ return str_replace('§','<','§pre>§nowiki>'.$input.'§/nowiki>§/pre>');
893907 }
894908
895909 // fetch all user-provided arguments (skipping $parser)
@@ -898,7 +912,7 @@
899913 $input .= str_replace("\n","",$p1) ."\n";
900914 }
901915 // for debugging you may want to uncomment the following statement
902 - // return str_replace('�','<','�pre>�nowiki>'.$input.'�/nowiki>�/pre>');
 916+ // return str_replace('§','<','§pre>§nowiki>'.$input.'§/nowiki>§/pre>');
903917
904918
905919 // $dump1 = self::dumpParsedRefs($parser,"before DPL func");
@@ -1157,6 +1171,7 @@
11581172
11591173 $sRedirects = self::$options['redirects']['default'];
11601174
 1175+ $bSuppressErrors = self::argBoolean(self::$options['suppresserrors']['default']);
11611176 $sResultsHeader = self::$options['resultsheader']['default'];
11621177 $sResultsFooter = self::$options['resultsfooter']['default'];
11631178 $sNoResultsHeader = self::$options['noresultsheader']['default'];
@@ -1189,6 +1204,7 @@
11901205 $bAddLastEditor = self::argBoolean(self::$options['addlasteditor']['default']);
11911206
11921207 $bAllowCachedResults = self::argBoolean(self::$options['allowcachedresults']['default']);
 1208+ $bWarnCachedResults = false;
11931209
11941210 $sUserDateFormat = self::$options['userdateformat']['default'];
11951211
@@ -1267,6 +1283,7 @@
12681284
12691285 $aUses = array();
12701286 $aNotUses = array();
 1287+ $aUsedBy = array();
12711288
12721289 $sCreatedBy = '';
12731290 $sNotCreatedBy = '';
@@ -1291,6 +1308,9 @@
12921309
12931310 $sArticleCategory = null;
12941311
 1312+ $sUpdateRules = self::$options['updaterules']['default'];
 1313+ $sDeleteRules = self::$options['deleterules']['default'];
 1314+
12951315 // Output
12961316 $output = '';
12971317
@@ -1298,16 +1318,16 @@
12991319 // ###### PARSE PARAMETERS ######
13001320
13011321 // we replace double angle brackets by < > ; thus we avoid premature tag expansion in the input
1302 - $input = str_replace('»','>',$input);
1303 - $input = str_replace('«','<',$input);
 1322+ $input = str_replace('»','>',$input);
 1323+ $input = str_replace('«','<',$input);
13041324
1305 - // use the � as a general alias for |
1306 - $input = str_replace('¦','|',$input); // the symbol is utf8-escaped
 1325+ // use the ¦ as a general alias for |
 1326+ $input = str_replace('¦','|',$input); // the symbol is utf8-escaped
13071327
1308 - // the combination '�{' and '}�'will be translated to double curly braces; this allows postponed template execution
 1328+ // the combination '²{' and '}²'will be translated to double curly braces; this allows postponed template execution
13091329 // which is crucial for DPL queries which call other DPL queries
1310 - $input = str_replace('²{','{{',$input);
1311 - $input = str_replace('}²','}}',$input);
 1330+ $input = str_replace('²{','{{',$input);
 1331+ $input = str_replace('}²','}}',$input);
13121332
13131333 $aParams = explode("\n", $input);
13141334 $bIncludeUncat = false; // to check if pseudo-category of Uncategorized pages is included
@@ -1567,6 +1587,19 @@
15681588 $bConflictsWithOpenReferences=true;
15691589 break;
15701590
 1591+ case 'usedby':
 1592+ $pages = explode('|', $sArg);
 1593+ $n=0;
 1594+ foreach($pages as $page) {
 1595+ if (trim($page)=='') continue;
 1596+ if (!($theTitle = Title::newFromText(trim($page)))) return $logger->msgWrongParam('usedby', $sArg);
 1597+ $aUsedBy[$n++] = $theTitle;
 1598+ $bSelectionCriteriaFound=true;
 1599+ }
 1600+ if(!$bSelectionCriteriaFound) return $logger->msgWrongParam('usedby', $sArg);
 1601+ $bConflictsWithOpenReferences=true;
 1602+ break;
 1603+
15711604 case 'createdby':
15721605 $sCreatedBy = $sArg;
15731606 if ($sCreatedBy != '') $bSelectionCriteriaFound=true;
@@ -1998,7 +2031,7 @@
19992032 // parsing of wikitext will happen at the end of the output phase
20002033 // we replace '\n' in the input by linefeed because wiki syntax depends on linefeeds
20012034 $sArg = str_replace( '\n', "\n", $sArg );
2002 - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
 2035+ $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
20032036 $aListSeparators = explode (',', $sArg, 4);
20042037 // mode=userformat will be automatically assumed
20052038 $sPageListMode='userformat';
@@ -2008,25 +2041,25 @@
20092042 case 'secseparators':
20102043 // we replace '\n' by newline to support wiki syntax within the section separators
20112044 $sArg = str_replace( '\n', "\n", $sArg );
2012 - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
 2045+ $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
20132046 $aSecSeparators = explode (',',$sArg);
20142047 break;
20152048
20162049 case 'multisecseparators':
20172050 // we replace '\n' by newline to support wiki syntax within the section separators
20182051 $sArg = str_replace( '\n', "\n", $sArg );
2019 - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
 2052+ $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
20202053 $aMultiSecSeparators = explode (',',$sArg);
20212054 break;
20222055
20232056 case 'table':
20242057 $sArg = str_replace( '\n', "\n", $sArg );
2025 - $sTable = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
 2058+ $sTable = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
20262059 break;
20272060
20282061 case 'tablerow':
20292062 $sArg = str_replace( '\n', "\n", $sArg );
2030 - $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
 2063+ $sArg = str_replace( "¶", "\n", $sArg ); // the paragraph delimiter is utf8-escaped
20312064 if (trim($sArg)=='') $aTableRow = array();
20322065 else $aTableRow = explode (',',$sArg);
20332066 break;
@@ -2094,6 +2127,16 @@
20952128 case 'noresultsheader':
20962129 $sNoResultsHeader = $sArg;
20972130 break;
 2131+ case 'suppresserrors':
 2132+ if( in_array($sArg, self::$options['suppresserrors'])) {
 2133+ $bSuppressErrors = self::argBoolean($sArg);
 2134+ if( $bSuppressErrors ) $sNoResultsHeader = ' ';
 2135+ }
 2136+ else {
 2137+ $output .= $logger->msgWrongParam('suppresserrors', $sArg);
 2138+ }
 2139+ break;
 2140+
20982141 case 'noresultsfooter':
20992142 $sNoResultsFooter = $sArg;
21002143 break;
@@ -2105,12 +2148,32 @@
21062149 break;
21072150
21082151 /**
 2152+ * UPDATERULES
 2153+ */
 2154+
 2155+ case 'updaterules':
 2156+ $sUpdateRules = $sArg;
 2157+ break;
 2158+
 2159+ /**
 2160+ * DELETERULES
 2161+ */
 2162+
 2163+ case 'deleterules':
 2164+ $sDeleteRules = $sArg;
 2165+ break;
 2166+
 2167+ /**
21092168 * DEBUG, RESET and CACHE PARAMETER
21102169 */
21112170
21122171 case 'allowcachedresults':
21132172 if( in_array($sArg, self::$options['allowcachedresults'])) {
21142173 $bAllowCachedResults = self::argBoolean($sArg);
 2174+ if ($sArg=='yes+warn') {
 2175+ $bAllowCachedResults = true;
 2176+ $bWarnCachedResults = true;
 2177+ }
21152178 }
21162179 else
21172180 $output .= $logger->msgWrongParam('allowcachedresults', $sArg);
@@ -2187,6 +2250,9 @@
21882251
21892252 // disable parser cache
21902253 if ( !$bAllowCachedResults) $parser->disableCache();
 2254+
 2255+ // place cache warning in resultsheader
 2256+ if ($bWarnCachedResults) $sResultsHeader = '{{DPL Cache Warning}}' . $sResultsHeader;
21912257
21922258 if ($calledInMode=='tag') {
21932259 // in tag mode 'eliminate' is the same as 'reset' for tpl,cat,img
@@ -2386,6 +2452,7 @@
23872453 $sTemplateLinksTable = $dbr->tableName( 'templatelinks' );
23882454 $sSqlPageLinksTable = '';
23892455 $sSqlCond_page_pl = '';
 2456+ $sSqlCond_page_tpl = '';
23902457 $sSqlCond_MaxCat = '';
23912458 $sSqlWhere = ' WHERE 1=1 ';
23922459 $sSqlSelPage = ''; // initial page for selection
@@ -2431,14 +2498,14 @@
24322499 // UTF-8 created problems with non-utf-8 MySQL databases
24332500 //see line 2011 (order method sortkey requires category
24342501 if (in_array('category',$aOrderMethods)) {
2435 - $sSqlSortkey = ", IFNULL(cl_head.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣')) ".$sOrderCollation." as sortkey";
 2502+ $sSqlSortkey = ", IFNULL(cl_head.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣')) ".$sOrderCollation." as sortkey";
24362503 }
24372504 else {
2438 - $sSqlSortkey = ", IFNULL(cl0.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣')) ".$sOrderCollation." as sortkey";
 2505+ $sSqlSortkey = ", IFNULL(cl0.cl_sortkey, REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣')) ".$sOrderCollation." as sortkey";
24392506 }
24402507 break;
24412508 case 'titlewithoutnamespace':
2442 - $sSqlSortkey = ", REPLACE(page_title,'♣','⣣') ".$sOrderCollation." as sortkey";
 2509+ $sSqlSortkey = ", REPLACE(page_title,'♣','⣣') ".$sOrderCollation." as sortkey";
24432510 break;
24442511 case 'pagesel':
24452512 $sSqlSortkey = ", CONCAT(pl.pl_namespace,pl.pl_title) ".$sOrderCollation." as sortkey";
@@ -2451,7 +2518,7 @@
24522519 foreach($aStrictNs as $iNs => $sNs)
24532520 $sSqlNsIdToText .= ' WHEN ' . intval( $iNs ) . " THEN " . $dbr->addQuotes( $sNs ) ;
24542521 $sSqlNsIdToText .= ' END';
2455 - $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(pl_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), pl_title), '_', ' '),'♣','⣣') ".$sOrderCollation." as sortkey";
 2522+ $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(pl_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), pl_title), '_', ' '),'♣','⣣') ".$sOrderCollation." as sortkey";
24562523 }
24572524 else {
24582525 $sSqlNsIdToText = 'CASE '.$sPageTable.'.page_namespace';
@@ -2459,7 +2526,7 @@
24602527 $sSqlNsIdToText .= ' WHEN ' . intval( $iNs ) . " THEN " . $dbr->addQuotes( $sNs ) ;
24612528 $sSqlNsIdToText .= ' END';
24622529 // Generate sortkey like for category links. UTF-8 created problems with non-utf-8 MySQL databases
2463 - $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣') ".$sOrderCollation." as sortkey";
 2530+ $sSqlSortkey = ", REPLACE(REPLACE(CONCAT( IF(".$sPageTable.".page_namespace=0, '', CONCAT(" . $sSqlNsIdToText . ", ':')), ".$sPageTable.".page_title), '_', ' '),'♣','⣣') ".$sOrderCollation." as sortkey";
24642531 }
24652532 break;
24662533 case 'user':
@@ -2478,7 +2545,7 @@
24792546 foreach ($aLinksTo as $link) {
24802547 if ($n>0) $sSqlCond_page_pl .= ' OR ';
24812548 $sSqlCond_page_pl .= '(pl.pl_namespace=' . intval( $link->getNamespace() );
2482 - if ($bIgnoreCase) $sSqlCond_page_pl .= " AND UPPER(pl.pl_title)=UPPER(" . $dbr->addQuotes( $link->getDBKey() ).'))';
 2549+ if ($bIgnoreCase) $sSqlCond_page_pl .= " AND LOWER(pl.pl_title)=LOWER(" . $dbr->addQuotes( $link->getDBKey() ).'))';
24832550 else $sSqlCond_page_pl .= " AND pl.pl_title=" . $dbr->addQuotes( $link->getDBKey() ).')';
24842551 $n++;
24852552 }
@@ -2492,7 +2559,7 @@
24932560 foreach ($aNotLinksTo as $link) {
24942561 if ($n>0) $sSqlCond_page_pl .= ' OR ';
24952562 $sSqlCond_page_pl .= '('.$sPageLinksTable.'.pl_namespace=' . intval($link->getNamespace());
2496 - if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND UPPER('.$sPageLinksTable.'.pl_title)=UPPER(' . $dbr->addQuotes( $link->getDBKey() ).'))';
 2563+ if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND LOWER('.$sPageLinksTable.'.pl_title)=LOWER(' . $dbr->addQuotes( $link->getDBKey() ).'))';
24972564 else $sSqlCond_page_pl .= ' AND '.$sPageLinksTable.'.pl_title=' . $dbr->addQuotes( $link->getDBKey() ).')';
24982565 $n++;
24992566 }
@@ -2558,7 +2625,7 @@
25592626 $n=0;
25602627 foreach ($aImageUsed as $link) {
25612628 if ($n>0) $sSqlCond_page_pl .= ' OR ';
2562 - if ($bIgnoreCase) $sSqlCond_page_pl .= "UPPER(il.il_to)=UPPER(" . $dbr->addQuotes( $link->getDBKey() ).')';
 2629+ if ($bIgnoreCase) $sSqlCond_page_pl .= "LOWER(il.il_to)=LOWER(" . $dbr->addQuotes( $link->getDBKey() ).')';
25632630 else $sSqlCond_page_pl .= "il.il_to=" . $dbr->addQuotes( $link->getDBKey() );
25642631 $n++;
25652632 }
@@ -2577,7 +2644,7 @@
25782645 $n=0;
25792646 foreach ($aImageContainer as $link) {
25802647 if ($n>0) $sSqlCond_page_pl .= ' OR ';
2581 - if ($bIgnoreCase) $sSqlCond_page_pl .= "UPPER(ic.il_from)=UPPER(" . $dbr->addQuotes( $link->getArticleID() ).')';
 2648+ if ($bIgnoreCase) $sSqlCond_page_pl .= "LOWER(ic.il_from)=LOWER(" . $dbr->addQuotes( $link->getArticleID() ).')';
25822649 else $sSqlCond_page_pl .= "ic.il_from=" . $dbr->addQuotes( $link->getArticleID() );
25832650 $n++;
25842651 }
@@ -2592,7 +2659,7 @@
25932660 foreach ($aUses as $link) {
25942661 if ($n>0) $sSqlCond_page_pl .= ' OR ';
25952662 $sSqlCond_page_pl .= '(tl.tl_namespace=' . intval( $link->getNamespace() );
2596 - if ($bIgnoreCase) $sSqlCond_page_pl .= " AND UPPER(tl.tl_title)=UPPER(" . $dbr->addQuotes( $link->getDBKey() ).'))';
 2663+ if ($bIgnoreCase) $sSqlCond_page_pl .= " AND LOWER(tl.tl_title)=LOWER(" . $dbr->addQuotes( $link->getDBKey() ).'))';
25972664 else $sSqlCond_page_pl .= " AND tl.tl_title=" . $dbr->addQuotes( $link->getDBKey() ).')';
25982665 $n++;
25992666 }
@@ -2606,13 +2673,40 @@
26072674 foreach ($aNotUses as $link) {
26082675 if ($n>0) $sSqlCond_page_pl .= ' OR ';
26092676 $sSqlCond_page_pl .= '('.$sTemplateLinksTable.'.tl_namespace=' . intval($link->getNamespace());
2610 - if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND UPPER('.$sTemplateLinksTable.'.tl_title)=UPPER(' . $dbr->addQuotes( $link->getDBKey() ).'))';
 2677+ if ($bIgnoreCase) $sSqlCond_page_pl .= ' AND LOWER('.$sTemplateLinksTable.'.tl_title)=LOWER(' . $dbr->addQuotes( $link->getDBKey() ).'))';
26112678 else $sSqlCond_page_pl .= ' AND '.$sTemplateLinksTable.'.tl_title=' . $dbr->addQuotes( $link->getDBKey() ).')';
26122679 $n++;
26132680 }
26142681 $sSqlCond_page_pl .= ') )';
26152682 }
 2683+
 2684+ // usedby
 2685+ if ( count($aUsedBy)>0 ) {
 2686+ if ($acceptOpenReferences) {
 2687+ $sSqlCond_page_tpl .= ' AND (';
 2688+ $n=0;
 2689+ foreach ($aUsedBy as $link) {
 2690+ if ($n>0) $sSqlCond_page_pl .= ' OR ';
 2691+ $sSqlCond_page_tpl .= '(tpl_from=' . $link->getArticleID().')';
 2692+ $n++;
 2693+ }
 2694+ $sSqlCond_page_tpl .= ')';
 2695+ }
 2696+ else {
 2697+ $sSqlPageLinksTable .= $sTemplateLinksTable . ' as tpl, '. $sPageTable . 'as tplsrc, ';
 2698+ $sSqlCond_page_tpl .= ' AND '.$sPageTable.'.page_title = tpl.tl_title AND tplsrc.page_id=tpl.tl_from AND (';
 2699+ $sSqlSelPage = ', tplsrc.page_title as tpl_sel_title, tplsrc.page_namespace as tpl_sel_ns';
 2700+ $n=0;
 2701+ foreach ($aUsedBy as $link) {
 2702+ if ($n>0) $sSqlCond_page_tpl .= ' OR ';
 2703+ $sSqlCond_page_tpl .= '(tpl.tl_from=' . $link->getArticleID().')';
 2704+ $n++;
 2705+ }
 2706+ $sSqlCond_page_tpl .= ')';
 2707+ }
 2708+ }
26162709
 2710+
26172711 // recent changes =============================
26182712
26192713 if ( $bAddContribution ) {
@@ -2650,14 +2744,13 @@
26512745
26522746 if ($bAddAuthor && $sSqlRevisionTable =='') {
26532747 $sSqlRevisionTable = $sRevisionTable . ' AS rev, ';
2654 - $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 )';
 2748+ $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 )';
26552749 }
26562750 if ($bAddLastEditor && $sSqlRevisionTable =='') {
26572751 $sSqlRevisionTable = $sRevisionTable . ' AS rev, ';
2658 - $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 )';
 2752+ $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 )';
26592753 }
26602754
2661 -
26622755 if ($sLastRevisionBefore.$sAllRevisionsBefore.$sFirstRevisionSince.$sAllRevisionsSince != '') {
26632756
26642757 // later during output we are going to create html links to the revisions, so we must enable RawHtml
@@ -2776,7 +2869,7 @@
27772870
27782871 // TitleIs
27792872 if ( $sTitleIs != '' ) {
2780 - if ($bIgnoreCase) $sSqlWhere .= ' AND UPPER('.$sPageTable.'.page_title) = UPPER(' . $dbr->addQuotes($sTitleIs) .')' ;
 2873+ if ($bIgnoreCase) $sSqlWhere .= ' AND LOWER('.$sPageTable.'.page_title) = LOWER(' . $dbr->addQuotes($sTitleIs) .')' ;
27812874 else $sSqlWhere .= ' AND '.$sPageTable.'.page_title = ' . $dbr->addQuotes($sTitleIs) ;
27822875 }
27832876
@@ -2787,10 +2880,10 @@
27882881 foreach ($aTitleMatch as $link) {
27892882 if ($n>0) $sSqlWhere .= ' OR ';
27902883 if ($acceptOpenReferences) {
2791 - if ($bIgnoreCase) $sSqlWhere .= 'UPPER(pl_title)' . $sTitleMatchMode . 'UPPER('. $dbr->addQuotes($link) . ')' ;
 2884+ if ($bIgnoreCase) $sSqlWhere .= 'LOWER(pl_title)' . $sTitleMatchMode . strtolower($dbr->addQuotes($link)) ;
27922885 else $sSqlWhere .= 'pl_title' . $sTitleMatchMode . $dbr->addQuotes($link) ;
27932886 } else {
2794 - if ($bIgnoreCase) $sSqlWhere .= 'UPPER(' . $sPageTable.'.page_title)' . $sTitleMatchMode . 'UPPER('. $dbr->addQuotes($link) .')' ;
 2887+ if ($bIgnoreCase) $sSqlWhere .= 'LOWER(' . $sPageTable.'.page_title)' . $sTitleMatchMode . strtolower($dbr->addQuotes($link)) ;
27952888 else $sSqlWhere .= $sPageTable.'.page_title' . $sTitleMatchMode . $dbr->addQuotes($link) ;
27962889 }
27972890 $n++;
@@ -2805,10 +2898,10 @@
28062899 foreach ($aNotTitleMatch as $link) {
28072900 if ($n>0) $sSqlWhere .= ' OR ';
28082901 if ($acceptOpenReferences) {
2809 - if ($bIgnoreCase) $sSqlWhere .= 'UPPER(pl_title)' . $sNotTitleMatchMode . 'UPPER(' . $dbr->addQuotes($link) . ')';
 2902+ if ($bIgnoreCase) $sSqlWhere .= 'LOWER(pl_title)' . $sNotTitleMatchMode . 'LOWER(' . $dbr->addQuotes($link) . ')';
28102903 else $sSqlWhere .= 'pl_title' . $sNotTitleMatchMode . $dbr->addQuotes($link);
28112904 } else {
2812 - if ($bIgnoreCase) $sSqlWhere .= 'UPPER('.$sPageTable.'.page_title)' . $sNotTitleMatchMode . 'UPPER(' . $dbr->addQuotes($link) .')';
 2905+ if ($bIgnoreCase) $sSqlWhere .= 'LOWER('.$sPageTable.'.page_title)' . $sNotTitleMatchMode . 'LOWER(' . $dbr->addQuotes($link) .')';
28132906 else $sSqlWhere .= $sPageTable.'.page_title' . $sNotTitleMatchMode . $dbr->addQuotes($link);
28142907 }
28152908 $n++;
@@ -2833,7 +2926,7 @@
28342927
28352928 // page_id=rev_page (if revision table required)
28362929 $sSqlWhere .= $sSqlCond_page_rev;
2837 -
 2930+
28382931 // count(all categories) <= max no of categories
28392932 $sSqlWhere .= $sSqlCond_MaxCat;
28402933
@@ -2846,6 +2939,9 @@
28472940 // page_id=pl.pl_from (if pagelinks table required)
28482941 $sSqlWhere .= $sSqlCond_page_pl;
28492942
 2943+ // page_id=tpl.pl_from (if templatelinks table required)
 2944+ $sSqlWhere .= $sSqlCond_page_tpl;
 2945+
28502946 if ( isset($sArticleCategory) && $sArticleCategory !== null ) {
28512947 $sSqlWhere .= " AND $sPageTable.page_title IN (
28522948 select p2.page_title
@@ -2940,8 +3036,8 @@
29413037 }
29423038
29433039 if ($dbr->numRows( $res ) <= 0) {
2944 - if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader));
2945 - if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter));
 3040+ if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader));
 3041+ if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter));
29463042 if ($sNoResultsHeader == '' && $sNoResultsFooter == '') $output .= $logger->escapeMsg(DPL2_i18n::WARN_NORESULTS);
29473043 $dbr->freeResult( $res );
29483044 return $output;
@@ -3092,7 +3188,7 @@
30933189
30943190 //USER/AUTHOR(S)
30953191 // because we are going to do a recursive parse at the end of the output phase
3096 - // we have to generate wiki syntax for linking to a user�s homepage
 3192+ // we have to generate wiki syntax for linking to a user´s homepage
30973193 if($bAddUser || $bAddAuthor || $bAddLastEditor || $sLastRevisionBefore.$sAllRevisionsBefore.$sFirstRevisionSince.$sAllRevisionsSince != '') {
30983194 $dplArticle->mUserLink = '[[User:'.$row->rev_user_text.'|'.$row->rev_user_text.']]';
30993195 $dplArticle->mUser = $row->rev_user_text;
@@ -3155,7 +3251,7 @@
31563252 $dpl = new DPL2($aHeadings, $bHeadingCount, $iColumns, $iRows, $iRowSize, $sRowColFormat, $aArticles,
31573253 $aOrderMethods[0], $hListMode, $listMode, $bEscapeLinks, $bIncPage, $iIncludeMaxLen,
31583254 $aSecLabels, $aSecLabelsMatch, $aSecLabelsNotMatch, $bIncParsed, $parser, $logger, $aReplaceInTitle,
3159 - $iTitleMaxLen, $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol);
 3255+ $iTitleMaxLen, $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol, $sUpdateRules, $sDeleteRules);
31603256
31613257 if ($rowcount == -1) $rowcount = $dpl->getRowCount();
31623258 $dpl2result = $dpl->getText();
@@ -3163,14 +3259,14 @@
31643260 if ($sOneResultHeader != '' && $rowcount==1) {
31653261 $header = str_replace('%PAGES%',1,$sOneResultHeader);
31663262 } else if ($rowcount==0) {
3167 - if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader));
3168 - if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter));
 3263+ if ($sNoResultsHeader != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsHeader));
 3264+ if ($sNoResultsFooter != '') $output .= str_replace( '\n', "\n", str_replace( "¶", "\n", $sNoResultsFooter));
31693265 if ($sNoResultsHeader == '' && $sNoResultsFooter == '') $output .= $logger->escapeMsg(DPL2_i18n::WARN_NORESULTS);
31703266 }
31713267 else {
31723268 if ($sResultsHeader != '') $header = str_replace('%TOTALPAGES%',$rowcount,str_replace('%PAGES%',$rowcount,$sResultsHeader));
31733269 }
3174 - $header = str_replace( '\n', "\n", str_replace( "¶", "\n", $header ));
 3270+ $header = str_replace( '\n', "\n", str_replace( "¶", "\n", $header ));
31753271 $header = str_replace('%VERSION%', self::VERSION,$header);
31763272 $footer='';
31773273 if ($sOneResultFooter != '' && $rowcount==1) {
@@ -3178,7 +3274,7 @@
31793275 } else {
31803276 if ($sResultsFooter != '') $footer = str_replace('%TOTALPAGES%',$rowcount,str_replace('%PAGES%',$rowcount,$sResultsFooter));
31813277 }
3182 - $footer = str_replace( '\n', "\n", str_replace( "¶", "\n", $footer ));
 3278+ $footer = str_replace( '\n', "\n", str_replace( "¶", "\n", $footer ));
31833279 $footer = str_replace('%VERSION%', self::VERSION, $footer);
31843280
31853281 $output .= $header . $dpl2result . $footer;
@@ -3477,7 +3573,7 @@
34783574 function DPL2($headings, $bHeadingCount, $iColumns, $iRows, $iRowSize, $sRowColFormat, $articles, $headingtype, $hlistmode,
34793575 $listmode, $bescapelinks, $includepage, $includemaxlen, $includeseclabels, $includeseclabelsmatch,
34803576 $includeseclabelsnotmatch, $includematchparsed, &$parser, $logger, $replaceInTitle, $iTitleMaxLen,
3481 - $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol ) {
 3577+ $defaultTemplateSuffix, $aTableRow, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules ) {
34823578 global $wgContLang;
34833579 $this->nameSpaces = $wgContLang->getNamespaces();
34843580 $this->mArticles = $articles;
@@ -3533,13 +3629,13 @@
35343630 $greml -= $portion;
35353631 // $this->mOutput .= "nsize=$nsize, portion=$portion, greml=$greml";
35363632 if ($greml>0) {
3537 - $this->mOutput .= $this->formatList($nstart-$offset, $portion, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol);
 3633+ $this->mOutput .= $this->formatList($nstart-$offset, $portion, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules);
35383634 $nstart += $portion;
35393635 $portion=0;
35403636 break;
35413637 }
35423638 else {
3543 - $this->mOutput .= $this->formatList($nstart-$offset, $portion+$greml, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol);
 3639+ $this->mOutput .= $this->formatList($nstart-$offset, $portion+$greml, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules);
35443640 $nstart += ($portion+$greml);
35453641 $portion = (-$greml);
35463642 if ($iColumns!=1) $this->mOutput .= "\n|valign=top|\n";
@@ -3566,7 +3662,7 @@
35673663 $this->mOutput .= $hlistmode->sItemStart;
35683664 $this->mOutput .= $hlistmode->sHeadingStart . $headingLink . $hlistmode->sHeadingEnd;
35693665 if ($bHeadingCount) $this->mOutput .= $this->formatCount($headingCount);
3570 - $this->mOutput .= $this->formatList($headingStart, $headingCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol);
 3666+ $this->mOutput .= $this->formatList($headingStart, $headingCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules);
35713667 $this->mOutput .= $hlistmode->sItemEnd;
35723668 $headingStart += $headingCount;
35733669 }
@@ -3583,7 +3679,7 @@
35843680 if ($rest>0) $nsize += 1;
35853681 $this->mOutput .= "{|".$sRowColFormat."\n|\n";
35863682 for ($g=0;$g<$iGroup;$g++) {
3587 - $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol);
 3683+ $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules);
35883684 if ($iColumns!=1) $this->mOutput .= "\n|valign=top|\n";
35893685 else $this->mOutput .= "\n|-\n|\n";
35903686 $nstart = $nstart + $nsize;
@@ -3599,14 +3695,14 @@
36003696 $this->mOutput .= '{|'.$sRowColFormat."\n|\n";
36013697 do {
36023698 if ($nstart+$nsize > $count) $nsize = $count - $nstart;
3603 - $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol);
 3699+ $this->mOutput .= $this->formatList($nstart, $nsize, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules);
36043700 $this->mOutput .= "\n|-\n|\n";
36053701 $nstart = $nstart + $nsize;
36063702 if ($nstart >= $count) break;
36073703 } while (true);
36083704 $this->mOutput .= "\n|}\n";
36093705 } else {
3610 - $this->mOutput .= $this->formatList(0, count($articles), $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol);
 3706+ $this->mOutput .= $this->formatList(0, count($articles), $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules);
36113707 }
36123708
36133709 }
@@ -3662,16 +3758,18 @@
36633759 if ($article->mImageSelTitle!= '') $sTag = str_replace('%IMAGESEL%',str_replace('_',' ',$article->mImageSelTitle),$sTag);
36643760 if (!empty($article->mCategoryLinks) ) {
36653761 $sTag = str_replace('%'.'CATLIST%',implode(', ', $article->mCategoryLinks),$sTag);
 3762+ $sTag = str_replace('%'.'CATBULLETS%','* '.implode("\n* ", $article->mCategoryLinks),$sTag);
36663763 $sTag = str_replace('%'.'CATNAMES%',implode(', ', $article->mCategoryTexts),$sTag);
36673764 }
36683765 else {
36693766 $sTag = str_replace('%'.'CATLIST%','',$sTag);
 3767+ $sTag = str_replace('%'.'CATBULLETS%','',$sTag);
36703768 $sTag = str_replace('%'.'CATNAMES%','',$sTag);
36713769 }
36723770 return $sTag;
36733771 }
36743772
3675 - function formatList($iStart, $iCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol) {
 3773+ function formatList($iStart, $iCount, $iTitleMaxLen, $defaultTemplateSuffix, $bIncludeTrim, $iTableSortCol, $updateRules, $deleteRules) {
36763774 global $wgUser, $wgLang, $wgContLang;
36773775
36783776 $mode = $this->mListMode;
@@ -3702,12 +3800,35 @@
37033801 if ($mode->name == 'userformat') $incwiki = '';
37043802 else $incwiki = '<br/>';
37053803 $text = $this->mParser->fetchTemplate(Title::newFromText($title));
3706 - if( $this->mIncMaxLen > 0 && (strlen($text) > $this->mIncMaxLen) ) {
3707 - $text = DPL2Include::limitTranscludedText($text, $this->mIncMaxLen, ' [['.$title.'|..&rarr;]]');
 3804+ if ((count($this->mIncSecLabelsMatch)<=0 || $this->mIncSecLabelsMatch[0] == '' ||
 3805+ !preg_match($this->mIncSecLabelsMatch[0],$text)==false) &&
 3806+ (count($this->mIncSecLabelsNotMatch)<=0 || $this->mIncSecLabelsNotMatch[0] == '' ||
 3807+ preg_match($this->mIncSecLabelsNotMatch[0],$text)==false)) {
 3808+ if( $this->mIncMaxLen > 0 && (strlen($text) > $this->mIncMaxLen) ) {
 3809+ $text = DPL2Include::limitTranscludedText($text, $this->mIncMaxLen, ' [['.$title.'|..&rarr;]]');
 3810+ }
 3811+ $this->filteredCount = $this->filteredCount + 1;
 3812+
 3813+ // update article if include=* and updaterules are given
 3814+ if ($updateRules!='') {
 3815+ $message = $this->updateArticleByRule($title,$text,$updateRules);
 3816+ // append update message to output
 3817+ $incwiki .= $message;
 3818+ }
 3819+ else if ($deleteRules!='') {
 3820+ $message = $this->deleteArticleByRule($title,$text,$deleteRules);
 3821+ // append delete message to output
 3822+ $incwiki .= $message;
 3823+ }
 3824+ else {
 3825+ // append full text to output
 3826+ $incwiki .= $text;
 3827+ }
37083828 }
3709 - $incwiki .= $text;
3710 - $this->filteredCount = $this->filteredCount + 1;
3711 -
 3829+ else {
 3830+ continue;
 3831+ }
 3832+
37123833 } else {
37133834 // identify section pieces
37143835 $secPiece=array();
@@ -3763,6 +3884,7 @@
37643885 }
37653886 }
37663887 $this->formatSingleItems($secPieces,$s);
 3888+ if (!array_key_exists(0,$secPieces)) break; # to avoid matching against a non-existing array element
37673889 $secPiece[$s] = $secPieces[0];
37683890 for ($sp=1;$sp<count($secPieces);$sp++) {
37693891 if (isset($mode->aMultiSecSeparators[$s])) {
@@ -3879,7 +4001,7 @@
38804002 if($article->mUserLink != '') $rBody .= ' . . [[User:' . $article->mUser .'|'.$article->mUser.']]';
38814003 if($article->mContributor != '')$rBody .= ' . . [[User:' . $article->mContributor .'|'.$article->mContributor." $article->mContrib]]";
38824004
3883 - if( !empty($article->mCategoryLinks) ) $rBody .= ' . . <small>' . wfMsg('categories') . ': ' . $wgLang->pipeList( $article->mCategoryLinks ) . '</small>';
 4005+ if( !empty($article->mCategoryLinks) ) $rBody .= ' . . <small>' . wfMsg('categories') . ': ' . $wgLang->pipeList( $article->mCategoryLinks ) . '</small>';
38844006 }
38854007
38864008 // add included contents
@@ -3916,7 +4038,138 @@
39174039 }
39184040 return $mode->sListStart . $rBody . $mode->sListEnd;
39194041 }
 4042+
39204043
 4044+ function updateArticleByRule($title,$text,$rulesText) {
 4045+ // we use ; as command delimiter; \; stands for a semicolon
 4046+ // \n is translated to a real linefeed
 4047+ $rulesText = str_replace(";",'°',$rulesText);
 4048+ $rulesText = str_replace('\°',';',$rulesText);
 4049+ $rulesText = str_replace("\\n","\n",$rulesText);
 4050+ $rules=split('°',$rulesText);
 4051+ $exec=false;
 4052+ $replaceThis='';
 4053+ $replacement='';
 4054+ $after='';
 4055+ $insertionAfter='';
 4056+ $before='';
 4057+ $insertionBefore='';
 4058+ $lastCmd='';
 4059+ $message= '';
 4060+ $summary='';
 4061+ // $message .= 'updaterules=<pre><nowiki>';
 4062+ foreach ($rules as $rule) {
 4063+ $cmd = preg_split("/ +/",$rule,2);
 4064+ if (count($cmd)>1) $arg = $cmd[1];
 4065+ else $arg='';
 4066+ $cmd[0]=trim($cmd[0]);
 4067+
 4068+ // after ... insert ... , before ... insert ...
 4069+ if ($cmd[0] == 'before') {
 4070+ // $message.= "before = $arg\n";
 4071+ $before=$arg;
 4072+ $lastCmd='B';
 4073+ }
 4074+ if ($cmd[0] == 'after') {
 4075+ // $message.= "after = $arg\n";
 4076+ $after=$arg;
 4077+ $lastCmd='A';
 4078+ }
 4079+ if ($cmd[0] == 'insert' && $lastCmd!='') {
 4080+ // $message.= "insert $lastCmd = $arg\n";
 4081+ if ($lastCmd=='A') $insertionAfter=$arg;
 4082+ if ($lastCmd=='B') $insertionBefore=$arg;
 4083+ }
 4084+
 4085+ // replace ... by ...
 4086+ if ($cmd[0] == 'replace') {
 4087+ // $message.= "repl = $arg\n";
 4088+ $replaceThis=$arg;
 4089+ }
 4090+ if ($cmd[0] == 'by') {
 4091+ // $message.= "by = $arg\n";
 4092+ $replacement=$arg;
 4093+ }
 4094+
 4095+ if ($cmd[0] == 'summary') {
 4096+ // $message.= "summary = $arg\n";
 4097+ $summary=$arg;
 4098+ }
 4099+
 4100+ // we execute only if "exec" is given, otherwise we merely show what would be done
 4101+ if ($cmd[0] == 'exec') {
 4102+ // $message.= "exec = true\n";
 4103+ $exec=true;
 4104+ }
 4105+
 4106+
 4107+ }
 4108+ $summary .= "\nbulk update:";
 4109+ if ($replaceThis!='') $summary .= "\n replace $replaceThis\n by $replacement";
 4110+ if ($before!='') $summary .= "\n before $before\n insertionBefore";
 4111+ if ($after!='') $summary .= "\n after $after\n insertionAfter";
 4112+
 4113+ // $message.= '</nowiki></pre>';
 4114+
 4115+ if ($replaceThis!='') {
 4116+ $text = preg_replace("$replaceThis",$replacement,$text);
 4117+ }
 4118+
 4119+ if ($insertionBefore!='' && $before != '') {
 4120+ $text = preg_replace("/($before)/",$insertionBefore.'\1',$text);
 4121+ }
 4122+
 4123+ if ($insertionAfter!='' && $after != '') {
 4124+ $text = preg_replace("/($after)/",'\1'.$insertionAfter,$text);
 4125+ }
 4126+
 4127+ $titleX = Title::newFromText($title);
 4128+ global $wgArticle;
 4129+ $wgArticle = $articleX = new Article($titleX);
 4130+ if ($exec) $articleX->updateArticle($text, $summary, false, $titleX->userIsWatching());
 4131+ else $message .= "set 'exec yes' to perform the following modification to &nbsp; &nbsp; <big>'''$title'''</big>\n";
 4132+ $message .= "<pre><nowiki>"
 4133+ ."\n".$text."</nowiki></pre>"; // <pre><nowiki>\n"; // .$text."\n</nowiki></pre>\n";
 4134+ return $message;
 4135+ }
 4136+
 4137+ function deleteArticleByRule($title,$text,$rulesText) {
 4138+ // we use ; as command delimiter; \; stands for a semicolon
 4139+ // \n is translated to a real linefeed
 4140+ $rulesText = str_replace(";",'°',$rulesText);
 4141+ $rulesText = str_replace('\°',';',$rulesText);
 4142+ $rulesText = str_replace("\\n","\n",$rulesText);
 4143+ $rules=split('°',$rulesText);
 4144+ $exec=false;
 4145+ $message= '';
 4146+ $reason='';
 4147+ foreach ($rules as $rule) {
 4148+ $cmd = preg_split("/ +/",$rule,2);
 4149+ if (count($cmd)>1) $arg = $cmd[1];
 4150+ else $arg='';
 4151+ $cmd[0]=trim($cmd[0]);
 4152+
 4153+ if ($cmd[0] == 'reason') {
 4154+ $reason=$arg;
 4155+ }
 4156+
 4157+ // we execute only if "exec" is given, otherwise we merely show what would be done
 4158+ if ($cmd[0] == 'exec') {
 4159+ $exec=true;
 4160+ }
 4161+ }
 4162+ $reason .= "\nbulk delete by DPL query";
 4163+
 4164+ $titleX = Title::newFromText($title);
 4165+ global $wgArticle;
 4166+ $wgArticle = $articleX = new Article($titleX);
 4167+ if ($exec) $articleX->doDelete($reason);
 4168+ else $message .= "set 'exec yes' to delete &nbsp; &nbsp; <big>'''$title'''</big>\n";
 4169+ $message .= "<pre><nowiki>"
 4170+ ."\n".$text."</nowiki></pre>"; // <pre><nowiki>\n"; // .$text."\n</nowiki></pre>\n";
 4171+ return $message;
 4172+ }
 4173+
39214174 // generate a hyperlink to the article
39224175 function articleLink($tag,$article,$iTitleMaxLen) {
39234176 $pagename = $article->mTitle->getPrefixedText();
Index: branches/REL1_15/extensions/DynamicPageList/DynamicPageList2Include.php
@@ -8,7 +8,7 @@
99 *
1010 *
1111 * @author Steve Sanbeg
12 - * @copyright Copyright � 2006, Steve Sanbeg
 12+ * @copyright Copyright © 2006, Steve Sanbeg
1313 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
1414 *
1515 *
@@ -436,7 +436,7 @@
437437 $extractParm = array();
438438
439439 // 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
441441 // as a sequence of table columns;
442442 if (strlen($template2)>strlen($template1) && ($template2[strlen($template1)]==':')) {
443443 $extractParm = split(':',substr($template2,strlen($template1)+1));
@@ -572,4 +572,3 @@
573573 }
574574
575575 }
576 -?>
\ No newline at end of file
Property changes on: branches/REL1_15/extensions/DynamicPageList
___________________________________________________________________
Name: svn:mergeinfo
577576 + /trunk/extensions/DynamicPageList:50074-50075

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r50074* (bug 16576) Merge the localisations for the DPL2 from the old DPL, update t...shinjiman14:32, 30 April 2009
r50075Follow up r50073, merge localisations fr, id, sr-ec and sr-el for DPL2.shinjiman15:13, 30 April 2009

Status & tagging log