r25016 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r25015‎ | r25016 | r25017 >
Date:23:06, 21 August 2007
Author:david
Status:old
Tags:
Comment:
Merged revisions 24866-25015 via svnmerge from
svn+ssh://david@svn.wikimedia.org/svnroot/mediawiki/trunk/phase3

........
r24870 | robchurch | 2007-08-17 06:01:35 -0700 (Fri, 17 Aug 2007) | 6 lines

* (bug 10971) `aufrom` parameter doesn't work with spaces
* Fix username handling issue with `auprefix` parameter

Usernames are *not* stored in "key" format, and treating them as such will cause various comparisons to misbehave. This was preventing `aufrom` from including the username (as it was supposed to) and would have broken `auprefix` for all comparisons containing spaces.

As a side-effect, both these parameters will now treat underscores as equivalent to spaces.
........
r24875 | brion | 2007-08-17 07:39:11 -0700 (Fri, 17 Aug 2007) | 2 lines

fix regression from r24838 -- lost a '>' char for redirecting 7za output to null
........
r24882 | robchurch | 2007-08-17 10:06:33 -0700 (Fri, 17 Aug 2007) | 1 line

Make Xml::expandAttributes() a bit more robust against non-array arguments; people keep passing it things it doesn't like :(
........
r24884 | robchurch | 2007-08-17 13:53:17 -0700 (Fri, 17 Aug 2007) | 2 lines

* Confirmation is now required when deleting old versions of files
* Users can now enter comments when deleting old versions of files
........
r24885 | robchurch | 2007-08-17 14:08:17 -0700 (Fri, 17 Aug 2007) | 1 line

Remove some declarations for unused globals...
........
r24889 | rotem | 2007-08-17 17:06:34 -0700 (Fri, 17 Aug 2007) | 1 line

Update for he.
........
r24909 | aaron | 2007-08-19 09:34:45 -0700 (Sun, 19 Aug 2007) | 1 line

*Update page on null revisions made for uploads
........
r24932 | nickj | 2007-08-20 00:42:32 -0700 (Mon, 20 Aug 2007) | 6 lines

Prevent E_STRICT warning:
"Trying to get property of non-object in includes/PageHistory.php on line 257"
Happens because $next === 'unknown', i.e. not an object, on one revision for me with the following fuzz command line test on a local test wiki:

curl --silent --include --globoff -F 'offset'='&#x0003C;<u ' -F 'dir'='prev' 'http://localhost/wiki/index.php?title=Main_Page&amp;action=history' | less
........
r24934 | nickj | 2007-08-20 01:04:12 -0700 (Mon, 20 Aug 2007) | 2 lines

Variable $user seemed to be used before it was defined - removing.
........
r24935 | nickj | 2007-08-20 01:13:16 -0700 (Mon, 20 Aug 2007) | 2 lines

Variable $titleString seemed to be used before it was defined - removing.
........
r24937 | wegge | 2007-08-20 02:31:16 -0700 (Mon, 20 Aug 2007) | 1 line

New translations for da
........
r24938 | raymond | 2007-08-20 02:47:17 -0700 (Mon, 20 Aug 2007) | 1 line

Update German
........
r24939 | raymond | 2007-08-20 03:50:49 -0700 (Mon, 20 Aug 2007) | 2 lines

* (bug 10977) Update Portuguese translations
Patch by lugusto
........
r24940 | raymond | 2007-08-20 03:57:39 -0700 (Mon, 20 Aug 2007) | 2 lines

* (bug 10972) Update Chinese translations
Patch by Shinjiman
........
r24941 | robchurch | 2007-08-20 06:03:00 -0700 (Mon, 20 Aug 2007) | 1 line

Bug number for image deletion confirmation stuff
........
r24943 | raymond | 2007-08-20 06:08:45 -0700 (Mon, 20 Aug 2007) | 2 lines

* (bug 10972) Update Chinese translations
Patch by Shinjiman
........
r24944 | robchurch | 2007-08-20 06:13:07 -0700 (Mon, 20 Aug 2007) | 1 line

(bug 11001) Submit Special:Newpages as a GET, rather than a POST request
........
r24945 | raymond | 2007-08-20 06:17:12 -0700 (Mon, 20 Aug 2007) | 1 line

* (bug 10983) Removing Wikipedia hardwired messages
........
r24946 | robchurch | 2007-08-20 06:42:23 -0700 (Mon, 20 Aug 2007) | 1 line

Trim some end-of-file whitespace
........
r24947 | brion | 2007-08-20 06:43:14 -0700 (Mon, 20 Aug 2007) | 2 lines

Throw an exception for invalid data in expandAttributes() so we get a backtrace and can beat the shit out of whoever did us wrong instead of just seeing a useless PHP warning message or worse yet silently going through without even knowing we probably lost the data we wanted somewhere else in our output
........
r24948 | brion | 2007-08-20 06:46:08 -0700 (Mon, 20 Aug 2007) | 2 lines

aaand restore behavior from prior to r24882 on expected input
........
r24950 | robchurch | 2007-08-20 07:32:08 -0700 (Mon, 20 Aug 2007) | 4 lines

* Fix FileRevertForm::getTimestamp() - stupid assumption about archive names :)
* Do date/time adjustments where applicable
* Reverse odd ordering of date/times in messages - time, then date looks cleaner in English
* Remove the commented-out remnants for now
........
r24951 | robchurch | 2007-08-20 07:35:59 -0700 (Mon, 20 Aug 2007) | 1 line

As r24950, but for FileDeleteForm
........
r24952 | robchurch | 2007-08-20 07:49:07 -0700 (Mon, 20 Aug 2007) | 1 line

More robust existence/sanity checking
........
r24953 | robchurch | 2007-08-20 07:57:30 -0700 (Mon, 20 Aug 2007) | 1 line

Use an instance variable, not a static one
........
r24954 | rotem | 2007-08-20 08:54:18 -0700 (Mon, 20 Aug 2007) | 1 line

Update.
........
r24966 | raymond | 2007-08-20 14:37:48 -0700 (Mon, 20 Aug 2007) | 2 lines

Fix a regression from r24808:
PHP-Notice: 'Undefined variable:'
........
r24968 | aaron | 2007-08-20 20:21:27 -0700 (Mon, 20 Aug 2007) | 1 line

*If no changes, made, we have no new revision. Make $revision NULL, rather than not defined at all, as this spewed errors on no-change rollbacks
........
r24969 | nickj | 2007-08-20 20:57:54 -0700 (Mon, 20 Aug 2007) | 47 lines

Static code analysis housekeeping time... things that could be double-checked are marked with "[Note: some-comment]" :
if-if-else without curly braces [api/ApiQuerySiteinfo.php] --> adding
Unused global declaration: $wgGroupPermissions --> removing
Unused global declaration: $wgEmailConfirmToEdit (line 301) --> removing
Variable $id appears only once (line 1021) --> removing
Variable $m was used before it was defined (line 805) --> defining.
Variable $retval was used before it was defined (line 2346) --> renaming to $result
Variable $rcid appears only once (line 244 of RecentChange.php) --> using this instead of $change [Note: was left over from r24607 refactoring, revert if wrong please]
Unused global declaration: $wgCommandLineMode (line 11) --> removing
Variable $k appears only once (line 132 of ImagePage.php) --> removing.
Variable $info appears only once (line 311 of ImagePage.php) --> removing.
Unused global declaration: $wgTitle (line 569 of ImagePage.php) -> removing.
Variable $handlerParams was used before it was defined (line 616 of Linker.php) --> resolved by Raymond in r24966
Variable $match was used before it was defined (line 1031 of Linker.php) --> defining.
Unused global declaration: $wgEnotifWatchlist (line 253 of UserMailer.php) --> removing
Unused global declaration: $wgShowUpdatedMarker (line 253 of UserMailer.php) --> removing
Variable $img appears only once (line 446 of SpecialUpload.php) --> added definition, defined as null, flagged with @todo [Note: should $img be defined in this context, or is it intended to be null? And should the return value after the hook be checked in some way?]
Unused global declaration: $wgEnableAPI (line 739 of SpecialUpload.php) --> removing.
Unused global declaration: $wgNamespaceProtection (line 1030 of OutputPage.php) --> removing.
Unused global declaration: $wgContLang (line 18 of SpecialWatchlist.php) --> removing.
Unused global declaration: $wgRawHtml (line 269 of SpecialMovepage.php) --> removing.
The value of variable $page was never used (line 331 of SpecialUndelete.php) --> removing line, as $page gets redefined a few lines down.
Variable $synIndex appears only once (line 521 of MagicWord.php) --> commenting out.
Variable $case appears only once (line 539 of MagicWord.php) --> removing from foreach index key usage.
Variable $wgUser appears only once (line 1039 of Title.php) --> adding line to declare as a global, would be null otherwise.
Variable $m was used before it was defined (line 285 of Title.php) --> defining.
Variable $id appears only once (line 1150 of Title.php) --> removing from foreach index key usage.
Variable $subpage appears only once (line 1297 of Title.php) --> commenting out.
Variable $restrictions appears only once (line 1399 of Title.php) --> commenting out.
Variable $mime appears only once (line 210 of filerepo/OldLocalFile.php) --> removing.
Variable $deprefixedName appears only once (line 213 of filerepo/LocalFile.php) --> removing.
Variable $m appears only once (line 541 of filerepo/LocalFile.php) --> removing.
Variable $where appears only once (line 1245 of filerepo/LocalFile.php) --> removing.
Variable $info appears only once (line 1427 of filerepo/LocalFile.php) --> removing.
Variable $rel appears only once (line 138 of filerepo/RepoGroup.php) --> commenting out.
Variable $zone appears only once (line 138 of filerepo/RepoGroup.php) --> commenting out.
Variable $nbytes appears only once (line 208 of media/Generic.php) --> added a return line that uses $nbytes. [Note: I'm assuming that this was the intent]
Variable $offset appears only once (line 201 of SpecialListusers.php) --> removing.
Variable $limit appears only once (line 201 of SpecialListusers.php) --> removing.
Variable $groupTarget appears only once (line 203 of SpecialListusers.php) --> removing.
Unused global declaration: $wgLang (line 74 of SpecialWantedpages.php) --> removing.
Variable $block appears only once (line 244 of SpecialProtectedpages.php) --> removing.
Variable $offset appears only once (line 281 of SpecialProtectedpages.php) --> removing.
Variable $limit appears only once (line 281 of SpecialProtectedpages.php) --> removing.
Unused global declaration: $wgLang (line 30 of FileDeleteForm.php) --> removing.
Unused global declaration: $wgServer (line 30 of FileDeleteForm.php) --> removing.
........
r24970 | nickj | 2007-08-20 21:03:33 -0700 (Mon, 20 Aug 2007) | 2 lines

Already had brackets as part of the string.
........
Modified paths:
  • /branches/liquidthreads (modified) (history)
  • /branches/liquidthreads/RELEASE-NOTES (modified) (history)
  • /branches/liquidthreads/extensions/LqtExtension.php (modified) (history)
  • /branches/liquidthreads/includes/Article.php (modified) (history)
  • /branches/liquidthreads/includes/AutoLoader.php (modified) (history)
  • /branches/liquidthreads/includes/Database.php (modified) (history)
  • /branches/liquidthreads/includes/EditPage.php (modified) (history)
  • /branches/liquidthreads/includes/Export.php (modified) (history)
  • /branches/liquidthreads/includes/FileDeleteForm.php (added) (history)
  • /branches/liquidthreads/includes/FileDeleteForm.php (added) (history)
  • /branches/liquidthreads/includes/FileRevertForm.php (modified) (history)
  • /branches/liquidthreads/includes/ImagePage.php (modified) (history)
  • /branches/liquidthreads/includes/Linker.php (modified) (history)
  • /branches/liquidthreads/includes/MagicWord.php (modified) (history)
  • /branches/liquidthreads/includes/OutputPage.php (modified) (history)
  • /branches/liquidthreads/includes/PageHistory.php (modified) (history)
  • /branches/liquidthreads/includes/RecentChange.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialListusers.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialMovepage.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialNewpages.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialProtectedpages.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialUndelete.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialUpload.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialUserlogin.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialUserrights.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialWantedpages.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialWatchlist.php (modified) (history)
  • /branches/liquidthreads/includes/Title.php (modified) (history)
  • /branches/liquidthreads/includes/UserMailer.php (modified) (history)
  • /branches/liquidthreads/includes/Xml.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiBase.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiPageSet.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQueryAllUsers.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQuerySiteinfo.php (modified) (history)
  • /branches/liquidthreads/includes/filerepo/ICRepo.php (modified) (history)
  • /branches/liquidthreads/includes/filerepo/LocalFile.php (modified) (history)
  • /branches/liquidthreads/includes/filerepo/OldLocalFile.php (modified) (history)
  • /branches/liquidthreads/includes/filerepo/RepoGroup.php (modified) (history)
  • /branches/liquidthreads/includes/media/Generic.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesDa.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesDe.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesEn.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesHak.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesHe.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesPl.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesPt.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesSu.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesUk.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_classical.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_cn.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_tw.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_yue.php (modified) (history)
  • /branches/liquidthreads/maintenance/language/messages.inc (modified) (history)

Diff [purge]

Index: branches/liquidthreads/languages/messages/MessagesZh_cn.php
@@ -306,7 +306,7 @@
307307 'youhavenewmessages' => '您有$1($2)。',
308308 'newmessageslink' => '新信息',
309309 'newmessagesdifflink' => '上次更改',
310 -'youhavenewmessagesmulti' => '您在$1上有新消息',
 310+'youhavenewmessagesmulti' => '您在 $1 有一条新信息',
311311 'editsection' => '编辑',
312312 'editold' => '编辑',
313313 'editsectionhint' => '编辑段落: $1',
@@ -332,10 +332,10 @@
333333 'nstab-category' => '分类',
334334
335335 # Main script and global functions
336 -'nosuchaction' => '没有这个命令',
337 -'nosuchactiontext' => 'URL 请求的命令无法被这个wiki识别',
338 -'nosuchspecialpage' => '没有此特殊页面',
339 -'nospecialpagetext' => '您请求的特殊页面是无效的, 在[[Special:Specialpages]]可得到所有有效的特殊页面的列表。',
 336+'nosuchaction' => '这个命令不存在',
 337+'nosuchactiontext' => '这个wiki无法识别URL请求的命令',
 338+'nosuchspecialpage' => '此特殊页面不存在',
 339+'nospecialpagetext' => '您请求的特殊页面无效。[[Special:Specialpages]]载有所有有效特殊页面的列表。',
340340
341341 # General errors
342342 'error' => '错误',
@@ -353,7 +353,7 @@
354354 MySQL返回错误“$3: $4”。',
355355 'noconnect' => '抱歉!网站遇到一些技术问题,无法连接数据库服务器。<br />$1',
356356 'nodb' => '无法选择数据库$1',
357 -'cachederror' => '下面的页面是被请求页面在缓存中的一个副本,可能不是最新版本的。',
 357+'cachederror' => '以下页面是缓存中的副本,未必是最新版本。',
358358 'laggedslavemode' => '警告: 页面可能不包含最近的更新。',
359359 'readonly' => '数据库被锁定',
360360 'enterlockreason' => '请输入锁定的原因,包括预计重新开放的时间',
@@ -361,7 +361,7 @@
362362 这很可能是由于数据库正在维修,完成后即可恢复。
363363
364364 管理员有如下解释: $1',
365 -'missingarticle' => '数据库找不到页面文子"$1"。
 365+'missingarticle' => '数据库找不到页面文字"$1"。
366366
367367 通常这是由于修订历史页上过时的链接到已经被删除的页面所导致的。
368368
@@ -398,7 +398,7 @@
399399 'sqlhidden' => '(SQL查询已隐藏)',
400400 'cascadeprotected' => '这个页面已经被保护,因为这个页面被以下已标注"联锁保护"的{{PLURAL:$1|一个|多个}}被保护页面包含:
401401 $2',
402 -'namespaceprotected' => "您并没有权限去编辑在'''$1'''名字空间内的页面。",
 402+'namespaceprotected' => "您并没有权限编辑'''$1'''名字空间内的页面。",
403403 'customcssjsprotected' => '您並無權限去編輯這個頁面,因為它包含了另一位用戶的個人設定。',
404404 'ns-specialprotected' => '在特殊名字空間中的頁面是不可以編輯的。',
405405
@@ -447,7 +447,7 @@
448448 'prefs-help-email' => '电子邮件是可选的,但当启用它后可以在您没有公开自己的用户身份时通过您的用户页或用户讨论页与您联系。',
449449 'nocookiesnew' => '已成功创建新账户!侦测到您已关闭 Cookies,请开启它并登录。',
450450 'nocookieslogin' => '本站利用 Cookies 进行用户登录,侦测到您已关闭 Cookies,请开启它并重新登录。',
451 -'noname' => '你没有输入一个有效的用户名。',
 451+'noname' => '你没有输入有效的用户名。',
452452 'loginsuccesstitle' => '登录成功',
453453 'loginsuccess' => '你现在以"$1"的身份登录{{SITENAME}}。',
454454 'nosuchuser' => '找不到用户"$1"。检查您的拼写,或者建立一个新账户。',
@@ -530,8 +530,8 @@
531531
532532 这次查封是由$1所封的。当中的原因是''$2''。
533533
534 -* 这次查封的开始时间是:$8
535 -* 这次查封的到期时间是:$6
 534+* 这次查封开始的时间是:$8
 535+* 这次查封到期的时间是:$6
536536 * 对于被查封者:$7
537537
538538 你可以联络$1或者其他的[[{{MediaWiki:grouppage-sysop}}|管理员]],讨论这次查封。
@@ -948,6 +948,7 @@
949949 'uploadwarning' => '上载警告',
950950 'savefile' => '保存文件',
951951 'uploadedimage' => '已上载"[[$1]]"',
 952+'overwroteimage' => '已经上载"[[$1]]"的新版本',
952953 'uploaddisabled' => '无法上传',
953954 'uploaddisabledtext' => '文件上传在此网站不可用。',
954955 'uploadscripted' => '该文件包含可能被网络浏览器错误解释的 HTML 或脚本代码。',
@@ -1023,9 +1024,22 @@
10241025 'filerevert-comment' => '注解:',
10251026 'filerevert-defaultcomment' => '已经恢复到于$1 $2的版本',
10261027 'filerevert-submit' => '恢复',
1027 -'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已经恢复到[于$2 $3的$4版本]。</span>',
 1028+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已经恢复到[$4 于$2 $3的版本]。</span>',
10281029 'filerevert-badversion' => '这个文件所提供的时间截记并无先前的本地版本。',
10291030
 1031+# File deletion
 1032+'filedelete' => '删除$1',
 1033+'filedelete-legend' => '删除文件',
 1034+'filedelete-intro' => "您现正删除'''[[Media:$1|$1]]'''。",
 1035+'filedelete-intro-old' => "<span class=\"plainlinks\">你现正删除'''[[Media:$1|$1]]'''于[$4 $2 $3]的版本。</span>",
 1036+'filedelete-comment' => '注解:',
 1037+'filedelete-submit' => '删除',
 1038+'filedelete-success' => "'''$1'''已经删除。",
 1039+'filedelete-success-old' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''于 $2 $3 的版本已经删除。</span>",
 1040+'filedelete-nofile' => "'''$1'''在这个网站中不存在。",
 1041+'filedelete-nofile-old' => "这里没有'''$1'''于 $2 $3 的版本。",
 1042+'filedelete-iscurrent' => '您现正尝试删除这个文件的最近版本。请先将个该文件回退成较旧的版本。',
 1043+
10301044 # MIME search
10311045 'mimesearch' => 'MIME 搜索',
10321046 'mimesearch-summary' => '本页面启用文件MIME类型过滤器。输入:内容类型/子类型,如 <tt>image/jpeg</tt>。',
@@ -1806,13 +1820,15 @@
18071821 'mediawarning' => "'''警告''': 该文件可能包含恶意代码,运行它可能对您的系统带来危险。<hr>",
18081822 'imagemaxsize' => '在图像描述页对图像大小限制为:',
18091823 'thumbsize' => '缩略图大小:',
 1824+'widthheightpage' => '$1×$2, $3页',
18101825 'file-info' => '(文件大小: $1, MIME 类型: $2)',
18111826 'file-info-size' => '($1 × $2 像素,文件大小:$3 ,MIME类型:$4)',
18121827 'file-nohires' => '<small>无更高解像度可提供。</small>',
1813 -'file-svg' => '<small>这是一幅无损可缩放的矢量图像。基本大小: $1 × $2 像素。</small>',
 1828+'svg-long-desc' => '(SVG文件,表面大小: $1 × $2 像素,文件大小:$3)',
18141829 'show-big-image' => '完整分辨率',
18151830 'show-big-image-thumb' => '<small>这幅略缩图的分辨率: $1 × $2 像素</small>',
18161831
 1832+# Special:Newimages
18171833 'newimages' => '新建图像画廊',
18181834 'showhidebots' => '($1机器人)',
18191835 'noimages' => '无可查看图像。',
@@ -2214,8 +2230,8 @@
22152231 'livepreview-error' => '连接失败: $1 "$2" 尝试标准预览。',
22162232
22172233 # Friendlier slave lag warnings
2218 -'lag-warn-normal' => '新于$1秒的更改可能不会在这个列表中显示。',
2219 -'lag-warn-high' => '由于数据库的过度延迟,新于$1秒的更改可能不会在这个列表中显示。',
 2234+'lag-warn-normal' => '过去$1秒内的更改未必会在这个列表中显示。',
 2235+'lag-warn-high' => '由于数据库的过度延迟,过去$1秒的更改未必会在这个列表中显示。',
22202236
22212237 # Watchlist editor
22222238 'watchlistedit-numitems' => '您的监视列表中共有$1个标题,当中不包括对话页面。',
Index: branches/liquidthreads/languages/messages/MessagesDa.php
@@ -1026,6 +1026,7 @@
10271027 'uploadwarning' => 'Advarsel',
10281028 'savefile' => 'Gem fil',
10291029 'uploadedimage' => 'Lagde "[[$1]]" op',
 1030+'overwroteimage' => 'Lagde en ny version af "[[$1]]" op',
10301031 'uploaddisabled' => 'Desværre er funktionen til at lægge billeder op afbrudt på denne server.',
10311032 'uploaddisabledtext' => 'Upload af filer er deaktiveret på {{SITENAME}}.',
10321033 'uploadscripted' => 'Denne fil indeholder HTML eller script-kode, der i visse tilfælde can fejlfortolkes af en browser.',
@@ -1105,6 +1106,19 @@
11061107 'filerevert-success' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]''' er gendannet til [$4 version fra $2, $3].</span>",
11071108 'filerevert-badversion' => 'Der findes ingen lokal udgave af denne fil med det opgivne tidsstempel.',
11081109
 1110+# File deletion
 1111+'filedelete' => 'Slet $1',
 1112+'filedelete-legend' => 'Slet fil',
 1113+'filedelete-intro' => "Du er ved at slette '''[[Media:$1|$1]]'''.",
 1114+'filedelete-intro-old' => "<span class=\"plainlinks\">Du er ved at slette en tidligere version af '''[[Media:$1|$1]]''' fra [$4 $2, $3].</span>",
 1115+'filedelete-comment' => 'Kommentar:',
 1116+'filedelete-submit' => 'Slet',
 1117+'filedelete-success' => "'''$1''' er blevet slettet.",
 1118+'filedelete-success-old' => "<span class=\"plainlinks\">En gamllem version af '''[[Media:$1|$1]]''' fra $2, $3 er blevet slettet.</span>",
 1119+'filedelete-nofile' => "'''$1''' findes ikke på dette websted.",
 1120+'filedelete-nofile-old' => "Der findes ikke en version af '''$1''' fra $2, $3.",
 1121+'filedelete-iscurrent' => 'Du har forsøgt at slette den nyeste version. Gendan en tidligere udgave først.',
 1122+
11091123 # MIME search
11101124 'mimesearch' => 'Søge efter MIME-type',
11111125 'mimesearch-summary' => 'På denne specialside kan filerne filtreres efter MIME-typen. Indtastningen skal altid indeholde medie- og undertypen: <tt>image/jpeg</tt> (se billedbeskrivelsessiden).',
Index: branches/liquidthreads/languages/messages/MessagesDe.php
@@ -1176,7 +1176,7 @@
11771177 'imagelist_search_for' => 'Suche nach Datei:',
11781178
11791179 # File reversion
1180 -'filerevert' => 'Zurücksetzen von $1',
 1180+'filerevert' => 'Zurücksetzen von „$1“',
11811181 'filerevert-legend' => 'Datei zurücksetzen',
11821182 'filerevert-intro' => '<span class="plainlinks">Du setzt die Datei \'\'\'[[Media:$1|$1]]\'\'\' auf die [$4 Version vom $2, $3 Uhr] zurück.</span>',
11831183 'filerevert-comment' => 'Grund:',
@@ -1185,6 +1185,19 @@
11861186 'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\' wurde auf die [$4 Version vom $2, $3 Uhr] zurückgesetzt.</span>',
11871187 'filerevert-badversion' => 'Es gibt keine Version der Datei zu dem angegebenen Zeitpunkt.',
11881188
 1189+# File deletion
 1190+'filedelete' => 'Lösche „$1“',
 1191+'filedelete-legend' => 'Lösche Datei',
 1192+'filedelete-intro' => "Du löscht die Datei '''„[[Media:$1|$1]]“'''.",
 1193+'filedelete-intro-old' => '<span class="plainlinks">Du löscht von der Datei \'\'\'„[[Media:$1|$1]]“\'\'\' die [$4 Version vom $2, $3 Uhr].</span>',
 1194+'filedelete-comment' => 'Grund:',
 1195+'filedelete-submit' => 'Löschen',
 1196+'filedelete-success' => "'''„$1“''' wurde gelöscht.",
 1197+'filedelete-success-old' => '<span class="plainlinks">Von der Datei \'\'\'„[[Media:$1|$1]]“\'\'\' wurde die Version vom $2, $3 Uhr gelöscht.</span>',
 1198+'filedelete-nofile' => "'''„$1“''' ist auf dieser Website nicht vorhanden.",
 1199+'filedelete-nofile-old' => "Es gibt von '''„$1“''' keine Version vom $2, $3 Uhr.",
 1200+'filedelete-iscurrent' => 'Du versuchst, die aktuelle Version dieser Datei zu löschen. Bitte setze vorher auf eine ältere Version zurück.',
 1201+
11891202 # MIME search
11901203 'mimesearch' => 'Suche nach MIME-Typ',
11911204 'mimesearch-summary' => 'Auf dieser Spezialseite können die Dateien nach dem MIME-Typ gefiltert werden. Die Eingabe muss immer den Medien- und Subtyp beinhalten: <tt>image/jpeg</tt> (siehe Bildbeschreibungsseite).',
@@ -1965,7 +1978,7 @@
19661979 'patrol-log-diff' => 'Version $1',
19671980
19681981 # Image deletion
1969 -'deletedrevision' => 'alte Version $1 gelöscht.',
 1982+'deletedrevision' => 'alte Version: $1.',
19701983 'filedeleteerror-short' => 'Fehler beim Datei-Löschen: $1',
19711984 'filedeleteerror-long' => 'Beim Datei-Löschen wurden Fehler festgestellt:
19721985
Index: branches/liquidthreads/languages/messages/MessagesHak.php
@@ -229,23 +229,24 @@
230230 'versionrequired' => 'Sî-yeu MediaWiki $1-pán',
231231 'versionrequiredtext' => 'Sî-yeu pán-pún $1-ke MediaWiki chhòi-nèn sṳ́-yung chhṳ́-chông. Chhâm-cheu [[Special:Version|Pán-pún]].',
232232
233 -'ok' => 'OK',
234 -'pagetitle' => '$1 - {{SITENAME}}',
235 -'retrievedfrom' => 'Chhí-chhṳ "$1"',
236 -'youhavenewmessages' => 'Ngì yû $1($2)。',
237 -'newmessageslink' => 'Sîn sin-sit',
238 -'newmessagesdifflink' => 'Sông-chhṳ kiên-kói',
239 -'editsection' => 'phiên-siá',
240 -'editold' => 'phiên-cho',
241 -'editsectionhint' => 'Phiên-siá thon-lo̍k: $1',
242 -'toc' => 'Muk-liu̍k',
243 -'showtoc' => 'Hién-sṳ',
244 -'hidetoc' => 'yún-chhòng',
245 -'thisisdeleted' => 'Chhà-khon fe̍t-chá fî-fu̍k $1?',
246 -'viewdeleted' => 'Kiám-sṳ $1?',
247 -'restorelink' => '$1-ke pûn chhù-hi ke pán-pún',
248 -'feedlinks' => 'Só-thin:',
249 -'feed-invalid' => 'Mò-háu ke só-thin lui-hìn.',
 233+'ok' => 'OK',
 234+'pagetitle' => '$1 - {{SITENAME}}',
 235+'retrievedfrom' => 'Chhí-chhṳ "$1"',
 236+'youhavenewmessages' => 'Ngì yû $1($2)。',
 237+'newmessageslink' => 'Sîn sin-sit',
 238+'newmessagesdifflink' => 'Sông-chhṳ kiên-kói',
 239+'youhavenewmessagesmulti' => 'Ngì chhai $1 yû yit-thiàu sîn sêu-sit',
 240+'editsection' => 'phiên-siá',
 241+'editold' => 'phiên-cho',
 242+'editsectionhint' => 'Phiên-siá thon-lo̍k: $1',
 243+'toc' => 'Muk-liu̍k',
 244+'showtoc' => 'Hién-sṳ',
 245+'hidetoc' => 'yún-chhòng',
 246+'thisisdeleted' => 'Chhà-khon fe̍t-chá fî-fu̍k $1?',
 247+'viewdeleted' => 'Kiám-sṳ $1?',
 248+'restorelink' => '$1-ke pûn chhù-hi ke pán-pún',
 249+'feedlinks' => 'Só-thin:',
 250+'feed-invalid' => 'Mò-háu ke só-thin lui-hìn.',
250251
251252 # Short words for each namespace, by default used in the 'article' tab in monobook
252253 'nstab-main' => 'Vùn-chông',
@@ -323,7 +324,6 @@
324325 'yourdomainname' => 'Ngì ke mióng',
325326 'externaldberror' => 'Liá-ke khó-nèn he chhut-yì ngoi-phu ngiam-chṳn chṳ̂-liau-khu chho-ngu fe̍t-chá ngì pûn-ngìn kim-chṳ́ kiên-sîn ngì-ke ngoi-phu chong-ho.',
326327 'loginproblem' => '<b>Tên-liu̍k yû mun-thì.</b><br />Chai chhṳ yit-chhṳ!',
327 -'alreadyloggedin' => '<strong>Yung-fu $1, ngì yí-kîn tên-ngi̍p liáu!</strong><br />',
328328 'login' => 'Tên-ngi̍p',
329329 'loginprompt' => 'Yeu tên-ngi̍p to {{SITENAME}}, ngì pit-sî khí-yung cookie kûng-nèn',
330330 'userlogin' => 'Tên-ngi̍p / Kien-li̍p sîn chong-ho',
@@ -360,6 +360,7 @@
361361 'nouserspecified' => 'Ngì sî-yeu chṳ́-thin yit-ke yung-fu-miàng.',
362362 'wrongpassword' => 'Ngì sû-ngi̍p ke me̍t-me̍t chho-ngu, chhiáng chai chhṳ yit-chhṳ.',
363363 'wrongpasswordempty' => 'Hàn-mò sû-ngi̍p me̍t-me̍t! chhiáng chhûng-chhṳ.',
 364+'passwordtooshort' => 'Ngì-ke me̍t-me̍t put chṳn-khok fe̍t-he thai-tón, put-nèn séu-yî $1-ke sṳ-ngièn, song-chhiá pit-sî lâu yung-fu-miàng put-thùng.',
364365 'mailmypassword' => 'Chiông sîn me̍t-me̍t ki-pûn ngô',
365366 'passwordremindertitle' => '{{SITENAME}} me̍t-me̍t thì-siáng',
366367 'passwordremindertext' => 'Yû-ngìn (khó-nèn he ngì, lòi-chhṳ IP thi-tiám $1) yêu-khiù chiông sîn-ke{{SITENAME}} ($4) ke tên-ngi̍p me̍t-me̍t ki-kî. Yung-fu "$2" ke me̍t-me̍t hien-chhai he "$3". Chhiáng chhṳ-li̍p tên-ngi̍p pin kiên-kói me̍t-me̍t. Kó-yèn he khì-thâ ngìn fat-chhut ke-chhiáng-khiù, fe̍t-chá ngì yí-kîn ki-tet me̍t-me̍t pin put chún-phi kói-pien kí, khó-yî fut-lio̍k chhṳ́ sêu-sit khi̍p ki-siu̍k sṳ́-yung ngì-ke khiu me̍t-me̍t.',
@@ -377,6 +378,7 @@
378379 'invalidemailaddress' => 'Email thi-tiám kak-sṳt put chṳn-khok, chhiáng sû-ngi̍p chṳn-khok ke email chhai-vi fe̍t-chá chhîn-khûng ke-sû-ngi̍p khiông.',
379380 'accountcreated' => 'Yí-kîn kien-li̍p chong-fu.',
380381 'accountcreatedtext' => '$1 ke chong-fu yí-kîn chhong-kien.',
 382+'loginlanguagelabel' => 'Ngî-ngièn: $1',
381383
382384 # Password reset dialog
383385 'resetpass' => 'Chhûng-sat chong-fu me̍t-me̍t',
@@ -466,7 +468,6 @@
467469 'session_fail_preview_html' => '<strong>Chṳ̂n tui-put-hí! Phu-fun chṳ̂-liau yí-kîn yì-sṳt, mò-fap chhú-lî ngì-ke phiên-siá.</strong>
468470
469471 <strong>Kó-yèn liá-ke phiên-siá ko-chhàng mò-yû mun-thì, chhiáng chai-chhṳ yit-chhṳ. Yìn-yèn yû mun-thì, chhiáng tên-chhut heu chhùng-sîn tên-ngi̍p yit-chhṳ.</strong>',
470 -'importing' => 'Chang-chhai chón-yì $1',
471472 'editing' => 'Chang-chhai phiên-siá $1',
472473 'editinguser' => 'Chang-chhai phiên-siá yung-fu <b>$1</b>',
473474 'editingsection' => 'Chang-chhai phiên-siá $1 (thon-lo̍k)',
@@ -808,7 +809,6 @@
809810 # Image list
810811 'imagelist' => 'Tóng-on lie̍t-péu',
811812 'imagelisttext' => 'Yî-ha he on $2 phài-lie̍t ke $1-ke tóng-on lie̍t-péu.',
812 -'imagelistforuser' => 'Chhṳ́-chhu hién-sṳ yù-chhai $1 song-chhòn ke thù-on.',
813813 'getimagelist' => 'Chang-chhai chhái-chhí tóng-on lie̍t-péu',
814814 'ilsubmit' => 'Chhìm-cháu',
815815 'showlast' => 'Hién-sṳ on-cheu $2 phài-lie̍t ke chui-heu $1-ke tóng-on.',
@@ -818,13 +818,6 @@
819819 'imgdelete' => 'chhù-thet',
820820 'imgdesc' => 'mèu-sut',
821821 'imgfile' => 'tóng-on',
822 -'imglegend' => 'Sot-mìn: (mèu-sut) = Hién-sṳ/phiên-siá tóng-on ke mèu-sut.',
823 -'imghistory' => 'Tóng-on li̍t-sṳ́',
824 -'revertimg' => 'fî-fu̍k',
825 -'deleteimg' => 'Chhù-hi',
826 -'deleteimgcompletely' => 'Chhù-thet chhṳ́ tóng-on ke só-yû siû-thin pán-pún',
827 -'imghistlegend' => 'Sot-mìn: (tông-chhièn) = Liá-he tông-chhièn tóng-on, (chhù-thet) = chhù-chhîn chhṳ́ khiu pán-pún, (fî-fu̍k) = fî-fu̍k to chhṳ́ khiu pán-pún.
828 -<br /><i>Tiám-kit ngit-khì kiám-sṳ tông-thiên sông-chhòn ke tóng-on</i>.',
829822 'imagelinks' => 'Lièn-kiet',
830823 'linkstoimage' => 'Yî-ha vùn-chông lièn-chiap to pún tóng-on:',
831824 'nolinkstoimage' => 'Mò-yû vùn-chông lièn-chiap to pún tóng-on.',
@@ -1002,7 +995,6 @@
1003996 'watchlistfor' => "('''$1''' ke kam-sṳ lie̍t-péu)",
1004997 'nowatchlist' => 'Ngì ke kam-sṳ lie̍t-péu he khûng-hî.',
1005998 'watchlistanontext' => 'Chhiáng $1 yî kiám-sṳ fe̍t-chá phiên-chho ngì-ke kam-sṳ lie̍t-péu.',
1006 -'watchlistcount' => "'''Ngì-ke kam-sṳ lie̍t-péu chûng khiung-yû $1-ke hong-muk, pâu-koat thó-lun-hong.'''",
1007999 'watchnologin' => 'Hàn-mò tên-ngi̍p',
10081000 'watchnologintext' => 'Ngì pit-sî siên [[Special:Userlogin|tên-ngi̍p]] chhòi-nèn kiên-kói ngì-ke kam-sṳ lie̍t-péu.',
10091001 'addedwatch' => 'Kâ-ngi̍p to kam-sṳ lie̍t-péu',
@@ -1067,7 +1059,6 @@
10681060 'deletionlog' => 'Chhù-chhiang ki-liu̍k',
10691061 'reverted' => 'Fî-fu̍k to chó-khì pán-pún',
10701062 'deletecomment' => 'Chhù-thet ke lî-yù',
1071 -'imagereverted' => 'Fî-fu̍k to chó-khì pán-pú chhâu-chok vàn-sṳ̀n.',
10721063 'rollback' => 'Fî-fu̍k',
10731064 'rollback_short' => 'Fî-fu̍k',
10741065 'rollbacklink' => 'fî-fu̍k',
@@ -1125,7 +1116,7 @@
11261117 'undeleterevisions' => '$1 pán-pún chhùn-tong',
11271118 'undeletehistory' => 'Kó-yèn ngì fî-fu̍k liáu ke-vùn-chông, só-yû pán-pún chiông-voi pûn fî-fu̍k to siû-thin li̍t-sṳ́ chûng. Kó-yèn pún-chông chhù-hi heu yû yit-ke thùng-miàng ke sîn vùn-chông kien-li̍p, pûn fî-fu̍k ke pán-pún chiông-voi chhṳ̂n-vi kha-sîn ke li̍t-sṳ́, sîn vùn-chông ke tong-chhièn pán-pún chiông mò-fap pûn chhṳ-thung fu̍k-ngièn.',
11281119 'undeleterevdel' => 'Kó-yèn pá chui-sîn siû-thin phu-fun chhù-thet, fán chhù-hi phien mò-fap chin-hàng. Kó-yèn ngi-to liá-chúng chhìn-khóng, ngì pit-sî fán-sién fe̍t-chá fán-chhòng chui-sîn yí-kîn chhù-hi ke siû-thin. Tui-yî ngì mò-yû khièn-han hi kiám-sṳ ke siû-thin he mò-fap fî-fu̍k ke.',
1129 -'undeletehistorynoadmin' => 'Liá-ke vùn-chông yí-kîn pûn chhù-thet, chhù-hi ngièn-yîn hién-sṳ chhai hâ-fông phiên-si̍p chak-yeu chûng. Pûn chhù-thet chhièn ke só-yû siû-thin pán-pún, lièn-thùng chhù-thet chhièn kung-hien yung-fu tén-tén se-chiet chṳ́-yû [[Wikipedia:Kón-lî-yèn|Kón-lî-yèn]] khó-yî khon-kien.',
 1120+'undeletehistorynoadmin' => 'Liá-ke vùn-chông yí-kîn pûn chhù-thet, chhù-hi ngièn-yîn hién-sṳ chhai hâ-fông phiên-si̍p chak-yeu chûng. Pûn chhù-thet chhièn ke só-yû siû-thin pán-pún, lièn-thùng chhù-thet chhièn kung-hien yung-fu tén-tén se-chiet chṳ́-yû [[{{MediaWiki:grouppage-sysop}}|Kón-lî-yèn]] khó-yî khon-kien.',
11301121 'undelete-revision' => 'Chhù-thet pán-pún $1 chhṳ $2:',
11311122 'undeleterevision-missing' => 'Chhṳ́ pán-pún ke nui-yùng put chṳn-khok fe̍t-chá yí-kîn yì-sṳt. Khó-nèn lièn-kiet chho-ngu, pûn yì-chhù fe̍t-he yí-kîn pûn fî-fu̍k.',
11321123 'undeletebtn' => 'Fî-fu̍k',
@@ -1327,7 +1318,6 @@
13281319 'allmessagesdefault' => 'Yi-sat ke vùn-sṳ',
13291320 'allmessagescurrent' => 'Tông-chhièn ke vùn-sṳ',
13301321 'allmessagestext' => 'Liá-piên lie̍t-chhut só-yû hí-khó thin-chṳ ke ne-thúng kie-mien.',
1331 -'allmessagesnotsupportedUI' => 'Special:Allmessages mò kî-yèn ngì muk-chhièn sṳ́-yung ke kie-mien ngî-ngièn <b>$1</b>.',
13321322 'allmessagesnotsupportedDB' => 'Ne-thúng kie-mien kûng-yung chhu-yî kôan-pit chong-thai (wgUseDatabaseMessages)。',
13331323 'allmessagesfilter' => 'Chang-chet péu-tha̍t sṳt ko-li thiàu-khien:',
13341324 'allmessagesmodified' => 'Chṳ́ hién-sṳ kiên-kói ko ke.',
@@ -1514,16 +1504,14 @@
15151505 'file-info' => '(tóng-on thai-séu: $1, MIME lui-hìn: $2)',
15161506 'file-info-size' => '($1 × $2 chhiong-su, tóng-on thai-séu:$3 ,MIME lui-hìn:$4)',
15171507 'file-nohires' => '<small>Mò kien-kô kié-chhiong-thu khó-yî thì-kiûng.</small>',
1518 -'file-svg' => '<small>Liá-he yit-puk mò-sún khó suk-fong ke hiong-liòng thù-chhiong. Kî-pún thai-séu: $1 × $2 chhiong-su.</small>',
15191508 'show-big-image' => 'Vàn-cháng ke kié-chhiong-thu',
15201509 'show-big-image-thumb' => '<small>Liá-ke puk-suk-thù ke kié-chhiong-thu he: $1 × $2 chhiong-su</small>',
15211510
 1511+# Special:Newimages
15221512 'newimages' => 'Sîn-kien thù-chhiong ke va̍k-lòng',
15231513 'showhidebots' => '($1 kî-hi-ngìn)',
15241514 'noimages' => 'Mò-khó kiám-sṳ thù-chhiong.',
15251515
1526 -'passwordtooshort' => 'Ngì-ke me̍t-me̍t put chṳn-khok fe̍t-he thai-tón, put-nèn séu-yî $1-ke sṳ-ngièn, song-chhiá pit-sî lâu yung-fu-miàng put-thùng.',
1527 -
15281516 # Metadata
15291517 'metadata' => 'Ngièn-sṳ́ sṳ-kí',
15301518 'metadata-help' => 'Chhṳ́ tóng-on chûng pâu-hàm yû khok-chán ke sêu-sit. Liá-ke sêu-sit khó-nèn he yù sṳ-vi siong-kî fe̍t-chá mèu-ngì chhai chhóng-li̍p fe̍t-he su-sṳ-fa ko-chhàng chûng só kâ-thiâm ke. Kó-yèn chhṳ́ tóng-on ke ngièn tóng-on yí-kîn pûn siû-kói, sêu-sit chhai siû-kói heu ke tóng-on chûng chiông put-nèn vàn-chhiòn fán-yang chhut-lòi.',
@@ -1600,15 +1588,12 @@
16011589 $1',
16021590 'confirm_purge_button' => 'Khok-thin',
16031591
1604 -'youhavenewmessagesmulti' => 'Ngì chhai $1 yû yit-thiàu sîn sêu-sit',
1605 -
 1592+# AJAX search
16061593 'searchcontaining' => "Chhìm-cháu pâu-hàm ''$1'' ke vùn-chông.",
16071594 'searchnamed' => "Chhìm-cháu ''$1'' miàng-chhṳ̂n ke vùn-chông.",
16081595 'articletitles' => 'Vùn-chông kûi-yî "$1" khôi-thèu',
16091596 'hideresults' => 'Yún-chhòng kiet-kó',
16101597
1611 -'loginlanguagelabel' => 'Ngî-ngièn: $1',
1612 -
16131598 # Multipage image navigation
16141599 'imgmultipageprev' => '← sông yit-chông',
16151600 'imgmultipagenext' => 'hâ yit-chông →',
@@ -1630,7 +1615,7 @@
16311616 # Auto-summaries
16321617 'autosumm-blank' => 'Chhù-chhîn só-yû ke hong-mien nui-yùng',
16331618 'autosumm-replace' => "Chang-chhai chiông hong-mien thi-von sṳ̀n-vì '$1'",
1634 -'autoredircomment' => 'Chang-chhai chhûng-thin hiong to [[$1]]', # This should be changed to the new naming convention, but existed beforehand
 1619+'autoredircomment' => 'Chang-chhai chhûng-thin hiong to [[$1]]',
16351620 'autosumm-new' => 'Sîn hong-mien: $1',
16361621
16371622 # Size units
@@ -1642,15 +1627,11 @@
16431628 # Live preview
16441629 'livepreview-loading' => 'Chang-chhai chai-ngi̍p…',
16451630 'livepreview-ready' => 'Chang-chhai chai-ngi̍p… Vàn-sṳ̀n!',
1646 -'livepreview-failed' => 'Sṳ̍t-sṳ̀ yi-liau sṳt-phai!
1647 -Sòn-chhṳ phêu-chún yi-liau.',
1648 -'livepreview-error' => 'lièn-chiap sṳt-phai: $1 "$2"
1649 -Sòn-chhṳ phêu-chún yi-liau.',
 1631+'livepreview-failed' => 'Sṳ̍t-sṳ̀ yi-liau sṳt-phai! Sòn-chhṳ phêu-chún yi-liau.',
 1632+'livepreview-error' => 'lièn-chiap sṳt-phai: $1 "$2" Sòn-chhṳ phêu-chún yi-liau.',
16501633
16511634 # Friendlier slave lag warnings
16521635 'lag-warn-normal' => 'Tô-yî $1-méu ke kiên-kói khó-nèn put-voi chhai liá-ke chhîn-tân chûng hién-sṳ.',
16531636 'lag-warn-high' => 'Yù-yî chṳ̂-liau-khu ke ko-thu yèn-chhṳ̀, tô-yî $1-méu ke kiên-kói khó-nèn put-voi chhai liá-ke chhîn-tân chûng hién-sṳ.',
16541637
16551638 );
1656 -
1657 -
Index: branches/liquidthreads/languages/messages/MessagesPl.php
@@ -343,23 +343,24 @@
344344 'versionrequired' => 'Wymagana MediaWiki w wersji $1',
345345 'versionrequiredtext' => 'Wymagana jest MediaWiki w wersji $1 aby skorzystać z tej strony. Zobacz [[Special:Version]]',
346346
347 -'ok' => 'OK',
348 -'pagetitle' => '$1 - {{SITENAME}}',
349 -'retrievedfrom' => 'Źródło: "$1"',
350 -'youhavenewmessages' => 'Masz $1 ($2).',
351 -'newmessageslink' => 'nowe wiadomości',
352 -'newmessagesdifflink' => 'różnica z poprzednią wersją',
353 -'editsection' => 'edytuj',
354 -'editold' => 'edytuj',
355 -'editsectionhint' => 'Edytuj sekcję: $1',
356 -'toc' => 'Spis treści',
357 -'showtoc' => 'pokaż',
358 -'hidetoc' => 'ukryj',
359 -'thisisdeleted' => 'Pokaż/odtwórz $1',
360 -'viewdeleted' => 'Zobacz $1',
361 -'restorelink' => '{{PLURAL:$1|jedną skasowaną wersję|skasowane wersje (w sumie $1)}}',
362 -'feedlinks' => 'Kanały:',
363 -'feed-invalid' => 'Niewłaściwy typ kanału informacyjnego.',
 347+'ok' => 'OK',
 348+'pagetitle' => '$1 - {{SITENAME}}',
 349+'retrievedfrom' => 'Źródło: "$1"',
 350+'youhavenewmessages' => 'Masz $1 ($2).',
 351+'newmessageslink' => 'nowe wiadomości',
 352+'newmessagesdifflink' => 'różnica z poprzednią wersją',
 353+'youhavenewmessagesmulti' => 'Masz nowe wiadomości: $1',
 354+'editsection' => 'edytuj',
 355+'editold' => 'edytuj',
 356+'editsectionhint' => 'Edytuj sekcję: $1',
 357+'toc' => 'Spis treści',
 358+'showtoc' => 'pokaż',
 359+'hidetoc' => 'ukryj',
 360+'thisisdeleted' => 'Pokaż/odtwórz $1',
 361+'viewdeleted' => 'Zobacz $1',
 362+'restorelink' => '{{PLURAL:$1|jedną skasowaną wersję|skasowane wersje (w sumie $1)}}',
 363+'feedlinks' => 'Kanały:',
 364+'feed-invalid' => 'Niewłaściwy typ kanału informacyjnego.',
364365
365366 # Short words for each namespace, by default used in the 'article' tab in monobook
366367 'nstab-main' => 'Artykuł',
@@ -451,7 +452,6 @@
452453 'yourdomainname' => 'Twoja domena',
453454 'externaldberror' => 'Wystąpił błąd zewnętrznej bazy autentyfikacyjnej lub nie posiadasz uprawnień koniecznych do aktualizacji zewnętrznego konta.',
454455 'loginproblem' => '<b>Wystąpił problem przy próbie zalogowania się.</b><br />Spróbuj ponownie!',
455 -'alreadyloggedin' => '<strong>$1, jesteś już zalogowany!</strong><br />',
456456 'login' => 'Zaloguj mnie',
457457 'loginprompt' => 'Musisz mieć włączone cookies by móc się zalogować.',
458458 'userlogin' => 'Logowanie / rejestracja',
@@ -489,6 +489,7 @@
490490 'nouserspecified' => 'Musisz podać nazwę użytkownika.',
491491 'wrongpassword' => 'Podane przez Ciebie hasło jest nieprawidłowe. Spróbuj jeszcze raz.',
492492 'wrongpasswordempty' => 'Wprowadzone hasło jest puste. Spróbuj ponownie.',
 493+'passwordtooshort' => 'Twoje hasło jest błędne lub za krótkie. Musi mieć co najmniej $1 znaków i być inne niż Twoja nazwa użytkownika.',
493494 'mailmypassword' => 'Wyślij mi nowe hasło',
494495 'passwordremindertitle' => 'Przypomnienie hasła w serwisie {{SITENAME}}',
495496 'passwordremindertext' => 'Ktoś (prawdopodobnie Ty, spod adresu $1)
@@ -512,6 +513,7 @@
513514 'invalidemailaddress' => 'E-mail nie zostanie zaakceptowany: jego format nie spełnia formalnych wymagań. Proszę wpisać poprawny adres email lub wyczyścić pole.',
514515 'accountcreated' => 'Utworzono konto',
515516 'accountcreatedtext' => 'Konto dla $1 zostało utworzone.',
 517+'loginlanguagelabel' => 'Język: $1',
516518
517519 # Password reset dialog
518520 'resetpass' => 'Resetuj hasło',
@@ -606,7 +608,6 @@
607609 ''Ponieważ na tej wiki włączona została opcja \"raw HTML\", podgląd został ukryty w celu zabezpieczenia przed atakami JavaScript.''
608610
609611 <strong>Jeśli jest to prawidłowa próba dokonania edycji, spróbuj jeszcze raz. Jeśli to nie pomoże - wyloguj się i zaloguj ponownie.</strong>",
610 -'importing' => 'Importowanie $1',
611612 'editing' => 'Edytujesz "$1"',
612613 'editinguser' => 'Edytujesz "$1"',
613614 'editingsection' => 'Edytujesz "$1" (fragment)',
@@ -948,7 +949,6 @@
949950 # Image list
950951 'imagelist' => 'Lista plików',
951952 'imagelisttext' => "Na poniższej liście znajduje się '''$1''' {{plural:$1|plik posortowany|plików posortowanych}} $2.",
952 -'imagelistforuser' => 'Lista grafik załadowanych przez $1.',
953953 'getimagelist' => 'pobieranie listy plików',
954954 'ilsubmit' => 'Szukaj',
955955 'showlast' => 'Pokaż ostatnie $1 plików posortowanych $2.',
@@ -958,16 +958,9 @@
959959 'imgdelete' => 'usuń',
960960 'imgdesc' => 'opis',
961961 'imgfile' => 'plik',
962 -'imglegend' => 'Legenda: (opis) - pokaż/edytuj opis pliku.',
963 -'imghistory' => 'Historia pliku',
964 -'revertimg' => 'przywróć',
965 -'deleteimg' => 'usuń',
966 -'deleteimgcompletely' => 'Usuń wszystkie wersje tego pliku',
967 -'imghistlegend' => 'Legend: (bież) - to jest bieżący plik, (usuń) - usuń starszą wersję, (przywróć) - przywróc starszą wersję.<br /><i>Kliknij na datę aby zobaczyć przesłany plik</i>.',
968962 'imagelinks' => 'Odnośniki do pliku',
969963 'linkstoimage' => 'Następujące strony odwołują się do tego pliku:',
970964 'nolinkstoimage' => 'Żadna strona nie odwołuje się do tego pliku.',
971 -'sharedupload' => 'Plik [[Commons:Image:{{PAGENAME}}|{{PAGENAME}}]] umieszczony jest we wspólnym repozytorium i może być używany w innych projektach.',
972965 'shareduploadwiki' => 'Zobacz $1 aby dowiedzieć się więcej.',
973966 'shareduploadwiki-linktext' => 'stronę opisu grafiki',
974967 'noimage' => 'Nie istnieje plik o tej nazwie. Możesz go $1.',
@@ -1160,7 +1153,6 @@
11611154 'watchlistfor' => "(dla użytkownika '''$1''')",
11621155 'nowatchlist' => 'Nie ma żadnych pozycji na liście obserwowanych przez Ciebie stron.',
11631156 'watchlistanontext' => '$1 aby obejrzeć lub edytować elementy listy obserwowanych.',
1164 -'watchlistcount' => "'''Masz $1 {{PLURAL:$1|pozycję|pozycji}} na liście obserwowanych stron, włączając strony dyskusji.'''",
11651157 'watchnologin' => 'Brak logowania',
11661158 'watchnologintext' => 'Musisz się [[{{ns:Special}}:Userlogin|zalogować]] przed modyfikacją listy obserwowanych artykułów.',
11671159 'addedwatch' => 'Dodana do listy obserwowanych',
@@ -1245,7 +1237,6 @@
12461238 'deletionlog' => 'rejestr usunięć',
12471239 'reverted' => 'Przywrócono poprzednią wersję',
12481240 'deletecomment' => 'Powód usunięcia',
1249 -'imagereverted' => 'Przywrócenie wcześniejszej wersji powiodło się.',
12501241 'rollback' => 'Cofnij edycję',
12511242 'rollback_short' => 'Cofnij',
12521243 'rollbacklink' => 'cofnij',
@@ -1509,7 +1500,6 @@
15101501 'allmessagesdefault' => 'Tekst domyślny',
15111502 'allmessagescurrent' => 'Tekst obecny',
15121503 'allmessagestext' => 'Oto lista wszystkich komunikatów dostępnych w przestrzeni nazw MediaWiki:',
1513 -'allmessagesnotsupportedUI' => 'Wybrany przez Ciebie język interfejsu <b>$1</b> nie jest wspierany przez stronę Special:Allmessages.',
15141504 'allmessagesnotsupportedDB' => "Strona '''Special:Allmessages''' nie może być użyta, ponieważ '''\$wgUseDatabaseMessages''' jest wyłączone.",
15151505 'allmessagesfilter' => 'Filtr nazw komunikatów:',
15161506 'allmessagesmodified' => 'Pokaż tylko zmodyfikowane',
@@ -1693,16 +1683,14 @@
16941684 'file-info' => '(rozmiar pliku: $1, typ MIME: $2)',
16951685 'file-info-size' => '($1 × $2 pikseli, rozmiar pliku: $3, typ MIME: $4)',
16961686 'file-nohires' => '<small>Grafika w wyższej rozdzielczości jest niedostępna.</small>',
1697 -'file-svg' => '<small>To jest bezstratna, skalowalna grafika wektorowa (SVG). Rozmiar bazowy: $1 × $2 pikseli.</small>',
16981687 'show-big-image' => 'Oryginalna rozdzielczość',
16991688 'show-big-image-thumb' => '<small>Rozmiar podglądu: $1 × $2 pikseli</small>',
17001689
 1690+# Special:Newimages
17011691 'newimages' => 'Najnowsze grafiki',
17021692 'showhidebots' => '($1 boty)',
17031693 'noimages' => 'Nic.',
17041694
1705 -'passwordtooshort' => 'Twoje hasło jest błędne lub za krótkie. Musi mieć co najmniej $1 znaków i być inne niż Twoja nazwa użytkownika.',
1706 -
17071695 # Metadata
17081696 'metadata' => 'Metadane',
17091697 'metadata-help' => 'Niniejszy plik zawiera dodatkowe informacje, prawdopodobnie dodane przez aparat cyfrowy lub skaner. Jeśli plik był modyfikowany, dane mogą być częściowo błędne.',
@@ -2005,15 +1993,12 @@
20061994 $1',
20071995 'confirm_purge_button' => 'Wyczyść',
20081996
2009 -'youhavenewmessagesmulti' => 'Masz nowe wiadomości: $1',
2010 -
 1997+# AJAX search
20111998 'searchcontaining' => "Szukaj artykułów zawierających ''$1''.",
20121999 'searchnamed' => "Szukaj artykułów nazywających się ''$1''.",
20132000 'articletitles' => "Artykuły zaczynające się od ''$1''.",
20142001 'hideresults' => 'Ukryj wyniki',
20152002
2016 -'loginlanguagelabel' => 'Język: $1',
2017 -
20182003 # Multipage image navigation
20192004 'imgmultipageprev' => '← poprzednia strona',
20202005 'imgmultipagenext' => 'następna strona →',
@@ -2035,7 +2020,7 @@
20362021 # Auto-summaries
20372022 'autosumm-blank' => 'Usunięcie całej zawartości strony',
20382023 'autosumm-replace' => "Zastąpienie treści strony tekstem: '$1'",
2039 -'autoredircomment' => 'Przekierowanie do [[$1]]', # This should be changed to the new naming convention, but existed beforehand
 2024+'autoredircomment' => 'Przekierowanie do [[$1]]',
20402025 'autosumm-new' => 'Nowa strona: $1',
20412026
20422027 # Size units
@@ -2047,11 +2032,7 @@
20482033 # Live preview
20492034 'livepreview-loading' => 'Trwa ładowanie…',
20502035 'livepreview-ready' => 'Trwa ładowanie… Gotowe!',
2051 -'livepreview-failed' => 'Live preview nie zadziałał!
2052 -Spróbuj normalnego podglądu.',
2053 -'livepreview-error' => 'Nie można się połączyć: $1 "$2"
2054 -Spróbuj normalnego podglądu.',
 2036+'livepreview-failed' => 'Live preview nie zadziałał! Spróbuj normalnego podglądu.',
 2037+'livepreview-error' => 'Nie można się połączyć: $1 "$2" Spróbuj normalnego podglądu.',
20552038
20562039 );
2057 -
2058 -
Index: branches/liquidthreads/languages/messages/MessagesPt.php
@@ -177,6 +177,7 @@
178178 'category_header' => 'Páginas na categoria "$1"',
179179 'subcategories' => 'Subcategorias',
180180 'category-media-header' => 'Multimídia na categoria "$1"',
 181+'category-empty' => "''Esta categoria de momento não possui nenhuma página de conteúdo ou ficheiro multimídia.''",
181182
182183 'mainpagetext' => "<big>'''MediaWiki instalado com sucesso.'''</big>",
183184 'mainpagedocfooter' => 'Consulte o [http://meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações acerca de como utilizar o software wiki.
@@ -295,23 +296,24 @@
296297 'versionrequired' => 'É necessária a versão $1 do MediaWiki',
297298 'versionrequiredtext' => 'Esta página requer a versão $1 do MediaWiki para poder ser utilizada. Consulte [[{{ns:special}}:Version|a página sobre a versão do sistema]]',
298299
299 -'ok' => 'OK',
300 -'pagetitle' => '$1 - {{SITENAME}}',
301 -'retrievedfrom' => 'Obtido em "$1"',
302 -'youhavenewmessages' => 'Você tem $1 ($2).',
303 -'newmessageslink' => 'novas mensagens',
304 -'newmessagesdifflink' => 'comparar com a penúltima revisão',
305 -'editsection' => 'editar',
306 -'editold' => 'editar',
307 -'editsectionhint' => 'Editar secção: $1',
308 -'toc' => 'Tabela de conteúdo',
309 -'showtoc' => 'mostrar',
310 -'hidetoc' => 'esconder',
311 -'thisisdeleted' => 'Ver ou restaurar $1?',
312 -'viewdeleted' => 'Ver $1?',
313 -'restorelink' => '{{PLURAL:$1|uma edição eliminada|$1 edições eliminadas}}',
314 -'feedlinks' => 'Feed:',
315 -'feed-invalid' => 'Tipo de subscrição feed inválido.',
 300+'ok' => 'OK',
 301+'pagetitle' => '$1 - {{SITENAME}}',
 302+'retrievedfrom' => 'Obtido em "$1"',
 303+'youhavenewmessages' => 'Você tem $1 ($2).',
 304+'newmessageslink' => 'novas mensagens',
 305+'newmessagesdifflink' => 'comparar com a penúltima revisão',
 306+'youhavenewmessagesmulti' => 'Tem novas mensagens em $1',
 307+'editsection' => 'editar',
 308+'editold' => 'editar',
 309+'editsectionhint' => 'Editar secção: $1',
 310+'toc' => 'Tabela de conteúdo',
 311+'showtoc' => 'mostrar',
 312+'hidetoc' => 'esconder',
 313+'thisisdeleted' => 'Ver ou restaurar $1?',
 314+'viewdeleted' => 'Ver $1?',
 315+'restorelink' => '{{PLURAL:$1|uma edição eliminada|$1 edições eliminadas}}',
 316+'feedlinks' => 'Feed:',
 317+'feed-invalid' => 'Tipo de subscrição feed inválido.',
316318
317319 # Short words for each namespace, by default used in the 'article' tab in monobook
318320 'nstab-main' => 'Artigo',
@@ -362,10 +364,13 @@
363365 Por favor, tome nota do URL e comunique o erro a um administrador do sistema.',
364366 'readonly_lag' => 'A base de dados foi automaticamente bloqueada enquanto os servidores secundários se sincronizam com o principal',
365367 'internalerror' => 'Erro interno',
 368+'internalerror_info' => 'Erro interno: $1',
366369 'filecopyerror' => 'Não foi possível copiar o ficheiro "$1" para "$2".',
367370 'filerenameerror' => 'Não foi possível renomear o ficheiro "$1" para "$2".',
368371 'filedeleteerror' => 'Não foi possível eliminar o ficheiro "$1".',
 372+'directorycreateerror' => 'Não foi possível criar o diretório "$1".',
369373 'filenotfound' => 'Não foi possível encontrar o ficheiro "$1".',
 374+'fileexistserror' => 'Não foi possível gravar no ficheiro "$1": ele já existe',
370375 'unexpected' => 'Valor não esperado: "$1"="$2".',
371376 'formerror' => 'Erro: Não foi possível enviar o formulário',
372377 'badarticleerror' => 'Esta acção não pode ser realizada nesta página.',
@@ -386,7 +391,11 @@
387392 'protectedinterface' => 'Esta página fornece texto de interface ao software e encontra-se trancada para prevenir abusos.',
388393 'editinginterface' => "'''Aviso:''' Encontra-se a editar uma página que é utilizada para fornecer texto de interface ao software. Alterações nesta página irão afectar a aparência da interface de utilizador para outros utilizadores.",
389394 'sqlhidden' => '(Consulta SQL em segundo-plano)',
390 -'cascadeprotected' => 'Esta página foi protegida contra edições por estar incluída {{PLURAL:$1|na página listada|nas páginas listadas}} a seguir ({{PLURAL:$1|página essa que está protegida|páginas essas que estão protegidas}} com a opção de "proteção progressiva" ativada):',
 395+'cascadeprotected' => 'Esta página foi protegida contra edições por estar incluída {{PLURAL:$1|na página listada|nas páginas listadas}} a seguir ({{PLURAL:$1|página essa que está protegida|páginas essas que estão protegidas}} com a opção de "proteção progressiva" ativada):
 396+$2',
 397+'namespaceprotected' => "Você não possui permissão para editar páginas no espaço nominal '''$1'''.",
 398+'customcssjsprotected' => 'Você não possui permissão de editar esta página, já que ela contém configurações pessoais de outro utilizador.',
 399+'ns-specialprotected' => 'Não é possível editar páginas no espaço nominal {{ns:special}}.',
391400
392401 # Login and logout pages
393402 'logouttitle' => 'Desautenticar do sistema',
@@ -406,7 +415,6 @@
407416 'yourdomainname' => 'Seu domínio',
408417 'externaldberror' => 'Ocorreu um erro externo à base de dados durante a autenticação ou não lhe é permitido actualizar a sua conta externa.',
409418 'loginproblem' => '<b>Houve um problema com a sua autenticação.</b><br />Tente novamente!',
410 -'alreadyloggedin' => '<strong>Utilizador $1, você já está autenticado!</strong><br />',
411419 'login' => 'Entrar',
412420 'loginprompt' => 'Você necessita de ter os <i>cookies</i> ligados para poder autenticar-se na {{SITENAME}}.',
413421 'userlogin' => 'Criar uma conta ou entrar',
@@ -429,6 +437,7 @@
430438 'yourvariant' => 'Variante',
431439 'yournick' => 'Alcunha:',
432440 'badsig' => 'Assinatura inválida; verifique o código HTML utilizado.',
 441+'badsiglength' => 'Nome de utilizador muito longo. Seria necessário que possuísse menos de $1 caracteres.',
433442 'email' => 'E-mail',
434443 'prefs-help-realname' => 'O fornecimento de seu Nome verdadeiro é opcional, mas, caso decida o revelar, este será utilizado para lhe dar crédito pelo seu trabalho.',
435444 'loginerror' => 'Erro de autenticação',
@@ -444,6 +453,7 @@
445454 'nouserspecified' => 'Precisa de especificar um nome de utilizador.',
446455 'wrongpassword' => 'A palavra-chave que introduziu é inválida. Por favor, tente novamente.',
447456 'wrongpasswordempty' => 'A palavra-chave introduzida está em branco. Por favor, tente novamente.',
 457+'passwordtooshort' => 'A sua palavra-chave é demasiado curta. Deve ter no mínimo $1 caracteres.',
448458 'mailmypassword' => 'Enviar uma nova palavra-chave por correio electrónico',
449459 'passwordremindertitle' => 'Lembrador de palavras-chave da {{SITENAME}}',
450460 'passwordremindertext' => 'Alguém (provavelmente você, a partir do endereço de IP $1) solicitou que fosse lhe enviada uma nova palavra-chave para {{SITENAME}} ($4).
@@ -469,6 +479,7 @@
470480 'invalidemailaddress' => 'O endereço de correio electrónico não pode ser aceite devido a talvez possuír um formato inválido. Por favor, introduza um endereço bem formatado ou esvazie o campo.',
471481 'accountcreated' => 'Conta criada',
472482 'accountcreatedtext' => 'A conta de utilizador para $1 foi criada.',
 483+'loginlanguagelabel' => 'Idioma: $1',
473484
474485 # Password reset dialog
475486 'resetpass' => 'Criar nova palavra-chave',
@@ -524,26 +535,31 @@
525536
526537 O bloqueio foi realizado por $1. O motivo apresentado foi \'\'$2\'\'.
527538
528 -Expiração do bloqueio: $6<br />
529 -Destino do bloqueio: $7
 539+* Início do bloqueio: $8
 540+* Expiração do bloqueio: $6
 541+* Destino do bloqueio: $7
530542
531543 Você pode contactar $1 ou outro [[{{MediaWiki:grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.
532544
533 -Note que não poderá utilizar a funcionalidade "Contactar utilizador" se não possuir uma conta neste wiki ({{SITENAME}}) e um endereço de email válido indicado nas suas [[{{ns:special}}|preferências de utilizador]].
 545+Note que não poderá utilizar a funcionalidade "Contactar utilizador" se não possuir uma conta neste wiki ({{SITENAME}}) com um endereço de email válido indicado nas suas [[{{ns:special}}:Preferences|preferências de utilizador]] e se tiver sido bloqueado de utilizar tal recurso.
534546
535 -O seu endereço de IP é $3 e a ID de bloqueio é $5. Por favor, inclua um desses (ou ambos) dados em quaisquer tentativas de esclarecimentos.',
 547+O seu endereço de IP atual é $3 e a ID de bloqueio é $5. Por favor, inclua um desses (ou ambos) dados em quaisquer tentativas de esclarecimentos.',
536548 'autoblockedtext' => 'O seu endereço de IP foi bloqueado de forma automática uma vez que foi utilizado recentemente por outro utilizador, o qual foi bloqueado por $1.
537549 O motivo apresentado foi:
538550
539551 :\'\'$2\'\'
540552
541 -Expiração do bloqueio: $6
 553+* Início do bloqueio: $8
 554+* Expiração do bloqueio: $6
542555
543556 Você pode contactar $1 ou outro [[{{MediaWiki:grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.
544557
545 -Note que não poderá utilizar a funcionalidade "Contactar utilizador" se não possuir uma conta neste wiki ({{SITENAME}}) e um endereço de email válido indicado nas suas [[{{ns:special}}|preferências de utilizador]].
 558+Note que não poderá utilizar a funcionalidade "Contactar utilizador" se não possuir uma conta neste wiki ({{SITENAME}}) com um endereço de email válido indicado nas suas [[{{ns:special}}:Preferences|preferências de utilizador]] e se tiver sido bloqueado de utilizar tal recurso.
546559
547 -Sua ID de bloqueio é $5. Por favor, inclua esse dado em qualquer tentativa de esclarecimentos.',
 560+Sua ID de bloqueio é $5. Por favor, inclua esse dado em qualquer tentativa de esclarecimentos que for realizar.',
 561+'blockedtext-concise' => '$7, que coincide com seu nome de utilizador ou endereço de IP, foi bloqueado por $1. O motivo apresentado foi $2. O bloqueio expirará em $6. Para discutir sobre o bloqueio, você pode entrar em contato ou com $1 ou com outro administrador. Não será possível utilizar o recurso "Contactar utilizador" sem um endereço de email válido indicado nas suas preferências de utilizador e se tiver sido bloqueado de utilizar tal recurso.
 562+Seu atual endereço de IP é $3 e o ID de bloqueio é $5. Por favor, inclua um desses (ou ambos) dados em quaisquer tentativas de esclarecimentos.',
 563+'autoblockedtext-concise' => 'O seu endereço de IP foi usado recentemente por um utilizador que foi bloqueado. O bloqueio foi efetuado por $1. O motivo apresentado foi $2. O bloqueio expirará em $6. Para discutir sobre o bloqueio, você pode entrar em contato ou com $1 ou com outro administrador. Não será possível utilizar o recurso "Contactar utilizador" sem um endereço de email válido indicado nas suas preferências de utilizador e se tiver sido bloqueado de utilizar tal recurso. Seu atual endereço de IP é $3 e o ID de bloqueio é $5. Por favor, inclua um desses (ou ambos) dados em quaisquer tentativas de esclarecimentos.',
548564 'blockedoriginalsource' => "O código de '''$1''' é mostrado abaixo:",
549565 'blockededitsource' => "O texto das '''suas edições''' em '''$1''' é mostrado abaixo:",
550566 'whitelistedittitle' => 'Autentificação necessária para visualizar',
@@ -586,7 +602,8 @@
587603 ''Devido a este wiki possuir HTML raw activo, a previsão não será exibida como forma de precaução contra ataques por JavaScript.''
588604
589605 <strong>Por favor, tente novamente caso esta seja uma tentativa de edição legítima. Caso continue a não funcionar, tente desautenticar-se e voltar a entrar na sua conta.</strong>",
590 -'importing' => 'Importando $1',
 606+'token_suffix_mismatch' => '<strong>A sua edição foi rejeitada uma vez que seu software de navegação mutilou os sinais de pontuação do sinal de edição. A edição foi rejeitada para evitar perdas no texto da página.
 607+Isso acontece ocasionalmente quando se usa um serviço de proxy anonimizador mal configurado.</strong>',
591608 'editing' => 'Editando $1',
592609 'editinguser' => 'Editando utilizador $1',
593610 'editingsection' => 'Editando $1 (secção)',
@@ -628,7 +645,14 @@
629646 'nocreatetitle' => 'A criação de páginas encontra-se limitada',
630647 'nocreatetext' => 'Este website tem restringida a habilidade de criar novas páginas.
631648 Pode voltar atrás e editar uma página já existente, ou [[{{ns:special}}:Userlogin|autenticar-se ou criar uma conta]].',
 649+'nocreate-loggedin' => 'Você não possui permissões de criar novas páginas neste wiki.',
 650+'permissionserrors' => 'Erros de permissões',
 651+'permissionserrorstext' => 'Você não possui permissão de fazer isso, {{PLURAL:$1|pelo seguinte motivo|pelos seguintes motivos}}:',
 652+'recreate-deleted-warn' => "'''Atenção: Você está criando novamente uma página já eliminada em outra ocasião.'''
632653
 654+Certifique-se de que seja adequado prosseguir editando esta página.
 655+O registo de eliminação desta página é exibido a seguir, para sua comodidade:",
 656+
633657 # "Undo" feature
634658 'undo-success' => 'A edição pôde ser desfeita. Por gentileza, verifique o comparativo a seguir para se certificar de que é isto que deseja fazer, salvando as alterações após ter terminado de revisá-las.',
635659 'undo-failure' => 'A edição não pôde ser desfeita devido a alterações intermediárias conflitantes.',
@@ -763,6 +787,7 @@
764788 # Preferences page
765789 'preferences' => 'Preferências',
766790 'mypreferences' => 'Minhas preferências',
 791+'prefs-edits' => 'Número de edições:',
767792 'prefsnologin' => 'Não autenticado',
768793 'prefsnologintext' => 'Precisa estar [[{{ns:special}}:Userlogin|autenticado]] para definir suas preferências.',
769794 'prefsreset' => 'As preferências foram restauradas tal como se encontravam na base de dados.',
@@ -820,16 +845,19 @@
821846 'files' => 'Ficheiros',
822847
823848 # User rights
824 -'userrights-lookup-user' => 'Gerir grupos de utilizadores',
825 -'userrights-user-editname' => 'Intruduza um nome de utilizador:',
826 -'editusergroup' => 'Editar Grupos de Utilizadores',
827 -'userrights-editusergroup' => 'Editar grupos do utilizador',
828 -'saveusergroups' => 'Salvar Grupos do Utilizador',
829 -'userrights-groupsmember' => 'Membro de:',
830 -'userrights-groupsavailable' => 'Grupos disponíveis:',
831 -'userrights-groupshelp' => 'Seleccione os grupos no qual deseja que o utilizador seja removido ou adicionado.
 849+'userrights-lookup-user' => 'Gerir grupos de utilizadores',
 850+'userrights-user-editname' => 'Intruduza um nome de utilizador:',
 851+'editusergroup' => 'Editar Grupos de Utilizadores',
 852+'userrights-editusergroup' => 'Editar grupos do utilizador',
 853+'saveusergroups' => 'Salvar Grupos do Utilizador',
 854+'userrights-groupsmember' => 'Membro de:',
 855+'userrights-groupsavailable' => 'Grupos disponíveis:',
 856+'userrights-groupshelp' => 'Seleccione os grupos no qual deseja que o utilizador seja removido ou adicionado.
832857 Grupos não seleccionados, não serão alterados. Pode seleccionar ou remover a selecção a um grupo com CTRL + Click esquerdo',
833 -'userrights-reason' => 'Motivo de alterações:',
 858+'userrights-reason' => 'Motivo de alterações:',
 859+'userrights-available-none' => 'Não será possível alterar o grupo de acesso.',
 860+'userrights-available-add' => 'É possível adicionar utilizadores em $1.',
 861+'userrights-available-remove' => 'É possível remover utilizadores de $1.',
834862
835863 # Groups
836864 'group' => 'Grupo:',
@@ -847,8 +875,8 @@
848876 'grouppage-bureaucrat' => '{{ns:project}}:Burocratas',
849877
850878 # User rights log
851 -'rightslog' => 'Registo de direitos de utilizador',
852 -'rightslogtext' => 'Este é um registo de mudanças nos direitos dos utilizadores.',
 879+'rightslog' => 'Registo de privilégios de utilizador',
 880+'rightslogtext' => 'Este é um registo de mudanças nos privilégios dos utilizadores.',
853881 'rightslogentry' => 'Alterado grupo de acesso de $1 (de $2 para $3)',
854882 'rightsnone' => '(nenhum)',
855883
@@ -909,6 +937,7 @@
910938 'uploadedfiles' => 'Ficheiros carregados',
911939 'ignorewarning' => 'Ignorar aviso e salvar de qualquer forma.',
912940 'ignorewarnings' => 'Ignorar todos os avisos',
 941+'minlength1' => 'Os nomes de ficheiros devem de ter pelo menos uma letra.',
913942 'illegalfilename' => 'O ficheiro "$1" possui caracteres que não são permitidos no título de uma página. Por favor, altere o nome do ficheiro e tente carregar novamente.',
914943 'badfilename' => 'O nome do ficheiro foi alterado para "$1".',
915944 'filetype-badmime' => 'Ficheiros de tipo MIME "$1" não são permitidos de serem enviados.',
@@ -934,6 +963,7 @@
935964 'uploadwarning' => 'Aviso de envio',
936965 'savefile' => 'Salvar ficheiro',
937966 'uploadedimage' => 'enviado "[[$1]]"',
 967+'overwroteimage' => 'foi enviada uma nova versão de "[[$1]]"',
938968 'uploaddisabled' => 'Carregamentos desactivados',
939969 'uploaddisabledtext' => 'O carregamento de ficheiros encontra-se desactivado nesta wiki.',
940970 'uploadscripted' => 'Este ficheiro contém HTML ou código que pode ser erradamente interpretado por um navegador web.',
@@ -959,13 +989,13 @@
960990
961991 'license' => 'Licença',
962992 'nolicense' => 'Nenhuma seleccionada',
 993+'license-nopreview' => '(Previsão não disponível)',
963994 'upload_source_url' => ' (um URL válido, publicamente acessível)',
964995 'upload_source_file' => ' (um ficheiro no seu computador)',
965996
966997 # Image list
967998 'imagelist' => 'Lista de ficheiros',
968999 'imagelisttext' => "É exibida a seguir uma listagem {{PLURAL:$1|de '''um''' ficheiro organizado|de '''$1''' ficheiros organizados}} por $2.",
969 -'imagelistforuser' => 'Esta lista apenas mostra imagens carregadas por $1.',
9701000 'getimagelist' => 'carregando lista de ficheiros',
9711001 'ilsubmit' => 'Procurar',
9721002 'showlast' => 'Mostrar últimos $1 ficheiros organizados $2.',
@@ -975,13 +1005,17 @@
9761006 'imgdelete' => 'eli',
9771007 'imgdesc' => 'desc',
9781008 'imgfile' => 'ficheiro',
979 -'imglegend' => 'Legenda: (desc) = mostrar/editar descrição de imagem.',
980 -'imghistory' => 'Histórico',
981 -'revertimg' => 'rev',
982 -'deleteimg' => 'eli',
983 -'deleteimgcompletely' => 'Eliminar todas revisões deste ficheiro',
984 -'imghistlegend' => 'Legenda: (actu) = imagem actual, (eli) = eliminar versão antiga, (rev) = reverter para versão antiga.
985 -<br /><i>Clique na data para ver as imagens carregadas nessa data</i>.',
 1009+'filehist' => 'Histórico do ficheiro',
 1010+'filehist-help' => 'Clique em uma data/horário para ver o ficheiro tal como ele se encontrava em tal momento.',
 1011+'filehist-deleteall' => 'eliminar todas',
 1012+'filehist-deleteone' => 'eliminar esta',
 1013+'filehist-revert' => 'reverter',
 1014+'filehist-current' => 'actual',
 1015+'filehist-datetime' => 'Data/Horário',
 1016+'filehist-user' => '{{ns:user}}',
 1017+'filehist-dimensions' => 'Dimensões',
 1018+'filehist-filesize' => 'Tamanho do ficheiro',
 1019+'filehist-comment' => 'Comentário',
9861020 'imagelinks' => 'Ligações',
9871021 'linkstoimage' => 'As seguintes páginas apontam para este ficheiro:',
9881022 'nolinkstoimage' => 'Nenhuma página aponta para este ficheiro.',
@@ -998,6 +1032,16 @@
9991033 'imagelist_description' => 'Descrição',
10001034 'imagelist_search_for' => 'Pesquisar por nome de imagem:',
10011035
 1036+# File reversion
 1037+'filerevert' => 'Reverter $1',
 1038+'filerevert-legend' => 'Reverter ficheiro',
 1039+'filerevert-intro' => '<span class="plainlinks">Você está revertendo \'\'\'[[Media:$1|$1]]\'\'\' para a [$4 versão de $2 - $3].</span>',
 1040+'filerevert-comment' => 'Comentário:',
 1041+'filerevert-defaultcomment' => 'Revertido para a versão de $1 - $2',
 1042+'filerevert-submit' => 'Reverter',
 1043+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\' foi revertida para a [$4 versão de $2 - $3].</span>',
 1044+'filerevert-badversion' => 'Não há uma versão local anterior deste ficheiro no período de tempo especificado.',
 1045+
10021046 # MIME search
10031047 'mimesearch' => 'Pesquisa MIME',
10041048 'mimesearch-summary' => 'Esta página possibilita que os ficheiros sejam filtrados a partir de seu tipo MIME. Sintaxe de busca: tipo/subtipo (por exemplo, <tt>image/jpeg</tt>).',
@@ -1022,7 +1066,7 @@
10231067 # Statistics
10241068 'statistics' => 'Estatísticas',
10251069 'sitestats' => 'Estatísticas do site',
1026 -'userstats' => 'Estatística dos utilizadores',
 1070+'userstats' => 'Estatísticas dos utilizadores',
10271071 'sitestatstext' => "Há actualmente um total de {{PLURAL:\$1|'''\$1''' página|'''\$1''' páginas}} na base de dados.
10281072 Isto inclui páginas de \"discussão\", páginas sobre o projecto ({{SITENAME}}), páginas de rascunho, redireccionamentos e outras que provavelmente não são qualificadas como páginas de conteúdo.
10291073 Excluindo estas, há {{PLURAL:\$2|'''\$2''' página que provavelmente é uma página de conteúdo legítima|'''\$2''' páginas que provavelmente são páginas de conteúdo legítimos}}.
@@ -1066,6 +1110,7 @@
10671111 'uncategorizedpages' => 'Páginas não categorizadas',
10681112 'uncategorizedcategories' => 'Categorias não categorizadas',
10691113 'uncategorizedimages' => 'Imagens não categorizadas',
 1114+'uncategorizedtemplates' => 'Predefinições não categorizadas',
10701115 'unusedcategories' => 'Categorias não utilizadas',
10711116 'unusedimages' => 'Ficheiros não utilizados',
10721117 'popularpages' => 'Páginas populares',
@@ -1073,6 +1118,7 @@
10741119 'wantedpages' => 'Páginas pedidas',
10751120 'mostlinked' => 'Páginas com mais afluentes',
10761121 'mostlinkedcategories' => 'Categorias com mais membros',
 1122+'mostlinkedtemplates' => 'Predefinições com mais afluentes',
10771123 'mostcategories' => 'Páginas de conteúdo com mais categorias',
10781124 'mostimages' => 'Imagens com mais afluentes',
10791125 'mostrevisions' => 'Páginas de conteúdo com mais revisões',
@@ -1118,6 +1164,7 @@
11191165 'specialloguserlabel' => 'Utilizador:',
11201166 'speciallogtitlelabel' => 'Título:',
11211167 'log' => 'Registos',
 1168+'all-logs-page' => 'Todos os registos',
11221169 'log-search-legend' => 'Pesquisar nos registos',
11231170 'log-search-submit' => 'Ir',
11241171 'alllogstext' => 'Exposição combinada de todos registos disponíveis no wiki {{SITENAME}}.
@@ -1137,6 +1184,7 @@
11381185 'allpagessubmit' => 'Ir',
11391186 'allpagesprefix' => 'Exibir páginas com o prefixo:',
11401187 'allpagesbadtitle' => 'O título de página fornecido encontrava-se inválido ou tinha um prefixo interlíngua ou inter-wiki. Ele poderá conter um ou mais caracteres que não podem ser utilizados em títulos.',
 1188+'allpages-bad-ns' => '{{SITENAME}} não possui o espaço nominal "$1".',
11411189
11421190 # Special:Listusers
11431191 'listusersfrom' => 'Mostrar utilizadores começando em:',
@@ -1172,16 +1220,15 @@
11731221 'watchlist' => 'Artigos vigiados',
11741222 'mywatchlist' => 'Artigos vigiados',
11751223 'watchlistfor' => "(para '''$1''')",
1176 -'nowatchlist' => 'Não existem itens na sua lista de artigos vigiados.',
 1224+'nowatchlist' => 'A sua lista de vigiados não possui títulos.',
11771225 'watchlistanontext' => 'Por favor $1 para ver ou editar os itens na sua lista de artigos vigiados.',
1178 -'watchlistcount' => "'''Tem {{PLURAL:$1|$1 item|$1 items}} na sua lista de artigos vigiados, incluindo páginas de discussão.'''",
11791226 'watchnologin' => 'Não está autenticado',
11801227 'watchnologintext' => 'Você precisa estar [[{{ns:special}}:Userlogin|autenticado]] para modificar a sua lista de artigos vigiados.',
11811228 'addedwatch' => 'Adicionado à lista',
1182 -'addedwatchtext' => "A página \"[[\$1]]\" foi adicionada à sua [[{{ns:special}}:Watchlist|lista de artigos vigiados]].
1183 -Modificações futuras em tal página e páginas de discussão associadas serão listadas lá, com a página aparecendo a '''negrito''' na [[{{ns:special}}:Recentchanges|lista de mudanças recentes]], para que possa encontrá-la com maior facilidade.
 1229+'addedwatchtext' => "A página \"[[\$1]]\" foi adicionada à sua [[{{ns:special}}:Watchlist|lista de vigiados]].
 1230+Modificações futuras em tal página e páginas de discussão a ela associadas serão listadas lá, com a página aparecendo a '''negrito''' na [[{{ns:special}}:Recentchanges|lista de mudanças recentes]], para que possa encontrá-la com maior facilidade.
11841231
1185 -Se desejar remover a página da sua lista de artigos vigiados, clique em \"Desinteressar-se\" na barra lateral ou de topo.",
 1232+Se desejar remover a página da sua lista de vigiados clique em \"Desinteressar-se\" na barra lateral ou de topo.",
11861233 'removedwatch' => 'Removida da lista de artigos vigiados',
11871234 'removedwatchtext' => 'A página "$1" foi removida de sua lista de artigos vigiados.',
11881235 'watch' => 'Vigiar',
@@ -1266,7 +1313,6 @@
12671314 'deletionlog' => 'registo de eliminação',
12681315 'reverted' => 'Revertido para versão mais nova',
12691316 'deletecomment' => 'Motivo de eliminação',
1270 -'imagereverted' => 'A reversão para a versão mais nova foi bem sucedida.',
12711317 'rollback' => 'Reverter edições',
12721318 'rollback_short' => 'Voltar',
12731319 'rollbacklink' => 'voltar',
@@ -1278,6 +1324,7 @@
12791325 A última edição foi de [[{{ns:user}}:$3|$3]] ([[{{ns:user_talk}}:$3|Discussão]]).',
12801326 'editcomment' => 'O sumário de edição era: "<i>$1</i>".', # only shown if there is an edit comment
12811327 'revertpage' => 'Revertidas edições por [[Special:Contributions/$2|$2]] ([[User talk:$2|disc]]) para a última versão por [[User:$1|$1]]',
 1328+'rollback-success' => 'Foram revertidas as edições de $1, com o conteúdo passando a estar como na última edição de $2.',
12821329 'sessionfailure' => 'Foram detectados problemas com a sua sessão;
12831330 Esta acção foi cancelada como medida de protecção contra a intercepção de sessões.
12841331 Experimente usar o botão "Voltar" e refrescar a página de onde veio e tente novamente.',
@@ -1285,6 +1332,7 @@
12861333 'protectlogtext' => 'Abaixo encontra-se o registo de protecção e desprotecção de páginas.
12871334 Veja [[{{ns:project}}:Página protegida]] para mais informações.',
12881335 'protectedarticle' => 'protegeu "[[$1]]"',
 1336+'modifiedarticleprotection' => 'foi alterado o nível de protecção para "[[$1]]"',
12891337 'unprotectedarticle' => 'desprotegeu "[[$1]]"',
12901338 'protectsub' => '(Protegendo "$1")',
12911339 'confirmprotect' => 'Confirmar protecção',
@@ -1302,6 +1350,7 @@
13031351 Esta é a configuração atual para a página <strong>$1</strong>:',
13041352 'protect-cascadeon' => 'Esta página se encontra protegida, uma vez que se encontra incluída {{PLURAL:$1|na página listada a seguir, protegida|nas páginas listadas a seguir, protegidas}} com a "proteção progressiva" ativada. Você poderá alterar o nível de proteção desta página, mas isso não afetará a "proteção progressiva".',
13051353 'protect-default' => '(padrão)',
 1354+'protect-fallback' => 'É necessário o privilégio de "$1"',
13061355 'protect-level-autoconfirmed' => 'Bloquear utilizadores não-registados',
13071356 'protect-level-sysop' => 'Apenas administradores',
13081357 'protect-summary-cascade' => 'p. progressiva',
@@ -1323,39 +1372,47 @@
13241373 'restriction-level-all' => 'qualquer nível',
13251374
13261375 # Undelete
1327 -'undelete' => 'Ver páginas eliminadas',
1328 -'undeletepage' => 'Ver e restaurar páginas eliminadas',
1329 -'viewdeletedpage' => 'Ver páginas eliminadas',
1330 -'undeletepagetext' => 'As seguintes páginas foram eliminadas, apesar de ainda permanecem na base de dados e poderem ser restauradas. O arquivo pode periodicamente ser limpo.',
1331 -'undeleteextrahelp' => "Para restaurar a página inteira, deixe todas as caixas de selecção desseleccionadas e clique em '''''Restaurar'''''. Para efectuar uma restauração selectiva, seleccione as caixas correspondentes às
 1376+'undelete' => 'Ver páginas eliminadas',
 1377+'undeletepage' => 'Ver e restaurar páginas eliminadas',
 1378+'viewdeletedpage' => 'Ver páginas eliminadas',
 1379+'undeletepagetext' => 'As seguintes páginas foram eliminadas, apesar de ainda permanecem na base de dados e poderem ser restauradas. O arquivo pode periodicamente ser limpo.',
 1380+'undeleteextrahelp' => "Para restaurar a página inteira, deixe todas as caixas de selecção desseleccionadas e clique em '''''Restaurar'''''. Para efectuar uma restauração selectiva, seleccione as caixas correspondentes às
13321381 edições a serem restauradas e clique em '''''Restaurar'''''. Clicar em '''''Limpar''''' irá limpar o
13331382 campo de comentário e todas as caixas de selecção.",
1334 -'undeleterevisions' => '$1 {{PLURAL:$1|edição disponível|edições disponíveis}}',
1335 -'undeletehistory' => 'Se restaurar uma página, todas as edições serão restauradas para o histórico.
 1383+'undeleterevisions' => '$1 {{PLURAL:$1|edição disponível|edições disponíveis}}',
 1384+'undeletehistory' => 'Se restaurar uma página, todas as edições serão restauradas para o histórico.
13361385 Se uma nova página foi criada com o mesmo nome desde a eliminação, as edições restauradas aparecerão primeiro no histórico e a página actual não será automaticamente trocada. Note que as restrições de acesso às edições serão perdidas ao ser feita a restauração.',
1337 -'undeleterevdel' => "Undeletion will not be performed if it will result in the top page revision being
 1386+'undeleterevdel' => "Undeletion will not be performed if it will result in the top page revision being
13381387 partially deleted. In such cases, you must uncheck or unhide the newest deleted revisions. Revisions of files
13391388 that you don't have permission to view will not be restored.",
1340 -'undeletehistorynoadmin' => 'Esta página foi eliminada. O motivo de eliminação é apresentado no súmario abaixo, junto dos detalhes do utilizador que editou esta página antes de eliminar. O texto actual destas edições eliminadas encontra-se agora apenas disponível para administradores.',
1341 -'undelete-revision' => 'A edição $1 de $2 foi eliminada:',
1342 -'undeleterevision-missing' => 'Edição inválida ou não encontrada. Talvez você esteja com um link incorrecto ou talvez a edição foi restaurada ou removida dos arquivos.',
1343 -'undeletebtn' => 'Restaurar',
1344 -'undeletereset' => 'Limpar',
1345 -'undeletecomment' => 'Comentário:',
1346 -'undeletedarticle' => 'restaurado "[[$1]]"',
1347 -'undeletedrevisions' => '$1 {{PLURAL:$1|edição restaurada|edições restauradas}}',
1348 -'undeletedrevisions-files' => '$1 {{PLURAL:$2|edição restaurada|edições restauradas}} e $2 {{PLURAL:$2|ficheiro restaurado|ficheiros restaurados}}',
1349 -'undeletedfiles' => '{{PLURAL:$1|ficheiro restaurado|$1 ficheiros restaurados}}',
1350 -'cannotundelete' => 'Restauração falhada; alguém talvez já restaurou a página.',
1351 -'undeletedpage' => "<big>'''$1 foi restaurada'''</big>
 1389+'undeletehistorynoadmin' => 'Esta página foi eliminada. O motivo de eliminação é apresentado no súmario abaixo, junto dos detalhes do utilizador que editou esta página antes de eliminar. O texto actual destas edições eliminadas encontra-se agora apenas disponível para administradores.',
 1390+'undelete-revision' => 'A edição $1 de $2 foi eliminada por $3:',
 1391+'undeleterevision-missing' => 'Edição inválida ou não encontrada. Talvez você esteja com um link incorrecto ou talvez a edição foi restaurada ou removida dos arquivos.',
 1392+'undeletebtn' => 'Restaurar',
 1393+'undeletereset' => 'Limpar',
 1394+'undeletecomment' => 'Comentário:',
 1395+'undeletedarticle' => 'restaurado "[[$1]]"',
 1396+'undeletedrevisions' => '$1 {{PLURAL:$1|edição restaurada|edições restauradas}}',
 1397+'undeletedrevisions-files' => '$1 {{PLURAL:$2|edição restaurada|edições restauradas}} e $2 {{PLURAL:$2|ficheiro restaurado|ficheiros restaurados}}',
 1398+'undeletedfiles' => '{{PLURAL:$1|ficheiro restaurado|$1 ficheiros restaurados}}',
 1399+'cannotundelete' => 'Restauração falhada; alguém talvez já restaurou a página.',
 1400+'undeletedpage' => "<big>'''$1 foi restaurada'''</big>
13521401
13531402 Consulte o [[Special:Log/delete|registo de eliminações]] para um registo das eliminações e restaurações mais recentes.",
1354 -'undelete-header' => 'Veja o [[{{ns:special}}:Log/delete|registo de deleções]] para as páginas recentemente eliminadas.',
1355 -'undelete-search-box' => 'Pesquisar páginas eliminadas',
1356 -'undelete-search-prefix' => 'Exibir páginas que iniciem com:',
1357 -'undelete-search-submit' => 'Pesquisar',
1358 -'undelete-no-results' => 'Não foram encontradas edições relacionadas com o que foi buscado no arquivo de edições eliminadas.',
 1403+'undelete-header' => 'Veja o [[{{ns:special}}:Log/delete|registo de deleções]] para as páginas recentemente eliminadas.',
 1404+'undelete-search-box' => 'Pesquisar páginas eliminadas',
 1405+'undelete-search-prefix' => 'Exibir páginas que iniciem com:',
 1406+'undelete-search-submit' => 'Pesquisar',
 1407+'undelete-no-results' => 'Não foram encontradas edições relacionadas com o que foi buscado no arquivo de edições eliminadas.',
 1408+'undelete-filename-mismatch' => 'Não foi possível restaurar a versão do ficheiro de $1: nome de ficheiro não combina',
 1409+'undelete-bad-store-key' => 'Não foi possível restaurar a versão do ficheiro de $1: já não existia antes da eliminação.',
 1410+'undelete-cleanup-error' => 'Erro ao eliminar o ficheiro não utilizado "$1".',
 1411+'undelete-missing-filearchive' => 'Não é possível restaurar o ficheiro de ID $1, uma vez que ele não se encontra na base de dados. Isso pode significar que já tenha sido restaurado.',
 1412+'undelete-error-short' => 'Erro ao restaurar ficheiro: $1',
 1413+'undelete-error-long' => 'Foram encontrados erros ao tentar restaurar o ficheiro:
13591414
 1415+$1',
 1416+
13601417 # Namespace form on various pages
13611418 'namespace' => 'Espaço nominal:',
13621419 'invert' => 'Inverter selecção',
@@ -1368,6 +1425,8 @@
13691426 'ucnote' => 'Segue as últimas <b>$1</b> mudanças nos últimos <b>$2</b> dias deste utilizador.',
13701427 'uclinks' => 'Ver as últimas $1 mudanças; ver os últimos $2 dias.',
13711428 'uctop' => ' (revisão actual)',
 1429+'month' => 'Mês (inclusive anteriores):',
 1430+'year' => 'Ano (inclusive anteriores):',
13721431
13731432 'sp-contributions-newest' => 'Mais recente',
13741433 'sp-contributions-oldest' => 'Mais antigo',
@@ -1415,6 +1474,7 @@
14161475 ** Nome de utilizador inaceitável',
14171476 'ipbanononly' => 'Bloquear apenas utilizadores anónimos',
14181477 'ipbcreateaccount' => 'Prevenir criação de conta de utilizador',
 1478+'ipbemailban' => 'Impedir utilizador de enviar e-mail',
14191479 'ipbenableautoblock' => 'Bloquear automaticamente o endereço de IP mais recente usado por este utilizador e todos os IPs subseqüentes dos quais ele tentar editar',
14201480 'ipbsubmit' => 'Bloquear este utilizador',
14211481 'ipbother' => 'Outro período:',
@@ -1436,6 +1496,8 @@
14371497 'unblocked' => '[[User:$1|$1]] foi desbloqueado',
14381498 'unblocked-id' => 'O bloqueio de $1 foi removido com sucesso',
14391499 'ipblocklist' => 'Lista de IPs bloqueados',
 1500+'ipblocklist-legend' => 'Procurar por um utilizador bloqueado',
 1501+'ipblocklist-username' => 'Utilizador ou endereço de IP:',
14401502 'ipblocklist-submit' => 'Pesquisar',
14411503 'blocklistline' => '$1, $2 bloqueou $3 ($4)',
14421504 'infiniteblock' => 'infinito',
@@ -1443,6 +1505,7 @@
14441506 'anononlyblock' => 'anón. apenas',
14451507 'noautoblockblock' => 'bloqueio automático desabilitado',
14461508 'createaccountblock' => 'criação de conta de utilizador bloqueada',
 1509+'emailblock' => 'impedido de enviar e-mail',
14471510 'ipblocklist-empty' => 'A lista de bloqueios encontra-se vazia.',
14481511 'ipblocklist-no-results' => 'O endereço de IP ou nome de utilizador procurado não se encontra bloqueado.',
14491512 'blocklink' => 'bloquear',
@@ -1456,6 +1519,7 @@
14571520 'block-log-flags-anononly' => 'apenas utilizadores anonimos',
14581521 'block-log-flags-nocreate' => 'criação de contas desabilitada',
14591522 'block-log-flags-noautoblock' => 'bloqueio automático desabilitado',
 1523+'block-log-flags-noemail' => 'impedido de enviar e-mail',
14601524 'range_block_disabled' => 'A funcionalidade de bloquear gamas de IPs encontra-se desactivada.',
14611525 'ipb_expiry_invalid' => 'Tempo de expiração inválido.',
14621526 'ipb_already_blocked' => '"$1" já encontra-se bloqueado',
@@ -1504,10 +1568,12 @@
15051569 'movearticle' => 'Mover página',
15061570 'movenologin' => 'Não autenticado',
15071571 'movenologintext' => 'Você precisa ser um utilizador registado e [[{{ns:special}}:Userlogin|autenticado]] para poder mover uma página.',
 1572+'movenotallowed' => 'Você não possui permissão de mover páginas neste wiki.',
15081573 'newtitle' => 'Para novo título',
15091574 'move-watch' => 'Vigiar esta página',
15101575 'movepagebtn' => 'Mover página',
15111576 'pagemovedsub' => 'Página movida com sucesso',
 1577+'movepage-moved' => '<big>\'\'\'"$1" foi movido para "$2"\'\'\'</big>', # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.
15121578 'articleexists' => 'Uma página com este título já existe, ou o título que escolheu é inválido.
15131579 Por favor, escolha outro nome.',
15141580 'talkexists' => "'''A página em si foi movida com sucesso. No entanto, a página de discussão não foi movida, uma vez que já existia uma com este título. Por favor, mescle-as manualmente.'''",
@@ -1515,8 +1581,8 @@
15161582 'movetalk' => 'Mover também a página de discussão associada.',
15171583 'talkpagemoved' => 'A página de discussão correspondente foi movida com sucesso.',
15181584 'talkpagenotmoved' => 'A página de discussão correspondente <strong>não</strong> foi movida.',
1519 -'1movedto2' => '[[$1]] movido para [[$2]]',
1520 -'1movedto2_redir' => '[[$1]] movido para [[$2]] sob redireccionamento',
 1585+'1movedto2' => '[[$1]] foi movido para [[$2]]',
 1586+'1movedto2_redir' => '[[$1]] foi movido para [[$2]] sob redireccionamento',
15211587 'movelogpage' => 'Registo de movimento',
15221588 'movelogpagetext' => 'Abaixo encontra-se uma lista de páginas movidas.',
15231589 'movereason' => 'Motivo',
@@ -1542,6 +1608,7 @@
15431609 'export-submit' => 'Exportar',
15441610 'export-addcattext' => 'Adicionar à listagem páginas da categoria:',
15451611 'export-addcat' => 'Adicionar',
 1612+'export-download' => 'Oferecer para salvar como um ficheiro',
15461613
15471614 # Namespace 8 related
15481615 'allmessages' => 'Todas as mensagens de sistema',
@@ -1549,7 +1616,6 @@
15501617 'allmessagesdefault' => 'Texto padrão',
15511618 'allmessagescurrent' => 'Texto actual',
15521619 'allmessagestext' => 'Esta é uma lista de todas mensagens de sistema disponíveis no espaço nominal {{ns:8}}:.',
1553 -'allmessagesnotsupportedUI' => 'O seu idioma actual de interface (<b>$1</b>) não é suportado pelo {{ns:special}}:Allmessages deste sítio.',
15541620 'allmessagesnotsupportedDB' => '{{ns:special}}:Allmessages não pode ser utilizado devido ao wgUseDatabaseMessages estar desligado.',
15551621 'allmessagesfilter' => 'Filtro de nome de mensagem:',
15561622 'allmessagesmodified' => 'Mostrar apenas modificados',
@@ -1725,8 +1791,16 @@
17261792 'patrol-log-diff' => 'r$1',
17271793
17281794 # Image deletion
1729 -'deletedrevision' => 'Apagada a versão antiga $1.',
 1795+'deletedrevision' => 'Apagada a versão antiga $1.',
 1796+'filedeleteerror-short' => 'Erro ao eliminar ficheiro: $1',
 1797+'filedeleteerror-long' => 'Foram encontrados erros ao tentar eliminar o ficheiro:
17301798
 1799+$1',
 1800+'filedelete-missing' => 'Não é possível eliminar "$1" já que o ficheiro não existe.',
 1801+'filedelete-old-unregistered' => 'A revisão de ficheiro especificada para "$1" não se encontra na base de dados.',
 1802+'filedelete-current-unregistered' => 'O ficheiro "$1" não se encontra na base de dados.',
 1803+'filedelete-archive-read-only' => 'O servidor web não é capaz de fazer alterações no diretório "$1".',
 1804+
17311805 # Browsing diffs
17321806 'previousdiff' => '← Ver a alteração anterior',
17331807 'nextdiff' => 'Ver a alteração posterior →',
@@ -1738,16 +1812,21 @@
17391813 'file-info' => '(tamanho: $1, tipo MIME: $2)',
17401814 'file-info-size' => '($1 × $2 pixels, tamanho: $3, tipo MIME: $4)',
17411815 'file-nohires' => '<small>Sem resolução maior disponível.</small>',
1742 -'file-svg' => '<small>Esta é uma imagem vetorial escalável livre de perdas de exibição. Medidas da imagem-base: $1 × $2 pixels.</small>',
 1816+'svg-long-desc' => '(ficheiro SVG, de $1 × $2 pixels, tamanho: $3)',
17431817 'show-big-image' => 'Resolução completa',
17441818 'show-big-image-thumb' => '<small>Tamanho desta previsão: $1 × $2 pixels</small>',
17451819
 1820+# Special:Newimages
17461821 'newimages' => 'Galeria de novos ficheiros',
17471822 'showhidebots' => '($1 robôs)',
17481823 'noimages' => 'Nada para ver.',
17491824
1750 -'passwordtooshort' => 'A sua palavra-chave é demasiado curta. Deve ter no mínimo $1 caracteres.',
 1825+# Bad image list
 1826+'bad_image_list' => 'The format is as follows:
17511827
 1828+Only list items (lines starting with *) are considered. The first link on a line must be a link to a bad image.
 1829+Any subsequent links on the same line are considered to be exceptions, i.e. articles where the image may occur inline.',
 1830+
17521831 # Metadata
17531832 'metadata' => 'Metadados',
17541833 'metadata-help' => 'Este ficheiro contém informação adicional, provavelmente adicionada a partir da câmara digital ou scanner utilizada para criar ou digitalizar a imagem. Caso o ficheiro tenha sido modificado a partir do seu estado original, alguns detalhes poderão não reflectir completamente as mudanças efectuadas.',
@@ -1924,7 +2003,8 @@
19252004 'recentchangesall' => 'todas',
19262005 'imagelistall' => 'todas',
19272006 'watchlistall2' => 'todas',
1928 -'namespacesall' => 'todas',
 2007+'namespacesall' => 'todos',
 2008+'monthsall' => 'todos',
19292009
19302010 # E-mail address confirmation
19312011 'confirmemail' => 'Confirmar endereço de E-mail',
@@ -1986,15 +2066,12 @@
19872067 $1',
19882068 'confirm_purge_button' => 'OK',
19892069
1990 -'youhavenewmessagesmulti' => 'Tem novas mensagens em $1',
1991 -
 2070+# AJAX search
19922071 'searchcontaining' => "Pesquisar por páginas contendo ''$1''.",
19932072 'searchnamed' => "Pesquisar por páginas nomeadas como ''$1''.",
19942073 'articletitles' => "Páginas começando com ''$1''",
19952074 'hideresults' => 'Esconder resultados',
19962075
1997 -'loginlanguagelabel' => 'Idioma: $1',
1998 -
19992076 # Multipage image navigation
20002077 'imgmultipageprev' => '&larr; página anterior',
20012078 'imgmultipagenext' => 'próxima página &rarr;',
@@ -2016,7 +2093,7 @@
20172094 # Auto-summaries
20182095 'autosumm-blank' => 'Foi removido o conteúdo completo desta página',
20192096 'autosumm-replace' => "Página substituída por '$1'",
2020 -'autoredircomment' => 'Redireccionando para [[$1]]', # This should be changed to the new naming convention, but existed beforehand
 2097+'autoredircomment' => 'Redireccionando para [[$1]]',
20212098 'autosumm-new' => 'Nova página: $1',
20222099
20232100 # Size units
@@ -2037,6 +2114,37 @@
20382115 'lag-warn-normal' => 'Possivelmente as alterações que sejam mais recentes do que $1 segundos não serão exibidas nesta lista.',
20392116 'lag-warn-high' => 'Devido a sérios problemas de latência no servidor da base de dados, as alterações mais recentes que $1 segundos poderão não ser exibidas nesta lista.',
20402117
 2118+# Watchlist editor
 2119+'watchlistedit-numitems' => 'A sua lista de vigiados possui {{PLURAL:$1|um título|$1 títulos}}, além das respectivas páginas de discussão.',
 2120+'watchlistedit-noitems' => 'A sua lista de vigiados não possui títulos.',
 2121+'watchlistedit-clear-title' => 'Limpar lista de vigiados',
 2122+'watchlistedit-clear-legend' => 'Limpar lista de vigiados',
 2123+'watchlistedit-clear-confirm' => 'Isto removerá todos os títulos de sua lista de vigiados. Tem certeza de que é isso que deseja?
 2124+
 2125+Também é possível [[Special:Watchlist/edit|remover títulos individualmente]].',
 2126+'watchlistedit-clear-submit' => 'Limpar',
 2127+'watchlistedit-clear-done' => 'A sua lista de vigiados foi limpa. Todos os títulos foram removidos.',
 2128+'watchlistedit-normal-title' => 'Editar lista de vigiados',
 2129+'watchlistedit-normal-legend' => 'Remover títulos da lista de vigiados',
 2130+'watchlistedit-normal-explain' => 'Os títulos de sua lista de vigiados são exibidos a seguir. Para remover um título clique no box ao lado do mesmo e no botão Remover Títulos. Você também pode [[{{ns:special}}:Watchlist/raw|editar a lista crua]] ou [[{{ns:special}}:Watchlist/clear|remover todos os títulos]].',
 2131+'watchlistedit-normal-submit' => 'Remover Títulos',
 2132+'watchlistedit-normal-done' => '{{PLURAL:$1|um título foi removido|$1 títulos foram removidos}} de sua lista de vigiados:',
 2133+'watchlistedit-raw-title' => 'Edição crua dos vigiados',
 2134+'watchlistedit-raw-legend' => 'Edição crua dos vigiados',
 2135+'watchlistedit-raw-explain' => 'Os títulos de sua lista de vigiados são exibidos a seguir e podem ser adicionados ou removidos ao se editar a lista, mantendo-se um por linha. Ao terminar, clique em no botão correspondente para atualizar.
 2136+
 2137+Você também pode [[{{ns:special}}:Watchlist/edit|editar a lista da forma convencional]] ou [[{{ns:special}}:Watchlist/clear|remover todos os títulos]].',
 2138+'watchlistedit-raw-titles' => 'Títulos:',
 2139+'watchlistedit-raw-submit' => 'Atualizar a lista de vigiados',
 2140+'watchlistedit-raw-done' => 'Sua lista de vigiados foi atualizada.',
 2141+'watchlistedit-raw-added' => '{{PLURAL:$1|Foi adicionado um título|Foram adicionados $1 títulos}}:',
 2142+'watchlistedit-raw-removed' => '{{PLURAL:$1|Foi removido um título|Foram removidos $1 títulos}}:',
 2143+
 2144+# Watchlist editing tools
 2145+'watchlisttools-view' => 'Ver alterações relevantes',
 2146+'watchlisttools-edit' => 'Ver e editar a lista de vigiados',
 2147+'watchlisttools-raw' => 'Edição crua dos vigiados',
 2148+'watchlisttools-clear' => 'Limpar a lista de vigiados',
 2149+
20412150 );
20422151
2043 -
Index: branches/liquidthreads/languages/messages/MessagesZh_tw.php
@@ -281,7 +281,7 @@
282282 'badaccess-groups' => '您剛才的請求只有$1用戶組的用戶才能使用。',
283283
284284 'versionrequired' => '需要MediaWiki $1 版',
285 -'versionrequiredtext' => '需要版本$1的 MediaWiki 才能使用此页。参见[[Special:Version|版本頁]]。',
 285+'versionrequiredtext' => '需要版本$1的 MediaWiki 才能使用此頁。參見[[Special:Version|版本頁]]。',
286286
287287 'ok' => 'OK',
288288 'pagetitle' => '$1 - {{SITENAME}}',
@@ -315,10 +315,10 @@
316316 'nstab-category' => '分類',
317317
318318 # Main script and global functions
319 -'nosuchaction' => '沒有這個命令',
320 -'nosuchactiontext' => 'URL請求的命令無法被這個wiki識別。',
321 -'nosuchspecialpage' => '沒有這個特殊頁面',
322 -'nospecialpagetext' => '您請求的頁面無法被這個wiki識別。',
 319+'nosuchaction' => '這個命令不存在',
 320+'nosuchactiontext' => '這個wiki無法識別URL請求的命令',
 321+'nosuchspecialpage' => '此特殊頁面不存在',
 322+'nospecialpagetext' => '您請求的特殊頁面無效。[[Special:Specialpages]]載有所有有效特殊頁面的列表。',
323323
324324 # General errors
325325 'error' => '錯誤',
@@ -336,7 +336,7 @@
337337 MySQL返回錯誤「$3: $4」。',
338338 'noconnect' => '無法在$1上連接資料庫',
339339 'nodb' => '無法選擇資料庫 $1',
340 -'cachederror' => '下面的頁面是被請求頁面在快取中的一個副本,可能不是最新版本的。',
 340+'cachederror' => '以下頁面是快取中的副本,未必是最新版本。',
341341 'laggedslavemode' => '警告: 頁面可能不包含最近的更新。',
342342 'readonly' => '資料庫禁止訪問',
343343 'enterlockreason' => '請輸入禁止訪問原因, 包括估計重新開放的時間',
@@ -379,7 +379,7 @@
380380 'sqlhidden' => '(隱藏SQL查詢)',
381381 'cascadeprotected' => '這個頁面已經被保護,因為這個頁面被以下已標註"聯鎖保護"的{{PLURAL:$1|一個|多個}}被保護頁面包含:
382382 $2',
383 -'namespaceprotected' => "您並沒有權限去編輯在'''$1'''名字空間內的頁面。",
 383+'namespaceprotected' => "您並沒有權限編輯'''$1'''名字空間的頁面。",
384384 'customcssjsprotected' => '您並無許可權去編輯這個頁面,因為它包含了另一位用戶的個人設定。',
385385 'ns-specialprotected' => '在{{ns:special}}名字空間中的頁面是不可以編輯的。',
386386
@@ -509,14 +509,14 @@
510510
511511 這次查封是由$1所封的。當中的原因是''$2''。
512512
513 -* 這次查封的開始時間是:$8
514 -* 這次查封的到期時間是:$6
 513+* 這次查封開始的時間是:$8
 514+* 這次查封到期的時間是:$6
515515 * 對於被查封者:$7
516516
517517 你可以聯絡$1或者其他的[[{{MediaWiki:grouppage-sysop}}|管理員]],討論這次查封。
518518 除非你已經在你的[[Special:Preferences|帳號參數設置]]中設定了一個有效的電子郵件地址,否則你是不能使用「電郵這位用戶」的功能。當設定了一個有效的電子郵件地址後,這個功能是不會封鎖的。
519519
520 -你現時的IP地址是$3,而該查封ID是 #$5。 請你在所有查詢中註明這地址及/或查封ID。",
 520+你目前的IP地址是$3,而該查封ID是 #$5。 請你在所有查詢中註明這地址及/或查封ID。",
521521 'autoblockedtext' => "你的IP地址已經被自動查封,由於先前的另一位用戶被$1所查封。
522522 而查封的原因是:
523523
@@ -922,6 +922,7 @@
923923 'uploadwarning' => '上載警告',
924924 'savefile' => '保存檔案',
925925 'uploadedimage' => '已上載"[[$1]]"',
 926+'overwroteimage' => '已經上載"[[$1]]"的新版本',
926927 'uploaddisabled' => '無法上傳',
927928 'uploaddisabledtext' => '檔案上傳在此網站不可用。',
928929 'uploadscripted' => '該檔案包含可能被網路瀏覽器錯誤解釋的 HTML 或腳本代碼。',
@@ -997,9 +998,22 @@
998999 'filerevert-comment' => '註解:',
9991000 'filerevert-defaultcomment' => '已經恢復到於$1 $2的版本',
10001001 'filerevert-submit' => '恢復',
1001 -'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經恢復到[於$2 $3的$4版本]。</span>',
 1002+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經恢復到[$4 於$2 $3的版本]。</span>',
10021003 'filerevert-badversion' => '這個檔案所提供的時間截記並無先前的本地版本。',
10031004
 1005+# File deletion
 1006+'filedelete' => '刪除$1',
 1007+'filedelete-legend' => '刪除檔案',
 1008+'filedelete-intro' => "您現正刪除'''[[Media:$1|$1]]'''。",
 1009+'filedelete-intro-old' => "<span class=\"plainlinks\">你現正刪除'''[[Media:$1|$1]]'''於[$4 $2 $3]的版本。</span>",
 1010+'filedelete-comment' => '註解:',
 1011+'filedelete-submit' => '刪除',
 1012+'filedelete-success' => "'''$1'''已經刪除。",
 1013+'filedelete-success-old' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''於 $2 $3 的版本已經刪除。</span>",
 1014+'filedelete-nofile' => "'''$1'''在這個網站中不存在。",
 1015+'filedelete-nofile-old' => "這裡沒有'''$1'''於 $2 $3 的版本。",
 1016+'filedelete-iscurrent' => '您現正嘗試刪除這個檔案的最近版本。請先將個該檔案回退成較舊的版本。',
 1017+
10041018 # MIME search
10051019 'mimesearch' => 'MIME 搜索',
10061020 'mimesearch-summary' => '本頁面啟用檔案MIME類型過濾器。輸入︰內容類型/子類型,如 <tt>image/jpeg</tt>。',
@@ -1342,8 +1356,7 @@
13431357 如果本頁刪除後有一個同名的新頁面建立,
13441358 被恢復的版本將會稱為較新的歷史,而新頁面的當前版本將無法被自動復原。',
13451359 'undeleterevdel' => '如果把最新修訂部份刪除,反刪除便無法進行。如果遇到這種情況,您必須反選或反隱藏最新已刪除的修訂。對於您沒有權限去檢視的修訂是無法恢復的。',
1346 -'undeletehistorynoadmin' => '這個文章已經被刪除,刪除原因顯示在下方編輯摘要中。被刪除前的所有修訂版本,連同刪除前貢獻用戶等等
1347 -細節只有[[Wikipedia:管理員|管理員]]可以看見。',
 1360+'undeletehistorynoadmin' => '這個文章已經被刪除,刪除原因顯示在下方編輯摘要中。被刪除前的所有修訂版本,連同刪除前貢獻用戶等等細節只有管理員可以看見。',
13481361 'undelete-revision' => '刪除$1時由$3(在$2)所編寫的修訂版本:',
13491362 'undeleterevision-missing' => '此版本的內容不正確或已經遺失。可能連結錯誤、被移除或已經被恢復。',
13501363 'undeletebtn' => '恢復',
@@ -1780,13 +1793,15 @@
17811794 'mediawarning' => "'''警告''': 該檔案可能包含惡意代碼,執行它可能對您的系統帶來危險。<hr>",
17821795 'imagemaxsize' => '在圖像描述頁對圖像大小限制為:',
17831796 'thumbsize' => '略圖大小:',
 1797+'widthheightpage' => '$1×$2, $3頁',
17841798 'file-info' => '(檔案大小: $1, MIME 類型: $2)',
17851799 'file-info-size' => '($1 × $2 像素,檔案大小:$3 ,MIME類型:$4)',
17861800 'file-nohires' => '<small>無更高解像度可提供。</small>',
1787 -'file-svg' => '<small>這是一幅無損可縮放的向量圖像。基本大小: $1 × $2 像素。</small>',
 1801+'svg-long-desc' => '(SVG檔案,表面大小: $1 × $2 像素,檔案大小:$3)',
17881802 'show-big-image' => '完整解像度',
17891803 'show-big-image-thumb' => '<small>這幅縮圖的解像度: $1 × $2 像素</small>',
17901804
 1805+# Special:Newimages
17911806 'newimages' => '新建圖像畫廊',
17921807 'showhidebots' => '($1機器人)',
17931808 'noimages' => '無可檢視圖像。',
@@ -2188,8 +2203,8 @@
21892204 'livepreview-error' => '連接失敗: $1 "$2" 嘗試標準預覽。',
21902205
21912206 # Friendlier slave lag warnings
2192 -'lag-warn-normal' => '新於$1秒的更改可能不會在這個清單中顯示。',
2193 -'lag-warn-high' => '由於資料庫的過度延遲,新於$1秒的更改可能不會在這個清單中顯示。',
 2207+'lag-warn-normal' => '過去$1秒內的更改未必會在這個清單中顯示。',
 2208+'lag-warn-high' => '由於資料庫的過度延遲,過去$1秒內的更改未必會在這個清單中顯示。',
21942209
21952210 # Watchlist editor
21962211 'watchlistedit-numitems' => '您的監視列表中共有$1個標題,當中不包括對話頁面。',
Index: branches/liquidthreads/languages/messages/MessagesEn.php
@@ -1499,13 +1499,26 @@
15001500 # File reversion
15011501 'filerevert' => 'Revert $1',
15021502 'filerevert-legend' => 'Revert file',
1503 -'filerevert-intro' => "<span class=\"plainlinks\">You are reverting '''[[Media:$1|$1]]''' to the [$4 version as of $2, $3].</span>",
 1503+'filerevert-intro' => "<span class=\"plainlinks\">You are reverting '''[[Media:$1|$1]]''' to the [$4 version as of $3, $2].</span>",
15041504 'filerevert-comment' => 'Comment:',
1505 -'filerevert-defaultcomment' => 'Reverted to version as of $1, $2',
 1505+'filerevert-defaultcomment' => 'Reverted to version as of $2, $1',
15061506 'filerevert-submit' => 'Revert',
1507 -'filerevert-success' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]''' has been reverted to the [$4 version as of $2, $3].</span>",
 1507+'filerevert-success' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]''' has been reverted to the [$4 version as of $3, $2].</span>",
15081508 'filerevert-badversion' => 'There is no previous local version of this file with the provided timestamp.',
15091509
 1510+# File deletion
 1511+'filedelete' => 'Delete $1',
 1512+'filedelete-legend' => 'Delete file',
 1513+'filedelete-intro' => "You are deleting '''[[Media:$1|$1]]'''.",
 1514+'filedelete-intro-old' => "<span class=\"plainlinks\">You are deleting the version of '''[[Media:$1|$1]]''' as of [$4 $3, $2].</span>",
 1515+'filedelete-comment' => 'Comment:',
 1516+'filedelete-submit' => 'Delete',
 1517+'filedelete-success' => "'''$1''' has been deleted.",
 1518+'filedelete-success-old' => "<span class=\"plainlinks\">The version of '''[[Media:$1|$1]]''' as of $3, $2 has been deleted.</span>",
 1519+'filedelete-nofile' => "'''$1''' does not exist on this site.",
 1520+'filedelete-nofile-old' => "There is no archived version of '''$1''' with the specified attributes.",
 1521+'filedelete-iscurrent' => 'You are attempting to delete the most recent version of this file. Please revert to an older version first.',
 1522+
15101523 # MIME search
15111524 'mimesearch' => 'MIME search',
15121525 'mimesearch-summary' => 'This page enables the filtering of files for its MIME-type. Input: contenttype/subtype, e.g. <tt>image/jpeg</tt>.',
Index: branches/liquidthreads/languages/messages/MessagesSu.php
@@ -237,22 +237,23 @@
238238 'versionrequired' => 'Butuh MediaWiki vérsi $1',
239239 'versionrequiredtext' => 'Butuh MediaWiki vérsi $1 pikeun migunakeun ieu kaca. Mangga tingal [[Special:Version|kaca vérsi]]',
240240
241 -'ok' => 'Heug',
242 -'pagetitle' => '$1 - {{SITENAME}}',
243 -'retrievedfrom' => 'Disalin ti "$1"',
244 -'youhavenewmessages' => 'Anjeun boga $1 ($2).',
245 -'newmessageslink' => 'talatah anyar',
246 -'newmessagesdifflink' => 'bédana ti nu saméméhna',
247 -'editsection' => 'édit',
248 -'editold' => 'édit',
249 -'editsectionhint' => 'Édit bab: $1',
250 -'toc' => 'Daptar eusi',
251 -'showtoc' => 'témbongkeun',
252 -'hidetoc' => 'sumputkeun',
253 -'thisisdeleted' => 'Témbongkeun atawa simpen deui $1?',
254 -'viewdeleted' => 'Témbongkeun $1?',
255 -'restorelink' => '$1 éditan dihapus',
256 -'feedlinks' => 'Asupan:',
 241+'ok' => 'Heug',
 242+'pagetitle' => '$1 - {{SITENAME}}',
 243+'retrievedfrom' => 'Disalin ti "$1"',
 244+'youhavenewmessages' => 'Anjeun boga $1 ($2).',
 245+'newmessageslink' => 'talatah anyar',
 246+'newmessagesdifflink' => 'bédana ti nu saméméhna',
 247+'youhavenewmessagesmulti' => 'Anjeun boga talatah anyar di $1',
 248+'editsection' => 'édit',
 249+'editold' => 'édit',
 250+'editsectionhint' => 'Édit bab: $1',
 251+'toc' => 'Daptar eusi',
 252+'showtoc' => 'témbongkeun',
 253+'hidetoc' => 'sumputkeun',
 254+'thisisdeleted' => 'Témbongkeun atawa simpen deui $1?',
 255+'viewdeleted' => 'Témbongkeun $1?',
 256+'restorelink' => '$1 éditan dihapus',
 257+'feedlinks' => 'Asupan:',
257258
258259 # Short words for each namespace, by default used in the 'article' tab in monobook
259260 'nstab-main' => 'Artikel',
@@ -329,7 +330,6 @@
330331 'yourdomainname' => 'Domain anjeun',
331332 'externaldberror' => 'Aya kasalahan dina pangkalan data oténtikasi luar, atawa anjeun mémang teu diwenangkeun pikeun ngaropéa rekening luar anjeun.',
332333 'loginproblem' => "<b>Aya masalah na ''login'' anjeun.</b><br />Coba deui!",
333 -'alreadyloggedin' => '<strong>Pamaké $1, anjeun geus asup log!</strong><br />',
334334 'login' => 'Asup log',
335335 'loginprompt' => "Anjeun kudu boga ''cookies'' sangkan bisa asup log ka {{SITENAME}}.",
336336 'userlogin' => 'Nyieun rekening atawa asup log',
@@ -366,6 +366,7 @@
367367 'nouserspecified' => 'Anjeun kudu ngeusian ngaran landihan.',
368368 'wrongpassword' => 'Sandi nu diasupkeun teu cocog. Mangga cobian deui.',
369369 'wrongpasswordempty' => 'Sandina can kaeusian. Cobaan deui!',
 370+'passwordtooshort' => 'Sandi anjeun pondok teuing, sahanteuna kudu $1 karakter.',
370371 'mailmypassword' => 'Kirim sandi anyar ngaliwatan surélék',
371372 'passwordremindertitle' => 'Pangéling sandi ti {{SITENAME}}',
372373 'passwordremindertext' => 'Aya (jigana anjeun ti alamat IP $1) nu ménta sangkan dikiriman sandi anyar asup log {{SITENAME}} ($4). Sandi keur pamaké "$2" ayeuna nyaéta "$3". Anjeun kudu asup log sarta ngarobah sandi anjeun ayeuna.',
@@ -383,6 +384,7 @@
384385 'invalidemailaddress' => 'Alamat surélék teu bisa ditarima sabab formatna salah. Mangga lebetkeun alamat nu formatna bener atawa kosongkeun.',
385386 'accountcreated' => 'Rekening ngeus di jieun.',
386387 'accountcreatedtext' => 'Rekening pamaké pikeun $1 geus dijieun.',
 388+'loginlanguagelabel' => 'Basa: $1',
387389
388390 # Password reset dialog
389391 'resetpass_text' => '<!-- Tambahkeun téks di dieu -->',
@@ -474,7 +476,6 @@
475477 ''Kusabab ieu wiki ngawenangkeun dipakéna HTML atah, pramidangna disumputkeun pikeun nyegah panarajang JavaScript.''
476478
477479 <strong>Mun ieu éditan bener, mangga cobian deui. Mun tetep teu metu, cobi kaluar log heula, lajeng lebet deui.</strong>",
478 -'importing' => 'Ngimpor $1',
479480 'editing' => 'Ngédit $1',
480481 'editinguser' => 'Ngédit $1',
481482 'editingsection' => 'Ngédit $1 (bagian)',
@@ -754,7 +755,6 @@
755756 # Image list
756757 'imagelist' => 'Daptar gambar',
757758 'imagelisttext' => 'Di handap ieu daptar $1 gambar nu disusun $2.',
758 -'imagelistforuser' => 'Ukur némbongkeun gambar nu dimuatkeun ku $1.',
759759 'getimagelist' => 'mulut béréndélan koropak',
760760 'ilsubmit' => 'Sungsi',
761761 'showlast' => 'Témbongkeun $1 gambar ahir dumasar $2.',
@@ -764,23 +764,9 @@
765765 'imgdelete' => 'hap',
766766 'imgdesc' => 'dad',
767767 'imgfile' => 'koropak',
768 -'imglegend' => 'Katerangan: (desc) = témbongkeun/édit dadaran gambar.',
769 -'imghistory' => 'Jujutan gambar',
770 -'revertimg' => 'blk',
771 -'deleteimg' => 'hap',
772 -'deleteimgcompletely' => 'Hapus sadaya révisi',
773 -'imghistlegend' => 'Katerangan: (kiw) = ieu salaku gambar kiwari, (hps) = hapus vérsi heubeul ieu, (blk) = balikkeun ka vérsi heubeul ieu.
774 -<br /><i>Klik na titimangsa pikeun nempo gambar nu dimuat poé éta</i>.',
775768 'imagelinks' => 'Tumbu gambar',
776769 'linkstoimage' => 'Kaca nu numbu ka gambar ieu:',
777770 'nolinkstoimage' => 'Teu aya kaca nu numbu ka gambar ieu.',
778 -'sharedupload' => "<br clear=both>
779 -{| align=center border=0 cellpadding=3 cellspacing=3 style=\"border: solid #aaa 1px; background: #f9f9f9; font-size: 100%;\"
780 -|-
781 -| [[Gambar:Commons-logo.svg|20px|Lambang Wikimedia Commons]]
782 -|Koropak ieu asalna ti ''[[Commons:Tepas|Wikimedia Commons]]''. Tempo '''[[Commons:Image:{{PAGENAME}}|kaca dadaranana]]''' pikeun leuwih jéntré.
783 -|}
784 -<br />",
785771 'shareduploadwiki' => 'Mangga aos $1 pikeun émbaran leuwih jéntré.',
786772 'shareduploadwiki-linktext' => 'kaca pedaran koropak',
787773 'noimage' => 'Euweuh koropak nu ngaranna kitu, anjeun bisa $1.',
@@ -952,7 +938,6 @@
953939 'mywatchlist' => 'Awaskeuneun',
954940 'watchlistfor' => "(keur '''$1''')",
955941 'nowatchlist' => 'Anjeun teu boga awaskeuneun.',
956 -'watchlistcount' => "'''Anjeun boga $1 awaskeuneun, kaasup kaca obrolan.'''",
957942 'watchnologin' => 'Can asup log',
958943 'watchnologintext' => 'Anjeun kudu [[Special:Userlogin|asup log]] pikeun ngarobah awaskeuneun.',
959944 'addedwatch' => 'Geus ditambahkeun ka awaskeuneun',
@@ -1036,7 +1021,6 @@
10371022 'deletionlog' => 'log hapusan',
10381023 'reverted' => 'Malikkeun ka révisi nu ti heula',
10391024 'deletecomment' => 'Alesan ngahapus',
1040 -'imagereverted' => 'Malikkeun deui ka vérsi nu saméméhna geus réngsé.',
10411025 'rollback' => 'Balikkeun éditan',
10421026 'rollback_short' => 'Balikkeun',
10431027 'rollbacklink' => 'balikkeun',
@@ -1249,7 +1233,6 @@
12501234 'allmessagesdefault' => 'Téks ti dituna',
12511235 'allmessagescurrent' => 'Téks kiwari',
12521236 'allmessagestext' => 'Ieu mangrupa daptar talatah sistim nu aya na spasi ngaran MediaWiki:.',
1253 -'allmessagesnotsupportedUI' => 'Basa antarbeungeut anjeun kiwari <b>$1</b> teu dirojong ku Special:AllMessages na loka ieu.',
12541237 'allmessagesnotsupportedDB' => 'Special:AllMessages teu dirojong sabab wgUseDatabaseMessages pareum.',
12551238 'allmessagesfilter' => 'Saringan ngaran talatah:',
12561239 'allmessagesmodified' => 'Témbongkeun ukur nu robah',
@@ -1388,12 +1371,11 @@
13891372 # Media information
13901373 'imagemaxsize' => 'Watesan gambar na kaca dadaran gambar nepi ka:',
13911374
 1375+# Special:Newimages
13921376 'newimages' => 'Galeri gambar anyar',
13931377 'showhidebots' => '($1 bot)',
13941378 'noimages' => 'Taya nanaon.',
13951379
1396 -'passwordtooshort' => 'Sandi anjeun pondok teuing, sahanteuna kudu $1 karakter.',
1397 -
13981380 # Metadata
13991381 'metadata-help' => 'Ieu koropak ngandung émbaran tambahan, nu sigana asalna tina kaméra digital atawa paminday nu dipaké pikeun ngadigitalkeunana. Mun ieu koropak geus dirobah tina bentuk aslina, datana bisa jadi teu bener.',
14001382
@@ -1469,13 +1451,10 @@
14701452 $1',
14711453 'confirm_purge_button' => 'Heug',
14721454
1473 -'youhavenewmessagesmulti' => 'Anjeun boga talatah anyar di $1',
1474 -
 1455+# AJAX search
14751456 'articletitles' => "Artikel nu dimimitian ku ''$1''",
14761457 'hideresults' => 'Sumputkeun hasil',
14771458
1478 -'loginlanguagelabel' => 'Basa: $1',
1479 -
14801459 # Multipage image navigation
14811460 'imgmultipageprev' => '&larr; kaca saacana',
14821461 'imgmultipagenext' => 'kaca salajeungna &rarr;',
@@ -1494,15 +1473,11 @@
14951474 # Auto-summaries
14961475 'autosumm-blank' => 'Ngahapus eusi ti kaca',
14971476 'autosumm-replace' => "Ngaganti kaca ku '$1'",
1498 -'autoredircomment' => 'Mindahkeun ka [[$1]]', # This should be changed to the new naming convention, but existed beforehand
 1477+'autoredircomment' => 'Mindahkeun ka [[$1]]',
14991478 'autosumm-new' => 'Kaca anyar: $1',
15001479
15011480 # Live preview
1502 -'livepreview-failed' => 'Sawangan langsung gagal!
1503 -Coba ku sawangan normal.',
1504 -'livepreview-error' => 'Gagal nyambungkeun: $1 "$2"
1505 -Coba ku sawangan normal.',
 1481+'livepreview-failed' => 'Sawangan langsung gagal! Coba ku sawangan normal.',
 1482+'livepreview-error' => 'Gagal nyambungkeun: $1 "$2" Coba ku sawangan normal.',
15061483
15071484 );
1508 -
1509 -
Index: branches/liquidthreads/languages/messages/MessagesHe.php
@@ -1147,13 +1147,26 @@
11481148 # File reversion
11491149 'filerevert' => 'שחזור $1',
11501150 'filerevert-legend' => 'שחזור קובץ',
1151 -'filerevert-intro' => '<span class="plainlinks">משחזר את \'\'\'[[Media:$1|$1]]\'\'\' ל[גרסה $4 מ־$2, $3].</span>',
 1151+'filerevert-intro' => '<span class="plainlinks">משחזר את \'\'\'[[Media:$1|$1]]\'\'\' ל[גרסה $4 מ־$3, $2].</span>',
11521152 'filerevert-comment' => 'הערה:',
1153 -'filerevert-defaultcomment' => 'שוחזר לגרסה מ־$1, $2',
 1153+'filerevert-defaultcomment' => 'שוחזר לגרסה מ־$2, $1',
11541154 'filerevert-submit' => 'שחזור',
1155 -'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\' שוחזרה ל[גרסה $4 מ־$2, $3].</span>',
 1155+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\' שוחזרה ל[גרסה $4 מ־$3, $2].</span>',
11561156 'filerevert-badversion' => 'אין גרסה מקומית קודמת של הקובץ שהועלתה בתאריך המצוין.',
11571157
 1158+# File deletion
 1159+'filedelete' => 'מוחק את $1',
 1160+'filedelete-legend' => 'מחיקת קובץ',
 1161+'filedelete-intro' => "מוחק את '''[[Media:$1|$1]]'''.",
 1162+'filedelete-intro-old' => '<span class="plainlinks">אתם מוחקים את הגרסה של \'\'\'[[Media:$1|$1]]\'\'\' מ־[$4 $3, $2].</span>',
 1163+'filedelete-comment' => 'הערה:',
 1164+'filedelete-submit' => 'מחיקה',
 1165+'filedelete-success' => "'''$1''' נמחק.",
 1166+'filedelete-success-old' => '<span class="plainlinks">הגרסה של \'\'\'[[Media:$1|$1]]\'\'\' מ־$3, $2 נמחקה.</span>',
 1167+'filedelete-nofile' => "'''$1''' אינו קיים באתר זה.",
 1168+'filedelete-nofile-old' => "אין גרסה ישנה של '''$1''' עם התכונות המצוינות.",
 1169+'filedelete-iscurrent' => 'אתם מנסים למחוק את הגרסה החדשה ביותר של הקובץ. אנא שחזרו קודם לגרסה ישנה יותר.',
 1170+
11581171 # MIME search
11591172 'mimesearch' => 'חיפוש MIME',
11601173 'mimesearch-summary' => 'דף זה מאפשר את סינון הקבצים לפי סוג ה־MIME שלהם. סוג ה־MIME בנוי בצורה "סוג תוכן/סוג משני", לדוגמה <tt>image/jpeg</tt>.',
Index: branches/liquidthreads/languages/messages/MessagesZh_yue.php
@@ -1023,6 +1023,7 @@
10241024 'uploadwarning' => '上載警告',
10251025 'savefile' => '儲存檔案',
10261026 'uploadedimage' => '上載咗"[[$1]]"',
 1027+'overwroteimage' => '已經上載咗"[[$1]]"嘅新版本',
10271028 'uploaddisabled' => '上載已停用',
10281029 'uploaddisabledtext' => '呢個 wiki 嘅檔案上載已經停用。',
10291030 'uploadscripted' => '呢個檔案包含可能會誤被瀏覽器解釋執行嘅 HTML 或 script 代碼。',
@@ -1098,9 +1099,22 @@
10991100 'filerevert-comment' => '註解:',
11001101 'filerevert-defaultcomment' => '已經回復到響$1 $2嘅版本',
11011102 'filerevert-submit' => '回復',
1102 -'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經回復到[響$2 $3嘅$4版本]。</span>',
 1103+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經回復到[$4 響$2 $3嘅版本]。</span>',
11031104 'filerevert-badversion' => '呢個檔案所提供嘅時間截記並無之前嘅本地版本。',
11041105
 1106+# File deletion
 1107+'filedelete' => '刪除$1',
 1108+'filedelete-legend' => '刪除檔案',
 1109+'filedelete-intro' => "你而家刪除緊'''[[Media:$1|$1]]'''。",
 1110+'filedelete-intro-old' => "<span class=\"plainlinks\">你而家刪除緊'''[[Media:$1|$1]]'''響[$4 $2 $3]嘅版本。</span>",
 1111+'filedelete-comment' => '註解:',
 1112+'filedelete-submit' => '刪除',
 1113+'filedelete-success' => "'''$1'''已經刪除咗。",
 1114+'filedelete-success-old' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''響 $2 $3 嘅版本已經刪除咗。</span>",
 1115+'filedelete-nofile' => "'''$1'''響呢個網站度唔存在。",
 1116+'filedelete-nofile-old' => "呢度係無'''$1'''響 $2 $3 嘅版本。",
 1117+'filedelete-iscurrent' => '你而家嘗試刪除呢個檔案嘅最近版本。請先將個檔打回頭做舊啲嘅版本先。',
 1118+
11051119 # MIME search
11061120 'mimesearch' => 'MIME 搜尋',
11071121 'mimesearch-summary' => '呢一版可以過濾有關檔案嘅MIME類型。輸入方法:contenttype/subtype,例如 <tt>image/jpeg</tt>。',
@@ -1884,13 +1898,15 @@
18851899 'mediawarning' => "'''警告''':呢個檔案可能有一啲惡意嘅程式編碼,如果執行佢嘅話,你嘅系統可能會被波及。<hr />",
18861900 'imagemaxsize' => '限制圖像描述頁中嘅圖像一細到:',
18871901 'thumbsize' => '縮圖大細:',
 1902+'widthheightpage' => '$1×$2, $3版',
18881903 'file-info' => '(檔案大細:$1 ,MIME類型:$2)',
18891904 'file-info-size' => '($1 × $2 像素,檔案大細:$3 ,MIME類型:$4)',
18901905 'file-nohires' => '<small>冇更高解像度嘅圖像。</small>',
1891 -'file-svg' => '<small>呢幅係可以無損放縮嘅向量圖。基礎大細: $1 × $2 像素。</small>',
 1906+'svg-long-desc' => '(SVG檔案,表面大細: $1 × $2 像素,檔案大細:$3)',
18921907 'show-big-image' => '完整解像度',
18931908 'show-big-image-thumb' => '<small>呢個預覽嘅大細: $1 × $2 像素</small>',
18941909
 1910+# Special:Newimages
18951911 'newimages' => '新檔案畫廊',
18961912 'showhidebots' => '($1 機械人)',
18971913 'noimages' => '冇嘢去睇。',
Index: branches/liquidthreads/languages/messages/MessagesZh_classical.php
@@ -790,6 +790,7 @@
791791 'emptyfile' => '無以獻,疑謬名也,請核之。',
792792 'fileexists' => '$1存矣,欲蓋之則再也。',
793793 'successfulupload' => '君成功置檔案於此',
 794+'overwroteimage' => '已置「[[$1]]」之新版也',
794795 'sourcefilename' => '源名',
795796 'destfilename' => '欲置檔名',
796797 'watchthisupload' => '派哨',
@@ -832,9 +833,22 @@
833834 'filerevert-comment' => '注:',
834835 'filerevert-defaultcomment' => '已還至在$1$2之版矣',
835836 'filerevert-submit' => '還',
836 -'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已還[在$2$3之$4版本]矣。</span>',
 837+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已還[$4 在$2$3之版本]矣。</span>',
837838 'filerevert-badversion' => '此檔之時印無本地之前版也。',
838839
 840+# File deletion
 841+'filedelete' => '刪$1',
 842+'filedelete-legend' => '刪檔',
 843+'filedelete-intro' => "汝刪'''[[Media:$1|$1]]'''。",
 844+'filedelete-intro-old' => "<span class=\"plainlinks\">汝刪'''[[Media:$1|$1]]'''在[$4 $2$3]之版本。</span>",
 845+'filedelete-comment' => '注:',
 846+'filedelete-submit' => '刪',
 847+'filedelete-success' => "'''$1'''已刪矣。",
 848+'filedelete-success-old' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''在 $2$3 之版本已刪矣。</span>",
 849+'filedelete-nofile' => "'''$1'''在本網無存也。",
 850+'filedelete-nofile-old' => "無'''$1'''在 $2$3 之版本也。",
 851+'filedelete-iscurrent' => '汝試刪近之檔。先退至舊版也。',
 852+
839853 # Unwatched pages
840854 'unwatchedpages' => '無哨',
841855
@@ -1257,16 +1271,22 @@
12581272 'filedelete-archive-read-only' => '"$1"之目,莫之能書。',
12591273
12601274 # Browsing diffs
1261 -'previousdiff' => '前辨',
1262 -'nextdiff' => '後辨',
 1275+'previousdiff' => '←前辨',
 1276+'nextdiff' => '後辨→',
12631277
12641278 # Media information
1265 -'widthheight' => '長$1寬$2',
 1279+'widthheight' => '長$1寬$2',
 1280+'widthheightpage' => '長$1寬$2,頁$3',
 1281+'svg-long-desc' => '(SVG檔,表長$1寬$2像素,檔積:$3)',
12661282
 1283+# Special:Newimages
12671284 'newimages' => '新圖廊',
12681285 'showhidebots' => '($1僕)',
12691286 'noimages' => '無',
12701287
 1288+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 1289+'video-dims' => '$1,長$2寬$3',
 1290+
12711291 # Bad image list
12721292 'bad_image_list' => '根式篡:
12731293
@@ -1422,3 +1442,5 @@
14231443
14241444 );
14251445
 1446+
 1447+
Index: branches/liquidthreads/languages/messages/MessagesUk.php
@@ -90,7 +90,6 @@
9191 'forcetoc' => array( 0, '__FORCETOC__', '__ОБОВ_ЗМІСТ__'),
9292 'toc' => array( 0, '__TOC__', '__ЗМІСТ__'),
9393 'noeditsection' => array( 0, '__NOEDITSECTION__', '__БЕЗ_РЕДАГУВ_РОЗДІЛУ__'),
94 - 'start' => array( 0, '__START__', '__ПОЧАТОК__'),
9594 'currentmonth' => array( 1, 'CURRENTMONTH', 'ПОТОЧНИЙ_МІСЯЦЬ'),
9695 'currentmonthname' => array( 1, 'CURRENTMONTHNAME','НАЗВА_ПОТОЧНОГО_МІСЯЦЯ'),
9796 'currentmonthnamegen' => array( 1, 'CURRENTMONTHNAMEGEN','НАЗВА_ПОТОЧНОГО_МІСЯЦЯ_РОД'),
@@ -416,23 +415,24 @@
417416 'versionrequired' => 'Потрібна MediaWiki версій $1',
418417 'versionrequiredtext' => 'Для роботи з цією сторінкою потрібна MediaWiki версій $1. Див. [[{{ns:special}}:Version]].',
419418
420 -'ok' => 'OK',
421 -'pagetitle' => '$1 — {{SITENAME}}',
422 -'retrievedfrom' => 'Отримано з $1',
423 -'youhavenewmessages' => 'Ви отримали $1 ($2).',
424 -'newmessageslink' => 'нові повідомлення',
425 -'newmessagesdifflink' => 'різниця останнього редагування',
426 -'editsection' => 'ред.',
427 -'editold' => 'ред.',
428 -'editsectionhint' => 'Редагувати секцію: $1',
429 -'toc' => 'Зміст',
430 -'showtoc' => 'показати',
431 -'hidetoc' => 'сховати',
432 -'thisisdeleted' => 'Переглянути чи відновити $1?',
433 -'viewdeleted' => 'Переглянути $1?',
434 -'restorelink' => '$1 {{PLURAL:$1|редагування|редагування|редагувань}} вилучено',
435 -'feedlinks' => 'В вигляді:',
436 -'feed-invalid' => 'Невірний тип каналу для підписки.',
 419+'ok' => 'OK',
 420+'pagetitle' => '$1 — {{SITENAME}}',
 421+'retrievedfrom' => 'Отримано з $1',
 422+'youhavenewmessages' => 'Ви отримали $1 ($2).',
 423+'newmessageslink' => 'нові повідомлення',
 424+'newmessagesdifflink' => 'різниця останнього редагування',
 425+'youhavenewmessagesmulti' => 'Ви отримали нові повідомлення на $1',
 426+'editsection' => 'ред.',
 427+'editold' => 'ред.',
 428+'editsectionhint' => 'Редагувати секцію: $1',
 429+'toc' => 'Зміст',
 430+'showtoc' => 'показати',
 431+'hidetoc' => 'сховати',
 432+'thisisdeleted' => 'Переглянути чи відновити $1?',
 433+'viewdeleted' => 'Переглянути $1?',
 434+'restorelink' => '$1 {{PLURAL:$1|редагування|редагування|редагувань}} вилучено',
 435+'feedlinks' => 'В вигляді:',
 436+'feed-invalid' => 'Невірний тип каналу для підписки.',
437437
438438 # Short words for each namespace, by default used in the 'article' tab in monobook
439439 'nstab-main' => 'Стаття',
@@ -522,7 +522,6 @@
523523 'yourdomainname' => 'Ваш домен',
524524 'externaldberror' => 'Сталася помилка при аутентифікації за допомогою зовнішньої бази даних, або у вас недостатньо прав для внесення змін до свого зовнішнього облікового запису.',
525525 'loginproblem' => '<span style="color:red">Проблема при вході в систему. <br />попробуйте ще раз!</span>',
526 -'alreadyloggedin' => '<strong>Користувач $1, ви вже ввійшли в систему!</strong><br />',
527526 'login' => 'Вхід в систему',
528527 'loginprompt' => "*Реєстрація користувача займає декілька секунд, а зареєстровані користувачі мають [[{{ns:project}}:В чому доцільність реєстрації|ряд переваг]]
529528 *Для входу в систему необхідно, щоб були активовані куки (''cookies'').",
@@ -560,6 +559,7 @@
561560 'nouserspecified' => "Ви повинні вказати ім'я користувача.",
562561 'wrongpassword' => 'Введений вами пароль невірний. Попробуйте ще раз.',
563562 'wrongpasswordempty' => 'Будь-ласка, введіть непорожній пароль.',
 563+'passwordtooshort' => 'Ваш пароль занадто короткий. Він має містити принаймні $1 символів.',
564564 'mailmypassword' => 'Надіслати новий пароль',
565565 'passwordremindertitle' => "Пам'ятка пароля користувача {{grammar:genitive|{{SITENAME}}}}",
566566 'passwordremindertext' => 'Хтось (можливо, ви - з IP-адреси $1)
@@ -585,6 +585,7 @@
586586 'invalidemailaddress' => 'Введену адресу не можливо прийняти, вона не відповідає формату адрес електронної пошти. Будь-ласка, введіть коректну адресу або залиште поле порожнім.',
587587 'accountcreated' => 'Обліковий запис створено.',
588588 'accountcreatedtext' => 'Створено обліковий запис для користувача $1.',
 589+'loginlanguagelabel' => 'Мова: $1',
589590
590591 # Password reset dialog
591592 'resetpass' => 'Очистити пароль облікового запису',
@@ -664,8 +665,8 @@
665666 Щоб створити нову статтю, наберіть текст в вікні нижче
666667 (див. [[Project:Довідка|довідкову статтю]] щоб отримати більше інформації).
667668 Якщо ви опинились тут помилково, просто натисніть кнопку браузера '''назад'''.",
668 -'anontalkpagetext' => '----
669 -\'\'Це сторінка обговорення, що належить анонімному користувачу, який ще не зареєструвався або не скористався зареєстрованим ім\'ям. Тому ми вимушені використовувати IP-адресу для його ідентифікації. Одна IP-адреса може використовуватися декількома користувачами. Якщо ви - анонімний користувач і вважаєте, що отримали коментарі, адресовані не вам, будь ласка [[Special:userlogin|зареєструйтесь або увійдіть в систему як зареєстрований користувач]], щоб у майбутньому уникнути можливої плутанини з іншими анонімними користувачами.\'\'',
 669+'anontalkpagetext' => "----
 670+''Це сторінка обговорення, що належить анонімному користувачу, який ще не зареєструвався або не скористався зареєстрованим ім'ям. Тому ми вимушені використовувати IP-адресу для його ідентифікації. Одна IP-адреса може використовуватися декількома користувачами. Якщо ви - анонімний користувач і вважаєте, що отримали коментарі, адресовані не вам, будь ласка [[Special:userlogin|зареєструйтесь або увійдіть в систему як зареєстрований користувач]], щоб у майбутньому уникнути можливої плутанини з іншими анонімними користувачами.''",
670671 'noarticletext' => "<div style=\"border: 1px solid #ccc; padding: 7px; background-color: #fff; color: #000\">'''На даний момент текст в цієї статті відсутній.'''
671672 * '''[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} Створити статтю {{PAGENAME}} ]'''.
672673 * [[{{ns:special}}:Search/{{PAGENAMEE}}|Шукати {{PAGENAME}}]] у інших статтях.
@@ -689,7 +690,6 @@
690691 ''Так як дана вікі дозволяє використовувати чистий HTML, попередній перегляд відключено, щоб попередити JavaScript-атаки.''
691692
692693 <sstrong>Якщо це доброякісна спроба редагування, будь-ласка, спробуйте ще раз. Якщо не вийде знову, - спробуйте завершити сеанс роботи й ще раз ввійти до системи.</sstrong>",
693 -'importing' => 'Імпорт $1',
694694 'editing' => 'Редагування $1',
695695 'editinguser' => 'Редагування <b>$1</b>',
696696 'editingsection' => 'Редагування $1 (секція)',
@@ -1060,7 +1060,6 @@
10611061 # Image list
10621062 'imagelist' => 'Список файлів',
10631063 'imagelisttext' => "Нижче подано список з '''$1''' {{plural:$1|файлу|файлів|файлів}}, відсортованих $2.",
1064 -'imagelistforuser' => 'Тільки зображення завантажені користувачем $1.',
10651064 'getimagelist' => 'отримання списку файлів',
10661065 'ilsubmit' => 'Шукати',
10671066 'showlast' => 'Показати останні $1 {{plural:$1|файл|файли|файлів}}, {{plural:$1|впорядкований|впорядковані|впорядкованих}} $2.',
@@ -1070,22 +1069,9 @@
10711070 'imgdelete' => 'вилуч.',
10721071 'imgdesc' => 'опис',
10731072 'imgfile' => 'файл',
1074 -'imglegend' => 'Пояснення: (опис) = показати/змінити опис зображення.',
1075 -'imghistory' => 'Журнал зображення',
1076 -'revertimg' => 'відкин.',
1077 -'deleteimg' => 'вилуч.',
1078 -'deleteimgcompletely' => 'Вилучити всі версії',
1079 -'imghistlegend' => 'Пояснення: (поточ.) = це - поточне зображення, (вилуч.) = вилучити цю стару версію, (відкин.) = відкинути до цієї старої версії.
1080 -<br /><i>Виберіть дату, щоб переглянути список зображень, звантажених на цю дату</i>.',
10811073 'imagelinks' => 'Посилання',
10821074 'linkstoimage' => 'Ось статті, що посилаються на даний файл:',
10831075 'nolinkstoimage' => 'Статті, що посилаються на дане зображення, відсутні.',
1084 -'sharedupload' => '<div style="clear:both;"></div>
1085 -{| align=center border=0 cellpadding=2 cellspacing=2 style="border: solid #aaa 1px; background: #f9f9f9; margin: .2em auto .2em auto;"
1086 -|-
1087 -| [[Image:Commons-logo.svg|20px|Wikimedia Commons logo]]
1088 -| [[Commons:Image:{{PAGENAME}}|Відомості про цей файл]] знаходяться в [[Wikimedia Commons|ВікіСховищі]], централізованому сховищі вільно розповсюджуваних зображень та мультимедія для використання у проектах [http://wikimediafoundation.org Фонду Вікімедія].
1089 -|}',
10901076 'shareduploadwiki' => 'Додаткову інформацію можна знайти на $1.',
10911077 'shareduploadwiki-linktext' => 'сторінка опису файлу',
10921078 'noimage' => 'Немає файлу з такою назвою, ви можете $1.',
@@ -1256,7 +1242,6 @@
12571243 'watchlistfor' => "(користувача '''$1''')",
12581244 'nowatchlist' => 'Ваш список спостереження порожній.',
12591245 'watchlistanontext' => 'Вам необхідно $1, щоб переглянути чи редагувати список спостереження.',
1260 -'watchlistcount' => "'''В вашому списку спостереження $1 {{plural:$1|сторінка|сторінки|стрінок}}, включно зі сторінками обговорення.'''",
12611246 'watchnologin' => 'Ви не ввійшли в систему',
12621247 'watchnologintext' => 'Щоб змінювати список спостереження, ви повинні [[{{ns:special}}:Userlogin|ввійти в систему]].',
12631248 'addedwatch' => 'Додана до списку спостереження',
@@ -1344,7 +1329,6 @@
13451330 'deletionlog' => 'список вилучень',
13461331 'reverted' => 'Відновлено зі старої версії',
13471332 'deletecomment' => 'Причина вилучення',
1348 -'imagereverted' => 'Повернення до молодшої версії виконано.',
13491333 'rollback' => 'Відкинути редагування',
13501334 'rollback_short' => 'Відкинути',
13511335 'rollbacklink' => 'відкинути',
@@ -1582,7 +1566,6 @@
15831567 'allmessagesdefault' => 'Стандартний текст',
15841568 'allmessagescurrent' => 'Поточний текст',
15851569 'allmessagestext' => 'Це список усіх системних повідомлень, які доступні в просторі імен «MediaWiki:».',
1586 -'allmessagesnotsupportedUI' => 'Встановлена поточна мова <strong>$1</strong> не підтримується Special:Allmessages на цьому сайті.',
15871570 'allmessagesnotsupportedDB' => "'''Special:Allmessages''' не підтримується, так як вимкнена опція '''wgUseDatabaseMessages'''.",
15881571 'allmessagesfilter' => 'Фільтр в форматі регулярного виразу:',
15891572 'allmessagesmodified' => 'Показати лише змінені',
@@ -1652,7 +1635,7 @@
16531636 }',
16541637
16551638 # Scripts
1656 -'common.js' => '/* Розміщений тут код JavaScript буде завантажений всім користувачам при зверненні до будь-якої сторінки */',
 1639+'common.js' => '/* Розміщений тут код JavaScript буде завантажений всім користувачам при зверненні до будь-якої сторінки */',
16571640
16581641 # Metadata
16591642 'nodublincore' => 'Метадані Dublin Core RDF заборонені для цього сервера.',
@@ -1723,12 +1706,11 @@
17241707 'thumbsize' => 'Розмір зменшеної версії зображення:',
17251708 'widthheight' => '$1 × $2',
17261709
 1710+# Special:Newimages
17271711 'newimages' => 'Галерея нових файлів',
17281712 'showhidebots' => '($1 ботів)',
17291713 'noimages' => 'Файли відсутні.',
17301714
1731 -'passwordtooshort' => 'Ваш пароль занадто короткий. Він має містити принаймні $1 символів.',
1732 -
17331715 # Metadata
17341716 'metadata' => 'Метадані',
17351717 'metadata-help' => 'Файл містить додаткові дані, які зазвичай додаються цифровими камерами чи сканерами. Якщо файл редагувався після створення, то деякі параметри можуть не відповідати цьому зображенню.',
@@ -2068,15 +2050,12 @@
20692051 $1',
20702052 'confirm_purge_button' => 'OK',
20712053
2072 -'youhavenewmessagesmulti' => 'Ви отримали нові повідомлення на $1',
2073 -
 2054+# AJAX search
20742055 'searchcontaining' => 'Шукати статті, які містять «$1».',
20752056 'searchnamed' => 'Шукати статті з назвою «$1».',
20762057 'articletitles' => 'Статті, що починаються з «$1»',
20772058 'hideresults' => 'Сховати результати',
20782059
2079 -'loginlanguagelabel' => 'Мова: $1',
2080 -
20812060 # Multipage image navigation
20822061 'imgmultipageprev' => '← попередня сторінка',
20832062 'imgmultipagenext' => 'наступна сторінка →',
@@ -2097,7 +2076,7 @@
20982077 # Auto-summaries
20992078 'autosumm-blank' => 'Видалений весь вміст сторінки',
21002079 'autosumm-replace' => 'Замінено сторінку на «$1»',
2101 -'autoredircomment' => 'Перенаправлено на [[$1]]', # This should be changed to the new naming convention, but existed beforehand
 2080+'autoredircomment' => 'Перенаправлено на [[$1]]',
21022081 'autosumm-new' => 'Нова сторінка: $1',
21032082
21042083 # Size units
@@ -2107,5 +2086,3 @@
21082087 'size-gigabytes' => '$1 ГБ',
21092088
21102089 );
2111 -
2112 -
Index: branches/liquidthreads/RELEASE-NOTES
@@ -177,6 +177,9 @@
178178 * (bug 10937) Distinguish overwritten files in upload log
179179 * Introduce 'ArticleUpdateBeforeRedirect' hook; see docs/hooks.txt for more
180180 information
 181+* Confirmation is now required when deleting old versions of files
 182+* (bug 7535) Users can now enter comments when deleting old versions of files
 183+* (bug 11001) Submit Special:Newpages as a GET, rather than a POST request
181184
182185 == Bugfixes since 1.10 ==
183186
@@ -441,6 +444,9 @@
442445 * Added site statistics (siprop=statistics for meta=siteinfo)
443446 * (bug 10902) Unable to fetch user contributions from IP addresses
444447 * `list=usercontribs` no longer requires that the user exist
 448+* (bug 10971) `aufrom` parameter doesn't work with spaces
 449+* Fix username handling issue with `auprefix` parameter
 450+* Treat underscores as spaces for `aufrom` and `auprefix` parameters
445451
446452 == Maintenance script changes since 1.10 ==
447453
Index: branches/liquidthreads/maintenance/language/messages.inc
@@ -898,6 +898,19 @@
899899 'filerevert-success',
900900 'filerevert-badversion',
901901 ),
 902+ 'filedelete' => array(
 903+ 'filedelete',
 904+ 'filedelete-legend',
 905+ 'filedelete-intro',
 906+ 'filedelete-intro-old',
 907+ 'filedelete-comment',
 908+ 'filedelete-submit',
 909+ 'filedelete-success',
 910+ 'filedelete-success-old',
 911+ 'filedelete-nofile',
 912+ 'filedelete-nofile-old',
 913+ 'filedelete-iscurrent',
 914+ ),
902915 'mimesearch' => array(
903916 'mimesearch',
904917 'mimesearch-summary',
@@ -2241,6 +2254,7 @@
22422255 'licenses' => '',
22432256 'imagelist' => 'Image list',
22442257 'filerevert' => 'File reversion',
 2258+ 'filedelete' => 'File deletion',
22452259 'mimesearch' => 'MIME search',
22462260 'unwatchedpages' => 'Unwatched pages',
22472261 'listredirects' => 'List redirects',
@@ -2383,4 +2397,4 @@
23842398 'enotif_subject',
23852399 'enotif_body',
23862400 'allmessagesnotsupportedDB',
2387 -);
 2401+);
\ No newline at end of file
Index: branches/liquidthreads/extensions/LqtExtension.php
@@ -1009,8 +1009,8 @@
10101010 $url = LqtView::permalinkUrlWithQuery( $this->thread, 'lqt_oldid=' . $t->revisionNumber() );
10111011
10121012 var_dump($t);
1013 - //$p = new Parser(); $sig = $wgOut->parse( $p->getUserSig( $t->changeUser() ), false );
1014 - $sig = "foo";
 1013+ $p = new Parser(); $sig = $wgOut->parse( $p->getUserSig( $t->changeUser() ), false );
 1014+// $sig = "foo";
10151015
10161016 $result[] = "<tr>";
10171017 $result[] = "<td><a href=\"$url\">" . $wgLang->timeanddate($t->timestamp()) . "</a></td>";
Index: branches/liquidthreads/includes/media/Generic.php
@@ -207,6 +207,7 @@
208208 global $wgLang;
209209 $nbytes = '(' . wfMsgExt( 'nbytes', array( 'parsemag', 'escape' ),
210210 $wgLang->formatNum( $file->getSize() ) ) . ')';
 211+ return "$nbytes";
211212 }
212213
213214 function getLongDesc( $file ) {
Index: branches/liquidthreads/includes/SpecialWantedpages.php
@@ -71,7 +71,6 @@
7272 * @return string
7373 */
7474 public function formatResult( $skin, $result ) {
75 - global $wgLang;
7675 $title = Title::makeTitleSafe( $result->namespace, $result->title );
7776 if( $title instanceof Title ) {
7877 if( $this->isCached() ) {
Index: branches/liquidthreads/includes/SpecialUserlogin.php
@@ -8,7 +8,6 @@
99 * constructor
1010 */
1111 function wfSpecialUserlogin() {
12 - global $wgCommandLineMode;
1312 global $wgRequest;
1413 if( session_id() == '' ) {
1514 wfSetupSession();
Index: branches/liquidthreads/includes/MagicWord.php
@@ -518,7 +518,7 @@
519519 // continue;
520520 throw new MWException( __METHOD__ . ': bad parameter name' );
521521 }
522 - list( $synIndex, $magicName ) = $parts;
 522+ list( /* $synIndex */, $magicName ) = $parts;
523523 $paramValue = next( $m );
524524 return array( $magicName, $paramValue );
525525 }
@@ -536,7 +536,7 @@
537537 public function matchVariableStartToEnd( $text ) {
538538 global $wgContLang;
539539 $regexes = $this->getVariableStartToEndRegex();
540 - foreach ( $regexes as $case => $regex ) {
 540+ foreach ( $regexes as $regex ) {
541541 if ( $regex !== '' ) {
542542 $m = false;
543543 if ( preg_match( $regex, $text, $m ) ) {
Index: branches/liquidthreads/includes/EditPage.php
@@ -304,7 +304,6 @@
305305 */
306306 function edit() {
307307 global $wgOut, $wgUser, $wgRequest, $wgTitle;
308 - global $wgEmailConfirmToEdit;
309308
310309 if ( ! wfRunHooks( 'AlternateEdit', array( &$this ) ) )
311310 return;
@@ -339,10 +338,11 @@
340339
341340 if ($error[0] == 'readonlytext')
342341 {
343 - if ($this->edit)
 342+ if ($this->edit) {
344343 $this->formtype = 'preview';
345 - else if ($this->save || $this->preview || $this->diff)
 344+ } elseif ($this->save || $this->preview || $this->diff) {
346345 $remove[] = $error;
 346+ }
347347 }
348348 }
349349
@@ -1029,9 +1029,10 @@
10301030 if ( count($cascadeSources) > 0 ) {
10311031 # Explain, and list the titles responsible
10321032 $notice = wfMsgExt( 'cascadeprotectedwarning', array('parsemag'), count($cascadeSources) ) . "\n";
1033 - foreach( $cascadeSources as $id => $page )
 1033+ foreach( $cascadeSources as $page ) {
10341034 $notice .= '* [[:' . $page->getPrefixedText() . "]]\n";
10351035 }
 1036+ }
10361037 $wgOut->addWikiText( $notice );
10371038 }
10381039
Index: branches/liquidthreads/includes/FileDeleteForm.php
@@ -0,0 +1,199 @@
 2+<?php
 3+
 4+/**
 5+ * File deletion user interface
 6+ *
 7+ * @addtogroup Media
 8+ * @author Rob Church <robchur@gmail.com>
 9+ */
 10+class FileDeleteForm {
 11+
 12+ private $title = null;
 13+ private $file = null;
 14+
 15+ private $oldfile = null;
 16+ private $oldimage = '';
 17+
 18+ /**
 19+ * Constructor
 20+ *
 21+ * @param File $file File we're deleting
 22+ */
 23+ public function __construct( $file ) {
 24+ $this->title = $file->getTitle();
 25+ $this->file = $file;
 26+ }
 27+
 28+ /**
 29+ * Fulfil the request; shows the form or deletes the file,
 30+ * pending authentication, confirmation, etc.
 31+ */
 32+ public function execute() {
 33+ global $wgOut, $wgRequest, $wgUser;
 34+ $this->setHeaders();
 35+
 36+ if( wfReadOnly() ) {
 37+ $wgOut->readOnlyPage();
 38+ return;
 39+ } elseif( !$wgUser->isLoggedIn() ) {
 40+ $wgOut->showErrorPage( 'uploadnologin', 'uploadnologintext' );
 41+ return;
 42+ } elseif( !$wgUser->isAllowed( 'delete' ) ) {
 43+ $wgOut->permissionError( 'delete' );
 44+ return;
 45+ } elseif( $wgUser->isBlocked() ) {
 46+ $wgOut->blockedPage();
 47+ return;
 48+ }
 49+
 50+ $this->oldimage = $wgRequest->getText( 'oldimage', false );
 51+ $token = $wgRequest->getText( 'wpEditToken' );
 52+ if( $this->oldimage && !$this->isValidOldSpec() ) {
 53+ $wgOut->showUnexpectedValueError( 'oldimage', htmlspecialchars( $this->oldimage ) );
 54+ return;
 55+ }
 56+ if( $this->oldimage )
 57+ $this->oldfile = RepoGroup::singleton()->getLocalRepo()->newFromArchiveName( $this->title, $this->oldimage );
 58+
 59+ if( !$this->haveDeletableFile() ) {
 60+ $wgOut->addHtml( $this->prepareMessage( 'filedelete-nofile' ) );
 61+ $wgOut->addReturnTo( $this->title );
 62+ return;
 63+ }
 64+
 65+ // Perform the deletion if appropriate
 66+ if( $wgRequest->wasPosted() && $wgUser->matchEditToken( $token, $this->oldimage ) ) {
 67+ $comment = $wgRequest->getText( 'wpComment' );
 68+ if( $this->oldimage ) {
 69+ $status = $this->file->deleteOld( $this->oldimage, $comment );
 70+ if( $status->ok ) {
 71+ // Need to do a log item
 72+ $log = new LogPage( 'delete' );
 73+ $log->addEntry( 'delete', $this->title, wfMsg( 'deletedrevision' , $this->oldimage ) );
 74+ }
 75+ } else {
 76+ $status = $this->file->delete( $comment );
 77+ if( $status->ok ) {
 78+ // Need to delete the associated article
 79+ $article = new Article( $this->title );
 80+ $article->doDeleteArticle( $comment );
 81+ }
 82+ }
 83+ if( !$status->isGood() )
 84+ $wgOut->addWikiText( $status->getWikiText( 'filedeleteerror-short', 'filedeleteerror-long' ) );
 85+ if( $status->ok ) {
 86+ $wgOut->addHtml( $this->prepareMessage( 'filedelete-success' ) );
 87+ // Return to the main page if we just deleted all versions of the
 88+ // file, otherwise go back to the description page
 89+ $wgOut->addReturnTo( $this->oldimage ? $this->title : Title::newMainPage() );
 90+ }
 91+ return;
 92+ }
 93+
 94+ // Show the form
 95+ $this->showForm();
 96+ }
 97+
 98+ /**
 99+ * Show the confirmation form
 100+ */
 101+ private function showForm() {
 102+ global $wgOut, $wgUser;
 103+
 104+ $form = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getAction() ) );
 105+ $form .= Xml::hidden( 'wpEditToken', $wgUser->editToken( $this->oldimage ) );
 106+ $form .= '<fieldset><legend>' . wfMsgHtml( 'filedelete-legend' ) . '</legend>';
 107+ $form .= $this->prepareMessage( 'filedelete-intro' );
 108+
 109+ $form .= '<p>' . Xml::inputLabel( wfMsg( 'filedelete-comment' ), 'wpComment', 'wpComment', 60 ) . '</p>';
 110+ $form .= '<p>' . Xml::submitButton( wfMsg( 'filedelete-submit' ) ) . '</p>';
 111+ $form .= '</fieldset>';
 112+ $form .= '</form>';
 113+
 114+ $wgOut->addHtml( $form );
 115+ }
 116+
 117+ /**
 118+ * Prepare a message referring to the file being deleted,
 119+ * showing an appropriate message depending upon whether
 120+ * it's a current file or an old version
 121+ *
 122+ * @param string $message Message base
 123+ * @return string
 124+ */
 125+ private function prepareMessage( $message ) {
 126+ global $wgLang, $wgServer;
 127+ if( $this->oldimage ) {
 128+ return wfMsgExt(
 129+ "{$message}-old",
 130+ 'parse',
 131+ $this->title->getText(),
 132+ $wgLang->date( $this->getTimestamp(), true ),
 133+ $wgLang->time( $this->getTimestamp(), true ),
 134+ $wgServer . $this->file->getArchiveUrl( $this->oldimage )
 135+ );
 136+ } else {
 137+ return wfMsgExt(
 138+ $message,
 139+ 'parse',
 140+ $this->title->getText()
 141+ );
 142+ }
 143+ }
 144+
 145+ /**
 146+ * Set headers, titles and other bits
 147+ */
 148+ private function setHeaders() {
 149+ global $wgOut;
 150+ $wgOut->setPageTitle( wfMsg( 'filedelete', $this->title->getText() ) );
 151+ $wgOut->setRobotPolicy( 'noindex,nofollow' );
 152+ }
 153+
 154+ /**
 155+ * Is the provided `oldimage` value valid?
 156+ *
 157+ * @return bool
 158+ */
 159+ private function isValidOldSpec() {
 160+ return strlen( $this->oldimage ) >= 16
 161+ && strpos( $this->oldimage, '/' ) === false
 162+ && strpos( $this->oldimage, '\\' ) === false;
 163+ }
 164+
 165+ /**
 166+ * Could we delete the file specified? If an `oldimage`
 167+ * value was provided, does it correspond to an
 168+ * existing, local, old version of this file?
 169+ *
 170+ * @return bool
 171+ */
 172+ private function haveDeletableFile() {
 173+ return $this->oldimage
 174+ ? $this->oldfile && $this->oldfile->exists() && $this->oldfile->isLocal()
 175+ : $this->file && $this->file->exists() && $this->file->isLocal();
 176+ }
 177+
 178+ /**
 179+ * Prepare the form action
 180+ *
 181+ * @return string
 182+ */
 183+ private function getAction() {
 184+ $q = array();
 185+ $q[] = 'action=delete';
 186+ if( $this->oldimage )
 187+ $q[] = 'oldimage=' . urlencode( $this->oldimage );
 188+ return $this->title->getLocalUrl( implode( '&', $q ) );
 189+ }
 190+
 191+ /**
 192+ * Extract the timestamp of the old version
 193+ *
 194+ * @return string
 195+ */
 196+ private function getTimestamp() {
 197+ return $this->oldfile->getTimestamp();
 198+ }
 199+
 200+}
\ No newline at end of file
Property changes on: branches/liquidthreads/includes/FileDeleteForm.php
___________________________________________________________________
Added: svn:eol-style
1201 + native
Index: branches/liquidthreads/includes/SpecialWatchlist.php
@@ -15,7 +15,7 @@
1616 * @param $par Parameter passed to the page
1717 */
1818 function wfSpecialWatchlist( $par ) {
19 - global $wgUser, $wgOut, $wgLang, $wgRequest, $wgContLang;
 19+ global $wgUser, $wgOut, $wgLang, $wgRequest;
2020 global $wgRCShowWatchingUsers, $wgEnotifWatchlist, $wgShowUpdatedMarker;
2121 global $wgEnotifWatchlist;
2222 $fname = 'wfSpecialWatchlist';
Index: branches/liquidthreads/includes/Article.php
@@ -802,6 +802,7 @@
803803 // Give hooks a chance to customise the output
804804 if( wfRunHooks( 'ShowRawCssJs', array( $this->mContent, $this->mTitle, $wgOut ) ) ) {
805805 // Wrap the whole lot in a <pre> and don't parse
 806+ $m = array();
806807 preg_match( '!\.(css|js)$!u', $this->mTitle->getText(), $m );
807808 $wgOut->addHtml( "<pre class=\"mw-code mw-{$m[1]}\" dir=\"ltr\">\n" );
808809 $wgOut->addHtml( htmlspecialchars( $this->mContent ) );
@@ -1396,6 +1397,7 @@
13971398 $dbw->commit();
13981399 }
13991400 } else {
 1401+ $revision = null;
14001402 // Keep the same revision ID, but do some updates on it
14011403 $revisionId = $this->getRevIdFetched();
14021404 // Update page_touched, this is usually implicit in the page update
@@ -2343,7 +2345,7 @@
23442346 $wgOut->returnToMain( false, $this->mTitle );
23452347 break;
23462348 default:
2347 - throw new MWException( __METHOD__ . ": Unknown return value `{$retval}`" );
 2349+ throw new MWException( __METHOD__ . ": Unknown return value `{$result}`" );
23482350 }
23492351
23502352 }
Index: branches/liquidthreads/includes/SpecialUpload.php
@@ -443,6 +443,7 @@
444444 }
445445 // Success, redirect to description page
446446 $wgOut->redirect( $this->mLocalFile->getTitle()->getFullURL() );
 447+ $img = null; // @todo: added to avoid passing a ref to null - should this be defined somewhere?
447448 wfRunHooks( 'UploadComplete', array( &$img ) );
448449 }
449450 }
@@ -736,7 +737,7 @@
737738 function mainUploadForm( $msg='' ) {
738739 global $wgOut, $wgUser, $wgContLang;
739740 global $wgUseCopyrightUpload, $wgUseAjax, $wgAjaxUploadDestCheck, $wgAjaxLicensePreview;
740 - global $wgRequest, $wgAllowCopyUploads, $wgEnableAPI;
 741+ global $wgRequest, $wgAllowCopyUploads;
741742 global $wgStylePath, $wgStyleVersion;
742743
743744 $useAjaxDestCheck = $wgUseAjax && $wgAjaxUploadDestCheck;
Index: branches/liquidthreads/includes/UserMailer.php
@@ -250,7 +250,6 @@
251251
252252 function notifyOnPageChange($editor, &$title, $timestamp, $summary, $minorEdit, $oldid = false) {
253253 global $wgEnotifUseJobQ;
254 - global $wgEnotifWatchlist, $wgShowUpdatedMarker;
255254
256255 if( $title->getNamespace() < 0 )
257256 return;
Index: branches/liquidthreads/includes/SpecialProtectedpages.php
@@ -241,7 +241,6 @@
242242 }
243243
244244 function formatRow( $row ) {
245 - $block = new Block;
246245 return $this->mForm->formatRow( $row );
247246 }
248247
@@ -278,8 +277,6 @@
279278 */
280279 function wfSpecialProtectedpages() {
281280
282 - list( $limit, $offset ) = wfCheckLimits();
283 -
284281 $ppForm = new ProtectedPagesForm();
285282
286283 $ppForm->showList();
Index: branches/liquidthreads/includes/RecentChange.php
@@ -251,7 +251,7 @@
252252 'rc_patrolled' => 1
253253 ),
254254 array(
255 - 'rc_id' => $change
 255+ 'rc_id' => $rcid
256256 ),
257257 __METHOD__
258258 );
Index: branches/liquidthreads/includes/OutputPage.php
@@ -1030,7 +1030,6 @@
10311031 $this->addWikiText( wfMsgExt( 'cascadeprotected', 'parsemag', $count ) . "\n{$titles}" );
10321032 } elseif( !$wgTitle->isProtected( 'edit' ) && $wgTitle->isNamespaceProtected() ) {
10331033 // Namespace protection
1034 - global $wgNamespaceProtection;
10351034 $ns = $wgTitle->getNamespace() == NS_MAIN
10361035 ? wfMsg( 'nstab-main' )
10371036 : $wgTitle->getNsText();
Index: branches/liquidthreads/includes/PageHistory.php
@@ -248,7 +248,7 @@
249249
250250 $tools = array();
251251
252 - if ( !is_null( $next ) ) {
 252+ if ( !is_null( $next ) && is_object( $next ) ) {
253253 if( $wgUser->isAllowed( 'rollback' ) && $latest ) {
254254 $tools[] = '<span class="mw-rollback-link">'
255255 . $this->mSkin->buildRollbackLink( $rev )
Index: branches/liquidthreads/includes/SpecialUserrights.php
@@ -319,7 +319,7 @@
320320 * @return Array array( 'add' => array( addablegroups ), 'remove' => array( removablegroups ) )
321321 */
322322 private function changeableGroups() {
323 - global $wgUser, $wgGroupPermissions;
 323+ global $wgUser;
324324
325325 $groups = array( 'add' => array(), 'remove' => array() );
326326 $addergroups = $wgUser->getEffectiveGroups();
Index: branches/liquidthreads/includes/Title.php
@@ -279,6 +279,7 @@
280280 $redir = MagicWord::get( 'redirect' );
281281 if( $redir->matchStart( $text ) ) {
282282 // Extract the first link and see if it's usable
 283+ $m = array();
283284 if( preg_match( '!\[{2}(.*?)(?:\||\]{2})!', $text, $m ) ) {
284285 // Strip preceding colon used to "escape" categories, etc.
285286 // and URL-decode links
@@ -1034,7 +1035,7 @@
10351036 $errors[] = array( 'readonlytext' );
10361037 }
10371038
1038 - global $wgEmailConfirmToEdit;
 1039+ global $wgEmailConfirmToEdit, $wgUser;
10391040
10401041 if ( $wgEmailConfirmToEdit && !$wgUser->isEmailConfirmed() )
10411042 {
@@ -1147,7 +1148,7 @@
11481149 $right = ( $right == 'sysop' ) ? 'protect' : $right;
11491150 if( '' != $right && !$user->isAllowed( $right ) ) {
11501151 $pages = '';
1151 - foreach( $cascadingSources as $id => $page )
 1152+ foreach( $cascadingSources as $page )
11521153 $pages .= '* [[:' . $page->getPrefixedText() . "]]\n";
11531154 $errors[] = array( 'cascadeprotected', count( $cascadingSources ), $pages );
11541155 }
@@ -1294,7 +1295,7 @@
12951296 */
12961297 if( $this->getNamespace() == NS_SPECIAL ) {
12971298 $name = $this->getText();
1298 - list( $name, $subpage ) = SpecialPage::resolveAliasWithSubpage( $name );
 1299+ list( $name, /* $subpage */) = SpecialPage::resolveAliasWithSubpage( $name );
12991300 $pure = SpecialPage::getTitleFor( $name )->getPrefixedText();
13001301 if( in_array( $pure, $wgWhitelistRead, true ) )
13011302 return true;
@@ -1396,7 +1397,7 @@
13971398 * @return bool If the page is subject to cascading restrictions.
13981399 */
13991400 public function isCascadeProtected() {
1400 - list( $sources, $restrictions ) = $this->getCascadeProtectionSources( false );
 1401+ list( $sources, /* $restrictions */ ) = $this->getCascadeProtectionSources( false );
14011402 return ( $sources > 0 );
14021403 }
14031404
Index: branches/liquidthreads/includes/FileRevertForm.php
@@ -11,6 +11,7 @@
1212 private $title = null;
1313 private $file = null;
1414 private $oldimage = '';
 15+ private $timestamp = false;
1516
1617 /**
1718 * Constructor
@@ -68,8 +69,8 @@
6970 $status = $this->file->upload( $source, $comment, $comment );
7071 if( $status->isGood() ) {
7172 $wgOut->addHtml( wfMsgExt( 'filerevert-success', 'parse', $this->title->getText(),
72 - $wgLang->date( $this->getTimestamp() ),
73 - $wgLang->time( $this->getTimestamp() ),
 73+ $wgLang->date( $this->getTimestamp(), true ),
 74+ $wgLang->time( $this->getTimestamp(), true ),
7475 $wgServer . $this->file->getArchiveUrl( $this->oldimage ) ) );
7576 $wgOut->returnToMain( false, $this->title );
7677 } else {
@@ -87,37 +88,13 @@
8889 */
8990 private function showForm() {
9091 global $wgOut, $wgUser, $wgRequest, $wgLang, $wgContLang, $wgServer;
91 -
92 - /*
93 - $cur = wfFindFile( $this->title );
94 - $old = wfFindFile( $this->title, substr( $this->oldimage, 0, 14 ) );
95 - */
9692 $timestamp = $this->getTimestamp();
9793
9894 $form = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getAction() ) );
9995 $form .= Xml::hidden( 'wpEditToken', $wgUser->editToken( $this->oldimage ) );
10096 $form .= '<fieldset><legend>' . wfMsgHtml( 'filerevert-legend' ) . '</legend>';
10197 $form .= wfMsgExt( 'filerevert-intro', 'parse', $this->title->getText(),
102 - $wgLang->date( $timestamp ), $wgLang->time( $timestamp ), $wgServer . $this->file->getArchiveUrl( $this->oldimage ) );
103 -
104 - /*
105 - * I was going to do a little comparison (current vs. old) here,
106 - * but realised it wasn't too straightforward to do a media transform
107 - * with an *old* file version using the current mechanism. Leaving
108 - * this here in case it becomes possible in the future. -- RC
109 - *
110 - $form .= '<table class="compare-files">';
111 - $form .= '<tr>';
112 - $form .= '<th>' . wfMsgHtml( 'filerevert-current' ) . '</th>';
113 - $form .= '<th>' . wfMsgHtml( 'filerevert-old', $old->getTimestamp() ) . '</th>';
114 - $form .= '</tr><tr>';
115 - // FIXME: Hard-coding magic numbers makes baby Jesus cry...
116 - $form .= '<td>' . $this->getThumbnail( $cur, 180 ) . '</td>';
117 - $form .= '<td>' . $this->getThumbnail( $old, 180 ) . '</td>';
118 - $form .= '</tr>';
119 - $form .= '</table>';
120 - */
121 -
 98+ $wgLang->date( $timestamp, true ), $wgLang->time( $timestamp, true ), $wgServer . $this->file->getArchiveUrl( $this->oldimage ) );
12299 $form .= '<p>' . Xml::inputLabel( wfMsg( 'filerevert-comment' ), 'wpComment', 'wpComment',
123100 60, wfMsgForContent( 'filerevert-defaultcomment',
124101 $wgContLang->date( $timestamp, false, false ), $wgContLang->time( $timestamp, false, false ) ) ) . '</p>';
@@ -177,7 +154,11 @@
178155 * @return string
179156 */
180157 private function getTimestamp() {
181 - return substr( $this->oldimage, 0, 14 );
 158+ if( $this->timestamp === false ) {
 159+ $file = RepoGroup::singleton()->getLocalRepo()->newFromArchiveName( $this->title, $this->oldimage );
 160+ $this->timestamp = $file->getTimestamp();
 161+ }
 162+ return $this->timestamp;
182163 }
183164
184165 }
\ No newline at end of file
Index: branches/liquidthreads/includes/AutoLoader.php
@@ -101,6 +101,7 @@
102102 'ImagePage' => 'includes/ImagePage.php',
103103 'ImageHistoryList' => 'includes/ImagePage.php',
104104 'ImageRemote' => 'includes/ImageRemote.php',
 105+ 'FileDeleteForm' => 'includes/FileDeleteForm.php',
105106 'FileRevertForm' => 'includes/FileRevertForm.php',
106107 'Job' => 'includes/JobQueue.php',
107108 'EmaillingJob' => 'includes/EmaillingJob.php',
@@ -383,7 +384,4 @@
384385 require( $file );
385386 }
386387 }
387 -}
388 -
389 -
390 -
 388+}
\ No newline at end of file
Index: branches/liquidthreads/includes/SpecialMovepage.php
@@ -266,7 +266,7 @@
267267 }
268268
269269 function showSuccess() {
270 - global $wgOut, $wgRequest, $wgUser, $wgRawHtml;
 270+ global $wgOut, $wgRequest, $wgUser;
271271
272272 $old = Title::newFromText( $wgRequest->getVal( 'oldtitle' ) );
273273 $new = Title::newFromText( $wgRequest->getVal( 'newtitle' ) );
Index: branches/liquidthreads/includes/ImagePage.php
@@ -129,7 +129,7 @@
130130 $r = wfMsg( 'metadata-help' ) . "\n\n";
131131 $r .= "{| id=mw_metadata class=mw_metadata\n";
132132 foreach ( $metadata as $type => $stuff ) {
133 - foreach ( $stuff as $k => $v ) {
 133+ foreach ( $stuff as $v ) {
134134 $class = Sanitizer::escapeId( $v['id'] );
135135 if( $type == 'collapsed' ) {
136136 $class .= ' collapsable';
@@ -308,7 +308,6 @@
309309
310310 if ($showLink) {
311311 $filename = wfEscapeWikiText( $this->img->getName() );
312 - $info = wfMsg( 'file-info', $sk->formatSize( $this->img->getSize() ), $mime );
313312
314313 global $wgContLang;
315314 $dirmark = $wgContLang->getDirMark();
@@ -480,141 +479,23 @@
481480 $wgOut->addHTML( "</ul>\n" );
482481 }
483482
484 - function delete()
485 - {
486 - global $wgUser, $wgOut, $wgRequest;
487 -
488 - if ( !$this->img->exists() || !$this->img->isLocal() ) {
489 - # Use standard article deletion
 483+ /**
 484+ * Delete the file, or an earlier version of it
 485+ */
 486+ public function delete() {
 487+ if( !$this->img->exists() || !$this->img->isLocal() ) {
 488+ // Standard article deletion
490489 Article::delete();
491490 return;
492491 }
493 -
494 - $confirm = $wgRequest->wasPosted();
495 - $reason = $wgRequest->getVal( 'wpReason' );
496 - $image = $wgRequest->getVal( 'image' );
497 - $oldimage = $wgRequest->getVal( 'oldimage' );
498 -
499 - # Only sysops can delete images. Previously ordinary users could delete
500 - # old revisions, but this is no longer the case.
501 - if ( !$wgUser->isAllowed('delete') ) {
502 - $wgOut->permissionRequired( 'delete' );
503 - return;
504 - }
505 - if ( $wgUser->isBlocked() ) {
506 - $wgOut->blockedPage();
507 - return;
508 - }
509 - if ( wfReadOnly() ) {
510 - $wgOut->readOnlyPage();
511 - return;
512 - }
513 -
514 - # Better double-check that it hasn't been deleted yet!
515 - $wgOut->setPagetitle( wfMsg( 'confirmdelete' ) );
516 - if ( ( !is_null( $image ) )
517 - && ( '' == trim( $image ) ) ) {
518 - $wgOut->showFatalError( wfMsg( 'cannotdelete' ) );
519 - return;
520 - }
521 -
522 - # Deleting old images doesn't require confirmation
523 - if ( !is_null( $oldimage ) || $confirm ) {
524 - if( $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ), $oldimage ) ) {
525 - $this->doDeleteImage( $reason );
526 - } else {
527 - $wgOut->showFatalError( wfMsg( 'sessionfailure' ) );
528 - }
529 - return;
530 - }
531 -
532 - if ( !is_null( $image ) ) {
533 - $q = '&image=' . urlencode( $image );
534 - } else if ( !is_null( $oldimage ) ) {
535 - $q = '&oldimage=' . urlencode( $oldimage );
536 - } else {
537 - $q = '';
538 - }
539 - return $this->confirmDelete( $q, $wgRequest->getText( 'wpReason' ) );
 492+ $deleter = new FileDeleteForm( $this->img );
 493+ $deleter->execute();
540494 }
541495
542 - /*
543 - * Delete an image.
544 - * Called doDeleteImage() not doDelete() so that Article::delete() doesn't
545 - * call back to here.
546 - *
547 - * @param $reason User provided reason for deletion.
548 - */
549 - function doDeleteImage( $reason ) {
550 - global $wgOut, $wgRequest;
551 -
552 - $oldimage = $wgRequest->getVal( 'oldimage' );
553 -
554 - if ( !is_null( $oldimage ) ) {
555 - if ( strlen( $oldimage ) < 16 ) {
556 - $wgOut->showUnexpectedValueError( 'oldimage', htmlspecialchars($oldimage) );
557 - return;
558 - }
559 - if( strpos( $oldimage, '/' ) !== false || strpos( $oldimage, '\\' ) !== false ) {
560 - $wgOut->showUnexpectedValueError( 'oldimage', htmlspecialchars($oldimage) );
561 - return;
562 - }
563 - $status = $this->doDeleteOldImage( $oldimage );
564 - $deleted = $oldimage;
565 - } else {
566 - $status = $this->img->delete( $reason );
567 - if ( !$status->isGood() ) {
568 - // Warning or error
569 - $wgOut->addWikiText( $status->getWikiText( 'filedeleteerror-short', 'filedeleteerror-long' ) );
570 - }
571 - if ( $status->ok ) {
572 - # Image itself is now gone, and database is cleaned.
573 - # Now we remove the image description page.
574 - $article = new Article( $this->mTitle );
575 - $article->doDeleteArticle( $reason ); # ignore errors
576 - $deleted = $this->img->getName();
577 - }
578 - }
579 -
580 - $wgOut->setRobotpolicy( 'noindex,nofollow' );
581 -
582 - if ( !$status->ok ) {
583 - // Fatal error flagged
584 - $wgOut->setPagetitle( wfMsg( 'errorpagetitle' ) );
585 - $wgOut->returnToMain( false, $this->mTitle->getPrefixedText() );
586 - } else {
587 - // Operation completed
588 - $wgOut->setPagetitle( wfMsg( 'actioncomplete' ) );
589 - $loglink = '[[Special:Log/delete|' . wfMsg( 'deletionlog' ) . ']]';
590 - $text = wfMsg( 'deletedtext', $deleted, $loglink );
591 - $wgOut->addWikiText( $text );
592 - $wgOut->returnToMain( false, $this->mTitle->getPrefixedText() );
593 - }
594 - }
595 -
596496 /**
597 - * Delete an old revision of an image,
598 - * @return FileRepoStatus
599 - */
600 - function doDeleteOldImage( $oldimage ) {
601 - global $wgOut;
602 -
603 - $status = $this->img->deleteOld( $oldimage, '' );
604 - if( !$status->isGood() ) {
605 - $wgOut->addWikiText( $status->getWikiText( 'filedeleteerror-short', 'filedeleteerror-long' ) );
606 - }
607 - if ( $status->ok ) {
608 - # Log the deletion
609 - $log = new LogPage( 'delete' );
610 - $log->addEntry( 'delete', $this->mTitle, wfMsg('deletedrevision',$oldimage) );
611 - }
612 - return $status;
613 - }
614 -
615 - /**
616497 * Revert the file to an earlier version
617498 */
618 - function revert() {
 499+ public function revert() {
619500 $reverter = new FileRevertForm( $this->img );
620501 $reverter->execute();
621502 }
@@ -684,7 +565,7 @@
685566 }
686567
687568 public function imageHistoryLine( $iscur, $timestamp, $img, $user, $usertext, $size, $description, $dims ) {
688 - global $wgUser, $wgLang, $wgTitle, $wgContLang;
 569+ global $wgUser, $wgLang, $wgContLang;
689570 $local = $this->img->isLocal();
690571 $row = '';
691572
Index: branches/liquidthreads/includes/filerepo/ICRepo.php
@@ -290,6 +290,7 @@
291291 # Create a null revision
292292 $nullRevision = Revision::newNullRevision( $dbw, $descTitle->getArticleId(), $log->getRcComment(), false );
293293 $nullRevision->insertOn( $dbw );
 294+ $article->updateRevisionOn( $dbw, $nullRevision );
294295
295296 # Invalidate the cache for the description page
296297 $descTitle->invalidateCache();
Index: branches/liquidthreads/includes/filerepo/RepoGroup.php
@@ -135,7 +135,7 @@
136136
137137 function getFileProps( $fileName ) {
138138 if ( FileRepo::isVirtualUrl( $fileName ) ) {
139 - list( $repoName, $zone, $rel ) = $this->splitVirtualUrl( $fileName );
 139+ list( $repoName, /* $zone */, /* $rel */ ) = $this->splitVirtualUrl( $fileName );
140140 if ( $repoName === '' ) {
141141 $repoName = 'local';
142142 }
Index: branches/liquidthreads/includes/filerepo/OldLocalFile.php
@@ -207,7 +207,6 @@
208208
209209 $dbw = $this->repo->getMasterDB();
210210 list( $major, $minor ) = self::splitMime( $this->mime );
211 - $mime = $this->mime;
212211
213212 wfDebug(__METHOD__.': upgrading '.$this->archive_name." to the current schema\n");
214213 $dbw->update( 'oldimage',
Index: branches/liquidthreads/includes/filerepo/LocalFile.php
@@ -210,7 +210,6 @@
211211 }
212212 $decoded = array();
213213 foreach ( $array as $name => $value ) {
214 - $deprefixedName = substr( $name, $prefixLength );
215214 $decoded[substr( $name, $prefixLength )] = $value;
216215 }
217216 $decoded['timestamp'] = wfTimestamp( TS_MW, $decoded['timestamp'] );
@@ -539,7 +538,6 @@
540539 $dir = $this->getThumbPath();
541540 $urls = array();
542541 foreach ( $files as $file ) {
543 - $m = array();
544542 # Check that the base file name is part of the thumb name
545543 # This is a basic sanity check to avoid erasing unrelated directories
546544 if ( strpos( $file, $this->getName() ) !== false ) {
@@ -787,6 +785,7 @@
788786 # Create a null revision
789787 $nullRevision = Revision::newNullRevision( $dbw, $descTitle->getArticleId(), $log->getRcComment(), false );
790788 $nullRevision->insertOn( $dbw );
 789+ $article->updateRevisionOn( $dbw, $nullRevision );
791790
792791 # Invalidate the cache for the description page
793792 $descTitle->invalidateCache();
@@ -1242,7 +1241,6 @@
12431242 $dbw = $this->file->repo->getMasterDB();
12441243 list( $oldRels, $deleteCurrent ) = $this->getOldRels();
12451244 if ( $deleteCurrent ) {
1246 - $where = array( 'img_name' => $this->file->getName() );
12471245 $dbw->delete( 'image', array( 'img_name' => $this->file->getName() ), __METHOD__ );
12481246 }
12491247 if ( count( $oldRels ) ) {
@@ -1424,7 +1422,6 @@
14251423 if ( $first && !$exists ) {
14261424 // This revision will be published as the new current version
14271425 $destRel = $this->file->getRel();
1428 - $info = $this->file->repo->getFileProps( $deletedUrl );
14291426 $insertCurrent = array(
14301427 'img_name' => $row->fa_name,
14311428 'img_size' => $row->fa_size,
Index: branches/liquidthreads/includes/api/ApiQueryAllUsers.php
@@ -55,12 +55,12 @@
5656 $limit = $params['limit'];
5757 $tables = $db->tableName('user');
5858
59 - if (!is_null($params['from']))
60 - $this->addWhere('user_name>=' . $db->addQuotes(ApiQueryBase :: titleToKey($params['from'])));
 59+ if( !is_null( $params['from'] ) )
 60+ $this->addWhere( 'user_name >= ' . $db->addQuotes( self::keyToTitle( $params['from'] ) ) );
 61+
 62+ if( isset( $params['prefix'] ) )
 63+ $this->addWhere( 'user_name LIKE "' . $db->escapeLike( self::keyToTitle( $params['prefix'] ) ) . '%"' );
6164
62 - if (isset($params['prefix']))
63 - $this->addWhere("user_name LIKE '" . $db->escapeLike(ApiQueryBase :: titleToKey($params['prefix'])) . "%'");
64 -
6565 if (!is_null($params['group'])) {
6666 // Filter only users that belong to a given group
6767 $tblName = $db->tableName('user_groups');
Index: branches/liquidthreads/includes/api/ApiQuerySiteinfo.php
@@ -106,12 +106,13 @@
107107 $this->addTables('interwiki');
108108 $this->addFields(array('iw_prefix', 'iw_local', 'iw_url'));
109109
110 - if($filter === 'local')
 110+ if($filter === 'local') {
111111 $this->addWhere('iw_local = 1');
112 - else if($filter === '!local')
 112+ } elseif($filter === '!local') {
113113 $this->addWhere('iw_local = 0');
114 - else if($filter !== false)
 114+ } elseif($filter !== false) {
115115 ApiBase :: dieDebug(__METHOD__, "Unknown filter=$filter");
 116+ }
116117
117118 $this->addOption('ORDER BY', 'iw_prefix');
118119
Index: branches/liquidthreads/includes/api/ApiBase.php
@@ -428,7 +428,7 @@
429429 case 'user' :
430430 $title = Title::makeTitleSafe( NS_USER, $value );
431431 if ( is_null( $title ) )
432 - $this->dieUsage("Invalid value $user for user parameter $encParamName", "baduser_{$encParamName}");
 432+ $this->dieUsage("Invalid value for user parameter $encParamName", "baduser_{$encParamName}");
433433 $value = $title->getText();
434434 break;
435435 default :
Index: branches/liquidthreads/includes/api/ApiPageSet.php
@@ -580,7 +580,7 @@
581581
582582 $titleObj = is_string($title) ? Title :: newFromText($title) : $title;
583583 if (!$titleObj)
584 - $this->dieUsage("bad title $titleString", 'invalidtitle');
 584+ $this->dieUsage("bad title", 'invalidtitle');
585585
586586 $iw = $titleObj->getInterwiki();
587587 if (!empty($iw)) {
@@ -590,7 +590,7 @@
591591
592592 // Validation
593593 if ($titleObj->getNamespace() < 0)
594 - $this->dieUsage("No support for special page $titleString has been implemented", 'unsupportednamespace');
 594+ $this->dieUsage("No support for special pages has been implemented", 'unsupportednamespace');
595595
596596 $linkBatch->addObj($titleObj);
597597 }
Index: branches/liquidthreads/includes/SpecialListusers.php
@@ -198,10 +198,6 @@
199199 function wfSpecialListusers( $par = null ) {
200200 global $wgRequest, $wgOut;
201201
202 - list( $limit, $offset ) = wfCheckLimits();
203 -
204 - $groupTarget = isset($par) ? $par : $wgRequest->getVal( 'group' );
205 -
206202 $up = new UsersPager($par);
207203
208204 # getBody() first to check, if empty
Index: branches/liquidthreads/includes/Xml.php
@@ -41,14 +41,15 @@
4242 * @param $attribs Array of attributes for an XML element
4343 */
4444 private static function expandAttributes( $attribs ) {
 45+ $out = '';
4546 if( is_null( $attribs ) ) {
4647 return null;
 48+ } elseif( is_array( $attribs ) ) {
 49+ foreach( $attribs as $name => $val )
 50+ $out .= " {$name}=\"" . Sanitizer::encodeAttribute( $val ) . '"';
 51+ return $out;
4752 } else {
48 - $out = '';
49 - foreach( $attribs as $name => $val ) {
50 - $out .= ' ' . $name . '="' . Sanitizer::encodeAttribute( $val ) . '"';
51 - }
52 - return $out;
 53+ throw new MWException( 'Expected attribute array, got something else in ' . __METHOD__ );
5354 }
5455 }
5556
Index: branches/liquidthreads/includes/Database.php
@@ -214,7 +214,7 @@
215215
216216 $cache = new HTMLFileCache( $t );
217217 if( $cache->isFileCached() ) {
218 - // FIXME: $msg is not defined on the next line.
 218+ // @todo, FIXME: $msg is not defined on the next line.
219219 $msg = '<p style="color: red"><b>'.$msg."<br />\n" .
220220 $cachederror . "</b></p>\n";
221221
Index: branches/liquidthreads/includes/SpecialUndelete.php
@@ -328,7 +328,6 @@
329329 $restoreAll = empty( $timestamps );
330330
331331 $dbw = wfGetDB( DB_MASTER );
332 - $page = $dbw->tableName( 'archive' );
333332
334333 # Does this page already exist? We'll have to update it...
335334 $article = new Article( $this->title );
Index: branches/liquidthreads/includes/SpecialNewpages.php
@@ -138,8 +138,10 @@
139139 * @return string
140140 */
141141 function getPageHeader() {
 142+ global $wgScript;
142143 $self = SpecialPage::getTitleFor( $this->getName() );
143 - $form = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $self->getLocalUrl() ) );
 144+ $form = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) );
 145+ $form .= Xml::hidden( 'title', $self->getPrefixedUrl() );
144146 # Namespace selector
145147 $form .= '<table><tr><td align="right">' . Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '</td>';
146148 $form .= '<td>' . Xml::namespaceSelector( $this->namespace, 'all' ) . '</td></tr>';
@@ -207,6 +209,4 @@
208210
209211 if ( ! $npp->doFeed( $wgRequest->getVal( 'feed' ), $limit ) )
210212 $npp->doQuery( $offset, $limit, $shownavigation );
211 -}
212 -
213 -
 213+}
\ No newline at end of file
Index: branches/liquidthreads/includes/Linker.php
@@ -613,7 +613,7 @@
614614 );
615615 if ( $framed ) $frameParams['framed'] = true;
616616 if ( $manualthumb ) $frameParams['manualthumb'] = $manualthumb;
617 - return $this->makeThumbLink2( $title, $file, $frameParams, $handlerParams );
 617+ return $this->makeThumbLink2( $title, $file, $frameParams, $params );
618618 }
619619
620620 function makeThumbLink2( Title $title, $file, $frameParams = array(), $handlerParams = array() ) {
@@ -1028,6 +1028,7 @@
10291029 $medians = '(?:' . preg_quote( Namespace::getCanonicalName( NS_MEDIA ), '/' ) . '|';
10301030 $medians .= preg_quote( $wgContLang->getNsText( NS_MEDIA ), '/' ) . '):';
10311031
 1032+ $match = array();
10321033 while(preg_match('/\[\[:?(.*?)(\|(.*?))*\]\](.*)$/',$comment,$match)) {
10331034 # Handle link renaming [[foo|text]] will show link as "text"
10341035 if( "" != $match[3] ) {
Index: branches/liquidthreads/includes/Export.php
@@ -558,7 +558,7 @@
559559 $command = "7za a -bd -si " . wfEscapeShellArg( $file );
560560 // Suppress annoying useless crap from p7zip
561561 // Unfortunately this could suppress real error messages too
562 - $command .= ' ' . wfGetNull() . ' 2>&1';
 562+ $command .= ' >' . wfGetNull() . ' 2>&1';
563563 parent::DumpPipeOutput( $command );
564564 }
565565 }
Property changes on: branches/liquidthreads
___________________________________________________________________
Modified: svnmerge-integrated
566566 - /trunk/phase3:1-24865
567567 + /trunk/phase3:1-25015

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r24607* (bug 10793) Show patrol links on all eligible diff pages...robchurch03:29, 6 August 2007
r24808Basic integrated audio/video support, with Ogg implementation....tstarling10:50, 15 August 2007
r24838(bug 8737) Fix warnings caused by incorrect use of `/dev/null` when piping pr...robchurch21:44, 15 August 2007
r24870* (bug 10971) `aufrom` parameter doesn't work with spaces...robchurch13:01, 17 August 2007
r24875fix regression from r24838 -- lost a '>' char for redirecting 7za output to nullbrion14:39, 17 August 2007
r24882Make Xml::expandAttributes() a bit more robust against non-array arguments; p...robchurch17:06, 17 August 2007
r24884* Confirmation is now required when deleting old versions of files...robchurch20:53, 17 August 2007
r24885Remove some declarations for unused globals...robchurch21:08, 17 August 2007
r24889Update for he.rotem00:06, 18 August 2007
r24909*Update page on null revisions made for uploadsaaron16:34, 19 August 2007
r24932Prevent E_STRICT warning:...nickj07:42, 20 August 2007
r24934Variable $user seemed to be used before it was defined - removing.nickj08:04, 20 August 2007
r24935Variable $titleString seemed to be used before it was defined - removing.nickj08:13, 20 August 2007
r24937New translations for dawegge09:31, 20 August 2007
r24938Update Germanraymond09:47, 20 August 2007
r24939* (bug 10977) Update Portuguese translations...raymond10:50, 20 August 2007
r24940* (bug 10972) Update Chinese translations...raymond10:57, 20 August 2007
r24941Bug number for image deletion confirmation stuffrobchurch13:03, 20 August 2007
r24943* (bug 10972) Update Chinese translations...raymond13:08, 20 August 2007
r24944(bug 11001) Submit Special:Newpages as a GET, rather than a POST requestrobchurch13:13, 20 August 2007
r24945* (bug 10983) Removing Wikipedia hardwired messagesraymond13:17, 20 August 2007
r24946Trim some end-of-file whitespacerobchurch13:42, 20 August 2007
r24947Throw an exception for invalid data in expandAttributes() so we get a backtra...brion13:43, 20 August 2007
r24948aaand restore behavior from prior to r24882 on expected inputbrion13:46, 20 August 2007
r24950* Fix FileRevertForm::getTimestamp() - stupid assumption about archive names :)...robchurch14:32, 20 August 2007
r24951As r24950, but for FileDeleteFormrobchurch14:35, 20 August 2007
r24952More robust existence/sanity checkingrobchurch14:49, 20 August 2007
r24953Use an instance variable, not a static onerobchurch14:57, 20 August 2007
r24954Update.rotem15:54, 20 August 2007
r24966Fix a regression from r24808:...raymond21:37, 20 August 2007
r24968*If no changes, made, we have no new revision. Make $revision NULL, rather th...aaron03:21, 21 August 2007
r24969Static code analysis housekeeping time... things that could be double-checked...nickj03:57, 21 August 2007
r24970Already had brackets as part of the string.nickj04:03, 21 August 2007

Status & tagging log