r72343 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r72342‎ | r72343 | r72344 >
Date:01:19, 4 September 2010
Author:catrope
Status:ok
Tags:
Comment:
resourceloader: Merge HEAD from trunk
Modified paths:
  • /branches/resourceloader/phase3 (modified) (history)
  • /branches/resourceloader/phase3/RELEASE-NOTES (modified) (history)
  • /branches/resourceloader/phase3/includes (modified) (history)
  • /branches/resourceloader/phase3/includes/ChangesList.php (modified) (history)
  • /branches/resourceloader/phase3/includes/ConfEditor.php (modified) (history)
  • /branches/resourceloader/phase3/includes/DefaultSettings.php (modified) (history)
  • /branches/resourceloader/phase3/includes/Exception.php (modified) (history)
  • /branches/resourceloader/phase3/includes/HistoryPage.php (modified) (history)
  • /branches/resourceloader/phase3/includes/HttpFunctions.php (modified) (history)
  • /branches/resourceloader/phase3/includes/Interwiki.php (modified) (history)
  • /branches/resourceloader/phase3/includes/Linker.php (modified) (history)
  • /branches/resourceloader/phase3/includes/LinksUpdate.php (modified) (history)
  • /branches/resourceloader/phase3/includes/OutputPage.php (modified) (history)
  • /branches/resourceloader/phase3/includes/Setup.php (modified) (history)
  • /branches/resourceloader/phase3/includes/Skin.php (modified) (history)
  • /branches/resourceloader/phase3/includes/SpecialPage.php (modified) (history)
  • /branches/resourceloader/phase3/includes/Title.php (modified) (history)
  • /branches/resourceloader/phase3/includes/api (modified) (history)
  • /branches/resourceloader/phase3/includes/api/ApiBase.php (modified) (history)
  • /branches/resourceloader/phase3/includes/api/ApiMain.php (modified) (history)
  • /branches/resourceloader/phase3/includes/db/Database.php (modified) (history)
  • /branches/resourceloader/phase3/includes/filerepo/LocalFile.php (modified) (history)
  • /branches/resourceloader/phase3/includes/installer/CliInstaller.php (modified) (history)
  • /branches/resourceloader/phase3/includes/installer/DatabaseInstaller.php (modified) (history)
  • /branches/resourceloader/phase3/includes/installer/DatabaseUpdater.php (modified) (history)
  • /branches/resourceloader/phase3/includes/installer/Installer.i18n.php (modified) (history)
  • /branches/resourceloader/phase3/includes/installer/MysqlUpdater.php (modified) (history)
  • /branches/resourceloader/phase3/includes/json/Services_JSON.php (modified) (history)
  • /branches/resourceloader/phase3/includes/parser/Parser.php (modified) (history)
  • /branches/resourceloader/phase3/includes/specials (modified) (history)
  • /branches/resourceloader/phase3/includes/specials/SpecialProtectedtitles.php (modified) (history)
  • /branches/resourceloader/phase3/includes/specials/SpecialSelenium.php (deleted) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesAn.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesAng.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesArc.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesCs.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesDe.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesIt.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesLb.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesLg.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesMk.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesMzn.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesNso.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesPms.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesPt.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesPt_br.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesQqq.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesRue.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesSk.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesSr_ec.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesSr_el.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesStq.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesSw.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesTt_cyrl.php (modified) (history)
  • /branches/resourceloader/phase3/languages/messages/MessagesWa.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/Maintenance.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/archives (modified) (history)
  • /branches/resourceloader/phase3/maintenance/archives/patch-categorylinks-better-collation.sql (modified) (history)
  • /branches/resourceloader/phase3/maintenance/archives/patch-categorylinks-better-collation2.sql (added) (history)
  • /branches/resourceloader/phase3/maintenance/cleanupTable.inc (modified) (history)
  • /branches/resourceloader/phase3/maintenance/deleteSelfExternals.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/doMaintenance.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/helloWorld.php (added) (history)
  • /branches/resourceloader/phase3/maintenance/parserTests.inc (modified) (history)
  • /branches/resourceloader/phase3/maintenance/parserTests.txt (modified) (history)
  • /branches/resourceloader/phase3/maintenance/populateRevisionLength.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/postgres/archives/patch-update_sequences.sql (modified) (history)
  • /branches/resourceloader/phase3/maintenance/postgres/tables.sql (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tables.sql (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tests/LanguageConverterTest.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tests/RunSeleniumTests.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tests/TitlePermissionTest.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tests/UploadFromUrlTestSuite.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tests/phpunit (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tests/selenium/Selenium.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/tests/selenium/SeleniumTestSuite.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/updateCollation.php (modified) (history)
  • /branches/resourceloader/phase3/maintenance/updaters.inc (modified) (history)

Diff [purge]

Index: branches/resourceloader/phase3/languages/messages/MessagesAng.php
@@ -188,7 +188,7 @@
189189 'faqpage' => 'Project:FAQ',
190190
191191 # Vector skin
192 -'vector-action-addsection' => 'Ȝief ȝīet ān mā dǣl',
 192+'vector-action-addsection' => 'Mearcunge ēacian',
193193 'vector-action-delete' => 'Forlēos',
194194 'vector-action-move' => 'Ƿeȝ',
195195 'vector-action-protect' => 'Beorȝa',
@@ -197,7 +197,7 @@
198198 'vector-simplesearch-preference' => 'Lǣt forðoda sēcunge tōtyhtinga (synderlīce for Vector scinne)',
199199 'vector-view-create' => 'Sciepe',
200200 'vector-view-edit' => 'Ādihte',
201 -'vector-view-history' => 'Sēo stǣr',
 201+'vector-view-history' => 'Stǣr',
202202 'vector-view-view' => 'Rǣd',
203203 'vector-view-viewsource' => 'Sēo fruman',
204204 'actions' => 'Fremmunga',
Index: branches/resourceloader/phase3/languages/messages/MessagesMzn.php
@@ -107,6 +107,7 @@
108108 'tog-fancysig' => 'ایمضا ره ویکی متن نظر بیرین (بدون لینک هایتن)',
109109 'tog-externaleditor' => 'به شیکل پیش فرض خارجی ویرایشگرون جه ایستیفاده بواشه',
110110 'tog-externaldiff' => 'ایستیفاده از تفاوت‌گیر جه (diff) خارجی به‌طور پیش‌فرض.',
 111+'tog-showjumplinks' => 'فعال هکردن بپرسنی پیوندون مندرجات فهرست دله',
111112 'tog-uselivepreview' => 'ایستیفاده از پیش نیمایش زنده (جاوا اسکریپ) (آزمایشی)',
112113 'tog-forceeditsummary' => 'زمونی که خولاصه دچی‌ین ره ننویشتمه مه ره بائو',
113114 'tog-watchlisthideown' => 'دپوشنی‌ین کارای من پیگریای ِفهرست دله',
@@ -120,9 +121,12 @@
121122 'tog-showhiddencats' => 'دپوشونیه رج‌ئون ره نشون هاده',
122123 'tog-norollbackdiff' => 'بعد واگردونی تفاوت ره نشون نده',
123124
 125+'underline-always' => 'همیشه مازرونی',
 126+'underline-never' => 'دکل',
124127 'underline-default' => 'مه چأرخ‌گأر ده‌لخاء',
125128
126129 # Font style option in Special:Preferences
 130+'editfont-style' => 'دچی ین جعبه قلم سبک:',
127131 'editfont-default' => 'مه چأرخ‌گأر ده‌لخاء',
128132 'editfont-monospace' => 'فونت Monospaced',
129133 'editfont-sansserif' => 'فونت Sans-serif',
@@ -181,12 +185,15 @@
182186 'dec' => 'ده‌سه‌مبر',
183187
184188 # Categories related messages
185 -'pagecategories' => '{{PLURAL:$1|رج|رج‌ئون}}',
186 -'category_header' => '"$1" ره ده‌له وألـگ‌ئون',
187 -'subcategories' => 'جیر رج‌ئون',
188 -'category-empty' => 'ای رج ره ده‌له ئه‌سا هیچی دأنیه',
189 -'category-article-count' => '{{PLURAL:$2|ای رج هأمـینـتا وألـگ ره داره‌نه.|ای {{PLURAL:$1ولگ|ولگ|$1 ئون}}، $2 جه ایجه دأره‌نه.}}',
190 -'listingcontinuesabbrev' => '(دمباله)',
 189+'pagecategories' => '{{PLURAL:$1|رج|رج‌ئون}}',
 190+'category_header' => '"$1" ره ده‌له وألـگ‌ئون',
 191+'subcategories' => 'جیر رج‌ئون',
 192+'category-media-header' => '«$1» رج پرونده‌ئون',
 193+'category-empty' => 'ای رج ره ده‌له ئه‌سا هیچی دأنیه',
 194+'hidden-categories' => '{{PLURAL:$1|خف رج|خف رجون}}',
 195+'hidden-category-category' => 'خف رجون',
 196+'category-article-count' => '{{PLURAL:$2|ای رج هأمـینـتا وألـگ ره داره‌نه.|ای {{PLURAL:$1ولگ|ولگ|$1 ئون}}، $2 جه ایجه دأره‌نه.}}',
 197+'listingcontinuesabbrev' => '(دمباله)',
191198
192199 'about' => 'ده‌لـه‌واره',
193200 'newwindow' => '(ته‌رنه‌ روجین ده‌له‌ وا بونه)',
Index: branches/resourceloader/phase3/languages/messages/MessagesRue.php
@@ -23,11 +23,11 @@
2424 'tog-newpageshidepatrolled' => 'Сховати патролёваны сторінкы зо списку новых сторінок',
2525 'tog-extendwatchlist' => 'Росшыреный список слїдованых сторінок, обсягує вшыткы зміны, не лем послїднї',
2626 'tog-usenewrc' => 'Хосновати здоконалены послїднї зміны (JavaScript)',
27 -'tog-numberheadings' => 'Автоматічно нумеровати надписы',
 27+'tog-numberheadings' => 'Автоматічно чісловати надписы',
2828 'tog-showtoolbar' => 'Вказати панел інштрументів (потрібный JavaScript)',
2929 'tog-editondblclick' => 'Едітовати двоїтым кликом (JavaScript)',
3030 'tog-editsection' => 'Поволити едітованя секції сторінкы через одказ [едіт.]',
31 -'tog-editsectiononrightclick' => 'Поволити едітованя секції сторінкы через кликаня правов клопков мышкы на надписы сторінок (JavaScript)',
 31+'tog-editsectiononrightclick' => 'Поволити едітованя секції сторінкы через кликаня правов клапков мышкы на надписы сторінок (JavaScript)',
3232 'tog-showtoc' => 'Вказовати обсяг (на сторінках з веце як трёма надписами)',
3333 'tog-rememberpassword' => 'Запамятати моє приголошіня на тім компютері (максімално $1 {{PLURAL:$1|день|днів}})',
3434 'tog-watchcreations' => 'Придавати сторінкы створены мнов до мого списку слїдованых',
@@ -46,8 +46,8 @@
4747 'tog-fancysig' => 'Хосновати про підпис вікітекст (без автоматічного одказу)',
4848 'tog-externaleditor' => 'Імпліцітно хосновати екстерный едітор',
4949 'tog-externaldiff' => 'Імпліцітно хосновати екстерный проґрам про порівнованя верзії',
50 -'tog-showjumplinks' => 'Актівізовати допоможны одказы "перейти дo"',
51 -'tog-uselivepreview' => 'Хосновати фрішный нагляд (JavaScript, експеріменрално)',
 50+'tog-showjumplinks' => 'Актівізовати помічны одказы "перейти дo"',
 51+'tog-uselivepreview' => 'Хосновати фрышный нагляд (JavaScript, експеріментално)',
5252 'tog-forceeditsummary' => 'Упозорнити ня, кідь не є выповнене згорнутя едітованя',
5353 'tog-watchlisthideown' => 'Сховати мої едітованя на списку слїдованых сторінок',
5454 'tog-watchlisthidebots' => 'Сховати едітованя ботів у списку слїдованых сторінок',
@@ -62,12 +62,12 @@
6363
6464 'underline-always' => 'Все',
6565 'underline-never' => 'Нїґда',
66 -'underline-default' => 'Хосновати наставлиня переглядача',
 66+'underline-default' => 'Хосновати наставлїня переглядача',
6767
6868 # Font style option in Special:Preferences
6969 'editfont-style' => 'Тіп писма в едітачнім полю:',
70 -'editfont-default' => 'Хосновати наставлиня переглядача',
71 -'editfont-monospace' => 'Писмо зо сталов шырков',
 70+'editfont-default' => 'Хосновати наставлїня переглядача',
 71+'editfont-monospace' => 'Писмо із сталов шырков',
7272 'editfont-sansserif' => 'Писмо без пяты',
7373 'editfont-serif' => 'Писмо з пятов',
7474
@@ -131,7 +131,7 @@
132132 'category-empty' => "''Тота катеґорія порожня.''",
133133 'hidden-categories' => '{{PLURAL:$1|Скрыта катеґорія|Скрыты катеґорії}}',
134134 'hidden-category-category' => 'Схованы катеґорії',
135 -'category-subcat-count' => '{{PLURAL:$2|Тота катеґорія має лем таку підкатеґорію.|{{PLURAL:$1|Показана $1 підкатеґорія|Показаны $1 підкатеґорії|Показані $1 підкатеґорій}} із $2.}}',
 135+'category-subcat-count' => '{{PLURAL:$2|Тота катеґорія має лем таку підкатеґорію.|{{PLURAL:$1|Указана $1 підкатеґорія|Указаны $1 підкатеґорії|Указаных $1 підкатеґорій}} із $2.}}',
136136 'category-subcat-count-limited' => 'В тїй катеґорії {{PLURAL:$1|$1 підкатеґорія|$1 підкатеґорії|$1 підкаґегорій}}.',
137137 'category-article-count' => '{{PLURAL:$2|Тота катеґорія має лем таку сторінку.|{{PLURAL:$1|Показана $1 сторінка|Показаны $1 сторінкы|Показані $1 сторінок}} той катеґорії з $2.}}',
138138 'category-article-count-limited' => 'В тій катеґорії {{PLURAL:$1|$1 сторінка|$1 сторінкы|$1 сторінок}}.',
@@ -141,7 +141,7 @@
142142 'index-category' => 'Індексованы сторінкы',
143143 'noindex-category' => 'Неіндексованы сторінкы',
144144
145 -'mainpagetext' => "'''MediaWiki была успішнї наіншталована.'''",
 145+'mainpagetext' => "'''MediaWiki была успішно наіншталована.'''",
146146 'mainpagedocfooter' => '[http://meta.wikimedia.org/wiki/Help:Contents Мануял хоснователя] Вам порадить, як хосновати MediaWiki.
147147
148148 == Про початок ==
@@ -236,7 +236,7 @@
237237 'viewtalkpage' => 'Відїти діскузію',
238238 'otherlanguages' => 'Іншыма языками',
239239 'redirectedfrom' => '(Напрямленый з $1)',
240 -'redirectpagesub' => 'Сторінка-напрямлиня',
 240+'redirectpagesub' => 'Сторінка-напрямлїня',
241241 'lastmodifiedat' => 'Послїдня зміна той сторінкы: $2, $1.',
242242 'viewcount' => 'Сторінка была зображена {{PLURAL:$1|раз|$1разы|$1раз}}.',
243243 'protectedpage' => 'Замкнута сторінка',
@@ -271,7 +271,7 @@
272272
273273 'badaccess' => 'Хыба оправнїня',
274274 'badaccess-group0' => 'Вам не є поволено выконавати тоту дїю.',
275 -'badaccess-groups' => 'Дїя, яку сьте хотіли зробити, поволена лем хоснователям із {{PLURAL:$2|ґрупы|ґруп}}: $1.',
 275+'badaccess-groups' => 'Дїя, яку сьте хотїли зробити, поволена лем хоснователям із {{PLURAL:$2|ґрупы|ґруп}}: $1.',
276276
277277 'versionrequired' => 'Потрібна MediaWiki верзії $1',
278278 'versionrequiredtext' => 'Про роботу з тов сторінков потрібна MediaWiki верзії $1. Відь [[Special:Version|сторінку верзії]].',
@@ -279,14 +279,14 @@
280280 'ok' => 'ОК',
281281 'retrievedfrom' => 'Обтримане з "$1"',
282282 'youhavenewmessages' => 'Маєте $1 ($2).',
283 -'newmessageslink' => 'новы ознамы',
 283+'newmessageslink' => 'новы повідомлїня',
284284 'newmessagesdifflink' => 'послїдня зміна',
285285 'youhavenewmessagesmulti' => 'Маєте новы ознамы на $1',
286286 'editsection' => 'едіт.',
287287 'editold' => 'едіт.',
288288 'viewsourceold' => 'відїти код',
289289 'editlink' => 'едітовати',
290 -'viewsourcelink' => 'видїти код',
 290+'viewsourcelink' => 'відїти код',
291291 'editsectionhint' => 'Едітовати секцію: $1',
292292 'toc' => 'Обсяг',
293293 'showtoc' => 'вказати',
@@ -310,7 +310,7 @@
311311 'nstab-special' => 'Шпеціална сторінка',
312312 'nstab-project' => 'Сторінка проекту',
313313 'nstab-image' => 'Файл',
314 -'nstab-mediawiki' => 'Ознам',
 314+'nstab-mediawiki' => 'Повідомлїня',
315315 'nstab-template' => 'Шаблона',
316316 'nstab-help' => 'Сторінка помочі',
317317 'nstab-category' => 'Катеґорія',
@@ -320,7 +320,7 @@
321321 'nosuchactiontext' => 'Дїя, уведжена в URL, неправилна.
322322 Могли сьте неправилно написати URL або перейти через некоректный одказ .
323323 Може тыж значіти хыбу в програмовім забезпечіню {{GRAMMAR:genitive|{{SITENAME}}}}.',
324 -'nosuchspecialpage' => 'Такой шпеціалной сторінкы не має',
 324+'nosuchspecialpage' => 'Такой шпеціалной сторінкы нїт',
325325 'nospecialpagetext' => '<strong>Така шпеціална сторінка не екзістує.</strong>
326326
327327 Відь [[Special:SpecialPages|список шпеціалных сторінок]].',
@@ -356,7 +356,7 @@
357357 'readonly_lag' => 'Датабаза автоматічно заблокована од змін, докы ся другый датабазовый сервер не сінхронізує з мастером',
358358 'internalerror' => 'Інтерна хыба',
359359 'internalerror_info' => 'Інтерна хыба: $1',
360 -'fileappenderrorread' => 'В часі прыдаваня ся не подарило прочітати "$1".',
 360+'fileappenderrorread' => 'В часї придаваня ся не подарило прочітати "$1".',
361361 'fileappenderror' => 'Не подарило ся придати «$1» до «$2».',
362362 'filecopyerror' => 'Не было можне копіровати файл «$1» на «$2».',
363363 'filerenameerror' => 'Не было можне переменовати файл «$1» на «$2».',
@@ -370,7 +370,7 @@
371371 'cannotdelete' => 'Не є можне вымазати сторінку або файл "$1".
372372 Може уж быв(а) змазаный(а) дакым іншым.',
373373 'badtitle' => 'Неприпустна назва',
374 -'badtitletext' => 'Пожадована назжа сторінкы неправилна, порожня, бо неправилно одказована як міджі-язычного ці міджі-вікі назва.
 374+'badtitletext' => 'Пожадована назжа сторінкы неправилна, порожня, або неправилно одказована як міджі-язычного ці міджі-вікі назва.
375375 Може ся хоснують сімболы, котры не можуть быти хоснованы в назвах.',
376376 'perfcached' => 'Наслїдуючі дата суть взяты з кешу і не мусять быти актуалны.',
377377 'perfcachedts' => 'Наслїдуючі дата суть взяты з кешу, котра была послїднїй раз актуалізована $1.',
@@ -405,7 +405,7 @@
406406 Можете продовжовати в анонімнім перезераню і едітації {{grammar:2sg|{{SITENAME}}}}, або ся можете [[Special:UserLogin|зясь приголосити]] як тот самый або як іншый хоснователь. Даякы сторінкы ся можуть зображовати як кібы сьте были дотеперь приголошены, покы не змажете кеш переглядача.",
407407 'welcomecreation' => '== Вітаєме вас, $1! ==
408408 Ваше конто было вытворене.
409 -Не забудьте змінити свої [[Special:Preferences|наставлиня сайту]].',
 409+Не забудьте змінити свої [[Special:Preferences|наставлїня сайту]].',
410410 'yourname' => 'Мено хоснователя:',
411411 'yourpassword' => 'Гесло:',
412412 'yourpasswordagain' => 'Повторяйте гесло:',
@@ -488,8 +488,7 @@
489489 'suspicious-userlogout' => 'Ваша пожадавка на одголошіня была одвергнута, бо вызерає то так, же была послана розбитым переглядачом або кешуючім проксі-сервером.',
490490
491491 # JavaScript password checks
492 -'password-strength' => 'українська (uk)
493 -Оцінка силы гесла: $1',
 492+'password-strength' => 'Оцінка силы гесла: $1',
494493 'password-strength-bad' => 'НЕДОБРЕ',
495494 'password-strength-mediocre' => 'середнє',
496495 'password-strength-acceptable' => 'приятельне',
@@ -499,12 +498,12 @@
500499
501500 # Password reset dialog
502501 'resetpass' => 'Змінити гесло',
503 -'resetpass_announce' => 'Приголошуєте ся дочасным геслом, котре было послане електронічнов поштов. Про закончіня приголошіня треба задати нове гесло гев:',
 502+'resetpass_announce' => 'Приголошуєте ся дочасным геслом, котре было послане електронічнов поштов. Про закончіня приголошіня треба задати нове гесло ту:',
504503 'resetpass_header' => 'Зміна гесла',
505504 'oldpassword' => 'Старе гесло:',
506505 'newpassword' => 'Нове гесло:',
507506 'retypenew' => 'Напиште знову нове гесло:',
508 -'resetpass_submit' => 'Наставити гесло а приголосити ся',
 507+'resetpass_submit' => 'Наставити гесло і приголосити ся',
509508 'resetpass_success' => 'Ваше гесло было успішно змінено! Теперь ся приголосуєте...',
510509 'resetpass_forbidden' => 'Гесла не є можне змінити',
511510 'resetpass-no-info' => 'Ку тій сторінцї мають прямый приступ лем приголошены хоснователї.',
@@ -542,7 +541,7 @@
543542 'savearticle' => 'Уложыти сторінку',
544543 'preview' => 'Перегляд',
545544 'showpreview' => 'Вказати перегляд',
546 -'showlivepreview' => 'Фрішный перегляд',
 545+'showlivepreview' => 'Фрышный перегляд',
547546 'showdiff' => 'Вказати зміны',
548547 'anoneditwarning' => "'''Увага''': Не сте приголошены. Ваша IP-адреса буде записана до історії змін той сторінкы.",
549548 'anonpreviewwarning' => "''Не сьте приголошеный(а). Уложінём буде ваша IP адреса записана в історії той сторінкы.''",
@@ -745,7 +744,7 @@
746745 'histfirst' => 'найстаршы',
747746 'histlast' => 'послїднї',
748747 'historysize' => '($1 {{PLURAL:$1|байт|байты|байтів}})',
749 -'historyempty' => '(порожнё)',
 748+'historyempty' => '(порожнє)',
750749
751750 # Revision feed
752751 'history-feed-title' => 'Історія едітовань',
@@ -816,7 +815,7 @@
817816 'revdelete-hide-restricted' => 'Затаїти дата перед адміністраторами',
818817 'revdelete-radio-same' => '(не мінити)',
819818 'revdelete-radio-set' => 'Гей',
820 -'revdelete-radio-unset' => 'Нє',
 819+'revdelete-radio-unset' => 'Нїт',
821820 'revdelete-suppress' => 'Затаїти дата перед адміністраторами',
822821 'revdelete-unsuppress' => 'Одстранити обмеджіня на вернутій верзії',
823822 'revdelete-log' => 'Причіна:',
@@ -831,7 +830,7 @@
832831 $1",
833832 'revdel-restore' => 'Змінити видительность',
834833 'revdel-restore-deleted' => 'вымазаны ревізії',
835 -'revdel-restore-visible' => 'видимы ревізії',
 834+'revdel-restore-visible' => 'видительны ревізії',
836835 'pagehist' => 'Історія сторінкы',
837836 'deletedhist' => 'Вымазана історія',
838837 'revdelete-content' => 'обсяг',
@@ -850,7 +849,7 @@
851850 'revdelete-modify-no-access' => 'Хыба зміны положкы з $1 $2: оно є позначене як «з обмедженым приступом».
852851 Не маєте приступ до нёго.',
853852 'revdelete-modify-missing' => 'Хыба зміны положкы з ID $1: положка ся не нашла в датабазї!',
854 -'revdelete-no-change' => "'''Увага:''' положка од $2, $1 уж має запрошены наштелёваня видимости.",
 853+'revdelete-no-change' => "'''Увага:''' положка од $2, $1 уж має жаданы наставлїня видительности.",
855854 'revdelete-concurrent-change' => 'Хыба зміны положкы з $1 $2. Видить ся, же міджітым як сьте едітовали вы, єй став змінив хтось іншый.
856855 Просиме, перевірте лоґы.',
857856 'revdelete-only-restricted' => 'Хыба схованя положкы з $2 $1: Не можете положкы сховати лем перед адміністраторами жебы сьте сучасно выбрали і дакотру з далшых можностей затаїня.',
@@ -905,7 +904,7 @@
906905 'mergehistory-invalid-destination' => 'Цілёва сторінка мусить мати правилну назву.',
907906 'mergehistory-autocomment' => 'Злучена сторінка [[:$1]] до сторінкы [[:$2]]',
908907 'mergehistory-comment' => 'Злучена сторінка [[:$1]] до сторінкы [[:$2]]: $3',
909 -'mergehistory-same-destination' => 'Здройова і цілёва сторінка не можуть быти такы самы',
 908+'mergehistory-same-destination' => 'Жрідлова і цілёва сторінка не можуть быти такы самы',
910909 'mergehistory-reason' => 'Причіна:',
911910
912911 # Merge log
@@ -1017,7 +1016,7 @@
10181017 'prefs-watchlist-edits' => 'Почет едітовань зображеных во вылїпшенім списку слїдованых сторінок:',
10191018 'prefs-watchlist-edits-max' => '(максімалне чісло: 1000)',
10201019 'prefs-watchlist-token' => 'Ключ до списку слїдованых сторінок:',
1021 -'prefs-misc' => 'Іншы наставлиня',
 1020+'prefs-misc' => 'Іншы наставлїня',
10221021 'prefs-resetpass' => 'Змінити гесло',
10231022 'prefs-email' => 'Параметры електронічной пошты',
10241023 'prefs-rendering' => 'Взгляд',
@@ -1041,10 +1040,10 @@
10421041 'prefs-help-watchlist-token' => 'Кідь до того поля выповните тайный ключ, буде створеный RSS канал вашых слїдованых сторінок.
10431042 Хоцьхто хто знає тот ключ, пак буде мочі ваш список слїдованых сторінок чітати, также не забывайте на безпечность.
10441043 Можете схосновати тоту нагодно выґенеровану годноту: $1',
1045 -'savedprefs' => 'Ваше наставлиня было уложене.',
 1044+'savedprefs' => 'Ваше наставлїня было уложене.',
10461045 'timezonelegend' => 'Часова зона:',
10471046 'localtime' => 'Містный час:',
1048 -'timezoneuseserverdefault' => 'Хосновати наставлиня сервера',
 1047+'timezoneuseserverdefault' => 'Хосновати наставлїня сервера',
10491048 'timezoneuseoffset' => 'Інше (задайте посун)',
10501049 'timezoneoffset' => 'Посун¹:',
10511050 'servertime' => 'Час сервера:',
@@ -1100,8 +1099,8 @@
11011100 'prefs-signature' => 'Підпис',
11021101 'prefs-dateformat' => 'Формат датуму',
11031102 'prefs-timeoffset' => 'Часовый посун',
1104 -'prefs-advancedediting' => 'Розшырены можности',
1105 -'prefs-advancedrc' => 'Розшырены мовности',
 1103+'prefs-advancedediting' => 'Росшырены можности',
 1104+'prefs-advancedrc' => 'Росшырены можности',
11061105 'prefs-advancedrendering' => 'Розшырены можности',
11071106 'prefs-advancedsearchoptions' => 'Розшырены можности',
11081107 'prefs-advancedwatchlist' => 'Розшырены можности',
Index: branches/resourceloader/phase3/languages/messages/MessagesLb.php
@@ -2636,20 +2636,20 @@
26372637 'tooltip-ca-nstab-image' => 'Billersäit weisen',
26382638 'tooltip-ca-nstab-mediawiki' => 'Systemmessage weisen',
26392639 'tooltip-ca-nstab-template' => 'Schabloun weisen',
2640 -'tooltip-ca-nstab-help' => 'Hëllefesäite weisen',
 2640+'tooltip-ca-nstab-help' => 'Hëllefssäite weisen',
26412641 'tooltip-ca-nstab-category' => 'Kategoriesäit weisen',
26422642 'tooltip-minoredit' => 'Dës Ännerung als kleng markéieren.',
26432643 'tooltip-save' => 'Ännerunge späicheren',
26442644 'tooltip-preview' => 'Kuckt är Ännerungen ouni ofzespäicheren, Benotzt dëst w.e.g. virum späicheren!',
2645 -'tooltip-diff' => 'Weist wéi eng Ännerungen der beim Text gemaach hutt.',
 2645+'tooltip-diff' => 'Weist wéi eng Ännerungen Dir beim Text gemaach hutt.',
26462646 'tooltip-compareselectedversions' => "D'Ënnerscheeder op dëser Säit tëscht den zwou gewielte Versioune weisen.",
2647 -'tooltip-watch' => 'Dës Säit op är Iwwerwaachungslëscht bäisetzen',
2648 -'tooltip-recreate' => "D'Säit nees maachen, obwuel se geläscht gi war.",
 2647+'tooltip-watch' => 'Dës Säit op Är Iwwerwaachungslëscht bäisetzen',
 2648+'tooltip-recreate' => "D'Säit nees uleeën, obwuel se geläscht gi war.",
26492649 'tooltip-upload' => 'Mam eroplueden ufänken',
26502650 'tooltip-rollback' => '"Zrécksetzen" mécht all Ännerunge vum leschten "Auteur" an engem Klick nees réckgängeg.',
26512651 'tooltip-undo' => '"Zréck" setzt dës Ännerung zréck a mécht den Ännerungsformulaire am Modus "kucken ouni ofzespäicheren" op.
26522652 Erlaabt et e Grond an de Resumé derbäizesetzen.',
2653 -'tooltip-preferences-save' => 'Astellungen späicheren',
 2653+'tooltip-preferences-save' => 'Astellunge späicheren',
26542654 'tooltip-summary' => 'Gitt e kuerze Resumé an',
26552655
26562656 # Stylesheets
Index: branches/resourceloader/phase3/languages/messages/MessagesPt_br.php
@@ -820,7 +820,7 @@
821821 'minoredit' => 'Marcar como edição menor',
822822 'watchthis' => 'Vigiar esta página',
823823 'savearticle' => 'Salvar página',
824 -'preview' => 'Previsualização',
 824+'preview' => 'Pré-visualização',
825825 'showpreview' => 'Mostrar previsão',
826826 'showlivepreview' => 'Pré-visualização em tempo real',
827827 'showdiff' => 'Mostrar alterações',
@@ -1300,7 +1300,7 @@
13011301 'prefsnologintext' => 'É necessário estar <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} autenticado]</span> para definir as suas preferências.',
13021302 'changepassword' => 'Alterar senha',
13031303 'prefs-skin' => 'Tema',
1304 -'skin-preview' => 'Previsão',
 1304+'skin-preview' => 'Pré-visualização',
13051305 'prefs-math' => 'Matemática',
13061306 'datedefault' => 'Sem preferência',
13071307 'prefs-datetime' => 'Data e hora',
Index: branches/resourceloader/phase3/languages/messages/MessagesStq.php
@@ -655,9 +655,9 @@
656656 'note' => "'''Waiwiesenge:'''",
657657 'previewnote' => "'''Dit is man ne Foarschau, die Artikkel wuude noch nit spiekerd!'''",
658658 'previewconflict' => 'Disse Foarschau rakt dän Inhoold fon dät buppere Täkstfäild wier; so wol die Artikkel uutsjo, wan du nu spiekerjen dääst.',
659 -'session_fail_preview' => "'''Dien Beoarbaidenge kuud nit spiekerd wäide, deer dien Sitsengsdoaten ferlädden geen sunt.
 659+'session_fail_preview' => "Dien Beoarbaidenge kuud nit spiekerd wäide, deer dien Sitsengsdoaten ferlädden geen sunt.
660660 Fersäik dät jädden fonnäien, deertruch dät du unner ju foulgjende Foarschau nochmoal ap \"Siede spiekerje\" klikst.
661 -Schuul dät Problem bestounden blieuwe, mäldje die ou un deerätter wier an.'''",
 661+Schuul dät Problem bestounden blieuwe, [[Special:UserLogout|mäldje die ou]] un deerätter wier an.'''",
662662 'session_fail_preview_html' => "'''Dien Beoarbaidenge kuud nit spiekerd wäide, deer dien Sitsengsdoaten ferlädden geen sunt.'''
663663
664664 ''Deer in {{SITENAME}} dät Spikerjen fon scheen HTML aktivierd is, wuude ju Foarschau uutblended uum JavaScript Angriepe tou ferhinnerjen.''
@@ -853,6 +853,8 @@
854854 'logdelete-failure' => "'''Logbouksichtboarkaid kon nit annerd wäide:'''
855855 $1",
856856 'revdel-restore' => 'Sichtboarhaid annerje',
 857+'revdel-restore-deleted' => 'läskede Versione',
 858+'revdel-restore-visible' => 'sichtboare Revisione',
857859 'pagehist' => 'Siedegeschichte',
858860 'deletedhist' => 'Läskede Versione',
859861 'revdelete-content' => 'Siedeninhoold',
@@ -888,6 +890,23 @@
889891 'suppressionlog' => 'Uursicht-Logbouk',
890892 'suppressionlogtext' => 'Dit is dät Logbouk fon do Uursicht-Aktione (Annerengen fon ju Sichtboarhaid fon Versione, Beorbaidengskommentare, Benutsernoomen un Benutserspeeren).',
891893
 894+# Revision move
 895+'moverevlogentry' => 'ferschäuw {{PLURAL:$3|een Version|$3 Versione}} fon $1 ätter $2',
 896+'revisionmove' => 'Moor Revisione fon "$1"',
 897+'revmove-explain' => 'Do foulgjende Versione wäide fon $1 tou ju anroate Sielsiede ferschäuwen. Fals ju Sielsiede nit bestoant, wäd ju moaked. Uurfals wäide disse Versione in ju Versionsgeschichte touhoopefierd.',
 898+'revmove-legend' => 'Sielsiede un Touhoopefpatenge fäästlääse',
 899+'revmove-submit' => 'Versione tou ju uutwäälde Siede ferschäuwen',
 900+'revisionmoveselectedversions' => 'Uutwäälde Versione ferschuuwe',
 901+'revmove-reasonfield' => 'Gruund:',
 902+'revmove-titlefield' => 'Sielsiede:',
 903+'revmove-badparam-title' => 'Falske Parameetere',
 904+'revmove-badparam' => 'Dien Anfroage änthaalt nit-ferlööwede of gebräkkelke Parameetere. Klik ap "tourääch" un fersäik dät nochmoal.',
 905+'revmove-norevisions-title' => 'Uunjäildige Sielversion',
 906+'revmove-norevisions' => 'Du hääst neen Sielversion ounroat, uum disse Aktion truchtoufieren of ju ounroate Version bestoant nit.',
 907+'revmove-nullmove-title' => 'Uungultigen Tittel',
 908+'revmove-nullmove' => 'Wälle- un Sielsiede sunt identisk. Klik ap "tourääch" un reek n uur Siedennoome as "$1" ien.',
 909+'revmove-success-existing' => '{{PLURAL:$1|Ne Version fon [[$2]] wuud|$1 Versione fon [[$2]] wuuden}} tou ju existierende Siede [[$3]] ferschäuwen.',
 910+
892911 # History merging
893912 'mergehistory' => 'Versionsgeschichten fereenigje',
894913 'mergehistory-header' => 'Mäd disse Spezialsiede koast du ju Versionsgeschichte fon ne Uursproangssiede mäd ju Versionsgeschichte fon ne Sielsiede fereenigje.
@@ -1796,6 +1815,7 @@
17971816 # Watchlist
17981817 'watchlist' => 'Beooboachtengslieste',
17991818 'mywatchlist' => 'Beooboachtengslieste',
 1819+'watchlistfor2' => 'Fon $1 $2',
18001820 'nowatchlist' => 'Du hääst neen Iendraage ap dien Beooboachtengslieste. Du moast anmälded weese, dät die een Beooboachtengslieste tou Ferföigenge stoant.',
18011821 'watchlistanontext' => 'Du moast die $1, uum dien Beooboachtengslieste tou sjoon of Iendraage ap hier tou beoarbaidjen.',
18021822 'watchnologin' => 'Du bäst nit anmälded',
Index: branches/resourceloader/phase3/languages/messages/MessagesSr_el.php
@@ -503,7 +503,7 @@
504504 'nstab-main' => 'Članak',
505505 'nstab-user' => 'Korisnik',
506506 'nstab-media' => 'Medij',
507 -'nstab-special' => 'Posebna',
 507+'nstab-special' => 'Posebno',
508508 'nstab-project' => 'Projekt',
509509 'nstab-image' => 'Slika',
510510 'nstab-mediawiki' => 'Poruka',
@@ -2045,7 +2045,7 @@
20462046 # Protect
20472047 'protectlogpage' => 'istorija zaključavanja',
20482048 'protectlogtext' => 'Ispod je spisak zaključavanja i otključavanja stranica.',
2049 -'protectedarticle' => 'je zaštitio „$1“',
 2049+'protectedarticle' => 'je {{GENDER:|zaštitio|zaštitila|zaštitio}} „$1“',
20502050 'modifiedarticleprotection' => 'je promenio nivo zaštite za „[[$1]]“',
20512051 'unprotectedarticle' => 'skinuo zaštitu sa $1',
20522052 'movedarticleprotection' => 'premestio podešavanja zaštite sa "[[$2]]" na "[[$1]]"',
Index: branches/resourceloader/phase3/languages/messages/MessagesArc.php
@@ -549,7 +549,7 @@
550550 'prefs-math' => 'ܡܬܡܐܛܝܩܘܬܐ',
551551 'datedefault' => 'ܠܐ ܓܒܝܬܐ',
552552 'prefs-datetime' => 'ܣܝܩܘܡܐ ܘܙܒܢܐ',
553 -'prefs-personal' => 'ܠܦܦܐ ܕܡܦܠܚܢܐ',
 553+'prefs-personal' => 'ܦܘܓܪܦܐ ܕܡܦܠܚܢܐ',
554554 'prefs-rc' => 'ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
555555 'prefs-watchlist' => 'ܪ̈ܗܝܬܐ',
556556 'prefs-watchlist-days' => 'ܝܘܡܬ̈ܐ ܠܚܙܝܐ ܒܪ̈ܗܝܬܐ:',
@@ -587,7 +587,7 @@
588588 'prefs-info' => 'ܝܕ̈ܥܬܐ ܪ̈ܫܝܬܐ',
589589 'prefs-i18n' => 'ܬܘܪܓܡܐ',
590590 'prefs-signature' => 'ܪܡܝ ܐܝܕܐ',
591 -'prefs-dateformat' => 'ܚܫܠܬܐ ܕܙܒܢܐ',
 591+'prefs-dateformat' => 'ܚܫܠܬܐ ܕܣܝܩܘܡܐ',
592592 'prefs-advancedediting' => 'ܓܒܝܬ̈ܐ ܡܬܩܕ̈ܡܢܐ',
593593 'prefs-advancedrc' => 'ܓܒܝܬ̈ܐ ܡܬܩܕ̈ܡܢܐ',
594594 'prefs-advancedrendering' => 'ܓܒܝܬ̈ܐ ܡܬܩܕ̈ܡܢܐ',
@@ -696,6 +696,7 @@
697697 'newpageletter' => 'ܚ',
698698 'boteditletter' => 'ܒ',
699699 'newsectionsummary' => '/* $1 */ ܡܢܬܐ ܚܕܬܐ',
 700+'rc-enhanced-expand' => 'ܚܘܝ ܐܪ̈ܝܟܬܐ (ܒܥܐ ܠܟ JavaScript)',
700701 'rc-enhanced-hide' => 'ܛܫܝ ܐܪ̈ܝܟܬܐ',
701702
702703 # Recent changes linked
@@ -725,10 +726,11 @@
726727 'upload_source_file' => ' (ܠܦܦܐ ܥܠ ܚܫܘܒܬܐ ܕܝܠܟ)',
727728
728729 # Special:ListFiles
729 -'imgfile' => 'ܠܦܦܐ',
730 -'listfiles_date' => 'ܣܝܩܘܡܐ',
731 -'listfiles_name' => 'ܫܡܐ',
732 -'listfiles_user' => 'ܡܦܠܚܢܐ',
 730+'imgfile' => 'ܠܦܦܐ',
 731+'listfiles_date' => 'ܣܝܩܘܡܐ',
 732+'listfiles_name' => 'ܫܡܐ',
 733+'listfiles_user' => 'ܡܦܠܚܢܐ',
 734+'listfiles_count' => 'ܨܚܚ̈ܐ',
733735
734736 # File description page
735737 'file-anchor-link' => 'ܠܦܦܐ',
@@ -821,7 +823,7 @@
822824 'protectedpages' => 'ܦܐܬܬ̈ܐ ܢܛܝܪ̈ܬܐ',
823825 'listusers' => 'ܒܪܒܝܢ ܕܗܕ̈ܡܐ',
824826 'listusers-editsonly' => 'ܚܘܝ ܡܦܠܚܢ̈ܐ ܥܡ ܫܘܚܠܦ̈ܐ ܒܠܚܘܕ',
825 -'listusers-creationsort' => 'ܛܟܣ ܒܣܝܩܘܡܐ ܕܒܪܝܐ',
 827+'listusers-creationsort' => 'ܛܟܣ ܐܝܟ ܣܝܩܘܡܐ ܕܒܪܝܐ',
826828 'usereditcount' => '$1 {{PLURAL:$1|ܫܘܚܠܦܐ|ܫܘܚܠܦ̈ܐ}}',
827829 'usercreated' => 'ܒܪܐ ܒܣܝܩܘܡ $1 ܫܥܬܐ $2',
828830 'newpages' => 'ܦܐܬܬ̈ܐ ܚܕ̈ܬܬܐ',
@@ -1214,6 +1216,8 @@
12151217
12161218 'exif-customrendered-0' => 'ܥܡܠܝܬܐ ܟܝܢܝܬܐ',
12171219
 1220+'exif-gaincontrol-0' => 'ܠܐ ܡܕܡ',
 1221+
12181222 'exif-contrast-0' => 'ܟܝܢܝܐ',
12191223 'exif-contrast-1' => 'ܪܟܝܟܐ',
12201224 'exif-contrast-2' => 'ܩܫܝܐ',
Index: branches/resourceloader/phase3/languages/messages/MessagesPms.php
@@ -1502,8 +1502,8 @@
15031503 'upload-misc-error' => "Eror nen identificà antramentr ch'as cariava",
15041504 'upload-misc-error-text' => "A l'é staie n'eror nen identificà dëmentrè ch'as cariava chèich-còs.
15051505 Për piasì, ch'a varda che soa anliura a sia bon-a e che a l'arsponda e peuj ch'a preuva torna.
1506 -Se a-i riva sossì n'àotra vira, ch'as buta an comunicassion con n'[[Special:ListUsers/sysop|aministrador]].",
1507 -'upload-too-many-redirects' => "L'URT a l'avìa tròpe rediression",
 1506+Se a-i riva sossì n'àotra vira, ch'as buta an comunicassion con n'[[Special:ListUsers/sysop|aministrator]].",
 1507+'upload-too-many-redirects' => "L'adrëssa dl'aragnà a l'avìa tròpe ridiression",
15081508 'upload-unknown-size' => 'Dimension pa conossùa',
15091509 'upload-http-error' => "A l'é stàit-ie n'eror HTTP: $1.",
15101510
Index: branches/resourceloader/phase3/languages/messages/MessagesWa.php
@@ -282,6 +282,8 @@
283283 'youhavenewmessagesmulti' => 'Vos avoz des noveas messaedjes so $1',
284284 'editsection' => 'candjî',
285285 'editold' => 'candjî',
 286+'editlink' => 'candjî',
 287+'viewsourcelink' => 'Vey côde sourdant',
286288 'editsectionhint' => "Candjî l' seccion: $1",
287289 'toc' => 'Ådvins',
288290 'showtoc' => 'mostrer',
@@ -749,7 +751,7 @@
750752 'diff' => 'dif.',
751753 'hist' => 'ist.',
752754 'hide' => 'Muchyî',
753 -'show' => 'håy.',
 755+'show' => 'håyner',
754756 'number_of_watching_users_pageview' => '[shuvou pa $1 {{PLURAL:$1|uzeu|uzeus}}]',
755757 'rc_categories' => 'Limiter åzès categoreyes (separer avou des «|»)',
756758 'rc_categories_any' => 'Totes',
@@ -829,8 +831,10 @@
830832 'filehist-help' => "Clitchîz so ene date ey ene eure po vey kimint ki l' fitchî esteut adon.",
831833 'filehist-deleteall' => 'disfacer ttafwait',
832834 'filehist-deleteone' => 'disfacer çouci',
 835+'filehist-current' => 'asteure',
833836 'filehist-datetime' => 'Date/Eure',
834837 'filehist-user' => 'Uzeu',
 838+'filehist-dimensions' => 'Grandeur',
835839 'filehist-filesize' => 'Grandeur do fitchî',
836840 'filehist-comment' => 'Comintaire',
837841 'imagelinks' => 'Loyéns viè ciste imådje cial',
@@ -925,6 +929,8 @@
926930 'movethispage' => 'Displaecî cisse pådje',
927931 'unusedimagestext' => "Notez tot l' minme ki d' ôtès waibes polèt aveur des loyéns viè ces imådjes la gråcès a ene direke hårdêye. Do côp, ces imådjes aparexhèt chal, mågré k' ele soeyexhe eployeyes.",
928932 'unusedcategoriestext' => "Les pådjes di categoreye shuvantes egzistént, mins i n' a nol årtike ni categoreye å dvins.",
 933+'pager-newer-n' => '{{PLURAL:$1|pus novea 1|pus noveas $1}}',
 934+'pager-older-n' => '{{PLURAL:$1|pus vî 1|pus vîs $1}}',
929935
930936 # Book sources
931937 'booksources' => 'Sourdants po les lives',
@@ -1411,11 +1417,12 @@
14121418 'nextdiff' => 'Diferinces des candjmints shuvants →',
14131419
14141420 # Media information
1415 -'mediawarning' => "'''Asteme''': Ci fitchî chal pôreut esse evirussé, si vos l' enondez vos pôrîz infecter l' sistinme da vosse.",
1416 -'imagemaxsize' => "Limite pol håynaedje ezès pådjes d' imådje:",
1417 -'thumbsize' => 'Grandeu po les imådjetes (thumb):',
1418 -'file-info-size' => '($1 × $2 picsels, groxheur do fitchî: $3, del sôre "MIME": $4)',
1419 -'show-big-image' => 'Pus grande imådje',
 1421+'mediawarning' => "'''Asteme''': Ci fitchî chal pôreut esse evirussé, si vos l' enondez vos pôrîz infecter l' sistinme da vosse.",
 1422+'imagemaxsize' => "Limite pol håynaedje ezès pådjes d' imådje:",
 1423+'thumbsize' => 'Grandeu po les imådjetes (thumb):',
 1424+'file-info-size' => '($1 × $2 picsels, groxheur do fitchî: $3, del sôre "MIME": $4)',
 1425+'show-big-image' => 'Pus grande imådje',
 1426+'show-big-image-thumb' => '<small>Grandeur di ci prevoeyaedje ci : $1 × $2 picsels</small>',
14201427
14211428 # Special:NewFiles
14221429 'newimages' => 'Galreye des nouvès imådjes',
Index: branches/resourceloader/phase3/languages/messages/MessagesDe.php
@@ -352,7 +352,7 @@
353353 'tog-justify' => 'Text als Blocksatz',
354354 'tog-hideminor' => 'Kleine Änderungen ausblenden',
355355 'tog-hidepatrolled' => 'Kontrollierte Änderungen in den „Letzten Änderungen“ ausblenden',
356 -'tog-newpageshidepatrolled' => 'Kontrollierte Seiten auf der Liste „Neue Seiten“ verbergen',
 356+'tog-newpageshidepatrolled' => 'Kontrollierte Seiten in den „Neuen Seiten“ ausblenden',
357357 'tog-extendwatchlist' => 'Erweiterte Beobachtungsliste zur Anzeige aller Änderungen',
358358 'tog-usenewrc' => 'Erweiterte Darstellung der „Letzten Änderungen“ (benötigt JavaScript)',
359359 'tog-numberheadings' => 'Überschriften automatisch nummerieren',
Index: branches/resourceloader/phase3/languages/messages/MessagesLg.php
@@ -308,20 +308,21 @@
309309 Ebifa ku kugyibwawo kw'olupapula luno bye bino:",
310310
311311 # History pages
312 -'viewpagelogs' => "Kebera likooda ez'olupapula luno",
313 -'currentrev' => 'Ebiriwo kaakano',
314 -'currentrev-asof' => "Oluwandika lw'olupapula luno olusinga obupya, okuva nga $1",
315 -'revisionasof' => "Enfaanana y'olupapula luno ku saawa $1",
316 -'previousrevision' => '←Laba ebyasookawo bino',
317 -'nextrevision' => 'Oluwandika oluddako→',
318 -'currentrevisionlink' => 'Oluwandika oluliwo kakati',
319 -'cur' => 'ebiriwo',
320 -'last' => 'ebyasookawo bino',
321 -'histlegend' => "'''Ebyokugerageranizibwa:''' nyiga obutonnyeze ku likooda zoyagala okugerageranya olyoke onyige eppeesa erya 'Enter'<br />
 312+'viewpagelogs' => "Kebera likooda ez'olupapula luno",
 313+'currentrev' => 'Ebiriwo kaakano',
 314+'currentrev-asof' => "Oluwandika lw'olupapula luno olusinga obupya, okuva nga $1",
 315+'revisionasof' => "Enfaanana y'olupapula luno ku saawa $1",
 316+'previousrevision' => '←Laba ebyasookawo bino',
 317+'nextrevision' => 'Oluwandika oluddako→',
 318+'currentrevisionlink' => 'Oluwandika oluliwo kakati',
 319+'cur' => 'ebiriwo',
 320+'last' => 'ebyasookawo bino',
 321+'histlegend' => "'''Ebyokugerageranizibwa:''' nyiga obutonnyeze ku likooda zoyagala okugerageranya olyoke onyige eppeesa erya 'Enter'<br />
322322 oba ku gano agali ku lupapula luno.<br />
323323 '''Ebigambo:''' (erw) = enjawulo ku ebiriwo, (eku) = enjawulo ku egikulembera, N = enkyukakyuka entono.",
324 -'histfirst' => "Tandikira ku bisinga okuba eby'edda",
325 -'histlast' => 'Tandikira ku bisinga obupya',
 324+'history-fieldset-title' => 'Mu nnanda nonamu ebyakolebwa:',
 325+'histfirst' => "Tandikira ku bisinga okuba eby'edda",
 326+'histlast' => 'Tandikira ku bisinga obupya',
326327
327328 # Revision deletion
328329 'rev-delundel' => 'laga/kisa',
@@ -390,25 +391,27 @@
391392 'action-edit' => 'olupapula luno okulukolamu nkyukakyuka',
392393
393394 # Recent changes
394 -'nchanges' => '{{PLURAL:$1|Olukyukakyuka|Nkyukakyuka}} $1',
395 -'recentchanges' => 'Ebyakakyusibwa',
396 -'recentchangestext' => "Goberera enkyuukakyuuka empya ez'oku muko guno",
397 -'rcnote' => "Wano olaba {{PLURAL:$1|olukyukakyuka '''1''' olukoledwawo|enkyukakyuka '''$1''' ezikoledwawo}} mu {{PLURAL:$2|lunaku olwakayita|naku '''$2''' ezaakayita}}. Bino byategeerese ku ssaawa $5 nga $4.",
398 -'rclistfrom' => 'Laga enkyukakyuka empya ezikoledwa okuva $1',
399 -'rcshowhideminor' => 'Enkyukakyuka ntono $1',
400 -'rcshowhidebots' => '$1 ebya bboti',
401 -'rcshowhideliu' => '$1 ebya bamemba abali ku wiki ku saawa eno',
402 -'rcshowhideanons' => "$1 eby'abakola ng'abatamanyise",
403 -'rcshowhidemine' => '$1 nze byenkoze',
404 -'rclinks' => 'Ndaga enkyukakyuka $1 ezikoledwa mu nnaku $2 ezaakayita<br />$3',
405 -'diff' => 'enjawulo',
406 -'hist' => 'ennanda',
407 -'hide' => 'Kisa',
408 -'show' => 'Laga',
409 -'minoreditletter' => 'n',
410 -'newpageletter' => 'Lupya!',
411 -'rc-enhanced-expand' => 'Birage mu bujjuvu (kino kyetaagisa JavaScript)',
412 -'rc-enhanced-hide' => 'Birage mu bumpi',
 395+'nchanges' => '{{PLURAL:$1|Olukyukakyuka|Nkyukakyuka}} $1',
 396+'recentchanges' => 'Ebyakakyusibwa',
 397+'recentchanges-legend' => "Awategekerwa endaga y'ebyakakyusibwa",
 398+'recentchangestext' => "Goberera enkyuukakyuuka empya ez'oku muko guno",
 399+'rcnote' => "Wano olaba {{PLURAL:$1|olukyukakyuka '''1''' olukoledwawo|enkyukakyuka '''$1''' ezikoledwawo}} mu {{PLURAL:$2|lunaku olwakayita|naku '''$2''' ezaakayita}}. Bino byategeerese ku ssaawa $5 nga $4.",
 400+'rclistfrom' => 'Laga enkyukakyuka empya ezikoledwa okuva $1',
 401+'rcshowhideminor' => '$1 nkyukakyuka ntono',
 402+'rcshowhidebots' => '$1 ebya bboti',
 403+'rcshowhideliu' => '$1 ebya bamemba abali ku wiki ku saawa eno',
 404+'rcshowhideanons' => "$1 eby'abakola ng'abatamanyise",
 405+'rcshowhidemine' => '$1 nze byenkoze',
 406+'rclinks' => 'Ndaga enkyukakyuka $1 ezikoledwa mu nnaku $2 ezaakayita<br />$3',
 407+'diff' => 'enjawulo',
 408+'hist' => 'ennanda',
 409+'hide' => 'Kisa',
 410+'show' => 'Laga',
 411+'minoreditletter' => 'n',
 412+'newpageletter' => 'Lupya!',
 413+'boteditletter' => 'b',
 414+'rc-enhanced-expand' => 'Birage mu bujjuvu (kino kyetaagisa JavaScript)',
 415+'rc-enhanced-hide' => 'Birage mu bumpi',
413416
414417 # Recent changes linked
415418 'recentchangeslinked' => 'Ebikyusiddwa ebyekuusa ku lupapula luno',
@@ -418,6 +421,7 @@
419422 'recentchangeslinked-noresult' => 'Empapula eziriko enyunzi tewali lukyuse mu kiseera kino.',
420423 'recentchangeslinked-summary' => "Olulpapula olw'enjawulo luno luliko olukalala lw'ebikyuse ku mpapula eziriko enyunzi ezigguka ku lw'obadde otunuulira. Ebiwandikidwa mu '''nukuta enziggumivu''' biri ku [[Special:Watchlist|mpapula z'ogoberera]].",
421424 'recentchangeslinked-page' => 'Lupapula:',
 425+'recentchangeslinked-to' => "Nonamu eby'empapula ezikuggusa ku luno zokka",
422426
423427 # Upload
424428 'upload' => 'Teekayo fayiro',
@@ -500,6 +504,7 @@
501505 'watchthispage' => 'Goberera olupapula luno',
502506 'unwatch' => 'Lekerawo okugoberera olupapula luno',
503507 'watchlist-details' => "Olina {{PLURAL:$1|olupapula $1|empapula $1}} z'ogoberera, nga tobalideko n'eza yogera-nange.",
 508+'watchlist-options' => "Enteetakeeka y'endaga ya mpapula zengoberera",
504509
505510 # Displayed when you click the "watch" button and it is in the process of watching
506511 'watching' => 'Kikolebwako...',
@@ -518,6 +523,7 @@
519524 'rollbackfailed' => 'Okujjulula tekusobose',
520525
521526 # Protect
 527+'protectlogpage' => "Olukalala lw'ebifa ku mpapula ezisibidwa",
522528 'protectedarticle' => 'olupapula "[[$1]]" lusibidwa',
523529 'protect-expiry-options' => 'saawa 2:2 hours,lunaku 1:1 day,nnaku 3:3 days,sande 1:1 week,sande 2:2 weeks,mwezi 1:1 month,myezi 3:3 months,myezi 6:6 months,mwaka 1:1 year,okutali kkomo:infinite',
524530
@@ -531,6 +537,7 @@
532538
533539 # Namespace form on various pages
534540 'namespace' => 'Kuŋaanyizo:',
 541+'invert' => 'Kola ku byonna ebitali ekyo ekirondedwa',
535542 'blanknamespace' => '(Kuŋaanyizo lya byonna)',
536543
537544 # Contributions
@@ -549,17 +556,19 @@
550557 'sp-contributions-submit' => 'Noonya',
551558
552559 # What links here
553 -'whatlinkshere' => 'Empapula ezikuggusa ku luno',
554 -'whatlinkshere-title' => 'Empapula eziriko enyunzi ezigguka ku $1',
555 -'whatlinkshere-page' => 'Lupapula:',
556 -'linkshere' => "Zino z'empapula eziriko enyunzi ezigguka ku '''[[:$1]]''':",
557 -'nolinkshere' => "Tewali mpapula eziriko enyunzi ezigguka ku '''[[:$1]]'''.",
558 -'isimage' => 'lukozesa ekifaananyi kino',
559 -'whatlinkshere-prev' => '{{PLURAL:$1|olukulembera|$1 ezikulembera}}',
560 -'whatlinkshere-next' => '{{PLURAL:$1|oluddako|$1 eziddako}}',
561 -'whatlinkshere-links' => '← Empapula eziriko enyunzi ezigguka ku luno',
562 -'whatlinkshere-hidelinks' => '$1 nyunzi',
563 -'whatlinkshere-filters' => 'Ensunsula',
 560+'whatlinkshere' => 'Empapula ezikuggusa ku luno',
 561+'whatlinkshere-title' => 'Empapula eziriko enyunzi ezigguka ku $1',
 562+'whatlinkshere-page' => 'Lupapula:',
 563+'linkshere' => "Zino z'empapula eziriko enyunzi ezigguka ku '''[[:$1]]''':",
 564+'nolinkshere' => "Tewali mpapula eziriko enyunzi ezigguka ku '''[[:$1]]'''.",
 565+'isredirect' => 'lupapula olukutwalabutwazi ku lunnaalwo',
 566+'isimage' => 'lukozesa ekifaananyi kino',
 567+'whatlinkshere-prev' => '{{PLURAL:$1|olukulembera|$1 ezikulembera}}',
 568+'whatlinkshere-next' => '{{PLURAL:$1|oluddako|$1 eziddako}}',
 569+'whatlinkshere-links' => '← Empapula eziriko enyunzi ezigguka ku luno',
 570+'whatlinkshere-hideredirs' => '$1 mpapula ezikutwalabutwazi ku zinnaazo',
 571+'whatlinkshere-hidelinks' => '$1 nyunzi',
 572+'whatlinkshere-filters' => 'Ensunsula',
564573
565574 # Block/unblock
566575 'blockip' => 'Gaana memba okuwandiika',
Index: branches/resourceloader/phase3/languages/messages/MessagesTt_cyrl.php
@@ -620,7 +620,7 @@
621621 'emailnotauthenticated' => 'Электрон почта адресыгыз әле дәлилләнмәгән, шуңа викиның электрон почта белән эшләү гамәлләре сүндерелде.',
622622 'noemailprefs' => 'Электрон почта адресыгыз күрсәтелмәгән, шуңа викиның электрон почта белән эшләү гамәлләре сүндерелгән.',
623623 'emailconfirmlink' => 'Электрон почта адресыгызны дәлилләгез.',
624 -'invalidemailaddress' => 'Элктрон почта адресы кабул ителә алмый, чөнки ул дөрес форматка туры килми. Зинһар, дөрес адрес кертегез яки юлны буш калдырыгыз.',
 624+'invalidemailaddress' => 'Электрон почта адресы кабул ителә алмый, чөнки ул дөрес форматка туры килми. Зинһар, дөрес адрес кертегез яки юлны буш калдырыгыз.',
625625 'accountcreated' => 'Хисап язмасы төзелде',
626626 'accountcreatedtext' => '$1 исемле кулланучы өчен хисап язмасы төзелде.',
627627 'createaccount-title' => '{{SITENAME}}: теркәлү',
@@ -633,8 +633,13 @@
634634 'loginlanguagelabel' => 'Тел: $1',
635635
636636 # JavaScript password checks
637 -'password-strength-bad' => 'НАЧАР',
638 -'password-strength-good' => 'яхшы',
 637+'password-strength' => 'Серсүзнең сыйфатын тикшерү: $1',
 638+'password-strength-bad' => 'НАЧАР',
 639+'password-strength-mediocre' => 'уртача',
 640+'password-strength-acceptable' => 'канәгатьләнерлек',
 641+'password-strength-good' => 'яхшы',
 642+'password-retype' => 'Серсүзне яңадан кертегез',
 643+'password-retype-mismatch' => 'Серсүзләр туры килми',
639644
640645 # Password reset dialog
641646 'resetpass' => 'Серсүзне үзгәртү',
@@ -855,6 +860,7 @@
856861 'post-expand-template-argument-category' => 'Төшереп калдырылган үрнәк аргументлы битләр',
857862 'parser-template-loop-warning' => 'Үрнәкләрдә йомык сылтама табылды: [[$1]]',
858863 'parser-template-recursion-depth-warning' => '($1) үрнәген рекурсия итеп куллану чиге рөхсәт ителгәннән артып киткән',
 864+'language-converter-depth-warning' => 'Телләрне үзгәртүләре артык югарыга киткән',
859865
860866 # "Undo" feature
861867 'undo-success' => 'Үзгәртүдән баш тартып була.
@@ -904,6 +910,7 @@
905911 'rev-deleted-comment' => '(фикер сыздырылган)',
906912 'rev-deleted-user' => '(автор исеме сыздырылган)',
907913 'rev-deleted-event' => '(язма бетерелгән)',
 914+'rev-deleted-user-contribs' => '[кулланучының исеме яки IP-юлламасы бетерелгән — үзгәртү кертем битеннән яшерелгән]',
908915 'rev-deleted-text-permission' => "Битнең бу версиясе '''сыздырылган'''.
909916 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Сыздырулар журналында] аңлатмалар калдырылган булырга мөмкин.",
910917 'rev-deleted-text-unhide' => "Битнең бу версиясе '''сыздырылган'''.
@@ -932,6 +939,8 @@
933940 'revdelete-show-file-submit' => 'Әйе',
934941 'revdelete-legend' => 'Чикләүләр урнаштыр:',
935942 'revdelete-hide-text' => 'Битнең бу версиясе текстын яшер',
 943+'revdelete-hide-image' => 'Файл эчендәгеләрне качыр',
 944+'revdelete-radio-same' => '(үзгәртмәскә)',
936945 'revdelete-radio-set' => 'Әйе',
937946 'revdelete-radio-unset' => 'Юк',
938947 'revdel-restore' => 'күренүчәнлекне үзгәртергә',
@@ -945,7 +954,8 @@
946955 'revdelete-edit-reasonlist' => 'Сәбәпләр исемлеген үзгәртү',
947956
948957 # Revision move
949 -'revmove-reasonfield' => 'Сәбәп:',
 958+'revmove-reasonfield' => 'Сәбәп:',
 959+'revmove-badparam-title' => 'Яраксыз параметрлар',
950960
951961 # History merging
952962 'mergehistory-from' => 'Чыганак:',
@@ -986,6 +996,7 @@
987997 'searchprofile-project-tooltip' => '$1 дә эзләү',
988998 'searchprofile-images-tooltip' => 'Файллар эзләү',
989999 'searchprofile-everything-tooltip' => 'Барлык битләрдә дә эзләү',
 1000+'searchprofile-advanced-tooltip' => 'Бирелгән исемнәр мәйданында эзләү',
9901001 'search-result-size' => '$1 ({{PLURAL:$2|$2 сүз}})',
9911002 'search-result-score' => 'Релевантлыгы: $1 %',
9921003 'search-redirect' => '(юнәлтү $1)',
@@ -1018,8 +1029,12 @@
10191030 'search-external' => 'Тышкы эзләү',
10201031
10211032 # Quickbar
1022 -'qbsettings' => 'Күчешләр аслыгы',
1023 -'qbsettings-none' => 'Күрсәтмәскә',
 1033+'qbsettings' => 'Күчешләр аслыгы',
 1034+'qbsettings-none' => 'Күрсәтмәскә',
 1035+'qbsettings-fixedleft' => 'Сулда күчерелмәс',
 1036+'qbsettings-fixedright' => 'Уңда күчерелмәс',
 1037+'qbsettings-floatingleft' => 'Сулда йөзмә',
 1038+'qbsettings-floatingright' => 'Уңда йөзмә',
10241039
10251040 # Preferences page
10261041 'preferences' => 'Көйләнмәләр',
@@ -1031,13 +1046,16 @@
10321047 'prefs-skin' => 'Күренеш',
10331048 'skin-preview' => 'Алдан карау',
10341049 'prefs-math' => 'Формулалар',
 1050+'datedefault' => 'Баштагы көйләнмәләр',
10351051 'prefs-datetime' => 'Дата һәм вакыт',
10361052 'prefs-personal' => 'Шәхси мәгълүматлар',
10371053 'prefs-rc' => 'Соңгы үзгәртүләр',
10381054 'prefs-watchlist' => 'Күзәтү исемлеге',
10391055 'prefs-watchlist-days' => 'Күзәтү исемлегендә ничә көн буена үзгәртүләрне күрсәтергә:',
 1056+'prefs-watchlist-days-max' => '7 көннән артык түгел',
10401057 'prefs-watchlist-edits' => 'Киңәйтелгән күзәтү исемлегендә үзгәртүләрнең иң югары исәбе:',
10411058 'prefs-watchlist-edits-max' => 'Максимум сан: 1000',
 1059+'prefs-watchlist-token' => 'Күзәтү исемлеге токены:',
10421060 'prefs-misc' => 'Башка көйләнмәләр',
10431061 'prefs-resetpass' => 'Серсүзне үзгәртү',
10441062 'prefs-email' => 'E-mail көйләүләре',
@@ -1058,7 +1076,10 @@
10591077 'timezonelegend' => 'Сәгать поясы:',
10601078 'localtime' => 'Җирле вакыт',
10611079 'timezoneuseserverdefault' => 'Сервернең көйләнмәләрен кулланырга',
 1080+'timezoneuseoffset' => 'Башка (күчерелүне күрсәтегез)',
 1081+'timezoneoffset' => 'Күчерелү¹:',
10621082 'servertime' => 'Серверның вакыты:',
 1083+'guesstimezone' => 'Браузердан тутыру',
10631084 'timezoneregion-africa' => 'Африка',
10641085 'timezoneregion-america' => 'Америка',
10651086 'timezoneregion-antarctica' => 'Антарктика',
@@ -1067,7 +1088,7 @@
10681089 'timezoneregion-atlantic' => 'Атлантик океан',
10691090 'timezoneregion-australia' => 'Австралия',
10701091 'timezoneregion-europe' => 'Аурупа',
1071 -'timezoneregion-indian' => 'Һиндстан океаны',
 1092+'timezoneregion-indian' => 'Һинд океаны',
10721093 'timezoneregion-pacific' => 'Тын океан',
10731094 'allowemail' => 'Башка кулланучылардан хатлар алырга рөхсәт итү',
10741095 'prefs-searchoptions' => 'Эзләү көйләнмәләре',
@@ -1135,6 +1156,10 @@
11361157 *Әгәр дә кулланучы исеме янда тамга тормаса, димәк бу кулланучы бирелгән төркемнең әгъзасы түгел.
11371158 *"*" тамгасы торса сез бу кулланучыны бу төркемнән бетерә алмыйсыз.',
11381159 'userrights-reason' => 'Сәбәп:',
 1160+'userrights-no-interwiki' => 'Сезнең башка викиларда кулланучыларның хокукларын үзгәртергә хокукларыгыз юк.',
 1161+'userrights-nodatabase' => 'Бирелгән $1 базасы юк яисә локаль булып тормый.',
 1162+'userrights-changeable-col' => 'Сезнең тарафтан үзгәртә ала торган төркемнәр',
 1163+'userrights-unchangeable-col' => 'Сезнең тарафтан үзгәртә алмый торган төркемнәр',
11391164 'userrights-irreversible-marker' => '$1*',
11401165
11411166 # Groups
@@ -1164,6 +1189,9 @@
11651190 # Rights
11661191 'right-read' => 'сәхифәләрне карау',
11671192 'right-edit' => 'сәхифәләрне төзәтү',
 1193+'right-createpage' => 'битләр ясау (бәхәс булмаганнарын)',
 1194+'right-createtalk' => 'бәхәс битен ясау',
 1195+'right-createaccount' => 'яңа кулланучы битен ясау',
11681196 'right-move' => 'сәхифәләрне күчерү',
11691197 'right-movefile' => 'файлларның исемен алмаштыру',
11701198 'right-upload' => 'файлларны йөкләү',
@@ -1191,6 +1219,7 @@
11921220 'recentchanges-legend-newpage' => '$1 — яңа бит',
11931221 'recentchanges-label-newpage' => 'Бу үзгәртү белән яңа бит төзелде',
11941222 'recentchanges-legend-minor' => '$1 — кече үзгәртү',
 1223+'recentchanges-label-minor' => 'Бу кече үзгәртү',
11951224 'recentchanges-legend-bot' => '$1 — ботның үзгәртүе',
11961225 'rcnote' => 'Аста $4 $5 вакытынна соңгы {{PLURAL:$2|1|$2}} көн эчендә булган соңгы {{PLURAL:$1|1|$1}} үзгәртмә күрсәтелә:',
11971226 'rcnotefrom' => "Астарак '''$2''' башлап ('''$1''' кадәр) үзгәртүләр күрсәтелгән.",
@@ -1210,6 +1239,7 @@
12111240 'newpageletter' => 'Я',
12121241 'boteditletter' => 'б',
12131242 'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|күзәтеп тора кулланучы}}]',
 1243+'rc_categories' => 'Төркемнәрдә генә тора («|» бүлүче)',
12141244 'rc_categories_any' => 'Һәрбер',
12151245 'newsectionsummary' => '/* $1 */ яңа бүлек',
12161246 'rc-enhanced-expand' => 'Ваклыкларны күрсәтү (JavaScript кирәк)',
@@ -1327,7 +1357,8 @@
13281358 # File description page
13291359 'file-anchor-link' => 'Файл',
13301360 'filehist' => 'Файлның тарихы',
1331 -'filehist-help' => 'Датага/сәгатькә басыгыз, шул вакытта бит нинди булды дип карау өчен.',
 1361+'filehist-help' => 'Датага/сәгатькә, шул вакытта битнең нинди булганлыгын күрү өчен басыгыз.',
 1362+'filehist-deleteall' => 'Барысын да юк ит',
13321363 'filehist-deleteone' => 'бетерү',
13331364 'filehist-revert' => 'кайтарырга',
13341365 'filehist-current' => 'хәзерге',
@@ -1421,6 +1452,7 @@
14221453 'uncategorizedtemplates' => 'Төркемләнмәгән үрнәкләр',
14231454 'unusedcategories' => 'Кулланмаган төркемнәр',
14241455 'unusedimages' => 'Кулланмаган сүрәтләр',
 1456+'popularpages' => 'Популяр битләр',
14251457 'wantedcategories' => 'Зарур төркемнәр',
14261458 'wantedpages' => 'Зарур битләр',
14271459 'mostlinked' => 'Күп үзенә сылтамалы битләр',
@@ -1885,8 +1917,30 @@
18861918 # Attribution
18871919 'creditspage' => 'Рәхмәтләр',
18881920
 1921+# Skin names
 1922+'skinname-standard' => 'Классик',
 1923+'skinname-nostalgia' => 'Искә алу',
 1924+'skinname-cologneblue' => 'Зәңгәр сагыш',
 1925+'skinname-monobook' => 'Китап',
 1926+'skinname-myskin' => 'Үзем',
 1927+'skinname-chick' => 'Чеби',
 1928+'skinname-simple' => 'Гади',
 1929+'skinname-modern' => 'Замана',
 1930+'skinname-vector' => 'Сызымлы',
 1931+
 1932+# Math options
 1933+'mw_math_png' => 'Һәрвакыт PNG белән бәйләү',
 1934+'mw_math_simple' => 'Гади очракларда HTML, яисә PNG кулланырга',
 1935+'mw_math_html' => 'Мөмкин булса HTML, яисә PNG кулланырга',
 1936+'mw_math_source' => 'ТеХ билгеләнешендә калдырырга (текстлы браузерлар өчен)',
 1937+'mw_math_modern' => 'Бүгенге браузерлар өчен кулланырга',
 1938+'mw_math_mathml' => 'Мөмкин булса MathML кулланырга',
 1939+
18891940 # Math errors
1890 -'math_unknown_error' => 'беленмәгән хата',
 1941+'math_unknown_error' => 'беленмәгән хата',
 1942+'math_unknown_function' => 'билгесез функция',
 1943+'math_lexing_error' => 'лексик хата',
 1944+'math_syntax_error' => 'синтаксик хата',
18911945
18921946 # Patrolling
18931947 'markaspatrolledtext' => 'Бу мәкаләне тикшерелгән дип тамгаларга',
@@ -1902,6 +1956,11 @@
19031957 'nextdiff' => 'Чираттагы үзгәртү →',
19041958
19051959 # Media information
 1960+'imagemaxsize' => "Рәсемнең зурлыгына чикләүләр:<br />''(тасвирлау бите өчен)''",
 1961+'thumbsize' => 'Рәсемнең кечерәйтелгән юрамасы өчен:',
 1962+'widthheight' => '$1 × $2',
 1963+'widthheightpage' => '$1 × $2, $3{{PLURAL:$1|бит|битләр}}',
 1964+'file-info' => '(файл зурлыгы: $1, MIME-тип: $2)',
19061965 'file-info-size' => '($1 × $2 нокта, файлның зурлыгы: $3, MIME тибы: $4)',
19071966 'file-nohires' => '<small>Югары ачыклык белән юрама юк.</small>',
19081967 'svg-long-desc' => '(SVG файлы, шартлы $1 × $2 нокта, файлның зурлыгы: $3)',
Index: branches/resourceloader/phase3/languages/messages/MessagesNso.php
@@ -46,7 +46,7 @@
4747 'tog-underline' => 'Tsenya mothalafase go dihlomaganyo:',
4848 'tog-highlightbroken' => 'Laetša dihlomaganyo tša go senyega <a href="" class="new">ga mokgwa wo</a> (goba: ka mokgwa wo<a href="" class="internal">?</a>).',
4949 'tog-hideminor' => 'Fihla diphetogo tše nnyenyane',
50 -'tog-showtoolbar' => "Botšha ''toolbar'' ya go fetola (JavaScript)",
 50+'tog-showtoolbar' => "Bontšha ''toolbar'' yago fetola (JavaScript)",
5151 'tog-editondblclick' => 'Fetola matlakala ka go thathapa gabedi (JavaScript)',
5252 'tog-editsection' => 'Dumella go fetola sekgao ka [fetola] hlomaganyo',
5353 'tog-editsectiononrightclick' => 'Dumella go fetola sekgao ka thathapa ka lagoja thaetlele ya sekgao (JavaScript)',
@@ -623,7 +623,7 @@
624624 'rcshowhideanons' => '$1 bašumiši bago se tsebege',
625625 'rcshowhidepatr' => "$1 diphetogo tše ''patrolled''",
626626 'rcshowhidemine' => '$1 diphetogo tsa ka',
627 -'rclinks' => 'Botšha diphetogo tša bofelo tše $1 matšatšing a $2 a bofelo <br />$3',
 627+'rclinks' => 'Bontšha diphetogo tša bofelo tše $1 matšatšing a $2 a bofelo <br />$3',
628628 'diff' => 'phapang',
629629 'hist' => 'histori',
630630 'hide' => 'Fihla',
@@ -804,7 +804,7 @@
805805 'linksearch-ok' => 'Fetleka',
806806
807807 # Special:ListUsers
808 -'listusers-submit' => 'Botšha',
 808+'listusers-submit' => 'Bontšha',
809809
810810 # Special:Log/newusers
811811 'newuserlogpage' => '"Log" yago hlola mošumiši',
@@ -1083,7 +1083,7 @@
10841084 'tooltip-ca-nstab-user' => 'Lebelela letlakala la mošomiši',
10851085 'tooltip-ca-nstab-special' => 'Letlakala le le "special", gago kgonege go le fetola',
10861086 'tooltip-ca-nstab-project' => 'Lebelela letlakala la tirotherwa',
1087 -'tooltip-ca-nstab-image' => 'Botšha letlakala',
 1087+'tooltip-ca-nstab-image' => 'Lebelela letlakala',
10881088 'tooltip-ca-nstab-template' => "Lebelela ''template''",
10891089 'tooltip-ca-nstab-help' => 'Lebelea matlakala a thušo',
10901090 'tooltip-ca-nstab-category' => 'Lebelela letlakala la sehlopha',
Index: branches/resourceloader/phase3/languages/messages/MessagesQqq.php
@@ -3612,6 +3612,7 @@
36133613 *$1: the current year
36143614 *$2: a list of selected MediaWiki authors',
36153615 'version-poweredby-others' => 'Used at the very end of {{msg-mw|version-poweredby-credits}} on [[Special:Version]]. First, there\'s a long list of selected MediaWiki authors, then the word "and" (from {{msg-mw|and}}) follows and then this translation, which is supposed to credit the many other people than developer helping with MediaWiki.',
 3616+'version-license-info' => '[[wikipedia:GNU GPL|GNU GPL]] notice shown at [[Special:Version]]. See http://www.gnu.org/licenses/old-licenses/gpl-2.0-translations.html for available translations.',
36163617 'version-software-product' => 'Shown in [[Special:Version]]',
36173618 'version-software-version' => '{{Identical|Version}}',
36183619
Index: branches/resourceloader/phase3/languages/messages/MessagesCs.php
@@ -2293,7 +2293,7 @@
22942294 'prot_1movedto2' => 'Stránka [[$1]] přemístěna na stránku [[$2]]',
22952295 'protect-legend' => 'Potvrdit zamčení',
22962296 'protectcomment' => 'Důvod:',
2297 -'protectexpiry' => 'Čas vypršení',
 2297+'protectexpiry' => 'Čas vypršení:',
22982298 'protect_expiry_invalid' => 'Čas vypršení je chybný.',
22992299 'protect_expiry_old' => 'Čas vypršení již minul.',
23002300 'protect-unchain-permissions' => 'Zpřístupnit další nastavení zámku',
Index: branches/resourceloader/phase3/languages/messages/MessagesSk.php
@@ -1198,6 +1198,7 @@
11991199 # Diffs
12001200 'history-title' => 'História revízií „$1“',
12011201 'difference' => '(Rozdiel medzi revíziami)',
 1202+'difference-multipage' => '(Rozdiel medzi stránkami)',
12021203 'lineno' => 'Riadok $1:',
12031204 'compareselectedversions' => 'Porovnať označené verzie',
12041205 'showhideselectedversions' => 'Zobraziť/skryť vybrané revízie',
@@ -1717,7 +1718,7 @@
17181719 'upload-success-subj' => 'Nahranie bolo úspešné',
17191720 'upload-success-msg' => 'Nahranie súboru [$2]prebehlo úspešne. Je dostupný tu: [[:{{ns:file}}:$1]]',
17201721 'upload-failure-subj' => 'Problém s nahrávaním',
1721 -'upload-failure-msg' => 'Vyskytol sa problém s vašim nahrávaním:
 1722+'upload-failure-msg' => 'Vyskytol sa problém s vašim nahrávaním z [$2]:
17221723
17231724 $1',
17241725 'upload-warning-subj' => 'Upozornenie pri nahrávaní',
@@ -3412,6 +3413,13 @@
34133414 'version-hook-subscribedby' => 'Pripojené',
34143415 'version-version' => '(Verzia $1)',
34153416 'version-license' => 'Licencia',
 3417+'version-poweredby-credits' => "Táto wiki beží na '''[http://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 3418+'version-poweredby-others' => 'ďalší',
 3419+'version-license-info' => 'MediaWiki je slobodný softvér; môžete ho šíriť a / alebo modifikovať podľa podmienok GNU General Public License, ktorú vydala Free Software Foundation; a to buď verzie 2 tejto licencie alebo (podľa vášho uváženia) ktorejkoľvek neskoršej verzie.
 3420+
 3421+MediaWiki je šírený v nádeji, že bude užitočný, avšak BEZ AKEJKOĽVEK ZÁRUKY; neposkytujú sa ani implicitné záruky PREDAJNOSTI alebo VHODNOSTI NA URČITÝ ÚČEL. Ďalšie informácie nájdete v GNU General Public License.
 3422+
 3423+Spolu s týmto programom by ste obdržať [{{SERVER}}{{SCRIPTPATH}}/COPYING kópiu GNU General Public License]. Ak nie, napíšte na adresu Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA alebo [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html si ju prečítajte online].',
34163424 'version-software' => 'Nainštalovaný softvér',
34173425 'version-software-product' => 'Produkt',
34183426 'version-software-version' => 'Verzia',
Index: branches/resourceloader/phase3/languages/messages/MessagesSw.php
@@ -1547,6 +1547,7 @@
15481548 'linkstoimage' => '{{PLURAL:$1|Ukurasa huu umeunganishwa|Kurasa hizi $1 zimeunganishwa}} na faili hili:',
15491549 'nolinkstoimage' => 'Hakuna kurasa zozote zilizounganishwa na faili hii.',
15501550 'morelinkstoimage' => 'Tazama [[Special:WhatLinksHere/$1|viungo vingine]] vinavyoelekeza faili hili.',
 1551+'redirectstofile' => '{{PLURAL:$1|Faili linalofuata linaelekeza|Mafaili $1 yanayofuata yanaelekeza}} faili hili:',
15511552 'sharedupload' => 'Faili hili linatoka $1 na linaweza kushirikiwa na miradi mingine.',
15521553 'filepage-nofile' => 'Hakuna faili yenye jina hili.',
15531554 'uploadnewversion-linktext' => 'Pakia toleo jipya la faili hii',
Index: branches/resourceloader/phase3/languages/messages/MessagesAn.php
@@ -1012,6 +1012,7 @@
10131013 # Diffs
10141014 'history-title' => 'Historial de versions de "$1"',
10151015 'difference' => '(Esferencias entre versions)',
 1016+'difference-multipage' => '(Diferencia entre pachinas)',
10161017 'lineno' => 'Linia $1:',
10171018 'compareselectedversions' => 'Confrontar as versions trigatas',
10181019 'showhideselectedversions' => 'Amostrar/amagar as versions trigadas',
@@ -1525,7 +1526,7 @@
15261527 'upload-success-subj' => 'Cargata correctament',
15271528 'upload-success-msg' => 'A carga de [$2] ha surtiu con exito. Ye disponible aquí: [[:{{ns:file}}:$1]]',
15281529 'upload-failure-subj' => 'Problema en a carga',
1529 -'upload-failure-msg' => 'I ha habiu bell problema con a suya carga:
 1530+'upload-failure-msg' => 'I ha habiu un problema con o a suya carga dende [$2]:
15301531
15311532 $1',
15321533 'upload-warning-subj' => 'Alvertencia de carga',
@@ -3146,6 +3147,13 @@
31473148 'version-hook-subscribedby' => 'Suscrito por',
31483149 'version-version' => '(Versión $1)',
31493150 'version-license' => 'Licencia',
 3151+'version-poweredby-credits' => "Iste wiki funciona gracias a '''[http://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 3152+'version-poweredby-others' => 'atros',
 3153+'version-license-info' => "MediaWiki ye software libre, puet redistribuyir-lo y/u modificar-lo baixo os terminos d'a Licencia Publica Cheneral GNU publicada por a Free Software Foundation, ya siga d'a suya versión 2 u (a la suya esleción) qualsiquier versión posterior.
 3154+
 3155+MediaWiki se distribuye con l'asperanza d'estar d'utilidat, pero SIN GARRA GUARANCIA; nian a guarancia implicita de COMERCIALIZACIÓN u ADEQUACIÓN TA UNA FINALIDAT DETERMINADA. En trobará más detalles en a Licencia Publica General GNU.
 3156+
 3157+Con iste programa ha d'haber recibiu [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia d'a Licencia Publica Cheneral GNU]; si no ye asinas, endrece-se a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA u bien [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html la leiga en linia].",
31503158 'version-software' => 'Software instalato',
31513159 'version-software-product' => 'Producto',
31523160 'version-software-version' => 'Versión',
Index: branches/resourceloader/phase3/languages/messages/MessagesMk.php
@@ -2623,7 +2623,7 @@
26242624 'movepage-moved-noredirect' => 'Создавањето на пренасочување е оневозможено.',
26252625 'articleexists' => 'Страница со тоа име веќе постои или името што го избравте не е валидно.
26262626 Изберете друго име.',
2627 -'cantmove-titleprotected' => 'Не може да ја преместите страницата на таа локација бидејќи саканиот наслов е заштитен од создавање.',
 2627+'cantmove-titleprotected' => 'Не може да ја преместите страницата на тоа место бидејќи саканиот наслов е заштитен од создавање.',
26282628 'talkexists' => "'''Самата страница беше преместена успешно, но страницата за разговор не можеше да биде преместена бидејќи веќе постои таква на новиот наслов.
26292629 Ве молиме спојте ги рачно.'''",
26302630 'movedto' => 'преместена како',
Index: branches/resourceloader/phase3/languages/messages/MessagesIt.php
@@ -535,7 +535,7 @@
536536 'nstab-user' => 'Utente',
537537 'nstab-media' => 'File multimediale',
538538 'nstab-special' => 'Pagina speciale',
539 -'nstab-project' => 'pagina di servizio',
 539+'nstab-project' => 'Pagina di servizio',
540540 'nstab-image' => 'File',
541541 'nstab-mediawiki' => 'Messaggio',
542542 'nstab-template' => 'Template',
Index: branches/resourceloader/phase3/languages/messages/MessagesPt.php
@@ -1648,11 +1648,11 @@
16491649 'upload-recreate-warning' => "'''Aviso: Um ficheiro com esse nome foi eliminado ou movido.'''
16501650
16511651 Para sua conveniência, é apresentado de seguida o registo de eliminação e de movimento da página:",
1652 -'uploadtext' => "Utilize o formulário abaixo para carregar novos ficheiros.
1653 -Para ver ou pesquisar ficheiros anteriormente carregados, consulte a [[Special:FileList|lista de ficheiros]].
1654 -Os recarregamentos de um ficheiro são também registados no [[Special:Log/upload|registo de carregamentos]] e as eliminações no [[Special:Log/delete|registo de eliminações]].
 1652+'uploadtext' => "Utilize o formulário abaixo para fazer upload de ficheiros novos.
 1653+Para ver ou pesquisar ficheiros anteriormente enviados, consulte a [[Special:FileList|lista de ficheiros]].
 1654+Os reenvios de um ficheiro são também registados no [[Special:Log/upload|registo de uploads]] e as eliminações no [[Special:Log/delete|registo de eliminações]].
16551655
1656 -Para utilizar um ficheiro numa página, depois de carregado, insira um link com um dos seguintes formatos:
 1656+Para utilizar um ficheiro numa página, depois de ter feito o upload, insira um link com um dos seguintes formatos:
16571657 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.jpg]]</nowiki></tt>''' para mostrar uma imagem nas suas dimensões originais;
16581658 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.png|200px|thumb|left|texto]]</nowiki></tt>''' para mostrar uma imagem com a dimensão horizontal de 200 pixels, dentro de uma caixa, na margem esquerda, contendo 'texto' como descrição (pode usar subconjuntos destas características);
16591659 * '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ficheiro.ogg]]</nowiki></tt>''' para apresentar um link directo para o ficheiro em vez de mostrá-lo, quer este tenha por conteúdo uma imagem ou outros dados.",
@@ -1748,11 +1748,11 @@
17491749 'watchthisupload' => 'Vigiar este ficheiro',
17501750 'filewasdeleted' => 'Um ficheiro com este nome foi carregado anteriormente e subsequentemente eliminado.
17511751 Deverá verificar o $1 antes de voltar a enviá-lo.',
1752 -'upload-wasdeleted' => "'''Aviso: Está a carregar um ficheiro anteriormente eliminado.'''
 1752+'upload-wasdeleted' => "'''Aviso: Está a enviar um ficheiro anteriormente eliminado.'''
17531753
17541754 Verifique se é apropriado prosseguir este envio.
17551755 Para sua conveniência, é apresentado de seguida o registo de eliminação do ficheiro:",
1756 -'filename-bad-prefix' => "O nome do ficheiro que está a carregar começa por '''\"\$1\"''', um nome pouco explicativo, normalmente originado de forma automática por câmaras digitais. Escolha um nome de ficheiro mais explicativo, por favor.",
 1756+'filename-bad-prefix' => "O nome do ficheiro que está a enviar começa por '''\"\$1\"''', um nome pouco explicativo, normalmente originado de forma automática por câmaras digitais. Escolha um nome de ficheiro mais explicativo, por favor.",
17571757 'filename-prefix-blacklist' => ' #<!-- deixe esta linha exactamente como está --> <pre>
17581758 # A sintaxe é a seguinte:
17591759 # * Tudo a partir do caractere "#" até ao fim da linha é um comentário
@@ -2827,7 +2827,7 @@
28282828 'tooltip-feed-atom' => "''Feed'' Atom desta página",
28292829 'tooltip-t-contributions' => 'Ver as contribuições deste utilizador',
28302830 'tooltip-t-emailuser' => 'Enviar uma mensagem de correio a este utilizador',
2831 -'tooltip-t-upload' => 'Carregar ficheiros',
 2831+'tooltip-t-upload' => 'Upload de ficheiros',
28322832 'tooltip-t-specialpages' => 'Lista de páginas especiais',
28332833 'tooltip-t-print' => 'Versão para impressão desta página',
28342834 'tooltip-t-permalink' => 'Link permanente para esta versão desta página',
Index: branches/resourceloader/phase3/languages/messages/MessagesSr_ec.php
@@ -573,7 +573,7 @@
574574 'nstab-main' => 'Чланак',
575575 'nstab-user' => 'Корисник',
576576 'nstab-media' => 'Страница медија',
577 -'nstab-special' => 'Посебна',
 577+'nstab-special' => 'Посебно',
578578 'nstab-project' => 'Пројект',
579579 'nstab-image' => 'Слика',
580580 'nstab-mediawiki' => 'Порука',
@@ -2133,7 +2133,7 @@
21342134 'protectlogpage' => 'историја закључавања',
21352135 'protectlogtext' => 'Испод је списак заштићених страница.<br />
21362136 Погледајте [[Special:ProtectedPages|правила о заштити страница]] за више информација.',
2137 -'protectedarticle' => 'је заштитио „$1“',
 2137+'protectedarticle' => 'је {{GENDER:|заштитио|заштитила|заштитио}} „[[$1]]“',
21382138 'modifiedarticleprotection' => 'је променио ниво заштите за „[[$1]]“',
21392139 'unprotectedarticle' => 'скинуо заштиту са $1',
21402140 'movedarticleprotection' => 'преместио подешавања заштите са "[[$2]]" на "[[$1]]"',
Property changes on: branches/resourceloader/phase3/includes/HistoryPage.php
___________________________________________________________________
Modified: svn:mergeinfo
21412141 Merged /trunk/phase3/includes/HistoryPage.php:r72307-72342
Index: branches/resourceloader/phase3/includes/Exception.php
@@ -229,7 +229,7 @@
230230 function htmlFooter() {
231231 return "</body></html>";
232232 }
233 -
 233+
234234 /**
235235 * headers handled by subclass?
236236 */
Index: branches/resourceloader/phase3/includes/parser/Parser.php
@@ -3782,7 +3782,6 @@
37833783
37843784 if ( $toclevel ) {
37853785 $prevlevel = $level;
3786 - $prevtoclevel = $toclevel;
37873786 }
37883787 $level = $matches[1][$headlineCount];
37893788
Index: branches/resourceloader/phase3/includes/specials/SpecialSelenium.php
@@ -1,72 +0,0 @@
2 -<?php
3 -/**
4 - * Implements Special:Selenium
5 - *
6 - * @file
7 - * @ingroup SpecialPage
8 - * @todo Remove this feature
9 - */
10 -
11 -/**
12 - * @ingroup SpecialPage
13 - */
14 -class SpecialSelenium extends SpecialPage {
15 - function __construct() {
16 - parent::__construct( 'Selenium', 'selenium', false );
17 - }
18 -
19 - function getDescription() {
20 - return 'Selenium';
21 - }
22 -
23 - function execute( $par ) {
24 - global $wgUser, $wgOut, $wgEnableSelenium, $wgRequest;
25 -
26 - if ( !$wgEnableSelenium ) {
27 - throw new MWException(
28 - 'Selenium special page invoked when it should not be registered!' );
29 - }
30 -
31 - $this->setHeaders();
32 - if ( !$this->userCanExecute( $wgUser ) ) {
33 - $this->displayRestrictionError();
34 - return;
35 - }
36 -
37 - if ( $wgRequest->wasPosted() && $wgUser->matchEditToken( $wgRequest->getVal( 'token' ) ) ) {
38 - $this->runTests();
39 - }
40 - $wgOut->addHTML(
41 - Html::openElement( 'form', array(
42 - 'method' => 'POST',
43 - 'action' => $this->getTitle()->getLocalUrl(),
44 - ) ) .
45 - Html::input( 'submit', 'Run tests', 'submit' ) .
46 - Html::hidden( 'token', $wgUser->editToken() ) .
47 - '</form>'
48 - );
49 - }
50 -
51 - function runTests() {
52 - global $wgSeleniumTestSuites, $wgOut, $wgSeleniumLogger;
53 - SeleniumLoader::load();
54 -
55 - $result = new PHPUnit_Framework_TestResult;
56 - $wgSeleniumLogger = new SeleniumTestHTMLLogger;
57 - $result->addListener( new SeleniumTestListener( $wgSeleniumLogger ) );
58 - //$wgSeleniumLogger->setHeaders();
59 -
60 - // run tests
61 - $wgOut->addHTML( '<div class="selenium">' );
62 -
63 - // for some really strange reason, foreach doesn't work here. It produces an infinite loop,
64 - // executing only the first test suite.
65 - for ( $i = 0; $i < count( $wgSeleniumTestSuites ); $i++ ) {
66 - $suite = new $wgSeleniumTestSuites[$i];
67 - $suite->addTests();
68 - $suite->run( $result );
69 - }
70 - $wgOut->addHTML( '</div>' );
71 - }
72 -}
73 -
Index: branches/resourceloader/phase3/includes/specials/SpecialProtectedtitles.php
@@ -54,7 +54,7 @@
5555
5656 $pager = new ProtectedTitlesPager( $this, array(), $type, $level, $NS, $sizetype, $size );
5757
58 - $wgOut->addHTML( $this->showOptions( $NS, $type, $level, $sizetype, $size ) );
 58+ $wgOut->addHTML( $this->showOptions( $NS, $type, $level ) );
5959
6060 if ( $pager->getNumRows() ) {
6161 $s = $pager->getNavigationBar();
@@ -109,11 +109,9 @@
110110 * @param $namespace Integer:
111111 * @param $type string
112112 * @param $level string
113 - * @param $sizetype Unused
114 - * @param $size Unused
115113 * @private
116114 */
117 - function showOptions( $namespace, $type='edit', $level, $sizetype, $size ) {
 115+ function showOptions( $namespace, $type='edit', $level ) {
118116 global $wgScript;
119117 $action = htmlspecialchars( $wgScript );
120118 $title = SpecialPage::getTitleFor( 'Protectedtitles' );
Property changes on: branches/resourceloader/phase3/includes/specials
___________________________________________________________________
Modified: svn:mergeinfo
121119 Merged /trunk/phase3/includes/specials:r72307-72342
Index: branches/resourceloader/phase3/includes/api/ApiBase.php
@@ -254,8 +254,11 @@
255255 $examples
256256 );
257257 }
258 - $msg .= 'Example' . ( count( $examples ) > 1 ? 's' : '' ) . ":\n ";
259 - $msg .= implode( $lnPrfx, $examples ) . "\n";
 258+
 259+ if ( count( $examples ) > 0 ) {
 260+ $msg .= 'Example' . ( count( $examples ) > 1 ? 's' : '' ) . ":\n ";
 261+ $msg .= implode( $lnPrfx, $examples ) . "\n";
 262+ }
260263 }
261264
262265 if ( $this->getMain()->getShowVersions() ) {
Index: branches/resourceloader/phase3/includes/api/ApiMain.php
@@ -397,12 +397,6 @@
398398 header( 'Cache-Control: private' );
399399 return;
400400 } // else no XVO and anonymous, send public headers below
401 - } else /* if public */ {
402 - // Give a debugging message if the user object is unstubbed on a public request
403 - global $wgUser;
404 - if ( !( $wgUser instanceof StubUser ) ) {
405 - wfDebug( __METHOD__ . " \$wgUser is unstubbed on a public request!\n" );
406 - }
407401 }
408402
409403 // If nobody called setCacheMaxAge(), use the (s)maxage parameters
Property changes on: branches/resourceloader/phase3/includes/api
___________________________________________________________________
Modified: svn:mergeinfo
410404 Merged /trunk/phase3/includes/api:r72307-72342
Index: branches/resourceloader/phase3/includes/LinksUpdate.php
@@ -426,7 +426,7 @@
427427 * @private
428428 */
429429 function getCategoryInsertions( $existing = array() ) {
430 - global $wgContLang, $wgCollationVersion;
 430+ global $wgContLang, $wgCategoryCollation;
431431 $diffs = array_diff_assoc( $this->mCategories, $existing );
432432 $arr = array();
433433 foreach ( $diffs as $name => $sortkey ) {
@@ -465,7 +465,7 @@
466466 'cl_sortkey' => $sortkey,
467467 'cl_timestamp' => $this->mDb->timestamp(),
468468 'cl_sortkey_prefix' => $prefix,
469 - 'cl_collation' => $wgCollationVersion,
 469+ 'cl_collation' => $wgCategoryCollation,
470470 'cl_type' => $type,
471471 );
472472 }
Index: branches/resourceloader/phase3/includes/Linker.php
@@ -774,12 +774,9 @@
775775 * Usage example: $skin->specialLink( 'recentchanges' )
776776 */
777777 function specialLink( $name, $key = '' ) {
778 - global $wgContLang;
779 -
780778 if ( $key == '' ) { $key = strtolower( $name ); }
781 - $pn = $wgContLang->ucfirst( $name );
782 - return $this->makeKnownLink( $wgContLang->specialPage( $pn ),
783 - wfMsg( $key ) );
 779+
 780+ return $this->linkKnown( SpecialPage::getTitleFor( $name ) , wfMsg( $key ) );
784781 }
785782
786783 /**
Index: branches/resourceloader/phase3/includes/db/Database.php
@@ -186,7 +186,7 @@
187187
188188 /**
189189 * Returns true if this database requires that SELECT DISTINCT queries require that all
190 - ORDER BY expressions occur in the SELECT list per the SQL92 standard
 190+ ORDER BY expressions occur in the SELECT list per the SQL92 standard
191191 */
192192 function standardSelectDistinct() {
193193 return true;
@@ -2030,7 +2030,7 @@
20312031 * @return Database replication lag in seconds
20322032 */
20332033 function getLag() {
2034 - return $this->mFakeSlaveLag;
 2034+ return $this->mFakeSlaveLag;
20352035 }
20362036
20372037 /**
@@ -2096,7 +2096,7 @@
20972097 throw $e;
20982098 }
20992099 }
2100 -
 2100+
21012101 fclose( $fp );
21022102 return $error;
21032103 }
@@ -2554,16 +2554,16 @@
25552555 <small>$outofdate</small></div>
25562556 <!-- SiteSearch Google -->
25572557 <form method="get" action="http://www.google.com/search" id="googlesearch">
2558 - <input type="hidden" name="domains" value="$wgServer" />
2559 - <input type="hidden" name="num" value="50" />
2560 - <input type="hidden" name="ie" value="$wgInputEncoding" />
2561 - <input type="hidden" name="oe" value="$wgInputEncoding" />
 2558+ <input type="hidden" name="domains" value="$wgServer" />
 2559+ <input type="hidden" name="num" value="50" />
 2560+ <input type="hidden" name="ie" value="$wgInputEncoding" />
 2561+ <input type="hidden" name="oe" value="$wgInputEncoding" />
25622562
2563 - <input type="text" name="q" size="31" maxlength="255" value="$search" />
2564 - <input type="submit" name="btnG" value="$googlesearch" />
 2563+ <input type="text" name="q" size="31" maxlength="255" value="$search" />
 2564+ <input type="submit" name="btnG" value="$googlesearch" />
25652565 <div>
2566 - <input type="radio" name="sitesearch" id="gwiki" value="$wgServer" checked="checked" /><label for="gwiki">$wgSitename</label>
2567 - <input type="radio" name="sitesearch" id="gWWW" value="" /><label for="gWWW">WWW</label>
 2566+ <input type="radio" name="sitesearch" id="gwiki" value="$wgServer" checked="checked" /><label for="gwiki">$wgSitename</label>
 2567+ <input type="radio" name="sitesearch" id="gWWW" value="" /><label for="gWWW">WWW</label>
25682568 </div>
25692569 </form>
25702570 <!-- SiteSearch Google -->
Property changes on: branches/resourceloader/phase3/includes/ChangesList.php
___________________________________________________________________
Modified: svn:mergeinfo
25712571 Merged /trunk/phase3/includes/ChangesList.php:r72307-72342
Index: branches/resourceloader/phase3/includes/Skin.php
@@ -658,10 +658,10 @@
659659
660660 wfProfileOut( __METHOD__ );
661661 }
662 -
 662+
663663 /**
664664 * Get the query to generate a dynamic stylesheet
665 - *
 665+ *
666666 * @return array
667667 */
668668 public static function getDynamicStylesheetQuery() {
@@ -2136,14 +2136,14 @@
21372137 * Currently only used for MediaWiki:Sidebar (but may be used by Extensions)
21382138 *
21392139 * This is just a wrapper around addToSidebarPlain() for backwards compatibility
2140 - *
 2140+ *
21412141 * @param &$bar array
21422142 * @param $message String
21432143 */
21442144 function addToSidebar( &$bar, $message ) {
21452145 $this->addToSidebarPlain( $bar, wfMsgForContent( $message ) );
21462146 }
2147 -
 2147+
21482148 /**
21492149 * Add content from plain text
21502150 * @since 1.17
@@ -2201,12 +2201,12 @@
22022202 );
22032203 } else if ( (substr($line, 0, 2) == '{{') && (substr($line, -2) == '}}') ) {
22042204 global $wgParser, $wgTitle;
2205 -
 2205+
22062206 $line = substr($line, 2, strlen($line) - 4 );
2207 -
 2207+
22082208 if (is_null($wgParser->mOptions))
22092209 $wgParser->mOptions = new ParserOptions();
2210 -
 2210+
22112211 $wgParser->mOptions->setEditSection(false);
22122212 $wikiBar[$heading] = $wgParser->parse( wfMsgForContentNoTrans( $line ) , $wgTitle, $wgParser->mOptions )->getText();
22132213 } else {
@@ -2214,10 +2214,10 @@
22152215 }
22162216 }
22172217 }
2218 -
 2218+
22192219 if ( count($wikiBar) > 0 )
22202220 $bar = array_merge($bar, $wikiBar);
2221 -
 2221+
22222222 return $bar;
22232223 }
22242224
Property changes on: branches/resourceloader/phase3/includes/Interwiki.php
___________________________________________________________________
Modified: svn:mergeinfo
22252225 Merged /trunk/phase3/includes/Interwiki.php:r72307-72342
Property changes on: branches/resourceloader/phase3/includes/OutputPage.php
___________________________________________________________________
Modified: svn:mergeinfo
22262226 Merged /trunk/phase3/includes/OutputPage.php:r72307-72342
Index: branches/resourceloader/phase3/includes/DefaultSettings.php
@@ -3712,50 +3712,6 @@
37133713 */
37143714 $wgParserTestRemote = false;
37153715
3716 -/**
3717 - * Enable Selenium test framework.
3718 - * This enables maintenance/tests/RunSeleniumTests.php and [[Special:Selenium]].
3719 - */
3720 -$wgEnableSelenium = false;
3721 -
3722 -/** List of Selenium test suites. These must be registered with the autoloader. */
3723 -$wgSeleniumTestSuites = array(
3724 - 'SimpleSeleniumTestSuite'
3725 -);
3726 -
3727 -
3728 -/** Hostname of selenium server */
3729 -$wgSeleniumTestsSeleniumHost = 'localhost';
3730 -
3731 -/** URL of the wiki to be tested. By default, the local wiki is used. */
3732 -$wgSeleniumTestsWikiUrl = false;
3733 -
3734 -/** Port used by selenium server. */
3735 -$wgSeleniumServerPort = 4444;
3736 -
3737 -/** Wiki login username. Used by Selenium to log onto the wiki. */
3738 -$wgSeleniumTestsWikiUser = 'Wikiuser';
3739 -
3740 -/** Wiki login password. Used by Selenium to log onto the wiki. */
3741 -$wgSeleniumTestsWikiPassword = '';
3742 -
3743 -/**
3744 - * Common browsers on Windows platform. Modify for other platforms or
3745 - * other Windows browsers.
3746 - * Use the *chrome handler in order to be able to test file uploads.
3747 - * Further solution suggestions: http://www.brokenbuild.com/blog/2007/06/07/testing-file-uploads-with-selenium-rc-and-firefoxor-reducing-javascript-security-in-firefox-for-fun-and-profit/
3748 - */
3749 -$wgSeleniumTestsBrowsers = array(
3750 - 'firefox' => '*firefox /usr/bin/firefox',
3751 - 'iexplorer' => '*iexploreproxy',
3752 - 'opera' => '*chrome /usr/bin/opera',
3753 -);
3754 -
3755 -/** Actually, use this browser */
3756 -$wgSeleniumTestsUseBrowser = 'firefox';
3757 -
3758 -
3759 -
37603716 /** @} */ # end of profiling, testing and debugging }
37613717
37623718 /************************************************************************//**
@@ -4442,10 +4398,13 @@
44434399 /**
44444400 * A version indicator for collations that will be stored in cl_collation for
44454401 * all new rows. Used when the collation algorithm changes: a script checks
4446 - * for all rows where cl_collation != $wgCollationVersion and regenerates
 4402+ * for all rows where cl_collation != $wgCategoryCollation and regenerates
44474403 * cl_sortkey based on the page name and cl_sortkey_prefix.
 4404+ *
 4405+ * Currently only supports 'uppercase', which just uppercases the string. This
 4406+ * is a dummy collation, to be replaced later by real ones.
44484407 */
4449 -$wgCollationVersion = 1;
 4408+$wgCategoryCollation = 'uppercase';
44504409
44514410 /** @} */ # End categories }
44524411
Index: branches/resourceloader/phase3/includes/Setup.php
@@ -173,7 +173,7 @@
174174 wfMemoryLimit();
175175
176176 /**
177 - * Set up the timezone, suppressing the pseudo-security warning in PHP 5.1+
 177+ * Set up the timezone, suppressing the pseudo-security warning in PHP 5.1+
178178 * that happens whenever you use a date function without the timezone being
179179 * explicitly set. Inspired by phpMyAdmin's treatment of the problem.
180180 */
@@ -186,13 +186,14 @@
187187 $wgRequest = new WebRequest;
188188
189189 # Useful debug output
 190+global $wgCommandLineMode;
190191 if ( $wgCommandLineMode ) {
191192 wfDebug( "\n\nStart command line script $self\n" );
192193 } else {
193194 wfDebug( "Start request\n\n" );
194195 # Output the REQUEST_URI. This is not supported by IIS in rewrite mode,
195196 # so use an alternative
196 - $requestUri = isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] :
 197+ $requestUri = isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] :
197198 ( isset( $_SERVER['HTTP_X_ORIGINAL_URL'] ) ? $_SERVER['HTTP_X_ORIGINAL_URL'] :
198199 $_SERVER['PHP_SELF'] );
199200 wfDebug( "{$_SERVER['REQUEST_METHOD']} {$requestUri}\n" );
Index: branches/resourceloader/phase3/includes/SpecialPage.php
@@ -207,7 +207,6 @@
208208 static function initList() {
209209 global $wgSpecialPages;
210210 global $wgDisableCounters, $wgDisableInternalSearch, $wgEmailAuthentication;
211 - global $wgEnableSelenium;
212211
213212 if ( self::$mListInitialised ) {
214213 return;
@@ -230,10 +229,6 @@
231230 self::$mList['Invalidateemail'] = 'EmailInvalidation';
232231 }
233232
234 - if ( $wgEnableSelenium ) {
235 - self::$mList['Selenium'] = 'SpecialSelenium';
236 - }
237 -
238233 # Add extension special pages
239234 self::$mList = array_merge( self::$mList, $wgSpecialPages );
240235
Property changes on: branches/resourceloader/phase3/includes/json/Services_JSON.php
___________________________________________________________________
Modified: svn:mergeinfo
241236 Merged /trunk/phase3/includes/json/Services_JSON.php:r72307-72342
Property changes on: branches/resourceloader/phase3/includes/ConfEditor.php
___________________________________________________________________
Modified: svn:mergeinfo
242237 Merged /trunk/phase3/includes/ConfEditor.php:r72307-72342
Index: branches/resourceloader/phase3/includes/installer/DatabaseUpdater.php
@@ -94,9 +94,7 @@
9595 * Before 1.17, we used to handle updates via stuff like $wgUpdates,
9696 * $wgExtNewTables/Fields/Indexes. This is nasty :) We refactored a lot
9797 * of this in 1.17 but we want to remain back-compatible for awhile. So
98 - * load up these old global-based things into our update list. We can't
99 - * version these like we do with our core updates, so they have to go
100 - * in 'always'
 98+ * load up these old global-based things into our update list.
10199 */
102100 protected function getOldGlobalUpdates() {
103101 global $wgUpdates, $wgExtNewFields, $wgExtNewTables,
Index: branches/resourceloader/phase3/includes/installer/MysqlUpdater.php
@@ -165,6 +165,7 @@
166166 array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix', 'patch-kill-iwl_prefix.sql' ),
167167 array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix_from_title', 'patch-kill-iwl_pft.sql' ),
168168 array( 'addField', 'categorylinks', 'cl_collation', 'patch-categorylinks-better-collation.sql' ),
 169+ array( 'do_cl_fields_update' ),
169170 array( 'do_collation_update' ),
170171 array( 'addTable', 'msg_resource', 'patch-msg_resource.sql' ),
171172 array( 'addTable', 'module_deps', 'patch-module_deps.sql' ),
Index: branches/resourceloader/phase3/includes/installer/Installer.i18n.php
@@ -2568,6 +2568,12 @@
25692569 'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binario',
25702570 'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
25712571 'config-charset-mysql4' => 'MySQL 4.0 retrocompatible UTF-8',
 2572+ 'config-charset-help' => "'''Atención:''' Se emprega '''backwards-compatible UTF-8''' no MySQL 4.1+ e posteriormente realiza unha copia de seguridade da base de datos con <code>mysqldump</code>, pode destruír todos os caracteres que non sexan ASCII, corrompendo de xeito irreversible as súas copias!
 2573+
 2574+No '''modo binario''', MediaWiki almacena texto UTF-8 na base de datos en campos binarios.
 2575+Isto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.
 2576+No '''modo UTF-8''', MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,
 2577+pero non lle deixará gardar caracteres por riba do [http://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
25722578 'config-mysql-old' => 'Necesítase MySQL $1 ou posterior; ten a versión $2.',
25732579 'config-db-port' => 'Porto da base de datos:',
25742580 'config-db-schema' => 'Esquema para MediaWiki',
@@ -2575,6 +2581,16 @@
25762582 'config-db-schema-help' => 'O normal é que os esquemas anteriores sexan correctos.
25772583 Cámbieos soamente se sabe que é necesario.',
25782584 'config-sqlite-dir' => 'Directorio de datos SQLite:',
 2585+ 'config-sqlite-dir-help' => "SQLite recolle todos os datos nun ficheiro único.
 2586+
 2587+O servidor web debe ter permisos sobre o directorio para que poida escribir nel durante a instalación.
 2588+
 2589+Ademais, o servidor '''non''' debe ser accesible a través da web, motivo polo que non está no mesmo lugar ca os ficheiros PHP.
 2590+
 2591+Asemade, o instalador escribirá un ficheiro <code>.htaccess</code>, pero se erra alguén pode obter acceso á súa base de datos.
 2592+Isto inclúe datos de usuario (enderezos de correo electrónico, contrasinais codificados), así como revisións borradas e outros datos restrinxidos no wiki.
 2593+
 2594+Considere poñer a base de datos nun só lugar, por exemplo en <code>/var/lib/mediawiki/oseuwiki</code>.",
25792595 'config-type-mysql' => 'MySQL',
25802596 'config-type-postgres' => 'PostgreSQL',
25812597 'config-type-sqlite' => 'SQLite',
@@ -2608,6 +2624,25 @@
26092625 'config-sqlite-name-help' => 'Escolla un nome que identifique o seu wiki.
26102626 Non utilice espazos ou guións.
26112627 Este nome será utilizado para o ficheiro de datos SQLite.',
 2628+ 'config-sqlite-parent-unwritable-group' => 'Non se puido crear o directorio de datos <code><nowiki>$1</nowiki></code>, porque o servidor web non pode escribir no directorio pai <code><nowiki>$2</nowiki></code>.
 2629+
 2630+O instalador determinou o usuario que executa o seu servidor web.
 2631+Para continuar, faga que se poida escribir no directorio <code><nowiki>$3</nowiki></code>.
 2632+Nun sistema Unix/Linux cómpre realizar:
 2633+
 2634+<pre>cd $2
 2635+mkdir $3
 2636+chgrp $4 $3
 2637+chmod g+w $3</pre>',
 2638+ 'config-sqlite-parent-unwritable-nogroup' => 'Non se puido crear o directorio de datos <code><nowiki>$1</nowiki></code>, porque o servidor web non pode escribir no directorio pai <code><nowiki>$2</nowiki></code>.
 2639+
 2640+O instalador non puido determinar o usuario que executa o seu servidor web.
 2641+Para continuar, faga que se poida escribir globalmente no directorio <code><nowiki>$3</nowiki></code>.
 2642+Nun sistema Unix/Linux cómpre realizar:
 2643+
 2644+<pre>cd $2
 2645+mkdir $3
 2646+chmod a+w $3</pre>',
26122647 'config-sqlite-mkdir-error' => 'Erro ao crear o directorio de datos "$1".
26132648 Comprobe a localización e inténteo de novo.',
26142649 'config-sqlite-dir-unwritable' => 'Non se puido escribir o directorio "$1".
@@ -2639,11 +2674,20 @@
26402675 'config-mysql-engine' => 'Motor de almacenamento:',
26412676 'config-mysql-innodb' => 'InnoDB',
26422677 'config-mysql-myisam' => 'MyISAM',
 2678+ 'config-mysql-engine-help' => "'''InnoDB''' é case sempre a mellor opción, dado que soporta ben os accesos simultáneos.
 2679+
 2680+'''MyISAM''' é máis rápido en instalacións de usuario único e de só lectura.
 2681+As bases de datos MyISAM tenden a se corromper máis a miúdo ca as bases de datos InnoDB.",
26432682 'config-mysql-egine-mismatch' => "'''Atención:''' Solicitou o motor de almacenamento $1, mais o existente na base de datos é o motor $2.
26442683 Esta escritura de actualización non o pode converter, de modo que permanecerá $2.",
26452684 'config-mysql-charset' => 'Conxunto de caracteres da base de datos:',
26462685 'config-mysql-binary' => 'Binario',
26472686 'config-mysql-utf8' => 'UTF-8',
 2687+ 'config-mysql-charset-help' => "No '''modo binario''', MediaWiki almacena texto UTF-8 na base de datos en campos binarios.
 2688+Isto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.
 2689+
 2690+No '''modo UTF-8''', MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,
 2691+pero non lle deixará gardar caracteres por riba do [http://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
26482692 'config-mysql-charset-mismatch' => "'''Atención:''' Solicitou o esquema $1, mais o existente na base de datos é o esquema $2.
26492693 Esta escritura de actualización non o pode converter, de modo que permanecerá $2.",
26502694 'config-site-name' => 'Nome do wiki:',
@@ -2654,6 +2698,9 @@
26552699 'config-ns-site-name' => 'O mesmo nome que o wiki: $1',
26562700 'config-ns-other' => 'Outro (especificar)',
26572701 'config-ns-other-default' => 'OMeuWiki',
 2702+ 'config-project-namespace-help' => 'Seguindo o exemplo da Wikipedia, moitos wikis manteñen as súas páxinas de políticas separadas das súas páxinas de contido, nun "\'\'\'espazo de nomes do proxecto\'\'\'".
 2703+Todos os títulos presentes neste espazo de nomes comezan cun prefixo determinado, que pode especificar aquí.
 2704+Tradicionalmente, este prefixo deriva do nome do wiki, pero non pode conter caracteres de puntuación como "#" ou ":".',
26582705 'config-ns-invalid' => 'O espazo de nomes especificado, "<nowiki>$1</nowiki>", é incorrecto.
26592706 Especifique un espazo de nomes do proxecto diferente.',
26602707 'config-admin-box' => 'Conta de administrador',
@@ -2669,9 +2716,12 @@
26702717 'config-admin-password-same' => 'O contrasinal debe diferir do nome de usuario.',
26712718 'config-admin-password-mismatch' => 'Os contrasinais non coinciden.',
26722719 'config-admin-email' => 'Enderezo de correo electrónico:',
 2720+ 'config-admin-email-help' => 'Escriba aquí un enderezo de correo electrónico para que poida recibir mensaxes doutros usuarios a través do wiki, restablecer o contrasinal e ser notificado das modificacións feitas nas páxinas presentes na súa lista de vixilancia.',
26732721 'config-admin-error-user' => 'Erro interno ao crear un administrador co nome "<nowiki>$1</nowiki>".',
26742722 'config-admin-error-password' => 'Erro interno ao establecer un contrasinal para o administrador "<nowiki>$1</nowiki>": <pre>$2</pre>',
26752723 'config-subscribe' => 'Subscríbase á [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de correo de anuncios sobre lanzamentos].',
 2724+ 'config-subscribe-help' => 'Esta é unha lista de correos de baixo volume usada para anuncios sobre lanzamentos de novas versións, incluíndo avisos de seguridade importantes.
 2725+Debería subscribirse a ela e actualizar a súa instalación MediaWiki cando saian as novas versións.',
26762726 'config-almost-done' => 'Xa case rematou!
26772727 Neste paso pode saltar o resto da configuración e instalar o wiki agora mesmo.',
26782728 'config-optional-continue' => 'Facédeme máis preguntas.',
@@ -2721,6 +2771,9 @@
27222772 'config-memcached-help' => 'Lista de enderezos IP para Memcached.
27232773 Deben separarse por comas e especificar o porto a usar (por exemplo: 127.0.0.1:11211, 192.168.1.25:11211).',
27242774 'config-extensions' => 'Extensións',
 2775+ 'config-extensions-help' => 'As extensións anteriores detectáronse no seu directorio <code>./extensions</code>.
 2776+
 2777+Quizais necesite algunha configuración adicional, pero pode activalas agora',
27252778 'config-install-alreadydone' => "'''Atención:''' Semella que xa instalou MediaWiki e que o está a instalar de novo.
27262779 Vaia ata a seguinte páxina.",
27272780 'config-install-step-done' => 'feito',
Property changes on: branches/resourceloader/phase3/includes/installer/DatabaseInstaller.php
___________________________________________________________________
Modified: svn:mergeinfo
27282781 Merged /trunk/phase3/includes/installer/DatabaseInstaller.php:r72307-72342
Index: branches/resourceloader/phase3/includes/installer/CliInstaller.php
@@ -35,7 +35,7 @@
3636
3737 /**
3838 * Constructor.
39 - *
 39+ *
4040 * @param $siteName
4141 * @param $admin
4242 * @param $option Array
@@ -59,7 +59,7 @@
6060 }
6161
6262 $this->setVar( 'wgSitename', $siteName );
63 -
 63+
6464 if ( $admin ) {
6565 $this->setVar( '_AdminName', $admin );
6666 }
@@ -96,7 +96,7 @@
9797
9898 public function endStage( $step, $status ) {
9999 $warnings = $status->getWarningsArray();
100 -
 100+
101101 if ( !$status->isOk() ) {
102102 $this->showStatusMessage( $status );
103103 echo "\n";
@@ -107,7 +107,7 @@
108108 wfMsg( 'word-separator' ) );
109109 }
110110 }
111 -
 111+
112112 $this->showMessage( wfMsg( 'config-install-step-done' ) ."\n");
113113 }
114114
Index: branches/resourceloader/phase3/includes/filerepo/LocalFile.php
@@ -73,7 +73,7 @@
7474 $file->loadFromRow( $row );
7575 return $file;
7676 }
77 -
 77+
7878 /**
7979 * Create a LocalFile from a SHA-1 key
8080 * Do not call this except from inside a repo class.
@@ -91,7 +91,7 @@
9292 return false;
9393 }
9494 }
95 -
 95+
9696 /**
9797 * Fields in the image table
9898 */
@@ -130,7 +130,7 @@
131131 }
132132
133133 /**
134 - * Get the memcached key for the main data for this file, or false if
 134+ * Get the memcached key for the main data for this file, or false if
135135 * there is no access to the shared cache.
136136 */
137137 function getCacheKey() {
@@ -655,7 +655,7 @@
656656 $opts['ORDER BY'] = "oi_timestamp $order";
657657 $opts['USE INDEX'] = array( 'oldimage' => 'oi_name_timestamp' );
658658
659 - wfRunHooks( 'LocalFile::getHistory', array( &$this, &$tables, &$fields,
 659+ wfRunHooks( 'LocalFile::getHistory', array( &$this, &$tables, &$fields,
660660 &$conds, &$opts, &$join_conds ) );
661661
662662 $res = $dbr->select( $tables, $fields, $conds, __METHOD__, $opts, $join_conds );
@@ -792,7 +792,7 @@
793793 {
794794 if( is_null( $user ) ) {
795795 global $wgUser;
796 - $user = $wgUser;
 796+ $user = $wgUser;
797797 }
798798
799799 $dbw = $this->repo->getMasterDB();
@@ -914,7 +914,7 @@
915915 $nullRevision = Revision::newNullRevision( $dbw, $descTitle->getArticleId(),
916916 $log->getRcComment(), false );
917917 $nullRevision->insertOn( $dbw );
918 -
 918+
919919 wfRunHooks( 'NewRevisionFromEditComplete', array( $article, $nullRevision, $latest, $user ) );
920920 $article->updateRevisionOn( $dbw, $nullRevision );
921921
@@ -1023,7 +1023,7 @@
10241024 // Purge the new image
10251025 $this->purgeEverything();
10261026 }
1027 -
 1027+
10281028 return $status;
10291029 }
10301030
@@ -1870,7 +1870,7 @@
18711871 $dbw = $this->db;
18721872
18731873 // Update current image
1874 - $dbw->update(
 1874+ $dbw->update(
18751875 'image',
18761876 array( 'img_name' => $this->newName ),
18771877 array( 'img_name' => $this->oldName ),
@@ -1902,7 +1902,7 @@
19031903
19041904 /**
19051905 * Generate triplets for FSRepo::storeBatch().
1906 - */
 1906+ */
19071907 function getMoveTriplets() {
19081908 $moves = array_merge( array( $this->cur ), $this->olds );
19091909 $triplets = array(); // The format is: (srcUrl, destZone, destUrl)
@@ -1917,7 +1917,7 @@
19181918
19191919 /**
19201920 * Removes non-existent files from move batch.
1921 - */
 1921+ */
19221922 function removeNonexistentFiles( $triplets ) {
19231923 $files = array();
19241924 foreach( $triplets as $file )
Property changes on: branches/resourceloader/phase3/includes/Title.php
___________________________________________________________________
Modified: svn:mergeinfo
19251925 Merged /trunk/phase3/includes/Title.php:r72307-72342
Index: branches/resourceloader/phase3/includes/HttpFunctions.php
@@ -26,7 +26,7 @@
2727 * - sslVerifyCert (curl only) Verify SSL certificate
2828 * - caInfo (curl only) Provide CA information
2929 * - maxRedirects Maximum number of redirects to follow (defaults to 5)
30 - * - followRedirects Whether to follow redirects (defaults to false).
 30+ * - followRedirects Whether to follow redirects (defaults to false).
3131 * Note: this should only be used when the target URL is trusted,
3232 * to avoid attacks on intranet services accessible by HTTP.
3333 * @return Mixed: (bool)false on failure or a string on success
@@ -222,7 +222,7 @@
223223
224224 /**
225225 * Set the parameters of the request
226 -
 226+
227227 * @param $args Array
228228 * @todo overload the args param
229229 */
@@ -502,7 +502,7 @@
503503 }
504504
505505 /**
506 - * Returns true if the backend can follow redirects. Overridden by the
 506+ * Returns true if the backend can follow redirects. Overridden by the
507507 * child classes.
508508 */
509509 public function canFollowRedirects() {
@@ -767,7 +767,7 @@
768768 if ( isset( $this->sslVerifyHost ) ) {
769769 $this->curlOptions[CURLOPT_SSL_VERIFYHOST] = $this->sslVerifyHost;
770770 }
771 -
 771+
772772 if ( isset( $this->sslVerifyCert ) ) {
773773 $this->curlOptions[CURLOPT_SSL_VERIFYPEER] = $this->sslVerifyCert;
774774 }
@@ -800,7 +800,7 @@
801801 if ( ! @curl_setopt( $curlHandle, CURLOPT_FOLLOWLOCATION, true ) ) {
802802 wfDebug( __METHOD__.": Couldn't set CURLOPT_FOLLOWLOCATION. " .
803803 "Probably safe_mode or open_basedir is set.\n");
804 - // Continue the processing. If it were in curl_setopt_array,
 804+ // Continue the processing. If it were in curl_setopt_array,
805805 // processing would have halted on its entry
806806 }
807807 }
Property changes on: branches/resourceloader/phase3/includes
___________________________________________________________________
Modified: svn:mergeinfo
808808 Merged /trunk/phase3/includes:r72307-72342
Index: branches/resourceloader/phase3/RELEASE-NOTES
@@ -311,6 +311,7 @@
312312 * (bug 24981) Allow extensions to access SpecialUpload variables again
313313 * (bug 20744) Wiki forgets about an uploaded file
314314 * (bug 17913) Don't show "older edit" when no older edit available
 315+* (bug 6204) TOC not properly rendered when using $wgMaxTocLevel
315316
316317 === API changes in 1.17 ===
317318 * (bug 22738) Allow filtering by action type on query=logevent.
Index: branches/resourceloader/phase3/maintenance/parserTests.inc
@@ -657,7 +657,7 @@
658658 $db->query( "DROP TABLE IF EXISTS $newTableName" );
659659 } elseif ( in_array( $wgDBtype, array( 'postgres', 'oracle' ) ) ) {
660660 /* DROPs wouldn't work due to Foreign Key Constraints (bug 14990, r58669)
661 - * Use "DROP TABLE IF EXISTS $newTableName CASCADE" for postgres? That
 661+ * Use "DROP TABLE IF EXISTS $newTableName CASCADE" for postgres? That
662662 * syntax would also work for mysql.
663663 */
664664 } elseif ( $db->tableExists( $tbl ) ) {
Property changes on: branches/resourceloader/phase3/maintenance/deleteSelfExternals.php
___________________________________________________________________
Modified: svn:mergeinfo
665665 Merged /trunk/phase3/maintenance/deleteSelfExternals.php:r72307-72342
Index: branches/resourceloader/phase3/maintenance/parserTests.txt
@@ -3874,6 +3874,36 @@
38753875 !! end
38763876
38773877 !! test
 3878+TOC with wgMaxTocLevel=3 and two level four headings (bug 6204)
 3879+!! options
 3880+wgMaxTocLevel=3
 3881+!! input
 3882+==Section 1==
 3883+===Section 1.1===
 3884+====Section 1.1.1====
 3885+====Section 1.1.1.1====
 3886+==Section 2==
 3887+!! result
 3888+<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
 3889+<ul>
 3890+<li class="toclevel-1 tocsection-1"><a href="#Section_1"><span class="tocnumber">1</span> <span class="toctext">Section 1</span></a>
 3891+<ul>
 3892+<li class="toclevel-2 tocsection-2"><a href="#Section_1.1"><span class="tocnumber">1.1</span> <span class="toctext">Section 1.1</span></a></li>
 3893+</ul>
 3894+</li>
 3895+<li class="toclevel-1 tocsection-5"><a href="#Section_2"><span class="tocnumber">2</span> <span class="toctext">Section 2</span></a></li>
 3896+</ul>
 3897+</td></tr></table><script>if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
 3898+<h2><span class="editsection">[<a href="https://www.mediawiki.org/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a>]</span> <span class="mw-headline" id="Section_1">Section 1</span></h2>
 3899+<h3><span class="editsection">[<a href="https://www.mediawiki.org/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 1.1">edit</a>]</span> <span class="mw-headline" id="Section_1.1">Section 1.1</span></h3>
 3900+<h4><span class="editsection">[<a href="https://www.mediawiki.org/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 1.1.1">edit</a>]</span> <span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span></h4>
 3901+<h4><span class="editsection">[<a href="https://www.mediawiki.org/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 1.1.1.1">edit</a>]</span> <span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span></h4>
 3902+<h2><span class="editsection">[<a href="https://www.mediawiki.org/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 2">edit</a>]</span> <span class="mw-headline" id="Section_2">Section 2</span></h2>
 3903+
 3904+!! end
 3905+
 3906+
 3907+!! test
38783908 Resolving duplicate section names
38793909 !! input
38803910 == Foo bar ==
Index: branches/resourceloader/phase3/maintenance/tests/LanguageConverterTest.php
@@ -93,7 +93,7 @@
9494 $wgUser = User::newFromId( "admin" );
9595 $wgUser->setId( 1 );
9696 $wgUser->setOption( 'variant', 'tg-latn' ); // The user's data is ignored
97 - // because the variant is set in the URL.
 97+ // because the variant is set in the URL.
9898 $this->assertEquals( 'tg', $this->lc->getPreferredVariant( true, false ) );
9999 $this->assertEquals( 'tg', $this->lc->getPreferredVariant( true, true ) );
100100 }
Index: branches/resourceloader/phase3/maintenance/tests/RunSeleniumTests.php
@@ -26,8 +26,13 @@
2727 define( 'SELENIUMTEST', true );
2828
2929 require_once( dirname( dirname( __FILE__ ) )."/Maintenance.php" );
 30+require_once( 'PHPUnit/Framework.php' );
 31+require_once( 'PHPUnit/Extensions/SeleniumTestCase.php' );
3032
 33+
3134 class SeleniumTester extends Maintenance {
 35+ protected $selenium;
 36+
3237 public function __construct() {
3338 parent::__construct();
3439
@@ -45,27 +50,25 @@
4651 }
4752
4853 public function listBrowsers() {
49 - global $wgSeleniumTestsBrowsers;
 54+ $desc = "Available browsers:\n";
5055
51 - $desc = "Available browsers:\n";
52 - foreach ($wgSeleniumTestsBrowsers as $k => $v) {
 56+ $sel = new Selenium;
 57+ foreach ($sel->setupBrowsers() as $k => $v) {
5358 $desc .= " $k => $v\n";
5459 }
5560
5661 echo $desc;
5762 }
5863
59 - protected function runTests( $verbose = false ) {
60 - global $wgSeleniumLogger, $wgSeleniumTestSuites;
 64+ protected function getTestSuites() {
 65+ return array( 'SimpleSeleniumTestSuite' );
 66+ }
6167
62 - require_once( 'Testing/Selenium.php' );
63 - require_once( 'PHPUnit/Framework.php' );
64 - require_once( 'PHPUnit/Extensions/SeleniumTestCase.php' );
 68+ protected function runTests( ) {
6569 $result = new PHPUnit_Framework_TestResult;
66 - $wgSeleniumLogger = new SeleniumTestConsoleLogger;
67 - $result->addListener( new SeleniumTestListener( $wgSeleniumLogger ) );
 70+ $result->addListener( new SeleniumTestListener( $this->selenium->getLogger() ) );
6871
69 - foreach ( $wgSeleniumTestSuites as $testSuiteName ) {
 72+ foreach ( $this->getTestSuites() as $testSuiteName ) {
7073 $suite = new $testSuiteName;
7174 $suite->addTests();
7275 try {
@@ -77,20 +80,29 @@
7881 }
7982
8083 public function execute() {
81 - global $wgSeleniumServerPort, $wgSeleniumTestsSeleniumHost,
82 - $wgSeleniumTestsWikiUrl, $wgServer, $wgScriptPath;
 84+ global $wgServer, $wgScriptPath;
8385
 86+ /**
 87+ * @todo Add an alternative where settings are read from an INI file.
 88+ */
 89+ $this->selenium = new Selenium( );
 90+ $this->selenium->setUrl( $this->getOption( 'url', $wgServer . $wgScriptPath ) );
 91+ $this->selenium->setBrowser( $this->getOption( 'browser', 'firefox' ) );
 92+ $this->selenium->setPort( $this->getOption( 'port', 4444 ) );
 93+ $this->selenium->setHost( $this->getOption( 'host', 'localhost' ) );
 94+ $this->selenium->setUser( $this->getOption( 'user', 'WikiSysop' ) );
 95+ $this->selenium->setPass( $this->getOption( 'pass', 'Password' ) );
 96+ $this->selenium->setVerbose( $this->hasOption( 'verbose' ) );
 97+
8498 if( $this->hasOption( 'list-browsers' ) ) {
8599 $this->listBrowsers();
86100 exit(0);
87101 }
88102
89 - $wgSeleniumServerPort = $this->getOption( 'port', 4444 );
90 - $wgSeleniumTestsSeleniumHost = $this->getOption( 'host', 'localhost' );
91 - $wgSeleniumTestsWikiUrl = $this->getOption( 'url', $wgServer . $wgScriptPath );
92 - $wgSeleniumTestsUseBrowser = $this->getOption( 'browser', 'firefox' );
 103+ $logger = new SeleniumTestConsoleLogger;
 104+ $this->selenium->setLogger( $logger );
93105
94 - $this->runTests( $this->hasOption( 'verbose' ) );
 106+ $this->runTests( );
95107 }
96108 }
97109
Index: branches/resourceloader/phase3/maintenance/tests/TitlePermissionTest.php
@@ -1,6 +1,6 @@
22 <?php
33
4 -class TitlePermissionTest extends PhpUnit_Framework_TestCase {
 4+class TitlePermissionTest extends PHPUnit_Framework_TestCase {
55 static $title;
66 static $user;
77 static $anonUser;
Index: branches/resourceloader/phase3/maintenance/tests/selenium/Selenium.php
@@ -4,49 +4,76 @@
55 * This is implemented as a singleton.
66 */
77
8 -class Selenium extends Testing_Selenium {
 8+require( 'Testing/Selenium.php' );
 9+class Selenium {
910 protected static $_instance = null;
1011 public $isStarted = false;
 12+ public $tester;
1113
12 - public static function getInstance() {
13 - global $wgSeleniumTestsBrowsers, $wgSeleniumTestsSeleniumHost, $wgSeleniumTestsUseBrowser;
14 - global $wgSeleniumServerPort, $wgSeleniumLogger;
 14+ protected $port;
 15+ protected $host;
 16+ protected $browser;
 17+ protected $browsers;
 18+ protected $logger;
 19+ protected $user;
 20+ protected $pass;
 21+ protected $timeout = 30000;
 22+ protected $verbose;
1523
 24+ /**
 25+ * @todo this shouldn't have to be static
 26+ */
 27+ static protected $url;
 28+
 29+ /**
 30+ * Override parent
 31+ */
 32+ public function __construct() {
 33+ /**
 34+ * @todo this is an ugly hack to make information available to
 35+ * other tests. It should be fixed.
 36+ */
1637 if ( null === self::$_instance ) {
17 - $wgSeleniumLogger->write( "Browser: " . $wgSeleniumTestsBrowsers[$wgSeleniumTestsUseBrowser] );
18 - self::$_instance = new self( $wgSeleniumTestsBrowsers[$wgSeleniumTestsUseBrowser],
19 - self::getBaseUrl(),
20 - $wgSeleniumTestsSeleniumHost,
21 - $wgSeleniumServerPort );
 38+ self::$_instance = $this;
 39+ } else {
 40+ throw new MWException("Already have one Selenium instance.");
2241 }
23 - return self::$_instance;
2442 }
2543
2644 public function start() {
27 - parent::start();
 45+ $this->tester = new Testing_Selenium( $this->browser, self::$url, $this->host,
 46+ $this->port, $this->timeout );
 47+ if ( method_exists( $this->tester, "setVerbose" ) ) $this->tester->setVerbose( $this->verbose );
 48+
 49+ $this->tester->start();
2850 $this->isStarted = true;
2951 }
3052
3153 public function stop() {
32 - parent::stop();
 54+ $this->tester->stop();
 55+ $this->tester = null;
3356 $this->isStarted = false;
3457 }
3558
36 - static function getBaseUrl() {
37 - global $wgSeleniumTestsWikiUrl, $wgServer, $wgScriptPath;
38 - if ( $wgSeleniumTestsWikiUrl ) {
39 - return $wgSeleniumTestsWikiUrl;
40 - } else {
41 - return $wgServer . $wgScriptPath;
 59+ protected function setupBrowsers() {
 60+ /**
 61+ * @todo This needs to be replaced with something not hard
 62+ * coded. This would be entries in a .ini file or
 63+ * screen-scraping
 64+ * http://grid.tesla.usability.wikimedia.org:4444/console for
 65+ * example.
 66+ */
 67+ return array(
 68+ 'firefox' => 'Firefox 3.5 on Linux',
 69+ 'iexplorer' => '*iexploreproxy',
 70+ 'chrome' => '*googlechrome',
 71+ );
4272 }
43 - }
4473
4574 public function login() {
46 - global $wgSeleniumTestsWikiUser, $wgSeleniumTestsWikiPassword;
47 -
48 - $this->open( self::getBaseUrl() . '/index.php?title=Special:Userlogin' );
49 - $this->type( 'wpName1', $wgSeleniumTestsWikiUser );
50 - $this->type( 'wpPassword1', $wgSeleniumTestsWikiPassword );
 75+ $this->open( self::$url . '/index.php?title=Special:Userlogin' );
 76+ $this->type( 'wpName1', $this->user );
 77+ $this->type( 'wpPassword1', $this->pass );
5178 $this->click( "//input[@id='wpLoginAttempt']" );
5279 $this->waitForPageToLoad(5000);
5380 //after login we redirect to the main page. So check whether the "Prefernces" top menu item exists
@@ -54,21 +81,115 @@
5582 if ( $value != true ) {
5683 throw new Testing_Selenium_Exception( "Login Failed" );
5784 }
58 -
 85+
5986 }
6087
 88+ public static function getInstance() {
 89+ if ( null === self::$_instance ) {
 90+ throw new MWException( "No instance set yet" );
 91+ }
 92+
 93+ return self::$_instance;
 94+ }
 95+
6196 public function loadPage( $title, $action ) {
62 - $this->open( self::getBaseUrl() . '/index.php?title=' . $title . '&action=' . $action );
 97+ $this->open( self::$url . '/index.php?title=' . $title . '&action=' . $action );
6398 }
6499
65 - /*
66 - * Log to console or html depending on the value of $wgSeleniumTestsRunMode
67 - */
 100+ public function setLogger( $logger ) {
 101+ $this->logger = $logger;
 102+ }
 103+
 104+ public function getLogger( ) {
 105+ return $this->logger;
 106+ }
 107+
68108 public function log( $message ) {
69 - global $wgSeleniumLogger;
70 - $wgSeleniumLogger->write( $message );
 109+ $this->logger->write( $message );
71110 }
72 -
 111+
 112+ public function setUrl( $url ) {
 113+ self::$url = $url;
 114+ }
 115+
 116+ static public function getUrl() {
 117+ return self::$url;
 118+ }
 119+
 120+ public function setPort( $port ) {
 121+ $this->port = $port;
 122+ }
 123+
 124+ public function setUser( $user ) {
 125+ $this->user = $user;
 126+ }
 127+
 128+ public function setPass( $pass ) {
 129+ $this->pass = $pass;
 130+ }
 131+
 132+ public function setHost( $host ) {
 133+ $this->host = $host;
 134+ }
 135+
 136+ public function setVerbose( $verbose ) {
 137+ $this->verbose = $verbose;
 138+ }
 139+
 140+ public function setBrowser( $b ) {
 141+ $browsers = $this->setupBrowsers();
 142+ if ( !isset( $browsers[$b] ) ) {
 143+ throw new MWException( "Invalid Browser: $b.\n" );
 144+ }
 145+ $this->browser = $browsers[$b];
 146+ }
 147+
 148+ public function __call( $name, $args ) {
 149+ $t = call_user_func_array( array( $this->tester, $name), $args );
 150+ return $t;
 151+ }
 152+
 153+ public function setUrl( $url ) {
 154+ self::$url = $url;
 155+ }
 156+
 157+ static public function getUrl() {
 158+ return self::$url;
 159+ }
 160+
 161+ public function setPort( $port ) {
 162+ $this->port = $port;
 163+ }
 164+
 165+ public function setUser( $user ) {
 166+ $this->user = $user;
 167+ }
 168+
 169+ public function setPass( $pass ) {
 170+ $this->pass = $pass;
 171+ }
 172+
 173+ public function setHost( $host ) {
 174+ $this->host = $host;
 175+ }
 176+
 177+ public function setVerbose( $verbose ) {
 178+ $this->verbose = $verbose;
 179+ }
 180+
 181+ public function setBrowser( $b ) {
 182+ $browsers = $this->setupBrowsers();
 183+ if ( !isset( $browsers[$b] ) ) {
 184+ throw new MWException( "Invalid Browser: $b.\n" );
 185+ }
 186+ $this->browser = $browsers[$b];
 187+ }
 188+
 189+ public function __call( $name, $args ) {
 190+ $t = call_user_func_array( array( $this->tester, $name), $args );
 191+ return $t;
 192+ }
 193+
73194 // Prevent external cloning
74195 protected function __clone() { }
75196 // Prevent external construction
Index: branches/resourceloader/phase3/maintenance/tests/selenium/SeleniumTestSuite.php
@@ -15,7 +15,7 @@
1616 if ( $this->isSetUp ) {
1717 return;
1818 }
19 - $this->isSetUp = true;
 19+ $this->isSetUp = true;
2020 $this->selenium = Selenium::getInstance();
2121 $this->selenium->start();
2222 $this->login();
Property changes on: branches/resourceloader/phase3/maintenance/tests/phpunit
___________________________________________________________________
Modified: svn:mergeinfo
2323 Merged /trunk/phase3/maintenance/tests/phpunit:r72307-72342
Index: branches/resourceloader/phase3/maintenance/tests/UploadFromUrlTestSuite.php
@@ -13,11 +13,11 @@
1414
1515 function setUp() {
1616 global $wgParser, $wgParserConf, $IP, $messageMemc, $wgMemc, $wgDeferredUpdateList,
17 - $wgUser, $wgLang, $wgOut, $wgRequest, $wgStyleDirectory, $wgEnableParserCache,
18 - $wgMessageCache, $wgUseDatabaseMessages, $wgMsgCacheExpiry, $parserMemc,
19 - $wgNamespaceAliases, $wgNamespaceProtection, $wgLocalFileRepo,
20 - $wgThumbnailScriptPath, $wgScriptPath,
21 - $wgArticlePath, $wgStyleSheetPath, $wgScript, $wgStylePath;
 17+ $wgUser, $wgLang, $wgOut, $wgRequest, $wgStyleDirectory, $wgEnableParserCache,
 18+ $wgMessageCache, $wgUseDatabaseMessages, $wgMsgCacheExpiry, $parserMemc,
 19+ $wgNamespaceAliases, $wgNamespaceProtection, $wgLocalFileRepo,
 20+ $wgThumbnailScriptPath, $wgScriptPath,
 21+ $wgArticlePath, $wgStyleSheetPath, $wgScript, $wgStylePath;
2222
2323 $wgScript = '/index.php';
2424 $wgScriptPath = '/';
@@ -163,10 +163,10 @@
164164 return $dir;
165165 }
166166
167 - public static function suite()
168 - {
169 - return new UploadFromUrlTestSuite( 'UploadFromUrlTest' );
170 - }
 167+ public static function suite()
 168+ {
 169+ return new UploadFromUrlTestSuite( 'UploadFromUrlTest' );
 170+ }
171171
172172 }
173173
Index: branches/resourceloader/phase3/maintenance/postgres/archives/patch-update_sequences.sql
@@ -1,20 +1,20 @@
2 -ALTER SEQUENCE rev_rev_id_val RENAME TO revision_rev_id_seq;
 2+ALTER TABLE revision RENAME rev_rev_id_val TO revision_rev_id_seq;
33 ALTER TABLE revision ALTER COLUMN rev_id SET DEFAULT NEXTVAL('revision_rev_id_seq');
44
5 -ALTER SEQUENCE text_old_id_val RENAME TO text_old_id_seq;
 5+ALTER TABLE pagecontent RENAME text_old_id_val TO text_old_id_seq;
66 ALTER TABLE pagecontent ALTER COLUMN old_id SET DEFAULT nextval('text_old_id_seq');
77
8 -ALTER SEQUENCE category_id_seq RENAME TO category_cat_id_seq;
 8+ALTER TABLE category RENAME category_id_seq TO category_cat_id_seq;
99 ALTER TABLE category ALTER COLUMN cat_id SET DEFAULT nextval('category_cat_id_seq');
1010
11 -ALTER SEQUENCE ipblocks_ipb_id_val RENAME TO ipblocks_ipb_id_seq;
 11+ALTER TABLE ipblocks RENAME ipblocks_ipb_id_val TO ipblocks_ipb_id_seq;
1212 ALTER TABLE ipblocks ALTER COLUMN ipb_id SET DEFAULT nextval('ipblocks_ipb_id_seq');
1313
14 -ALTER SEQUENCE rc_rc_id_seq RENAME TO recentchanges_rc_id_seq;
 14+ALTER TABLE recentchanges RENAME rc_rc_id_seq TO recentchanges_rc_id_seq;
1515 ALTER TABLE recentchanges ALTER COLUMN rc_id SET DEFAULT nextval('recentchanges_rc_id_seq');
1616
17 -ALTER SEQUENCE log_log_id_seq RENAME TO logging_log_id_seq;
 17+ALTER TABLE logging RENAME log_log_id_seq TO logging_log_id_seq;
1818 ALTER TABLE logging ALTER COLUMN log_id SET DEFAULT nextval('logging_log_id_seq');
1919
20 -ALTER SEQUENCE pr_id_val RENAME TO page_restrictions_pr_id_seq;
 20+ALTER TABLE page_restrictions RENAME pr_id_val TO page_restrictions_pr_id_seq;
2121 ALTER TABLE page_restrictions ALTER COLUMN pr_id SET DEFAULT nextval('page_restrictions_pr_id_seq');
Index: branches/resourceloader/phase3/maintenance/postgres/tables.sql
@@ -190,7 +190,7 @@
191191 cl_sortkey TEXT NULL,
192192 cl_timestamp TIMESTAMPTZ NOT NULL,
193193 cl_sortkey_prefix TEXT NOT NULL DEFAULT '',
194 - cl_collation SMALLINT NOT NULL DEFAULT 0,
 194+ cl_collation TEXT NOT NULL DEFAULT 0,
195195 cl_type TEXT NOT NULL DEFAULT 'page'
196196 );
197197 CREATE UNIQUE INDEX cl_from ON categorylinks (cl_from, cl_to);
Index: branches/resourceloader/phase3/maintenance/updateCollation.php
@@ -15,10 +15,10 @@
1616 public function __construct() {
1717 parent::__construct();
1818
19 - global $wgCollationVersion;
 19+ global $wgCategoryCollation;
2020 $this->mDescription = <<<TEXT
2121 This script will find all rows in the categorylinks table whose collation is
22 -out-of-date (cl_collation != $wgCollationVersion) and repopulate cl_sortkey
 22+out-of-date (cl_collation != '$wgCategoryCollation') and repopulate cl_sortkey
2323 using the page title and cl_sortkey_prefix. If everything's collation is
2424 up-to-date, it will do nothing.
2525 TEXT;
@@ -27,13 +27,13 @@
2828 }
2929
3030 public function execute() {
31 - global $wgCollationVersion, $wgContLang;
 31+ global $wgCategoryCollation, $wgContLang;
3232
3333 $dbw = wfGetDB( DB_MASTER );
3434 $count = $dbw->selectField(
3535 'categorylinks',
3636 'COUNT(*)',
37 - 'cl_collation != ' . $dbw->addQuotes( $wgCollationVersion ),
 37+ 'cl_collation != ' . $dbw->addQuotes( $wgCategoryCollation ),
3838 __METHOD__
3939 );
4040
@@ -51,7 +51,7 @@
5252 'cl_sortkey', 'page_namespace', 'page_title'
5353 ),
5454 array(
55 - 'cl_collation != ' . $dbw->addQuotes( $wgCollationVersion ),
 55+ 'cl_collation != ' . $dbw->addQuotes( $wgCategoryCollation ),
5656 'cl_from = page_id'
5757 ),
5858 __METHOD__,
@@ -89,7 +89,7 @@
9090 'cl_sortkey' => $wgContLang->convertToSortkey(
9191 $title->getCategorySortkey( $prefix ) ),
9292 'cl_sortkey_prefix' => $prefix,
93 - 'cl_collation' => $wgCollationVersion,
 93+ 'cl_collation' => $wgCategoryCollation,
9494 'cl_type' => $type,
9595 'cl_timestamp = cl_timestamp',
9696 ),
Index: branches/resourceloader/phase3/maintenance/updaters.inc
@@ -103,7 +103,6 @@
104104 }
105105
106106 function archive( $name ) {
107 - wfDeprecated( __FUNCTION__ );
108107 return DatabaseBase::patchPath( $name );
109108 }
110109
@@ -833,12 +832,23 @@
834833 $task->execute();
835834 }
836835
 836+function do_cl_fields_update() {
 837+ if ( update_row_exists( 'cl_fields_update' ) ) {
 838+ wfOut( "...categorylinks up-to-date.\n" );
 839+ return;
 840+ }
 841+ wfOut( 'Updating categorylinks (again)...' );
 842+ global $wgDatabase;
 843+ $wgDatabase->sourceFile( archive( 'patch-categorylinks-better-collation2.sql' ) );
 844+ wfOut( "done.\n" );
 845+}
 846+
837847 function do_collation_update() {
838 - global $wgDatabase, $wgCollationVersion;
 848+ global $wgDatabase, $wgCategoryCollation;
839849 if ( $wgDatabase->selectField(
840850 'categorylinks',
841851 'COUNT(*)',
842 - 'cl_collation != ' . $wgDatabase->addQuotes( $wgCollationVersion ),
 852+ 'cl_collation != ' . $wgDatabase->addQuotes( $wgCategoryCollation ),
843853 __FUNCTION__
844854 ) == 0 ) {
845855 wfOut( "...collations up-to-date.\n" );
Index: branches/resourceloader/phase3/maintenance/doMaintenance.php
@@ -51,6 +51,7 @@
5252 $self = $maintenance->getName();
5353
5454 # Setup the profiler
 55+global $IP;
5556 if ( file_exists( "$IP/StartProfiler.php" ) ) {
5657 require_once( "$IP/StartProfiler.php" );
5758 } else {
Property changes on: branches/resourceloader/phase3/maintenance/populateRevisionLength.php
___________________________________________________________________
Modified: svn:mergeinfo
5859 Merged /trunk/phase3/maintenance/populateRevisionLength.php:r72307-72342
Property changes on: branches/resourceloader/phase3/maintenance/cleanupTable.inc
___________________________________________________________________
Modified: svn:mergeinfo
5960 Merged /trunk/phase3/maintenance/cleanupTable.inc:r72307-72342
Index: branches/resourceloader/phase3/maintenance/Maintenance.php
@@ -9,6 +9,11 @@
1010 define( 'DO_MAINTENANCE', dirname( __FILE__ ) . '/doMaintenance.php' );
1111 $maintClass = false;
1212
 13+function wfRunMaintenance( $class ) {
 14+ $maintClass = $class;
 15+ require_once( DO_MAINTENANCE );
 16+}
 17+
1318 // Make sure we're on PHP5 or better
1419 if ( version_compare( PHP_VERSION, '5.0.0' ) < 0 ) {
1520 die ( "Sorry! This version of MediaWiki requires PHP 5; you are running " .
@@ -400,7 +405,7 @@
401406 global $IP, $wgCommandLineMode, $wgRequestTime;
402407
403408 # Abort if called from a web server
404 - if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
 409+ if ( isset( $_SERVER ) && isset( $_SERVER['REQUEST_METHOD'] ) ) {
405410 $this->error( 'This script must be run from the command line', true );
406411 }
407412
Index: branches/resourceloader/phase3/maintenance/helloWorld.php
@@ -0,0 +1,28 @@
 2+<?php
 3+
 4+/**
 5+ * To the extent possible under law, I, Mark Hershberger, have waived all copyright and
 6+ * related or neighboring rights to Hello World. This work is published from United States.
 7+ * @copyright CC0 http://creativecommons.org/publicdomain/zero/1.0/
 8+ * @author Mark A. Hershberger <mah@everybody.org>
 9+ * @ingroup Maintenance
 10+ */
 11+
 12+require_once( dirname( __FILE__ ) . "/Maintenance.php" );
 13+
 14+class CommandLineInstaller extends Maintenance {
 15+
 16+ public function __construct() {
 17+ parent::__construct();
 18+
 19+ $this->addOption( 'name', 'Who to say Hello to', false, true);
 20+ }
 21+
 22+ public function execute() {
 23+ $name = $this->getOption( 'name', 'World' );
 24+ echo "Hello, $name!\n";
 25+ }
 26+}
 27+
 28+wfRunMaintenance( "CommandLineInstaller" );
 29+
Property changes on: branches/resourceloader/phase3/maintenance/helloWorld.php
___________________________________________________________________
Added: svn:eol-syle
130 + native
Index: branches/resourceloader/phase3/maintenance/tables.sql
@@ -493,12 +493,7 @@
494494 -- A binary string obtained by applying a sortkey generation algorithm
495495 -- (Language::convertToSortkey()) to page_title, or cl_sortkey_prefix . "\0"
496496 -- . page_title if cl_sortkey_prefix is nonempty.
497 - --
498 - -- Truncate so that the cl_sortkey key fits in 1000 bytes (MyISAM 5 with
499 - -- server_character_set=utf8). FIXME: this truncation probably makes no
500 - -- sense anymore; we should be using varbinary for this, utf8 will break
501 - -- everything.
502 - cl_sortkey varchar(70) binary NOT NULL default '',
 497+ cl_sortkey varbinary(255) NOT NULL default '',
503498
504499 -- A prefix for the raw sortkey manually specified by the user, either via
505500 -- [[Category:Foo|prefix]] or {{defaultsort:prefix}}. If nonempty, it's
@@ -511,12 +506,12 @@
512507 -- sorting method by approximate addition time.
513508 cl_timestamp timestamp NOT NULL,
514509
515 - -- Stores $wgCollationVersion at the time cl_sortkey was generated. This can
516 - -- be used to install new collation versions, tracking which rows are not yet
517 - -- updated. 0 means no collation, this is a legacy row that needs to be
 510+ -- Stores $wgCategoryCollation at the time cl_sortkey was generated. This
 511+ -- can be used to install new collation versions, tracking which rows are not
 512+ -- yet updated. '' means no collation, this is a legacy row that needs to be
518513 -- updated by updateCollation.php. In the future, it might be possible to
519514 -- specify different collations per category.
520 - cl_collation tinyint NOT NULL default 0,
 515+ cl_collation varbinary(32) NOT NULL default '',
521516
522517 -- Stores whether cl_from is a category, file, or other page, so we can
523518 -- paginate the three categories separately. This never has to be updated
Property changes on: branches/resourceloader/phase3/maintenance/tables.sql
___________________________________________________________________
Modified: svn:mergeinfo
524519 Merged /trunk/phase3/maintenance/tables.sql:r72307-72342
Index: branches/resourceloader/phase3/maintenance/archives/patch-categorylinks-better-collation.sql
@@ -1,11 +1,15 @@
22 --
33 -- patch-categorylinks-better-collation.sql
44 --
 5+-- Bugs 164, 1211, 23682. This is the second version of this patch; the
 6+-- changes are also incorporated into patch-categorylinks-better-collation2.sql,
 7+-- for the benefit of trunk users who applied the original.
58 ALTER TABLE /*$wgDBprefix*/categorylinks
 9+ CHANGE COLUMN cl_sortkey cl_sortkey varbinary(255) NOT NULL default '',
610 ADD COLUMN cl_sortkey_prefix varchar(255) binary NOT NULL default '',
7 - ADD COLUMN cl_collation tinyint NOT NULL default 0,
 11+ ADD COLUMN cl_collation varbinary(32) NOT NULL default '',
812 ADD COLUMN cl_type ENUM('page', 'subcat', 'file') NOT NULL default 'page',
913 ADD INDEX (cl_collation),
1014 DROP INDEX cl_sortkey,
1115 ADD INDEX cl_sortkey (cl_to, cl_type, cl_sortkey, cl_from);
 16+INSERT IGNORE INTO /*$wgDBprefix*/updatelog (ul_key) VALUES ('cl_fields_update');
Index: branches/resourceloader/phase3/maintenance/archives/patch-categorylinks-better-collation2.sql
@@ -0,0 +1,12 @@
 2+--
 3+-- patch-categorylinks-better-collation2.sql
 4+--
 5+-- Bugs 164, 1211, 23682. This patch exists for trunk users who already
 6+-- applied the first patch in its original version. The first patch was
 7+-- updated to incorporate the changes as well, so as not to do two alters on a
 8+-- large table unnecessarily for people upgrading from 1.16, so this will be
 9+-- skipped if unneeded.
 10+ALTER TABLE /*$wgDBprefix*/categorylinks
 11+ CHANGE COLUMN cl_sortkey cl_sortkey varbinary(255) NOT NULL default '',
 12+ CHANGE COLUMN cl_collation cl_collation varbinary(32) NOT NULL default '';
 13+INSERT IGNORE INTO /*$wgDBprefix*/updatelog (ul_key) VALUES ('cl_fields_update');
Property changes on: branches/resourceloader/phase3/maintenance/archives/patch-categorylinks-better-collation2.sql
___________________________________________________________________
Added: svn:eol-style
114 + native
Property changes on: branches/resourceloader/phase3/maintenance/archives
___________________________________________________________________
Modified: svn:mergeinfo
215 Merged /trunk/phase3/maintenance/archives:r72307-72342
Property changes on: branches/resourceloader/phase3
___________________________________________________________________
Modified: svn:mergeinfo
316 Merged /trunk/phase3:r72307-72342

Status & tagging log