r24631 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r24630‎ | r24631 | r24632 >
Date:18:39, 6 August 2007
Author:david
Status:old
Tags:
Comment:
Merged revisions 24480-24600 via svnmerge from
svn+ssh://david@svn.wikimedia.org/svnroot/mediawiki/trunk/phase3

........
r24480 | raymond | 2007-07-31 02:40:50 -0700 (Tue, 31 Jul 2007) | 4 lines

* Adding IDs to submit and reset buttons (this was my initial intent)
* Use proper Xml::functions
* Make the form for RTL wikis a bit nicer
* Whitespaces
........
r24491 | raymond | 2007-07-31 06:59:29 -0700 (Tue, 31 Jul 2007) | 3 lines

Adding new parameter $8 with the begin of a block to 'blockedtext' and 'autoblockedtext'.
I think there is no need for new message name to not break existing localizations.
It was a request of the German OTRS team which handles a lot of block complains.
........
r24492 | brion | 2007-07-31 07:40:35 -0700 (Tue, 31 Jul 2007) | 3 lines

Backing out 24448, 24455, 24456 for the moment.
Try not to slip in schema changes while everyone else is drinking pls :D
........
r24493 | raymond | 2007-07-31 08:26:22 -0700 (Tue, 31 Jul 2007) | 2 lines

* (bug 10367) Update Kazakh translations
Patch by AlefZet
........
r24494 | yurik | 2007-07-31 10:53:37 -0700 (Tue, 31 Jul 2007) | 1 line

API: Added meta=userinfo module to get data about the currently logged-in user.
........
r24495 | robchurch | 2007-07-31 11:51:21 -0700 (Tue, 31 Jul 2007) | 1 line

(bug 10762) Tweak wording for "prefs-watchlist-days" and "prefs-watchlist-edits"
........
r24497 | nikerabbit | 2007-07-31 12:25:36 -0700 (Tue, 31 Jul 2007) | 2 lines

* Updates to fi
........
r24500 | rotem | 2007-07-31 14:49:21 -0700 (Tue, 31 Jul 2007) | 1 line

Update.
........
r24504 | robchurch | 2007-07-31 18:23:44 -0700 (Tue, 31 Jul 2007) | 5 lines

* (bug 10744) Treat "noarticletext" and "noarticletextanon" as wiki text when used on a non-existent page with "action=info"
* Fix escaping of raw message text when used on a non-existent page with "action=info"

This should be shunted off to the API. We could add some appropriate HTTP response codes, at least...
........
r24505 | robchurch | 2007-07-31 18:45:58 -0700 (Tue, 31 Jul 2007) | 1 line

(bug 10683) Fix inconsistent handling of URL-encoded titles in links used in redirects (i.e. they now work)
........
r24508 | raymond | 2007-07-31 23:25:12 -0700 (Tue, 31 Jul 2007) | 1 line

* Adding the long existing 'bad_image_list' to message files to document it and make it available to Special:Allmessages
........
r24509 | raymond | 2007-07-31 23:28:46 -0700 (Tue, 31 Jul 2007) | 2 lines

* (bug 10765) Update Thai translation
Patch by Manop K
........
r24510 | raymond | 2007-07-31 23:34:03 -0700 (Tue, 31 Jul 2007) | 2 lines

* (bug 10761) Update Malayalam translation
Patch by Sadik Khalid
........
r24511 | raymond | 2007-08-01 00:34:12 -0700 (Wed, 01 Aug 2007) | 1 line

Update Kurdish translations (arabic script)
........
r24513 | raymond | 2007-08-01 03:00:18 -0700 (Wed, 01 Aug 2007) | 1 line

No need to separate 'passwordtooshort' from other password related messages
........
r24514 | raymond | 2007-08-01 03:03:12 -0700 (Wed, 01 Aug 2007) | 2 lines

* (bug 8878) Changes to $dateFormats in German localization (removing unused, nonexistent formats, putting time after date)
* Updates German
........
r24515 | werdna | 2007-08-01 03:19:26 -0700 (Wed, 01 Aug 2007) | 1 line

userCan changes, which have been done for about 3 weeks. Still TODO includes making a version of OutputPage::showPermissionsErrorPage that returns, rather than prints the output (for editing pages and such), and integrating the new functionality into the software. However, I haven't had the time to do this.
........
r24519 | werdna | 2007-08-01 06:15:37 -0700 (Wed, 01 Aug 2007) | 1 line

Small bug in userCan changes. Kudos to Raymond_ for spotting it
........
r24520 | werdna | 2007-08-01 06:21:07 -0700 (Wed, 01 Aug 2007) | 1 line

(bug 10767) More fixes for userCan. Kudos to WebBoy for report + patch
........
r24526 | rotem | 2007-08-01 08:47:59 -0700 (Wed, 01 Aug 2007) | 1 line

Update.
........
r24527 | rotem | 2007-08-01 10:18:12 -0700 (Wed, 01 Aug 2007) | 1 line

Fix.
........
r24529 | yurik | 2007-08-01 13:11:29 -0700 (Wed, 01 Aug 2007) | 1 line

Per Brion's suggestion, fixed blocker user detection: User::whoIs($wgUser->blockedBy());
........
r24530 | rotem | 2007-08-01 14:20:53 -0700 (Wed, 01 Aug 2007) | 1 line

Remove "allmessagesnotsupportedUI" message: not used since r6560.
........
r24532 | robchurch | 2007-08-01 14:42:59 -0700 (Wed, 01 Aug 2007) | 1 line

(bug 10769) Database::update() should return boolean result
........
r24533 | yurik | 2007-08-01 15:46:22 -0700 (Wed, 01 Aug 2007) | 1 line

API: Added various edit tokens to prop=info (except rollback - will be added to revisions)
........
r24535 | brion | 2007-08-01 21:15:30 -0700 (Wed, 01 Aug 2007) | 5 lines

Quick fix for dump problem:
Errors are ignored on a connection once it's died, so additional exceptions weren't getting thrown.
We weren't detecting this case and ended up spitting out the rest of the XML without any more text.
Should now die correctly once the timeouts finish.
........
r24536 | raymond | 2007-08-01 23:24:53 -0700 (Wed, 01 Aug 2007) | 2 lines

* (bug 10367) Update Kazakh translations
Patch by AlefZet
........
r24538 | werdna | 2007-08-02 05:31:38 -0700 (Thu, 02 Aug 2007) | 1 line

(bug 10775) French localisation. Patch, syntax fixed, by Alexandre Emsenhuber
........
r24540 | werdna | 2007-08-02 05:36:34 -0700 (Thu, 02 Aug 2007) | 1 line

Remove partial patch mixed in with last commit
........
r24541 | raymond | 2007-08-02 05:42:47 -0700 (Thu, 02 Aug 2007) | 1 line

rebuildMessages for French. Werdna was to fast (or I am to slow :-/ )
........
r24546 | rotem | 2007-08-02 12:00:53 -0700 (Thu, 02 Aug 2007) | 1 line

Toggles in RTL preferences indented to the right, hidden in IE in some cases.
........
r24547 | rotem | 2007-08-02 17:00:15 -0700 (Thu, 02 Aug 2007) | 1 line

I guess it should actually return the result (anyway, there is a fatal PHP error when the folder was not writable without this fix, rather than a valid error shown to the user like now).
........
r24548 | rotem | 2007-08-02 17:47:49 -0700 (Thu, 02 Aug 2007) | 1 line

Fix RTL display of the upload form.
........
r24554 | raymond | 2007-08-02 22:54:23 -0700 (Thu, 02 Aug 2007) | 2 lines

* (bug 10778) Update Chinese translations
Patch by Shinjiman
........
r24555 | raymond | 2007-08-02 23:04:42 -0700 (Thu, 02 Aug 2007) | 2 lines

* (bug 10785) Update Thai translation
Patch by Manop K
........
r24561 | brion | 2007-08-03 01:51:55 -0700 (Fri, 03 Aug 2007) | 4 lines

* Fixed regression in blocking of username '0'

IP::sanitizeIP() for some reason is used to return IP-or-something-that's-not-an-IP, but was incorrectly checking for empties. Thus for '0' input it returned NULL instead of '0'.
........
r24562 | werdna | 2007-08-03 02:27:28 -0700 (Fri, 03 Aug 2007) | 1 line

Use the new userCan changes to display better, clearer error messages when a permissions error is encountered.
........
r24565 | robchurch | 2007-08-03 10:40:21 -0700 (Fri, 03 Aug 2007) | 1 line

(bug 9437) Don't overwrite edit form submission handler when setting up edit box scroll position preserve/restore behaviour
........
r24569 | rotem | 2007-08-03 16:09:25 -0700 (Fri, 03 Aug 2007) | 1 line

Clarification of a bugfix description.
........
r24573 | brion | 2007-08-04 03:49:10 -0700 (Sat, 04 Aug 2007) | 2 lines

Move $wgAlternateMaster to core DefaultSettings.php from MakeSysop, since it's used now in some more maintenance scripts and will be used by other extensions soon
........
r24574 | robchurch | 2007-08-04 05:20:41 -0700 (Sat, 04 Aug 2007) | 2 lines

* (bug 10798) Exclude MediaWiki namespace from filtering options on Special:Protectedpages (implicit protection, doesn't make sense to have it)
* Introduce a fourth evil parameter to Xml::namespaceSelector() to exclude namespaces. Pure coincidence, not at all related to the above...
........
r24575 | robchurch | 2007-08-04 05:38:48 -0700 (Sat, 04 Aug 2007) | 1 line

This is a public service announcement. When using entities, failure to terminate them in a semi colon will result in XHTML validation errors. Can all developers please do us the basic favour of a bit of XHTML validation on their generated markup? This has been a public service announcement by the Frobozz XHTML Validation Company. Reach out and specify somebody.
........
r24576 | robchurch | 2007-08-04 05:48:00 -0700 (Sat, 04 Aug 2007) | 1 line

(bug 10803) Grammar error in "category-empty"; what Brogmid wrote this? ;)
........
r24577 | robchurch | 2007-08-04 05:50:43 -0700 (Sat, 04 Aug 2007) | 1 line

Rewrite Xml::namespaceSelector() before it drives me to totemize somebody.
........
r24588 | brion | 2007-08-04 09:34:21 -0700 (Sat, 04 Aug 2007) | 2 lines

Clean up autocreation a smidge... let the auth plugin know whether the user you're setting up was created manually or by the autocreation path, and have the CentralAuth plugin know whether it should be attaching (for autocreate) or not (for non-autocreate)
........
r24589 | brion | 2007-08-04 09:36:25 -0700 (Sat, 04 Aug 2007) | 2 lines

update prototype
........
r24596 | robchurch | 2007-08-04 12:15:18 -0700 (Sat, 04 Aug 2007) | 2 lines

* (bug 10805) Fix "undo" link when viewing the diff of the most recent change to a page using "diff=0"
* DifferenceEngine::loadRevisionData() wasn't updating $mNewid when loading the newer revision, which doesn't make too much sense if it ends up left as 0 (which is impossible)
........
r24597 | rotem | 2007-08-04 13:44:42 -0700 (Sat, 04 Aug 2007) | 1 line

Customizations should be added in LocalSettings.php, not in DefaultSettings.php.
........
Modified paths:
  • /branches/liquidthreads (modified) (history)
  • /branches/liquidthreads/RELEASE-NOTES (modified) (history)
  • /branches/liquidthreads/includes/Article.php (modified) (history)
  • /branches/liquidthreads/includes/AuthPlugin.php (modified) (history)
  • /branches/liquidthreads/includes/AutoLoader.php (modified) (history)
  • /branches/liquidthreads/includes/Database.php (modified) (history)
  • /branches/liquidthreads/includes/DefaultSettings.php (modified) (history)
  • /branches/liquidthreads/includes/DifferenceEngine.php (modified) (history)
  • /branches/liquidthreads/includes/EditPage.php (modified) (history)
  • /branches/liquidthreads/includes/IP.php (modified) (history)
  • /branches/liquidthreads/includes/OutputPage.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/Title.php (modified) (history)
  • /branches/liquidthreads/includes/Xml.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiMain.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQuery.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQueryBase.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQueryInfo.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQuerySiteinfo.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQueryUserInfo.php (added) (history)
  • /branches/liquidthreads/includes/api/ApiQueryUserInfo.php (added) (history)
  • /branches/liquidthreads/includes/filerepo/FileRepoStatus.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesDe.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesEn.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesFi.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesFr.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesHe.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesKk_cn.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesKk_kz.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesKk_tr.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesKu_arab.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesMl.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesTh.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/archives/patch-page_key.sql (deleted) (history)
  • /branches/liquidthreads/maintenance/dumpTextPass.php (modified) (history)
  • /branches/liquidthreads/maintenance/language/messages.inc (modified) (history)
  • /branches/liquidthreads/maintenance/tables.sql (modified) (history)
  • /branches/liquidthreads/maintenance/updaters.inc (modified) (history)
  • /branches/liquidthreads/skins/common/wikibits.js (modified) (history)
  • /branches/liquidthreads/skins/monobook/rtl.css (modified) (history)

Diff [purge]

Index: branches/liquidthreads/maintenance/tables.sql
@@ -190,9 +190,6 @@
191191 -- Spaces are transformed into underscores in title storage.
192192 page_title varchar(255) binary NOT NULL,
193193
194 - -- page_title in uppercase. Used for case-insensitive title searching.
195 - page_key varchar(255) binary NOT NULL,
196 -
197194 -- Comma-separated set of permission keys indicating who
198195 -- can move or edit the page.
199196 page_restrictions tinyblob NOT NULL,
@@ -227,7 +224,6 @@
228225
229226 PRIMARY KEY page_id (page_id),
230227 UNIQUE INDEX name_title (page_namespace,page_title),
231 - INDEX name_key (page_namespace, page_key),
232228
233229 -- Special-purpose indexes
234230 INDEX (page_random),
Index: branches/liquidthreads/maintenance/language/messages.inc
@@ -325,6 +325,8 @@
326326 'sqlhidden',
327327 'cascadeprotected',
328328 'namespaceprotected',
 329+ 'customcssjsprotected',
 330+ 'ns-specialprotected',
329331 ),
330332 'login' => array(
331333 'logouttitle',
@@ -376,6 +378,7 @@
377379 'nouserspecified',
378380 'wrongpassword',
379381 'wrongpasswordempty',
 382+ 'passwordtooshort',
380383 'mailmypassword',
381384 'passwordremindertitle',
382385 'passwordremindertext',
@@ -448,6 +451,8 @@
449452 'blockedtitle',
450453 'blockedtext',
451454 'autoblockedtext',
 455+ 'blockedtext-concise',
 456+ 'autoblockedtext-concise',
452457 'blockedoriginalsource',
453458 'blockededitsource',
454459 'whitelistedittitle',
@@ -512,6 +517,9 @@
513518 'edittools',
514519 'nocreatetitle',
515520 'nocreatetext',
 521+ 'nocreate-loggedin',
 522+ 'permissionserrors',
 523+ 'permissionserrorstext',
516524 'recreate-deleted-warn',
517525 ),
518526 'undo' => array(
@@ -1388,6 +1396,7 @@
13891397 'movearticle',
13901398 'movenologin',
13911399 'movenologintext',
 1400+ 'movenotallowed',
13921401 'newtitle',
13931402 'move-watch',
13941403 'movepagebtn',
@@ -1428,7 +1437,6 @@
14291438 'allmessagesdefault',
14301439 'allmessagescurrent',
14311440 'allmessagestext',
1432 - 'allmessagesnotsupportedUI',
14331441 'allmessagesnotsupportedDB',
14341442 'allmessagesfilter',
14351443 'allmessagesmodified',
@@ -1692,6 +1700,9 @@
16931701 'showhidebots',
16941702 'noimages',
16951703 ),
 1704+ 'badimagelist' => array(
 1705+ 'bad_image_list',
 1706+ ),
16961707 'variantname-zh' => array(
16971708 'variantname-zh-cn',
16981709 'variantname-zh-tw',
@@ -1717,9 +1728,6 @@
17181729 'variantname-ku-latn',
17191730 'variantname-ku',
17201731 ),
1721 - 'passwordtooshort' => array(
1722 - 'passwordtooshort',
1723 - ),
17241732 'metadata' => array(
17251733 'metadata',
17261734 'metadata-help',
@@ -2286,6 +2294,7 @@
22872295 'imagedeletion' => 'Image deletion',
22882296 'browsediffs' => 'Browsing diffs',
22892297 'newimages' => '',
 2298+ 'badimagelist' => 'Bad image list',
22902299 'variantname-zh' => "Short names for language variants used for language conversion links.
22912300 To disable showing a particular link, set it to 'disable', e.g.
22922301 'variantname-zh-sg' => 'disable',
@@ -2293,7 +2302,6 @@
22942303 'variantname-sr' => 'Variants for Serbian language',
22952304 'variantname-kk' => 'Variants for Kazakh language',
22962305 'variantname-ku' => 'Variants for Kurdish language',
2297 - 'passwordtooshort' => '',
22982306 'media-info' => 'Media information',
22992307 'metadata' => 'Metadata',
23002308 'exif' => 'EXIF tags',
Index: branches/liquidthreads/maintenance/dumpTextPass.php
@@ -239,17 +239,23 @@
240240 }
241241 while( true ) {
242242 try {
243 - return $this->doGetText( $id );
 243+ $text = $this->doGetText( $id );
 244+ $ex = new MWException("Graceful storage failure");
244245 } catch (DBQueryError $ex) {
 246+ $text = false;
 247+ }
 248+ if( $text === false ) {
245249 $this->failures++;
246250 if( $this->failures > $this->maxFailures ) {
247251 throw $ex;
248252 } else {
249253 $this->progress( "Database failure $this->failures " .
250 - "of allowed $this->maxFailures! " .
 254+ "of allowed $this->maxFailures for revision $id! " .
251255 "Pausing $this->failureTimeout seconds..." );
252256 sleep( $this->failureTimeout );
253257 }
 258+ } else {
 259+ return $text;
254260 }
255261 }
256262 }
@@ -264,6 +270,9 @@
265271 array( 'old_id' => $id ),
266272 'TextPassDumper::getText' );
267273 $text = Revision::getRevisionText( $row );
 274+ if( $text === false ) {
 275+ return false;
 276+ }
268277 $stripped = str_replace( "\r", "", $text );
269278 $normalized = UtfNormal::cleanUp( $stripped );
270279 return $normalized;
Index: branches/liquidthreads/maintenance/updaters.inc
@@ -82,7 +82,6 @@
8383 array( 'oldimage', 'oi_metadata', 'patch-oi_metadata.sql'),
8484 array( 'archive', 'ar_page', 'patch-archive-ar_page.sql'),
8585 array( 'image', 'img_sha1', 'patch-img_sha1.sql' ),
86 - array( 'page', 'page_key', 'patch-page_key.sql' ),
8786 );
8887
8988 # For extensions only, should be populated via hooks
Index: branches/liquidthreads/maintenance/archives/patch-page_key.sql
@@ -1,5 +0,0 @@
2 -ALTER TABLE /*$wgDBprefix*/page
3 - ADD page_key VARCHAR(255) BINARY NOT NULL;
4 -ALTER TABLE /*$wgDBprefix*/page
5 - ADD INDEX name_key (page_namespace, page_key);
6 -
Index: branches/liquidthreads/skins/monobook/rtl.css
@@ -219,3 +219,8 @@
220220 p.mw-ipb-conveniencelinks {
221221 float: left;
222222 }
 223+
 224+.toggle {
 225+ margin-left: 0em;
 226+ margin-right: 2em;
 227+}
Index: branches/liquidthreads/skins/common/wikibits.js
@@ -778,21 +778,24 @@
779779 document.getElementById(idb).checked=false;
780780 }
781781
 782+/**
 783+ * Restore the edit box scroll state following a preview operation,
 784+ * and set up a form submission handler to remember this state
 785+ */
782786 function scrollEditBox() {
783 - var editBoxEl = document.getElementById("wpTextbox1");
784 - var scrollTopEl = document.getElementById("wpScrolltop");
785 - var editFormEl = document.getElementById("editform");
786 -
787 - if (editBoxEl && scrollTopEl) {
788 - if (scrollTopEl.value) { editBoxEl.scrollTop = scrollTopEl.value; }
789 - editFormEl.onsubmit = function() {
790 - document.getElementById("wpScrolltop").value = document.getElementById("wpTextbox1").scrollTop;
791 - };
 787+ var editBox = document.getElementById( 'wpTextbox1' );
 788+ var scrollTop = document.getElementById( 'wpScrolltop' );
 789+ var editForm = document.getElementById( 'editform' );
 790+ if( editBox && scrollTop ) {
 791+ if( scrollTop.value )
 792+ editBox.scrollTop = scrollTop.value;
 793+ addHandler( editForm, 'submit', function() {
 794+ document.getElementById( 'wpScrolltop' ).value = document.getElementById( 'wpTextbox1' ).scrollTop;
 795+ } );
792796 }
793797 }
 798+hookEvent( 'load', scrollEditBox );
794799
795 -hookEvent("load", scrollEditBox);
796 -
797800 var allmessages_nodelist = false;
798801 var allmessages_modified = false;
799802 var allmessages_timeout = false;
Index: branches/liquidthreads/includes/DifferenceEngine.php
@@ -558,16 +558,15 @@
559559 }
560560
561561 // Load the new revision object
562 - if( $this->mNewid ) {
563 - $this->mNewRev = Revision::newFromId( $this->mNewid );
564 - } else {
565 - $this->mNewRev = Revision::newFromTitle( $this->mTitle );
566 - }
567 -
568 - if( is_null( $this->mNewRev ) ) {
 562+ $this->mNewRev = $this->mNewid
 563+ ? Revision::newFromId( $this->mNewid )
 564+ : Revision::newFromTitle( $this->mTitle );
 565+ if( !$this->mNewRev instanceof Revision )
569566 return false;
570 - }
571 -
 567+
 568+ // Update the new revision ID in case it was 0 (makes life easier doing UI stuff)
 569+ $this->mNewid = $this->mNewRev->getId();
 570+
572571 // Set assorted variables
573572 $timestamp = $wgLang->timeanddate( $this->mNewRev->getTimestamp(), true );
574573 $this->mNewPage = $this->mNewRev->getTitle();
@@ -616,7 +615,8 @@
617616 $oldEdit = $this->mOldPage->escapeLocalUrl( 'action=edit&oldid=' . $this->mOldid );
618617 $this->mOldtitle = "<a href='$oldLink'>" . htmlspecialchars( wfMsg( 'revisionasof', $t ) )
619618 . "</a> (<a href='$oldEdit'>" . htmlspecialchars( wfMsg( 'editold' ) ) . "</a>)";
620 - //now that we considered old rev, we can make undo link (bug 8133, multi-edit undo)
 619+
 620+ // Add an "undo" link
621621 $newUndo = $this->mNewPage->escapeLocalUrl( 'action=edit&undoafter=' . $this->mOldid . '&undo=' . $this->mNewid);
622622 $this->mNewtitle .= " (<a href='$newUndo'>" . htmlspecialchars( wfMsg( 'editundo' ) ) . "</a>)";
623623 }
Index: branches/liquidthreads/includes/api/ApiQueryBase.php
@@ -214,6 +214,17 @@
215215 return str_replace('_', ' ', $key);
216216 }
217217
 218+ public function getTokenFlag($tokenArr, $action) {
 219+ if (in_array($action, $tokenArr)) {
 220+ global $wgUser;
 221+ if ($wgUser->isAllowed($action))
 222+ return true;
 223+ else
 224+ $this->dieUsage("Action '$action' is not allowed for the current user", 'permissiondenied');
 225+ }
 226+ return false;
 227+ }
 228+
218229 public static function getBaseVersion() {
219230 return __CLASS__ . ': $Id$';
220231 }
Index: branches/liquidthreads/includes/api/ApiQueryInfo.php
@@ -50,12 +50,21 @@
5151
5252 public function execute() {
5353
 54+ global $wgUser;
 55+
5456 $params = $this->extractRequestParams();
5557 $fld_protection = false;
5658 if(!is_null($params['prop'])) {
5759 $prop = array_flip($params['prop']);
5860 $fld_protection = isset($prop['protection']);
5961 }
 62+ if(!is_null($params['token'])) {
 63+ $token = $params['token'];
 64+ $tok_edit = $this->getTokenFlag($token, 'edit');
 65+ $tok_delete = $this->getTokenFlag($token, 'delete');
 66+ $tok_protect = $this->getTokenFlag($token, 'protect');
 67+ $tok_move = $this->getTokenFlag($token, 'move');
 68+ }
6069
6170 $pageSet = $this->getPageSet();
6271 $titles = $pageSet->getGoodTitles();
@@ -85,7 +94,7 @@
8695 $db->freeResult($res);
8796 }
8897
89 - foreach ( $titles as $pageid => $unused ) {
 98+ foreach ( $titles as $pageid => $title ) {
9099 $pageInfo = array (
91100 'touched' => wfTimestamp(TS_ISO_8601, $pageTouched[$pageid]),
92101 'lastrevid' => intval($pageLatest[$pageid]),
@@ -99,6 +108,18 @@
100109 if ($pageIsNew[$pageid])
101110 $pageInfo['new'] = '';
102111
 112+ if (!is_null($token)) {
 113+ // Currently all tokens are generated the same way, but it might change
 114+ if ($tok_edit)
 115+ $pageInfo['edittoken'] = $wgUser->editToken();
 116+ if ($tok_delete)
 117+ $pageInfo['deletetoken'] = $wgUser->editToken();
 118+ if ($tok_protect)
 119+ $pageInfo['protecttoken'] = $wgUser->editToken();
 120+ if ($tok_move)
 121+ $pageInfo['movetoken'] = $wgUser->editToken();
 122+ }
 123+
103124 if($fld_protection) {
104125 if (isset($protections[$pageid])) {
105126 $pageInfo['protection'] = $protections[$pageid];
@@ -122,7 +143,16 @@
123144 ApiBase :: PARAM_ISMULTI => true,
124145 ApiBase :: PARAM_TYPE => array (
125146 'protection'
126 - ))
 147+ )),
 148+ 'token' => array (
 149+ ApiBase :: PARAM_DFLT => NULL,
 150+ ApiBase :: PARAM_ISMULTI => true,
 151+ ApiBase :: PARAM_TYPE => array (
 152+ 'edit',
 153+ 'delete',
 154+ 'protect',
 155+ 'move',
 156+ )),
127157 );
128158 }
129159
@@ -131,7 +161,8 @@
132162 'prop' => array (
133163 'Which additional properties to get:',
134164 ' "protection" - List the protection level of each page'
135 - )
 165+ ),
 166+ 'token' => 'Request a token to perform a data-modifying action on a page',
136167 );
137168 }
138169
Index: branches/liquidthreads/includes/api/ApiMain.php
@@ -456,8 +456,7 @@
457457 public function isSysop() {
458458 if (!isset ($this->mIsSysop)) {
459459 global $wgUser;
460 - $this->mIsSysop = in_array( 'sysop',
461 - $wgUser->getGroups());
 460+ $this->mIsSysop = in_array( 'sysop', $wgUser->getGroups());
462461 }
463462
464463 return $this->mIsSysop;
Index: branches/liquidthreads/includes/api/ApiQuery.php
@@ -75,7 +75,7 @@
7676
7777 private $mQueryMetaModules = array (
7878 'siteinfo' => 'ApiQuerySiteinfo',
79 - // 'userinfo' => 'ApiQueryUserinfo',
 79+ 'userinfo' => 'ApiQueryUserInfo',
8080 );
8181
8282 private $mSlaveDB = null;
Index: branches/liquidthreads/includes/api/ApiQuerySiteinfo.php
@@ -99,6 +99,7 @@
100100
101101 protected function appendInterwikiMap($property, $filter) {
102102
 103+ $this->resetQueryParams();
103104 $this->addTables('interwiki');
104105 $this->addFields(array('iw_prefix', 'iw_local', 'iw_url'));
105106
Index: branches/liquidthreads/includes/api/ApiQueryUserInfo.php
@@ -0,0 +1,133 @@
 2+<?php
 3+
 4+/*
 5+ * Created on July 30, 2007
 6+ *
 7+ * API for MediaWiki 1.8+
 8+ *
 9+ * Copyright (C) 2007 Yuri Astrakhan <Firstname><Lastname>@gmail.com
 10+ *
 11+ * This program is free software; you can redistribute it and/or modify
 12+ * it under the terms of the GNU General Public License as published by
 13+ * the Free Software Foundation; either version 2 of the License, or
 14+ * (at your option) any later version.
 15+ *
 16+ * This program is distributed in the hope that it will be useful,
 17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 19+ * GNU General Public License for more details.
 20+ *
 21+ * You should have received a copy of the GNU General Public License along
 22+ * with this program; if not, write to the Free Software Foundation, Inc.,
 23+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 24+ * http://www.gnu.org/copyleft/gpl.html
 25+ */
 26+
 27+if (!defined('MEDIAWIKI')) {
 28+ // Eclipse helper - will be ignored in production
 29+ require_once ('ApiQueryBase.php');
 30+}
 31+
 32+/**
 33+ * Query module to get information about the currently logged-in user
 34+ *
 35+ * @addtogroup API
 36+ */
 37+class ApiQueryUserInfo extends ApiQueryBase {
 38+
 39+ public function __construct($query, $moduleName) {
 40+ parent :: __construct($query, $moduleName, 'ui');
 41+ }
 42+
 43+ public function execute() {
 44+
 45+ global $wgUser;
 46+
 47+ $params = $this->extractRequestParams();
 48+ $result = $this->getResult();
 49+
 50+ $vals = array();
 51+ $vals['name'] = $wgUser->getName();
 52+
 53+ if( $wgUser->isAnon() ) $vals['anon'] = '';
 54+
 55+ if (!is_null($params['prop'])) {
 56+ $prop = array_flip($params['prop']);
 57+ if (isset($prop['blockinfo'])) {
 58+ if ($wgUser->isBlocked()) {
 59+ $vals['blockedby'] = User::whoIs($wgUser->blockedBy());
 60+ $vals['blockreason'] = $wgUser->blockedFor();
 61+ }
 62+ }
 63+ if (isset($prop['hasmsg']) && $wgUser->getNewtalk()) {
 64+ $vals['messages'] = '';
 65+ }
 66+ if (isset($prop['groups'])) {
 67+ $vals['groups'] = $wgUser->getGroups();
 68+ $result->setIndexedTagName($vals['groups'], 'g'); // even if empty
 69+ }
 70+ if (isset($prop['rights'])) {
 71+ $vals['rights'] = $wgUser->getRights();
 72+ $result->setIndexedTagName($vals['rights'], 'r'); // even if empty
 73+ }
 74+ }
 75+
 76+ if (!empty($params['option'])) {
 77+ foreach( $params['option'] as $option ) {
 78+ if (empty($option))
 79+ $this->dieUsage('Empty value is not allowed for the option parameter', 'option');
 80+ $vals['options'][$option] = $wgUser->getOption($option);
 81+ }
 82+ }
 83+
 84+ $result->addValue(null, $this->getModuleName(), $vals);
 85+ }
 86+
 87+ protected function getAllowedParams() {
 88+ return array (
 89+ 'prop' => array (
 90+ ApiBase :: PARAM_DFLT => NULL,
 91+ ApiBase :: PARAM_ISMULTI => true,
 92+ ApiBase :: PARAM_TYPE => array (
 93+ 'blockinfo',
 94+ 'hasmsg',
 95+ 'groups',
 96+ 'rights',
 97+ )),
 98+ 'option' => array (
 99+ ApiBase :: PARAM_DFLT => NULL,
 100+ ApiBase :: PARAM_ISMULTI => true,
 101+ ),
 102+ );
 103+ }
 104+
 105+ protected function getParamDescription() {
 106+ return array (
 107+ 'prop' => array(
 108+ 'What pieces of information to include',
 109+ ' blockinfo - tags if the user is blocked, by whom, and for what reason',
 110+ ' hasmsg - adds a tag "message" if user has pending messages',
 111+ ' groups - lists all the groups the current user belongs to',
 112+ ' rights - lists of all rights the current user has',
 113+ ),
 114+ 'option' => 'A list of user preference options to get',
 115+ );
 116+ }
 117+
 118+ protected function getDescription() {
 119+ return 'Get information about the current user';
 120+ }
 121+
 122+ protected function getExamples() {
 123+ return array (
 124+ 'api.php?action=query&meta=userinfo',
 125+ 'api.php?action=query&meta=userinfo&uiprop=blockinfo|groups|rights|hasmsg',
 126+ 'api.php?action=query&meta=userinfo&uioption=rememberpassword',
 127+ );
 128+ }
 129+
 130+ public function getVersion() {
 131+ return __CLASS__ . ': $Id$';
 132+ }
 133+}
 134+
Property changes on: branches/liquidthreads/includes/api/ApiQueryUserInfo.php
___________________________________________________________________
Added: svn:eol-style
1135 + native
Added: svn:keywords
2136 + Id
Index: branches/liquidthreads/includes/Xml.php
@@ -91,39 +91,37 @@
9292 }
9393
9494 /**
95 - * Create a namespace selector
 95+ * Build a drop-down box for selecting a namespace
9696 *
97 - * @param $selected Mixed: the namespace which should be selected, default ''
98 - * @param $allnamespaces String: value of a special item denoting all namespaces. Null to not include (default)
99 - * @param $includehidden Bool: include hidden namespaces?
100 - * @return String: Html string containing the namespace selector
 97+ * @param mixed $selected Namespace which should be pre-selected
 98+ * @param mixed $all Value of an item denoting all namespaces, or null to omit
 99+ * @param bool $hidden Include hidden namespaces? [WTF? --RC]
 100+ * @param array $exclude Array of indexes to exclude
 101+ * @return string
101102 */
102 - public static function namespaceSelector($selected = '', $allnamespaces = null, $includehidden=false) {
 103+ public static function namespaceSelector( $selected = '', $all = null, $hidden = false, $exclude = array() ) {
103104 global $wgContLang;
104 - if( is_null( $selected ) )
105 - $selected = '';
106 - $s = "\n<select id='namespace' name='namespace' class='namespaceselector'>\n";
107 - $arr = $wgContLang->getFormattedNamespaces();
108 - if( !is_null($allnamespaces) ) {
109 - $arr = array($allnamespaces => wfMsg('namespacesall')) + $arr;
 105+ $namespaces = $wgContLang->getFormattedNamespaces();
 106+ $options = array();
 107+
 108+ if( !is_null( $all ) )
 109+ $namespaces = array( $all => wfMsg( 'namespacesall' ) ) + $namespaces;
 110+ foreach( $namespaces as $index => $name ) {
 111+ if( $index < NS_MAIN || in_array( $index, $exclude ) )
 112+ continue;
 113+ if( $index === 0 )
 114+ $name = wfMsg( 'blanknamespace' );
 115+ $options[] = self::option( $name, $index, $index === $selected );
110116 }
111 - foreach ($arr as $index => $name) {
112 - if ($index < NS_MAIN) continue;
113 -
114 - $name = $index !== 0 ? $name : wfMsg('blanknamespace');
115 -
116 - if ($index === $selected) {
117 - $s .= "\t" . self::element("option",
118 - array("value" => $index, "selected" => "selected"),
119 - $name) . "\n";
120 - } else {
121 - $s .= "\t" . self::element("option", array("value" => $index), $name) . "\n";
122 - }
123 - }
124 - $s .= "</select>\n";
125 - return $s;
 117+
 118+ return Xml::openElement( 'select', array( 'id' => 'namespace', 'name' => 'namespace',
 119+ 'class' => 'namespaceselector' ) )
 120+ . "\n"
 121+ . implode( "\n", $options )
 122+ . "\n"
 123+ . Xml::closeElement( 'select' );
126124 }
127 -
 125+
128126 /**
129127 * Create a date selector
130128 *
Index: branches/liquidthreads/includes/SpecialUndelete.php
@@ -675,7 +675,7 @@
676676 }
677677
678678 /* private */ function showHistory() {
679 - global $wgLang, $wgUser, $wgOut;
 679+ global $wgLang, $wgContLang, $wgUser, $wgOut;
680680
681681 $sk = $wgUser->getSkin();
682682 if ( $this->mAllowed ) {
@@ -701,10 +701,10 @@
702702 # List all stored revisions
703703 $revisions = $archive->listRevisions();
704704 $files = $archive->listFiles();
705 -
 705+
706706 $haveRevisions = $revisions && $revisions->numRows() > 0;
707707 $haveFiles = $files && $files->numRows() > 0;
708 -
 708+
709709 # Batch existence check on user and talk pages
710710 if( $haveRevisions ) {
711711 $batch = new LinkBatch();
@@ -729,7 +729,7 @@
730730 $titleObj = SpecialPage::getTitleFor( "Undelete" );
731731 $action = $titleObj->getLocalURL( "action=submit" );
732732 # Start the form here
733 - $top = wfOpenElement( 'form', array( 'method' => 'post', 'action' => $action, 'id' => 'undelete' ) );
 733+ $top = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $action, 'id' => 'undelete' ) );
734734 $wgOut->addHtml( $top );
735735 }
736736
@@ -746,21 +746,40 @@
747747 ), LogViewer::NO_ACTION_LINK
748748 );
749749 $logViewer->showList( $wgOut );
750 -
 750+
751751 if( $this->mAllowed && ( $haveRevisions || $haveFiles ) ) {
752752 # Format the user-visible controls (comment field, submission button)
753753 # in a nice little table
754 - $table = '<fieldset><table><tr>';
755 - $table .= '<td colspan="2">' . wfMsgWikiHtml( 'undeleteextrahelp' ) . '</td></tr><tr>';
756 - $table .= '<td align="right"><strong>' . wfMsgHtml( 'undeletecomment' ) . '</strong></td>';
757 - $table .= '<td>' . wfInput( 'wpComment', 50, $this->mComment ) . '</td>';
758 - $table .= '</tr><tr><td>&nbsp;</td><td>';
759 - $table .= wfSubmitButton( wfMsg( 'undeletebtn' ), array( 'name' => 'restore' ) );
760 - $table .= wfElement( 'input', array( 'type' => 'reset', 'value' => wfMsg( 'undeletereset' ) ) );
761 - $table .= '</td></tr></table></fieldset>';
 754+ $align = $wgContLang->isRtl() ? 'left' : 'right';
 755+ $table =
 756+ Xml::openElement( 'fieldset' ) .
 757+ Xml::openElement( 'table' ) .
 758+ "<tr>
 759+ <td colspan='2'>" .
 760+ wfMsgWikiHtml( 'undeleteextrahelp' ) .
 761+ "</td>
 762+ </tr>
 763+ <tr>
 764+ <td align='$align'>" .
 765+ Xml::label( wfMsg( 'undeletecomment' ), 'wpComment' ) .
 766+ "</td>
 767+ <td>" .
 768+ Xml::input( 'wpComment', 50, $this->mComment ) .
 769+ "</td>
 770+ </tr>
 771+ <tr>
 772+ <td>&nbsp;</td>
 773+ <td>" .
 774+ Xml::submitButton( wfMsg( 'undeletebtn' ), array( 'name' => 'restore', 'id' => 'mw-undelete-submit' ) ) .
 775+ Xml::element( 'input', array( 'type' => 'reset', 'value' => wfMsg( 'undeletereset' ), 'id' => 'mw-undelete-reset' ) ) .
 776+ "</td>
 777+ </tr>" .
 778+ Xml::closeElement( 'table' ) .
 779+ Xml::closeElement( 'fieldset' );
 780+
762781 $wgOut->addHtml( $table );
763782 }
764 -
 783+
765784 $wgOut->addHTML( "<h2>" . htmlspecialchars( wfMsg( "history" ) ) . "</h2>\n" );
766785
767786 if( $haveRevisions ) {
@@ -770,7 +789,7 @@
771790 while( $row = $revisions->fetchObject() ) {
772791 $ts = wfTimestamp( TS_MW, $row->ar_timestamp );
773792 if ( $this->mAllowed ) {
774 - $checkBox = wfCheck( "ts$ts" );
 793+ $checkBox = Xml::check( "ts$ts" );
775794 $pageLink = $sk->makeKnownLinkObj( $titleObj,
776795 $wgLang->timeanddate( $ts, true ),
777796 "target=$target&timestamp=$ts" );
@@ -789,7 +808,7 @@
790809 }
791810 $comment = $sk->commentBlock( $row->ar_comment );
792811 $wgOut->addHTML( "<li>$checkBox $pageLink . . $userLink $stxt $comment</li>\n" );
793 -
 812+
794813 }
795814 $revisions->free();
796815 $wgOut->addHTML("</ul>");
@@ -797,14 +816,13 @@
798817 $wgOut->addWikiText( wfMsg( "nohistory" ) );
799818 }
800819
801 -
802820 if( $haveFiles ) {
803821 $wgOut->addHtml( "<h2>" . wfMsgHtml( 'filehist' ) . "</h2>\n" );
804822 $wgOut->addHtml( "<ul>" );
805823 while( $row = $files->fetchObject() ) {
806824 $ts = wfTimestamp( TS_MW, $row->fa_timestamp );
807825 if ( $this->mAllowed && $row->fa_storage_key ) {
808 - $checkBox = wfCheck( "fileid" . $row->fa_id );
 826+ $checkBox = Xml::check( "fileid" . $row->fa_id );
809827 $key = urlencode( $row->fa_storage_key );
810828 $target = urlencode( $this->mTarget );
811829 $pageLink = $sk->makeKnownLinkObj( $titleObj,
@@ -828,12 +846,13 @@
829847 $files->free();
830848 $wgOut->addHTML( "</ul>" );
831849 }
832 -
 850+
833851 if ( $this->mAllowed ) {
834852 # Slip in the hidden controls here
835 - $misc = wfHidden( 'target', $this->mTarget );
836 - $misc .= wfHidden( 'wpEditToken', $wgUser->editToken() );
837 - $wgOut->addHtml( $misc . '</form>' );
 853+ $misc = Xml::hidden( 'target', $this->mTarget );
 854+ $misc .= Xml::hidden( 'wpEditToken', $wgUser->editToken() );
 855+ $misc .= Xml::closeElement( 'form' );
 856+ $wgOut->addHtml( $misc );
838857 }
839858
840859 return true;
Index: branches/liquidthreads/includes/IP.php
@@ -114,13 +114,14 @@
115115 * @return string
116116 */
117117 public static function sanitizeIP( $ip ) {
118 - if ( !$ip ) return null;
 118+ $ip = trim( $ip );
 119+ if ( $ip === '' ) return null;
119120 // Trim and return IPv4 addresses
120 - if ( self::isIPv4($ip) ) return trim($ip);
 121+ if ( self::isIPv4($ip) ) return $ip;
121122 // Only IPv6 addresses can be expanded
122123 if ( !self::isIPv6($ip) ) return $ip;
123124 // Remove any whitespaces, convert to upper case
124 - $ip = strtoupper( trim($ip) );
 125+ $ip = strtoupper( $ip );
125126 // Expand zero abbreviations
126127 if ( strpos( $ip, '::' ) !== false ) {
127128 $ip = str_replace('::', str_repeat(':0', 8 - substr_count($ip, ':')) . ':', $ip);
Index: branches/liquidthreads/includes/SpecialUpload.php
@@ -668,7 +668,7 @@
669669 * @access private
670670 */
671671 function uploadWarning( $warning ) {
672 - global $wgOut;
 672+ global $wgOut, $wgContLang;
673673 global $wgUseCopyrightUpload;
674674
675675 $this->mSessionKey = $this->stashSession();
@@ -686,6 +686,8 @@
687687 $reup = wfMsgWikiHtml( 'reuploaddesc' );
688688 $titleObj = SpecialPage::getTitleFor( 'Upload' );
689689 $action = $titleObj->escapeLocalURL( 'action=submit' );
 690+ $align1 = $wgContLang->isRTL() ? 'left' : 'right';
 691+ $align2 = $wgContLang->isRTL() ? 'right' : 'left';
690692
691693 if ( $wgUseCopyrightUpload )
692694 {
@@ -709,16 +711,16 @@
710712 <table border='0'>
711713 <tr>
712714 <tr>
713 - <td align='right'>
 715+ <td align='$align1'>
714716 <input tabindex='2' type='submit' name='wpUpload' value=\"$save\" />
715717 </td>
716 - <td align='left'>$iw</td>
 718+ <td align='$align2'>$iw</td>
717719 </tr>
718720 <tr>
719 - <td align='right'>
 721+ <td align='$align1'>
720722 <input tabindex='2' type='submit' name='wpReUpload' value=\"{$reupload}\" />
721723 </td>
722 - <td align='left'>$reup</td>
 724+ <td align='$align2'>$reup</td>
723725 </tr>
724726 </tr>
725727 </table></form>\n" );
@@ -732,7 +734,7 @@
733735 * @access private
734736 */
735737 function mainUploadForm( $msg='' ) {
736 - global $wgOut, $wgUser;
 738+ global $wgOut, $wgUser, $wgContLang;
737739 global $wgUseCopyrightUpload, $wgUseAjax, $wgAjaxUploadDestCheck, $wgAjaxLicensePreview;
738740 global $wgRequest, $wgAllowCopyUploads, $wgEnableAPI;
739741 global $wgStylePath, $wgStyleVersion;
@@ -829,27 +831,29 @@
830832 }
831833
832834 $encComment = htmlspecialchars( $this->mComment );
 835+ $align1 = $wgContLang->isRTL() ? 'left' : 'right';
 836+ $align2 = $wgContLang->isRTL() ? 'right' : 'left';
833837
834838 $wgOut->addHTML( <<<EOT
835839 <form id='upload' method='post' enctype='multipart/form-data' action="$action">
836840 <table border='0'>
837841 <tr>
838842 {$this->uploadFormTextTop}
839 - <td align='right' valign='top'><label for='wpUploadFile'>{$sourcefilename}:</label></td>
840 - <td align='left'>
 843+ <td align='$align1' valign='top'><label for='wpUploadFile'>{$sourcefilename}:</label></td>
 844+ <td align='$align2'>
841845 {$filename_form}
842846 </td>
843847 </tr>
844848 <tr>
845 - <td align='right'><label for='wpDestFile'>{$destfilename}:</label></td>
846 - <td align='left'>
 849+ <td align='$align1'><label for='wpDestFile'>{$destfilename}:</label></td>
 850+ <td align='$align2'>
847851 <input tabindex='2' type='text' name='wpDestFile' id='wpDestFile' size='40'
848852 value="$encDestName" $destOnkeyup />
849853 </td>
850854 </tr>
851855 <tr>
852 - <td align='right'><label for='wpUploadDescription'>{$summary}</label></td>
853 - <td align='left'>
 856+ <td align='$align1'><label for='wpUploadDescription'>{$summary}</label></td>
 857+ <td align='$align2'>
854858 <textarea tabindex='3' name='wpUploadDescription' id='wpUploadDescription' rows='6'
855859 cols='{$cols}'{$ew}>$encComment</textarea>
856860 {$this->uploadFormTextAfterSummary}
@@ -862,8 +866,8 @@
863867 if ( $licenseshtml != '' ) {
864868 global $wgStylePath;
865869 $wgOut->addHTML( "
866 - <td align='right'><label for='wpLicense'>$license:</label></td>
867 - <td align='left'>
 870+ <td align='$align1'><label for='wpLicense'>$license:</label></td>
 871+ <td align='$align2'>
868872 <select name='wpLicense' id='wpLicense' tabindex='4'
869873 onchange='licenseSelectorCheck()'>
870874 <option value=''>$nolicense</option>
@@ -888,12 +892,12 @@
889893 $uploadsource = htmlspecialchars( $this->mCopyrightSource );
890894
891895 $wgOut->addHTML( "
892 - <td align='right' nowrap='nowrap'><label for='wpUploadCopyStatus'>$filestatus:</label></td>
 896+ <td align='$align1' nowrap='nowrap'><label for='wpUploadCopyStatus'>$filestatus:</label></td>
893897 <td><input tabindex='5' type='text' name='wpUploadCopyStatus' id='wpUploadCopyStatus'
894898 value=\"$copystatus\" size='40' /></td>
895899 </tr>
896900 <tr>
897 - <td align='right'><label for='wpUploadCopyStatus'>$filesource:</label></td>
 901+ <td align='$align1'><label for='wpUploadCopyStatus'>$filesource:</label></td>
898902 <td><input tabindex='6' type='text' name='wpUploadSource' id='wpUploadCopyStatus'
899903 value=\"$uploadsource\" size='40' /></td>
900904 </tr>
@@ -913,11 +917,11 @@
914918 $warningRow
915919 <tr>
916920 <td></td>
917 - <td align='left'><input tabindex='9' type='submit' name='wpUpload' value=\"{$ulb}\" /></td>
 921+ <td align='$align2'><input tabindex='9' type='submit' name='wpUpload' value=\"{$ulb}\" /></td>
918922 </tr>
919923 <tr>
920924 <td></td>
921 - <td align='left'>
 925+ <td align='$align2'>
922926 " );
923927 $wgOut->addWikiText( wfMsgForContent( 'edittools' ) );
924928 $wgOut->addHTML( "
@@ -1392,3 +1396,4 @@
13931397 }
13941398 }
13951399
 1400+
Index: branches/liquidthreads/includes/DefaultSettings.php
@@ -646,6 +646,19 @@
647647 $wgLocalDatabases = array();
648648
649649 /**
 650+ * For multi-wiki clusters with multiple master servers; if an alternate
 651+ * is listed for the requested database, a connection to it will be opened
 652+ * instead of to the current wiki's regular master server when cross-wiki
 653+ * data operations are done from here.
 654+ *
 655+ * Requires that the other server be accessible by network, with the same
 656+ * username/password as the primary.
 657+ *
 658+ * eg $wgAlternateMaster['enwiki'] = 'ariel';
 659+ */
 660+$wgAlternateMaster = array();
 661+
 662+/**
650663 * Object cache settings
651664 * See Defines.php for types
652665 */
@@ -1143,9 +1156,8 @@
11441157 * // Sysops can disable other sysops in an emergency, and disable bots
11451158 * $wgRemoveGroups['sysop'] = array( 'sysop', 'bot' );
11461159 */
1147 -$wgAddGroups = $wgRemoveGroups = array(); // Add customizations after this line
 1160+$wgAddGroups = $wgRemoveGroups = array();
11481161
1149 -
11501162 # Proxy scanner settings
11511163 #
11521164
@@ -1195,7 +1207,7 @@
11961208 * to ensure that client-side caches don't keep obsolete copies of global
11971209 * styles.
11981210 */
1199 -$wgStyleVersion = '94';
 1211+$wgStyleVersion = '96';
12001212
12011213
12021214 # Server-side caching:
Index: branches/liquidthreads/includes/SpecialProtectedpages.php
@@ -110,19 +110,28 @@
111111 return "<form action=\"$action\" method=\"get\">\n" .
112112 '<fieldset>' .
113113 Xml::element( 'legend', array(), wfMsg( 'protectedpages' ) ) .
114 - Xml::hidden( 'title', $special ) . "&nbsp\n" .
115 - $this->getNamespaceMenu( $namespace ) . "&nbsp\n" .
116 - $this->getTypeMenu( $type ) . "&nbsp\n" .
 114+ Xml::hidden( 'title', $special ) . "&nbsp;\n" .
 115+ $this->getNamespaceMenu( $namespace ) . "&nbsp;\n" .
 116+ $this->getTypeMenu( $type ) . "&nbsp;\n" .
117117 $this->getLevelMenu( $level ) . "<br/>\n" .
118118 $this->getSizeLimit( $sizetype, $size ) . "\n" .
119 - "&nbsp" . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "\n" .
 119+ "&nbsp;" . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "\n" .
120120 "</fieldset></form>";
121121 }
122122
123 - function getNamespaceMenu( $namespace=NULL ) {
124 - return "<label for='namespace'>" . wfMsgHtml('namespace') . "</label>" . HTMLnamespaceselector($namespace, '');
 123+ /**
 124+ * Prepare the namespace filter drop-down; standard namespace
 125+ * selector, sans the MediaWiki namespace
 126+ *
 127+ * @param mixed $namespace Pre-select namespace
 128+ * @return string
 129+ */
 130+ function getNamespaceMenu( $namespace = null ) {
 131+ return Xml::label( wfMsg( 'namespace' ), 'namespace' )
 132+ . '&nbsp;'
 133+ . Xml::namespaceSelector( $namespace, '', false, array( NS_MEDIAWIKI, NS_MEDIAWIKI_TALK ) );
125134 }
126 -
 135+
127136 /**
128137 * @return string Formatted HTML
129138 * @private
@@ -130,9 +139,9 @@
131140 function getSizeLimit( $sizetype, $size ) {
132141 $out = Xml::radio( 'sizetype', 'min', ($sizetype=='min'), array('id' => 'wpmin') );
133142 $out .= Xml::label( wfMsg("minimum-size"), 'wpmin' );
134 - $out .= "&nbsp".Xml::radio( 'sizetype', 'max', ($sizetype=='max'), array('id' => 'wpmax') );
 143+ $out .= "&nbsp;".Xml::radio( 'sizetype', 'max', ($sizetype=='max'), array('id' => 'wpmax') );
135144 $out .= Xml::label( wfMsg("maximum-size"), 'wpmax' );
136 - $out .= "&nbsp".Xml::input('size', 9, $size, array( 'id' => 'wpsize' ) );
 145+ $out .= "&nbsp;".Xml::input('size', 9, $size, array( 'id' => 'wpsize' ) );
137146 $out .= ' '.wfMsgHtml('pagesize');
138147 return $out;
139148 }
Index: branches/liquidthreads/includes/filerepo/FileRepoStatus.php
@@ -22,6 +22,7 @@
2323 $result = new self( $repo );
2424 call_user_func_array( array( &$result, 'error' ), $params );
2525 $result->ok = false;
 26+ return $result;
2627 }
2728
2829 static function newGood( $repo = false, $value = null ) {
Index: branches/liquidthreads/includes/Database.php
@@ -1495,6 +1495,7 @@
14961496 * (for the log)
14971497 * @param array $options An array of UPDATE options, can be one or
14981498 * more of IGNORE, LOW_PRIORITY
 1499+ * @return bool
14991500 */
15001501 function update( $table, $values, $conds, $fname = 'Database::update', $options = array() ) {
15011502 $table = $this->tableName( $table );
@@ -1503,7 +1504,7 @@
15041505 if ( $conds != '*' ) {
15051506 $sql .= " WHERE " . $this->makeList( $conds, LIST_AND );
15061507 }
1507 - $this->query( $sql, $fname );
 1508+ return $this->query( $sql, $fname );
15081509 }
15091510
15101511 /**
Index: branches/liquidthreads/includes/Title.php
@@ -269,32 +269,27 @@
270270 }
271271
272272 /**
273 - * Create a new Title for a redirect
274 - * @param string $text the redirect title text
275 - * @return Title the new object, or NULL if the text is not a
276 - * valid redirect
 273+ * Extract a redirect destination from a string and return the
 274+ * Title, or null if the text doesn't contain a valid redirect
 275+ *
 276+ * @param string $text Text with possible redirect
 277+ * @return Title
277278 */
278279 public static function newFromRedirect( $text ) {
279 - $mwRedir = MagicWord::get( 'redirect' );
280 - $rt = NULL;
281 - if ( $mwRedir->matchStart( $text ) ) {
282 - $m = array();
283 - if ( preg_match( '/\[{2}(.*?)(?:\||\]{2})/', $text, $m ) ) {
284 - # categories are escaped using : for example one can enter:
285 - # #REDIRECT [[:Category:Music]]. Need to remove it.
286 - if ( substr($m[1],0,1) == ':') {
287 - # We don't want to keep the ':'
288 - $m[1] = substr( $m[1], 1 );
289 - }
290 -
291 - $rt = Title::newFromText( $m[1] );
292 - # Disallow redirects to Special:Userlogout
293 - if ( !is_null($rt) && $rt->isSpecial( 'Userlogout' ) ) {
294 - $rt = NULL;
295 - }
 280+ $redir = MagicWord::get( 'redirect' );
 281+ if( $redir->matchStart( $text ) ) {
 282+ // Extract the first link and see if it's usable
 283+ if( preg_match( '!\[{2}(.*?)(?:\||\]{2})!', $text, $m ) ) {
 284+ // Strip preceding colon used to "escape" categories, etc.
 285+ // and URL-decode links
 286+ $m[1] = urldecode( ltrim( $m[1], ':' ) );
 287+ $title = Title::newFromText( $m[1] );
 288+ // Redirects to Special:Userlogout are not permitted
 289+ if( $title instanceof Title && !$title->isSpecial( 'Userlogout' ) )
 290+ return $title;
296291 }
297292 }
298 - return $rt;
 293+ return null;
299294 }
300295
301296 #----------------------------------------------------------------------------
@@ -1011,7 +1006,7 @@
10121007 }
10131008 return false;
10141009 }
1015 -
 1010+
10161011 /**
10171012 * Can $wgUser perform $action on this page?
10181013 * @param string $action action that permission needs to be checked for
@@ -1019,42 +1014,117 @@
10201015 * @return boolean
10211016 */
10221017 public function userCan( $action, $doExpensiveQueries = true ) {
 1018+ global $wgUser;
 1019+ return ( $this->getUserPermissionsErrorsInternal( $action, $wgUser, $doExpensiveQueries ) === array());
 1020+ }
 1021+
 1022+ /**
 1023+ * Can $user perform $action on this page?
 1024+ * @param string $action action that permission needs to be checked for
 1025+ * @param bool $doExpensiveQueries Set this to false to avoid doing unnecessary queries.
 1026+ * @return array Array of arrays of the arguments to wfMsg to explain permissions problems.
 1027+ */
 1028+ public function getUserPermissionsErrors( $action, $user, $doExpensiveQueries = true ) {
 1029+ $errors = $this->getUserPermissionsErrorsInternal( $action, $user, $doExpensiveQueries );
 1030+
 1031+ global $wgContLang;
 1032+ global $wgLang;
 1033+
 1034+ if ( wfReadOnly() && $action != 'read' ) {
 1035+ $errors[] = array( 'readonlytext' );
 1036+ }
 1037+
 1038+ global $wgEmailConfirmToEdit;
 1039+
 1040+ if ( $wgEmailConfirmToEdit && !$wgUser->isEmailConfirmed() )
 1041+ {
 1042+ $errors[] = array( 'confirmedittext' );
 1043+ }
 1044+
 1045+ if ( $user->isBlockedFrom( $this ) ) {
 1046+ $block = $user->mBlock;
 1047+
 1048+ // This is from OutputPage::blockedPage
 1049+ // Copied at r23888 by werdna
 1050+
 1051+ $id = $user->blockedBy();
 1052+ $reason = $user->blockedFor();
 1053+ $ip = wfGetIP();
 1054+
 1055+ if ( is_numeric( $id ) ) {
 1056+ $name = User::whoIs( $id );
 1057+ } else {
 1058+ $name = $id;
 1059+ }
 1060+
 1061+ $link = '[[' . $wgContLang->getNsText( NS_USER ) . ":{$name}|{$name}]]";
 1062+ $blockid = $block->mId;
 1063+ $blockExpiry = $user->mBlock->mExpiry;
 1064+
 1065+ if ( $blockExpiry == 'infinity' ) {
 1066+ // Entry in database (table ipblocks) is 'infinity' but 'ipboptions' uses 'infinite' or 'indefinite'
 1067+ $scBlockExpiryOptions = wfMsg( 'ipboptions' );
 1068+
 1069+ foreach ( explode( ',', $scBlockExpiryOptions ) as $option ) {
 1070+ if ( strpos( $option, ':' ) == false )
 1071+ continue;
 1072+
 1073+ list ($show, $value) = explode( ":", $option );
 1074+
 1075+ if ( $value == 'infinite' || $value == 'indefinite' ) {
 1076+ $blockExpiry = $show;
 1077+ break;
 1078+ }
 1079+ }
 1080+ } else {
 1081+ $blockExpiry = $wgLang->timeanddate( wfTimestamp( TS_MW, $blockExpiry ), true );
 1082+ }
 1083+
 1084+ $intended = $user->mBlock->mAddress;
 1085+
 1086+ $errors[] = array ( ($block->mAuto ? 'autoblockedtext-concise' : 'blockedtext-concise'), $link, $reason, $ip, name, $blockid, $blockExpiry, $intended );
 1087+ }
 1088+
 1089+ return $errors;
 1090+ }
 1091+
 1092+ /**
 1093+ * Can $user perform $action on this page?
 1094+ * This is an internal function, which checks ONLY that previously checked by userCan (i.e. it leaves out checks on wfReadOnly() and blocks)
 1095+ * @param string $action action that permission needs to be checked for
 1096+ * @param bool $doExpensiveQueries Set this to false to avoid doing unnecessary queries.
 1097+ * @return array Array of arrays of the arguments to wfMsg to explain permissions problems.
 1098+ */
 1099+ private function getUserPermissionsErrorsInternal( $action, $user, $doExpensiveQueries = true ) {
10231100 $fname = 'Title::userCan';
10241101 wfProfileIn( $fname );
10251102
1026 - global $wgUser;
 1103+ $errors = array();
10271104
1028 - $result = null;
1029 - wfRunHooks( 'userCan', array( &$this, &$wgUser, $action, &$result ) );
1030 - if ( $result !== null ) {
1031 - wfProfileOut( $fname );
1032 - return $result;
 1105+ if ( !wfRunHooks( 'userCan', array( &$this, &$user, $action, &$result ) ) ) {
 1106+ return $result ? array() : array( array( 'badaccess-group0' ) );
10331107 }
10341108
10351109 if( NS_SPECIAL == $this->mNamespace ) {
1036 - wfProfileOut( $fname );
1037 - return false;
 1110+ $errors[] = array('ns-specialprotected');
10381111 }
10391112
10401113 if ( $this->isNamespaceProtected() ) {
1041 - wfProfileOut( $fname );
1042 - return false;
 1114+ $errors[] = (NS_MEDIAWIKI == $this->mNamespace ? array('protectedinterface') : array( 'namespaceprotected', $wgContLang->getNSText( $this->mNamespace ) ) );
10431115 }
10441116
10451117 if( $this->mDbkeyform == '_' ) {
10461118 # FIXME: Is this necessary? Shouldn't be allowed anyway...
1047 - wfProfileOut( $fname );
1048 - return false;
 1119+ $errors[] = array('badaccess-group0');
10491120 }
10501121
10511122 # protect css/js subpages of user pages
10521123 # XXX: this might be better using restrictions
10531124 # XXX: Find a way to work around the php bug that prevents using $this->userCanEditCssJsSubpage() from working
10541125 if( $this->isCssJsSubpage()
1055 - && !$wgUser->isAllowed('editinterface')
1056 - && !preg_match('/^'.preg_quote($wgUser->getName(), '/').'\//', $this->mTextform) ) {
1057 - wfProfileOut( $fname );
1058 - return false;
 1126+ && !$user->isAllowed('editinterface')
 1127+ && !preg_match('/^'.preg_quote($user->getName(), '/').'\//', $this->mTextform) ) {
 1128+ $errors[] = array('customcssjsprotected');
10591129 }
10601130
10611131 if ( $doExpensiveQueries && !$this->isCssJsSubpage() ) {
@@ -1070,9 +1140,11 @@
10711141 if( $cascadingSources > 0 && isset($restrictions[$action]) ) {
10721142 foreach( $restrictions[$action] as $right ) {
10731143 $right = ( $right == 'sysop' ) ? 'protect' : $right;
1074 - if( '' != $right && !$wgUser->isAllowed( $right ) ) {
1075 - wfProfileOut( $fname );
1076 - return false;
 1144+ if( '' != $right && !$user->isAllowed( $right ) ) {
 1145+ $pages = '';
 1146+ foreach( $cascadeSources as $id => $page )
 1147+ $pages .= '* [[:' . $page->getPrefixedText() . "]]\n";
 1148+ $errors[] = array( 'cascadeprotected', array_len( $cascadingSources ), $pages );
10771149 }
10781150 }
10791151 }
@@ -1083,33 +1155,51 @@
10841156 if ( $right == 'sysop' ) {
10851157 $right = 'protect';
10861158 }
1087 - if( '' != $right && !$wgUser->isAllowed( $right ) ) {
1088 - wfProfileOut( $fname );
1089 - return false;
 1159+ if( '' != $right && !$user->isAllowed( $right ) ) {
 1160+ $errors[] = array( 'protectedpagetext' );
10901161 }
10911162 }
10921163
1093 - if( $action == 'move' &&
1094 - !( $this->isMovable() && $wgUser->isAllowed( 'move' ) ) ) {
1095 - wfProfileOut( $fname );
1096 - return false;
1097 - }
1098 -
10991164 if( $action == 'create' ) {
1100 - if( ( $this->isTalkPage() && !$wgUser->isAllowed( 'createtalk' ) ) ||
1101 - ( !$this->isTalkPage() && !$wgUser->isAllowed( 'createpage' ) ) ) {
1102 - wfProfileOut( $fname );
1103 - return false;
 1165+ if( ( $this->isTalkPage() && !$user->isAllowed( 'createtalk' ) ) ||
 1166+ ( !$this->isTalkPage() && !$user->isAllowed( 'createpage' ) ) ) {
 1167+ $errors[] = $user->isAnon() ? array ('nocreatetext') : array ('nocreate-loggedin');
11041168 }
 1169+ } elseif( $action == 'move' &&
 1170+ !( $this->isMovable() && $user->isAllowed( 'move' ) ) ) {
 1171+ $errors[] = $user->isAnon() ? array ( 'movenologintext' ) : array ('movenotallowed');
 1172+ } else if ( !$user->isAllowed( $action ) ) {
 1173+ $return = null;
 1174+ $groups = array();
 1175+ global $wgGroupPermissions;
 1176+ foreach( $wgGroupPermissions as $key => $value ) {
 1177+ if( isset( $value[$action] ) && $value[$action] == true ) {
 1178+ $groupName = User::getGroupName( $key );
 1179+ $groupPage = User::getGroupPage( $key );
 1180+ if( $groupPage ) {
 1181+ $skin = $user->getSkin();
 1182+ $groups[] = $skin->makeLinkObj( $groupPage, $groupName );
 1183+ } else {
 1184+ $groups[] = $groupName;
 1185+ }
 1186+ }
 1187+ }
 1188+ $n = count( $groups );
 1189+ $groups = implode( ', ', $groups );
 1190+ switch( $n ) {
 1191+ case 0:
 1192+ case 1:
 1193+ case 2:
 1194+ $return = array( "badaccess-group$n", $groups );
 1195+ break;
 1196+ default:
 1197+ $return = array( 'badaccess-groups', $groups );
 1198+ }
 1199+ $errors[] = $return;
11051200 }
11061201
1107 - if( $action == 'edit' && !$wgUser->isAllowed( 'edit' ) ) {
1108 - wfProfileOut( $fname );
1109 - return false;
1110 - }
1111 -
11121202 wfProfileOut( $fname );
1113 - return true;
 1203+ return $errors;
11141204 }
11151205
11161206 /**
@@ -2126,7 +2216,7 @@
21272217 * be a redirect
21282218 */
21292219 private function moveOverExistingRedirect( &$nt, $reason = '' ) {
2130 - global $wgUseSquid, $wgContLang;
 2220+ global $wgUseSquid;
21312221 $fname = 'Title::moveOverExistingRedirect';
21322222 $comment = wfMsgForContent( '1movedto2_redir', $this->getPrefixedText(), $nt->getPrefixedText() );
21332223
@@ -2156,7 +2246,6 @@
21572247 'page_touched' => $dbw->timestamp($now),
21582248 'page_namespace' => $nt->getNamespace(),
21592249 'page_title' => $nt->getDBkey(),
2160 - 'page_key' => $wgContLang->caseFold($nt->getDBkey()),
21612250 'page_latest' => $nullRevId,
21622251 ),
21632252 /* WHERE */ array( 'page_id' => $oldid ),
@@ -2204,7 +2293,7 @@
22052294 * @param Title &$nt the new Title
22062295 */
22072296 private function moveToNewTitle( &$nt, $reason = '' ) {
2208 - global $wgUseSquid, $wgContLang;
 2297+ global $wgUseSquid;
22092298 $fname = 'MovePageForm::moveToNewTitle';
22102299 $comment = wfMsgForContent( '1movedto2', $this->getPrefixedText(), $nt->getPrefixedText() );
22112300 if ( $reason ) {
@@ -2227,7 +2316,6 @@
22282317 'page_touched' => $now,
22292318 'page_namespace' => $nt->getNamespace(),
22302319 'page_title' => $nt->getDBkey(),
2231 - 'page_key' => $wgContLang->caseFold($nt->getDBkey()),
22322320 'page_latest' => $nullRevId,
22332321 ),
22342322 /* WHERE */ array( 'page_id' => $oldid ),
Index: branches/liquidthreads/includes/OutputPage.php
@@ -746,15 +746,11 @@
747747 $this->setRobotpolicy( 'noindex,nofollow' );
748748 $this->setArticleRelated( false );
749749
750 - $id = $wgUser->blockedBy();
 750+ $name = User::whoIs( $wgUser->blockedBy() );
751751 $reason = $wgUser->blockedFor();
 752+ $blockTimestamp = $wgLang->timeanddate( wfTimestamp( TS_MW, $wgUser->mBlock->mTimestamp ), true );
752753 $ip = wfGetIP();
753754
754 - if ( is_numeric( $id ) ) {
755 - $name = User::whoIs( $id );
756 - } else {
757 - $name = $id;
758 - }
759755 $link = '[[' . $wgContLang->getNsText( NS_USER ) . ":{$name}|{$name}]]";
760756
761757 $blockid = $wgUser->mBlock->mId;
@@ -787,8 +783,8 @@
788784 * This could be a username, an ip range, or a single ip. */
789785 $intended = $wgUser->mBlock->mAddress;
790786
791 - $this->addWikiText( wfMsg( $msg, $link, $reason, $ip, $name, $blockid, $blockExpiry, $intended ) );
792 -
 787+ $this->addWikiText( wfMsg( $msg, $link, $reason, $ip, $name, $blockid, $blockExpiry, $intended, $blockTimestamp ) );
 788+
793789 # Don't auto-return to special pages
794790 if( $return ) {
795791 $return = $wgTitle->getNamespace() > -1 ? $wgTitle->getPrefixedText() : NULL;
@@ -823,6 +819,24 @@
824820 $this->returnToMain( false );
825821 }
826822
 823+ public function showPermissionsErrorPage( $title, $errors )
 824+ {
 825+ global $wgTitle;
 826+
 827+ $this->mDebugtext .= 'Original title: ' .
 828+ $wgTitle->getPrefixedText() . "\n";
 829+ $this->setPageTitle( wfMsg( 'permissionserrors' ) );
 830+ $this->setHTMLTitle( wfMsg( 'permissionserrors' ) );
 831+ $this->setRobotpolicy( 'noindex,nofollow' );
 832+ $this->setArticleRelated( false );
 833+ $this->enableClientCache( false );
 834+ $this->mRedirect = '';
 835+ $this->mBodytext = '';
 836+
 837+ $this->addWikiText( wfMsg('permissionserrorstext') );
 838+ $this->addWikitext( $this->formatPermissionsErrorMessage( $errors ) );
 839+ }
 840+
827841 /** @deprecated */
828842 public function errorpage( $title, $msg ) {
829843 throw new ErrorPageError( $title, $msg );
@@ -939,20 +953,46 @@
940954 }
941955
942956 /**
 957+ * @param array $errors An array returned by Title::getUserPermissionsErrors
 958+ * @return string The error-messages, formatted into a list.
 959+ */
 960+ public function formatPermissionsErrorMessage( $errors ) {
 961+ $text = '';
 962+
 963+ $text .= wfMsg('permissionserrorstext')."\n";
 964+ $text .= '<ul class="permissions-errors">' . "\n";
 965+
 966+ foreach( $errors as $error )
 967+ {
 968+ $text .= '<li>';
 969+ $text .= call_user_func_array( 'wfMsg', $error );
 970+ $text .= "</li>\n";
 971+ }
 972+ $text .= '</ul>';
 973+
 974+ return $text;
 975+ }
 976+
 977+ /**
943978 * @todo document
944979 * @param bool $protected Is the reason the page can't be reached because it's protected?
945980 * @param mixed $source
946981 */
947 - public function readOnlyPage( $source = null, $protected = false ) {
 982+ public function readOnlyPage( $source = null, $protected = false, $reasons = array() ) {
948983 global $wgUser, $wgReadOnlyFile, $wgReadOnly, $wgTitle;
949984 $skin = $wgUser->getSkin();
950985
951986 $this->setRobotpolicy( 'noindex,nofollow' );
952987 $this->setArticleRelated( false );
953988
954 - if( $protected ) {
 989+ if ($reasons != array()) {
955990 $this->setPageTitle( wfMsg( 'viewsource' ) );
956991 $this->setSubtitle( wfMsg( 'viewsourcefor', $skin->makeKnownLinkObj( $wgTitle ) ) );
 992+
 993+ $this->addWikiText( $this->formatPermissionsErrorMessage( $reasons ) );
 994+ } else if( $protected ) {
 995+ $this->setPageTitle( wfMsg( 'viewsource' ) );
 996+ $this->setSubtitle( wfMsg( 'viewsourcefor', $skin->makeKnownLinkObj( $wgTitle ) ) );
957997 list( $cascadeSources, /* $restrictions */ ) = $wgTitle->getCascadeProtectionSources();
958998
959999 // Show an appropriate explanation depending upon the reason
Index: branches/liquidthreads/includes/SpecialUserlogin.php
@@ -296,7 +296,7 @@
297297 return false;
298298 }
299299
300 - return $this->initUser( $u );
 300+ return $this->initUser( $u, false );
301301 }
302302
303303 /**
@@ -304,10 +304,11 @@
305305 * Give it a User object that has been initialised with a name.
306306 *
307307 * @param $u User object.
 308+ * @param $autocreate boolean -- true if this is an autocreation via auth plugin
308309 * @return User object.
309310 * @private
310311 */
311 - function initUser( $u ) {
 312+ function initUser( $u, $autocreate ) {
312313 global $wgAuth;
313314
314315 $u->addToDatabase();
@@ -320,7 +321,7 @@
321322 $u->setRealName( $this->mRealName );
322323 $u->setToken();
323324
324 - $wgAuth->initUser( $u );
 325+ $wgAuth->initUser( $u, $autocreate );
325326
326327 $u->setOption( 'rememberpassword', $this->mRemember ? 1 : 0 );
327328 $u->saveSettings();
@@ -359,7 +360,7 @@
360361 */
361362 if ( $wgAuth->autoCreate() && $wgAuth->userExists( $u->getName() ) ) {
362363 if ( $wgAuth->authenticate( $u->getName(), $this->mPassword ) ) {
363 - $u = $this->initUser( $u );
 364+ $u = $this->initUser( $u, true );
364365 } else {
365366 return self::WRONG_PLUGIN_PASS;
366367 }
Index: branches/liquidthreads/includes/Article.php
@@ -262,7 +262,6 @@
263263 'page_id',
264264 'page_namespace',
265265 'page_title',
266 - 'page_key',
267266 'page_restrictions',
268267 'page_counter',
269268 'page_is_redirect',
@@ -1002,7 +1001,6 @@
10031002 * @private
10041003 */
10051004 function insertOn( $dbw ) {
1006 - global $wgContLang;
10071005 wfProfileIn( __METHOD__ );
10081006
10091007 $page_id = $dbw->nextSequenceValue( 'page_page_id_seq' );
@@ -1010,7 +1008,6 @@
10111009 'page_id' => $page_id,
10121010 'page_namespace' => $this->mTitle->getNamespace(),
10131011 'page_title' => $this->mTitle->getDBkey(),
1014 - 'page_key' => $wgContLang->caseFold($this->mTitle->getDBkey()),
10151012 'page_counter' => 0,
10161013 'page_restrictions' => '',
10171014 'page_is_redirect' => 0, # Will set this shortly...
@@ -2807,16 +2804,21 @@
28082805
28092806 $wgOut->setPagetitle( $page->getPrefixedText() );
28102807 $wgOut->setPageTitleActionText( wfMsg( 'info_short' ) );
2811 - $wgOut->setSubtitle( wfMsg( 'infosubtitle' ));
 2808+ $wgOut->setSubtitle( wfMsg( 'infosubtitle' ) );
28122809
2813 - # first, see if the page exists at all.
2814 - $exists = $page->getArticleId() != 0;
2815 - if( !$exists ) {
2816 - if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) {
2817 - $wgOut->addHTML(wfMsgWeirdKey ( $this->mTitle->getText() ) );
 2810+ if( !$this->mTitle->exists() ) {
 2811+ $wgOut->addHtml( '<div class="noarticletext">' );
 2812+ if( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) {
 2813+ // This doesn't quite make sense; the user is asking for
 2814+ // information about the _page_, not the message... -- RC
 2815+ $wgOut->addHtml( htmlspecialchars( wfMsgWeirdKey( $this->mTitle->getText() ) ) );
28182816 } else {
2819 - $wgOut->addHTML(wfMsg( $wgUser->isLoggedIn() ? 'noarticletext' : 'noarticletextanon' ) );
 2817+ $msg = $wgUser->isLoggedIn()
 2818+ ? 'noarticletext'
 2819+ : 'noarticletextanon';
 2820+ $wgOut->addHtml( wfMsgExt( $msg, 'parse' ) );
28202821 }
 2822+ $wgOut->addHtml( '</div>' );
28212823 } else {
28222824 $dbr = wfGetDB( DB_SLAVE );
28232825 $wl_clause = array(
Index: branches/liquidthreads/includes/AutoLoader.php
@@ -330,6 +330,7 @@
331331 'ApiQueryRevisions' => 'includes/api/ApiQueryRevisions.php',
332332 'ApiQuerySearch' => 'includes/api/ApiQuerySearch.php',
333333 'ApiQuerySiteinfo' => 'includes/api/ApiQuerySiteinfo.php',
 334+ 'ApiQueryUserInfo' => 'includes/api/ApiQueryUserInfo.php',
334335 'ApiQueryWatchlist' => 'includes/api/ApiQueryWatchlist.php',
335336 'ApiResult' => 'includes/api/ApiResult.php',
336337 );
Index: branches/liquidthreads/includes/AuthPlugin.php
@@ -219,9 +219,10 @@
220220 * forget the & on your function declaration.
221221 *
222222 * @param $user User object.
 223+ * @param $autocreate bool True if user is being autocreated on login
223224 * @public
224225 */
225 - function initUser( &$user ) {
 226+ function initUser( $user, $autocreate=false ) {
226227 # Override this to do something.
227228 }
228229
Index: branches/liquidthreads/includes/EditPage.php
@@ -325,57 +325,36 @@
326326 return;
327327 }
328328
329 - if ( ! $this->mArticle->getTitle()->userCan( 'edit' ) ) {
330 - wfDebug( "$fname: user can't edit\n" );
331 - $wgOut->readOnlyPage( $this->getContent(), true );
332 - wfProfileOut( $fname );
333 - return;
334 - }
335 - wfDebug( "$fname: Checking blocks\n" );
336 - if ( !$this->preview && !$this->diff && $wgUser->isBlockedFrom( $this->mArticle->getTitle(), !$this->save ) ) {
337 - # When previewing, don't check blocked state - will get caught at save time.
338 - # Also, check when starting edition is done against slave to improve performance.
339 - wfDebug( "$fname: user is blocked\n" );
340 - $this->blockedPage();
341 - wfProfileOut( $fname );
342 - return;
343 - }
344 - if ( !$wgUser->isAllowed('edit') ) {
345 - if ( $wgUser->isAnon() ) {
346 - wfDebug( "$fname: user must log in\n" );
347 - $this->userNotLoggedInPage();
348 - wfProfileOut( $fname );
349 - return;
350 - } else {
351 - wfDebug( "$fname: read-only page\n" );
352 - $wgOut->readOnlyPage( $this->getContent(), true );
353 - wfProfileOut( $fname );
354 - return;
 329+ $permErrors = $this->mArticle->getTitle()->getUserPermissionsErrors( 'edit', $wgUser);
 330+
 331+ # Ignore some permissions errors.
 332+ $remove = array();
 333+ foreach( $permErrors as $error ) {
 334+ if ($this->preview || $this->diff &&
 335+ ($error[0] == 'blockedtext' || $error[0] == 'autoblockedtext'))
 336+ {
 337+ // Don't worry about blocks when previewing/diffing
 338+ $remove[] = $error;
355339 }
 340+
 341+ if ($error[0] == 'readonlytext')
 342+ {
 343+ if ($this->edit)
 344+ $this->formtype = 'preview';
 345+ else if ($this->save || $this->preview || $this->diff)
 346+ $remove[] = $error;
 347+ }
356348 }
357 - if ($wgEmailConfirmToEdit && !$wgUser->isEmailConfirmed()) {
358 - wfDebug("$fname: user must confirm e-mail address\n");
359 - $this->userNotConfirmedPage();
360 - wfProfileOut($fname);
361 - return;
362 - }
363 - if ( !$this->mArticle->getTitle()->userCan( 'create' ) && !$this->mArticle->getTitle()->exists() ) {
364 - wfDebug( "$fname: no create permission\n" );
365 - $this->noCreatePermission();
 349+
 350+ # array_diff returns elements in $permErrors that are not in $remove.
 351+ $permErrors = array_diff( $permErrors, $remove );
 352+
 353+ if ($permErrors != array())
 354+ {
 355+ wfDebug( "$fname: User can't edit\n" );
 356+ $wgOut->readOnlyPage( $this->getContent(), true, $permErrors );
366357 wfProfileOut( $fname );
367358 return;
368 - }
369 - if ( wfReadOnly() ) {
370 - wfDebug( "$fname: read-only mode is engaged\n" );
371 - if( $this->save || $this->preview ) {
372 - $this->formtype = 'preview';
373 - } else if ( $this->diff ) {
374 - $this->formtype = 'diff';
375 - } else {
376 - $wgOut->readOnlyPage( $this->getContent() );
377 - wfProfileOut( $fname );
378 - return;
379 - }
380359 } else {
381360 if ( $this->save ) {
382361 $this->formtype = 'save';
Index: branches/liquidthreads/languages/messages/MessagesZh_cn.php
@@ -391,12 +391,15 @@
392392 'viewsource' => '源码',
393393 'viewsourcefor' => '对$1的源码',
394394 'protectedpagetext' => '该页面已被锁定以防止编辑。',
395 -'namespaceprotected' => "您并没有权限去编辑在'''$1'''名字空间内的页面。",
396395 'viewsourcetext' => '您可以查看并复制此页面的源码:',
397396 'protectedinterface' => '该页提供了软件的界面文本,它已被锁定以防止随意的修改。',
398397 'editinginterface' => "'''警告:''' 您正在编辑的页面是用于提供软件的界面文本。改变此页将影响其他用户的界面外观。",
399398 'sqlhidden' => '(SQL查询已隐藏)',
400 -'cascadeprotected' => '这个页面已经被保护,因为这个页面被以下已标注"联锁保护"的{{PLURAL:$1|一个|多个}}被保护页面包含:',
 399+'cascadeprotected' => "这个页面已经被保护,因为这个页面被以下已标注\"联锁保护\"的{{PLURAL:$1|一个|多个}}被保护页面包含:
 400+$2",
 401+'namespaceprotected' => "您并没有权限去编辑在'''$1'''名字空间内的页面。",
 402+'customcssjsprotected' => '您並無權限去編輯這個頁面,因為它包含了另一位用戶的個人設定。',
 403+'ns-specialprotected' => '在特殊名字空間中的頁面是不可以編輯的。',
401404
402405 # Login and logout pages
403406 'logouttitle' => '退出',
@@ -452,6 +455,7 @@
453456 'nouserspecified' => '你需要指定一个用户名。',
454457 'wrongpassword' => '您输入的密码错误,请再试一次。',
455458 'wrongpasswordempty' => '您没有输入密码,请重试!',
 459+'passwordtooshort' => '您的密码不正确或太短,不能少于$1个字元,而且必须跟用户名不同。',
456460 'mailmypassword' => '将新密码寄给我',
457461 'passwordremindertitle' => '{{SITENAME}}密码提醒',
458462 'passwordremindertext' => '有人(可能是您,来自IP地址$1)要求我们将新的{{SITENAME}} ($4) 的登录密码寄给您。用户"$2"的密码现在是"$3"。请立即登录并更改密码。如果是其他人发出了该请求,或者您已经记起了您的密码并不准备改变它,您可以忽略此消息并继续使用您的旧密码。',
@@ -525,8 +529,9 @@
526530
527531 这次查封是由$1所封的。当中的原因是''$2''。
528532
529 -这次查封的到期时间是:$6<br />
530 -对于被查封者:$7
 533+* 这次查封的开始时间是:$8
 534+* 这次查封的到期时间是:$6
 535+* 对于被查封者:$7
531536
532537 你可以联络$1或者其他的[[{{MediaWiki:grouppage-sysop}}|管理员]],讨论这次查封。
533538 除非你已经在你的[[Special:Preferences|帐号参数设置]]中设置了一个有效的电子邮件地址,否则你是不能使用「电邮这位用户」的功能。当设置定了一个有效的电子邮件地址后,这个功能是不会封锁的。
@@ -537,13 +542,16 @@
538543
539544 :''$2''
540545
541 -这次查封的到期时间是:$6
 546+* 这次查封的开始时间是:$8
 547+* 这次查封的到期时间是:$6
542548
543549 你可以联络$1或者其他的[[{{MediaWiki:grouppage-sysop}}|管理员]],讨论这次查封。
544550
545551 除非你已经在你的[[Special:Preferences|帐号参数设置]]中设置了一个有效的电子邮件地址,否则你是不能使用「电邮这位用户」的功能。当设置定了一个有效的电子邮件地址后,这个功能是不会封锁的。
546552
547 -您的查封ID是 $5。 请你在所有查询中注明这个查封ID。",
 553+您的查封ID是 #$5。 请你在所有查询中注明这个查封ID。",
 554+'blockedtext-concise' => '$7,是跟您的用户名或IP地址相同,已经被$1查封。当中的原因是$2。这次查封的结束时间是$6。你可以联络$1或者其他的管理员,讨论这次查封。除非你已经在你的帐户参数设置中设置了一个有效的电子邮件地址,否则你是不能使用「电邮这位用户」的功能。当设置了一个有效的电子邮件地址后,这个功能是不会封锁的。 您当前的IP地址是$3,而该查封ID是 #$5。 请您在所有查询中注明这地址及/或查封ID。',
 555+'autoblockedtext-concise' => '您的IP地址之前被一位之前曾经查封过的用户使用过。当中的查封是经由$1完成。原因是$2。这次查封的结束时间是$6。你可以联络$1或者其他的管理员,讨论这次查封。除非你已经在你的帐户参数设置中设置了一个有效的电子邮件地址,否则你是不能使用「电邮这位用户」的功能。当设置了一个有效的电子邮件地址后,这个功能是不会封锁的。 您当前的IP地址是$3,而该查封ID是 #$5。 请您在所有查询中注明这地址及/或查封ID。',
548556 'blockedoriginalsource' => "以下是'''$1'''的源码:",
549557 'blockededitsource' => "你对'''$1'''进行'''编辑'''的文字如下:",
550558 'whitelistedittitle' => '登录后才可编辑',
@@ -625,6 +633,9 @@
626634 'edittools' => '<!-- 此处的文本将被显示在以下编辑和上传表单中。 -->',
627635 'nocreatetitle' => '创建页面受限',
628636 'nocreatetext' => '此网站限制了创建新页面的功能。你可以返回并编辑已有的页面,或者[[Special:Userlogin|登录或创建新账户]]。',
 637+'nocreate-loggedin' => '您在这个wiki中并无权限去创建新页面。',
 638+'permissionserrors' => '权限错误',
 639+'permissionserrorstext' => '根据以下的{{PLURAL:$1|原因|原因}},您并无权限去做以下的动作:',
629640 'recreate-deleted-warn' => "'''警告: 你现在重新创建一个先前曾经删除过的页面。'''
630641
631642 你应该要考虑一下继续编辑这一个页面是否合适。
@@ -785,8 +796,8 @@
786797 'prefs-personal' => '用户资料',
787798 'prefs-rc' => '最近更改',
788799 'prefs-watchlist' => '监视列表',
789 -'prefs-watchlist-days' => '监视列表中显示记录的天数:',
790 -'prefs-watchlist-edits' => '在增强的监视列表中显示的编辑次数:',
 800+'prefs-watchlist-days' => '监视列表中显示记录的最长天数:',
 801+'prefs-watchlist-edits' => '在增强的监视列表中显示最多更改次数:',
791802 'prefs-misc' => '杂项',
792803 'saveprefs' => '保存参数设置',
793804 'resetprefs' => '重设参数',
@@ -1008,11 +1019,11 @@
10091020 # File reversion
10101021 'filerevert' => '恢复$1',
10111022 'filerevert-legend' => '恢复文件',
1012 -'filerevert-intro' => "<span class=\"plainlinks\">您现正在恢复'''[[Media:$1|$1]]'''到[于$2 $3的$4版本]。</span>",
 1023+'filerevert-intro' => '<span class="plainlinks">您现正在恢复\'\'\'[[Media:$1|$1]]\'\'\'到[于$2 $3的$4版本]。</span>',
10131024 'filerevert-comment' => '注解:',
10141025 'filerevert-defaultcomment' => '已经恢复到于$1 $2的版本',
10151026 'filerevert-submit' => '恢复',
1016 -'filerevert-success' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''已经恢复到[于$2 $3的$4版本]。</span>",
 1027+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已经恢复到[于$2 $3的$4版本]。</span>',
10171028 'filerevert-badversion' => '这个文件所提供的时间截记并无先前的本地版本。',
10181029
10191030 # MIME search
@@ -1345,44 +1356,44 @@
13461357 'restriction-level-all' => '任何级别',
13471358
13481359 # Undelete
1349 -'undelete' => '恢复被删页面',
1350 -'undeletepage' => '浏览及恢复被删页面',
1351 -'viewdeletedpage' => '查看被删页面',
1352 -'undeletepagetext' => '以下页面已经被删除,但依然在档案中并可以被恢复。
 1360+'undelete' => '恢复被删页面',
 1361+'undeletepage' => '浏览及恢复被删页面',
 1362+'viewdeletedpage' => '查看被删页面',
 1363+'undeletepagetext' => '以下页面已经被删除,但依然在档案中并可以被恢复。
13531364 档案库可能被定时清理。',
1354 -'undeleteextrahelp' => "恢复整个页面时,请清除所有复选框后点击 '''''恢复'''''。恢复特定版本时,请选择相应版本前的复选框后点击 '''''恢复'''''。点击 '''''重设''''' 将清除评论内容及所有复选框。",
1355 -'undeleterevisions' => '$1版本存档',
1356 -'undeletehistory' => '如果您恢复了该页面,所有版本都会被恢复到修订历史中。
 1365+'undeleteextrahelp' => "恢复整个页面时,请清除所有复选框后点击 '''''恢复'''''。恢复特定版本时,请选择相应版本前的复选框后点击 '''''恢复'''''。点击 '''''重设''''' 将清除评论内容及所有复选框。",
 1366+'undeleterevisions' => '$1版本存档',
 1367+'undeletehistory' => '如果您恢复了该页面,所有版本都会被恢复到修订历史中。
13571368 如果本页删除后有一个同名的新页面建立,
13581369 被恢复的版本将会称为较新的历史,而新页面的当前版本将无法被自动复原。',
1359 -'undeleterevdel' => '如果把最新修订部份删除,反删除便无法进行。如果遇到这种情况,您必须反选或反隐藏最新已删除的修订。对于您没有权限去查看的修订是无法恢复的。',
1360 -'undeletehistorynoadmin' => '这个文章已被删除。删除原因显示在下方编辑摘要中,被删除前的所有修订文本连同删除前贡献用户的细节信息只对管理员可见。',
1361 -'undelete-revision' => '删除$1时在$2的修订版本',
1362 -'undeleterevision-missing' => '无效或丢失的修订版本。您可能使用了错误的链接,或者此修订版本已经被从存档中恢复或移除。',
1363 -'undeletebtn' => '恢复',
1364 -'undeletereset' => '重设',
1365 -'undeletecomment' => '评论:',
1366 -'undeletedarticle' => '已恢复的"[[$1]]"',
1367 -'undeletedrevisions' => '$1个修订版本已恢复',
1368 -'undeletedrevisions-files' => '$1个修订版本和$2个文件已经被恢复',
1369 -'undeletedfiles' => '$1个文件已经被恢复',
1370 -'cannotundelete' => '恢复删除失败;可能已有其他人先行恢复了此页面。',
1371 -'undeletedpage' => "<big>'''$1已经被恢复'''</big>
 1370+'undeleterevdel' => '如果把最新修订部份删除,反删除便无法进行。如果遇到这种情况,您必须反选或反隐藏最新已删除的修订。对于您没有权限去查看的修订是无法恢复的。',
 1371+'undeletehistorynoadmin' => '这个文章已被删除。删除原因显示在下方编辑摘要中,被删除前的所有修订文本连同删除前贡献用户的细节信息只对管理员可见。',
 1372+'undelete-revision' => '删除$1时在$2的修订版本',
 1373+'undeleterevision-missing' => '无效或丢失的修订版本。您可能使用了错误的链接,或者此修订版本已经被从存档中恢复或移除。',
 1374+'undeletebtn' => '恢复',
 1375+'undeletereset' => '重设',
 1376+'undeletecomment' => '评论:',
 1377+'undeletedarticle' => '已恢复的"[[$1]]"',
 1378+'undeletedrevisions' => '$1个修订版本已恢复',
 1379+'undeletedrevisions-files' => '$1个修订版本和$2个文件已经被恢复',
 1380+'undeletedfiles' => '$1个文件已经被恢复',
 1381+'cannotundelete' => '恢复删除失败;可能已有其他人先行恢复了此页面。',
 1382+'undeletedpage' => "<big>'''$1已经被恢复'''</big>
13721383
13731384 参考[[Special:Log/delete|删除日志]]查看删除及恢复记录。",
1374 -'undelete-header' => '如要查询最近的记录请参阅[[Special:Log/delete|删除日志]]。',
1375 -'undelete-search-box' => '搜索已删除页面',
1376 -'undelete-search-prefix' => '显示页面自:',
1377 -'undelete-search-submit' => '搜索',
1378 -'undelete-no-results' => '删除记录里没有符合的结果。',
1379 -'undelete-filename-mismatch' => '不能删除带有时间截记的文件修订 $1: 文件不匹配',
1380 -'undelete-bad-store-key' => '不能删除带有时间截记的文件修订 $1: 文件于删除前遗失。',
1381 -'undelete-cleanup-error' => '删除无用的存档文件 "$1" 时发生错误。',
1382 -'undelete-missing-filearchive' => '由于文件存档 ID $1 不在数据库中,不能在文件存档中恢复。' .
1383 - '它可能已经反删除了。',
1384 -'undelete-error-short' => '反删除文件时发生错误: $1',
1385 -'undelete-error-long' => "当进行反删除文件时遇到错误:\n\n$1",
 1385+'undelete-header' => '如要查询最近的记录请参阅[[Special:Log/delete|删除日志]]。',
 1386+'undelete-search-box' => '搜索已删除页面',
 1387+'undelete-search-prefix' => '显示页面自:',
 1388+'undelete-search-submit' => '搜索',
 1389+'undelete-no-results' => '删除记录里没有符合的结果。',
 1390+'undelete-filename-mismatch' => '不能删除带有时间截记的文件修订 $1: 文件不匹配',
 1391+'undelete-bad-store-key' => '不能删除带有时间截记的文件修订 $1: 文件于删除前遗失。',
 1392+'undelete-cleanup-error' => '删除无用的存档文件 "$1" 时发生错误。',
 1393+'undelete-missing-filearchive' => '由于文件存档 ID $1 不在数据库中,不能在文件存档中恢复。它可能已经反删除了。',
 1394+'undelete-error-short' => '反删除文件时发生错误: $1',
 1395+'undelete-error-long' => '当进行反删除文件时遇到错误:
13861396
 1397+$1',
13871398
13881399 # Namespace form on various pages
13891400 'namespace' => '名字空间:',
@@ -1549,6 +1560,7 @@
15501561 'movenologin' => '未登录',
15511562 'movenologintext' => '您必须是一名登记用户并且[[Special:Userlogin|登录]]
15521563 后才可移动一个页面。',
 1564+'movenotallowed' => '您在这个wiki中度并没有权限去移动页面。',
15531565 'newtitle' => '新标题:',
15541566 'move-watch' => '监视此页',
15551567 'movepagebtn' => '移动页面',
@@ -1599,7 +1611,6 @@
16001612 'allmessagesdefault' => '默认的文字',
16011613 'allmessagescurrent' => '当前的文字',
16021614 'allmessagestext' => '这里列出所有可定制的系统界面。',
1603 -'allmessagesnotsupportedUI' => '您当前的界面语言<b>$1</b>在此站点不被[[Special:AllMessages|系统界面消息]]支持。',
16041615 'allmessagesnotsupportedDB' => '系统界面功能处于关闭状态 (wgUseDatabaseMessages)。',
16051616 'allmessagesfilter' => '按消息名称筛选:',
16061617 'allmessagesmodified' => '仅显示已修改的',
@@ -1775,13 +1786,15 @@
17761787 'patrol-log-diff' => 'r$1',
17771788
17781789 # Image deletion
1779 -'deletedrevision' => '已删除旧版本$1。',
1780 -'filedeleteerror-short' => "删除文件发生错误: $1",
1781 -'filedeleteerror-long' => "当删除文件时遇到错误:\n\n$1",
1782 -'filedelete-missing' => '因为文件 "$1" 不存在,所以它不可以删除。',
1783 -'filedelete-old-unregistered' => '所指定的文件修订 "$1" 在数据库中不存在。',
 1790+'deletedrevision' => '已删除旧版本$1。',
 1791+'filedeleteerror-short' => '删除文件发生错误: $1',
 1792+'filedeleteerror-long' => '当删除文件时遇到错误:
 1793+
 1794+$1',
 1795+'filedelete-missing' => '因为文件 "$1" 不存在,所以它不可以删除。',
 1796+'filedelete-old-unregistered' => '所指定的文件修订 "$1" 在数据库中不存在。',
17841797 'filedelete-current-unregistered' => '所指定的文件 "$1" 在数据库中不存在。',
1785 -'filedelete-archive-read-only' => '存档目录 "$1" 在网页服务器中不可写。',
 1798+'filedelete-archive-read-only' => '存档目录 "$1" 在网页服务器中不可写。',
17861799
17871800 # Browsing diffs
17881801 'previousdiff' => '←上一个',
@@ -1802,6 +1815,12 @@
18031816 'showhidebots' => '($1机器人)',
18041817 'noimages' => '无可查看图像。',
18051818
 1819+# Bad image list
 1820+'bad_image_list' => '请根据以下的格式去编写:
 1821+
 1822+只有列示项目(以 * 开头的项目)会被考虑。第一个连结一定要连接去坏图像中。
 1823+然后在同一行的连结会考虑作例外,即是幅图像可以在哪一篇文章中同时显示。',
 1824+
18061825 /*
18071826 Short names for language variants used for language conversion links.
18081827 To disable showing a particular link, set it to 'disable', e.g.
@@ -1814,8 +1833,6 @@
18151834 'variantname-zh-sg' => '新加坡简体',
18161835 'variantname-zh' => '不转换',
18171836
1818 -'passwordtooshort' => '您的密码不正确或太短,不能少于$1个字元,而且必须跟用户名不同。',
1819 -
18201837 # Metadata
18211838 'metadata' => '元数据',
18221839 'metadata-help' => '此文件中包含有扩展的信息。这些信息可能是由数码相机或扫描仪在创建或数字化过程中所添加的。
Index: branches/liquidthreads/languages/messages/MessagesKu_arab.php
@@ -8,4 +8,27 @@
99
1010 $fallback = 'ku-latn';
1111
 12+$skinNames = array(
 13+'standard' => 'كلاسیك',
 14+'nostalgia' => 'قاوه‌یی',
 15+'cologneblue' => 'شین',
 16+'monobook' => 'مۆنۆ',
 17+'myskin' => 'پێستی خۆم',
 18+'chick' => 'جوجه‌',
 19+'simple' => 'ساده‌'
 20+);
1221
 22+$messages = array(
 23+# User preference toggles
 24+'tog-underline' => 'هێڵ به‌ژێر به‌سه‌ره‌كاندا:',
 25+'tog-highlightbroken' => 'لابردنی به‌سته‌ری په‌ڕه‌ به‌تاڵه‌كان',
 26+'tog-justify' => 'ده‌ق وه‌كو كۆپله‌',
 27+'tog-hideminor' => 'گۆڕانكارییه‌ بچووكه‌كان بشاره‌وه‌',
 28+'tog-extendwatchlist' => 'لیسته‌ی چاودێری كردن - په‌ره‌پێدراو',
 29+'tog-usenewrc' => 'نیشاندان په‌ره‌پێدراو (پێویستی به‌ JavaScript)',
 30+'tog-numberheadings' => 'هێڵ به‌ژێر سه‌ردێره‌كان',
 31+'tog-showtoolbar' => 'ئامرازه‌كانی كاركردن نیشانبده‌',
 32+'tog-editondblclick' => 'په‌ڕه‌كان به‌ دوو كرته‌ بكه‌وه‌ بۆ كارتیاكردن (JavaScript)',
 33+'tog-editsection' => 'به‌سته‌ر بۆ كۆپله‌كان بۆ ده‌ستكاریی كردن نیشانبده‌',
 34+
 35+);
Index: branches/liquidthreads/languages/messages/MessagesHe.php
@@ -417,7 +417,7 @@
418418 'toc' => 'תוכן עניינים',
419419 'showtoc' => 'הראה',
420420 'hidetoc' => 'הסתר',
421 -'thisisdeleted' => 'שיחזור או הצגת $1?',
 421+'thisisdeleted' => 'שחזור או הצגת $1?',
422422 'viewdeleted' => 'הצגת $1?',
423423 'restorelink' => '{{plural:$1|גרסה מחוקה אחת|$1 גרסאות מחוקות}}',
424424 'feedlinks' => 'הזנה:',
@@ -526,8 +526,11 @@
527527 'protectedinterface' => 'דף זה הוא אחד מסדרת דפים המספקים הודעות מערכת לתוכנה, ונעול לעריכה למפעילי מערכת בלבד כדי למנוע השחתות של ההודעות.',
528528 'editinginterface' => "'''אזהרה:''' דף זה הוא אחד מסדרת דפים המספקים הודעות מערכת לתוכנה. שינויים בדף זה ישנו את הודעת המערכת לכל המשתמשים האחרים.",
529529 'sqlhidden' => '(שאילתת ה־SQL מוסתרת)',
530 -'cascadeprotected' => 'דף זה נעול לעריכה כיוון שהוא מוכלל {{plural:$1|בדף הבא, שמופעלת אצלו|בדפים הבאים, שמופעלת אצלם}} הגנה מדורגת:',
 530+'cascadeprotected' => 'דף זה נעול לעריכה כיוון שהוא מוכלל {{plural:$1|בדף הבא, שמופעלת אצלו|בדפים הבאים, שמופעלת אצלם}} הגנה מדורגת:
 531+$2',
531532 'namespaceprotected' => "אינכם מורשים לערוך דפים במרחב השם '''$1'''.",
 533+'customcssjsprotected' => 'אינכם מורשים לערוך דף זה, כיוון שהוא כולל את ההגדרות האישיות של משתמש אחר.',
 534+'ns-specialprotected' => 'לא ניתן לערוך דפים מיוחדים.',
532535
533536 # Login and logout pages
534537 'logouttitle' => 'יציאה מהחשבון',
@@ -582,6 +585,7 @@
583586 'nouserspecified' => 'עליכם לציין שם משתמש.',
584587 'wrongpassword' => 'הסיסמה שהקלדתם שגויה, אנא נסו שנית.',
585588 'wrongpasswordempty' => 'הסיסמה שהקלדתם ריקה. אנא נסו שנית.',
 589+'passwordtooshort' => 'סיסמתכם בלתי תקינה או קצרה מדי. עליה להיות מורכבת מ־$1 תווים לפחות ושונה משם המשתמש.',
586590 'mailmypassword' => 'שלחו לי סיסמה חדשה',
587591 'passwordremindertitle' => 'תזכורת סיסמה מ{{grammar:תחילית|{{SITENAME}}}}',
588592 'passwordremindertext' => 'מישהו (ככל הנראה אתם, מכתובת ה־IP מספר $1) ביקש שנשלח לכם סיסמה חדשה לכניסה לחשבון ב{{grammar:תחילית|{{SITENAME}}}} ($4). הסיסמה עבור המשתמש "$2" היא עתה "$3". עליכם להיכנס לאתר ולשנות את סיסמתכם בהקדם האפשרי. אם מישהו אחר ביקש סיסמה חדשה זו או אם נזכרתם בסיסמתכם ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמתכם הישנה.',
@@ -651,26 +655,32 @@
652656 'summary-preview' => 'תצוגה מקדימה של התקציר',
653657 'subject-preview' => 'תצוגה מקדימה של הנושא/הכותרת',
654658 'blockedtitle' => 'המשתמש חסום',
655 -'blockedtext' => "<big>'''שם המשתמש או כתובת ה־IP שלכם נחסמו.'''</big>
 659+'blockedtext' => '<big>\'\'\'שם המשתמש או כתובת ה־IP שלכם נחסמו.\'\'\'</big>
656660
657 -החסימה בוצעה על־ידי \$1. הסיבה שניתנה לכך היא '''\$2'''.
 661+החסימה בוצעה על־ידי $1. הסיבה שניתנה לכך היא \'\'\'$2\'\'\'.
658662
659 -פקיעת החסימה: \$6<br />
660 -החסימה שבוצעה: \$7
 663+* תחילת החסימה: $8
 664+* פקיעת החסימה: $6
 665+* החסימה שבוצעה: $7
661666
662 -באפשרותכם ליצור קשר עם \$1 או עם כל אחד מ[[{{ns:project}}:מפעיל מערכת|מפעילי המערכת]] האחרים כדי לדון על החסימה.
663 -אינכם יכולים להשתמש בתכונת \"שלחו דואר אלקטרוני למשתמש זה\" אם לא ציינתם כתובת דוא\"ל תקפה ב[[{{ns:special}}:Preferences|העדפות המשתמש שלכם]].
664 -כתובת ה־IP שלכם היא \$3, ומספר החסימה שלכם הוא #\$5. אנא ציינו אחת מעובדות אלה (או את שתיהן) בכל פנייה למפעילי המערכת.",
 667+באפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{ns:project}}:מפעיל מערכת|מפעילי המערכת]] האחרים כדי לדון על החסימה.
 668+אינכם יכולים להשתמש בתכונת "שלחו דואר אלקטרוני למשתמש זה" אם לא ציינתם כתובת דוא"ל תקפה ב[[{{ns:special}}:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא"ל.
 669+כתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5. אנא ציינו אחת מעובדות אלה (או את שתיהן) בכל פנייה למפעילי המערכת.',
665670 'autoblockedtext' => 'כתובת ה־IP שלכם נחסמה באופן אוטומטי כיוון שמשתמש אחר, שנחסם על־ידי $1, עשה בה שימוש.
666671 הסיבה שניתנה לחסימה היא:
667672
668673 :\'\'\'$2\'\'\'
669674
670 -פקיעת החסימה: $6
 675+* תחילת החסימה: $8
 676+* פקיעת החסימה: $6
671677
672678 באפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{ns:project}}:מפעיל מערכת|מפעילי המערכת]] האחרים כדי לדון על החסימה.
673 -אינכם יכולים להשתמש בתכונת "שלחו דואר אלקטרוני למשתמש זה" אם לא ציינתם כתובת דוא"ל תקפה ב[[{{ns:special}}:Preferences|העדפות המשתמש שלכם]].
 679+אינכם יכולים להשתמש בתכונת "שלחו דואר אלקטרוני למשתמש זה" אם לא ציינתם כתובת דוא"ל תקפה ב[[{{ns:special}}:Preferences|העדפות המשתמש שלכם]] שלכם]] או אם נחסמתם משליחת דוא\\"ל.
674680 מספר החסימה שלכם הוא #$5. אנא ציינו זאת בכל פנייה למפעילי המערכת.',
 681+'blockedtext-concise' => '$7, שמתאים לשם המשתמש או כתובת ה־IP שלכם, נחסם על־ידי $1. הסיבה שניתנה היא $2. החסימה תפקע ב־$6. כדי לדון על החסימה, באפשרותכם ליצור קשר עם $1, או עם מפעילי מערכת אחרים. אינכם יכולים להשתמש בתכונה "שלחו דואר אלקטרוני למשתמש זה" אם לא ציינתם כתובת דוא"ל תקפה ב[[{{ns:special}}:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא"ל.
 682+כתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5. אנא ציינו אחת מעובדות אלה (או את שתיהן) בכל פנייה למפעילי המערכת.',
 683+'autoblockedtext-concise' => 'כתובת ה־IP שלכם נחסמה בגלל שמשתמש שנחסם השתמש בה לאחרונה. החסימה בוצעה על־ידי $1. הסיבה שניתנה היא $2. החסימה תפקע ב־$6. כדי לדון על החסימה, באפשרותכם ליצור קשר עם $1, או עם מפעילי מערכת אחרים. אינכם יכולים להשתמש בתכונה "שלחו דואר אלקטרוני למשתמש זה" אם לא ציינתם כתובת דוא"ל תקפה ב[[{{ns:special}}:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא"ל.
 684+כתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5. אנא ציינו אחת מעובדות אלה (או את שתיהן) בכל פנייה למפעילי המערכת.',
675685 'blockedoriginalsource' => "טקסט המקור של '''$1''' מוצג למטה:",
676686 'blockededitsource' => "הטקסט של '''העריכות שלך''' לדף '''$1''' מוצג למטה:",
677687 'whitelistedittitle' => 'כניסה לחשבון נדרשת לעריכה',
@@ -754,6 +764,9 @@
755765 'edittools' => '<!-- הטקסט הנכתב כאן יוצג מתחת לטפסי עריכת דפים והעלאת קבצים, ולפיכך ניתן לכתוב להציג בו תווים קשים לכתיבה, קטעים מוכנים של טקסט ועוד. -->',
756766 'nocreatetitle' => 'יצירת הדפים הוגבלה',
757767 'nocreatetext' => 'אתר זה מגביל את האפשרות ליצור דפים חדשים. באפשרותכם לחזור אחורה ולערוך דף קיים, או [[{{ns:special}}:Userlogin|להיכנס לחשבון]].',
 768+'nocreate-loggedin' => 'אינכם מורשים ליצור דפים חדשים באתר זה.',
 769+'permissionserrors' => 'שגיאות הרשאה',
 770+'permissionserrorstext' => 'אינכם מורשים לבצע פעולה זו, {{PLURAL:$1|מהסיבה הבאה|מהסיבות הבאות}}:',
758771 'recreate-deleted-warn' => "'''אזהרה: אתם יוצרים דף שנמחק בעבר.'''
759772
760773 אנא שיקלו האם זה נכון להמשיך לערוך את הדף.
@@ -913,8 +926,8 @@
914927 'prefs-personal' => 'פרטי המשתמש',
915928 'prefs-rc' => 'שינויים אחרונים',
916929 'prefs-watchlist' => 'רשימת המעקב',
917 -'prefs-watchlist-days' => 'מספר הימים לתצוגה ברשימת המעקב:',
918 -'prefs-watchlist-edits' => 'מספר העריכות לתצוגה ברשימת המעקב המורחבת:',
 930+'prefs-watchlist-days' => 'מספר הימים המירבי שיוצגו ברשימת המעקב:',
 931+'prefs-watchlist-edits' => 'מספר העריכות המירבי שיוצגו ברשימת המעקב המורחבת:',
919932 'prefs-misc' => 'שונות',
920933 'saveprefs' => 'שמור העדפות',
921934 'resetprefs' => 'שחזר ברירת מחדל',
@@ -1666,6 +1679,7 @@
16671680 'movearticle' => 'העבר דף:',
16681681 'movenologin' => 'לא נכנסתם לאתר',
16691682 'movenologintext' => 'עליכם [[{{ns:special}}:Userlogin|להיכנס לחשבון]] כדי להעביר דפים.',
 1683+'movenotallowed' => 'אינכם מורשים להעביר דפים באתר זה.',
16701684 'newtitle' => 'לשם החדש:',
16711685 'move-watch' => 'מעקב אחרי דף זה',
16721686 'movepagebtn' => 'העבר דף',
@@ -1715,7 +1729,6 @@
17161730 'allmessagestext' => 'זוהי רשימת כל הודעות המערכת שבמרחב השם {{ns:mediawiki}}, המשמשים את ממשק האתר.
17171731
17181732 מפעילי המערכת יכולים לערוך את ההודעות בלחיצה על שם ההודעה.',
1719 -'allmessagesnotsupportedUI' => "שפת הממשק הנוכחית שלכם, '''$1''', אינה נתמכת על־ידי הדף באתר זה.",
17201733 'allmessagesnotsupportedDB' => 'לא ניתן להשתמש בדף זה כיוון ש־wgUseDatabseMessages מבוטל.',
17211734 'allmessagesfilter' => 'מסנן שמות ההודעות:',
17221735 'allmessagesmodified' => 'רק הודעות ששונו',
@@ -1923,8 +1936,12 @@
19241937 'showhidebots' => '($1 בוטים)',
19251938 'noimages' => 'אין תמונות.',
19261939
1927 -'passwordtooshort' => 'סיסמתכם בלתי תקינה או קצרה מדי. עליה להיות מורכבת מ־$1 תווים לפחות ושונה משם המשתמש.',
 1940+# Bad image list
 1941+'bad_image_list' => 'דרך הכתיבה בהודעה היא כמתואר להלן:
19281942
 1943+רק פריטי רשימה (שורות המתחילות עם *) נחשבים. הקישור הראשון בשורה חייב להיות קישור לתמונה שאין להציג.
 1944+כל הקישורים הבאים באותה השורה נחשבים לחריגים, כלומר לדפים שבהם ניתן להציג את התמונה.',
 1945+
19291946 # Metadata
19301947 'metadata' => 'מידע נוסף על התמונה',
19311948 'metadata-help' => 'קובץ זה מכיל מידע נוסף, שיש להניח שהגיע ממצלמה דיגיטלית או מסורק בו התמונה נוצרה או עברה דיגיטציה. אם הקובץ שונה ממצבו הראשוני, כמה מהנתונים להלן עלולים שלא לשקף באופן מלא את מצב התמונה החדש.',
Index: branches/liquidthreads/languages/messages/MessagesZh_yue.php
@@ -449,12 +449,15 @@
450450 'viewsource' => '睇吓原始碼',
451451 'viewsourcefor' => '$1嘅原始碼',
452452 'protectedpagetext' => '呢一頁已經鎖咗唔畀改。',
453 -'namespaceprotected' => "你並無許可權去編輯響'''$1'''空間名裏面嘅呢一版。",
454453 'viewsourcetext' => '你可以睇吓或者複製呢一頁嘅原始碼:',
455454 'protectedinterface' => '呢一頁提供軟件嘅介面文字,呢一頁已經鎖上以預防濫用。',
456455 'editinginterface' => "'''警告:'''你而家編輯緊嘅呢一個用嚟提供介面文字嘅頁面。響呢一頁嘅更改會影響到其他用戶使用中嘅介面外觀。",
457456 'sqlhidden' => '(SQL 查詢隱藏)',
458 -'cascadeprotected' => '呢一版已經保護咗唔能夠編輯,因為佢係響以下嘅{{PLURAL:$1|一|幾}}頁度包含咗,當中啟用咗"連串"保護選項來保護嗰一版:',
 457+'cascadeprotected' => '呢一版已經保護咗唔能夠編輯,因為佢係響以下嘅{{PLURAL:$1|一|幾}}頁度包含咗,當中啟用咗"連串"保護選項來保護嗰一版:
 458+$2',
 459+'namespaceprotected' => "你並無許可權去編輯響'''$1'''空間名裏面嘅呢一版。",
 460+'customcssjsprotected' => '你並無許可權去編輯呢一版,因為佢包含咗另一位用戶嘅個人設定。',
 461+'ns-specialprotected' => '響特別空間名嘅版係唔可以編輯嘅。',
459462
460463 # Login and logout pages
461464 'logouttitle' => '用戶登出',
@@ -510,6 +513,7 @@
511514 'nouserspecified' => '你需要指定一個用戶名。',
512515 'wrongpassword' => '密碼唔啱,麻煩你再試多次。',
513516 'wrongpasswordempty' => '你都未入密碼,唔該再試多次啦。',
 517+'passwordtooshort' => '你嘅密碼唔正確或者太短喇。佢最少要有$1個半形字元,同埋要同你嘅用戶名唔同。',
514518 'mailmypassword' => '寄返個密碼畀我',
515519 'passwordremindertitle' => '{{SITENAME}}嘅密碼提醒',
516520 'passwordremindertext' => '有人(可能係你,IP 位置 $1)
@@ -592,27 +596,33 @@
593597
594598 呢次封鎖係由$1所封嘅。當中嘅原因係''$2''。
595599
596 -呢次封鎖嘅到期時間係:$6<br />
597 -對於被封鎖者:$7
 600+* 呢次封鎖嘅開始時間係:$8
 601+* 呢次封鎖嘅到期時間係:$6
 602+* 對於被封鎖者:$7
598603
599604 你可以聯絡 $1 或者其他嘅[[{{MediaWiki:grouppage-sysop}}|管理員]],討論呢次封鎖。
600605 除非你已經響你嘅[[Special:Preferences|戶口喜好設定]]入面設定咗有效嘅電郵地址,
601606 否則你係唔可以用「電郵呢個用戶」嘅功能。當設定咗一個有效嘅電郵地址之後,呢個功能係唔會封鎖嘅。
602607
603 -你嘅 IP 位址係 $3 ,而個封鎖 ID 係 #$5。 請你喺所有查詢都註明呢個位址同埋/或者個封鎖 ID 。",
 608+你現時嘅 IP 位址係 $3 ,而個封鎖 ID 係 #$5。 請你喺所有查詢都註明呢個位址同埋/或者個封鎖 ID 。",
604609 'autoblockedtext' => "你嘅IP地址已經被自動封鎖,由於之前嘅另一位用戶係畀$1封咗。
605610 而封鎖嘅原因係:
606611
607612 :''$2''
608613
609 -呢次封鎖嘅到期時間係:$6
 614+* 呢次封鎖嘅開始時間係:$8
 615+* 呢次封鎖嘅到期時間係:$6
610616
611617 你可以聯絡 $1 或者其他嘅[[{{MediaWiki:grouppage-sysop}}|管理員]],討論呢次封鎖。
612618
613619 除非你已經響你嘅[[Special:Preferences|戶口喜好設定]]入面設定咗有效嘅電郵地址,
614620 否則你係唔可以用「電郵呢個用戶」嘅功能。當設定咗一個有效嘅電郵地址之後,呢個功能係唔會封鎖嘅。
615621
616 -你個封鎖 ID 係 $5。 請你喺所有查詢都註明呢個封鎖 ID 。",
 622+你個封鎖 ID 係 #$5。 請你喺所有查詢都註明呢個封鎖 ID 。",
 623+'blockedtext-concise' => '$7,係同你嘅用戶名或者IP地址相同嘅,已經俾$1封鎖咗。當中嘅原因係$2。呢次封鎖嘅結束時間係$6。要討論呢次封鎖,你可以聯絡$1,又或者其他嘅管理員。除非你已經響你嘅戶口喜好設定入面設定咗有效嘅電郵地址,
 624+否則你係唔可以用「電郵呢個用戶」嘅功能。當設定咗一個有效嘅電郵地址之後,呢個功能係唔會封鎖嘅。
 625+你現時嘅 IP 地址係 $3 ,而個封鎖 ID 係 #$5。 請你喺所有查詢都註明呢個位址同埋/或者個封鎖 ID 。',
 626+'autoblockedtext-concise' => '你嘅IP地址之前俾一位之前曾經封鎖過嘅用戶用過。當中嘅封鎖係經$1完成。原因係$2。呢次封鎖嘅結束時間係$6。要討論呢次封鎖,你可以聯絡$1,又或者其他嘅管理員。除非你已經響你嘅戶口喜好設定入面設定咗有效嘅電郵地址,否則你係唔可以用「電郵呢個用戶」嘅功能。當設定咗一個有效嘅電郵地址之後,呢個功能係唔會封鎖嘅。你現時嘅 IP 地址係 $3 ,而個封鎖 ID 係 #$5。 請你喺所有查詢都註明呢個位址同埋/或者個封鎖 ID 。',
617627 'blockedoriginalsource' => "有關'''$1'''嘅原始碼響下面列示:",
618628 'blockededitsource' => "有關'''你'''對'''$1'''嘅'''編輯'''文字響下面列示:",
619629 'whitelistedittitle' => '需要登入之後先至可以編輯',
@@ -695,6 +705,9 @@
696706 'nocreatetitle' => '頁面建立被限制',
697707 'nocreatetext' => '呢個網站已經限制咗起新版嘅能力。
698708 你可以番轉頭去編輯一啲已經存在嘅頁面,或者[[Special:Userlogin|登入或開個新戶口]]。',
 709+'nocreate-loggedin' => '你響呢個wiki度並無許可權去開新版。',
 710+'permissionserrors' => '權限錯誤',
 711+'permissionserrorstext' => '根據下面嘅{{PLURAL:$1|原因|原因}},你並無權限去做呢樣嘢:',
699712 'recreate-deleted-warn' => "'''警告: 你而家重開一版係先前曾經刪除過嘅。'''
700713
701714 你應該要考慮吓繼續編輯呢一版係唔係適合嘅。
@@ -861,8 +874,8 @@
862875 'prefs-personal' => '用戶簡介',
863876 'prefs-rc' => '最近更改',
864877 'prefs-watchlist' => '監視清單',
865 -'prefs-watchlist-days' => '監視清單嘅顯示日數:',
866 -'prefs-watchlist-edits' => '喺加強版監視清單度嘅顯示編輯數:',
 878+'prefs-watchlist-days' => '監視清單嘅最長顯示日數:',
 879+'prefs-watchlist-edits' => '喺加強版監視清單度嘅最多顯示更改數:',
867880 'prefs-misc' => '雜項',
868881 'saveprefs' => '儲存',
869882 'resetprefs' => '重設',
@@ -1081,11 +1094,11 @@
10821095 # File reversion
10831096 'filerevert' => '回復$1',
10841097 'filerevert-legend' => '回復檔案',
1085 -'filerevert-intro' => "<span class=\"plainlinks\">你而家回復緊'''[[Media:$1|$1]]'''到[響$2 $3嘅$4版本]。</span>",
 1098+'filerevert-intro' => '<span class="plainlinks">你而家回復緊\'\'\'[[Media:$1|$1]]\'\'\'到[響$2 $3嘅$4版本]。</span>',
10861099 'filerevert-comment' => '註解:',
10871100 'filerevert-defaultcomment' => '已經回復到響$1 $2嘅版本',
10881101 'filerevert-submit' => '回復',
1089 -'filerevert-success' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''已經回復到[響$2 $3嘅$4版本]。</span>",
 1102+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經回復到[響$2 $3嘅$4版本]。</span>',
10901103 'filerevert-badversion' => '呢個檔案所提供嘅時間截記並無之前嘅本地版本。',
10911104
10921105 # MIME search
@@ -1421,48 +1434,49 @@
14221435 'restriction-level-all' => '任何等級',
14231436
14241437 # Undelete
1425 -'undelete' => '去睇刪除咗嘅頁面',
1426 -'undeletepage' => '去睇同恢復刪除咗嘅頁面',
1427 -'viewdeletedpage' => '去睇被刪除咗嘅頁面',
1428 -'undeletepagetext' => '以下頁面已經刪除,但係重喺檔庫度可以恢復。
 1438+'undelete' => '去睇刪除咗嘅頁面',
 1439+'undeletepage' => '去睇同恢復刪除咗嘅頁面',
 1440+'viewdeletedpage' => '去睇被刪除咗嘅頁面',
 1441+'undeletepagetext' => '以下頁面已經刪除,但係重喺檔庫度可以恢復。
14291442 檔案庫可能會定時清理。',
1430 -'undeleteextrahelp' => "要恢復成個頁面,唔好剔任何嘅核選盒,再撳'''''恢復'''''。
 1443+'undeleteextrahelp' => "要恢復成個頁面,唔好剔任何嘅核選盒,再撳'''''恢復'''''。
14311444 要恢復已經選擇咗嘅修訂,將要恢復代表有關修訂嘅核選盒剔上,再撳'''''恢復'''''。撳'''''重設'''''會清除註解文字同埋全部嘅核選盒。",
1432 -'undeleterevisions' => '$1個修訂都已經存檔',
1433 -'undeletehistory' => '如果你恢復呢個頁面,佢嘅所有修改歷史都會恢復返到嗰篇頁面嘅歷史度。
 1445+'undeleterevisions' => '$1個修訂都已經存檔',
 1446+'undeletehistory' => '如果你恢復呢個頁面,佢嘅所有修改歷史都會恢復返到嗰篇頁面嘅歷史度。
14341447 如果喺佢刪除之後又新開咗同名嘅頁面,你恢復嘅修改歷史會顯示喺先前歷史度,
14351448 新頁面而家嘅修改唔會自動覆蓋咗去。同時請留意響個檔案修訂嘅限制會響恢復嗰陣遺失。',
1436 -'undeleterevdel' => '如果響最新修訂度部份刪除,噉反刪除就唔能夠進行。如果遇到呢種情況,你一定要反選或者反隱藏最新刪除咗嘅修訂。對於你冇權限去睇嘅修訂係唔能夠恢復嘅。',
1437 -'undeletehistorynoadmin' => '呢篇文已經刪咗。刪除嘅原因喺下面嘅摘要度,
 1449+'undeleterevdel' => '如果響最新修訂度部份刪除,噉反刪除就唔能夠進行。如果遇到呢種情況,你一定要反選或者反隱藏最新刪除咗嘅修訂。對於你冇權限去睇嘅修訂係唔能夠恢復嘅。',
 1450+'undeletehistorynoadmin' => '呢篇文已經刪咗。刪除嘅原因喺下面嘅摘要度,
14381451 連同重有刪除之前編輯過呢個頁面嘅用戶嘅詳細資料。
14391452 所刪除嘅版本嘅實際內容得管理員可以睇到。',
1440 -'undelete-revision' => '已經刪除咗由$2嘅修訂$1:',
1441 -'undeleterevision-missing' => '唔正確或者遺失咗修訂。你可能有一個壞連結,
 1453+'undelete-revision' => '已經刪除咗由$2嘅修訂$1:',
 1454+'undeleterevision-missing' => '唔正確或者遺失咗修訂。你可能有一個壞連結,
14421455 或者嗰個修訂已經響存檔度恢復咗或者刪除咗。',
1443 -'undeletebtn' => '恢復',
1444 -'undeletereset' => '重設',
1445 -'undeletecomment' => '註解:',
1446 -'undeletedarticle' => '已經恢復咗"[[$1]]"',
1447 -'undeletedrevisions' => '$1個修訂已經恢復',
1448 -'undeletedrevisions-files' => '$1個修訂同$2個檔案已經恢復',
1449 -'undeletedfiles' => '$1個檔案已經恢復',
1450 -'cannotundelete' => '反刪除失敗;可能有其他人已經反刪除嗰一頁。',
1451 -'undeletedpage' => "<big>'''$1已經成功恢復'''</big>
 1456+'undeletebtn' => '恢復',
 1457+'undeletereset' => '重設',
 1458+'undeletecomment' => '註解:',
 1459+'undeletedarticle' => '已經恢復咗"[[$1]]"',
 1460+'undeletedrevisions' => '$1個修訂已經恢復',
 1461+'undeletedrevisions-files' => '$1個修訂同$2個檔案已經恢復',
 1462+'undeletedfiles' => '$1個檔案已經恢復',
 1463+'cannotundelete' => '反刪除失敗;可能有其他人已經反刪除嗰一頁。',
 1464+'undeletedpage' => "<big>'''$1已經成功恢復'''</big>
14521465
14531466 最近嘅刪除同恢復記錄請睇[[Special:Log/delete]]。",
1454 -'undelete-header' => '睇吓[[Special:Log/delete|刪除日誌]]去睇之前刪除嘅頁頁。',
1455 -'undelete-search-box' => '搵刪除咗嘅頁面',
1456 -'undelete-search-prefix' => '顯示由以下開頭嘅頁面:',
1457 -'undelete-search-submit' => '搵嘢',
1458 -'undelete-no-results' => '響刪除存檔度搵唔到符合嘅頁面。',
1459 -'undelete-filename-mismatch' => '唔能夠刪除帶有時間截記嘅檔案修訂 $1: 檔案錯配',
1460 -'undelete-bad-store-key' => '唔能夠刪除帶有時間截記嘅檔案修訂 $1: 檔案響刪除之前唔見咗。',
1461 -'undelete-cleanup-error' => '刪除無用嘅歸檔檔案 "$1" 時出錯。',
1462 -'undelete-missing-filearchive' => '由於檔案歸檔 ID $1 唔響個數據庫度,唔能夠響個檔案歸檔恢復。' .
1463 - '佢可能已經反刪除咗。',
1464 -'undelete-error-short' => '反刪除檔案嗰陣出錯: $1',
1465 -'undelete-error-long' => "當反刪除緊個檔案嗰陣遇到錯誤:\n\n$1",
 1467+'undelete-header' => '睇吓[[Special:Log/delete|刪除日誌]]去睇之前刪除嘅頁頁。',
 1468+'undelete-search-box' => '搵刪除咗嘅頁面',
 1469+'undelete-search-prefix' => '顯示由以下開頭嘅頁面:',
 1470+'undelete-search-submit' => '搵嘢',
 1471+'undelete-no-results' => '響刪除存檔度搵唔到符合嘅頁面。',
 1472+'undelete-filename-mismatch' => '唔能夠刪除帶有時間截記嘅檔案修訂 $1: 檔案錯配',
 1473+'undelete-bad-store-key' => '唔能夠刪除帶有時間截記嘅檔案修訂 $1: 檔案響刪除之前唔見咗。',
 1474+'undelete-cleanup-error' => '刪除無用嘅歸檔檔案 "$1" 時出錯。',
 1475+'undelete-missing-filearchive' => '由於檔案歸檔 ID $1 唔響個數據庫度,唔能夠響個檔案歸檔恢復。佢可能已經反刪除咗。',
 1476+'undelete-error-short' => '反刪除檔案嗰陣出錯: $1',
 1477+'undelete-error-long' => '當反刪除緊個檔案嗰陣遇到錯誤:
14661478
 1479+$1',
 1480+
14671481 # Namespace form on various pages
14681482 'namespace' => '空間名:',
14691483 'invert' => '反選',
@@ -1624,6 +1638,7 @@
16251639 'movearticle' => '搬頁:',
16261640 'movenologin' => '未登入',
16271641 'movenologintext' => '你要係註冊用戶而且要[[Special:Userlogin|登入]]咗先可以搬頁',
 1642+'movenotallowed' => '你響呢個wiki度並無權限去搬版。',
16281643 'newtitle' => '到新標題:',
16291644 'move-watch' => '睇實呢一版',
16301645 'movepagebtn' => '搬頁',
@@ -1674,7 +1689,6 @@
16751690 'allmessagesdefault' => '預設文字',
16761691 'allmessagescurrent' => '現時文字',
16771692 'allmessagestext' => '以下係 MediaWiki 空間名入邊現有系統信息嘅清單。',
1678 -'allmessagesnotsupportedUI' => '呢個網站嘅{{ns:special}}:AllMessages唔支持你現時嘅介面語言<b>$1</b>。',
16791693 'allmessagesnotsupportedDB' => "唔可以用'''{{ns:special}}:AllMessages''',因為'''\$wgUseDatabaseMessages'''已經閂咗。",
16801694 'allmessagesfilter' => '信息名過濾(器):',
16811695 'allmessagesmodified' => '只顯示修改過嘅',
@@ -1850,13 +1864,15 @@
18511865 'patrol-log-diff' => 'r$1',
18521866
18531867 # Image deletion
1854 -'deletedrevision' => '刪除咗$1嘅舊有修訂。',
1855 -'filedeleteerror-short' => "刪除檔案出錯: $1",
1856 -'filedeleteerror-long' => "當刪除檔案嗰陣遇到錯誤:\n\n$1",
1857 -'filedelete-missing' => '因為個檔案 "$1" 唔存在,所以佢唔可以刪除。',
1858 -'filedelete-old-unregistered' => '所指定嘅檔案修訂 "$1" 響個數據庫度唔存在。',
 1868+'deletedrevision' => '刪除咗$1嘅舊有修訂。',
 1869+'filedeleteerror-short' => '刪除檔案出錯: $1',
 1870+'filedeleteerror-long' => '當刪除檔案嗰陣遇到錯誤:
 1871+
 1872+$1',
 1873+'filedelete-missing' => '因為個檔案 "$1" 唔存在,所以佢唔可以刪除。',
 1874+'filedelete-old-unregistered' => '所指定嘅檔案修訂 "$1" 響個數據庫度唔存在。',
18591875 'filedelete-current-unregistered' => '所指定嘅檔案 "$1" 響個數據庫度唔存在。',
1860 -'filedelete-archive-read-only' => '個歸檔目錄 "$1" 響網頁伺服器度寫唔到。',
 1876+'filedelete-archive-read-only' => '個歸檔目錄 "$1" 響網頁伺服器度寫唔到。',
18611877
18621878 # Browsing diffs
18631879 'previousdiff' => '← 上一個差異',
@@ -1877,6 +1893,12 @@
18781894 'showhidebots' => '($1 機械人)',
18791895 'noimages' => '冇嘢去睇。',
18801896
 1897+# Bad image list
 1898+'bad_image_list' => '請根據下面嘅格式去寫:
 1899+
 1900+只有列示項目(以 * 開頭嘅項目)會考慮。第一個連結一定要連去幅壞圖度。
 1901+之後響同一行嘅連結會考慮做例外,即係幅圖可以響邊篇文度同時顯示。',
 1902+
18811903 /*
18821904 Short names for language variants used for language conversion links.
18831905 To disable showing a particular link, set it to 'disable', e.g.
@@ -1907,8 +1929,6 @@
19081930 'variantname-ku-latn' => '庫爾德拉丁文',
19091931 'variantname-ku' => '無變換',
19101932
1911 -'passwordtooshort' => '你嘅密碼唔正確或者太短喇。佢最少要有$1個半形字元,同埋要同你嘅用戶名唔同。',
1912 -
19131933 # Metadata
19141934 'metadata' => 'Metadata',
19151935 'metadata-help' => '呢個檔案有額外嘅資料。佢應該係數碼相機或者掃描器整出來嘅。如果佢整咗之後畀人改過,裏面嘅資料未必同改過之後相符。',
Index: branches/liquidthreads/languages/messages/MessagesTh.php
@@ -137,9 +137,10 @@
138138 'category_header' => 'เนื้อหาในหมวดหมู่ "$1"',
139139 'subcategories' => 'หมวดหมู่ย่อย',
140140 'category-media-header' => 'สื่อในหมวดหมู่ "$1"',
 141+'category-empty' => "''หมวดหมู่นี้ว่าง ไม่มีบทความใดอยู่''",
141142
142 -'mainpagetext' => "<big>'''ซอฟต์แวร์มีเดียได้ถูกติดตั้งเรียบร้อย'''</big>",
143 -'mainpagedocfooter' => 'ปรึกษา[http://meta.wikimedia.org/wiki/Help:Contents คู่มือการใช้งาน] สำหรับข้อมูลการใช้งานซอฟต์แวร์วิกิ.
 143+'mainpagetext' => "<big>'''ซอฟต์แวร์มีเดียวิกิได้ถูกติดตั้งเรียบร้อย'''</big>",
 144+'mainpagedocfooter' => 'ศึกษา[http://meta.wikimedia.org/wiki/Help:Contents คู่มือการใช้งาน] สำหรับเริ่มต้นใช้งานซอฟต์แวร์วิกิ
144145
145146 == เริ่มต้น ==
146147
@@ -323,10 +324,13 @@
324325 ให้ติดต่อผู้ดูแลระบบ และจดรายละเอียดเกี่ยวกับยูอาร์แอลนั้น',
325326 'readonly_lag' => 'ฐานข้อมูลถูกล็อกอัตโนมัติขณะที่เซิร์ฟเวอร์ฐานข้อมูลรองกำลังปรับปรุงตามฐานข้อมูลหลัก',
326327 'internalerror' => 'เกิดความผิดพลาดภายใน',
 328+'internalerror_info' => 'เกิดความผิดพลาดภายใน: $1',
327329 'filecopyerror' => 'ไม่สามารถคัดลอกไฟล์ "$1" ไปที่ "$2"',
328330 'filerenameerror' => 'ไม่สามารถเปลี่ยนชื่อไฟล์ "$1" เป็น "$2"',
329331 'filedeleteerror' => 'ไม่สามารถลบไฟล์ "$1"',
 332+'directorycreateerror' => 'ไม่สามารถสร้างไดเรกทอรี "$1"',
330333 'filenotfound' => 'ไม่พบไฟล์ "$1"',
 334+'fileexistserror' => 'ไม่สามารถเขียนไฟล์ "$1"ได้: มีไฟล์แล้ว',
331335 'unexpected' => 'เกิดค่าที่ไม่คาด: "$1"="$2"',
332336 'formerror' => 'ปัญหา: ไม่สามารถส่งฟอร์มได้',
333337 'badarticleerror' => 'การกระทำนี้ไม่สามารถดำเนินการในหน้านี้ได้',
@@ -337,15 +341,18 @@
338342 'perfcached' => 'ข้อมูลต่อไปนี้เป็นแคชและอาจจะไม่ใช่ข้อมูลล่าสุด',
339343 'perfcachedts' => 'ข้อมูลต่อไปนี้ถูกแคชและปรับปรุงล่าสุดเมื่อ $1',
340344 'querypage-no-updates' => 'ขณะนี้การปรับปรุงหน้านี้ถูกระงับ ข้อมูลในที่นี่จะไม่รีเฟรชเป็นข้อมูลปัจจุบัน',
 345+'wrong_wfQuery_params' => 'พารามิเตอร์ไม่ถูกต้อง สำหรับ wfQuery()<br />
 346+ฟังก์ชัน: $1<br />
 347+คิวรี: $2',
341348 'viewsource' => 'ดูโค้ด',
342349 'viewsourcefor' => 'สำหรับ $1',
343350 'protectedpagetext' => 'หน้านี้ถูกล็อกป้องกันการแก้ไข',
344 -'namespaceprotected' => "คุณไม่มีสิทธิในการแก้ไขหน้าในส่วนเนมสเปซชื่อ '''$1'''",
345351 'viewsourcetext' => 'โค้ดหน้านี้าสามารถดูและนำไปคัดลอกได้:',
346352 'protectedinterface' => 'หน้านี้เป็นข้อความที่ใช้แสดงหน้าตาของซอฟต์แวร์ ถูกล็อกห้ามแก้ไขเพื่อป้องกันการก่อกวน',
347353 'editinginterface' => "'''คำเตือน:''' คุณกำลังแก้ไขข้อความที่เป็นส่วนหน้าตาของซอฟต์แวร์ การแก้ไขหน้านี้จะมีผลต่อผู้ใช้ทุกคน",
348354 'sqlhidden' => '(SQL query hidden)',
349355 'cascadeprotected' => 'หน้านี้ถูกห้ามแก้ไขเนื่องจากมันเป็นส่วนหนึ่งหน้าต่อไปนี้ $1 ซึ่งถูกป้องกันตามการตั้งค่า แคสเคด ที่เปิดใช้งาน',
 356+'namespaceprotected' => "คุณไม่มีสิทธิในการแก้ไขหน้าในส่วนเนมสเปซชื่อ '''$1'''",
350357
351358 # Login and logout pages
352359 'logouttitle' => 'ผู้ใช้งานล็อกเอาต์',
@@ -371,7 +378,7 @@
372379 'userlogout' => 'ล็อกเอาต์',
373380 'notloggedin' => 'ไม่ได้ล็อกอิน',
374381 'nologin' => 'ล็อกอินด้านล่างหรือ $1',
375 -'nologinlink' => 'สร้างบัญชีผู้ใ้ช้',
 382+'nologinlink' => 'สร้างบัญชีผู้ใช้',
376383 'createaccount' => 'สร้างบัญชีผู้ใช้',
377384 'gotaccount' => 'มีบัญชีผู้ใช้แล้วหรือไม่ $1',
378385 'gotaccountlink' => 'ล็อกอิน',
@@ -401,6 +408,7 @@
402409 'nouserspecified' => 'คุณต้องระบุชื่อผู้ใช้',
403410 'wrongpassword' => 'รหัสผ่านที่ใส่ไม่ถูกต้อง กรุณาลองอีกครั้ง',
404411 'wrongpasswordempty' => 'รหัสผ่านไม่ได้ใส่ กรุณาลองอีกครั้ง',
 412+'passwordtooshort' => 'รหัสผ่านไม่ถูกต้องหรือสั้นเกินไป โดยต้องมีอย่างน้อย $1 ตัวอักษรและแตกต่างจากชื่อผู้ใช้',
405413 'mailmypassword' => 'ลืมรหัส ส่งให้ใหม่ทางอีเมล',
406414 'passwordremindertitle' => 'คำบอกรหัสผ่านจาก {{SITENAME}}',
407415 'passwordremindertext' => 'ใครบางคน (ซึ่งอาจจะเป็นคุณจากหมายเลขไอพี $1)
@@ -481,7 +489,7 @@
482490 การบล็อกหมดอายุเมื่อ: $6<br />
483491 ผู้ถูกบล็อก: $7
484492
485 -สามารถติดต่อ $1 หรือ [[{{MediaWiki:grouppage-sysop}}|ผู้ดูแลระบบ]]คนอื่นเพื่อหารือเกี่ยวกับการบล็อกนี้ หรือสามารถที่่จะอีเมลผ่านระบบวิกิด้วยคำสั่ง 'อีเมลหาผู้ใช้นี้'
 493+สามารถติดต่อ $1 หรือ [[{{MediaWiki:grouppage-sysop}}|ผู้ดูแลระบบ]]คนอื่นเพื่อหารือเกี่ยวกับการบล็อกนี้ หรือสามารถที่จะอีเมลผ่านระบบวิกิด้วยคำสั่ง 'อีเมลหาผู้ใช้นี้'
486494 (ถ้าคุณได้ตั้งค่ารองรับการใช้คำสั่งพิเศษผ่านทางอีเมลในส่วน [[Special:Preferences|การตั้งค่าผู้ใช้]])
487495 หมายเลขไอพีปัจจุบันของคุณคือ $3 และรหัสการบล็อกคือ #$5 กรุณาระบุหมายเลขเหล่านี้ในการติดต่อผู้ดูแล",
488496 'autoblockedtext' => 'หมายเลขไอพีของคุณถูกบล็อกอัตโนมัติเนื่องจากถูกใช้งานโดยผู้อื่น ซึ่งถูกบล็อกก่อนหน้าโดย $1 โดยสาเหตุที่ว่า:
@@ -492,7 +500,7 @@
493501
494502 คุณอาจติดต่อ $1 หรือ [[{{MediaWiki:grouppage-sysop}}|ผู้ดูแลระบบ]]คนอื่นเพื่อหารือเกี่ยวกับการบล็อกนี้
495503
496 -หรือสามารถที่่จะอีเมลผ่านระบบวิกิด้วยคำสั่ง "อีเมลหาผู้ใช้นี้"
 504+หรือสามารถที่จะอีเมลผ่านระบบวิกิด้วยคำสั่ง "อีเมลหาผู้ใช้นี้"
497505 (ถ้าคุณได้ตั้งค่ารองรับการใช้คำสั่งพิเศษผ่านทางอีเมลในส่วน [[Special:Preferences|การตั้งค่าผู้ใช้]])
498506
499507 หมายเลขไอพีปัจจุบันของคุณคือ $3 และรหัสการบล็อกคือ #$5 กรุณาระบุหมายเลขเหล่านี้ในการติดต่อผู้ดูแล',
@@ -532,13 +540,13 @@
533541 'note' => '<strong>คำแนะนำ:</strong>',
534542 'previewnote' => '<strong>นี้เป็นส่วนแสดงผลเท่านั้น การเปลี่ยนแปลงยังไม่ได้ถูกบันทึก!</strong>',
535543 'previewconflict' => 'การแสดงผลส่วนนี้เป็นตัวอย่างของการแก้ไขด้านบน ถ้ากดบันทึกการแสดงผลจะแสดงในลักษณะนี้ทันที',
536 -'session_fail_preview' => '<strong>เสียใจด้วย! ไม่สามารถดำเนินการแก้ไขต่อได้เนื่องจากการสูญหายของการเชื่อมต่อในช่วงการแก้ไข
537 -ให้ทดลองแกไ้ขอีกครั้งหนึ่ง ถ้ายังไม่สามารถทำได้ให้ลองล็อกเอาต์และล็อกอินกลับมาอีกครั้ง</strong>',
 544+'session_fail_preview' => '<strong>เสียใจด้วย! ไม่สามารถดำเนินการแก้ไขต่อได้เนื่องจากการเชื่อมต่อกับอินเทอร์เน็ตหรือทางระบบขาดหายในระหว่างการแก้ไข
 545+ให้ทดลองแก้ไขอีกครั้งหนึ่ง ถ้ายังไม่สามารถทำได้ให้ลองล็อกเอาต์และล็อกอินกลับมาอีกครั้ง</strong>',
538546 'session_fail_preview_html' => "<strong>เสียใจด้วย! ไม่สามารถดำเนินการแก้ไขต่อได้เนื่องจากการสูญหายของการเชื่อมต่อในช่วงการแก้ไข</strong>
539547
540548 ''เนื่องจากวิกินี้ใช้รูปแบบเอชทีเอ็มแอลเปล่า จะไม่มีการแสดงผลเพื่อป้องกันการขัดข้องระหว่างจาวาสคริปต์''
541549
542 -<strong>ถ้าการแก้ไขครั้งนี้ถูกต้อง ให้ทดลองแกไ้ขอีกครั้งหนึ่ง ถ้ายังไม่สามารถทำได้ให้ลองล็อกเอาต์และล็อกอินกลับมาอีกครั้ง</strong>",
 550+<strong>ถ้าการแก้ไขครั้งนี้ถูกต้อง ให้ทดลองแก้ไขอีกครั้งหนึ่ง ถ้ายังไม่สามารถทำได้ให้ลองล็อกเอาต์และล็อกอินกลับมาอีกครั้ง</strong>",
543551 'token_suffix_mismatch' => '<strong>การแก้ไขของคุณได้ถูกปฏิเสธเนื่องจากไคลเอนต์ที่คุณใช้อยู่ได้ขัดขวางรูปแบบของเครื่องหมายวรรคตอนในการแก้ไข
544552 ระบบไม่รับการแก้ไขของคุณเพื่อป้องกันความขัดข้องของข้อมูล ปัญหานี้มักจะเกิดขึ้นถ้าใช้งานบริการพรอกซีซ่อนสำหรับผู้ไม่ประสงค์ออกนาม</strong>',
545553 'importing' => 'กำลังนำเข้า $1',
@@ -700,7 +708,7 @@
701709 'viewprevnext' => 'ดู ($1) ($2) ($3)',
702710 'showingresults' => "แสดง $1 รายการ เริ่มต้นจากรายการที่ '''$2'''",
703711 'showingresultsnum' => "แสดง $3 รายการ เริ่มต้นจากรายการที่ '''$2'''",
704 -'nonefound' => "'''คำแนะนำ''': ค้นหาไม่พบเนื่องจากค้นหาจากคำศัพท์ทั่วไป เช่น \"คุณ\" and \"จาก\" ซึ่งไม่ได้ถูกเก็บไว้ในดันชีคำค้นหา",
 712+'nonefound' => "'''คำแนะนำ''': ค้นหาไม่พบอาจเนื่องจาก การค้นหาจากคำศัพท์ทั่วไป เช่นคำว่า \"ที่\" and \"ของ\" ไม่ได้ถูกเก็บไว้ในดัชนีคำค้นหา",
705713 'powersearch' => 'ค้นหา',
706714 'powersearchtext' => 'ค้นหาในเนมสเปซ:<br />$1<br />$2 แสดงหน้าเปลี่ยนทาง<br />ค้นหาคำ $3 $9',
707715 'searchdisabled' => 'งดระบบการค้นหาใน {{SITENAME}} อาจจะลองค้นหาในกูเกิลหรือเซิร์ชเอนจินอื่น',
@@ -908,6 +916,7 @@
909917
910918 'license' => 'ลิขสิทธิ์',
911919 'nolicense' => 'ไม่ได้เลือก',
 920+'license-nopreview' => '(ไม่สามารถแสดงผลได้)',
912921 'upload_source_url' => ' (ค่าถูกต้อง ยูอาร์แอลที่ใช้งานได้)',
913922 'upload_source_file' => ' (ไฟล์จากคอมพิวเตอร์คุณ)',
914923
@@ -916,7 +925,7 @@
917926 'imagelisttext' => "รายชื่อไฟล์ '''$1''' รายการ เรียงตาม$2",
918927 'imagelistforuser' => 'แสดงเฉพาะภาพที่อัปโหลดโดย $1',
919928 'getimagelist' => 'รับค่ารายชื่อไฟล์',
920 -'ilsubmit' => 'ค้่นหา',
 929+'ilsubmit' => 'ค้นหา',
921930 'showlast' => 'แสดงไฟล์ $1 รายการเรียงตาม$2',
922931 'byname' => 'ชื่อ',
923932 'bydate' => 'วันที่',
@@ -924,13 +933,17 @@
925934 'imgdelete' => 'ลบ',
926935 'imgdesc' => 'อธิบาย',
927936 'imgfile' => 'ไฟล์',
928 -'imglegend' => 'คำอธิบาย: (อธิบาย) = แสดง/ซ่อน คำอธิบายไฟล์',
929 -'imghistory' => 'ประวัติไฟล์',
930 -'revertimg' => 'ย้อน',
931 -'deleteimg' => 'ลบ',
932 -'deleteimgcompletely' => 'ลบทุกรุ่นของไฟล์นี้',
933 -'imghistlegend' => 'คำอธิบาย: (ป) = ไฟล์ปัจจุบัน (ลบ) = ลบรุ่นเก่าของไฟล์นี้ (ย้อน) = ย้อนกลับไปเป็นรุ่นเก่า
934 -<br /><i>กดวันที่เพื่อดูไฟล์ในรุ่น ณ วันนั้น</i>',
 937+'filehist' => 'ประวัติไฟล์',
 938+'filehist-help' => 'กดเลือก วัน/เวลา เพื่อดูไฟล์ที่แสดงในวันนั้น',
 939+'filehist-deleteall' => 'ลบทั้งหมด',
 940+'filehist-deleteone' => 'ลบตรงนี้',
 941+'filehist-revert' => 'ย้อน',
 942+'filehist-current' => 'ปัจจุบัน',
 943+'filehist-datetime' => 'วันที่/เวลา',
 944+'filehist-user' => 'ผู้ใช้',
 945+'filehist-dimensions' => 'ขนาด',
 946+'filehist-filesize' => 'ขนาดไฟล์',
 947+'filehist-comment' => 'ความเห็น',
935948 'imagelinks' => 'หน้าที่ใช้ภาพนี้',
936949 'linkstoimage' => 'หน้าที่ใช้ภาพนี้:',
937950 'nolinkstoimage' => 'ไม่มีหน้าที่ใช้ภาพนี้',
@@ -947,6 +960,16 @@
948961 'imagelist_description' => 'คำอธิบารย',
949962 'imagelist_search_for' => 'ค้นหาชื่อภาพ:',
950963
 964+# File reversion
 965+'filerevert' => 'ย้อน $1',
 966+'filerevert-legend' => 'ย้อนไฟล์กลับ',
 967+'filerevert-intro' => '<span class="plainlinks">คุณกำลังย้อนไฟล์ \'\'\'[[Media:$1|$1]]\'\'\' ไปยัง [รุ่น $4 วันที่ $2, $3]</span>',
 968+'filerevert-comment' => 'ความเห็น:',
 969+'filerevert-defaultcomment' => 'ย้อนไปรุ่น $1, $2',
 970+'filerevert-submit' => 'ย้อน',
 971+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\' ถูกย้อนไปยัง [รุ่น $4 วันที่ $2, $3]</span>',
 972+'filerevert-badversion' => 'ไม่มีรุ่นก่อนหน้าของไฟล์นี้ในเวลาที่กำหนดไว้',
 973+
951974 # MIME search
952975 'mimesearch' => 'ค้นหาตามชนิดไมม์',
953976 'mimesearch-summary' => 'หน้านี้แสดงไฟล์ตามการแบ่งของชนิดไมม์ (MIME) ของแต่ละไฟล์ ใส่ค่า: contenttype/subtype เช่น <tt>image/jpeg</tt>.',
@@ -1212,7 +1235,6 @@
12131236 'deletionlog' => 'บันทึกการลบ',
12141237 'reverted' => 'ย้อนไปรุ่นก่อนหน้า',
12151238 'deletecomment' => 'สาเหตุในการลบ',
1216 -'imagereverted' => 'ย้อนกลับไปรุ่นก่อนหน้าสำเร็จ',
12171239 'rollback' => 'ย้อนการแก้ไข',
12181240 'rollback_short' => 'ย้อน',
12191241 'rollbacklink' => 'ย้อน',
@@ -1266,34 +1288,42 @@
12671289 'restriction-level-all' => 'ระดับ',
12681290
12691291 # Undelete
1270 -'undelete' => 'หน้าที่ถูกลบ',
1271 -'undeletepage' => 'ดูและเรียกคืนหน้าที่ถูกลบ',
1272 -'viewdeletedpage' => 'หน้าที่ถูกลบ',
1273 -'undeletepagetext' => 'หน้าต่อไปนี้ถูกลบไปแต่ยังคงอยู่ในกรุที่สามารถเรียกคืนได้ (กรุข้อมูลอาจจะถูกลบเป็นระยะ)',
1274 -'undeleteextrahelp' => "ถ้าต้องการเรียกคืนทั้งหมด ให้กดปุ่ม '''''เรียกคืน'''''โดยไม่ต้องเลือกช่องใดช่องหนึ่ง ถ้าต้องการเรียกคืนประวัติเฉพาะส่วนใดส่วนหนึ่งให้เลือกเฉพาะส่วนที่ต้องการ แล้วกด'''''เรียกคืน''''' ถ้ากด '''''ตั้งค่าใหม่''''' จะยกเลิกการเลือกใหม่",
1275 -'undeleterevisions' => '$1 รุ่นการแก้ไขถูกเก็บไว้',
1276 -'undeletehistory' => 'ถ้าเรียกคืนหน้าใด ประวัติการแก้ไขจะถูกเรียกคืนกลับมาหมด ซึ่งถ้ามีหน้าใหม่ถูกสร้างคืนหลังจากนั้น ประวัติหน้าจะถูกเรียกมารวม ซึ่งประวัติหน้าจะไม่ถูกแทนที่',
1277 -'undeleterevdel' => 'จะเรียกคืนไม่ได้ถ้ารุ่นในส่วนที่ใหม่ถูกลบไปบางส่วน ถ้าเกิดขึ้นในกรณีนี้ ต้องกดแสดงในส่วนใหม่ก่อน',
1278 -'undeletehistorynoadmin' => 'หน้านี้ถูกลบก่อนหน้านี้ โดยสาเหตุการลบและรายชื่อผู้ร่วมแก้ไขก่อนหน้าแสดงผลด้านล่าง สำหรับข้อมูลที่ถูกลบจะดูได้เฉพาะผู้ดูแลระบบ',
1279 -'undelete-revision' => 'รุ่นที่ถูกลบของ $1 จาก $2:',
1280 -'undeleterevision-missing' => 'รุ่นที่ต้องการดูไม่มี ข้อมูลอาจจะโดนลบ',
1281 -'undeletebtn' => 'เรียกคืน',
1282 -'undeletereset' => 'ตั้งค่าใหม่',
1283 -'undeletecomment' => 'ความเห็น:',
1284 -'undeletedarticle' => 'เรียกคืน "[[$1]]"',
1285 -'undeletedrevisions' => '$1 รุ่นการแก้ไขถูกเรียกคืน',
1286 -'undeletedrevisions-files' => '$1 รุ่นการแก้ไข และ $2 ไฟล์ถูกเรียกคืน',
1287 -'undeletedfiles' => '$1 ไฟล์ถูกเรียกคืน',
1288 -'cannotundelete' => 'เรียกคืนไม่สำเร็จ อาจมีใครบางคนเรียกคืนหน้านั้นแล้ว',
1289 -'undeletedpage' => "<big>'''$1 ถูกเรียกคืน'''</big>
 1292+'undelete' => 'หน้าที่ถูกลบ',
 1293+'undeletepage' => 'ดูและเรียกคืนหน้าที่ถูกลบ',
 1294+'viewdeletedpage' => 'หน้าที่ถูกลบ',
 1295+'undeletepagetext' => 'หน้าต่อไปนี้ถูกลบไปแต่ยังคงอยู่ในกรุที่สามารถเรียกคืนได้ (กรุข้อมูลอาจจะถูกลบเป็นระยะ)',
 1296+'undeleteextrahelp' => "ถ้าต้องการเรียกคืนทั้งหมด ให้กดปุ่ม '''''เรียกคืน'''''โดยไม่ต้องเลือกช่องใดช่องหนึ่ง ถ้าต้องการเรียกคืนประวัติเฉพาะส่วนใดส่วนหนึ่งให้เลือกเฉพาะส่วนที่ต้องการ แล้วกด'''''เรียกคืน''''' ถ้ากด '''''ตั้งค่าใหม่''''' จะยกเลิกการเลือกใหม่",
 1297+'undeleterevisions' => '$1 รุ่นการแก้ไขถูกเก็บไว้',
 1298+'undeletehistory' => 'ถ้าเรียกคืนหน้าใด ประวัติการแก้ไขจะถูกเรียกคืนกลับมาหมด ซึ่งถ้ามีหน้าใหม่ถูกสร้างคืนหลังจากนั้น ประวัติหน้าจะถูกเรียกมารวม ซึ่งประวัติหน้าจะไม่ถูกแทนที่',
 1299+'undeleterevdel' => 'จะเรียกคืนไม่ได้ถ้ารุ่นในส่วนที่ใหม่ถูกลบไปบางส่วน ถ้าเกิดขึ้นในกรณีนี้ ต้องกดแสดงในส่วนใหม่ก่อน',
 1300+'undeletehistorynoadmin' => 'หน้านี้ถูกลบก่อนหน้านี้ โดยสาเหตุการลบและรายชื่อผู้ร่วมแก้ไขก่อนหน้าแสดงผลด้านล่าง สำหรับข้อมูลที่ถูกลบจะดูได้เฉพาะผู้ดูแลระบบ',
 1301+'undelete-revision' => 'รุ่นที่ถูกลบของ $1 จาก $2:',
 1302+'undeleterevision-missing' => 'รุ่นที่ต้องการดูไม่มี ข้อมูลอาจจะโดนลบ',
 1303+'undeletebtn' => 'เรียกคืน',
 1304+'undeletereset' => 'ตั้งค่าใหม่',
 1305+'undeletecomment' => 'ความเห็น:',
 1306+'undeletedarticle' => 'เรียกคืน "[[$1]]"',
 1307+'undeletedrevisions' => '$1 รุ่นการแก้ไขถูกเรียกคืน',
 1308+'undeletedrevisions-files' => '$1 รุ่นการแก้ไข และ $2 ไฟล์ถูกเรียกคืน',
 1309+'undeletedfiles' => '$1 ไฟล์ถูกเรียกคืน',
 1310+'cannotundelete' => 'เรียกคืนไม่สำเร็จ อาจมีใครบางคนเรียกคืนหน้านั้นแล้ว',
 1311+'undeletedpage' => "<big>'''$1 ถูกเรียกคืน'''</big>
12901312
12911313 ดูเพิ่มเติม [[Special:Log/delete|บันทึกการลบ]] สำหรับรายชื่อการลบและการเรียกคืนที่ผ่านมา",
1292 -'undelete-header' => 'ดู [[Special:Log/delete|บันทึกการลบ]] สำหรับหน้าที่ถูกลบล่าสุด',
1293 -'undelete-search-box' => 'ค้นหาหน้าที่ถูกลบ',
1294 -'undelete-search-prefix' => 'ค้นหาหน้าที่เริ่มต้นด้วย:',
1295 -'undelete-search-submit' => 'ค้นหา',
1296 -'undelete-no-results' => 'ไม่พบหน้าที่ต้องการจากบันทึกการลบ',
 1314+'undelete-header' => 'ดู [[Special:Log/delete|บันทึกการลบ]] สำหรับหน้าที่ถูกลบล่าสุด',
 1315+'undelete-search-box' => 'ค้นหาหน้าที่ถูกลบ',
 1316+'undelete-search-prefix' => 'ค้นหาหน้าที่เริ่มต้นด้วย:',
 1317+'undelete-search-submit' => 'ค้นหา',
 1318+'undelete-no-results' => 'ไม่พบหน้าที่ต้องการจากบันทึกการลบ',
 1319+'undelete-filename-mismatch' => 'ไม่สามารถกู้คืนไฟล์ $1: ชื่อไฟล์ไม่ถูกต้อง',
 1320+'undelete-bad-store-key' => 'ไม่สามารถกู้คืนไฟล์ $1: ไม่มีไฟล์ก่อนที่จะถูกลบ',
 1321+'undelete-cleanup-error' => 'เกิดปัญหาการลบไฟล์เก่า "$1"',
 1322+'undelete-missing-filearchive' => 'ไม่สามารถกู้คืนไฟล์เก่ารุ่น $1 เพราะว่าไม่มีไฟล์อยู่ในฐานข้อมูล ไฟล์อาจจะถูกกู้คืนไปก่อนหน้า',
 1323+'undelete-error-short' => 'เกิดปัญหาในการกู้คืนไฟล์: $1',
 1324+'undelete-error-long' => 'Errors were encountered while undeleting the file:
12971325
 1326+$1',
 1327+
12981328 # Namespace form on various pages
12991329 'namespace' => 'เนมสเปซ',
13001330 'invert' => 'เลือกตรงข้าม',
@@ -1388,9 +1418,11 @@
13891419 'createaccountblock' => 'บล็อกการสร้างบัญชีผู้ใช้ใหม่',
13901420 'emailblock' => 'บล็อกการส่งอีเมล',
13911421 'ipblocklist-empty' => 'รายการบล็อกว่าง',
 1422+'ipblocklist-no-results' => 'หมายเลขไอพีหรือชื่อผู้ใช้ที่ต้องการไม่ได้ถูกบล็อก',
13921423 'blocklink' => 'บล็อก',
13931424 'unblocklink' => 'เลิกบล็อก',
13941425 'contribslink' => 'แก้ไข',
 1426+'autoblocker' => 'ถูกบล็อกอัตโนมัติเนื่องจากหมายเลขไอพีของคุณตรงกับ "[[User:$1|$1]]" ถูกบล็อกกล่อนหน้านี้เนื่องจากสาเหตุ: "$2"',
13951427 'blocklogpage' => 'บันทึกการบล็อก',
13961428 'blocklogentry' => 'บล็อก "[[$1]]" หมดอายุ $2 $3',
13971429 'blocklogtext' => 'ด้านล่างเป็นบันทึกการบล็อกและการเลิกบล็อก ส่วนการบล็อกอัตโนมัติจะไม่ถูกรวมอยู่ในรายการนี้ ดู [[Special:Ipblocklist|รายการบล็อกไอพี]] สำหรับการบล็อกทั้งหมด',
@@ -1438,7 +1470,7 @@
14391471
14401472 <b>คำเตือน!</b>
14411473 การเปลี่ยนชื่อจะมีผลอย่างมากกับสถิติของหน้านิยมที่มีคนเข้าดูมาก ให้แน่ใจว่าต้องการเปลี่ยนชื่อในครั้งนี้",
1442 -'movepagetalktext' => "หน้าพูดคุยของหน้านี้จะถูกเปลี่ยนชื่อตามไปด้วย '''เว้ันเสียแต่:'''
 1474+'movepagetalktext' => "หน้าพูดคุยของหน้านี้จะถูกเปลี่ยนชื่อตามไปด้วย '''เว้นเสียแต่:'''
14431475 *หน้าพูดคุยไม่ว่างมีแล้วที่ชื่อใหม่ หรือ
14441476 *ได้เลือกไม่ต้องการเปลี่ยนชื่อด้านล่าง
14451477
@@ -1493,7 +1525,6 @@
14941526 'allmessagesdefault' => 'ข้อความตั้งต้น',
14951527 'allmessagescurrent' => 'ข้อความปัจจุบัน',
14961528 'allmessagestext' => 'ข้อความแสดงหน้าตาของวิกินี้ (ถูกเก็บในเนมสเปซ มีเดียวิกิ)',
1497 -'allmessagesnotsupportedUI' => 'ภาษา<b>$1</b> ที่คุณใช้ปัจจุบันไม่รองรับ {{ns:special}}:Allmessages ในเว็บไซต์นี้',
14981529 'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' ไม่สามารถนำมาใช้ได้เพราะว่า '''\$wgUseDatabaseMessages''' ได้ถูกปิด",
14991530 'allmessagesfilter' => 'กรองเฉพาะข้อความ:',
15001531 'allmessagesmodified' => 'แสดงเฉพาะที่ถูกแก้ไข',
@@ -1667,8 +1698,16 @@
16681699 'patrol-log-diff' => 'r$1',
16691700
16701701 # Image deletion
1671 -'deletedrevision' => 'รุ่นเก่าที่ถูกลบ $1',
 1702+'deletedrevision' => 'รุ่นเก่าที่ถูกลบ $1',
 1703+'filedeleteerror-short' => 'เกิดปัญหาการลบไฟล์: $1',
 1704+'filedeleteerror-long' => 'เกิดปัญหาขณะที่ทำการลบไฟล์:
16721705
 1706+$1',
 1707+'filedelete-missing' => 'ไม่สามารถลบไฟล์ "$1" ได้ เนื่องจากไม่มีไฟล์ชื่อนี้อยู่',
 1708+'filedelete-old-unregistered' => 'ไฟล์ที่ระบุรุ่น "$1" ไม่มีในฐานข้อมูล',
 1709+'filedelete-current-unregistered' => 'ไฟล์ที่ระบุ "$1" ไม่มีในฐานข้อมูล',
 1710+'filedelete-archive-read-only' => 'ไดเรกทอรีกรุชื่อ "$1" ไม่สามารถเขียนลงได้โดยเว็บเซิร์ฟเวอร์',
 1711+
16731712 # Browsing diffs
16741713 'previousdiff' => '← แตกต่างก่อนหน้า',
16751714 'nextdiff' => 'แตกต่างถัดไป →',
@@ -1688,8 +1727,12 @@
16891728 'showhidebots' => '($1 บอต)',
16901729 'noimages' => 'ไม่มีให้ดู',
16911730
1692 -'passwordtooshort' => 'รหัสผ่านไม่ถูกต้องหรือสั้นเกินไป โดยต้องมีอย่างน้อย $1 ตัวอักษรและแตกต่างจากชื่อผู้ใช้',
 1731+# Bad image list
 1732+'bad_image_list' => 'รูปแบบแสดงต่อไปนี้:
16931733
 1734+เฉพาะรายการที่แสดง (ในแถวขึ้นต้นด้วย *) โดยลิงก์แรกของแต่ละแถวเป็นลิงก์ไปยังภาพที่เสีย
 1735+โดยลิงก์ถัดไปเป็นข้อยกเว้น เช่น บทความที่ภาพถูกจัดในบรรทัดเดียวกับส่วนข้อความ',
 1736+
16941737 # Metadata
16951738 'metadata' => 'ข้อมูลแนบ',
16961739 'metadata-help' => 'ไฟล์นี้มีข้อมูลเพิ่มเติมแนบไว้ อาจจะมาจาก กล้องดิจิทัล สแกนเนอร์ หรือเครื่องรับส่งจีพีเอส อย่างไรก็ตามข้อมูลที่เก็บไว้อาจถูกดัดแปลงถ้าไฟล์ต้นฉบับถูกแก้ไขจากซอฟต์แวร์อื่น',
@@ -1854,7 +1897,7 @@
18551898
18561899 'exif-subjectdistance-value' => '$1 เมตร',
18571900
1858 -'exif-meteringmode-0' => 'ไ่ม่ทราบ',
 1901+'exif-meteringmode-0' => 'ไม่ทราบ',
18591902 'exif-meteringmode-1' => 'เฉลี่ย',
18601903 'exif-meteringmode-2' => 'เซนเตอร์',
18611904 'exif-meteringmode-3' => 'สปอต',
Index: branches/liquidthreads/languages/messages/MessagesZh_tw.php
@@ -372,12 +372,15 @@
373373 'viewsource' => '原始碼',
374374 'viewsourcefor' => '$1的原始碼',
375375 'protectedpagetext' => '該頁面已被鎖定以防止編輯。',
376 -'namespaceprotected' => "您並沒有權限去編輯在'''$1'''名字空間內的頁面。",
377376 'viewsourcetext' => '你可以檢視並複製本頁面的原始碼。',
378377 'protectedinterface' => '該頁提供了軟體的介面文字,它已被鎖定以防止隨意的修改。',
379378 'editinginterface' => "'''警告:''' 您正在編輯的頁面是用於提供軟體的介面文字。改變此頁將影響其他用戶的介面外觀。",
380379 'sqlhidden' => '(隱藏SQL查詢)',
381 -'cascadeprotected' => '這個頁面已經被保護,因為這個頁面被以下已標註"聯鎖保護"的{{PLURAL:$1|一個|多個}}被保護頁面包含:',
 380+'cascadeprotected' => "這個頁面已經被保護,因為這個頁面被以下已標註\"聯鎖保護\"的{{PLURAL:$1|一個|多個}}被保護頁面包含:
 381+$2",
 382+'namespaceprotected' => "您並沒有權限去編輯在'''$1'''名字空間內的頁面。",
 383+'customcssjsprotected' => '您並無許可權去編輯這個頁面,因為它包含了另一位用戶的個人設定。',
 384+'ns-specialprotected' => '在特殊名字空間中的頁面是不可以編輯的。',
382385
383386 # Login and logout pages
384387 'logouttitle' => '用戶退出',
@@ -431,6 +434,7 @@
432435 'nouserspecified' => '你需要指定一個用戶名。',
433436 'wrongpassword' => '您輸入的密碼錯誤,請再試一次。',
434437 'wrongpasswordempty' => '沒有輸入密碼!請重試。',
 438+'passwordtooshort' => '您的密碼不正確或太短,不能少於$1個字元,而且必須跟用戶名不同。',
435439 'mailmypassword' => '將新密碼寄給我',
436440 'passwordremindertitle' => '{{SITENAME}}密碼提醒',
437441 'passwordremindertext' => '有人(可能是您,來自IP位址$1)要求我們將新的{{SITENAME}} ($4) 的登入密碼寄給您。用戶"$2"的密碼現在是"$3"。請立即登入並更改密碼。如果是其他人發出了該請求,或者您已經記起了您的密碼並不準備改變它,您可以忽略此消息並繼續使用您的舊密碼。',
@@ -504,24 +508,28 @@
505509
506510 這次查封是由$1所封的。當中的原因是''$2''。
507511
508 -這次查封的到期時間是:$6<br />
509 -對於被查封者:$7
 512+* 這次查封的開始時間是:$8
 513+* 這次查封的到期時間是:$6
 514+* 對於被查封者:$7
510515
511516 你可以聯絡$1或者其他的[[{{MediaWiki:grouppage-sysop}}|管理員]],討論這次查封。
512517 除非你已經在你的[[Special:Preferences|帳號參數設置]]中設定了一個有效的電子郵件地址,否則你是不能使用「電郵這位用戶」的功能。當設定了一個有效的電子郵件地址後,這個功能是不會封鎖的。
513518
514 -你的IP地址是$3,而該查封ID是 #$5。 請你在所有查詢中註明這地址及/或查封ID。",
 519+你現時的IP地址是$3,而該查封ID是 #$5。 請你在所有查詢中註明這地址及/或查封ID。",
515520 'autoblockedtext' => "你的IP地址已經被自動查封,由於先前的另一位用戶被$1所查封。
516521 而查封的原因是:
517522
518523 :''$2''
519524
520 -這次查封的到期時間是:$6
 525+* 這次查封的開始時間是:$8
 526+* 這次查封的到期時間是:$6
521527
522528 你可以聯絡$1或者其他的[[{{MediaWiki:grouppage-sysop}}|管理員]],討論這次查封。
523529 除非你已經在你的[[Special:Preferences|帳號參數設置]]中設定了一個有效的電子郵件地址,否則你是不能使用「電郵這位用戶」的功能。當設定了一個有效的電子郵件地址後,這個功能是不會封鎖的。
524530
525 -您的查封ID是 $5。 請你在所有查詢中註明這個查封ID。",
 531+您的查封ID是 #$5。 請你在所有查詢中註明這個查封ID。",
 532+'blockedtext-concise' => '$7,是跟您的用戶名或IP地址相同,已經被$1查封。當中的原因是$2。這次查封的結束時間是$6。你可以聯絡$1或者其他的管理員,討論這次查封。除非你已經在你的帳號參數設置中設定了一個有效的電子郵件地址,否則你是不能使用「電郵這位用戶」的功能。當設定了一個有效的電子郵件地址後,這個功能是不會封鎖的。 您現時的IP地址是$3,而該查封ID是 #$5。 請您在所有查詢中註明這地址及/或查封ID。',
 533+'autoblockedtext-concise' => '您的IP地址之前被一位之前曾經查封過的用戶使用過。當中的查封是經由$1完成。原因是$2。這次查封的結束時間是$6。你可以聯絡$1或者其他的管理員,討論這次查封。除非你已經在你的帳號參數設置中設定了一個有效的電子郵件地址,否則你是不能使用「電郵這位用戶」的功能。當設定了一個有效的電子郵件地址後,這個功能是不會封鎖的。 您現時的IP地址是$3,而該查封ID是 #$5。 請您在所有查詢中註明這地址及/或查封ID。',
526534 'blockedoriginalsource' => "以下是'''$1'''的原始碼:",
527535 'blockededitsource' => "你對'''$1'''進行'''編輯'''的文字如下:",
528536 'whitelistedittitle' => '登入後才可編輯',
@@ -598,6 +606,9 @@
599607 'edittools' => '<!-- 此處的文字將被顯示在以下編輯和上傳表單中。 -->',
600608 'nocreatetitle' => '創建頁面受限',
601609 'nocreatetext' => '此網站限制了創建新頁面的功能。你可以返回並編輯已有的頁面,或者[[Special:Userlogin|登錄或創建新賬戶]]。',
 610+'nocreate-loggedin' => '您在這個wiki中並無許可權去創建新頁面。',
 611+'permissionserrors' => '權限錯誤',
 612+'permissionserrorstext' => '根據以下的{{PLURAL:$1|原因|原因}},您並無權限去做以下的動作:',
602613 'recreate-deleted-warn' => "'''警告: 你現在重新創建一個先前曾經刪除過的頁面。'''
603614
604615 你應該要考慮一下繼續編輯這一個頁面是否合適。
@@ -758,8 +769,8 @@
759770 'prefs-personal' => '用戶資料',
760771 'prefs-rc' => '最近更改',
761772 'prefs-watchlist' => '監視列表',
762 -'prefs-watchlist-days' => '監視列表中顯示記錄的天數:',
763 -'prefs-watchlist-edits' => '在增強的監視列表中顯示的編輯次數:',
 773+'prefs-watchlist-days' => '監視列表中顯示記錄的最長天數:',
 774+'prefs-watchlist-edits' => '在增強的監視列表中顯示的最多更改次數:',
764775 'prefs-misc' => '雜項',
765776 'saveprefs' => '保存參數設置',
766777 'resetprefs' => '重設參數',
@@ -982,11 +993,11 @@
983994 # File reversion
984995 'filerevert' => '恢復$1',
985996 'filerevert-legend' => '恢復檔案',
986 -'filerevert-intro' => "<span class=\"plainlinks\">您現正在恢復'''[[Media:$1|$1]]'''到[於$2 $3的$4版本]。</span>",
 997+'filerevert-intro' => '<span class="plainlinks">您現正在恢復\'\'\'[[Media:$1|$1]]\'\'\'到[於$2 $3的$4版本]。</span>',
987998 'filerevert-comment' => '註解:',
988999 'filerevert-defaultcomment' => '已經恢復到於$1 $2的版本',
9891000 'filerevert-submit' => '恢復',
990 -'filerevert-success' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''已經恢復到[於$2 $3的$4版本]。</span>",
 1001+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經恢復到[於$2 $3的$4版本]。</span>',
9911002 'filerevert-badversion' => '這個檔案所提供的時間截記並無先前的本地版本。',
9921003
9931004 # MIME search
@@ -1320,43 +1331,44 @@
13211332 'restriction-level-all' => '任何級別',
13221333
13231334 # Undelete
1324 -'undelete' => '恢復被刪頁面',
1325 -'undeletepage' => '瀏覽及恢復被刪頁面',
1326 -'viewdeletedpage' => '檢視被刪除的頁面',
1327 -'undeletepagetext' => '以下頁面已經被刪除,但依然在檔案中並可以被恢復。
 1335+'undelete' => '恢復被刪頁面',
 1336+'undeletepage' => '瀏覽及恢復被刪頁面',
 1337+'viewdeletedpage' => '檢視被刪除的頁面',
 1338+'undeletepagetext' => '以下頁面已經被刪除,但依然在檔案中並可以被恢復。
13281339 檔案庫可能被定時清理。',
1329 -'undeleteextrahelp' => "恢復整個頁面時,請清除所有複選框後按 '''''恢復''''' 。 恢復特定版本時,請選擇相應版本前的複選框後按'''''恢復''''' 。按 '''''重設''''' 將清除評論內容及所有複選框。",
1330 -'undeleterevisions' => '$1版本存檔',
1331 -'undeletehistory' => '如果您恢復了該頁面,所有版本都會被恢復到修訂歷史中。
 1340+'undeleteextrahelp' => "恢復整個頁面時,請清除所有複選框後按 '''''恢復''''' 。 恢復特定版本時,請選擇相應版本前的複選框後按'''''恢復''''' 。按 '''''重設''''' 將清除評論內容及所有複選框。",
 1341+'undeleterevisions' => '$1版本存檔',
 1342+'undeletehistory' => '如果您恢復了該頁面,所有版本都會被恢復到修訂歷史中。
13321343 如果本頁刪除後有一個同名的新頁面建立,
13331344 被恢復的版本將會稱為較新的歷史,而新頁面的當前版本將無法被自動復原。',
1334 -'undeleterevdel' => '如果把最新修訂部份刪除,反刪除便無法進行。如果遇到這種情況,您必須反選或反隱藏最新已刪除的修訂。對於您沒有權限去檢視的修訂是無法恢復的。',
1335 -'undeletehistorynoadmin' => '這個文章已經被刪除,刪除原因顯示在下方編輯摘要中。被刪除前的所有修訂版本,連同刪除前貢獻用戶等等
 1345+'undeleterevdel' => '如果把最新修訂部份刪除,反刪除便無法進行。如果遇到這種情況,您必須反選或反隱藏最新已刪除的修訂。對於您沒有權限去檢視的修訂是無法恢復的。',
 1346+'undeletehistorynoadmin' => '這個文章已經被刪除,刪除原因顯示在下方編輯摘要中。被刪除前的所有修訂版本,連同刪除前貢獻用戶等等
13361347 細節只有[[Wikipedia:管理員|管理員]]可以看見。',
1337 -'undelete-revision' => '刪除版本 $1 自 $2:',
1338 -'undeleterevision-missing' => '此版本的內容不正確或已經遺失。可能連結錯誤、被移除或已經被恢復。',
1339 -'undeletebtn' => '恢復',
1340 -'undeletereset' => '重設',
1341 -'undeletecomment' => '原因',
1342 -'undeletedarticle' => '已經恢復「$1」',
1343 -'undeletedrevisions' => '$1個修訂版本已經恢復',
1344 -'undeletedrevisions-files' => '$1 個版本和 $2 個檔案被恢復',
1345 -'undeletedfiles' => '$1 個檔案被恢復',
1346 -'cannotundelete' => '恢復失敗;可能之前已經被其他人恢復。',
1347 -'undeletedpage' => "<big>'''$1已經被恢復'''</big> 請參考[[Special:Log/delete|刪除日誌]]來查詢刪除及恢復記錄。",
1348 -'undelete-header' => '如要查詢最近的記錄請參閱[[Special:Log/delete|刪除日誌]]。',
1349 -'undelete-search-box' => '搜尋已刪除頁面',
1350 -'undelete-search-prefix' => '顯示頁面自:',
1351 -'undelete-search-submit' => '搜尋',
1352 -'undelete-no-results' => '刪除記錄裡沒有符合的結果。',
1353 -'undelete-filename-mismatch' => '不能刪除帶有時間截記的檔案修訂 $1: 檔案不匹配',
1354 -'undelete-bad-store-key' => '不能刪除帶有時間截記的檔案修訂 $1: 檔案於刪除前遺失。',
1355 -'undelete-cleanup-error' => '刪除無用的存檔檔案 "$1" 時發生錯誤。',
1356 -'undelete-missing-filearchive' => '由於檔案存檔 ID $1 不在資料庫中,不能在檔案存檔中恢復。' .
1357 - '它可能已經反刪除了。',
1358 -'undelete-error-short' => '反刪除檔案時發生錯誤: $1',
1359 -'undelete-error-long' => "當進行反刪除檔案時遇到錯誤:\n\n$1",
 1348+'undelete-revision' => '刪除版本 $1 自 $2:',
 1349+'undeleterevision-missing' => '此版本的內容不正確或已經遺失。可能連結錯誤、被移除或已經被恢復。',
 1350+'undeletebtn' => '恢復',
 1351+'undeletereset' => '重設',
 1352+'undeletecomment' => '原因',
 1353+'undeletedarticle' => '已經恢復「$1」',
 1354+'undeletedrevisions' => '$1個修訂版本已經恢復',
 1355+'undeletedrevisions-files' => '$1 個版本和 $2 個檔案被恢復',
 1356+'undeletedfiles' => '$1 個檔案被恢復',
 1357+'cannotundelete' => '恢復失敗;可能之前已經被其他人恢復。',
 1358+'undeletedpage' => "<big>'''$1已經被恢復'''</big> 請參考[[Special:Log/delete|刪除日誌]]來查詢刪除及恢復記錄。",
 1359+'undelete-header' => '如要查詢最近的記錄請參閱[[Special:Log/delete|刪除日誌]]。',
 1360+'undelete-search-box' => '搜尋已刪除頁面',
 1361+'undelete-search-prefix' => '顯示頁面自:',
 1362+'undelete-search-submit' => '搜尋',
 1363+'undelete-no-results' => '刪除記錄裡沒有符合的結果。',
 1364+'undelete-filename-mismatch' => '不能刪除帶有時間截記的檔案修訂 $1: 檔案不匹配',
 1365+'undelete-bad-store-key' => '不能刪除帶有時間截記的檔案修訂 $1: 檔案於刪除前遺失。',
 1366+'undelete-cleanup-error' => '刪除無用的存檔檔案 "$1" 時發生錯誤。',
 1367+'undelete-missing-filearchive' => '由於檔案存檔 ID $1 不在資料庫中,不能在檔案存檔中恢復。它可能已經反刪除了。',
 1368+'undelete-error-short' => '反刪除檔案時發生錯誤: $1',
 1369+'undelete-error-long' => '當進行反刪除檔案時遇到錯誤:
13601370
 1371+$1',
 1372+
13611373 # Namespace form on various pages
13621374 'namespace' => '名字空間:',
13631375 'invert' => '反向選擇',
@@ -1522,6 +1534,7 @@
15231535 'movenologin' => '未登入',
15241536 'movenologintext' => '您必須是一名登記用戶並且[[Special:Userlogin|登入]]
15251537 後才可移動一個頁面。',
 1538+'movenotallowed' => '您在這個wiki中度並沒有許可權去移動頁面。',
15261539 'newtitle' => '新標題:',
15271540 'move-watch' => '監視此頁',
15281541 'movepagebtn' => '移動頁面',
@@ -1572,7 +1585,6 @@
15731586 'allmessagesdefault' => '預設的文字',
15741587 'allmessagescurrent' => '當前的文字',
15751588 'allmessagestext' => '這裡列出所有可定製的系統介面。',
1576 -'allmessagesnotsupportedUI' => 'Special:Allmessages不支援您目前使用的介面語言<b>$1</b>。',
15771589 'allmessagesnotsupportedDB' => '系統介面功能處於關閉狀態 (wgUseDatabaseMessages)。',
15781590 'allmessagesfilter' => '正則表達式過濾條件:',
15791591 'allmessagesmodified' => '僅顯示修改過的',
@@ -1748,13 +1760,15 @@
17491761 'patrol-log-diff' => 'r$1',
17501762
17511763 # Image deletion
1752 -'deletedrevision' => '已刪除舊版本$1。',
1753 -'filedeleteerror-short' => "刪除檔案發生錯誤: $1",
1754 -'filedeleteerror-long' => "當刪除檔案時遇到錯誤:\n\n$1",
1755 -'filedelete-missing' => '因為檔案 "$1" 不存在,所以它不可以刪除。',
1756 -'filedelete-old-unregistered' => '所指定的檔案修訂 "$1" 在資料庫中不存在。',
 1764+'deletedrevision' => '已刪除舊版本$1。',
 1765+'filedeleteerror-short' => '刪除檔案發生錯誤: $1',
 1766+'filedeleteerror-long' => '當刪除檔案時遇到錯誤:
 1767+
 1768+$1',
 1769+'filedelete-missing' => '因為檔案 "$1" 不存在,所以它不可以刪除。',
 1770+'filedelete-old-unregistered' => '所指定的檔案修訂 "$1" 在資料庫中不存在。',
17571771 'filedelete-current-unregistered' => '所指定的檔案 "$1" 在資料庫中不存在。',
1758 -'filedelete-archive-read-only' => '存檔目錄 "$1" 在網頁伺服器中不可寫。',
 1772+'filedelete-archive-read-only' => '存檔目錄 "$1" 在網頁伺服器中不可寫。',
17591773
17601774 # Browsing diffs
17611775 'previousdiff' => '←上一個',
@@ -1775,6 +1789,12 @@
17761790 'showhidebots' => '($1機器人)',
17771791 'noimages' => '無可檢視圖像。',
17781792
 1793+# Bad image list
 1794+'bad_image_list' => '請根據以下的格式去編寫:
 1795+
 1796+只有列示項目(以 * 開頭的項目)會被考慮。第一個連結一定要連接去壞圖像中。
 1797+然後在同一行的連結會考慮作例外,即是幅圖像可以在哪一篇文章中同時顯示。',
 1798+
17791799 /*
17801800 Short names for language variants used for language conversion links.
17811801 To disable showing a particular link, set it to 'disable', e.g.
@@ -1787,8 +1807,6 @@
17881808 'variantname-zh-sg' => '新加坡簡體',
17891809 'variantname-zh' => '不轉換',
17901810
1791 -'passwordtooshort' => '您的密碼不正確或太短,不能少於$1個字元,而且必須跟用戶名不同。',
1792 -
17931811 # Metadata
17941812 'metadata' => '元數據',
17951813 'metadata-help' => '此檔案中包含有擴展的訊息。這些訊息可能是由數位相機或掃描儀在創建或數字化過程中所添加的。
Index: branches/liquidthreads/languages/messages/MessagesZh_classical.php
@@ -365,10 +365,14 @@
366366 問語: $2',
367367 'viewsource' => '案碼',
368368 'viewsourcefor' => '$1',
369 -'namespaceprotected' => "舉凡'''$1'''者,爾無權耳,莫之能修。",
370369 'protectedinterface' => '此頁司版面,錮之以遠濫。',
371370 'editinginterface' => "'''警示:'''此頁司版面,一人易之眾人動,懇請戒慎之。",
372371 'sqlhidden' => '藏SQL問語',
 372+'cascadeprotected' => "這頁已錮,因註\"連環錮\"之{{PLURAL:$1|一|多}}頁有:
 373+$2",
 374+'namespaceprotected' => "舉凡'''$1'''者,爾無權耳,莫之能修。",
 375+'customcssjsprotected' => '爾無權耳,莫之能修,含他之喜好也。',
 376+'ns-specialprotected' => '非凡領域之頁無修也。',
373377
374378 # Login and logout pages
375379 'logouttitle' => '去簿',
@@ -418,6 +422,7 @@
419423 'nouserspecified' => '須簿名',
420424 'wrongpassword' => '符節不合,請核之。',
421425 'wrongpasswordempty' => '缺符節,請補之。',
 426+'passwordtooshort' => '符節過短,須逾$1字,且跟簿異。',
422427 'mailmypassword' => '遣吾符節',
423428 'passwordremindertitle' => '符節遣自{{SITENAME}}',
424429 'passwordremindertext' => '$1求遣{{SITENAME}}($4)"$2"符節於此,係"$3"。
@@ -473,11 +478,24 @@
474479
475480 禁者$1也,因''$2''故。
476481
477 -終止之時為:$6<br />
478 -見禁之人:$7
 482+* 始之時為:$8
 483+* 終之時為:$6
 484+* 見禁之人:$7
479485
480486 存惑可詢$1,或[[{{MediaWiki:grouppage-sysop}}|有秩]],[[Special:Preferences|簿註]]無驛則信不遣。
481 -另,子IP為$3,其簿名為#$5。詢時切附之。",
 487+另,子IP為$3,其禁號為#$5。詢時切附之。",
 488+'autoblockedtext' => "爾之IP或簿自禁,因簿先用,禁者$1也。
 489+因故:
 490+
 491+:\'\'$2\'\'
 492+
 493+* 始之時為:$8
 494+* 終之時為:$6
 495+
 496+存惑可詢$1,或[[{{MediaWiki:grouppage-sysop}}|有秩]],[[Special:Preferences|簿註]]無驛則信不遣。
 497+另,子禁號為#$5。詢時切附之。",
 498+'blockedtext-concise' => '$7,爾簿或IP同之,禁者$1也。因$2故。終之時為$6。存惑可詢$1,或有秩,簿註無驛則信不遣。另,子IP為$3,其禁號為#$5。詢時切附之。',
 499+'autoblockedtext-concise' => '爾之IP或簿自禁,因簿先用,禁者$1也。因$2故。終之時為$6。存惑可詢$1,或有秩,簿註無驛則信不遣。另,子IP為$3,其禁號為#$5。詢時切附之。',
482500 'blockedoriginalsource' => "'''$1'''本源如下:",
483501 'blockededitsource' => "子'''$1纂文'''如下:",
484502 'whitelistedittitle' => '登簿以纂',
@@ -541,7 +559,14 @@
542560 'templatesused' => '此文所用之模:',
543561 'nocreatetitle' => '新題見禁',
544562 'nocreatetext' => '新題見禁,惟舊可修。可赦之以[[Special:Userlogin|登簿、增簿]]。',
 563+'nocreate-loggedin' => '爾無權創新頁。',
 564+'permissionserrors' => '權錯',
 565+'permissionserrorstext' => '據下{{PLURAL:$1|因|因}},爾無權作動:',
 566+'recreate-deleted-warn' => "'''警:爾重創先前頁。'''
545567
 568+爾應慮適篡此頁。
 569+便,頁刪下供也:",
 570+
546571 # Account creation failure
547572 'cantcreateaccounttitle' => '新簿莫增',
548573 'cantcreateaccounttext' => '子之IP <b>$1</b> 疑嘗惡,故見封。',
@@ -650,8 +675,8 @@
651676 'prefs-personal' => '概簿',
652677 'prefs-rc' => '近易',
653678 'prefs-watchlist' => '哨站',
654 -'prefs-watchlist-days' => '哨報有日',
655 -'prefs-watchlist-edits' => '哨站有文',
 679+'prefs-watchlist-days' => '哨報有日長',
 680+'prefs-watchlist-edits' => '哨站有易多',
656681 'prefs-misc' => '雜',
657682 'saveprefs' => '儲',
658683 'resetprefs' => '重置',
@@ -802,11 +827,11 @@
803828 # File reversion
804829 'filerevert' => '還$1',
805830 'filerevert-legend' => '還檔',
806 -'filerevert-intro' => "<span class=\"plainlinks\">汝還'''[[Media:$1|$1]]'''至[在$2$3之$4版本]。</span>",
 831+'filerevert-intro' => '<span class="plainlinks">汝還\'\'\'[[Media:$1|$1]]\'\'\'至[在$2$3之$4版本]。</span>',
807832 'filerevert-comment' => '注:',
808833 'filerevert-defaultcomment' => '已還至在$1$2之版矣',
809834 'filerevert-submit' => '還',
810 -'filerevert-success' => "<span class=\"plainlinks\">'''[[Media:$1|$1]]'''已還[在$2$3之$4版本]矣。</span>",
 835+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已還[在$2$3之$4版本]矣。</span>',
811836 'filerevert-badversion' => '此檔之時印無本地之前版也。',
812837
813838 # Unwatched pages
@@ -1009,28 +1034,30 @@
10101035 'restriction-move' => '遷',
10111036
10121037 # Undelete
1013 -'undelete' => '覽已刪',
1014 -'undeletepage' => '覽已刪並還之',
1015 -'viewdeletedpage' => '覽已刪',
1016 -'undeletepagetext' => '列已刪如下。有複存可還之,常清。',
1017 -'undeleterevisions' => '有審$1',
1018 -'undeletebtn' => '還',
1019 -'undeletereset' => '重置',
1020 -'undeletecomment' => '贊:',
1021 -'undeletedarticle' => '"[[$1]]"還矣',
1022 -'undeletedrevisions' => '$1審還矣',
1023 -'undeletedrevisions-files' => '$1審$2檔還矣',
1024 -'undeletedfiles' => '$1檔還矣',
1025 -'cannotundelete' => '無以還檔,或早復矣。',
1026 -'undeletedpage' => "<big>'''$1還矣'''</big>
 1038+'undelete' => '覽已刪',
 1039+'undeletepage' => '覽已刪並還之',
 1040+'viewdeletedpage' => '覽已刪',
 1041+'undeletepagetext' => '列已刪如下。有複存可還之,常清。',
 1042+'undeleterevisions' => '有審$1',
 1043+'undeletebtn' => '還',
 1044+'undeletereset' => '重置',
 1045+'undeletecomment' => '贊:',
 1046+'undeletedarticle' => '"[[$1]]"還矣',
 1047+'undeletedrevisions' => '$1審還矣',
 1048+'undeletedrevisions-files' => '$1審$2檔還矣',
 1049+'undeletedfiles' => '$1檔還矣',
 1050+'cannotundelete' => '無以還檔,或早復矣。',
 1051+'undeletedpage' => "<big>'''$1還矣'''</big>
10271052 見[[Special:Log/delete|刪還誌]]",
1028 -'undelete-filename-mismatch' => '欲復之檔名有誤,故無以復$1',
1029 -'undelete-bad-store-key' => '$1之檔,蓋本無之,故無之復也。',
1030 -'undelete-cleanup-error' => '"$1"存檔,蓋被誤刪耳。',
 1053+'undelete-filename-mismatch' => '欲復之檔名有誤,故無以復$1',
 1054+'undelete-bad-store-key' => '$1之檔,蓋本無之,故無之復也。',
 1055+'undelete-cleanup-error' => '"$1"存檔,蓋被誤刪耳。',
10311056 'undelete-missing-filearchive' => '$1者,無以復,蓋或已復矣。',
1032 -'undelete-error-short' => '欲復檔時,見誤也:$1',
1033 -'undelete-error-long' => "夫復檔時,見誤耳:\n\n$1",
 1057+'undelete-error-short' => '欲復檔時,見誤也:$1',
 1058+'undelete-error-long' => '夫復檔時,見誤耳:
10341059
 1060+$1',
 1061+
10351062 # Namespace form on various pages
10361063 'namespace' => '名集:',
10371064 'invert' => '逆擇',
@@ -1127,6 +1154,7 @@
11281155 'movearticle' => '遷此文:',
11291156 'movenologin' => '未登簿',
11301157 'movenologintext' => '遷文須[[Special:Userlogin|登簿]]。',
 1158+'movenotallowed' => '爾無遷頁之權也。',
11311159 'newtitle' => '至新題:',
11321160 'move-watch' => '哨',
11331161 'movepagebtn' => '遷此頁',
@@ -1214,13 +1242,15 @@
12151243 'markedaspatrollederrortext' => '揀之方可哨',
12161244
12171245 # Image deletion
1218 -'deletedrevision' => '刪舊審$1。',
1219 -'filedeleteerror-short' => "去檔時,見誤耳:$1",
1220 -'filedeleteerror-long' => "刪檔時,見誤耳:\n\n$1",
1221 -'filedelete-missing' => '"$1"無以復,蓋因本無之。',
1222 -'filedelete-old-unregistered' => '古檔 "$1" 者,資料庫所無也。',
 1246+'deletedrevision' => '刪舊審$1。',
 1247+'filedeleteerror-short' => '去檔時,見誤耳:$1',
 1248+'filedeleteerror-long' => '刪檔時,見誤耳:
 1249+
 1250+$1',
 1251+'filedelete-missing' => '"$1"無以復,蓋因本無之。',
 1252+'filedelete-old-unregistered' => '古檔 "$1" 者,資料庫所無也。',
12231253 'filedelete-current-unregistered' => '"$1" 者,資料庫所無也。',
1224 -'filedelete-archive-read-only' => '"$1"之目,莫之能書。',
 1254+'filedelete-archive-read-only' => '"$1"之目,莫之能書。',
12251255
12261256 # Browsing diffs
12271257 'previousdiff' => '前辨',
@@ -1233,10 +1263,14 @@
12341264 'showhidebots' => '($1僕)',
12351265 'noimages' => '無',
12361266
1237 -'passwordtooshort' => '符節過短,須逾$1字。',
 1267+# Bad image list
 1268+'bad_image_list' => '根式篡:
12381269
 1270+列示項(以 * 始)以慮也。首鏈必連壞圖也。
 1271+然,同行之鏈慮作例外,即圖可於文中示也。',
 1272+
12391273 # Metadata
1240 -'metadata' => '衍義',
 1274+'metadata' => '衍義',
12411275 'metadata-help' => '斯檔也,所有之訊,蓋由數碼相機、掃描器之物所加,以數碼之。
12421276
12431277 倘嘗易之,衍義之果,或有異也。',
@@ -1284,17 +1318,15 @@
12851319
12861320 # Scary transclusion
12871321 'scarytranscludedisabled' => '[蓋跨共筆之轉碼者,莫之能用也]',
1288 -'scarytranscludefailed' => '[歉哉,$1模不得]',
1289 -'scarytranscludetoolong' => '[歉哉,網址過長]',
 1322+'scarytranscludefailed' => '[歉哉,$1模不得]',
 1323+'scarytranscludetoolong' => '[歉哉,網址過長]',
12901324
12911325 # Trackbacks
1292 -'trackbackremove' => ' ([$1刪])',
1293 -
1294 -# Trackbacks
12951326 'trackbackbox' => '<div id="mw_trackbacks">
12961327 此文之引:<br />
12971328 $1
12981329 </div>',
 1330+'trackbackremove' => ' ([$1刪])',
12991331 'trackbacklink' => '迴響',
13001332 'trackbackdeleteok' => 'Trackback 刪矣。',
13011333
@@ -1324,11 +1356,11 @@
13251357 'loginlanguagelabel' => '語:$1',
13261358
13271359 # Multipage image navigation
1328 -'imgmultipageprev' => '←前頁',
1329 -'imgmultipagenext' => '次頁→',
1330 -'imgmultigo' => '往',
1331 -'imgmultigotopre' => '往第',
1332 -'imgmultigotopost' => '頁',
 1360+'imgmultipageprev' => '←前頁',
 1361+'imgmultipagenext' => '次頁→',
 1362+'imgmultigo' => '往',
 1363+'imgmultigotopre' => '往第',
 1364+'imgmultigotopost' => '頁',
13331365 'imgmultiparseerror' => '斯圖也,類毀矣,故{{SITENAME}}無以得其表。',
13341366
13351367 # Table pager
@@ -1394,4 +1426,3 @@
13951427
13961428 );
13971429
1398 -
Index: branches/liquidthreads/languages/messages/MessagesKk_tr.php
@@ -265,7 +265,7 @@
266266 'formatnum' => array( 0, 'SANPİŞİMİ', 'FORMATNUM' ),
267267 'padleft' => array( 0, 'SOLĞAIĞIS', 'SOLIĞIS', 'PADLEFT' ),
268268 'padright' => array( 0, 'OÑĞAIĞIS', 'OÑIĞIS', 'PADRIGHT' ),
269 - 'special' => array( 0, 'arnaýı', 'special', ),
 269+ 'special' => array( 0, 'arnaýı', 'special', ),
270270 'defaultsort' => array( 1, 'ÄDEPKİSURIPTAW:', 'ÄDEPKİSANATSURIPTAW:', 'ÄDEPKİSURIPTAWKİLTİ:', 'ÄDEPKİSURIP:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
271271 );
272272
@@ -453,13 +453,14 @@
454454 'pagecategories' => '{{PLURAL:$1|Sanat|Sanattar}}',
455455 'category_header' => '«$1» sanatındağı better',
456456 'subcategories' => 'Sanatşalar',
457 -'category-media-header' => '«$1» sanatındağı taspalar',
 457+'category-media-header' => '«$1» sanatındağı taspa',
 458+'category-empty' => "''Bul sanatta ağımda eş maqala ne taspa joq.''",
458459
459460 'linkprefix' => '/^(.*?)([a-zäçéğıïñöşüýа-яёәіңғүұқөһA-ZÄÇÉĞİÏÑÖŞÜÝА-ЯЁӘІҢҒҮҰҚӨҺʺʹ«„]+)$/sDu',
460461 'mainpagetext' => "<big>'''MedïaWïkï bağdarlaması sätti ornatıldı.'''</big>",
461462 'mainpagedocfooter' => 'Wïkï bağdarlamasın paýdalanw aqparatı üşin [http://meta.wikimedia.org/wiki/Help:Contents Paýdalanwşı nusqawlarımen] tanısıñız.
462463
463 -== Bastaw ==
 464+== Bastaw üşin ==
464465
465466 * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Baptaw qalawları tizimi]
466467 * [http://www.mediawiki.org/wiki/Manual:FAQ MedïaWïkï JQS]
@@ -532,7 +533,7 @@
533534 'redirectedfrom' => '($1 betinen aýdatılğan)',
534535 'redirectpagesub' => 'Aýdatw beti',
535536 'lastmodifiedat' => 'Bul bettiñ özgertilgen soñğı kezi: $2, $1.', # $1 date, $2 time
536 -'viewcount' => 'Bul bet {{PLURAL:$1|bir|$1}} ret qaralğan.',
 537+'viewcount' => 'Bul bet {{PLURAL:$1|bir|$1}} ret qatınalğan.',
537538 'protectedpage' => 'Qorğawlı bet',
538539 'jumpto' => 'Mınağan ötip ketw:',
539540 'jumptonavigation' => 'bağıttaw',
@@ -644,10 +645,13 @@
645646 Bul twralı naqtı URL jaýın körsetip äkimşige esepteme jiberiñiz.',
646647 'readonly_lag' => 'Jetek derekqor serverler bastawışpen qadamlanğanda osı derekqor özdiktik qulıptalınğan',
647648 'internalerror' => 'İşki qate',
 649+'internalerror_info' => 'İşki qate: $1',
648650 'filecopyerror' => '«$1» faýlı «$2» faýlına köşirilmedi.',
649651 'filerenameerror' => '«$1» faýl atı «$2» atına özgertilmedi.',
650652 'filedeleteerror' => '«$1» faýlı joýılmaýdı.',
 653+'directorycreateerror' => '«$1» qaltası jasalmadı.',
651654 'filenotfound' => '«$1» faýlı tabılmadı.',
 655+'fileexistserror' => '«$1» faýlğa jazwğa bolmaýdı: osındaý faýl bar tüge',
652656 'unexpected' => 'Kütilmegen mağına: «$1» = «$2».',
653657 'formerror' => 'Qate: jiberw ülgiti emes',
654658 'badarticleerror' => 'Osındaý äreket mına bette atqarılmaýdı.',
@@ -669,6 +673,7 @@
670674 'editinginterface' => "'''Nazar salıñız:''' Bağdarlamağa tildesw mätinin jetistiretin MediaWiki betin öñdep jatırsız. Bul bettiñ özgertwi barlıq paýdalanwşılar tildeswine äser etedi.",
671675 'sqlhidden' => '(SQL suranısı jasırıldı)',
672676 'cascadeprotected' => 'Bul bet öñdewden qorğalğan, sebebi: ol mına «bawlı» qorğawı endirilgen {{PLURAL:$1|betke|betterge}} kiriktirilgen:',
 677+'namespaceprotected' => "''$1''' esim ayasındağı betterdi öñdew üşin ruqsatıñız joq.",
673678
674679 # Login and logout pages
675680 'logouttitle' => 'Qatıswşı şığwı',
@@ -813,8 +818,9 @@
814819
815820 Buğattawdı $1 istegen. Keltirilgen sebebi: ''$2''.
816821
817 -Buğattaw bitetin mezgili: $6<br />
818 -Maqsattalğan merzimi: $7
 822+* Buğattaw bastalğanı: $8
 823+* Buğattaw bitetini: $6
 824+* Buğattaw maqsatı: $7
819825
820826 Osı buğattawdı talqılaw üşin $1 degenmen, ne basqa [[{{{{ns:mediawiki}}:grouppage-sysop}}|äkimşimen]] qatınaswıñızğa boladı.
821827 [[{{ns:special}}:Preferences|Tirkelgi baptawların]] qoldanıp jaramdı e-poşta jaýın engizgenşe deýin jäne bunı paýdalanwı
@@ -825,7 +831,8 @@
826832
827833 :''$2''
828834
829 -Buğattaw bitetin mezgili: $6
 835+* Buğattaw bastalğanı: $8
 836+* Buğattaw bitetini: $6
830837
831838 Osı buğattawdı talqılaw üşin $1 degenmen,
832839 ne basqa [[{{{{ns:mediawiki}}:grouppage-sysop}}|äkimşimen]] qatınaswıñızğa boladı.
@@ -875,6 +882,9 @@
876883 ''Osı wïkïde qam HTML endirilgen, JavaScript şabwıldardan qorğanw üşin aldın ala qarap şığw jasırılğan.''
877884
878885 <strong>Eger bul öñdew adal talap bolsa, qaýtarıp köriñiz. Eger äli de istemese, şığıp, sosın keri kirip köriñiz.</strong>",
 886+'token_suffix_mismatch' => '<strong>Öñdewiñiz qabıldanbadı, sebebi qoldanğan bağdarlamañız mätindegi
 887+emle nışandarın keskilep tastadı. Maqala mätini bülinbew üşin tüzetwiñiz qabıldanbaýdı.
 888+Bul ğalamtorğa negizdelingen qateli tirkelgisiz proksï-serverdi paýdalanğannvan bolwı mümkin.</strong>',
879889 'importing' => 'Sırttan alwda: $1',
880890 'editing' => 'Öñdelwde: $1',
881891 'editinguser' => 'Öñdelwde: <b>$1</b> degen qatıswşı',
@@ -1095,8 +1105,8 @@
10961106 'prefs-personal' => 'Jeke derekteri',
10971107 'prefs-rc' => 'Jwıqtağı özgerister',
10981108 'prefs-watchlist' => 'Baqılaw',
1099 -'prefs-watchlist-days' => 'Baqılaw tiziminde körseterin kün sanı:',
1100 -'prefs-watchlist-edits' => 'Keñeýtilgen baqılaw tizimi tüzetw körseterin sanı:',
 1109+'prefs-watchlist-days' => 'Baqılaw tiziminde körseterin eñ köp künderi:',
 1110+'prefs-watchlist-edits' => 'Keñeýtilgen baqılaw tiziminde körseterin eñ köp tüzetwleri:',
11011111 'prefs-misc' => 'Qosımşa',
11021112 'saveprefs' => 'Saqta',
11031113 'resetprefs' => 'Tasta',
@@ -1126,19 +1136,19 @@
11271137 'files' => 'Faýldar',
11281138
11291139 # User rights
1130 -'userrights-lookup-user' => 'Qatıswşı toptarın meñgerw',
1131 -'userrights-user-editname' => 'Qatıswşı atın engiziñiz:',
1132 -'editusergroup' => 'Qatıswşı toptarın öñdew',
1133 -'userrights-editusergroup' => 'Qatıswşı toptarın öñdew',
1134 -'saveusergroups' => 'Qatıswşı toptarın saqtaw',
1135 -'userrights-groupsmember' => 'Müşeligi:',
1136 -'userrights-groupsavailable' => 'Qatınawlı toptar:',
1137 -'userrights-groupshelp' => 'Qatıswşını üsteýtin ne alastatın toptardı talğañız.
 1140+'userrights-lookup-user' => 'Qatıswşı toptarın meñgerw',
 1141+'userrights-user-editname' => 'Qatıswşı atın engiziñiz:',
 1142+'editusergroup' => 'Qatıswşı toptarın öñdew',
 1143+'userrights-editusergroup' => 'Qatıswşı toptarın öñdew',
 1144+'saveusergroups' => 'Qatıswşı toptarın saqtaw',
 1145+'userrights-groupsmember' => 'Müşeligi:',
 1146+'userrights-groupsavailable' => 'Jetimdi toptar:',
 1147+'userrights-groupshelp' => 'Qatıswşını üsteýtin ne alastatın toptardı talğañız.
11381148 Talğawı öşirilgen toptar özgertilimeýdi. Toptardıñ talğawın CTRL + Sol jaq nuqwmen öşirwiñizge boladı.',
1139 -'userrights-reason' => 'Özgertw sebebi:',
1140 -'userrights-list' => '$1 müşesi bolğandıqtan $2 üsteý alasız jäne $3 alastaý alasız.',
1141 -'userrights-list-nogroups' => 'toptarsız',
1142 -'userrights-list-groups' => '$2 {{PLURAL:$1|top|toptar}}',
 1149+'userrights-reason' => 'Özgertw sebebi:',
 1150+'userrights-available-none' => 'Top müşeligin özgerte almaýsız.',
 1151+'userrights-available-add' => 'Qatıswşılardı $1 tobına üsteý alasız.',
 1152+'userrights-available-remove' => 'Qatıswşılardı $1 tobınan alastaý alasız.',
11431153
11441154 # Groups
11451155 'group' => 'Top:',
@@ -1270,6 +1280,7 @@
12711281
12721282 'license' => 'Lïcenzïyası',
12731283 'nolicense' => 'Eşteñe talğanbağan',
 1284+'license-nopreview' => '(Qarap şığw qatınalmaýdı)',
12741285 'upload_source_url' => ' (jaramdı, barşağa qatınawlı URL jaý)',
12751286 'upload_source_file' => ' (komp′ywteriñizdegi faýl)',
12761287
@@ -1281,19 +1292,22 @@
12821293 'ilsubmit' => 'İzdew',
12831294 'showlast' => 'Soñğı $1 faýl $2 surıptap körset.',
12841295 'byname' => 'atımen',
1285 -'bydate' => 'kün-aýmen',
 1296+'bydate' => 'kün-aýımen',
12861297 'bysize' => 'mölşerimen',
12871298 'imgdelete' => 'joyw',
12881299 'imgdesc' => 'sïpp.',
12891300 'imgfile' => 'faýl',
1290 -'imglegend' => 'Şarttı belgiler: (sïpp.) — faýl sïpattamasın körsetw/öñdew.',
1291 -'imghistory' => 'Faýl tarïxı',
1292 -'revertimg' => 'qaýt.',
1293 -'deleteimg' => 'joyw',
1294 -'deleteimgcompletely' => 'Osı faýldıñ barlıq nusqaların joý',
1295 -'imghistlegend' => 'Şarttı belgiler: (ağım.) = ağımdıq faýl, (joyw) = eski nusqasın
1296 -joyw, (qaý.) = eski nusqasına qaýtarw.
1297 -<br /><i>Qotarılğan faýldı körw üşin kün-aýına nuqıñız</i>.',
 1301+'filehist' => 'Faýl tarïxı',
 1302+'filehist-help' => 'Faýldıñ qaý waqıtta qalaý körinetin üşin Kün-aý/Waqıt degendi nuqıñız.',
 1303+'filehist-deleteall' => 'barlığın joý',
 1304+'filehist-deleteone' => 'bunı joý',
 1305+'filehist-revert' => 'qaýtar',
 1306+'filehist-current' => 'ağımdağı',
 1307+'filehist-datetime' => 'Kün-aý/Waqıt',
 1308+'filehist-user' => 'Qatıswşı',
 1309+'filehist-dimensions' => 'Ölşemderi',
 1310+'filehist-filesize' => 'Faýl mölşeri',
 1311+'filehist-comment' => 'Mändemesi',
12981312 'imagelinks' => 'Siltemeleri',
12991313 'linkstoimage' => 'Bul faýlğa kelesi better silteýdi:',
13001314 'nolinkstoimage' => 'Bul faýlğa eş bet siltemeýdi.',
@@ -1310,6 +1324,16 @@
13111325 'imagelist_description' => 'Sïpattaması',
13121326 'imagelist_search_for' => 'Swretti atımen izdew:',
13131327
 1328+# File reversion
 1329+'filerevert' => '$1 degendi qaýtarw',
 1330+'filerevert-legend' => 'Faýldı qaýtarw',
 1331+'filerevert-intro' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' degendi [$4, $2 kezindegi $3 nusqasına] qaýtardıñız.</span>',
 1332+'filerevert-comment' => 'Mändemesi:',
 1333+'filerevert-defaultcomment' => '$1, $2 kezindegi nusqasına qaýtardı',
 1334+'filerevert-submit' => 'Qaýtarw',
 1335+'filerevert-success' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' degen [$4, $2 kezindegi $3 nusqasına] qaýtarıldı.</span>',
 1336+'filerevert-badversion' => 'Keltirilgen waqıt belgisimen bul faýldıñ aldıñğı jergilikti nusqası joq.',
 1337+
13141338 # MIME search
13151339 'mimesearch' => 'Faýldı MIME türimen izdew',
13161340 'mimesearch-summary' => 'Bul bet faýldardı MIME türimen süzgilew mümkindigin beredi. Kirisi: «mağlumat türi»/«tür tarawı», mısalı <tt>image/jpeg</tt>.',
@@ -1348,8 +1372,8 @@
13491373 Bunıñ nätïjesinde orta eseppen ärbir betke '''$5''' ret tüzetw keledi, jäne ärbir tüzetwge '''$6''' ret qaraw keledi.
13501374
13511375 Ağımdıq [http://meta.wikimedia.org/wiki/Help:Job_queue tapsırım kezegi] uzındılığı: '''$7'''.",
1352 -'userstatstext' => "Mında {{PLURAL:$1|'''1''' tirkelgen qatıswşı|'''$1''' tirkelgen qatıswşı}} bar, sonıñ işinde
1353 - {{PLURAL:$2|'''1''' qatıswşıda|'''$2''' qatıswşıda}} (nemese '''$4 %''') $5 quqıqtarı bar",
 1376+'userstatstext' => "Mında {{PLURAL:$1|'''1''' tirkelgen [[{{ns:special}}:Listusers|qatıswşı]]|'''$1''' tirkelgen [[{{ns:special}}:Listusers|qatıswşı]]}} bar, sonıñ işinde
 1377+{{PLURAL:$2|'''1''' qatıswşıda|'''$2''' qatıswşıda}} (nemese '''$4 %''') $5 quqıqtarı bar",
13541378 'statistics-mostpopular' => 'Eñ köp qaralğan better',
13551379
13561380 'disambiguations' => 'Aýrıqtı better',
@@ -1459,6 +1483,7 @@
14601484 'allpagessubmit' => 'Ötw',
14611485 'allpagesprefix' => 'Mınadan bastalğan betterdi körsetw:',
14621486 'allpagesbadtitle' => 'Alınğan bet atawı jaramsız bolğan, nemese til-aralıq ne wïkï-aralıq bastawı bar boldı. Atawda qoldanwğa bolmaýtın nışandar bolwı mümkin.',
 1487+'allpages-bad-ns' => '{{SITENAME}} jobasında «$1» esim ayası joq.',
14631488
14641489 # Special:Listusers
14651490 'listusersfrom' => 'Mına qatıswşıdan bastap körsetw:',
@@ -1516,7 +1541,7 @@
15171542 'unwatchthispage' => 'Baqılawdı toqtatw',
15181543 'notanarticle' => 'Mağlumat beti emes',
15191544 'watchnochange' => 'Körsetilgen merzimde eşbir baqılanğan dana öñdelgen joq.',
1520 -'watchlist-details' => "Baqılaw tiziminde (talqılaw betterisiz) '''$1''' bet bar.",
 1545+'watchlist-details' => 'Baqılaw tiziminde (talqılaw betterisiz) {{PLURAL:$1|1 bet|$1 bet}} bar.',
15211546 'wlheader-enotif' => '* Eskertw xat jiberwi endirilgen.',
15221547 'wlheader-showupdated' => "* Soñğı kirgenimnen beri özgertilgen betterdi '''jwan''' ärbimen körset",
15231548 'watchmethod-recent' => 'baqılawlı betterdiñ jwıqtağı özgeristerin tekserw',
@@ -1594,7 +1619,6 @@
15951620 'deletionlog' => 'joyw jwrnalı',
15961621 'reverted' => 'Erterek nusqasına qaýtarılğan',
15971622 'deletecomment' => 'Joywdıñ sebebi',
1598 -'imagereverted' => 'Erterek nusqasına qaýtarw sätti ötti.',
15991623 'rollback' => 'Tüzetwlerdi qaýtarw',
16001624 'rollback_short' => 'Qaýtarw',
16011625 'rollbacklink' => 'qaýtarw',
@@ -1605,7 +1629,8 @@
16061630
16071631 Soñğı öñdewdi [[{{ns:user}}:$3|$3]] ([[{{ns:user_talk}}:$3|talqılawı]]) degendi jasağan.',
16081632 'editcomment' => 'Tüzetwdiñ bolğan mändemesi: «<i>$1</i>».', # only shown if there is an edit comment
1609 -'revertpage' => '[[{{ns:special}}:Contributions/$2|$2]] ([[{{ns:user_talk}}:$2|talqılawı]]) tüzetwlerin [[{{ns:user}}:$1|$1]] soñğı nusqasına qaýtardı',
 1633+'revertpage' => '[[{{ns:special}}:Contributions/$2|$2]] ([[{{ns:user_talk}}:$2|talqılawı]]) tüzetwlerinen qaýtarğan; [[{{ns:user}}:$1|$1]] soñğı nusqasına özgertti.',
 1634+'rollback-success' => '$1 tüzetwlerinen qaýtarğan; $2 soñğı nusqasına özgertti.',
16101635 'sessionfailure' => 'Kirw sessïyasında şataq bolğan sïyaqtı;
16111636 sessïyağa şabwıldawdardan qorğanw üşin, osı äreket toqtatıldı.
16121637 «Artqa» tüýmesin basıñız, jäne betti keri jükteñiz, sosın qaýtalap köriñiz.',
@@ -1652,46 +1677,55 @@
16531678 'restriction-level-all' => 'ärqaýsı deñgeýde',
16541679
16551680 # Undelete
1656 -'undelete' => 'Joýılğan betterdi qaraw',
1657 -'undeletepage' => 'Joýılğan betterdi qaraw jäne qaýtarw',
1658 -'viewdeletedpage' => 'Joýılğan betterdi qaraw',
1659 -'undeletepagetext' => 'Kelesi better joýıldı dep belgilengen, biraq mağlumatı murağatta jatqan,
 1681+'undelete' => 'Joýılğan betterdi qaraw',
 1682+'undeletepage' => 'Joýılğan betterdi qaraw jäne qaýtarw',
 1683+'viewdeletedpage' => 'Joýılğan betterdi qaraw',
 1684+'undeletepagetext' => 'Kelesi better joýıldı dep belgilengen, biraq mağlumatı murağatta jatqan,
16601685 sondıqtan keri qaýtarwğa äzir. Murağat merzim boýınşa tazalanıp turwı mümkin.',
1661 -'undeleteextrahelp' => "Bükil betti qaýtarw üşin, barlıq qabaşaqtardı bos qaldırıp
 1686+'undeleteextrahelp' => "Bükil betti qaýtarw üşin, barlıq qabaşaqtardı bos qaldırıp
16621687 '''''Qaýtar!''''' tüýmesin nuqıñız. Bölekşe qaýtarw orındaw üşin, qaýtaraýın degen nusqalarına säýkes
16631688 qabaşaqtarın belgileñiz de, jäne '''''Qaýtar!''''' tüýmesin nuqıñız. '''''Tasta''''' tüýmesin
16641689 nuqığanda mändeme awmağı men barlıq qabaşaqtar tazalanadı.",
1665 -'undeleterevisions' => '{{PLURAL:$1|Bir nusqa|$1 nusqa}} murağattaldı',
1666 -'undeletehistory' => 'Eger bet mağlumatın qaýtarsañız,tarïxında barlıq nusqalar da
 1690+'undeleterevisions' => '{{PLURAL:$1|Bir nusqa|$1 nusqa}} murağattaldı',
 1691+'undeletehistory' => 'Eger bet mağlumatın qaýtarsañız,tarïxında barlıq nusqalar da
16671692 qaýtarıladı. Eger joywdan soñ däl solaý atawımen jaña bet jasalsa, qaýtarılğan nusqalar
16681693 tarïxtıñ eñ adında körsetiledi, jäne körsetilip turğan bettiñ ağımdıq nusqası
16691694 özdiktik almastırılmaýdı. Faýl nusqalarınıñ qaýtarğanda şektewleri joýılatın umıtpañız.',
1670 -'undeleterevdel' => 'Eger bettiñ üstiñgi nusqası jarım-jartılaý joýılğan bolsa joýılğan qaýtarwı
 1695+'undeleterevdel' => 'Eger bettiñ üstiñgi nusqası jarım-jartılaý joýılğan bolsa joýılğan qaýtarwı
16711696 atqarılmaýdı. Osındaý jağdaýlarda, eñ jaña joýılğan nusqa belgilewin nemese jasırwın alastatıñız.
16721697 Körwiñizge ruqsat etilmegen faýl nusqaları qaýtarılmaýdı.',
1673 -'undeletehistorynoadmin' => 'Bul bet joýılğan. Joyw sebebi aldındağı öñdegen qatıswşılar
 1698+'undeletehistorynoadmin' => 'Bul bet joýılğan. Joyw sebebi aldındağı öñdegen qatıswşılar
16741699 egjeý-tegjeýlerimen birge tömendegi sïpattamasında körsetilgen.
16751700 Osı joýılğan nusqalardıñ mätini tek äkimşilerge qatınawlı.',
1676 -'undelete-revision' => '$2 kezindegi $1 degenniñ joýılğan nusqası:',
1677 -'undeleterevision-missing' => 'Jaramsız ne joğalğan nusqa. Siltemeñiz jaramsız bolwı mümkin, ne
 1701+'undelete-revision' => '$2 kezindegi $1 degenniñ joýılğan nusqası:',
 1702+'undeleterevision-missing' => 'Jaramsız ne joğalğan nusqa. Siltemeñiz jaramsız bolwı mümkin, ne
16781703 nusqa qaýtarılğan tüge nemese murağattan alastatılğan.',
1679 -'undeletebtn' => 'Qaýtar!',
1680 -'undeletereset' => 'Tasta',
1681 -'undeletecomment' => 'Mändemesi:',
1682 -'undeletedarticle' => '«[[$1]]» qaýtardı',
1683 -'undeletedrevisions' => '{{PLURAL:$1|Nusqanı|$1 nusqanı}} qaýtardı',
1684 -'undeletedrevisions-files' => '{{PLURAL:$1|Nusqanı|$1 nusqanı}} jäne {{PLURAL:$2|faýldı|$2 faýldı}} qaýtardı',
1685 -'undeletedfiles' => '{{PLURAL:$1|1 faýldı|$1 faýldı}} qaýtardı',
1686 -'cannotundelete' => 'Qaýtarw sätsiz bitti; tağı birew sizden burın sol betti qaýtarğan bolar.',
1687 -'undeletedpage' => "<big>'''$1 qaýtarıldı'''</big>
 1704+'undeletebtn' => 'Qaýtar!',
 1705+'undeletereset' => 'Tasta',
 1706+'undeletecomment' => 'Mändemesi:',
 1707+'undeletedarticle' => '«[[$1]]» qaýtardı',
 1708+'undeletedrevisions' => '$1 nusqa qaýtardı',
 1709+'undeletedrevisions-files' => '$1 nusqa jäne $2 faýl qaýtardı',
 1710+'undeletedfiles' => '$1 faýl qaýtardı',
 1711+'cannotundelete' => 'Qaýtarw sätsiz bitti; tağı birew sizden burın sol betti qaýtarğan bolar.',
 1712+'undeletedpage' => "<big>'''$1 qaýtarıldı'''</big>
16881713
16891714 Jwıqtağı joyw men qaýtarw jöninde [[{{ns:special}}:Log/delete|joyw jwrnalın]] qarañız.",
1690 -'undelete-header' => 'Jwıqtağı joýılğan better jöninde [[{{ns:special}}:Log/delete|joyw jwrnalın]] qarañız.',
1691 -'undelete-search-box' => 'Joýılğan betterdi izdew',
1692 -'undelete-search-prefix' => 'Mınadan bastalğan betterdi körset:',
1693 -'undelete-search-submit' => 'İzdew',
1694 -'undelete-no-results' => 'Joyw murağatında eşqandaý säýkes better tabılmadı.',
 1715+'undelete-header' => 'Jwıqtağı joýılğan better jöninde [[{{ns:special}}:Log/delete|joyw jwrnalın]] qarañız.',
 1716+'undelete-search-box' => 'Joýılğan betterdi izdew',
 1717+'undelete-search-prefix' => 'Mınadan bastalğan betterdi körset:',
 1718+'undelete-search-submit' => 'İzdew',
 1719+'undelete-no-results' => 'Joyw murağatında eşqandaý säýkes better tabılmadı.',
 1720+'undelete-filename-mismatch' => 'Faýldıñ $1 waqıt belgisi bar nusqası joýılmadı: faýl atawı säýkes emes',
 1721+'undelete-bad-store-key' => 'Faýldıñ $1 waqıt belgisi bar nusqası joýılmadı: faýl burınnan joq.',
 1722+'undelete-cleanup-error' => 'Paýdalanılmağan «$1» murağat faýlınıñ joyw qatesi.',
 1723+'undelete-missing-filearchive' => '$1 nömirli murağat faýlı qaýtarılmaýdı, sebebi ol derekqorda joq.
 1724+Bul keri qaýtarılğan mümkin.',
 1725+'undelete-error-short' => 'Faýldı keri qaýtarw qatesi: $1',
 1726+'undelete-error-long' => 'Mına faýldı keri qaýtarğanda qateler kezdesti:
16951727
 1728+$1',
 1729+
16961730 # Namespace form on various pages
16971731 'namespace' => 'Esim ayası:',
16981732 'invert' => 'Talğawdı kerilew',
@@ -1704,10 +1738,9 @@
17051739 'ucnote' => 'Tömende osı qatıswşı jasağan soñğı <b>$2</b> kündegi, soñğı <b>$1</b> özgerisi körsetledi.',
17061740 'uclinks' => 'Soñğı $2 kündegi, soñğı jasalğan $1 özgerisin qaraw.',
17071741 'uctop' => ' (üsti)',
 1742+'month' => 'Aýdağı (jäne erterekten):',
 1743+'year' => 'Jıldağı (jäne erterekten):',
17081744
1709 -'month' => 'Aý:',
1710 -'year' => 'Jıl:',
1711 -
17121745 'sp-contributions-newest' => 'Eñ jañasına',
17131746 'sp-contributions-oldest' => 'Eñ eskisine',
17141747 'sp-contributions-newer' => 'Jañalaw $1',
@@ -1722,19 +1755,18 @@
17231756 'sp-newimages-showfrom' => '$1 kezinen beri — jaña swretterdi körset',
17241757
17251758 # What links here
1726 -'whatlinkshere' => 'Siltegen better',
1727 -'notargettitle' => 'Aqırğı ataw joq',
1728 -'notargettext' => 'Osı äreket orındalatın nısana bet,
1729 -ne qatıswşı körsetilmegen.',
1730 -'linklistsub' => '(Siltemeler tizimi)',
1731 -'linkshere' => "'''[[:$1]]''' degenge mına better silteýdi:",
1732 -'nolinkshere' => "'''[[:$1]]''' degenge eş bet siltemeýdi.",
1733 -'nolinkshere-ns' => "Talğanğan esim ayasında '''[[:$1]]''' degenge eşqandaý bet siltemeýdi.",
1734 -'isredirect' => 'aýdatw beti',
1735 -'istemplate' => 'kiriktirw',
1736 -'whatlinkshere-prev' => '{{PLURAL:$1|aldıñğı|aldıñğı $1}}',
1737 -'whatlinkshere-next' => '{{PLURAL:$1|kelesi|kelesi $1}}',
1738 -'whatlinkshere-links' => '← siltemeler',
 1759+'whatlinkshere' => 'Siltegen better',
 1760+'notargettitle' => 'Aqırğı ataw joq',
 1761+'notargettext' => 'Osı äreket orındalatın nısana bet, ne qatıswşı körsetilmegen.',
 1762+'linklistsub' => '(Siltemeler tizimi)',
 1763+'linkshere' => "'''[[:$1]]''' degenge mına better silteýdi:",
 1764+'nolinkshere' => "'''[[:$1]]''' degenge eş bet siltemeýdi.",
 1765+'nolinkshere-ns' => "Talğanğan esim ayasında '''[[:$1]]''' degenge eşqandaý bet siltemeýdi.",
 1766+'isredirect' => 'aýdatw beti',
 1767+'istemplate' => 'kiriktirw',
 1768+'whatlinkshere-prev' => '{{PLURAL:$1|aldıñğı|aldıñğı $1}}',
 1769+'whatlinkshere-next' => '{{PLURAL:$1|kelesi|kelesi $1}}',
 1770+'whatlinkshere-links' => '← siltemeler',
17391771
17401772 # Block/unblock
17411773 'blockip' => 'Paýdalanwşını buğattaw',
@@ -1816,7 +1848,6 @@
18171849 'ipb_cant_unblock' => 'Qate: IP $1 buğattawı tabılmadı. Onıñ buğattawı öşirlgen sïyaqtı.',
18181850 'proxyblockreason' => 'IP jaýıñız aşıq proksï serverge jatatındıqtan buğattalğan. Ïnternet qızmetin jabdıqtawşıñızben, ne texnïkalıq medew qızmetimen qatınasıñız, jäne olarğa osı ote kürdeli qawıpsizdik şataq twralı aqparat beriñiz.',
18191851 'proxyblocksuccess' => 'Bitti.',
1820 -'sorbs' => 'DNSBL qara tizimi',
18211852 'sorbsreason' => 'Sizdiñ IP jaýıñız osı torapta qoldanılğan DNSBL qara tizimindegi aşıq proksï-server dep tabıladı.',
18221853 'sorbs_create_account_reason' => 'Sizdiñ IP jaýıñız osı torapta qoldanılğan DNSBL qara tizimindegi aşıq proksï-server dep tabıladı. Tirkelgi jasaý almaýsız.',
18231854
@@ -1850,7 +1881,7 @@
18511882 'movepagetext' => "Tömendegi ülgitti qoldanıp betterdi qaýta ataýdı,
18521883 barlıq tarïxın jaña atawğa jıljıtadı.
18531884 Burınğı bet atawı jaña atawğa aýdatatın bet boladı.
1854 -Eski atawına silteýtin siltemeler özgertilmeýdi; jıljıtwdan soñ
 1885+Eski atawına silteýtin siltemeler özgertilmeýdi; jıljıtwdan soñ
18551886 şınjırlı ne jaramsız aýdatwlar bar-joğın tekserip şığıñız.
18561887 Siltemeler burınğı joldawımen bılaýğı ötwin tekserwine
18571888 siz mindetti bolasız.
@@ -1878,8 +1909,9 @@
18791910 'move-watch' => 'Bul betti baqılaw',
18801911 'movepagebtn' => 'Betti jıljıt',
18811912 'pagemovedsub' => 'Jıljıtw sätti ayaqtaldı',
1882 -'articleexists' => 'Bılaý atawlı bet bar boldı, ne tañdağan
1883 -atawıñız jaramdı emes.
 1913+'movepage-moved' => "<big>'''«$1» degen «$2» degenge jıljıtıldı'''</big>", # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.
 1914+'articleexists' => 'Bılaý atawlı bet bar boldı, ne
 1915+tañdağan atawıñız jaramdı emes.
18841916 Basqa ataw tandañız',
18851917 'talkexists' => "'''Bettiñ özi sätti jıljıtıldı, biraq talqılaw beti birge jıljıtılmadı, onıñ sebebi jaña atawdıñ talqılaw beti bar tüge. Bunı qolmen qosıñız.'''",
18861918 'movedto' => 'mınağan jıljıtıldı:',
@@ -1912,13 +1944,14 @@
19131945 bir jolda bir ataw, jäne tandañız: ne ağımdıq nusqasın, barlıq eski nusqaları men
19141946 jäne tarïxı joldarı men birge, ne däl ağımdıq nusqasın, soñğı öñdew twralı aqparatı men birge.
19151947
1916 -Soñğı jağdaýda siltemeni de, mısalı {{{{ns:mediawiki}}:mainpage}} beti üşin [[{{ns:special}}:Export/{{MediaWiki:mainpage}}]] qoldanwğa boladı.',
 1948+Soñğı jağdaýda siltemeni de, mısalı «{{{{ns:mediawiki}}:mainpage}}» beti üşin [[{{ns:special}}:Export/{{MediaWiki:mainpage}}]] qoldanwğa boladı.',
19171949 'exportcuronly' => 'Tolıq tarïxın emes, tek ağımdıq nusqasın kiristiriñiz',
19181950 'exportnohistory' => "----
19191951 '''Añğartpa:''' Önimdilik äseri sebepterinen, better tolıq tarïxın sırtqa berwi öşirilgen.",
19201952 'export-submit' => 'Sırtqa ber',
19211953 'export-addcattext' => 'Mına sanattağı betterdi üstew:',
19221954 'export-addcat' => 'Üste',
 1955+'export-download' => 'Faýl etip saqtawdı usınw',
19231956
19241957 # Namespace 8 related
19251958 'allmessages' => 'Jüýe xabarları',
@@ -2157,11 +2190,19 @@
21582191 'patrol-log-page' => 'Küzet jwrnalı',
21592192 'patrol-log-line' => '$2 kezinde $1 degendi küzette dep belgiledi $3',
21602193 'patrol-log-auto' => '(özdiktik)',
2161 -'patrol-log-diff' => 'r$1',
 2194+'patrol-log-diff' => '№ $1',
21622195
21632196 # Image deletion
2164 -'deletedrevision' => 'Mına eski nusqasın joýdı: $1.',
 2197+'deletedrevision' => 'Mına eski nusqasın joýdı: $1.',
 2198+'filedeleteerror-short' => 'Faýl joyw qatesi: $1',
 2199+'filedeleteerror-long' => 'Mına faýldı joýğanda qateler kezdesti:
21652200
 2201+$1',
 2202+'filedelete-missing' => '«$1» faýlı joýılmaýdı, sebebi ol joq.',
 2203+'filedelete-old-unregistered' => 'Faýldın keltirilgen «$1» nusqası derekqorda joq.',
 2204+'filedelete-current-unregistered' => 'Keltirilgen «$1» faýl derekqorda joq.',
 2205+'filedelete-archive-read-only' => '«$1» degen murağat qaltasına vebserver jaza almaýdı.',
 2206+
21662207 # Browsing diffs
21672208 'previousdiff' => '← Aldıñğımen aýırması',
21682209 'nextdiff' => 'Kelesimen aýırması →',
@@ -2182,6 +2223,12 @@
21832224 'showhidebots' => '(bottardı $1)',
21842225 'noimages' => 'Köretin eşteñe joq.',
21852226
 2227+# Bad image list
 2228+'bad_image_list' => 'Pişimi tömendegideý:
 2229+
 2230+Tek tizim danaları (* nışanımen bastalıtın joldar) esepteledi. Joldıñ birinşi siltemesi jaramsız swretke siltew qajet.
 2231+Sol joldağı keýingi ärbir siltemeler eren bolıp esepteledi, mısalı jol işindegi kezdesetin swreti bar maqalalar.',
 2232+
21862233 # Variants for Kazakh language
21872234 'variantname-kk-tr' => 'Latın',
21882235 'variantname-kk-kz' => 'Кирил',
@@ -2529,8 +2576,9 @@
25302577 : ''$2''
25312578 Osı betti şınınan qaýta jasawın rastañız.",
25322579 'recreate' => 'Qaýta jasaw',
2533 -'unit-pixel' => ' px',
25342580
 2581+'unit-pixel' => ' px',
 2582+
25352583 # HTML dump
25362584 'redirectingto' => '[[$1]] betine aýdatwda…',
25372585
@@ -2568,7 +2616,7 @@
25692617 # Auto-summaries
25702618 'autosumm-blank' => 'Bettiñ barlıq mağlumatın alastattı',
25712619 'autosumm-replace' => 'Betti «$1» degenmen almastırdı',
2572 -'autoredircomment' => '[[$1]] degenge aýdadı', # This should be changed to the new naming convention, but existed beforehand
 2620+'autoredircomment' => '[[$1]] degenge aýdadı',
25732621 'autosumm-new' => 'Jaña bette: $1',
25742622
25752623 # Size units
@@ -2580,14 +2628,44 @@
25812629 # Live preview
25822630 'livepreview-loading' => 'Jüktewde…',
25832631 'livepreview-ready' => 'Jüktewde… Daýın!',
2584 -'livepreview-failed' => 'Twra qarap şığw amalı bolmadı!<br />Kädimgi qarap şığw ädisin baýqap köriñiz.',
2585 -'livepreview-error' => 'Mınağan qosılw amalı bolmadı: $1 «$2»<br />Kädimgi qarap şığw ädisin baýqap köriñiz.',
 2632+'livepreview-failed' => 'Twra qarap şığw amalı bolmadı! Kädimgi qarap şığw ädisin baýqap köriñiz.',
 2633+'livepreview-error' => 'Mınağan qosılw amalı bolmadı: $1 «$2». Kädimgi qarap şığw ädisin baýqap köriñiz.',
25862634
25872635 # Friendlier slave lag warnings
25882636 'lag-warn-normal' => '$1 sekwndtan jañalaw özgerister bul tizimde körsetilmewi mümkin.',
2589 -'lag-warn-high' => 'Derekqor serveri zor keşigwi sebebinen, $1 sekwndtan jañalaw özgerister
2590 -bul tizimde körsetilmewi mümkin.',
 2637+'lag-warn-high' => 'Derekqor serveri zor keşigwi sebebinen, $1 sekwndtan jañalaw özgerister bul tizimde körsetilmewi mümkin.',
25912638
2592 -);
 2639+# Watchlist editor
 2640+'watchlistedit-numitems' => 'Baqılaw tizimiñizde, talqılaw bettersiz, {{PLURAL:$1|1 ataw|$1 ataw}} bar.',
 2641+'watchlistedit-noitems' => 'Baqılaw tizimiñizde eş ataw joq.',
 2642+'watchlistedit-clear-title' => 'Baqılaw tizimdi tazalaw',
 2643+'watchlistedit-clear-legend' => 'Baqılaw tizimdi tazalaw',
 2644+'watchlistedit-clear-confirm' => 'Bul baqılaw tizimiñizden barlıq atawlardı alastaýdı. Bunı rastan
 2645+istegiñiz kele me? Tağı da [[{{ns:special}}:Watchlist/edit|jeke atawlardı alastaý]] alasız.',
 2646+'watchlistedit-clear-submit' => 'Tazalaw',
 2647+'watchlistedit-clear-done' => 'Baqılaw tizimiñiz tazalatıldı. Barlıq atawlar alastatıldı.',
 2648+'watchlistedit-normal-title' => 'Baqılaw tizimdi öñdew',
 2649+'watchlistedit-normal-legend' => 'Baqılaw tizimdegi atawlardı alastaw',
 2650+'watchlistedit-normal-explain' => 'Baqılaw tizimiñizdegi atawlar tömende körsetiledi. Atawdı alastaw üşin, qasındağı
 2651+qabaşaqtı belgileñiz, jäne Atawlardı alastaw degendi nuqıñız. Tağı da [[{{ns:special}}:Watchlist/raw|qam tizimdi öñdeý]],
 2652+nemese [[Special:Watchlist/clear|barlıq atawlardı alastaý]] alasız.',
 2653+'watchlistedit-normal-submit' => 'Atawlardı alastaw',
 2654+'watchlistedit-normal-done' => '{{PLURAL:$1|1 ataw|$1 ataw}} baqılaw tizimiñizden alastaldı:',
 2655+'watchlistedit-raw-title' => 'Qam baqılaw tizimdi öñdew',
 2656+'watchlistedit-raw-legend' => 'Qam baqılaw tizimdi öñdew',
 2657+'watchlistedit-raw-explain' => 'Baqılaw tizimiñizdegi atawlar tömende körsetiledi, jäne de tizmden üstep jäne
 2658+alastap öñdewge boladı; bir jolda bir ataw keledi. Bitirgennen soñ Baqılaw tizimdi jañartw degendi nuqıñız.
 2659+Tağı da [Special:Watchlist/edit|qalıptı öñdewiş paýdalana]] alasız.',
 2660+'watchlistedit-raw-titles' => 'Atawlar:',
 2661+'watchlistedit-raw-submit' => 'Baqılaw tizimdi jañartw',
 2662+'watchlistedit-raw-done' => 'Baqılaw tizimiñiz jañartıldı.',
 2663+'watchlistedit-raw-added' => '{{PLURAL:$1|1 ataw|$1 ataw}} üsteldi:',
 2664+'watchlistedit-raw-removed' => '{{PLURAL:$1|1 ataw|$1 ataw}} alastandı:',
25932665
 2666+# Watchlist editing tools
 2667+'watchlisttools-view' => 'Qatıstı özgeristerdi qaraw',
 2668+'watchlisttools-edit' => 'Baqılaw tizimdi qaraw jäne öñdew',
 2669+'watchlisttools-raw' => 'Qam baqılaw tizimdi öñdew',
 2670+'watchlisttools-clear' => 'Baqılaw tizimdi tazalaw',
25942671
 2672+);
Index: branches/liquidthreads/languages/messages/MessagesFr.php
@@ -160,6 +160,7 @@
161161 'category_header' => 'Pages dans la catégorie « $1 »',
162162 'subcategories' => 'Sous-catégories',
163163 'category-media-header' => 'Fichiers multimédia dans la catégorie « $1 »',
 164+'category-empty' => "''Cette catégorie ne contient aucun article, sous-catégorie ou fichier multimédia.''",
164165
165166 'mainpagetext' => "<big>'''MediaWiki a été installé avec succès.'''</big>",
166167 'mainpagedocfooter' => 'Consultez le [http://meta.wikimedia.org/wiki/Aide:Contenu Guide de l’utilisateur] pour plus d’informations sur l’utilisation de ce logiciel.
@@ -184,7 +185,6 @@
185186 'moredotdotdot' => 'Et plus...',
186187 'mypage' => 'Page perso',
187188 'mytalk' => 'Page de discussion',
188 -'mywatchlist' => 'Liste de suivi',
189189 'anontalk' => 'Discussion avec cette adresse IP',
190190 'navigation' => 'Navigation',
191191
@@ -340,10 +340,13 @@
341341 Veuillez rapporter cette erreur à un administrateur, en lui indiquant l’adresse de la page fautive.',
342342 'readonly_lag' => 'La base de donnée a été automatiquement verrouillée pendant que les serveurs secondaires rattrapent leur retard sur le serveur principal.',
343343 'internalerror' => 'Erreur interne',
 344+'internalerror_info' => 'Erreur interne : $1',
344345 'filecopyerror' => 'Impossible de copier le fichier « $1 » vers « $2 ».',
345346 'filerenameerror' => 'Impossible de renommer le fichier « $1 » en « $2 ».',
346347 'filedeleteerror' => 'Impossible de supprimer le fichier « $1 ».',
 348+'directorycreateerror' => 'Impossible de créer le dossier « $1 ».',
347349 'filenotfound' => 'Impossible de trouver le fichier « $1 ».',
 350+'fileexistserror' => 'Impossible d’écrire dans le dossier « $1 » : le fichier existe',
348351 'unexpected' => 'Valeur inattendue : « $1 » = « $2 ».',
349352 'formerror' => 'Erreur : Impossible de soumettre le formulaire',
350353 'badarticleerror' => 'Cette action ne peut pas être effectuée sur cette page.',
@@ -364,8 +367,11 @@
365368 'protectedinterface' => 'Cette page fournit du texte d’interface pour le logiciel et est protégée pour éviter les abus.',
366369 'editinginterface' => "'''Attention :''' vous éditez une page utilisée pour créer le texte de l’interface du logiciel. Les changements se répercuteront, selon le contexte, sur toutes ou certaines pages visibles par les autres utilisateurs.",
367370 'sqlhidden' => '(Requête SQL cachée)',
368 -'cascadeprotected' => 'Cette page est actuellement protégée car incluse dans {{PLURAL:$1|la page suivante|les pages suivantes}}, ayant été protégée avec l’option « protection en cascade » activée :',
369 -'namespaceprotected' => "Vous n’avez pas la permission de modifier les pages de l’espace de noms « '''$1''' ».",
 371+'cascadeprotected' => 'Cette page est actuellement protégée car incluse dans {{PLURAL:$1|la page suivante|les pages suivantes}}, ayant été protégée avec l’option « protection en cascade » activée :
 372+$2',
 373+'namespaceprotected' => "Vous n’avez pas la permission de modifier les pages de l’espace de noms « '''$1''' ».",
 374+'customcssjsprotected' => "Vous n’avez pas la permission d'éditer cette page parce qu’elle contient des préférences d’autres utilisateurs.",
 375+'ns-specialprotected' => 'Les pages dans l’espace de noms spécial ne peuvent pas être modifiées.',
370376
371377 # Login and logout pages
372378 'logouttitle' => 'Déconnexion',
@@ -421,6 +427,7 @@
422428 'nouserspecified' => 'Vous devez saisir un nom d’utilisateur.',
423429 'wrongpassword' => 'Le mot de passe est incorrect. Veuillez essayer à nouveau.',
424430 'wrongpasswordempty' => 'Vous n’avez pas entré de mot de passe. Veuillez essayer à nouveau.',
 431+'passwordtooshort' => 'Votre mot de passe est trop court. Il doit contenir au moins $1 caractères et être différent de votre nom d’utilisateur.',
425432 'mailmypassword' => 'Envoyez-moi un nouveau mot de passe',
426433 'passwordremindertitle' => 'Votre nouveau mot de passe sur {{SITENAME}}',
427434 'passwordremindertext' => 'Quelqu’un (probablement vous) ayant l’adresse IP $1 a demandé à ce qu’un nouveau mot de passe vous soit envoyé pour {{SITENAME}} ($4).
@@ -499,20 +506,33 @@
500507 Le blocage a été effectué par $1 pour la raison suivante : ''$2''.
501508
502509 Vous pouvez contacter $1 ou un autre [[{{MediaWiki:grouppage-sysop}}|administrateur]] pour en discuter. Vous ne pouvez utiliser la fonction « Envoyer un courriel à cet utilisateur » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]]. Votre adresse IP actuelle est $3 et votre identifiant de blocage est #$5. Veuillez inclure cette adresse dans toute requête.
503 -:Expiration du blocage : $6
504 -:Compte bloqué : $7.",
 510+* Début du blocage : $8
 511+* Expiration du blocage : $6
 512+* Compte bloqué : $7.",
505513 'autoblockedtext' => "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.
506514 La raison donnée est :
507515
508516 :''$2''
509517
510 -Expiration du blocage : $6
 518+* Début du blocage : $8
 519+* Expiration du blocage : $6
511520
512521 Vous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.
513522
514 -Si vous avez donné une adresse e-mail valide dans vos [[Special:Preferences|préférences]], vous pouvez utiliser la fonction « Envoyer un message à cet utilisateur » pour contacter un administrateur.
 523+Si vous avez donné une adresse e-mail valide dans vos [[Special:Preferences|préférences]] et que son utilisation ne vous est pas interdite, vous pouvez utiliser la fonction « Envoyer un message à cet utilisateur » pour contacter un administrateur.
515524
516 -Votre identifiant de blocage est $5. Veuillez le préciser dans toute requête.",
 525+Votre adresse IP est $3 et identifiant de blocage est #$5. Veuillez les préciser dans toute requête.",
 526+'blockedtext-concise' => '$7, qui correspond à votre nom d’utilisateur ou adresse IP a été bloqué par $1. La raison était $2. La date d’expiration du blocage est $6. Vous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.
 527+
 528+Si vous avez donné une adresse e-mail valide dans vos [[Special:Preferences|préférences]] et que son utilisation ne vous est pas interdite, vous pouvez utiliser la fonction « Envoyer un message à cet utilisateur » pour contacter un administrateur.
 529+
 530+Votre adresse IP est $3 et identifiant de blocage est #$5. Veuillez les préciser dans toute requête',
 531+'autoblockedtext-concise' => 'Votre adresse IP a récemment été utilisée par un utilisateur bloqué. Le blocage a été effectué par $1. La raison était $2. La date d’expiration du blocage était $6.
 532+Vous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.
 533+
 534+Si vous avez donné une adresse e-mail valide dans vos [[Special:Preferences|préférences]] et que son utilisation ne vous est pas interdite, vous pouvez utiliser la fonction « Envoyer un message à cet utilisateur » pour contacter un administrateur.
 535+
 536+Votre adresse IP est $3 et identifiant de blocage est #$5. Veuillez les préciser dans toute requête',
517537 'blockedoriginalsource' => "Le code source de '''$1''' est indiqué ci-dessous :",
518538 'blockededitsource' => "Le contenu de '''vos modifications''' apportées à '''$1''' est indiqué ci-dessous :",
519539 'whitelistedittitle' => 'Enregistrement nécessaire pour modifier le contenu',
@@ -585,6 +605,9 @@
586606 'edittools' => '<!-- Tout texte entré ici sera affiché sous les boîtes de modification ou d’import de fichier. -->',
587607 'nocreatetitle' => 'Création de page limitée',
588608 'nocreatetext' => 'Ce site a restreint la possibilité de créer de nouvelles pages. Vous pouvez revenir en arrière et modifier une page existante, [[Special:Userlogin|vous connecter ou créer un compte]].',
 609+'nocreate-loggedin' => 'Vous n’avez pas la permission de créer de nouvelles pages sur ce wiki.',
 610+'permissionserrors' => 'Erreur de permissions',
 611+'permissionserrorstext' => 'Vous n’avez pas la permission d’effectuer l’opération demandée pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :',
589612 'recreate-deleted-warn' => "'''Attention : Vous êtes en train de recréer une page qui a été précédemment supprimée.'''
590613
591614 Demandez-vous s’il est réellement approprié de la recréer en vous référant au journal des suppressions affiché ci-dessous :",
@@ -766,15 +789,15 @@
767790 'files' => 'Fichiers',
768791
769792 # User rights
770 -'userrights-lookup-user' => 'Gestion des droits utilisateur',
771 -'userrights-user-editname' => 'Entrer un nom d’utilisateur :',
772 -'editusergroup' => 'Modification des groupes utilisateurs',
773 -'userrights-editusergroup' => 'Modifier les groupes de l’utilisateur',
774 -'saveusergroups' => 'Sauvegarder les groupes utilisateur',
775 -'userrights-groupsmember' => 'Membre de :',
776 -'userrights-groupsavailable' => 'Groupes disponibles :',
777 -'userrights-groupshelp' => 'Choisissez les groupes desquels vous voulez retirer ou rajouter l’utilisateur. Les groupes non sélectionnés ne seront pas modifiés. Vous pouvez désélectionner un groupe avec CTRL + clic gauche.',
778 -'userrights-reason' => 'Motif du changement :',
 793+'userrights-lookup-user' => 'Gestion des droits utilisateur',
 794+'userrights-user-editname' => 'Entrer un nom d’utilisateur :',
 795+'editusergroup' => 'Modification des groupes utilisateurs',
 796+'userrights-editusergroup' => 'Modifier les groupes de l’utilisateur',
 797+'saveusergroups' => 'Sauvegarder les groupes utilisateur',
 798+'userrights-groupsmember' => 'Membre de :',
 799+'userrights-groupsavailable' => 'Groupes disponibles :',
 800+'userrights-groupshelp' => 'Choisissez les groupes desquels vous voulez retirer ou rajouter l’utilisateur. Les groupes non sélectionnés ne seront pas modifiés. Vous pouvez désélectionner un groupe avec CTRL + clic gauche.',
 801+'userrights-reason' => 'Motif du changement :',
779802 'userrights-available-none' => 'Vous ne pouvez pas changer l’appartenance aux différents groupes.',
780803 'userrights-available-add' => 'Vous pouvez ajouter des utilisateurs à $1.',
781804 'userrights-available-remove' => 'Vous pouvez enlever des utilisateurs de $1.',
@@ -909,6 +932,7 @@
910933
911934 'license' => 'Licence',
912935 'nolicense' => 'Aucune licence sélectionnée',
 936+'license-nopreview' => '(Prévisualisation impossible)',
913937 'upload_source_url' => ' (une URL valide et accessible publiquement)',
914938 'upload_source_file' => ' (un fichier sur votre ordinateur)',
915939
@@ -925,14 +949,17 @@
926950 'imgdelete' => 'suppr',
927951 'imgdesc' => 'page de l’image',
928952 'imgfile' => 'fichier',
929 -'imglegend' => 'Légende : (page de l’image) = afficher/modifier la description de l’image.',
930 -'imghistory' => 'Historique de l’image',
931 -'revertimg' => 'rétab',
932 -'deleteimg' => 'suppr',
933 -'deleteimgcompletely' => 'suppr',
934 -'imghistlegend' => 'Légende : (actu) = ceci est l’image actuelle, (suppr) = supprimer
935 -cette ancienne version, (rétab) = rétablir cette ancienne version.
936 -<br /><i>Cliquez sur la date pour voir l’image copiée à cette date</i>.',
 953+'filehist' => 'Historique du fichier',
 954+'filehist-help' => "Cliquer sur une date et une heure pour voir le fichier tel qu'il était à ce moment-l",
 955+'filehist-deleteall' => 'tout supprimer',
 956+'filehist-deleteone' => 'supprimer ceci',
 957+'filehist-revert' => 'révoquer',
 958+'filehist-current' => 'actuel',
 959+'filehist-datetime' => 'Date et heure',
 960+'filehist-user' => 'Utilisateur',
 961+'filehist-dimensions' => 'Dimensions',
 962+'filehist-filesize' => 'Taille du fichier',
 963+'filehist-comment' => 'Commentaire',
937964 'imagelinks' => 'Pages contenant l’image',
938965 'linkstoimage' => 'Les pages ci-dessous contiennent cette image :',
939966 'nolinkstoimage' => 'Aucune page ne contient cette image.',
@@ -949,11 +976,21 @@
950977 'imagelist_description' => 'Description',
951978 'imagelist_search_for' => 'Recherche pour l’image nommée :',
952979
 980+# File reversion
 981+'filerevert' => 'Révoquer $1',
 982+'filerevert-legend' => 'Révoquer le fichier',
 983+'filerevert-intro' => '<span class="plainlinks">Vous allez révoquer \'\'\'[[Media:$1|$1]]\'\'\' jusqu\'à [$4 la version du $2 à $3].</span>',
 984+'filerevert-comment' => 'Comment:',
 985+'filerevert-defaultcomment' => 'Révoqué jusqu’à la version du $1 à $2',
 986+'filerevert-submit' => 'Révoquer',
 987+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\' a été révoqué jusqu\'à [$4 la version du $2 à $3].</span>',
 988+'filerevert-badversion' => "Il n'y a pas de version plus ancienne du fichier avec le Timestamp donné.",
 989+
953990 # MIME search
954 -'mimesearch' => 'Recherche par type MIME',
 991+'mimesearch' => 'Recherche par type MIME',
955992 'mimesearch-summary' => 'Cette page spéciale permet de chercher des fichiers en fonction de leur type MIME. Entrée : type/sous-type, par exemple <tt>image/jpeg</tt>.',
956 -'mimetype' => 'Type MIME :',
957 -'download' => 'Téléchargement',
 993+'mimetype' => 'Type MIME :',
 994+'download' => 'Téléchargement',
958995
959996 # Unwatched pages
960997 'unwatchedpages' => 'Pages non suivies',
@@ -967,7 +1004,7 @@
9681005 'unusedtemplateswlh' => 'autres liens',
9691006
9701007 # Random redirect
971 -'randomredirect' => 'Une page de redirection au hasard',
 1008+'randomredirect' => 'Une page de redirection au hasard',
9721009 'randomredirect-nopages' => 'Il n’y a aucune page de redirection dans cet espace de nom.',
9731010
9741011 # Statistics
@@ -1001,7 +1038,7 @@
10021039 'brokenredirects-edit' => '(modifier)',
10031040 'brokenredirects-delete' => '(supprimer)',
10041041
1005 -'withoutinterwiki' => 'Pages sans liens interlangues',
 1042+'withoutinterwiki' => 'Pages sans liens interlangues',
10061043 'withoutinterwiki-header' => 'Les pages suivantes ne possèdent pas de liens vers d’autres langues :',
10071044
10081045 'fewestrevisions' => 'Articles les moins modifiés',
@@ -1034,7 +1071,7 @@
10351072 'allpages' => 'Toutes les pages',
10361073 'prefixindex' => 'Toutes les pages par premières lettres',
10371074 'randompage' => 'Une page au hasard',
1038 -'randompage-nopages' => 'Il n’y a pas de pages dans cet espace de nom.',
 1075+'randompage-nopages' => 'Il n’y a pas de pages dans cet espace de nom.',
10391076 'shortpages' => 'Pages courtes',
10401077 'longpages' => 'Pages longues',
10411078 'deadendpages' => 'Pages en impasse',
@@ -1126,6 +1163,7 @@
11271164
11281165 # Watchlist
11291166 'watchlist' => 'Liste de suivi',
 1167+'mywatchlist' => 'Liste de suivi',
11301168 'watchlistfor' => "(pour l’utilisateur '''$1''')",
11311169 'nowatchlist' => 'Votre liste de suivi ne contient aucun article.',
11321170 'watchlistanontext' => 'Pour pouvoir afficher ou éditer les éléments de votre liste de suivi, vous devez vous $1.',
@@ -1164,17 +1202,17 @@
11651203 'watching' => 'Suivi...',
11661204 'unwatching' => 'Fin du suivi...',
11671205
1168 -'enotif_mailer' => 'Système d’expédition de notification de {{SITENAME}}',
1169 -'enotif_reset' => 'Marquer toutes les pages comme visitées',
1170 -'enotif_newpagetext' => 'Ceci est une nouvelle page.',
1171 -'enotif_impersonal_salutation' => 'Utilisateur de {{SITENAME}}',
1172 -'changed' => 'modifiée',
1173 -'created' => 'créée',
1174 -'enotif_subject' => 'La page $PAGETITLE de {{SITENAME}} a été $CHANGEDORCREATED par $PAGEEDITOR',
1175 -'enotif_lastvisited' => 'Consultez $1 pour tous les changements depuis votre dernière visite.',
1176 -'enotif_lastdiff' => 'Consultez $1 pour voir cette modification.',
1177 -'enotif_anon_editor' => 'utilisateur non-enregistré $1',
1178 -'enotif_body' => 'Cher $WATCHINGUSERNAME,
 1206+'enotif_mailer' => 'Système d’expédition de notification de {{SITENAME}}',
 1207+'enotif_reset' => 'Marquer toutes les pages comme visitées',
 1208+'enotif_newpagetext' => 'Ceci est une nouvelle page.',
 1209+'enotif_impersonal_salutation' => 'Utilisateur de {{SITENAME}}',
 1210+'changed' => 'modifiée',
 1211+'created' => 'créée',
 1212+'enotif_subject' => 'La page $PAGETITLE de {{SITENAME}} a été $CHANGEDORCREATED par $PAGEEDITOR',
 1213+'enotif_lastvisited' => 'Consultez $1 pour tous les changements depuis votre dernière visite.',
 1214+'enotif_lastdiff' => 'Consultez $1 pour voir cette modification.',
 1215+'enotif_anon_editor' => 'utilisateur non-enregistré $1',
 1216+'enotif_body' => 'Cher $WATCHINGUSERNAME,
11791217
11801218 la page de {{SITENAME}} $PAGETITLE a été $CHANGEDORCREATED le $PAGEEDITDATE par $PAGEEDITOR, voyez $PAGETITLE_URL pour la version actuelle.
11811219
@@ -1218,7 +1256,6 @@
12191257 'deletionlog' => 'journal',
12201258 'reverted' => 'Rétablissement de la version précédente',
12211259 'deletecomment' => 'Motif de la suppression',
1222 -'imagereverted' => 'La version précédente a été rétablie.',
12231260 'rollback' => 'révoquer modifications',
12241261 'rollback_short' => 'Révoquer',
12251262 'rollbacklink' => 'révoquer',
@@ -1273,37 +1310,45 @@
12741311 'restriction-level-all' => 'Tous',
12751312
12761313 # Undelete
1277 -'undelete' => 'Voir les pages supprimées',
1278 -'undeletepage' => 'Voir et restaurer la page supprimée',
1279 -'viewdeletedpage' => 'Historique de la page supprimée',
1280 -'undeletepagetext' => 'Ces pages ont été supprimées et se trouvent dans l’archive, elles sont toujours dans la base de données et peuvent être restaurées.
 1314+'undelete' => 'Voir les pages supprimées',
 1315+'undeletepage' => 'Voir et restaurer la page supprimée',
 1316+'viewdeletedpage' => 'Historique de la page supprimée',
 1317+'undeletepagetext' => 'Ces pages ont été supprimées et se trouvent dans l’archive, elles sont toujours dans la base de données et peuvent être restaurées.
12811318 L’archive peut être effacée périodiquement.',
1282 -'undeleteextrahelp' => "Pour restaurer toutes les versions de cette page, laissez vierges toutes les cases à cocher, puis cliquez sur '''''Procéder à la restauration'''''.<br />Pour procéder à une restauration sélective, cochez les cases correspondant aux versions qui sont à restaurer, puis cliquez sur '''''Procéder à la restauration'''''.<br />En cliquant sur le bouton '''''Réinitialiser''''', la boîte de résumé et les cases cochées seront remises à zéro.",
1283 -'undeleterevisions' => '$1 {{PLURAL:$1|révision archivée|révisions archivées}}',
1284 -'undeletehistory' => 'Si vous restaurez la page, toutes les révisions seront restaurées dans l’historique.
 1319+'undeleteextrahelp' => "Pour restaurer toutes les versions de cette page, laissez vierges toutes les cases à cocher, puis cliquez sur '''''Procéder à la restauration'''''.<br />Pour procéder à une restauration sélective, cochez les cases correspondant aux versions qui sont à restaurer, puis cliquez sur '''''Procéder à la restauration'''''.<br />En cliquant sur le bouton '''''Réinitialiser''''', la boîte de résumé et les cases cochées seront remises à zéro.",
 1320+'undeleterevisions' => '$1 {{PLURAL:$1|révision archivée|révisions archivées}}',
 1321+'undeletehistory' => 'Si vous restaurez la page, toutes les révisions seront restaurées dans l’historique.
12851322
12861323 Si une nouvelle page avec le même nom a été créée depuis la suppression, les révisions restaurées apparaîtront dans l’historique antérieur et la version courante ne sera pas automatiquement remplacée.',
1287 -'undeleterevdel' => "La restauration ne sera pas effectuée si, au final, la version la plus récente de la page sera partiellement supprimée. Dans ce cas, vous devez déselectionner les versions les plus récentes (en haut). Les versions des fichiers auxquelles vous n’avez pas accès ne seront pas restaurées.",
1288 -'undeletehistorynoadmin' => 'Cet article a été supprimé. Le motif de la suppression est indiqué dans le résumé ci-dessous, avec les détails des utilisateurs qui l’ont modifié avant sa suppression. Le contenu de ces versions n’est accessible qu’aux administrateurs.',
1289 -'undelete-revision' => 'Version supprimée de $1, le $2 :',
1290 -'undeleterevision-missing' => 'Version invalide ou manquante. Vous avez peut-être un mauvais lien, ou la version a été restaurée ou supprimée de l’archive.',
1291 -'undeletebtn' => 'Restaurer',
1292 -'undeletereset' => 'Réinitialiser',
1293 -'undeletecomment' => 'Résumé :',
1294 -'undeletedarticle' => 'a restauré « [[$1]] »',
1295 -'undeletedrevisions' => '$1 {{PLURAL:$1|version restaurée|versions restaurées}}',
1296 -'undeletedrevisions-files' => '$1 {{PLURAL:$1|version|versions}} et $2 {{PLURAL:$2|fichier|fichiers}} restaurés',
1297 -'undeletedfiles' => '$1 {{PLURAL:$1|fichier restauré|fichiers restaurés}}',
1298 -'cannotundelete' => 'La restauration a échoué. Un autre utilisateur a probablement restauré la page avant.',
1299 -'undeletedpage' => "<big>'''La page $1 a été restaurée.'''</big>
 1324+'undeleterevdel' => 'La restauration ne sera pas effectuée si, au final, la version la plus récente de la page sera partiellement supprimée. Dans ce cas, vous devez déselectionner les versions les plus récentes (en haut). Les versions des fichiers auxquelles vous n’avez pas accès ne seront pas restaurées.',
 1325+'undeletehistorynoadmin' => 'Cet article a été supprimé. Le motif de la suppression est indiqué dans le résumé ci-dessous, avec les détails des utilisateurs qui l’ont modifié avant sa suppression. Le contenu de ces versions n’est accessible qu’aux administrateurs.',
 1326+'undelete-revision' => 'Version supprimée de $1, le $2 :',
 1327+'undeleterevision-missing' => 'Version invalide ou manquante. Vous avez peut-être un mauvais lien, ou la version a été restaurée ou supprimée de l’archive.',
 1328+'undeletebtn' => 'Restaurer',
 1329+'undeletereset' => 'Réinitialiser',
 1330+'undeletecomment' => 'Résumé :',
 1331+'undeletedarticle' => 'a restauré « [[$1]] »',
 1332+'undeletedrevisions' => '$1 {{PLURAL:$1|version restaurée|versions restaurées}}',
 1333+'undeletedrevisions-files' => '$1 {{PLURAL:$1|version|versions}} et $2 {{PLURAL:$2|fichier|fichiers}} restaurés',
 1334+'undeletedfiles' => '$1 {{PLURAL:$1|fichier restauré|fichiers restaurés}}',
 1335+'cannotundelete' => 'La restauration a échoué. Un autre utilisateur a probablement restauré la page avant.',
 1336+'undeletedpage' => "<big>'''La page $1 a été restaurée.'''</big>
13001337
13011338 Consultez l’[[Special:Log/delete|historique des effacements]] pour voir la liste des récents effacements et restaurations de pages.",
1302 -'undelete-header' => 'Consultez l’[[Special:Log/delete|historique des suppressions]] pour voir les pages récemment supprimées.',
1303 -'undelete-search-box' => 'Chercher une page supprimée',
1304 -'undelete-search-prefix' => 'Montrer les pages commençant par :',
1305 -'undelete-search-submit' => 'Chercher',
1306 -'undelete-no-results' => 'Aucune page correspondant à la recherche n’a été trouvé dans les archives.',
 1339+'undelete-header' => 'Consultez l’[[Special:Log/delete|historique des suppressions]] pour voir les pages récemment supprimées.',
 1340+'undelete-search-box' => 'Chercher une page supprimée',
 1341+'undelete-search-prefix' => 'Montrer les pages commençant par :',
 1342+'undelete-search-submit' => 'Chercher',
 1343+'undelete-no-results' => 'Aucune page correspondant à la recherche n’a été trouvé dans les archives.',
 1344+'undelete-filename-mismatch' => 'Impossible de restaurer le fichier avec le timestamp $1 : fichier introuvable',
 1345+'undelete-bad-store-key' => 'Impossible de restaurer le fichier avec le timestamp $1 : le fichier était absent avant la suppression.',
 1346+'undelete-cleanup-error' => 'Erreur lors de la suppression de l’archive inutilisée « $1 ».',
 1347+'undelete-missing-filearchive' => 'Impossible de restaurer le fichier avec l’ID $1 parce qu’il n’est pas dans la base de données. Il a peut-être déjà été restauré.',
 1348+'undelete-error-short' => 'Erreur lors de la restauration du fichier : $1',
 1349+'undelete-error-long' => 'Des erreurs ont été rencontrées lors de la restauration du fichier :
13071350
 1351+$1',
 1352+
13081353 # Namespace form on various pages
13091354 'namespace' => 'Espace de noms :',
13101355 'invert' => 'Inverser la sélection',
@@ -1311,7 +1356,7 @@
13121357 # Contributions
13131358 'contributions' => 'Contributions de cet utilisateur',
13141359 'mycontris' => 'Contributions',
1315 -'contribsub2' => 'Liste des contributions de $1 ($2). Les pages qui ont été effacées ne sont pas affichées.',
 1360+'contribsub2' => 'Liste des contributions de $1 ($2). Les pages qui ont été effacées ne sont pas affichées.',
13161361 'nocontribs' => 'Aucune modification correspondant à ces critères n’a été trouvée.',
13171362 'ucnote' => 'Voici les <b>$1</b> dernières modifications effectuées par cet utilisateur au cours des <b>$2</b> derniers jours.',
13181363 'uclinks' => 'Afficher les $1 dernières modifications ; afficher les $2 derniers jours.',
@@ -1333,18 +1378,18 @@
13341379 'sp-newimages-showfrom' => 'Afficher les images importées depuis le $1',
13351380
13361381 # What links here
1337 -'whatlinkshere' => 'Pages liées',
1338 -'notargettitle' => 'Pas de cible',
1339 -'notargettext' => 'Indiquez une page cible ou un utilisateur cible.',
1340 -'linklistsub' => '(Liste de liens)',
1341 -'linkshere' => 'Les pages ci-dessous contiennent un lien vers <b>[[:$1]]</b> :',
1342 -'nolinkshere' => 'Aucune page ne contient de lien vers <b>[[:$1]]</b>.',
1343 -'nolinkshere-ns' => "Aucune page ne contient de lien vers '''[[:$1]]''' dans l’espace de nom choisi.",
1344 -'isredirect' => 'page de redirection',
1345 -'istemplate' => 'inclusion',
1346 -'whatlinkshere-prev' => '{{PLURAL:$1|précédent|$1 précédents}}',
1347 -'whatlinkshere-next' => '{{PLURAL:$1|suivant|$1 suivants}}',
1348 -'whatlinkshere-links' => '← liens',
 1382+'whatlinkshere' => 'Pages liées',
 1383+'notargettitle' => 'Pas de cible',
 1384+'notargettext' => 'Indiquez une page cible ou un utilisateur cible.',
 1385+'linklistsub' => '(Liste de liens)',
 1386+'linkshere' => 'Les pages ci-dessous contiennent un lien vers <b>[[:$1]]</b> :',
 1387+'nolinkshere' => 'Aucune page ne contient de lien vers <b>[[:$1]]</b>.',
 1388+'nolinkshere-ns' => "Aucune page ne contient de lien vers '''[[:$1]]''' dans l’espace de nom choisi.",
 1389+'isredirect' => 'page de redirection',
 1390+'istemplate' => 'inclusion',
 1391+'whatlinkshere-prev' => '{{PLURAL:$1|précédent|$1 précédents}}',
 1392+'whatlinkshere-next' => '{{PLURAL:$1|suivant|$1 suivants}}',
 1393+'whatlinkshere-links' => '← liens',
13491394
13501395 # Block/unblock
13511396 'blockip' => 'Bloquer une adresse IP ou un utilisateur',
@@ -1357,11 +1402,7 @@
13581403 'ipbexpiry' => 'Durée du blocage',
13591404 'ipbreason' => 'Motif',
13601405 'ipbreasonotherlist' => 'Autre motif',
1361 -
1362 -// These are examples only. They can be translated but should be adjusted via [[MediaWiki:ipbreason-list]] by the local community
1363 -// *# defines a reason group in the drow down menu
1364 -// * defines a reason
1365 -'ipbreason-dropdown' => '
 1406+'ipbreason-dropdown' => '
13661407 * Motifs de blocage les plus fréquents
13671408 ** Vandalisme
13681409 ** Insertion d’informations fausses
@@ -1398,15 +1439,15 @@
13991440 'ipblocklist' => 'Liste des utilisateurs bloqués',
14001441 'ipblocklist-summary' => 'La liste ci-dessous montre tous les utilisateurs et adresses IP bloqués, par ordre anti-chronologique. Consulter le [[Special:Log/block|journal de blocage]] pour voir les dernières actions de blocage et déblocage effectuées.',
14011442 'ipblocklist-submit' => 'Chercher',
1402 -'blocklistline' => '$1 (expire le $4) : $2 a bloqué $3',
 1443+'blocklistline' => '$1 ($4) : $2 a bloqué $3',
14031444 'infiniteblock' => 'permanent',
14041445 'expiringblock' => 'expire le $1',
14051446 'anononlyblock' => 'utilisateur non enregistré uniquement',
14061447 'noautoblockblock' => 'blocage automatique désactivé',
1407 -'createaccountblock' => 'la création de compte est bloquée.',
 1448+'createaccountblock' => 'création de compte bloquée',
14081449 'emailblock' => 'e-mail bloqué',
1409 -'ipblocklist-empty' => 'La liste des adresses bloquées est actuellement vide.',
1410 -'ipblocklist-no-results' => 'L’adresse IP ou l’utilisateur n’a pas été bloqué.',
 1450+'ipblocklist-empty' => 'La liste des adresses bloquées est actuellement vide.',
 1451+'ipblocklist-no-results' => 'L’adresse IP ou l’utilisateur n’a pas été bloqué.',
14111452 'blocklink' => 'Bloquer',
14121453 'unblocklink' => 'débloquer',
14131454 'contribslink' => 'Contributions',
@@ -1467,13 +1508,14 @@
14681509 'movearticle' => 'Renommer l’article',
14691510 'movenologin' => 'Non connecté',
14701511 'movenologintext' => 'Pour pouvoir renommer une page, vous devez être [[Special:Userlogin|connecté]] en tant qu’utilisateur enregistré et votre compte doit avoir une ancienneté suffisante.',
 1512+'movenotallowed' => 'Vous n’avez pas la permission de renommer des pages sur ce wiki.',
14711513 'newtitle' => 'Nouveau titre',
14721514 'move-watch' => 'Suivre cette page',
14731515 'movepagebtn' => 'Renommer l’article',
14741516 'pagemovedsub' => 'Renommage réussi',
1475 -'movepage-moved' => "La page « $1 » <small>([[Special:Whatlinkshere/$3|liens]])</small> a été renommée en « $2 » <small>([[Special:Whatlinkshere/$4|liens]])</small>.
 1517+'movepage-moved' => 'La page « $1 » <small>([[Special:Whatlinkshere/$3|liens]])</small> a été renommée en « $2 » <small>([[Special:Whatlinkshere/$4|liens]])</small>.
14761518
1477 -Veuillez vérifier qu’il n’existe aucune double redirection, et corrigez celles-ci si nécessaire.",
 1519+Veuillez vérifier qu’il n’existe aucune double redirection, et corrigez celles-ci si nécessaire.', # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.
14781520 'articleexists' => 'Il existe déjà un article portant ce titre, ou le titre que vous avez choisi n’est pas valide. Veuillez en choisir un autre.',
14791521 'talkexists' => 'La page elle-même a été déplacée avec succès, mais la page de discussion n’a pas pu être déplacée car il en existait déjà une sous le nouveau nom. Veuillez les fusionner manuellement.',
14801522 'movedto' => 'renommé en',
@@ -1508,6 +1550,7 @@
15091551 'export-submit' => 'Exporter',
15101552 'export-addcattext' => 'Ajouter les pages de la catégorie :',
15111553 'export-addcat' => 'Ajouter',
 1554+'export-download' => 'Permettre de sauvegarder en tant que fichier',
15121555
15131556 # Namespace 8 related
15141557 'allmessages' => 'Liste des messages système',
@@ -1515,18 +1558,17 @@
15161559 'allmessagesdefault' => 'Message par défaut',
15171560 'allmessagescurrent' => 'Message actuel',
15181561 'allmessagestext' => 'Ceci est la liste de tous les messages disponibles dans l’espace MediaWiki',
1519 -'allmessagesnotsupportedUI' => 'Special:AllMessages n’accepte pas la langue de votre interface (<b>$1</b>) sur ce site.',
15201562 'allmessagesnotsupportedDB' => '<b>Special:Allmessages</b> n’est pas disponible car <b>$wgUseDatabaseMessages</b> est désactivé.',
15211563 'allmessagesfilter' => 'Filtre d’expression rationnelle :',
15221564 'allmessagesmodified' => 'N’afficher que les modifications',
15231565
15241566 # Thumbnails
1525 -'thumbnail-more' => 'Agrandir',
1526 -'missingimage' => '<b>Image manquante</b><br /><i>$1</i>',
1527 -'filemissing' => 'Fichier absent',
1528 -'thumbnail_error' => 'Erreur lors de la création de la miniature : $1',
1529 -'djvu_page_error' => 'Page DjVu hors limites',
1530 -'djvu_no_xml' => 'Impossible d’obtenir le XML pour le fichier DjVu',
 1567+'thumbnail-more' => 'Agrandir',
 1568+'missingimage' => '<b>Image manquante</b><br /><i>$1</i>',
 1569+'filemissing' => 'Fichier absent',
 1570+'thumbnail_error' => 'Erreur lors de la création de la miniature : $1',
 1571+'djvu_page_error' => 'Page DjVu hors limites',
 1572+'djvu_no_xml' => 'Impossible d’obtenir le XML pour le fichier DjVu',
15311573 'thumbnail_invalid_params' => 'Paramètres de la miniature invalides',
15321574 'thumbnail_dest_directory' => 'Impossible de créer le répertoire de destination',
15331575
@@ -1639,7 +1681,7 @@
16401682 'siteuser' => 'Utilisateur $1 de {{SITENAME}}',
16411683 'lastmodifiedatby' => 'Cette page a été modifiée pour la dernière fois le $1 à $2 par $3.', # $1 date, $2 time, $3 user
16421684 'and' => 'et',
1643 -'othercontribs' => 'Contributions de cet utilisateur.', // Don't add the parameter, tendency to break. Also do not translate literally from English.
 1685+'othercontribs' => 'Contributions de cet utilisateur.',
16441686 'others' => 'autres',
16451687 'siteusers' => 'Utilisateur(s) $1',
16461688 'creditspage' => 'Page de crédits',
@@ -1691,7 +1733,13 @@
16921734 'patrol-log-diff' => '$1',
16931735
16941736 # Image deletion
1695 -'deletedrevision' => 'L’ancienne version $1 a été supprimée.',
 1737+'deletedrevision' => 'L’ancienne version $1 a été supprimée.',
 1738+'filedeleteerror-short' => 'Erreur lors de la suppression du fichier : $1',
 1739+'filedeleteerror-long' => 'Des erreurs ont été rencontrées lors de la suppression du fichier :\n\n$1\n',
 1740+'filedelete-missing' => 'Le fichier « $1 » ne peut pas être supprimé parce qu’il n’existe pas.',
 1741+'filedelete-old-unregistered' => 'La révision du fichier spécifié « $1 » n’est pas dans la base de données.',
 1742+'filedelete-current-unregistered' => 'Le fichier spécifié « $1 » n’est pas dans la base de données.',
 1743+'filedelete-archive-read-only' => 'Le dossier d’archivage « $1 » n’est pas modifiable par le serveur.',
16961744
16971745 # Browsing diffs
16981746 'previousdiff' => '← Différence précédente',
@@ -1713,8 +1761,12 @@
17141762 'showhidebots' => '($1 bots)',
17151763 'noimages' => 'Aucune image à afficher.',
17161764
1717 -'passwordtooshort' => 'Votre mot de passe est trop court. Il doit contenir au moins $1 caractères et être différent de votre nom d’utilisateur.',
 1765+# Bad image list
 1766+'bad_image_list' => "Le format est le suivant:
17181767
 1768+Seulement les lignes commençant par une * sont prises en compte. Le premier lien de la ligne est celui vers une mauvaise image.
 1769+Les autres liens sur la même ligne sont considérés comme des exceptions, par exemple des articles sur lesquels l'image doit apparaître.",
 1770+
17191771 # Metadata
17201772 'metadata' => 'Métadonnées',
17211773 'metadata-help' => 'Ce fichier contient des informations supplémentaires probablement ajoutées par l’appareil photo ou le scanner qui l’a produite. Si le fichier a été modifié, certains détails peuvent ne pas refléter l’image modifiée.',
@@ -2072,7 +2124,7 @@
20732125 # Auto-summaries
20742126 'autosumm-blank' => 'Résumé automatique : blanchiment',
20752127 'autosumm-replace' => "Résumé automatique : contenu remplacé par '$1'",
2076 -'autoredircomment' => 'Redirection vers [[$1]]', # This should be changed to the new naming convention, but existed beforehand
 2128+'autoredircomment' => 'Redirection vers [[$1]]',
20772129 'autosumm-new' => 'Nouvelle page : $1',
20782130
20792131 # Size units
@@ -2091,7 +2143,7 @@
20922144
20932145 # Friendlier slave lag warnings
20942146 'lag-warn-normal' => 'Les modifications datant de moins de $1 secondes peuvent ne pas apparaître dans cette liste.',
2095 -'lag-warn-high' => 'En raison d’une forte charge des bases de données, les modifications datant de moins de $1 secondes peuvent ne pas apparaître dans cette liste.',
 2147+'lag-warn-high' => 'En raison d’une forte charge des bases de données, les modifications datant de moins de $1 secondes peuvent ne pas apparaître dans cette liste.',
20962148
20972149 # Watchlist editor
20982150 'watchlistedit-numitems' => 'Votre liste de suivi contient {{PLURAL:$1|une page|$1 pages}}, sans compter les pages de discussion',
@@ -2120,4 +2172,5 @@
21212173 'watchlisttools-edit' => 'Voir et modifier la liste de suivi',
21222174 'watchlisttools-raw' => 'Modifier la liste (mode brut)',
21232175 'watchlisttools-clear' => 'Vider la liste de suivi',
2124 -);
\ No newline at end of file
 2176+
 2177+);
Index: branches/liquidthreads/languages/messages/MessagesKk_cn.php
@@ -272,7 +272,7 @@
273273 'formatnum' => array( 0, 'سانپٸشٸمٸ', 'FORMATNUM' ),
274274 'padleft' => array( 0, 'سولعاىعىس', 'سولىعىس', 'PADLEFT' ),
275275 'padright' => array( 0, 'وڭعاىعىس', 'وڭىعىس', 'PADRIGHT' ),
276 - 'special' => array( 0, 'ارنايى', 'special', ),
 276+ 'special' => array( 0, 'ارنايى', 'special', ),
277277 'defaultsort' => array( 1, 'ٵدەپكٸسۇرىپتاۋ:', 'ٵدەپكٸساناتسۇرىپتاۋ:', 'ٵدەپكٸسۇرىپتاۋكٸلتٸ:', 'ٵدەپكٸسۇرىپ:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
278278 );
279279
@@ -460,13 +460,14 @@
461461 'pagecategories' => '{{PLURAL:$1|سانات|ساناتتار}}',
462462 'category_header' => '«$1» ساناتىنداعى بەتتەر',
463463 'subcategories' => 'ساناتشالار',
464 -'category-media-header' => '«$1» ساناتىنداعى تاسپالار',
 464+'category-media-header' => '«$1» ساناتىنداعى تاسپا',
 465+'category-empty' => "''بۇل ساناتتا اعىمدا ەش ماقالا نە تاسپا جوق.''",
465466
466467 'linkprefix' => '/^(.*?)([a-zäçéğıïñöşüýа-яёәіңғүұқөһA-ZÄÇÉĞİÏÑÖŞÜÝА-ЯЁӘІҢҒҮҰҚӨҺʺʹ«„]+)$/sDu',
467468 'mainpagetext' => "<big>'''مەدياۋيكي باعدارلاماسى سٵتتٸ ورناتىلدى.'''</big>",
468469 'mainpagedocfooter' => 'ۋيكي باعدارلاماسىن پايدالانۋ اقپاراتى ٷشٸن [http://meta.wikimedia.org/wiki/Help:Contents پايدالانۋشى نۇسقاۋلارىمەن] تانىسىڭىز.
469470
470 -== باستاۋ ==
 471+== باستاۋ ٷشٸن ==
471472
472473 * [http://www.mediawiki.org/wiki/Manual:Configuration_settings باپتاۋ قالاۋلارى تٸزٸمٸ]
473474 * [http://www.mediawiki.org/wiki/Manual:FAQ مەدياۋيكي جقس]
@@ -539,7 +540,7 @@
540541 'redirectedfrom' => '($1 بەتٸنەن ايداتىلعان)',
541542 'redirectpagesub' => 'ايداتۋ بەتٸ',
542543 'lastmodifiedat' => 'بۇل بەتتٸڭ ٶزگەرتٸلگەن سوڭعى كەزٸ: $2, $1.', # $1 date, $2 time
543 -'viewcount' => 'بۇل بەت {{PLURAL:$1|بٸر|$1}} رەت قارالعان.',
 544+'viewcount' => 'بۇل بەت {{PLURAL:$1|بٸر|$1}} رەت قاتىنالعان.',
544545 'protectedpage' => 'قورعاۋلى بەت',
545546 'jumpto' => 'مىناعان ٶتٸپ كەتۋ:',
546547 'jumptonavigation' => 'باعىتتاۋ',
@@ -651,10 +652,13 @@
652653 بۇل تۋرالى ناقتى URL جايىن كٶرسەتٸپ ٵكٸمشٸگە ەسەپتەمە جٸبەرٸڭٸز.',
653654 'readonly_lag' => 'جەتەك دەرەكقور سەرۆەرلەر باستاۋىشپەن قاداملانعاندا وسى دەرەكقور ٶزدٸكتٸك قۇلىپتالىنعان',
654655 'internalerror' => 'ٸشكٸ قاتە',
 656+'internalerror_info' => 'ٸشكٸ قاتە: $1',
655657 'filecopyerror' => '«$1» فايلى «$2» فايلىنا كٶشٸرٸلمەدٸ.',
656658 'filerenameerror' => '«$1» فايل اتى «$2» اتىنا ٶزگەرتٸلمەدٸ.',
657659 'filedeleteerror' => '«$1» فايلى جويىلمايدى.',
 660+'directorycreateerror' => '«$1» قالتاسى جاسالمادى.',
658661 'filenotfound' => '«$1» فايلى تابىلمادى.',
 662+'fileexistserror' => '«$1» فايلعا جازۋعا بولمايدى: وسىنداي فايل بار تٷگە',
659663 'unexpected' => 'كٷتٸلمەگەن ماعىنا: «$1» = «$2».',
660664 'formerror' => 'قاتە: جٸبەرۋ ٷلگٸتٸ ەمەس',
661665 'badarticleerror' => 'وسىنداي ٵرەكەت مىنا بەتتە اتقارىلمايدى.',
@@ -676,6 +680,7 @@
677681 'editinginterface' => "'''نازار سالىڭىز:''' باعدارلاماعا تٸلدەسۋ مٵتٸنٸن جەتٸستٸرەتٸن MediaWiki بەتٸن ٶڭدەپ جاتىرسىز. بۇل بەتتٸڭ ٶزگەرتۋٸ بارلىق پايدالانۋشىلار تٸلدەسۋٸنە ٵسەر ەتەدٸ.",
678682 'sqlhidden' => '(SQL سۇرانىسى جاسىرىلدى)',
679683 'cascadeprotected' => 'بۇل بەت ٶڭدەۋدەن قورعالعان, سەبەبٸ: ول مىنا «باۋلى» قورعاۋى ەندٸرٸلگەن {{PLURAL:$1|بەتكە|بەتتەرگە}} كٸرٸكتٸرٸلگەن:',
 684+'namespaceprotected' => "''$1''' ەسٸم اياسىنداعى بەتتەردٸ ٶڭدەۋ ٷشٸن رۇقساتىڭىز جوق.",
680685
681686 # Login and logout pages
682687 'logouttitle' => 'قاتىسۋشى شىعۋى',
@@ -820,8 +825,9 @@
821826
822827 بۇعاتتاۋدى $1 ٸستەگەن. كەلتٸرٸلگەن سەبەبٸ: ''$2''.
823828
824 -بۇعاتتاۋ بٸتەتٸن مەزگٸلٸ: $6<br />
825 -ماقساتتالعان مەرزٸمٸ: $7
 829+* بۇعاتتاۋ باستالعانى: $8
 830+* بۇعاتتاۋ بٸتەتٸنٸ: $6
 831+* بۇعاتتاۋ ماقساتى: $7
826832
827833 وسى بۇعاتتاۋدى تالقىلاۋ ٷشٸن $1 دەگەنمەن, نە باسقا [[{{{{ns:mediawiki}}:grouppage-sysop}}|ٵكٸمشٸمەن]] قاتىناسۋىڭىزعا بولادى.
828834 [[{{ns:special}}:Preferences|تٸركەلگٸ باپتاۋلارىن]] قولدانىپ جارامدى ە-پوشتا جايىن ەنگٸزگەنشە دەيٸن جٵنە بۇنى پايدالانۋى
@@ -832,7 +838,8 @@
833839
834840 :''$2''
835841
836 -بۇعاتتاۋ بٸتەتٸن مەزگٸلٸ: $6
 842+* بۇعاتتاۋ باستالعانى: $8
 843+* بۇعاتتاۋ بٸتەتٸنٸ: $6
837844
838845 وسى بۇعاتتاۋدى تالقىلاۋ ٷشٸن $1 دەگەنمەن,
839846 نە باسقا [[{{{{ns:mediawiki}}:grouppage-sysop}}|ٵكٸمشٸمەن]] قاتىناسۋىڭىزعا بولادى.
@@ -882,6 +889,9 @@
883890 ''وسى ۋيكيدە قام HTML ەندٸرٸلگەن, JavaScript شابۋىلداردان قورعانۋ ٷشٸن الدىن الا قاراپ شىعۋ جاسىرىلعان.''
884891
885892 <strong>ەگەر بۇل ٶڭدەۋ ادال تالاپ بولسا, قايتارىپ كٶرٸڭٸز. ەگەر ٵلٸ دە ٸستەمەسە, شىعىپ, سوسىن كەرٸ كٸرٸپ كٶرٸڭٸز.</strong>",
 893+'token_suffix_mismatch' => '<strong>ٶڭدەۋٸڭٸز قابىلدانبادى, سەبەبٸ قولدانعان باعدارلاماڭىز مٵتٸندەگٸ
 894+ەملە نىشاندارىن كەسكٸلەپ تاستادى. ماقالا مٵتٸنٸ بٷلٸنبەۋ ٷشٸن تٷزەتۋٸڭٸز قابىلدانبايدى.
 895+بۇل عالامتورعا نەگٸزدەلٸنگەن قاتەلٸ تٸركەلگٸسٸز پروكسي-سەرۆەردٸ پايدالانعاننۆان بولۋى مٷمكٸن.</strong>',
886896 'importing' => 'سىرتتان الۋدا: $1',
887897 'editing' => 'ٶڭدەلۋدە: $1',
888898 'editinguser' => 'ٶڭدەلۋدە: <b>$1</b> دەگەن قاتىسۋشى',
@@ -1102,8 +1112,8 @@
11031113 'prefs-personal' => 'جەكە دەرەكتەرٸ',
11041114 'prefs-rc' => 'جۋىقتاعى ٶزگەرٸستەر',
11051115 'prefs-watchlist' => 'باقىلاۋ',
1106 -'prefs-watchlist-days' => 'باقىلاۋ تٸزٸمٸندە كٶرسەتەرٸن كٷن سانى:',
1107 -'prefs-watchlist-edits' => 'كەڭەيتٸلگەن باقىلاۋ تٸزٸمٸ تٷزەتۋ كٶرسەتەرٸن سانى:',
 1116+'prefs-watchlist-days' => 'باقىلاۋ تٸزٸمٸندە كٶرسەتەرٸن ەڭ كٶپ كٷندەرٸ:',
 1117+'prefs-watchlist-edits' => 'كەڭەيتٸلگەن باقىلاۋ تٸزٸمٸندە كٶرسەتەرٸن ەڭ كٶپ تٷزەتۋلەرٸ:',
11081118 'prefs-misc' => 'قوسىمشا',
11091119 'saveprefs' => 'ساقتا',
11101120 'resetprefs' => 'تاستا',
@@ -1133,19 +1143,19 @@
11341144 'files' => 'فايلدار',
11351145
11361146 # User rights
1137 -'userrights-lookup-user' => 'قاتىسۋشى توپتارىن مەڭگەرۋ',
1138 -'userrights-user-editname' => 'قاتىسۋشى اتىن ەنگٸزٸڭٸز:',
1139 -'editusergroup' => 'قاتىسۋشى توپتارىن ٶڭدەۋ',
1140 -'userrights-editusergroup' => 'قاتىسۋشى توپتارىن ٶڭدەۋ',
1141 -'saveusergroups' => 'قاتىسۋشى توپتارىن ساقتاۋ',
1142 -'userrights-groupsmember' => 'مٷشەلٸگٸ:',
1143 -'userrights-groupsavailable' => 'قاتىناۋلى توپتار:',
1144 -'userrights-groupshelp' => 'قاتىسۋشىنى ٷستەيتٸن نە الاستاتىن توپتاردى تالعاڭىز.
 1147+'userrights-lookup-user' => 'قاتىسۋشى توپتارىن مەڭگەرۋ',
 1148+'userrights-user-editname' => 'قاتىسۋشى اتىن ەنگٸزٸڭٸز:',
 1149+'editusergroup' => 'قاتىسۋشى توپتارىن ٶڭدەۋ',
 1150+'userrights-editusergroup' => 'قاتىسۋشى توپتارىن ٶڭدەۋ',
 1151+'saveusergroups' => 'قاتىسۋشى توپتارىن ساقتاۋ',
 1152+'userrights-groupsmember' => 'مٷشەلٸگٸ:',
 1153+'userrights-groupsavailable' => 'جەتٸمدٸ توپتار:',
 1154+'userrights-groupshelp' => 'قاتىسۋشىنى ٷستەيتٸن نە الاستاتىن توپتاردى تالعاڭىز.
11451155 تالعاۋى ٶشٸرٸلگەن توپتار ٶزگەرتٸلٸمەيدٸ. توپتاردىڭ تالعاۋىن CTRL + سول جاق نۇقۋمەن ٶشٸرۋٸڭٸزگە بولادى.',
1146 -'userrights-reason' => 'ٶزگەرتۋ سەبەبٸ:',
1147 -'userrights-list' => '$1 مٷشەسٸ بولعاندىقتان $2 ٷستەي الاسىز جٵنە $3 الاستاي الاسىز.',
1148 -'userrights-list-nogroups' => 'توپتارسىز',
1149 -'userrights-list-groups' => '$2 {{PLURAL:$1|توپ|توپتار}}',
 1156+'userrights-reason' => 'ٶزگەرتۋ سەبەبٸ:',
 1157+'userrights-available-none' => 'توپ مٷشەلٸگٸن ٶزگەرتە المايسىز.',
 1158+'userrights-available-add' => 'قاتىسۋشىلاردى $1 توبىنا ٷستەي الاسىز.',
 1159+'userrights-available-remove' => 'قاتىسۋشىلاردى $1 توبىنان الاستاي الاسىز.',
11501160
11511161 # Groups
11521162 'group' => 'توپ:',
@@ -1277,6 +1287,7 @@
12781288
12791289 'license' => 'ليتسەنزيياسى',
12801290 'nolicense' => 'ەشتەڭە تالعانباعان',
 1291+'license-nopreview' => '(قاراپ شىعۋ قاتىنالمايدى)',
12811292 'upload_source_url' => ' (جارامدى, بارشاعا قاتىناۋلى URL جاي)',
12821293 'upload_source_file' => ' (كومپييۋتەرٸڭٸزدەگٸ فايل)',
12831294
@@ -1288,19 +1299,22 @@
12891300 'ilsubmit' => 'ٸزدەۋ',
12901301 'showlast' => 'سوڭعى $1 فايل $2 سۇرىپتاپ كٶرسەت.',
12911302 'byname' => 'اتىمەن',
1292 -'bydate' => 'كٷن-ايمەن',
 1303+'bydate' => 'كٷن-ايىمەن',
12931304 'bysize' => 'مٶلشەرٸمەن',
12941305 'imgdelete' => 'جويۋ',
12951306 'imgdesc' => 'سيپپ.',
12961307 'imgfile' => 'فايل',
1297 -'imglegend' => 'شارتتى بەلگٸلەر: (سيپپ.) — فايل سيپاتتاماسىن كٶرسەتۋ/ٶڭدەۋ.',
1298 -'imghistory' => 'فايل تاريحى',
1299 -'revertimg' => 'قايت.',
1300 -'deleteimg' => 'جويۋ',
1301 -'deleteimgcompletely' => 'وسى فايلدىڭ بارلىق نۇسقالارىن جوي',
1302 -'imghistlegend' => 'شارتتى بەلگٸلەر: (اعىم.) = اعىمدىق فايل, (جويۋ) = ەسكٸ نۇسقاسىن
1303 -جويۋ, (قاي.) = ەسكٸ نۇسقاسىنا قايتارۋ.
1304 -<br /><i>قوتارىلعان فايلدى كٶرۋ ٷشٸن كٷن-ايىنا نۇقىڭىز</i>.',
 1308+'filehist' => 'فايل تاريحى',
 1309+'filehist-help' => 'فايلدىڭ قاي ۋاقىتتا قالاي كٶرٸنەتٸن ٷشٸن كٷن-اي/ۋاقىت دەگەندٸ نۇقىڭىز.',
 1310+'filehist-deleteall' => 'بارلىعىن جوي',
 1311+'filehist-deleteone' => 'بۇنى جوي',
 1312+'filehist-revert' => 'قايتار',
 1313+'filehist-current' => 'اعىمداعى',
 1314+'filehist-datetime' => 'كٷن-اي/ۋاقىت',
 1315+'filehist-user' => 'قاتىسۋشى',
 1316+'filehist-dimensions' => 'ٶلشەمدەرٸ',
 1317+'filehist-filesize' => 'فايل مٶلشەرٸ',
 1318+'filehist-comment' => 'مٵندەمەسٸ',
13051319 'imagelinks' => 'سٸلتەمەلەرٸ',
13061320 'linkstoimage' => 'بۇل فايلعا كەلەسٸ بەتتەر سٸلتەيدٸ:',
13071321 'nolinkstoimage' => 'بۇل فايلعا ەش بەت سٸلتەمەيدٸ.',
@@ -1317,6 +1331,16 @@
13181332 'imagelist_description' => 'سيپاتتاماسى',
13191333 'imagelist_search_for' => 'سۋرەتتٸ اتىمەن ٸزدەۋ:',
13201334
 1335+# File reversion
 1336+'filerevert' => '$1 دەگەندٸ قايتارۋ',
 1337+'filerevert-legend' => 'فايلدى قايتارۋ',
 1338+'filerevert-intro' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' دەگەندٸ [$4, $2 كەزٸندەگٸ $3 نۇسقاسىنا] قايتاردىڭىز.</span>',
 1339+'filerevert-comment' => 'مٵندەمەسٸ:',
 1340+'filerevert-defaultcomment' => '$1, $2 كەزٸندەگٸ نۇسقاسىنا قايتاردى',
 1341+'filerevert-submit' => 'قايتارۋ',
 1342+'filerevert-success' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' دەگەن [$4, $2 كەزٸندەگٸ $3 نۇسقاسىنا] قايتارىلدى.</span>',
 1343+'filerevert-badversion' => 'كەلتٸرٸلگەن ۋاقىت بەلگٸسٸمەن بۇل فايلدىڭ الدىڭعى جەرگٸلٸكتٸ نۇسقاسى جوق.',
 1344+
13211345 # MIME search
13221346 'mimesearch' => 'فايلدى MIME تٷرٸمەن ٸزدەۋ',
13231347 'mimesearch-summary' => 'بۇل بەت فايلداردى MIME تٷرٸمەن سٷزگٸلەۋ مٷمكٸندٸگٸن بەرەدٸ. كٸرٸسٸ: «ماعلۇمات تٷرٸ»/«تٷر تاراۋى», مىسالى <tt>image/jpeg</tt>.',
@@ -1355,8 +1379,8 @@
13561380 بۇنىڭ نٵتيجەسٸندە ورتا ەسەپپەن ٵربٸر بەتكە '''$5''' رەت تٷزەتۋ كەلەدٸ, جٵنە ٵربٸر تٷزەتۋگە '''$6''' رەت قاراۋ كەلەدٸ.
13571381
13581382 اعىمدىق [http://meta.wikimedia.org/wiki/Help:Job_queue تاپسىرىم كەزەگٸ] ۇزىندىلىعى: '''$7'''.",
1359 -'userstatstext' => "مىندا {{PLURAL:$1|'''1''' تٸركەلگەن قاتىسۋشى|'''$1''' تٸركەلگەن قاتىسۋشى}} بار, سونىڭ ٸشٸندە
1360 - {{PLURAL:$2|'''1''' قاتىسۋشىدا|'''$2''' قاتىسۋشىدا}} (نەمەسە '''$4 %''') $5 قۇقىقتارى بار",
 1383+'userstatstext' => "مىندا {{PLURAL:$1|'''1''' تٸركەلگەن [[{{ns:special}}:Listusers|قاتىسۋشى]]|'''$1''' تٸركەلگەن [[{{ns:special}}:Listusers|قاتىسۋشى]]}} بار, سونىڭ ٸشٸندە
 1384+{{PLURAL:$2|'''1''' قاتىسۋشىدا|'''$2''' قاتىسۋشىدا}} (نەمەسە '''$4 %''') $5 قۇقىقتارى بار",
13611385 'statistics-mostpopular' => 'ەڭ كٶپ قارالعان بەتتەر',
13621386
13631387 'disambiguations' => 'ايرىقتى بەتتەر',
@@ -1466,6 +1490,7 @@
14671491 'allpagessubmit' => 'ٶتۋ',
14681492 'allpagesprefix' => 'مىنادان باستالعان بەتتەردٸ كٶرسەتۋ:',
14691493 'allpagesbadtitle' => 'الىنعان بەت اتاۋى جارامسىز بولعان, نەمەسە تٸل-ارالىق نە ۋيكي-ارالىق باستاۋى بار بولدى. اتاۋدا قولدانۋعا بولمايتىن نىشاندار بولۋى مٷمكٸن.',
 1494+'allpages-bad-ns' => '{{SITENAME}} جوباسىندا «$1» ەسٸم اياسى جوق.',
14701495
14711496 # Special:Listusers
14721497 'listusersfrom' => 'مىنا قاتىسۋشىدان باستاپ كٶرسەتۋ:',
@@ -1523,7 +1548,7 @@
15241549 'unwatchthispage' => 'باقىلاۋدى توقتاتۋ',
15251550 'notanarticle' => 'ماعلۇمات بەتٸ ەمەس',
15261551 'watchnochange' => 'كٶرسەتٸلگەن مەرزٸمدە ەشبٸر باقىلانعان دانا ٶڭدەلگەن جوق.',
1527 -'watchlist-details' => "* باقىلاۋ تٸزٸمٸندە (تالقىلاۋ بەتتەرٸسٸز) '''$1''' بەت بار.",
 1552+'watchlist-details' => 'باقىلاۋ تٸزٸمٸندە (تالقىلاۋ بەتتەرٸسٸز) {{PLURAL:$1|1 بەت|$1 بەت}} بار.',
15281553 'wlheader-enotif' => '* ەسكەرتۋ حات جٸبەرۋٸ ەندٸرٸلگەن.',
15291554 'wlheader-showupdated' => "* سوڭعى كٸرگەنٸمنەن بەرٸ ٶزگەرتٸلگەن بەتتەردٸ '''جۋان''' ٵربٸمەن كٶرسەت",
15301555 'watchmethod-recent' => 'باقىلاۋلى بەتتەردٸڭ جۋىقتاعى ٶزگەرٸستەرٸن تەكسەرۋ',
@@ -1601,7 +1626,6 @@
16021627 'deletionlog' => 'جويۋ جۋرنالى',
16031628 'reverted' => 'ەرتەرەك نۇسقاسىنا قايتارىلعان',
16041629 'deletecomment' => 'جويۋدىڭ سەبەبٸ',
1605 -'imagereverted' => 'ەرتەرەك نۇسقاسىنا قايتارۋ سٵتتٸ ٶتتٸ.',
16061630 'rollback' => 'تٷزەتۋلەردٸ قايتارۋ',
16071631 'rollback_short' => 'قايتارۋ',
16081632 'rollbacklink' => 'قايتارۋ',
@@ -1612,7 +1636,8 @@
16131637
16141638 سوڭعى ٶڭدەۋدٸ [[{{ns:user}}:$3|$3]] ([[{{ns:user_talk}}:$3|تالقىلاۋى]]) دەگەندٸ جاساعان.',
16151639 'editcomment' => 'تٷزەتۋدٸڭ بولعان مٵندەمەسٸ: «<i>$1</i>».', # only shown if there is an edit comment
1616 -'revertpage' => '[[{{ns:special}}:Contributions/$2|$2]] ([[{{ns:user_talk}}:$2|تالقىلاۋى]]) تٷزەتۋلەرٸن [[{{ns:user}}:$1|$1]] سوڭعى نۇسقاسىنا قايتاردى',
 1640+'revertpage' => '[[{{ns:special}}:Contributions/$2|$2]] ([[{{ns:user_talk}}:$2|تالقىلاۋى]]) تٷزەتۋلەرٸنەن قايتارعان; [[{{ns:user}}:$1|$1]] سوڭعى نۇسقاسىنا ٶزگەرتتٸ.',
 1641+'rollback-success' => '$1 تٷزەتۋلەرٸنەن قايتارعان; $2 سوڭعى نۇسقاسىنا ٶزگەرتتٸ.',
16171642 'sessionfailure' => 'كٸرۋ سەسسيياسىندا شاتاق بولعان سيياقتى;
16181643 سەسسيياعا شابۋىلداۋداردان قورعانۋ ٷشٸن, وسى ٵرەكەت توقتاتىلدى.
16191644 «ارتقا» تٷيمەسٸن باسىڭىز, جٵنە بەتتٸ كەرٸ جٷكتەڭٸز, سوسىن قايتالاپ كٶرٸڭٸز.',
@@ -1659,46 +1684,55 @@
16601685 'restriction-level-all' => 'ٵرقايسى دەڭگەيدە',
16611686
16621687 # Undelete
1663 -'undelete' => 'جويىلعان بەتتەردٸ قاراۋ',
1664 -'undeletepage' => 'جويىلعان بەتتەردٸ قاراۋ جٵنە قايتارۋ',
1665 -'viewdeletedpage' => 'جويىلعان بەتتەردٸ قاراۋ',
1666 -'undeletepagetext' => 'كەلەسٸ بەتتەر جويىلدى دەپ بەلگٸلەنگەن, بٸراق ماعلۇماتى مۇراعاتتا جاتقان,
 1688+'undelete' => 'جويىلعان بەتتەردٸ قاراۋ',
 1689+'undeletepage' => 'جويىلعان بەتتەردٸ قاراۋ جٵنە قايتارۋ',
 1690+'viewdeletedpage' => 'جويىلعان بەتتەردٸ قاراۋ',
 1691+'undeletepagetext' => 'كەلەسٸ بەتتەر جويىلدى دەپ بەلگٸلەنگەن, بٸراق ماعلۇماتى مۇراعاتتا جاتقان,
16671692 سوندىقتان كەرٸ قايتارۋعا ٵزٸر. مۇراعات مەرزٸم بويىنشا تازالانىپ تۇرۋى مٷمكٸن.',
1668 -'undeleteextrahelp' => "بٷكٸل بەتتٸ قايتارۋ ٷشٸن, بارلىق قاباشاقتاردى بوس قالدىرىپ
 1693+'undeleteextrahelp' => "بٷكٸل بەتتٸ قايتارۋ ٷشٸن, بارلىق قاباشاقتاردى بوس قالدىرىپ
16691694 '''''قايتار!''''' تٷيمەسٸن نۇقىڭىز. بٶلەكشە قايتارۋ ورىنداۋ ٷشٸن, قايتارايىن دەگەن نۇسقالارىنا سٵيكەس
16701695 قاباشاقتارىن بەلگٸلەڭٸز دە, جٵنە '''''قايتار!''''' تٷيمەسٸن نۇقىڭىز. '''''تاستا''''' تٷيمەسٸن
16711696 نۇقىعاندا مٵندەمە اۋماعى مەن بارلىق قاباشاقتار تازالانادى.",
1672 -'undeleterevisions' => '{{PLURAL:$1|بٸر نۇسقا|$1 نۇسقا}} مۇراعاتتالدى',
1673 -'undeletehistory' => 'ەگەر بەت ماعلۇماتىن قايتارساڭىز,تاريحىندا بارلىق نۇسقالار دا
 1697+'undeleterevisions' => '{{PLURAL:$1|بٸر نۇسقا|$1 نۇسقا}} مۇراعاتتالدى',
 1698+'undeletehistory' => 'ەگەر بەت ماعلۇماتىن قايتارساڭىز,تاريحىندا بارلىق نۇسقالار دا
16741699 قايتارىلادى. ەگەر جويۋدان سوڭ دٵل سولاي اتاۋىمەن جاڭا بەت جاسالسا, قايتارىلعان نۇسقالار
16751700 تاريحتىڭ ەڭ ادىندا كٶرسەتٸلەدٸ, جٵنە كٶرسەتٸلٸپ تۇرعان بەتتٸڭ اعىمدىق نۇسقاسى
16761701 ٶزدٸكتٸك الماستىرىلمايدى. فايل نۇسقالارىنىڭ قايتارعاندا شەكتەۋلەرٸ جويىلاتىن ۇمىتپاڭىز.',
1677 -'undeleterevdel' => 'ەگەر بەتتٸڭ ٷستٸڭگٸ نۇسقاسى جارىم-جارتىلاي جويىلعان بولسا جويىلعان قايتارۋى
 1702+'undeleterevdel' => 'ەگەر بەتتٸڭ ٷستٸڭگٸ نۇسقاسى جارىم-جارتىلاي جويىلعان بولسا جويىلعان قايتارۋى
16781703 اتقارىلمايدى. وسىنداي جاعدايلاردا, ەڭ جاڭا جويىلعان نۇسقا بەلگٸلەۋٸن نەمەسە جاسىرۋىن الاستاتىڭىز.
16791704 كٶرۋٸڭٸزگە رۇقسات ەتٸلمەگەن فايل نۇسقالارى قايتارىلمايدى.',
1680 -'undeletehistorynoadmin' => 'بۇل بەت جويىلعان. جويۋ سەبەبٸ الدىنداعى ٶڭدەگەن قاتىسۋشىلار
 1705+'undeletehistorynoadmin' => 'بۇل بەت جويىلعان. جويۋ سەبەبٸ الدىنداعى ٶڭدەگەن قاتىسۋشىلار
16811706 ەگجەي-تەگجەيلەرٸمەن بٸرگە تٶمەندەگٸ سيپاتتاماسىندا كٶرسەتٸلگەن.
16821707 وسى جويىلعان نۇسقالاردىڭ مٵتٸنٸ تەك ٵكٸمشٸلەرگە قاتىناۋلى.',
1683 -'undelete-revision' => '$2 كەزٸندەگٸ $1 دەگەننٸڭ جويىلعان نۇسقاسى:',
1684 -'undeleterevision-missing' => 'جارامسىز نە جوعالعان نۇسقا. سٸلتەمەڭٸز جارامسىز بولۋى مٷمكٸن, نە
 1708+'undelete-revision' => '$2 كەزٸندەگٸ $1 دەگەننٸڭ جويىلعان نۇسقاسى:',
 1709+'undeleterevision-missing' => 'جارامسىز نە جوعالعان نۇسقا. سٸلتەمەڭٸز جارامسىز بولۋى مٷمكٸن, نە
16851710 نۇسقا قايتارىلعان تٷگە نەمەسە مۇراعاتتان الاستاتىلعان.',
1686 -'undeletebtn' => 'قايتار!',
1687 -'undeletereset' => 'تاستا',
1688 -'undeletecomment' => 'مٵندەمەسٸ:',
1689 -'undeletedarticle' => '«[[$1]]» قايتاردى',
1690 -'undeletedrevisions' => '{{PLURAL:$1|نۇسقانى|$1 نۇسقانى}} قايتاردى',
1691 -'undeletedrevisions-files' => '{{PLURAL:$1|نۇسقانى|$1 نۇسقانى}} جٵنە {{PLURAL:$2|فايلدى|$2 فايلدى}} قايتاردى',
1692 -'undeletedfiles' => '{{PLURAL:$1|1 فايلدى|$1 فايلدى}} قايتاردى',
1693 -'cannotundelete' => 'قايتارۋ سٵتسٸز بٸتتٸ; تاعى بٸرەۋ سٸزدەن بۇرىن سول بەتتٸ قايتارعان بولار.',
1694 -'undeletedpage' => "<big>'''$1 قايتارىلدى'''</big>
 1711+'undeletebtn' => 'قايتار!',
 1712+'undeletereset' => 'تاستا',
 1713+'undeletecomment' => 'مٵندەمەسٸ:',
 1714+'undeletedarticle' => '«[[$1]]» قايتاردى',
 1715+'undeletedrevisions' => '$1 نۇسقا قايتاردى',
 1716+'undeletedrevisions-files' => '$1 نۇسقا جٵنە $2 فايل قايتاردى',
 1717+'undeletedfiles' => '$1 فايل قايتاردى',
 1718+'cannotundelete' => 'قايتارۋ سٵتسٸز بٸتتٸ; تاعى بٸرەۋ سٸزدەن بۇرىن سول بەتتٸ قايتارعان بولار.',
 1719+'undeletedpage' => "<big>'''$1 قايتارىلدى'''</big>
16951720
16961721 جۋىقتاعى جويۋ مەن قايتارۋ جٶنٸندە [[{{ns:special}}:Log/delete|جويۋ جۋرنالىن]] قاراڭىز.",
1697 -'undelete-header' => 'جۋىقتاعى جويىلعان بەتتەر جٶنٸندە [[{{ns:special}}:Log/delete|جويۋ جۋرنالىن]] قاراڭىز.',
1698 -'undelete-search-box' => 'جويىلعان بەتتەردٸ ٸزدەۋ',
1699 -'undelete-search-prefix' => 'مىنادان باستالعان بەتتەردٸ كٶرسەت:',
1700 -'undelete-search-submit' => 'ٸزدەۋ',
1701 -'undelete-no-results' => 'جويۋ مۇراعاتىندا ەشقانداي سٵيكەس بەتتەر تابىلمادى.',
 1722+'undelete-header' => 'جۋىقتاعى جويىلعان بەتتەر جٶنٸندە [[{{ns:special}}:Log/delete|جويۋ جۋرنالىن]] قاراڭىز.',
 1723+'undelete-search-box' => 'جويىلعان بەتتەردٸ ٸزدەۋ',
 1724+'undelete-search-prefix' => 'مىنادان باستالعان بەتتەردٸ كٶرسەت:',
 1725+'undelete-search-submit' => 'ٸزدەۋ',
 1726+'undelete-no-results' => 'جويۋ مۇراعاتىندا ەشقانداي سٵيكەس بەتتەر تابىلمادى.',
 1727+'undelete-filename-mismatch' => 'فايلدىڭ $1 ۋاقىت بەلگٸسٸ بار نۇسقاسى جويىلمادى: فايل اتاۋى سٵيكەس ەمەس',
 1728+'undelete-bad-store-key' => 'فايلدىڭ $1 ۋاقىت بەلگٸسٸ بار نۇسقاسى جويىلمادى: فايل بۇرىننان جوق.',
 1729+'undelete-cleanup-error' => 'پايدالانىلماعان «$1» مۇراعات فايلىنىڭ جويۋ قاتەسٸ.',
 1730+'undelete-missing-filearchive' => '$1 نٶمٸرلٸ مۇراعات فايلى قايتارىلمايدى, سەبەبٸ ول دەرەكقوردا جوق.
 1731+بۇل كەرٸ قايتارىلعان مٷمكٸن.',
 1732+'undelete-error-short' => 'فايلدى كەرٸ قايتارۋ قاتەسٸ: $1',
 1733+'undelete-error-long' => 'مىنا فايلدى كەرٸ قايتارعاندا قاتەلەر كەزدەستٸ:
17021734
 1735+$1',
 1736+
17031737 # Namespace form on various pages
17041738 'namespace' => 'ەسٸم اياسى:',
17051739 'invert' => 'تالعاۋدى كەرٸلەۋ',
@@ -1711,10 +1745,9 @@
17121746 'ucnote' => 'تٶمەندە وسى قاتىسۋشى جاساعان سوڭعى <b>$2</b> كٷندەگٸ, سوڭعى <b>$1</b> ٶزگەرٸسٸ كٶرسەتلەدٸ.',
17131747 'uclinks' => 'سوڭعى $2 كٷندەگٸ, سوڭعى جاسالعان $1 ٶزگەرٸسٸن قاراۋ.',
17141748 'uctop' => ' (ٷستٸ)',
 1749+'month' => 'ايداعى (جٵنە ەرتەرەكتەن):',
 1750+'year' => 'جىلداعى (جٵنە ەرتەرەكتەن):',
17151751
1716 -'month' => 'اي:',
1717 -'year' => 'جىل:',
1718 -
17191752 'sp-contributions-newest' => 'ەڭ جاڭاسىنا',
17201753 'sp-contributions-oldest' => 'ەڭ ەسكٸسٸنە',
17211754 'sp-contributions-newer' => 'جاڭالاۋ $1',
@@ -1729,19 +1762,18 @@
17301763 'sp-newimages-showfrom' => '$1 كەزٸنەن بەرٸ — جاڭا سۋرەتتەردٸ كٶرسەت',
17311764
17321765 # What links here
1733 -'whatlinkshere' => 'سٸلتەگەن بەتتەر',
1734 -'notargettitle' => 'اقىرعى اتاۋ جوق',
1735 -'notargettext' => 'وسى ٵرەكەت ورىندالاتىن نىسانا بەت,
1736 -نە قاتىسۋشى كٶرسەتٸلمەگەن.',
1737 -'linklistsub' => '(سٸلتەمەلەر تٸزٸمٸ)',
1738 -'linkshere' => "'''[[:$1]]''' دەگەنگە مىنا بەتتەر سٸلتەيدٸ:",
1739 -'nolinkshere' => "'''[[:$1]]''' دەگەنگە ەش بەت سٸلتەمەيدٸ.",
1740 -'nolinkshere-ns' => "تالعانعان ەسٸم اياسىندا '''[[:$1]]''' دەگەنگە ەشقانداي بەت سٸلتەمەيدٸ.",
1741 -'isredirect' => 'ايداتۋ بەتٸ',
1742 -'istemplate' => 'كٸرٸكتٸرۋ',
1743 -'whatlinkshere-prev' => '{{PLURAL:$1|الدىڭعى|الدىڭعى $1}}',
1744 -'whatlinkshere-next' => '{{PLURAL:$1|كەلەسٸ|كەلەسٸ $1}}',
1745 -'whatlinkshere-links' => '← سٸلتەمەلەر',
 1766+'whatlinkshere' => 'سٸلتەگەن بەتتەر',
 1767+'notargettitle' => 'اقىرعى اتاۋ جوق',
 1768+'notargettext' => 'وسى ٵرەكەت ورىندالاتىن نىسانا بەت, نە قاتىسۋشى كٶرسەتٸلمەگەن.',
 1769+'linklistsub' => '(سٸلتەمەلەر تٸزٸمٸ)',
 1770+'linkshere' => "'''[[:$1]]''' دەگەنگە مىنا بەتتەر سٸلتەيدٸ:",
 1771+'nolinkshere' => "'''[[:$1]]''' دەگەنگە ەش بەت سٸلتەمەيدٸ.",
 1772+'nolinkshere-ns' => "تالعانعان ەسٸم اياسىندا '''[[:$1]]''' دەگەنگە ەشقانداي بەت سٸلتەمەيدٸ.",
 1773+'isredirect' => 'ايداتۋ بەتٸ',
 1774+'istemplate' => 'كٸرٸكتٸرۋ',
 1775+'whatlinkshere-prev' => '{{PLURAL:$1|الدىڭعى|الدىڭعى $1}}',
 1776+'whatlinkshere-next' => '{{PLURAL:$1|كەلەسٸ|كەلەسٸ $1}}',
 1777+'whatlinkshere-links' => '← سٸلتەمەلەر',
17461778
17471779 # Block/unblock
17481780 'blockip' => 'پايدالانۋشىنى بۇعاتتاۋ',
@@ -1823,7 +1855,6 @@
18241856 'ipb_cant_unblock' => 'قاتە: IP $1 بۇعاتتاۋى تابىلمادى. ونىڭ بۇعاتتاۋى ٶشٸرلگەن سيياقتى.',
18251857 'proxyblockreason' => 'IP جايىڭىز اشىق پروكسي سەرۆەرگە جاتاتىندىقتان بۇعاتتالعان. ينتەرنەت قىزمەتٸن جابدىقتاۋشىڭىزبەن, نە تەحنيكالىق مەدەۋ قىزمەتٸمەن قاتىناسىڭىز, جٵنە ولارعا وسى وتە كٷردەلٸ قاۋىپسٸزدٸك شاتاق تۋرالى اقپارات بەرٸڭٸز.',
18261858 'proxyblocksuccess' => 'بٸتتٸ.',
1827 -'sorbs' => 'DNSBL قارا تٸزٸمٸ',
18281859 'sorbsreason' => 'سٸزدٸڭ IP جايىڭىز وسى توراپتا قولدانىلعان DNSBL قارا تٸزٸمٸندەگٸ اشىق پروكسي-سەرۆەر دەپ تابىلادى.',
18291860 'sorbs_create_account_reason' => 'سٸزدٸڭ IP جايىڭىز وسى توراپتا قولدانىلعان DNSBL قارا تٸزٸمٸندەگٸ اشىق پروكسي-سەرۆەر دەپ تابىلادى. تٸركەلگٸ جاساي المايسىز.',
18301861
@@ -1857,7 +1888,7 @@
18581889 'movepagetext' => "تٶمەندەگٸ ٷلگٸتتٸ قولدانىپ بەتتەردٸ قايتا اتايدى,
18591890 بارلىق تاريحىن جاڭا اتاۋعا جىلجىتادى.
18601891 بۇرىنعى بەت اتاۋى جاڭا اتاۋعا ايداتاتىن بەت بولادى.
1861 -ەسكٸ اتاۋىنا سٸلتەيتٸن سٸلتەمەلەر ٶزگەرتٸلمەيدٸ; جىلجىتۋدان سوڭ
 1892+ەسكٸ اتاۋىنا سٸلتەيتٸن سٸلتەمەلەر ٶزگەرتٸلمەيدٸ; جىلجىتۋدان سوڭ
18621893 شىنجىرلى نە جارامسىز ايداتۋلار بار-جوعىن تەكسەرٸپ شىعىڭىز.
18631894 سٸلتەمەلەر بۇرىنعى جولداۋىمەن بىلايعى ٶتۋٸن تەكسەرۋٸنە
18641895 سٸز مٸندەتتٸ بولاسىز.
@@ -1885,8 +1916,9 @@
18861917 'move-watch' => 'بۇل بەتتٸ باقىلاۋ',
18871918 'movepagebtn' => 'بەتتٸ جىلجىت',
18881919 'pagemovedsub' => 'جىلجىتۋ سٵتتٸ اياقتالدى',
1889 -'articleexists' => 'بىلاي اتاۋلى بەت بار بولدى, نە تاڭداعان
1890 -اتاۋىڭىز جارامدى ەمەس.
 1920+'movepage-moved' => "<big>'''«$1» دەگەن «$2» دەگەنگە جىلجىتىلدى'''</big>", # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.
 1921+'articleexists' => 'بىلاي اتاۋلى بەت بار بولدى, نە
 1922+تاڭداعان اتاۋىڭىز جارامدى ەمەس.
18911923 باسقا اتاۋ تانداڭىز',
18921924 'talkexists' => "'''بەتتٸڭ ٶزٸ سٵتتٸ جىلجىتىلدى, بٸراق تالقىلاۋ بەتٸ بٸرگە جىلجىتىلمادى, ونىڭ سەبەبٸ جاڭا اتاۋدىڭ تالقىلاۋ بەتٸ بار تٷگە. بۇنى قولمەن قوسىڭىز.'''",
18931925 'movedto' => 'مىناعان جىلجىتىلدى:',
@@ -1919,13 +1951,14 @@
19201952 بٸر جولدا بٸر اتاۋ, جٵنە تانداڭىز: نە اعىمدىق نۇسقاسىن, بارلىق ەسكٸ نۇسقالارى مەن
19211953 جٵنە تاريحى جولدارى مەن بٸرگە, نە دٵل اعىمدىق نۇسقاسىن, سوڭعى ٶڭدەۋ تۋرالى اقپاراتى مەن بٸرگە.
19221954
1923 -سوڭعى جاعدايدا سٸلتەمەنٸ دە, مىسالى {{{{ns:mediawiki}}:mainpage}} بەتٸ ٷشٸن [[{{ns:special}}:Export/{{MediaWiki:mainpage}}]] قولدانۋعا بولادى.',
 1955+سوڭعى جاعدايدا سٸلتەمەنٸ دە, مىسالى «{{{{ns:mediawiki}}:mainpage}}» بەتٸ ٷشٸن [[{{ns:special}}:Export/{{MediaWiki:mainpage}}]] قولدانۋعا بولادى.',
19241956 'exportcuronly' => 'تولىق تاريحىن ەمەس, تەك اعىمدىق نۇسقاسىن كٸرٸستٸرٸڭٸز',
19251957 'exportnohistory' => "----
19261958 '''اڭعارتپا:''' ٶنٸمدٸلٸك ٵسەرٸ سەبەپتەرٸنەن, بەتتەر تولىق تاريحىن سىرتقا بەرۋٸ ٶشٸرٸلگەن.",
19271959 'export-submit' => 'سىرتقا بەر',
19281960 'export-addcattext' => 'مىنا ساناتتاعى بەتتەردٸ ٷستەۋ:',
19291961 'export-addcat' => 'ٷستە',
 1962+'export-download' => 'فايل ەتٸپ ساقتاۋدى ۇسىنۋ',
19301963
19311964 # Namespace 8 related
19321965 'allmessages' => 'جٷيە حابارلارى',
@@ -2164,11 +2197,19 @@
21652198 'patrol-log-page' => 'كٷزەت جۋرنالى',
21662199 'patrol-log-line' => '$2 كەزٸندە $1 دەگەندٸ كٷزەتتە دەپ بەلگٸلەدٸ $3',
21672200 'patrol-log-auto' => '(ٶزدٸكتٸك)',
2168 -'patrol-log-diff' => 'r$1',
 2201+'patrol-log-diff' => '№ $1',
21692202
21702203 # Image deletion
2171 -'deletedrevision' => 'مىنا ەسكٸ نۇسقاسىن جويدى: $1.',
 2204+'deletedrevision' => 'مىنا ەسكٸ نۇسقاسىن جويدى: $1.',
 2205+'filedeleteerror-short' => 'فايل جويۋ قاتەسٸ: $1',
 2206+'filedeleteerror-long' => 'مىنا فايلدى جويعاندا قاتەلەر كەزدەستٸ:
21722207
 2208+$1',
 2209+'filedelete-missing' => '«$1» فايلى جويىلمايدى, سەبەبٸ ول جوق.',
 2210+'filedelete-old-unregistered' => 'فايلدىن كەلتٸرٸلگەن «$1» نۇسقاسى دەرەكقوردا جوق.',
 2211+'filedelete-current-unregistered' => 'كەلتٸرٸلگەن «$1» فايل دەرەكقوردا جوق.',
 2212+'filedelete-archive-read-only' => '«$1» دەگەن مۇراعات قالتاسىنا ۆەبسەرۆەر جازا المايدى.',
 2213+
21732214 # Browsing diffs
21742215 'previousdiff' => '← الدىڭعىمەن ايىرماسى',
21752216 'nextdiff' => 'كەلەسٸمەن ايىرماسى →',
@@ -2189,6 +2230,12 @@
21902231 'showhidebots' => '(بوتتاردى $1)',
21912232 'noimages' => 'كٶرەتٸن ەشتەڭە جوق.',
21922233
 2234+# Bad image list
 2235+'bad_image_list' => 'پٸشٸمٸ تٶمەندەگٸدەي:
 2236+
 2237+تەك تٸزٸم دانالارى (* نىشانىمەن باستالىتىن جولدار) ەسەپتەلەدٸ. جولدىڭ بٸرٸنشٸ سٸلتەمەسٸ جارامسىز سۋرەتكە سٸلتەۋ قاجەت.
 2238+سول جولداعى كەيٸنگٸ ٵربٸر سٸلتەمەلەر ەرەن بولىپ ەسەپتەلەدٸ, مىسالى جول ٸشٸندەگٸ كەزدەسەتٸن سۋرەتٸ بار ماقالالار.',
 2239+
21932240 # Variants for Kazakh language
21942241 'variantname-kk-tr' => 'Latın',
21952242 'variantname-kk-kz' => 'Кирил',
@@ -2536,8 +2583,9 @@
25372584 : ''$2''
25382585 وسى بەتتٸ شىنىنان قايتا جاساۋىن راستاڭىز.",
25392586 'recreate' => 'قايتا جاساۋ',
2540 -'unit-pixel' => ' px',
25412587
 2588+'unit-pixel' => ' px',
 2589+
25422590 # HTML dump
25432591 'redirectingto' => '[[$1]] بەتٸنە ايداتۋدا…',
25442592
@@ -2575,7 +2623,7 @@
25762624 # Auto-summaries
25772625 'autosumm-blank' => 'بەتتٸڭ بارلىق ماعلۇماتىن الاستاتتى',
25782626 'autosumm-replace' => 'بەتتٸ «$1» دەگەنمەن الماستىردى',
2579 -'autoredircomment' => '[[$1]] دەگەنگە ايدادى', # This should be changed to the new naming convention, but existed beforehand
 2627+'autoredircomment' => '[[$1]] دەگەنگە ايدادى',
25802628 'autosumm-new' => 'جاڭا بەتتە: $1',
25812629
25822630 # Size units
@@ -2587,14 +2635,44 @@
25882636 # Live preview
25892637 'livepreview-loading' => 'جٷكتەۋدە…',
25902638 'livepreview-ready' => 'جٷكتەۋدە… دايىن!',
2591 -'livepreview-failed' => 'تۋرا قاراپ شىعۋ امالى بولمادى!<br />كٵدٸمگٸ قاراپ شىعۋ ٵدٸسٸن بايقاپ كٶرٸڭٸز.',
2592 -'livepreview-error' => 'مىناعان قوسىلۋ امالى بولمادى: $1 «$2»<br />كٵدٸمگٸ قاراپ شىعۋ ٵدٸسٸن بايقاپ كٶرٸڭٸز.',
 2639+'livepreview-failed' => 'تۋرا قاراپ شىعۋ امالى بولمادى! كٵدٸمگٸ قاراپ شىعۋ ٵدٸسٸن بايقاپ كٶرٸڭٸز.',
 2640+'livepreview-error' => 'مىناعان قوسىلۋ امالى بولمادى: $1 «$2». كٵدٸمگٸ قاراپ شىعۋ ٵدٸسٸن بايقاپ كٶرٸڭٸز.',
25932641
25942642 # Friendlier slave lag warnings
25952643 'lag-warn-normal' => '$1 سەكۋندتان جاڭالاۋ ٶزگەرٸستەر بۇل تٸزٸمدە كٶرسەتٸلمەۋٸ مٷمكٸن.',
2596 -'lag-warn-high' => 'دەرەكقور سەرۆەرٸ زور كەشٸگۋٸ سەبەبٸنەن, $1 سەكۋندتان جاڭالاۋ ٶزگەرٸستەر
2597 -بۇل تٸزٸمدە كٶرسەتٸلمەۋٸ مٷمكٸن.',
 2644+'lag-warn-high' => 'دەرەكقور سەرۆەرٸ زور كەشٸگۋٸ سەبەبٸنەن, $1 سەكۋندتان جاڭالاۋ ٶزگەرٸستەر بۇل تٸزٸمدە كٶرسەتٸلمەۋٸ مٷمكٸن.',
25982645
2599 -);
 2646+# Watchlist editor
 2647+'watchlistedit-numitems' => 'باقىلاۋ تٸزٸمٸڭٸزدە, تالقىلاۋ بەتتەرسٸز, {{PLURAL:$1|1 اتاۋ|$1 اتاۋ}} بار.',
 2648+'watchlistedit-noitems' => 'باقىلاۋ تٸزٸمٸڭٸزدە ەش اتاۋ جوق.',
 2649+'watchlistedit-clear-title' => 'باقىلاۋ تٸزٸمدٸ تازالاۋ',
 2650+'watchlistedit-clear-legend' => 'باقىلاۋ تٸزٸمدٸ تازالاۋ',
 2651+'watchlistedit-clear-confirm' => 'بۇل باقىلاۋ تٸزٸمٸڭٸزدەن بارلىق اتاۋلاردى الاستايدى. بۇنى راستان
 2652+ٸستەگٸڭٸز كەلە مە؟ تاعى دا [[{{ns:special}}:Watchlist/edit|جەكە اتاۋلاردى الاستاي]] الاسىز.',
 2653+'watchlistedit-clear-submit' => 'تازالاۋ',
 2654+'watchlistedit-clear-done' => 'باقىلاۋ تٸزٸمٸڭٸز تازالاتىلدى. بارلىق اتاۋلار الاستاتىلدى.',
 2655+'watchlistedit-normal-title' => 'باقىلاۋ تٸزٸمدٸ ٶڭدەۋ',
 2656+'watchlistedit-normal-legend' => 'باقىلاۋ تٸزٸمدەگٸ اتاۋلاردى الاستاۋ',
 2657+'watchlistedit-normal-explain' => 'باقىلاۋ تٸزٸمٸڭٸزدەگٸ اتاۋلار تٶمەندە كٶرسەتٸلەدٸ. اتاۋدى الاستاۋ ٷشٸن, قاسىنداعى
 2658+قاباشاقتى بەلگٸلەڭٸز, جٵنە اتاۋلاردى الاستاۋ دەگەندٸ نۇقىڭىز. تاعى دا [[{{ns:special}}:Watchlist/raw|قام تٸزٸمدٸ ٶڭدەي]],
 2659+نەمەسە [[Special:Watchlist/clear|بارلىق اتاۋلاردى الاستاي]] الاسىز.',
 2660+'watchlistedit-normal-submit' => 'اتاۋلاردى الاستاۋ',
 2661+'watchlistedit-normal-done' => '{{PLURAL:$1|1 اتاۋ|$1 اتاۋ}} باقىلاۋ تٸزٸمٸڭٸزدەن الاستالدى:',
 2662+'watchlistedit-raw-title' => 'قام باقىلاۋ تٸزٸمدٸ ٶڭدەۋ',
 2663+'watchlistedit-raw-legend' => 'قام باقىلاۋ تٸزٸمدٸ ٶڭدەۋ',
 2664+'watchlistedit-raw-explain' => 'باقىلاۋ تٸزٸمٸڭٸزدەگٸ اتاۋلار تٶمەندە كٶرسەتٸلەدٸ, جٵنە دە تٸزمدەن ٷستەپ جٵنە
 2665+الاستاپ ٶڭدەۋگە بولادى; بٸر جولدا بٸر اتاۋ كەلەدٸ. بٸتٸرگەننەن سوڭ باقىلاۋ تٸزٸمدٸ جاڭارتۋ دەگەندٸ نۇقىڭىز.
 2666+تاعى دا [Special:Watchlist/edit|قالىپتى ٶڭدەۋٸش پايدالانا]] الاسىز.',
 2667+'watchlistedit-raw-titles' => 'اتاۋلار:',
 2668+'watchlistedit-raw-submit' => 'باقىلاۋ تٸزٸمدٸ جاڭارتۋ',
 2669+'watchlistedit-raw-done' => 'باقىلاۋ تٸزٸمٸڭٸز جاڭارتىلدى.',
 2670+'watchlistedit-raw-added' => '{{PLURAL:$1|1 اتاۋ|$1 اتاۋ}} ٷستەلدٸ:',
 2671+'watchlistedit-raw-removed' => '{{PLURAL:$1|1 اتاۋ|$1 اتاۋ}} الاستاندى:',
26002672
 2673+# Watchlist editing tools
 2674+'watchlisttools-view' => 'قاتىستى ٶزگەرٸستەردٸ قاراۋ',
 2675+'watchlisttools-edit' => 'باقىلاۋ تٸزٸمدٸ قاراۋ جٵنە ٶڭدەۋ',
 2676+'watchlisttools-raw' => 'قام باقىلاۋ تٸزٸمدٸ ٶڭدەۋ',
 2677+'watchlisttools-clear' => 'باقىلاۋ تٸزٸمدٸ تازالاۋ',
26012678
 2679+);
Index: branches/liquidthreads/languages/messages/MessagesDe.php
@@ -133,11 +133,26 @@
134134 'Withoutinterwiki' => array( 'Fehlende_Interwikis' ),
135135 );
136136
 137+$datePreferences = array(
 138+ 'default',
 139+ 'dmyt',
 140+ 'dmyts',
 141+ 'dmy',
 142+ 'ymd',
 143+ 'ISO 8601'
 144+);
 145+
 146+$defaultDateFormat = 'dmy';
 147+
137148 $dateFormats = array(
138 - 'mdy time' => 'H:i',
139 - 'mdy date' => 'M j. Y',
140 - 'mdy both' => 'H:i, M j. Y',
 149+ 'dmyt time' => 'H:i',
 150+ 'dmyt date' => 'j. F Y',
 151+ 'dmyt both' => 'j. M Y, H:i',
141152
 153+ 'dmyts time' => 'H:i:s',
 154+ 'dmyts date' => 'j. F Y',
 155+ 'dmyts both' => 'j. M Y, H:i:s',
 156+
142157 'dmy time' => 'H:i',
143158 'dmy date' => 'j. F Y',
144159 'dmy both' => 'H:i, j. M Y',
@@ -145,6 +160,10 @@
146161 'ymd time' => 'H:i',
147162 'ymd date' => 'Y M j',
148163 'ymd both' => 'H:i, Y M j',
 164+
 165+ 'ISO 8601 time' => 'xnH:xni:xns',
 166+ 'ISO 8601 date' => 'xnY-xnm-xnd',
 167+ 'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns'
149168 );
150169
151170 $messages = array(
@@ -517,6 +536,7 @@
518537 'nouserspecified' => 'Bitte geben Sie einen Benutzernamen an.',
519538 'wrongpassword' => 'Das Passwort ist falsch (oder fehlt). Bitte versuchen Sie es erneut.',
520539 'wrongpasswordempty' => 'Das eingegebene Passwort war leer. Bitte versuchen Sie es erneut.',
 540+'passwordtooshort' => 'Fehler bei der Passwort-Wahl: Es muss mindestens $1 Zeichen lang sein und darf nicht mit dem Benutzernamen identisch sein.',
521541 'mailmypassword' => 'Neues Passwort zusenden',
522542 'passwordremindertitle' => 'Neues Passwort für ein {{SITENAME}}-Benutzerkonto',
523543 'passwordremindertext' => 'Jemand mit der IP-Adresse $1, wahrscheinlich Sie selbst, hat ein neues Passwort für die Anmeldung bei {{SITENAME}} ($4) angefordert.
@@ -610,6 +630,7 @@
611631 \'\'\'Bitte geben Sie folgende Daten in jeder Anfrage an:\'\'\'
612632 *Sperrender Administrator: $1
613633 *Sperrgrund: $2
 634+*Beginn der Sperre: $8
614635 *Sperr-Ende: $6
615636 *IP-Adresse: $3
616637 *Sperre betrifft: $7
@@ -632,7 +653,8 @@
633654 \'\'\'Bitte geben Sie folgende Daten in jeder Anfrage an:\'\'\'
634655 *Sperrender Administrator: $1
635656 *Sperrgrund: $2
636 -*Sperrende: $6
 657+*Beginn der Sperre: $8
 658+*Sperr-Ende: $6
637659 *IP-Adresse: $3
638660 *Sperr-ID: #$5
639661 </div>',
@@ -878,14 +900,14 @@
879901 'math_lexing_error' => "'Lexing'-Fehler",
880902 'math_syntax_error' => 'Syntaxfehler',
881903 'math_image_error' => 'die PNG-Konvertierung schlug fehl',
882 -'math_bad_tmpdir' => 'Kann das Temporärverzeichnis für mathematische Formeln nicht anlegen oder beschreiben.',
883 -'math_bad_output' => 'Kann das Zielverzeichnis für mathematische Formeln nicht anlegen oder beschreiben.',
884 -'math_notexvc' => 'Das texvc-Programm kann nicht gefunden werden. Bitte math/README beachten.',
 904+'math_bad_tmpdir' => 'Das temporäre Verzeichnis für mathematische Formeln kann nicht angelegt oder beschrieben werden.',
 905+'math_bad_output' => 'Das Zielverzeichnis für mathematische Formeln kann nicht angelegt oder beschrieben werden.',
 906+'math_notexvc' => 'Das texvc-Programm wurde nicht gefunden. Bitte math/README beachten.',
885907 'prefs-personal' => 'Benutzerdaten',
886908 'prefs-rc' => 'Anzeige von „Letzte Änderungen“',
887909 'prefs-watchlist' => 'Beobachtungsliste',
888 -'prefs-watchlist-days' => 'Anzahl der Tage, die die Beobachtungsliste standardmäßig umfassen soll:',
889 -'prefs-watchlist-edits' => 'Anzahl der Einträge in der erweiterten Beobachtungsliste:',
 910+'prefs-watchlist-days' => 'Maximale Anzahl der Tage, die die Beobachtungsliste standardmäßig umfassen soll:',
 911+'prefs-watchlist-edits' => 'Maximale Anzahl der Einträge in der erweiterten Beobachtungsliste:',
890912 'prefs-misc' => 'Verschiedenes',
891913 'saveprefs' => 'Einstellungen speichern',
892914 'resetprefs' => 'Eingaben verwerfen',
@@ -1937,8 +1959,12 @@
19381960 'showhidebots' => '(Bots $1)',
19391961 'noimages' => 'Keine Dateien gefunden.',
19401962
1941 -'passwordtooshort' => 'Fehler bei der Passwort-Wahl: Es muss mindestens $1 Zeichen lang sein und darf nicht mit dem Benutzernamen identisch sein.',
 1963+# Bad image list
 1964+'bad_image_list' => 'Format:
19421965
 1966+Nur Zeilen, die mit einem * anfangen, werden ausgewertet. Als erstes nach dem * muss ein Link auf ein unerwünschtes Bild stehen.
 1967+Darauf folgende Artikellinks in derselben Zeile definieren Ausnahmen, in deren Kontext das Bild trotzdem erscheinen darf.',
 1968+
19431969 # Metadata
19441970 'metadata' => 'Metadaten',
19451971 'metadata-help' => 'Diese Datei enthält weitere Informationen, die in der Regel von der Digitalkamera oder dem verwendeten Scanner stammen. Durch nachträgliche Bearbeitung der Originaldatei können einige Details verändert worden sein.',
@@ -1968,6 +1994,7 @@
19691995 'exif-resolutionunit' => 'Maßeinheit der Auflösung',
19701996 'exif-stripoffsets' => 'Bilddaten-Versatz',
19711997 'exif-rowsperstrip' => 'Anzahl Zeilen pro Streifen',
 1998+'exif-stripbytecounts' => 'Bytes pro komprimiertem Streifen',
19721999 'exif-jpeginterchangeformat' => 'Offset zu JPEG SOI',
19732000 'exif-jpeginterchangeformatlength' => 'Größe der JPEG-Daten in Bytes',
19742001 'exif-transferfunction' => 'Übertragungsfunktion',
Index: branches/liquidthreads/languages/messages/MessagesKk_kz.php
@@ -452,13 +452,14 @@
453453 'pagecategories' => '{{PLURAL:$1|Санат|Санаттар}}',
454454 'category_header' => '«$1» санатындағы беттер',
455455 'subcategories' => 'Санатшалар',
456 -'category-media-header' => '«$1» санатындағы таспалар',
 456+'category-media-header' => '«$1» санатындағы таспа',
 457+'category-empty' => "''Бұл санатта ағымда еш мақала не таспа жоқ.''",
457458
458459 'linkprefix' => '/^(.*?)([a-zäçéğıïñöşüýа-яёәіңғүұқөһA-ZÄÇÉĞİÏÑÖŞÜÝА-ЯЁӘІҢҒҮҰҚӨҺʺʹ«„]+)$/sDu',
459460 'mainpagetext' => "<big>'''МедиаУики бағдарламасы сәтті орнатылды.'''</big>",
460461 'mainpagedocfooter' => 'Уики бағдарламасын пайдалану ақпараты үшін [http://meta.wikimedia.org/wiki/Help:Contents Пайдаланушы нұсқауларымен] танысыңыз.
461462
462 -== Бастау ==
 463+== Бастау үшін ==
463464
464465 * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Баптау қалаулары тізімі]
465466 * [http://www.mediawiki.org/wiki/Manual:FAQ МедиаУики ЖҚС]
@@ -531,7 +532,7 @@
532533 'redirectedfrom' => '($1 бетінен айдатылған)',
533534 'redirectpagesub' => 'Айдату беті',
534535 'lastmodifiedat' => 'Бұл беттің өзгертілген соңғы кезі: $2, $1.', # $1 date, $2 time
535 -'viewcount' => 'Бұл бет {{PLURAL:$1|бір|$1}} рет қаралған.',
 536+'viewcount' => 'Бұл бет {{PLURAL:$1|бір|$1}} рет қатыналған.',
536537 'protectedpage' => 'Қорғаулы бет',
537538 'jumpto' => 'Мынаған өтіп кету:',
538539 'jumptonavigation' => 'бағыттау',
@@ -643,10 +644,13 @@
644645 Бұл туралы нақты URL жайын көрсетіп әкімшіге есептеме жіберіңіз.',
645646 'readonly_lag' => 'Жетек дерекқор серверлер бастауышпен қадамланғанда осы дерекқор өздіктік құлыпталынған',
646647 'internalerror' => 'Ішкі қате',
 648+'internalerror_info' => 'Ішкі қате: $1',
647649 'filecopyerror' => '«$1» файлы «$2» файлына көшірілмеді.',
648650 'filerenameerror' => '«$1» файл аты «$2» атына өзгертілмеді.',
649651 'filedeleteerror' => '«$1» файлы жойылмайды.',
 652+'directorycreateerror' => '«$1» қалтасы жасалмады.',
650653 'filenotfound' => '«$1» файлы табылмады.',
 654+'fileexistserror' => '«$1» файлға жазуға болмайды: осындай файл бар түге',
651655 'unexpected' => 'Күтілмеген мағына: «$1» = «$2».',
652656 'formerror' => 'Қате: жіберу үлгіті емес',
653657 'badarticleerror' => 'Осындай әрекет мына бетте атқарылмайды.',
@@ -668,6 +672,7 @@
669673 'editinginterface' => "'''Назар салыңыз:''' Бағдарламаға тілдесу мәтінін жетістіретін MediaWiki бетін өңдеп жатырсыз. Бұл беттің өзгертуі барлық пайдаланушылар тілдесуіне әсер етеді.",
670674 'sqlhidden' => '(SQL сұранысы жасырылды)',
671675 'cascadeprotected' => 'Бұл бет өңдеуден қорғалған, себебі: ол мына «баулы» қорғауы ендірілген {{PLURAL:$1|бетке|беттерге}} кіріктірілген:',
 676+'namespaceprotected' => "''$1''' есім аясындағы беттерді өңдеу үшін рұқсатыңыз жоқ.",
672677
673678 # Login and logout pages
674679 'logouttitle' => 'Қатысушы шығуы',
@@ -812,8 +817,9 @@
813818
814819 Бұғаттауды $1 істеген. Келтірілген себебі: ''$2''.
815820
816 -Бұғаттау бітетін мезгілі: $6<br />
817 -Мақсатталған мерзімі: $7
 821+* Бұғаттау басталғаны: $8
 822+* Бұғаттау бітетіні: $6
 823+* Бұғаттау мақсаты: $7
818824
819825 Осы бұғаттауды талқылау үшін $1 дегенмен, не басқа [[{{{{ns:mediawiki}}:grouppage-sysop}}|әкімшімен]] қатынасуыңызға болады.
820826 [[{{ns:special}}:Preferences|Тіркелгі баптауларын]] қолданып жарамды е-пошта жайын енгізгенше дейін және бұны пайдалануы
@@ -824,7 +830,8 @@
825831
826832 :''$2''
827833
828 -Бұғаттау бітетін мезгілі: $6
 834+* Бұғаттау басталғаны: $8
 835+* Бұғаттау бітетіні: $6
829836
830837 Осы бұғаттауды талқылау үшін $1 дегенмен,
831838 не басқа [[{{{{ns:mediawiki}}:grouppage-sysop}}|әкімшімен]] қатынасуыңызға болады.
@@ -874,6 +881,9 @@
875882 ''Осы уикиде қам HTML ендірілген, JavaScript шабуылдардан қорғану үшін алдын ала қарап шығу жасырылған.''
876883
877884 <strong>Егер бұл өңдеу адал талап болса, қайтарып көріңіз. Егер әлі де істемесе, шығып, сосын кері кіріп көріңіз.</strong>",
 885+'token_suffix_mismatch' => '<strong>Өңдеуіңіз қабылданбады, себебі қолданған бағдарламаңыз мәтіндегі
 886+емле нышандарын кескілеп тастады. Мақала мәтіні бүлінбеу үшін түзетуіңіз қабылданбайды.
 887+Бұл ғаламторға негізделінген қателі тіркелгісіз прокси-серверді пайдаланғаннван болуы мүмкін.</strong>',
878888 'importing' => 'Сырттан алуда: $1',
879889 'editing' => 'Өңделуде: $1',
880890 'editinguser' => 'Өңделуде: <b>$1</b> деген қатысушы',
@@ -1094,8 +1104,8 @@
10951105 'prefs-personal' => 'Жеке деректері',
10961106 'prefs-rc' => 'Жуықтағы өзгерістер',
10971107 'prefs-watchlist' => 'Бақылау',
1098 -'prefs-watchlist-days' => 'Бақылау тізімінде көрсетерін күн саны:',
1099 -'prefs-watchlist-edits' => 'Кеңейтілген бақылау тізімі түзету көрсетерін саны:',
 1108+'prefs-watchlist-days' => 'Бақылау тізімінде көрсетерін ең көп күндері:',
 1109+'prefs-watchlist-edits' => 'Кеңейтілген бақылау тізімінде көрсетерін ең көп түзетулері:',
11001110 'prefs-misc' => 'Қосымша',
11011111 'saveprefs' => 'Сақта',
11021112 'resetprefs' => 'Таста',
@@ -1125,19 +1135,19 @@
11261136 'files' => 'Файлдар',
11271137
11281138 # User rights
1129 -'userrights-lookup-user' => 'Қатысушы топтарын меңгеру',
1130 -'userrights-user-editname' => 'Қатысушы атын енгізіңіз:',
1131 -'editusergroup' => 'Қатысушы топтарын өңдеу',
1132 -'userrights-editusergroup' => 'Қатысушы топтарын өңдеу',
1133 -'saveusergroups' => 'Қатысушы топтарын сақтау',
1134 -'userrights-groupsmember' => 'Мүшелігі:',
1135 -'userrights-groupsavailable' => 'Қатынаулы топтар:',
1136 -'userrights-groupshelp' => 'Қатысушыны үстейтін не аластатын топтарды талғаңыз.
 1139+'userrights-lookup-user' => 'Қатысушы топтарын меңгеру',
 1140+'userrights-user-editname' => 'Қатысушы атын енгізіңіз:',
 1141+'editusergroup' => 'Қатысушы топтарын өңдеу',
 1142+'userrights-editusergroup' => 'Қатысушы топтарын өңдеу',
 1143+'saveusergroups' => 'Қатысушы топтарын сақтау',
 1144+'userrights-groupsmember' => 'Мүшелігі:',
 1145+'userrights-groupsavailable' => 'Жетімді топтар:',
 1146+'userrights-groupshelp' => 'Қатысушыны үстейтін не аластатын топтарды талғаңыз.
11371147 Талғауы өшірілген топтар өзгертілімейді. Топтардың талғауын CTRL + Сол жақ нұқумен өшіруіңізге болады.',
1138 -'userrights-reason' => 'Өзгерту себебі:',
1139 -'userrights-list' => '$1 мүшесі болғандықтан $2 үстей аласыз және $3 аластай аласыз.',
1140 -'userrights-list-nogroups' => 'топтарсыз',
1141 -'userrights-list-groups' => '$2 {{PLURAL:$1|топ|топтар}}',
 1148+'userrights-reason' => 'Өзгерту себебі:',
 1149+'userrights-available-none' => 'Топ мүшелігін өзгерте алмайсыз.',
 1150+'userrights-available-add' => 'Қатысушыларды $1 тобына үстей аласыз.',
 1151+'userrights-available-remove' => 'Қатысушыларды $1 тобынан аластай аласыз.',
11421152
11431153 # Groups
11441154 'group' => 'Топ:',
@@ -1269,6 +1279,7 @@
12701280
12711281 'license' => 'Лицензиясы',
12721282 'nolicense' => 'Ештеңе талғанбаған',
 1283+'license-nopreview' => '(Қарап шығу қатыналмайды)',
12731284 'upload_source_url' => ' (жарамды, баршаға қатынаулы URL жай)',
12741285 'upload_source_file' => ' (компьютеріңіздегі файл)',
12751286
@@ -1280,19 +1291,22 @@
12811292 'ilsubmit' => 'Іздеу',
12821293 'showlast' => 'Соңғы $1 файл $2 сұрыптап көрсет.',
12831294 'byname' => 'атымен',
1284 -'bydate' => 'күн-аймен',
 1295+'bydate' => 'күн-айымен',
12851296 'bysize' => 'мөлшерімен',
12861297 'imgdelete' => 'жою',
12871298 'imgdesc' => 'сипп.',
12881299 'imgfile' => 'файл',
1289 -'imglegend' => 'Шартты белгілер: (сипп.) — файл сипаттамасын көрсету/өңдеу.',
1290 -'imghistory' => 'Файл тарихы',
1291 -'revertimg' => 'қайт.',
1292 -'deleteimg' => 'жою',
1293 -'deleteimgcompletely' => 'Осы файлдың барлық нұсқаларын жой',
1294 -'imghistlegend' => 'Шартты белгілер: (ағым.) = ағымдық файл, (жою) = ескі нұсқасын
1295 -жою, (қай.) = ескі нұсқасына қайтару.
1296 -<br /><i>Қотарылған файлды көру үшін күн-айына нұқыңыз</i>.',
 1300+'filehist' => 'Файл тарихы',
 1301+'filehist-help' => 'Файлдың қай уақытта қалай көрінетін үшін Күн-ай/Уақыт дегенді нұқыңыз.',
 1302+'filehist-deleteall' => 'барлығын жой',
 1303+'filehist-deleteone' => 'бұны жой',
 1304+'filehist-revert' => 'қайтар',
 1305+'filehist-current' => 'ағымдағы',
 1306+'filehist-datetime' => 'Күн-ай/Уақыт',
 1307+'filehist-user' => 'Қатысушы',
 1308+'filehist-dimensions' => 'Өлшемдері',
 1309+'filehist-filesize' => 'Файл мөлшері',
 1310+'filehist-comment' => 'Мәндемесі',
12971311 'imagelinks' => 'Сілтемелері',
12981312 'linkstoimage' => 'Бұл файлға келесі беттер сілтейді:',
12991313 'nolinkstoimage' => 'Бұл файлға еш бет сілтемейді.',
@@ -1309,6 +1323,16 @@
13101324 'imagelist_description' => 'Сипаттамасы',
13111325 'imagelist_search_for' => 'Суретті атымен іздеу:',
13121326
 1327+# File reversion
 1328+'filerevert' => '$1 дегенді қайтару',
 1329+'filerevert-legend' => 'Файлды қайтару',
 1330+'filerevert-intro' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' дегенді [$4, $2 кезіндегі $3 нұсқасына] қайтардыңыз.</span>',
 1331+'filerevert-comment' => 'Мәндемесі:',
 1332+'filerevert-defaultcomment' => '$1, $2 кезіндегі нұсқасына қайтарды',
 1333+'filerevert-submit' => 'Қайтару',
 1334+'filerevert-success' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' деген [$4, $2 кезіндегі $3 нұсқасына] қайтарылды.</span>',
 1335+'filerevert-badversion' => 'Келтірілген уақыт белгісімен бұл файлдың алдыңғы жергілікті нұсқасы жоқ.',
 1336+
13131337 # MIME search
13141338 'mimesearch' => 'Файлды MIME түрімен іздеу',
13151339 'mimesearch-summary' => 'Бұл бет файлдарды MIME түрімен сүзгілеу мүмкіндігін береді. Кірісі: «мағлұмат түрі»/«түр тарауы», мысалы <tt>image/jpeg</tt>.',
@@ -1347,7 +1371,7 @@
13481372 Бұның нәтижесінде орта есеппен әрбір бетке '''$5''' рет түзету келеді, және әрбір түзетуге '''$6''' рет қарау келеді.
13491373
13501374 Ағымдық [http://meta.wikimedia.org/wiki/Help:Job_queue тапсырым кезегі] ұзындылығы: '''$7'''.",
1351 -'userstatstext' => "Мында {{PLURAL:$1|'''1''' тіркелген қатысушы|'''$1''' тіркелген қатысушы}} бар, соның ішінде
 1375+'userstatstext' => "Мында {{PLURAL:$1|'''1''' тіркелген [[{{ns:special}}:Listusers|қатысушы]]|'''$1''' тіркелген [[{{ns:special}}:Listusers|қатысушы]]}} бар, соның ішінде
13521376 {{PLURAL:$2|'''1''' қатысушыда|'''$2''' қатысушыда}} (немесе '''$4 %''') $5 құқықтары бар",
13531377 'statistics-mostpopular' => 'Ең көп қаралған беттер',
13541378
@@ -1458,6 +1482,7 @@
14591483 'allpagessubmit' => 'Өту',
14601484 'allpagesprefix' => 'Мынадан басталған беттерді көрсету:',
14611485 'allpagesbadtitle' => 'Алынған бет атауы жарамсыз болған, немесе тіл-аралық не уики-аралық бастауы бар болды. Атауда қолдануға болмайтын нышандар болуы мүмкін.',
 1486+'allpages-bad-ns' => '{{SITENAME}} жобасында «$1» есім аясы жоқ.',
14621487
14631488 # Special:Listusers
14641489 'listusersfrom' => 'Мына қатысушыдан бастап көрсету:',
@@ -1515,7 +1540,7 @@
15161541 'unwatchthispage' => 'Бақылауды тоқтату',
15171542 'notanarticle' => 'Мағлұмат беті емес',
15181543 'watchnochange' => 'Көрсетілген мерзімде ешбір бақыланған дана өңделген жоқ.',
1519 -'watchlist-details' => "Бақылау тізімінде (талқылау беттерісіз) '''$1''' бет бар.",
 1544+'watchlist-details' => 'Бақылау тізімінде (талқылау беттерісіз) {{PLURAL:$1|1 бет|$1 бет}} бар.',
15201545 'wlheader-enotif' => '* Ескерту хат жіберуі ендірілген.',
15211546 'wlheader-showupdated' => "* Соңғы кіргенімнен бері өзгертілген беттерді '''жуан''' әрбімен көрсет",
15221547 'watchmethod-recent' => 'бақылаулы беттердің жуықтағы өзгерістерін тексеру',
@@ -1593,7 +1618,6 @@
15941619 'deletionlog' => 'жою журналы',
15951620 'reverted' => 'Ертерек нұсқасына қайтарылған',
15961621 'deletecomment' => 'Жоюдың себебі',
1597 -'imagereverted' => 'Ертерек нұсқасына қайтару сәтті өтті.',
15981622 'rollback' => 'Түзетулерді қайтару',
15991623 'rollback_short' => 'Қайтару',
16001624 'rollbacklink' => 'қайтару',
@@ -1604,7 +1628,8 @@
16051629
16061630 Соңғы өңдеуді [[{{ns:user}}:$3|$3]] ([[{{ns:user_talk}}:$3|талқылауы]]) дегенді жасаған.',
16071631 'editcomment' => 'Түзетудің болған мәндемесі: «<i>$1</i>».', # only shown if there is an edit comment
1608 -'revertpage' => '[[{{ns:special}}:Contributions/$2|$2]] ([[{{ns:user_talk}}:$2|талқылауы]]) түзетулерін [[{{ns:user}}:$1|$1]] соңғы нұсқасына қайтарды',
 1632+'revertpage' => '[[{{ns:special}}:Contributions/$2|$2]] ([[{{ns:user_talk}}:$2|талқылауы]]) түзетулерінен қайтарған; [[{{ns:user}}:$1|$1]] соңғы нұсқасына өзгертті.',
 1633+'rollback-success' => '$1 түзетулерінен қайтарған; $2 соңғы нұсқасына өзгертті.',
16091634 'sessionfailure' => 'Кіру сессиясында шатақ болған сияқты;
16101635 сессияға шабуылдаудардан қорғану үшін, осы әрекет тоқтатылды.
16111636 «Артқа» түймесін басыңыз, және бетті кері жүктеңіз, сосын қайталап көріңіз.',
@@ -1651,46 +1676,55 @@
16521677 'restriction-level-all' => 'әрқайсы деңгейде',
16531678
16541679 # Undelete
1655 -'undelete' => 'Жойылған беттерді қарау',
1656 -'undeletepage' => 'Жойылған беттерді қарау және қайтару',
1657 -'viewdeletedpage' => 'Жойылған беттерді қарау',
1658 -'undeletepagetext' => 'Келесі беттер жойылды деп белгіленген, бірақ мағлұматы мұрағатта жатқан,
 1680+'undelete' => 'Жойылған беттерді қарау',
 1681+'undeletepage' => 'Жойылған беттерді қарау және қайтару',
 1682+'viewdeletedpage' => 'Жойылған беттерді қарау',
 1683+'undeletepagetext' => 'Келесі беттер жойылды деп белгіленген, бірақ мағлұматы мұрағатта жатқан,
16591684 сондықтан кері қайтаруға әзір. Мұрағат мерзім бойынша тазаланып тұруы мүмкін.',
1660 -'undeleteextrahelp' => "Бүкіл бетті қайтару үшін, барлық қабашақтарды бос қалдырып
 1685+'undeleteextrahelp' => "Бүкіл бетті қайтару үшін, барлық қабашақтарды бос қалдырып
16611686 '''''Қайтар!''''' түймесін нұқыңыз. Бөлекше қайтару орындау үшін, қайтарайын деген нұсқаларына сәйкес
16621687 қабашақтарын белгілеңіз де, және '''''Қайтар!''''' түймесін нұқыңыз. '''''Таста''''' түймесін
16631688 нұқығанда мәндеме аумағы мен барлық қабашақтар тазаланады.",
1664 -'undeleterevisions' => '{{PLURAL:$1|Бір нұсқа|$1 нұсқа}} мұрағатталды',
1665 -'undeletehistory' => 'Егер бет мағлұматын қайтарсаңыз,тарихында барлық нұсқалар да
 1689+'undeleterevisions' => '{{PLURAL:$1|Бір нұсқа|$1 нұсқа}} мұрағатталды',
 1690+'undeletehistory' => 'Егер бет мағлұматын қайтарсаңыз,тарихында барлық нұсқалар да
16661691 қайтарылады. Егер жоюдан соң дәл солай атауымен жаңа бет жасалса, қайтарылған нұсқалар
16671692 тарихтың ең адында көрсетіледі, және көрсетіліп тұрған беттің ағымдық нұсқасы
16681693 өздіктік алмастырылмайды. Файл нұсқаларының қайтарғанда шектеулері жойылатын ұмытпаңыз.',
1669 -'undeleterevdel' => 'Егер беттің үстіңгі нұсқасы жарым-жартылай жойылған болса жойылған қайтаруы
 1694+'undeleterevdel' => 'Егер беттің үстіңгі нұсқасы жарым-жартылай жойылған болса жойылған қайтаруы
16701695 атқарылмайды. Осындай жағдайларда, ең жаңа жойылған нұсқа белгілеуін немесе жасыруын аластатыңыз.
16711696 Көруіңізге рұқсат етілмеген файл нұсқалары қайтарылмайды.',
1672 -'undeletehistorynoadmin' => 'Бұл бет жойылған. Жою себебі алдындағы өңдеген қатысушылар
 1697+'undeletehistorynoadmin' => 'Бұл бет жойылған. Жою себебі алдындағы өңдеген қатысушылар
16731698 егжей-тегжейлерімен бірге төмендегі сипаттамасында көрсетілген.
16741699 Осы жойылған нұсқалардың мәтіні тек әкімшілерге қатынаулы.',
1675 -'undelete-revision' => '$2 кезіндегі $1 дегеннің жойылған нұсқасы:',
1676 -'undeleterevision-missing' => 'Жарамсыз не жоғалған нұсқа. Сілтемеңіз жарамсыз болуы мүмкін, не
 1700+'undelete-revision' => '$2 кезіндегі $1 дегеннің жойылған нұсқасы:',
 1701+'undeleterevision-missing' => 'Жарамсыз не жоғалған нұсқа. Сілтемеңіз жарамсыз болуы мүмкін, не
16771702 нұсқа қайтарылған түге немесе мұрағаттан аластатылған.',
1678 -'undeletebtn' => 'Қайтар!',
1679 -'undeletereset' => 'Таста',
1680 -'undeletecomment' => 'Мәндемесі:',
1681 -'undeletedarticle' => '«[[$1]]» қайтарды',
1682 -'undeletedrevisions' => '{{PLURAL:$1|Нұсқаны|$1 нұсқаны}} қайтарды',
1683 -'undeletedrevisions-files' => '{{PLURAL:$1|Нұсқаны|$1 нұсқаны}} және {{PLURAL:$2|файлды|$2 файлды}} қайтарды',
1684 -'undeletedfiles' => '{{PLURAL:$1|1 файлды|$1 файлды}} қайтарды',
1685 -'cannotundelete' => 'Қайтару сәтсіз бітті; тағы біреу сізден бұрын сол бетті қайтарған болар.',
1686 -'undeletedpage' => "<big>'''$1 қайтарылды'''</big>
 1703+'undeletebtn' => 'Қайтар!',
 1704+'undeletereset' => 'Таста',
 1705+'undeletecomment' => 'Мәндемесі:',
 1706+'undeletedarticle' => '«[[$1]]» қайтарды',
 1707+'undeletedrevisions' => '$1 нұсқа қайтарды',
 1708+'undeletedrevisions-files' => '$1 нұсқа және $2 файл қайтарды',
 1709+'undeletedfiles' => '$1 файл қайтарды',
 1710+'cannotundelete' => 'Қайтару сәтсіз бітті; тағы біреу сізден бұрын сол бетті қайтарған болар.',
 1711+'undeletedpage' => "<big>'''$1 қайтарылды'''</big>
16871712
16881713 Жуықтағы жою мен қайтару жөнінде [[{{ns:special}}:Log/delete|жою журналын]] қараңыз.",
1689 -'undelete-header' => 'Жуықтағы жойылған беттер жөнінде [[{{ns:special}}:Log/delete|жою журналын]] қараңыз.',
1690 -'undelete-search-box' => 'Жойылған беттерді іздеу',
1691 -'undelete-search-prefix' => 'Мынадан басталған беттерді көрсет:',
1692 -'undelete-search-submit' => 'Іздеу',
1693 -'undelete-no-results' => 'Жою мұрағатында ешқандай сәйкес беттер табылмады.',
 1714+'undelete-header' => 'Жуықтағы жойылған беттер жөнінде [[{{ns:special}}:Log/delete|жою журналын]] қараңыз.',
 1715+'undelete-search-box' => 'Жойылған беттерді іздеу',
 1716+'undelete-search-prefix' => 'Мынадан басталған беттерді көрсет:',
 1717+'undelete-search-submit' => 'Іздеу',
 1718+'undelete-no-results' => 'Жою мұрағатында ешқандай сәйкес беттер табылмады.',
 1719+'undelete-filename-mismatch' => 'Файлдың $1 уақыт белгісі бар нұсқасы жойылмады: файл атауы сәйкес емес',
 1720+'undelete-bad-store-key' => 'Файлдың $1 уақыт белгісі бар нұсқасы жойылмады: файл бұрыннан жоқ.',
 1721+'undelete-cleanup-error' => 'Пайдаланылмаған «$1» мұрағат файлының жою қатесі.',
 1722+'undelete-missing-filearchive' => '$1 нөмірлі мұрағат файлы қайтарылмайды, себебі ол дерекқорда жоқ.
 1723+Бұл кері қайтарылған мүмкін.',
 1724+'undelete-error-short' => 'Файлды кері қайтару қатесі: $1',
 1725+'undelete-error-long' => 'Мына файлды кері қайтарғанда қателер кездесті:
16941726
 1727+$1',
 1728+
16951729 # Namespace form on various pages
16961730 'namespace' => 'Есім аясы:',
16971731 'invert' => 'Талғауды керілеу',
@@ -1703,10 +1737,9 @@
17041738 'ucnote' => 'Төменде осы қатысушы жасаған соңғы <b>$2</b> күндегі, соңғы <b>$1</b> өзгерісі көрсетледі.',
17051739 'uclinks' => 'Соңғы $2 күндегі, соңғы жасалған $1 өзгерісін қарау.',
17061740 'uctop' => ' (үсті)',
 1741+'month' => 'Айдағы (және ертеректен):',
 1742+'year' => 'Жылдағы (және ертеректен):',
17071743
1708 -'month' => 'Ай:',
1709 -'year' => 'Жыл:',
1710 -
17111744 'sp-contributions-newest' => 'Ең жаңасына',
17121745 'sp-contributions-oldest' => 'Ең ескісіне',
17131746 'sp-contributions-newer' => 'Жаңалау $1',
@@ -1721,19 +1754,18 @@
17221755 'sp-newimages-showfrom' => '$1 кезінен бері — жаңа суреттерді көрсет',
17231756
17241757 # What links here
1725 -'whatlinkshere' => 'Сілтеген беттер',
1726 -'notargettitle' => 'Ақырғы атау жоқ',
1727 -'notargettext' => 'Осы әрекет орындалатын нысана бет,
1728 -не қатысушы көрсетілмеген.',
1729 -'linklistsub' => '(Сілтемелер тізімі)',
1730 -'linkshere' => "'''[[:$1]]''' дегенге мына беттер сілтейді:",
1731 -'nolinkshere' => "'''[[:$1]]''' дегенге еш бет сілтемейді.",
1732 -'nolinkshere-ns' => "Талғанған есім аясында '''[[:$1]]''' дегенге ешқандай бет сілтемейді.",
1733 -'isredirect' => 'айдату беті',
1734 -'istemplate' => 'кіріктіру',
1735 -'whatlinkshere-prev' => '{{PLURAL:$1|алдыңғы|алдыңғы $1}}',
1736 -'whatlinkshere-next' => '{{PLURAL:$1|келесі|келесі $1}}',
1737 -'whatlinkshere-links' => '← сілтемелер',
 1758+'whatlinkshere' => 'Сілтеген беттер',
 1759+'notargettitle' => 'Ақырғы атау жоқ',
 1760+'notargettext' => 'Осы әрекет орындалатын нысана бет, не қатысушы көрсетілмеген.',
 1761+'linklistsub' => '(Сілтемелер тізімі)',
 1762+'linkshere' => "'''[[:$1]]''' дегенге мына беттер сілтейді:",
 1763+'nolinkshere' => "'''[[:$1]]''' дегенге еш бет сілтемейді.",
 1764+'nolinkshere-ns' => "Талғанған есім аясында '''[[:$1]]''' дегенге ешқандай бет сілтемейді.",
 1765+'isredirect' => 'айдату беті',
 1766+'istemplate' => 'кіріктіру',
 1767+'whatlinkshere-prev' => '{{PLURAL:$1|алдыңғы|алдыңғы $1}}',
 1768+'whatlinkshere-next' => '{{PLURAL:$1|келесі|келесі $1}}',
 1769+'whatlinkshere-links' => '← сілтемелер',
17381770
17391771 # Block/unblock
17401772 'blockip' => 'Пайдаланушыны бұғаттау',
@@ -1815,7 +1847,6 @@
18161848 'ipb_cant_unblock' => 'Қате: IP $1 бұғаттауы табылмады. Оның бұғаттауы өшірлген сияқты.',
18171849 'proxyblockreason' => 'IP жайыңыз ашық прокси серверге жататындықтан бұғатталған. Интернет қызметін жабдықтаушыңызбен, не техникалық медеу қызметімен қатынасыңыз, және оларға осы оте күрделі қауыпсіздік шатақ туралы ақпарат беріңіз.',
18181850 'proxyblocksuccess' => 'Бітті.',
1819 -'sorbs' => 'DNSBL қара тізімі',
18201851 'sorbsreason' => 'Сіздің IP жайыңыз осы торапта қолданылған DNSBL қара тізіміндегі ашық прокси-сервер деп табылады.',
18211852 'sorbs_create_account_reason' => 'Сіздің IP жайыңыз осы торапта қолданылған DNSBL қара тізіміндегі ашық прокси-сервер деп табылады. Тіркелгі жасай алмайсыз.',
18221853
@@ -1877,8 +1908,9 @@
18781909 'move-watch' => 'Бұл бетті бақылау',
18791910 'movepagebtn' => 'Бетті жылжыт',
18801911 'pagemovedsub' => 'Жылжыту сәтті аяқталды',
1881 -'articleexists' => 'Былай атаулы бет бар болды, не таңдаған
1882 -атауыңыз жарамды емес.
 1912+'movepage-moved' => "<big>'''«$1» деген «$2» дегенге жылжытылды'''</big>", # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.
 1913+'articleexists' => 'Былай атаулы бет бар болды, не
 1914+таңдаған атауыңыз жарамды емес.
18831915 Басқа атау тандаңыз',
18841916 'talkexists' => "'''Беттің өзі сәтті жылжытылды, бірақ талқылау беті бірге жылжытылмады, оның себебі жаңа атаудың талқылау беті бар түге. Бұны қолмен қосыңыз.'''",
18851917 'movedto' => 'мынаған жылжытылды:',
@@ -1911,13 +1943,14 @@
19121944 бір жолда бір атау, және тандаңыз: не ағымдық нұсқасын, барлық ескі нұсқалары мен
19131945 және тарихы жолдары мен бірге, не дәл ағымдық нұсқасын, соңғы өңдеу туралы ақпараты мен бірге.
19141946
1915 -Соңғы жағдайда сілтемені де, мысалы {{{{ns:mediawiki}}:mainpage}} беті үшін [[{{ns:special}}:Export/{{MediaWiki:mainpage}}]] қолдануға болады.',
 1947+Соңғы жағдайда сілтемені де, мысалы «{{{{ns:mediawiki}}:mainpage}}» беті үшін [[{{ns:special}}:Export/{{MediaWiki:mainpage}}]] қолдануға болады.',
19161948 'exportcuronly' => 'Толық тарихын емес, тек ағымдық нұсқасын кірістіріңіз',
19171949 'exportnohistory' => "----
19181950 '''Аңғартпа:''' Өнімділік әсері себептерінен, беттер толық тарихын сыртқа беруі өшірілген.",
19191951 'export-submit' => 'Сыртқа бер',
19201952 'export-addcattext' => 'Мына санаттағы беттерді үстеу:',
19211953 'export-addcat' => 'Үсте',
 1954+'export-download' => 'Файл етіп сақтауды ұсыну',
19221955
19231956 # Namespace 8 related
19241957 'allmessages' => 'Жүйе хабарлары',
@@ -2156,11 +2189,19 @@
21572190 'patrol-log-page' => 'Күзет журналы',
21582191 'patrol-log-line' => '$2 кезінде $1 дегенді күзетте деп белгіледі $3',
21592192 'patrol-log-auto' => '(өздіктік)',
2160 -'patrol-log-diff' => 'r$1',
 2193+'patrol-log-diff' => '№ $1',
21612194
21622195 # Image deletion
2163 -'deletedrevision' => 'Мына ескі нұсқасын жойды: $1.',
 2196+'deletedrevision' => 'Мына ескі нұсқасын жойды: $1.',
 2197+'filedeleteerror-short' => 'Файл жою қатесі: $1',
 2198+'filedeleteerror-long' => 'Мына файлды жойғанда қателер кездесті:
21642199
 2200+$1',
 2201+'filedelete-missing' => '«$1» файлы жойылмайды, себебі ол жоқ.',
 2202+'filedelete-old-unregistered' => 'Файлдын келтірілген «$1» нұсқасы дерекқорда жоқ.',
 2203+'filedelete-current-unregistered' => 'Келтірілген «$1» файл дерекқорда жоқ.',
 2204+'filedelete-archive-read-only' => '«$1» деген мұрағат қалтасына вебсервер жаза алмайды.',
 2205+
21652206 # Browsing diffs
21662207 'previousdiff' => '← Алдыңғымен айырмасы',
21672208 'nextdiff' => 'Келесімен айырмасы →',
@@ -2181,6 +2222,12 @@
21822223 'showhidebots' => '(боттарды $1)',
21832224 'noimages' => 'Көретін ештеңе жоқ.',
21842225
 2226+# Bad image list
 2227+'bad_image_list' => 'Пішімі төмендегідей:
 2228+
 2229+Тек тізім даналары (* нышанымен басталытын жолдар) есептеледі. Жолдың бірінші сілтемесі жарамсыз суретке сілтеу қажет.
 2230+Сол жолдағы кейінгі әрбір сілтемелер ерен болып есептеледі, мысалы жол ішіндегі кездесетін суреті бар мақалалар.',
 2231+
21852232 # Variants for Kazakh language
21862233 'variantname-kk-tr' => 'Latın',
21872234 'variantname-kk-kz' => 'Кирил',
@@ -2528,8 +2575,9 @@
25292576 : ''$2''
25302577 Осы бетті шынынан қайта жасауын растаңыз.",
25312578 'recreate' => 'Қайта жасау',
2532 -'unit-pixel' => ' px',
25332579
 2580+'unit-pixel' => ' px',
 2581+
25342582 # HTML dump
25352583 'redirectingto' => '[[$1]] бетіне айдатуда…',
25362584
@@ -2567,7 +2615,7 @@
25682616 # Auto-summaries
25692617 'autosumm-blank' => 'Беттің барлық мағлұматын аластатты',
25702618 'autosumm-replace' => 'Бетті «$1» дегенмен алмастырды',
2571 -'autoredircomment' => '[[$1]] дегенге айдады', # This should be changed to the new naming convention, but existed beforehand
 2619+'autoredircomment' => '[[$1]] дегенге айдады',
25722620 'autosumm-new' => 'Жаңа бетте: $1',
25732621
25742622 # Size units
@@ -2579,14 +2627,44 @@
25802628 # Live preview
25812629 'livepreview-loading' => 'Жүктеуде…',
25822630 'livepreview-ready' => 'Жүктеуде… Дайын!',
2583 -'livepreview-failed' => 'Тура қарап шығу амалы болмады!<br />Кәдімгі қарап шығу әдісін байқап көріңіз.',
2584 -'livepreview-error' => 'Мынаған қосылу амалы болмады: $1 «$2»<br />Кәдімгі қарап шығу әдісін байқап көріңіз.',
 2631+'livepreview-failed' => 'Тура қарап шығу амалы болмады! Кәдімгі қарап шығу әдісін байқап көріңіз.',
 2632+'livepreview-error' => 'Мынаған қосылу амалы болмады: $1 «$2». Кәдімгі қарап шығу әдісін байқап көріңіз.',
25852633
25862634 # Friendlier slave lag warnings
25872635 'lag-warn-normal' => '$1 секундтан жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.',
2588 -'lag-warn-high' => 'Дерекқор сервері зор кешігуі себебінен, $1 секундтан жаңалау өзгерістер
2589 -бұл тізімде көрсетілмеуі мүмкін.',
 2636+'lag-warn-high' => 'Дерекқор сервері зор кешігуі себебінен, $1 секундтан жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.',
25902637
2591 -);
 2638+# Watchlist editor
 2639+'watchlistedit-numitems' => 'Бақылау тізіміңізде, талқылау беттерсіз, {{PLURAL:$1|1 атау|$1 атау}} бар.',
 2640+'watchlistedit-noitems' => 'Бақылау тізіміңізде еш атау жоқ.',
 2641+'watchlistedit-clear-title' => 'Бақылау тізімді тазалау',
 2642+'watchlistedit-clear-legend' => 'Бақылау тізімді тазалау',
 2643+'watchlistedit-clear-confirm' => 'Бұл бақылау тізіміңізден барлық атауларды аластайды. Бұны растан
 2644+істегіңіз келе ме? Тағы да [[{{ns:special}}:Watchlist/edit|жеке атауларды аластай]] аласыз.',
 2645+'watchlistedit-clear-submit' => 'Тазалау',
 2646+'watchlistedit-clear-done' => 'Бақылау тізіміңіз тазалатылды. Барлық атаулар аластатылды.',
 2647+'watchlistedit-normal-title' => 'Бақылау тізімді өңдеу',
 2648+'watchlistedit-normal-legend' => 'Бақылау тізімдегі атауларды аластау',
 2649+'watchlistedit-normal-explain' => 'Бақылау тізіміңіздегі атаулар төменде көрсетіледі. Атауды аластау үшін, қасындағы
 2650+қабашақты белгілеңіз, және Атауларды аластау дегенді нұқыңыз. Тағы да [[{{ns:special}}:Watchlist/raw|қам тізімді өңдей]],
 2651+немесе [[Special:Watchlist/clear|барлық атауларды аластай]] аласыз.',
 2652+'watchlistedit-normal-submit' => 'Атауларды аластау',
 2653+'watchlistedit-normal-done' => '{{PLURAL:$1|1 атау|$1 атау}} бақылау тізіміңізден аласталды:',
 2654+'watchlistedit-raw-title' => 'Қам бақылау тізімді өңдеу',
 2655+'watchlistedit-raw-legend' => 'Қам бақылау тізімді өңдеу',
 2656+'watchlistedit-raw-explain' => 'Бақылау тізіміңіздегі атаулар төменде көрсетіледі, және де тізмден үстеп және
 2657+аластап өңдеуге болады; бір жолда бір атау келеді. Бітіргеннен соң Бақылау тізімді жаңарту дегенді нұқыңыз.
 2658+Тағы да [Special:Watchlist/edit|қалыпты өңдеуіш пайдалана]] аласыз.',
 2659+'watchlistedit-raw-titles' => 'Атаулар:',
 2660+'watchlistedit-raw-submit' => 'Бақылау тізімді жаңарту',
 2661+'watchlistedit-raw-done' => 'Бақылау тізіміңіз жаңартылды.',
 2662+'watchlistedit-raw-added' => '{{PLURAL:$1|1 атау|$1 атау}} үстелді:',
 2663+'watchlistedit-raw-removed' => '{{PLURAL:$1|1 атау|$1 атау}} аластанды:',
25922664
 2665+# Watchlist editing tools
 2666+'watchlisttools-view' => 'Қатысты өзгерістерді қарау',
 2667+'watchlisttools-edit' => 'Бақылау тізімді қарау және өңдеу',
 2668+'watchlisttools-raw' => 'Қам бақылау тізімді өңдеу',
 2669+'watchlisttools-clear' => 'Бақылау тізімді тазалау',
25932670
 2671+);
Index: branches/liquidthreads/languages/messages/MessagesEn.php
@@ -566,8 +566,7 @@
567567 'category_header' => 'Articles in category "$1"',
568568 'subcategories' => 'Subcategories',
569569 'category-media-header' => 'Media in category "$1"',
570 -'category-empty' => "''This category contains currently no articles or media.''",
571 -
 570+'category-empty' => "''This category currently contains no articles or media.''",
572571 'linkprefix' => '/^(.*?)([a-zA-Z\x80-\xff]+)$/sD', # only translate this message to other languages if you have to change it
573572 'mainpagetext' => "<big>'''MediaWiki has been successfully installed.'''</big>",
574573 'mainpagedocfooter' => "Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
@@ -792,8 +791,11 @@
793792 'protectedinterface' => 'This page provides interface text for the software, and is locked to prevent abuse.',
794793 'editinginterface' => "'''Warning:''' You are editing a page which is used to provide interface text for the software. Changes to this page will affect the appearance of the user interface for other users.",
795794 'sqlhidden' => '(SQL query hidden)',
796 -'cascadeprotected' => 'This page has been protected from editing, because it is included in the following {{PLURAL:$1|page|pages}}, which are protected with the "cascading" option turned on:',
797 -'namespaceprotected' => "You do not have permission to edit pages in the '''$1''' namespace.",
 795+'cascadeprotected' => "This page has been protected from editing, because it is included in the following {{PLURAL:$1|page|pages}}, which are protected with the \"cascading\" option turned on:
 796+$2",
 797+'namespaceprotected' => "You do not have permission to edit pages in the '''$1''' namespace.",
 798+'customcssjsprotected' => "You do not have permission to edit this page, because it contains another user's personal settings.",
 799+'ns-specialprotected' => "Pages in the special namespace cannot be edited.",
798800
799801 # Login and logout pages
800802 'logouttitle' => 'User logout',
@@ -851,6 +853,7 @@
852854 'nouserspecified' => 'You have to specify a username.',
853855 'wrongpassword' => 'Incorrect password entered. Please try again.',
854856 'wrongpasswordempty' => 'Password entered was blank. Please try again.',
 857+'passwordtooshort' => 'Your password is invalid or too short. It must have at least $1 characters and be different from your username.',
855858 'mailmypassword' => 'E-mail password',
856859 'passwordremindertitle' => 'Password reminder from {{SITENAME}}',
857860 'passwordremindertext' => 'Someone (probably you, from IP address $1)
@@ -941,28 +944,37 @@
942945
943946 The block was made by $1. The reason given is ''$2''.
944947
945 -Expiry of block: $6<br />
946 -Intended blockee: $7
 948+* Begin of block: $8
 949+* Expiry of block: $6
 950+* Intended blockee: $7
947951
948952 You can contact $1 or another [[{{MediaWiki:grouppage-sysop}}|administrator]] to discuss the block.
949953 You cannot use the 'email this user' feature unless a valid email address is specified in your
950 -[[Special:Preferences|account preferences]] and you have not been blocked from using it.
 954+[[Special:Preferences|account preferences]] and you have not been blocked from using it.
951955 Your current IP address is $3, and the block ID is #$5. Please include either or both of these in any queries.",
952956 'autoblockedtext' => 'Your IP address has been automatically blocked because it was used by another user, who was blocked by $1.
953957 The reason given is this:
954958
955959 :\'\'$2\'\'
956960
957 -Expiry of block: $6
 961+* Begin of block: $8
 962+* Expiry of block: $6
958963
959964 You may contact $1 or one of the other
960965 [[{{MediaWiki:grouppage-sysop}}|administrators]] to discuss the block.
961966
962 -Note that you may not use the "e-mail this user" feature unless you have a valid e-mail address
 967+Note that you may not use the "e-mail this user" feature unless you have a valid e-mail address
963968 registered in your [[Special:Preferences|user preferences]] and you have not been blocked from using it.
964969
965970 Your block ID is $5. Please include this ID in any queries you make.',
966 -'blockedoriginalsource' => "The source of '''$1''' is shown below:",
 971+'blockedtext-concise' => "$7, which matches your username or IP address, has been blocked by $1. The reason given was $2. The expiry time of this block is $6. To discuss the block, you can
 972+contact $1, or another administrator. You cannot use the 'email this user' feature unless a valid email address is specified in your account preferences and you have not been blocked from using it.
 973+Your current IP address is $3, and the block ID is #$5. Please include either or both of these in any queries.",
 974+'autoblockedtext-concise' => "Your IP address has recently been used by a user who was blocked. The block was made by $1. The reason given was $2. The expiry time of this block is $6. To
 975+discuss the block, you can contact $1, or another administrator. You cannot use the 'email this user' feature unless a valid email address is specified in your account preferences and you have not
 976+been blocked from using it. Your current IP address is $3, and the block ID is #$5. Please include either or both of these in any queries.",
 977+'blockedoriginalsource' => "The source of '''$1''' is
 978+shown below:",
967979 'blockededitsource' => "The text of '''your edits''' to '''$1''' is shown below:",
968980 'whitelistedittitle' => 'Login required to edit',
969981 'whitelistedittext' => 'You have to $1 to edit pages.',
@@ -1054,7 +1066,10 @@
10551067 'nocreatetitle' => 'Page creation limited',
10561068 'nocreatetext' => 'This site has restricted the ability to create new pages.
10571069 You can go back and edit an existing page, or [[Special:Userlogin|log in or create an account]].',
1058 -'recreate-deleted-warn' => "'''Warning: You are recreating a page that was previously deleted.'''
 1070+'nocreate-loggedin' => 'You do not have permission to create new pages on this wiki.',
 1071+'permissionserrors' => "Permissions Errors",
 1072+'permissionserrorstext' => "You do not have permission to do that, for the following {{PLURAL:$1|reason|reasons}}:",
 1073+'recreate-deleted-warn' => "'''Warning: You are recreating a page that was previously deleted.''',
10591074
10601075 You should consider whether it is appropriate to continue editing this page.
10611076 The deletion log for this page is provided here for convenience:",
@@ -1245,8 +1260,8 @@
12461261 'prefs-personal' => 'User profile',
12471262 'prefs-rc' => 'Recent changes',
12481263 'prefs-watchlist' => 'Watchlist',
1249 -'prefs-watchlist-days' => 'Number of days to show in watchlist:',
1250 -'prefs-watchlist-edits' => 'Number of edits to show in expanded watchlist:',
 1264+'prefs-watchlist-days' => 'Maximum number of days to show in watchlist:',
 1265+'prefs-watchlist-edits' => 'Maximum number of changes to show in expanded watchlist:',
12511266 'prefs-misc' => 'Misc',
12521267 'saveprefs' => 'Save',
12531268 'resetprefs' => 'Reset',
@@ -2098,6 +2113,7 @@
20992114 'movenologin' => 'Not logged in',
21002115 'movenologintext' => 'You must be a registered user and [[Special:Userlogin|logged in]]
21012116 to move a page.',
 2117+'movenotallowed' => 'You do not have permission to move pages on this wiki.',
21022118 'newtitle' => 'To new title:',
21032119 'move-watch' => 'Watch this page',
21042120 'movepagebtn' => 'Move page',
@@ -2151,7 +2167,6 @@
21522168 'allmessagesdefault' => 'Default text',
21532169 'allmessagescurrent' => 'Current text',
21542170 'allmessagestext' => 'This is a list of system messages available in the MediaWiki namespace.',
2155 -'allmessagesnotsupportedUI' => 'Your current interface language <b>$1</b> is not supported by {{ns:special}}:Allmessages at this site.',
21562171 'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' cannot be used because '''\$wgUseDatabaseMessages''' is switched off.",
21572172 'allmessagesfilter' => 'Message name filter:',
21582173 'allmessagesmodified' => 'Show only modified',
@@ -2416,6 +2431,12 @@
24172432 'showhidebots' => '($1 bots)',
24182433 'noimages' => 'Nothing to see.',
24192434
 2435+# Bad image list
 2436+'bad_image_list' => 'The format is as follows:
 2437+
 2438+Only list items (lines starting with *) are considered. The first link on a line must be a link to a bad image.
 2439+Any subsequent links on the same line are considered to be exceptions, i.e. articles where the image may occur inline.',
 2440+
24202441 /*
24212442 Short names for language variants used for language conversion links.
24222443 To disable showing a particular link, set it to 'disable', e.g.
@@ -2446,8 +2467,6 @@
24472468 'variantname-ku-latn' => 'ku-latn', # only translate this message to other languages if you have to change it
24482469 'variantname-ku' => 'ku', # only translate this message to other languages if you have to change it
24492470
2450 -'passwordtooshort' => 'Your password is invalid or too short. It must have at least $1 characters and be different from your username.',
2451 -
24522471 # Metadata
24532472 'metadata' => 'Metadata',
24542473 'metadata-help' => 'This file contains additional information, probably added from the digital camera or scanner used to create or digitize it. If the file has been modified from its original state, some details may not fully reflect the modified image.',
Index: branches/liquidthreads/languages/messages/MessagesMl.php
@@ -32,4 +32,46 @@
3333 NS_HELP_TALK => 'സഹായത്തിന്റെ_സംവാദം',
3434 );
3535
 36+$messages = array(
 37+# Days of the week
 38+'sunday' => 'ഞായര്‍',
 39+'monday' => 'തിങ്കള്‍',
 40+'tuesday' => 'ചൊവ്വ',
 41+'wednesday' => 'ബുധന്‍',
 42+'thursday' => 'വ്യാഴം',
 43+'friday' => 'വെള്ളി',
 44+'saturday' => 'ശനി',
 45+'sun' => 'ഞാ.',
 46+'mon' => 'തി.',
 47+'tue' => 'ചൊ.',
 48+'wed' => 'ബു.',
 49+'thu' => 'വ്യാ.',
 50+'fri' => 'വെ.',
 51+'sat' => 'ശ.',
3652
 53+# Month names
 54+'january' => 'ജനുവരി',
 55+'february' => 'ഫെബ്രുവരി',
 56+'march' => 'മാര്‍ച്ച്‌',
 57+'april' => 'ഏപ്രില്‍',
 58+'may_long' => 'മേയ്‌',
 59+'june' => 'ജൂണ്‍',
 60+'july' => 'ജൂലൈ',
 61+'august' => 'ഓഗസ്റ്റ്‌',
 62+'september' => 'സെപ്റ്റംബര്‍',
 63+'october' => 'ഒക്ടോബര്‍',
 64+'november' => 'നവംബര്‍',
 65+'december' => 'ഡിസംബര്‍',
 66+'jan' => 'ജനു.',
 67+'feb' => 'ഫെബ്രു.',
 68+'mar' => 'മാര്‍.',
 69+'apr' => 'ഏപ്രി.',
 70+'may' => 'മേയ്‌',
 71+'jun' => 'ജൂണ്‍',
 72+'jul' => 'ജൂലൈ',
 73+'aug' => 'ഓഗ.',
 74+'sep' => 'സെപ്റ്റം.',
 75+'oct' => 'ഒക്ടോ‍.‍',
 76+'nov' => 'നവം.',
 77+'dec' => 'ഡിസം.',
 78+);
Index: branches/liquidthreads/languages/messages/MessagesFi.php
@@ -267,7 +267,7 @@
268268 'category-media-header' => 'Luokan ”$1” sisältämät tiedostot',
269269 'category-empty' => "''Tässä luokassa ei ole sivuja eikä tiedostoja.''",
270270
271 -'mainpagetext' => "'''Mediawiki on onnistuneesti asennettu.'''",
 271+'mainpagetext' => "'''MediaWiki on onnistuneesti asennettu.'''",
272272 'mainpagedocfooter' => "Lisätietoja käytöstä on sivulla [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide User's Guide].
273273 === Lisäohjeita===
274274 * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Asetusten teko-ohjeita]
@@ -387,11 +387,11 @@
388388 'badaccess-group2' => 'Pyytämäsi toiminto on rajoitettu henkilöille ryhmissä $1.',
389389 'badaccess-groups' => 'Pyytämäsi toiminto on rajoitettu ryhmien $1 henkilöille.',
390390
391 -'versionrequired' => 'Mediawikistä tarvitaan vähintään versio $1',
392 -'versionrequiredtext' => 'Mediawikistä tarvitaan vähintään versio $1 tämän sivun käyttämiseen. Katso [[Special:Version|versio]]',
 391+'versionrequired' => 'MediaWikistä tarvitaan vähintään versio $1',
 392+'versionrequiredtext' => 'MediaWikistä tarvitaan vähintään versio $1 tämän sivun käyttämiseen. Katso [[Special:Version|versio]]',
393393
394394 'ok' => 'OK',
395 -'pagetitle' => '$1 — {{SITENAME}}',
 395+'pagetitle' => '$1 – {{SITENAME}}',
396396 'retrievedfrom' => 'Haettu osoitteesta $1',
397397 'youhavenewmessages' => 'Sinulle on $1 ($2).',
398398 'newmessageslink' => 'uusia viestejä',
@@ -441,17 +441,20 @@
442442 'missingarticle' => "Tietokannasta ei löytynyt sivua '''$1'''. Sivu on saatettu poistaa, tai palvelin ei ole ehtinyt vielä käsitellä sitä. Jälkimmäisessä tapauksessa yritä hetken päästä uudelleen. Jos ongelma ei katoa, ota yhteyttä ylläpitäjään ja anna mukaan tämän sivun URL-osoite.",
443443 'readonly_lag' => 'Tietokanta on automaattisesti lukittu, jotta kaikki tietokantapalvelimet saisivat kaikki tuoreet muutokset',
444444 'internalerror' => 'Sisäinen virhe',
 445+'internalerror_info' => 'Sisäinen virhe: $1',
445446 'filecopyerror' => 'Tiedostoa <b>$1</b> ei voitu kopioida tiedostoksi <b>$2</b>.',
446447 'filerenameerror' => 'Tiedostoa <b>$1</b> ei voitu nimetä uudelleen nimellä <b>$2</b>.',
447448 'filedeleteerror' => 'Tiedostoa <b>$1</b> ei voitu poistaa.',
 449+'directorycreateerror' => 'Hakemiston ”$1” luominen epäonnistui.',
448450 'filenotfound' => 'Tiedostoa <b>$1</b> ei löytynyt.',
 451+'fileexistserror' => 'Tiedostoon ”$1” kirjoittaminen epäonnistui: tiedosto on olemassa',
449452 'unexpected' => 'Odottamaton arvo: ”$1” on ”$2”.',
450453 'formerror' => 'Lomakkeen tiedot eivät kelpaa',
451454 'badarticleerror' => 'Toimintoa ei voi suorittaa tälle sivulle.',
452455 'cannotdelete' => 'Sivun tai tiedoston poisto epäonnistui. Joku muu on saattanut poistaa sen.',
453456 'badtitle' => 'Virheellinen otsikko',
454457 'badtitletext' => 'Pyytämäsi sivuotsikko oli virheellinen, tyhjä tai väärin linkitetty kieltenvälinen tai wikienvälinen linkki.',
455 -'perfdisabled' => 'Pahoittelut! Tämä ominaisuus ei toistaiseksi ole käytetössä, sillä se hidastaa tietokantaa niin paljon, että kukaan ei voi käyttää wikiä. Toiminto ohjelmoidaan tehokkaammaksi lähiaikoina. (Sinäkin voit tehdä sen! Tämä on vapaa ohjelmisto.)',
 458+'perfdisabled' => 'Pahoittelut! Tämä ominaisuus ei toistaiseksi ole käytettävissä, sillä se hidastaa tietokantaa niin paljon, että kukaan ei voi käyttää wikiä. Toiminto ohjelmoidaan tehokkaammaksi lähiaikoina. (Sinäkin voit tehdä sen! Tämä on vapaa ohjelmisto.)',
456459 'perfcached' => 'Tiedot ovat välimuistista eivätkä välttämättä ole ajan tasalla.',
457460 'perfcachedts' => 'Seuraava data on tuotu välimuistista ja se päivitettiin viimeksi $1.',
458461 'querypage-no-updates' => 'Tämän sivun tietoja ei toistaiseksi päivitetä.',
@@ -459,17 +462,18 @@
460463 'viewsource' => 'Lähdekoodi',
461464 'viewsourcefor' => 'sivulle $1',
462465 'protectedpagetext' => 'Tämä sivu on suojattu muutoksilta.',
463 -'namespaceprotected' => "Et voi muokata sivuja nimiavaruussa '''$1'''.",
464466 'viewsourcetext' => 'Voit tarkastella ja kopioida tämän sivun lähdekoodia:',
465467 'protectedinterface' => 'Tämä sivu sisältää ohjelmiston käyttöliittymätekstiä ja on suojattu häiriköinnin estämiseksi.',
466468 'editinginterface' => '<center>Muokkaat sivua, joka sisältää ohjelmiston käyttöliittymätekstiä.</center>',
467469 'sqlhidden' => '(SQL-kysely piilotettu)',
468470 'cascadeprotected' => 'Tämä sivu on suojattu muokkauksilta, koska se on sisällytetty alla {{PLURAL:$1|olevaan laajennetusti suojattuun sivuun|oleviin laajennetusti suojattuihin sivuihin}}:',
 471+'namespaceprotected' => "Et voi muokata sivuja nimiavaruudessa '''$1'''.",
469472
470473 # Login and logout pages
471474 'logouttitle' => 'Uloskirjautuminen',
472475 'logouttext' => 'Olet nyt kirjautunut ulos {{GRAMMAR:elative|{{SITENAME}}}}. Voit jatkaa {{GRAMMAR:genitive|{{SITENAME}}}} käyttöä nimettömänä, tai kirjautua uudelleen sisään.',
473 -'welcomecreation' => '== Tervetuloa, $1! == Käyttäjätunnuksesi on luotu. Älä unohda virittää [[Special:Preferences|{{GRAMMAR:genitive|{{SITENAME}}}} asetuksiasi]].',
 476+'welcomecreation' => '== Tervetuloa, $1! ==
 477+Käyttäjätunnuksesi on luotu. Älä unohda virittää [[Special:Preferences|{{GRAMMAR:genitive|{{SITENAME}}}} asetuksiasi]].',
474478 'loginpagetitle' => 'Sisäänkirjautuminen',
475479 'yourname' => 'Käyttäjätunnus',
476480 'yourpassword' => 'Salasana',
@@ -586,17 +590,18 @@
587591 'blockedtitle' => 'Pääsy estetty',
588592 'blockedtext' => "<strong>Käyttäjätunnuksesi tai IP-osoitteesi on estetty.</strong>
589593
590 -Ylläpitäjä $1 on poistanut '''muokkausoikeutesi''' ''$6'' asti estolla, jonka kohde on $7.
 594+Ylläpitäjä $1 on poistanut '''muokkausoikeutesi''' ''$6'' asti estolla, jonka kohde on $7. Esto alkoi $8.
591595
592596 Eston syyksi on annettu ''$2''.
593597
594598 Jos olet sitä mieltä, että sinut on estetty syyttä, voit keskustella asiasta [[{{MediaWiki:grouppage-sysop}}|ylläpitäjän]] kanssa. Huomaa, ettet voi lähettää sähköpostia {{GRAMMAR:genitive|{{SITENAME}}}} kautta, ellet ole asettanut olemassa olevaa sähköpostiosoitetta [[Special:Preferences|asetuksissa]]. Jos IP-osoitteesi on dynaaminen, eli se voi toisinaan vaihtua, olet saattanut saada estetyn osoitteen käyttöösi, ja esto vaikuttaa nyt sinuun. IP-osoitteesi on $3 ja estotunnus on #$5. Liitä ne kyselyihisi.",
595 -'autoblockedtext' => "IP-osoitteesti on estetty automaattisesti, koska sitä on käyttänyt toinen käyttäjä, jonka on estänyt ylläpitäjä $1.
 599+'autoblockedtext' => "IP-osoitteesi on estetty automaattisesti, koska sitä on käyttänyt toinen käyttäjä, jonka on estänyt ylläpitäjä $1.
596600 Eston syy on:
597601
598602 :''$2''
599603
600 -Esto vanhenee: $6
 604+*Esto alkoi: $8
 605+*Esto vanhenee: $6
601606
602607 Jos olet sitä mieltä, että sinut on estetty syyttä, voit keskustella asiasta [[{{MediaWiki:grouppage-sysop}}|ylläpitäjän]] kanssa. Huomaa, ettet voi lähettää sähköpostia {{GRAMMAR:genitive|{{SITENAME}}}} kautta, ellet ole asettanut olemassa olevaa sähköpostiosoitetta [[Special:Preferences|asetuksissa]]. Jos IP-osoitteesi on dynaaminen, eli se voi toisinaan vaihtua, olet saattanut saada estetyn osoitteen käyttöösi, ja esto vaikuttaa nyt sinuun. Estotunnus on #$5. Liitä se kyselyihisi.",
603608 'blockedoriginalsource' => 'Sivun ”$1” lähdekoodi:',
@@ -626,7 +631,7 @@
627632 *'''Mozilla, Konqueror ja Safari:''' napsauta ''Shift''-näppäin pohjassa päivitä tai paina ''Ctrl-Shift-R'' (''Cmd-Shift-R'' Applella)
628633 *'''IE:''' napsauta ''Ctrl''-näppäin pohjassa päivitä tai paina ''Ctrl-F5''
629634 *'''Konqueror''': napsauta päivitä tai paina ''F5''
630 -*'''Opera:''' saatat joutua tyhjentään välimuistin kokonaan (''Tools→Preferences'').",
 635+*'''Opera:''' saatat joutua tyhjentämään välimuistin kokonaan (''Tools→Preferences'').",
631636 'usercssjsyoucanpreview' => 'Voit testata uutta CSS:ää tai JavaScriptiä ennen tallennusta esikatselulla.',
632637 'usercsspreview' => "'''Tämä on CSS:n esikatselu.'''",
633638 'userjspreview' => "'''Tämä on JavaScriptin esikatselu.'''",
@@ -667,7 +672,7 @@
668673 'templatesusedsection' => 'Tässä osiossa mukana olevat mallineet:',
669674 'template-protected' => '(suojattu)',
670675 'template-semiprotected' => '(suojattu anonyymeiltä ja uusilta käyttäjiltä)',
671 -'edittools' => '<!-- Tässä oleva teksi näytetään muokkauskentän alla. -->',
 676+'edittools' => '<!-- Tässä oleva teksti näytetään muokkauskentän alla. -->',
672677 'nocreatetitle' => 'Sivujen luominen on rajoitettu',
673678 'nocreatetext' => 'Et voi luoda uusia sivuja. Voit muokata olemassa olevia sivuja tai luoda [[Special:Userlogin|käyttäjätunnuksen]].',
674679 'recreate-deleted-warn' => "'''Olet luomassa sivua, joka on aikaisemmin poistettu.'''
@@ -816,7 +821,7 @@
817822 'math_syntax_error' => 'Jäsennysvirhe',
818823 'math_image_error' => 'PNG-muunnos epäonnistui; tarkista, että latex, dvips, gs ja convert on asennettu oikein.',
819824 'math_bad_tmpdir' => 'Matematiikan kirjoittaminen väliaikaishakemistoon tai tiedostonluonti ei onnistu',
820 -'math_bad_output' => 'Matematiikan tulostehakemistoon kirjoittaminen tai tuedostonluonti ei onnistu',
 825+'math_bad_output' => 'Matematiikan tulostehakemistoon kirjoittaminen tai tiedostonluonti ei onnistu',
821826 'math_notexvc' => 'Texvc-sovellus puuttuu, lue math/READMEstä asennustietoja',
822827 'prefs-personal' => 'Käyttäjätiedot',
823828 'prefs-rc' => 'Tuoreet muutokset',
@@ -1012,12 +1017,17 @@
10131018 'imgdelete' => 'poista',
10141019 'imgdesc' => 'kuvaus',
10151020 'imgfile' => 'tiedosto',
1016 -'imglegend' => 'Merkinnät: (kuvaus) = näytä tai muokkaa tiedoston kuvausta.',
1017 -'imghistory' => 'Historia',
1018 -'revertimg' => 'palauta',
1019 -'deleteimg' => 'poista',
1020 -'deleteimgcompletely' => 'poista',
1021 -'imghistlegend' => 'Merkinnät: (nyk.) = nykyinen versio, (poista) = poista tämä vanha versio, (palauta) = palauta tiedosto tähän vanhaan versioon.<br />Napsauta päiväystä nähdäksesi silloin tallennettu tiedosto.',
 1021+'filehist' => 'Tiedoston historia',
 1022+'filehist-help' => 'Päiväystä napsauttamalla näät millainen tiedosto oli sillä ajan hetkellä.',
 1023+'filehist-deleteall' => 'poista kaikki',
 1024+'filehist-deleteone' => 'poista tämä',
 1025+'filehist-revert' => 'palauta',
 1026+'filehist-current' => 'nykyinen',
 1027+'filehist-datetime' => 'Päiväys',
 1028+'filehist-user' => 'Käyttäjä',
 1029+'filehist-dimensions' => 'Koko',
 1030+'filehist-filesize' => 'Tiedostokoko',
 1031+'filehist-comment' => 'Kommentti',
10221032 'imagelinks' => 'Viittaukset sivuilta',
10231033 'linkstoimage' => 'Seuraavilta sivuilta on linkki tähän tiedostoon:',
10241034 'nolinkstoimage' => 'Tähän tiedostoon ei ole linkkejä miltään sivulta.',
@@ -1034,6 +1044,16 @@
10351045 'imagelist_description' => 'Kuvaus',
10361046 'imagelist_search_for' => 'Nimihaku',
10371047
 1048+# File reversion
 1049+'filerevert' => 'Tiediston $1 palautus',
 1050+'filerevert-legend' => 'Tiedoston palautus',
 1051+'filerevert-intro' => '<span class="plainlinks">Olet palauttamassa tiedostoa \'\'\'[[Media:$1|$1]]\'\'\' [$4 versioon, joka luotiin $2 kello $3].</span>',
 1052+'filerevert-comment' => 'Syy',
 1053+'filerevert-defaultcomment' => 'Palautettiin versioon, joka luotiin $1 kello $2',
 1054+'filerevert-submit' => 'Palauta',
 1055+'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\' on palautettu [$4 versioon, joka luotiin $2 kello $3].</span>',
 1056+'filerevert-badversion' => 'Tiedostosta ei ole luotu versiota kyseisellä ajan hetkellä.',
 1057+
10381058 # MIME search
10391059 'mimesearch' => 'MIME-haku',
10401060 'mimesearch-summary' => 'Tällä sivulla voit etsiä tiedostoja niiden MIME-tyypin perusteella. Syöte: sisältötyyppi/alatyyppi, esimerkiksi <tt>image/jpeg</tt>.',
@@ -1059,7 +1079,7 @@
10601080 'statistics' => 'Tilastot',
10611081 'sitestats' => 'Sivuston tilastot',
10621082 'userstats' => 'Käyttäjätilastot',
1063 -'sitestatstext' => "Tietokannassa on {{PLURAL:$1|yksi sivu|yhteensä $1 sivua}}. Tähän on laskettu mukaan keskustelusivut, {{GRAMMAR:genitive|{{SITENAME}}}} projektisivut, hyvin lyhyet sivut, uudelleenohjaukset sekä muita sivuja, joita ei voi pitää kunnollisina sivuina. Nämä poislukien tietokannassa on '''$2''' {{PLURAL:$2|sivu|sivua}}.
 1083+'sitestatstext' => "Tietokannassa on {{PLURAL:$1|yksi sivu|yhteensä $1 sivua}}. Tähän on laskettu mukaan keskustelusivut, {{GRAMMAR:genitive|{{SITENAME}}}} projektisivut, hyvin lyhyet sivut, uudelleenohjaukset sekä muita sivuja, joita ei voi pitää kunnollisina sivuina. Nämä pois lukien tietokannassa on '''$2''' {{PLURAL:$2|sivu|sivua}}.
10641084
10651085 {{GRAMMAR:illative|{{SITENAME}}}} on tallennettu '''$8''' {{PLURAL:$8|tiedosto|tiedostoa}}.
10661086
@@ -1184,7 +1204,7 @@
11851205 'mailnologintext' => 'Sinun pitää olla [[Special:Userlogin|kirjautuneena sisään]] ja [[Special:Preferences|asetuksissasi]] pitää olla toimiva ja <strong>varmennettu</strong> sähköpostiosoite, jotta voit lähettää sähköpostia muille käyttäjille.',
11861206 'emailuser' => 'Lähetä sähköpostia tälle käyttäjälle',
11871207 'emailpage' => 'Lähetä sähköpostia käyttäjälle',
1188 -'emailpagetext' => 'Jos tämä käyttäjä on antanut asetuksissaan kelvollisen sähköpostiosoitteen, alla olevalla lomakeella voit lähettää yhden viestin hänelle. Omissa asetuksissasi annettu sähköpostiosoite näkyy sähköpostin lähettäjän osoitteena, jotta vastaanottaja voi vastata viestiin.',
 1208+'emailpagetext' => 'Jos tämä käyttäjä on antanut asetuksissaan kelvollisen sähköpostiosoitteen, alla olevalla lomakkeella voit lähettää yhden viestin hänelle. Omissa asetuksissasi annettu sähköpostiosoite näkyy sähköpostin lähettäjän osoitteena, jotta vastaanottaja voi vastata viestiin.',
11891209 'usermailererror' => 'Postitus palautti virheen:',
11901210 'defemailsubject' => '{{SITENAME}}-sähköposti',
11911211 'noemailtitle' => 'Ei sähköpostiosoitetta',
@@ -1291,7 +1311,6 @@
12921312 'deletionlog' => 'poistoloki',
12931313 'reverted' => 'Palautettu aikaisempaan versioon',
12941314 'deletecomment' => 'Poistamisen syy',
1295 -'imagereverted' => 'Aikaisempaan versioon palauttaminen onnistui.',
12961315 'rollback' => 'palauta aiempaan versioon',
12971316 'rollback_short' => 'Palautus',
12981317 'rollbacklink' => 'palauta',
@@ -1349,7 +1368,7 @@
13501369 'undeleteextrahelp' => 'Palauta sivu valitsemalla <b><i>Palauta</i></b>. Voit palauttaa versiota valikoivasti valitsemalla vain niiden versioiden valintalaatikot, jotka haluat palauttaa.',
13511370 'undeleterevisions' => '{{PLURAL:$1|Versio|$1 versiota}} arkistoitu.',
13521371 'undeletehistory' => 'Jos palautat sivun, kaikki versiot lisätään sivun historiaan. Jos uusi sivu samalla nimellä on luotu poistamisen jälkeen, palautetut versiot lisätään sen historiaan, ja olemassa olevaa versiota ei korvata automaattisesti.',
1353 -'undeleterevdel' => 'Palautusta ei tehdä, jos sen seurauksena sivun uusin versio olisi osittain poistettu. Tässä tilanteessa poista uusimman poistetan version piilotus. Tiedostoversioita, joihin sinulla ei ole katseluoikeutta ei palauteta.',
 1372+'undeleterevdel' => 'Palautusta ei tehdä, jos sen seurauksena sivun uusin versio olisi osittain poistettu. Tässä tilanteessa poista uusimman poistettavan version piilotus. Tiedostoversioita, joihin sinulla ei ole katseluoikeutta ei palauteta.',
13541373 'undeletehistorynoadmin' => 'Tämä sivu on poistettu. Syy sivun poistamiseen näkyy yhteenvedossa, jossa on myös tiedot, ketkä ovat muokanneet tätä sivua ennen poistamista. Sivujen varsinainen sisältö on vain ylläpitäjien luettavissa.',
13551374 'undelete-revision' => 'Poistettu sivu $1 hetkellä $2',
13561375 'undeleterevision-missing' => 'Virheellinen tai puuttuva versio. Se on saatettu palauttaa tai poistaa arkistosta.',
@@ -1414,7 +1433,7 @@
14151434
14161435 # Block/unblock
14171436 'blockip' => 'Aseta muokkausesto',
1418 -'blockiptext' => 'Tällä lomakkeella voit estää käyttäjän tai IP-osoitteen muokkausoikeudet. Muokkausoikeuksien poistamiseen pitää olla syy, esimerkiksi sivujen vandalisointi. Kirjoita syy siihen varattuun kenttään.<br />Vapaamuotoisen vanhenemisajat noudattavat GNUn standardimuotoa, joka on kuvattu tar-manuaalissa ([http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html] [EN]), esimerkiksi ”1 hour”, ”2 days”, ”next Wednesday”, 2005-08-29”.',
 1437+'blockiptext' => 'Tällä lomakkeella voit estää käyttäjän tai IP-osoitteen muokkausoikeudet. Muokkausoikeuksien poistamiseen pitää olla syy, esimerkiksi sivujen vandalisointi. Kirjoita syy siihen varattuun kenttään.<br />Vapaamuotoisen vanhenemisajat noudattavat GNUn standardimuotoa, joka on kuvattu tar-manuaalissa ([http://www.gnu.org/software/tar/manual/html_node/Date-input-formats.html] [EN]), esimerkiksi ”1 hour”, ”2 days”, ”next Wednesday”, 2005-08-29”.',
14191438 'ipaddress' => 'IP-osoite',
14201439 'ipadressorusername' => 'IP-osoite tai käyttäjätunnus',
14211440 'ipbexpiry' => 'Kesto',
@@ -1483,7 +1502,7 @@
14841503 'ipb_cant_unblock' => 'Estoa ”$1” ei löytynyt. Se on saatettu poistaa.',
14851504 'proxyblockreason' => 'IP-osoitteestasi on estetty muokkaukset, koska se on avoin välityspalvelin. Ota yhteyttä Internet-palveluntarjoajaasi tai tekniseen tukeen ja kerro heillä tästä tietoturvaongelmasta.',
14861505 'proxyblocksuccess' => 'Valmis.',
1487 -'sorbsreason' => 'IP-osoitteesti on listattu avoimena välityspalvelimena DNSBLin mustalla listalla.',
 1506+'sorbsreason' => 'IP-osoitteesi on listattu avoimena välityspalvelimena DNSBLin mustalla listalla.',
14881507 'sorbs_create_account_reason' => 'IP-osoitteesi on listattu avoimena välityspalvelimena DNSBLin mustalla listalla. Et voi luoda käyttäjätunnusta.',
14891508
14901509 # Developer tools
@@ -1632,7 +1651,7 @@
16331652 'tooltip-n-randompage' => 'Avaa satunnainen sivu',
16341653 'tooltip-n-help' => 'Ohjeita',
16351654 'tooltip-n-sitesupport' => 'Tue sivuston toimintaa',
1636 -'tooltip-t-whatlinkshere' => 'Lista sivuista, jotka viittavat tänne',
 1655+'tooltip-t-whatlinkshere' => 'Lista sivuista, jotka viittaavat tänne',
16371656 'tooltip-t-recentchangeslinked' => 'Viimeisimmät muokkaukset sivuissa, joille viitataan tältä sivulta',
16381657 'tooltip-feed-rss' => 'RSS-syöte tälle sivulle',
16391658 'tooltip-feed-atom' => 'Atom-syöte tälle sivulle',
@@ -1972,7 +1991,7 @@
19731992 'exif-scenecapturetype-3' => 'Yökuva',
19741993
19751994 'exif-gaincontrol-0' => 'Ei ole',
1976 -'exif-gaincontrol-1' => 'Matala ylävahvisus',
 1995+'exif-gaincontrol-1' => 'Matala ylävahvistus',
19771996 'exif-gaincontrol-2' => 'Korkea ylävahvistus',
19781997 'exif-gaincontrol-3' => 'Matala alavahvistus',
19791998 'exif-gaincontrol-4' => 'Korkea alavahvistus',
@@ -2043,7 +2062,7 @@
20442063 'confirmemail_needlogin' => 'Sinun täytyy $1, jotta voisit varmistaa sähköpostiosoitteesi.',
20452064 'confirmemail_success' => 'Sähköpostiosoitteesi on nyt varmennettu. Voit kirjautua sisään.',
20462065 'confirmemail_loggedin' => 'Sähköpostiosoitteesi on nyt varmennettu.',
2047 -'confirmemail_error' => 'Jokin epäonnistui varmennnuksen tallentamisessa.',
 2066+'confirmemail_error' => 'Jokin epäonnistui varmennuksen tallentamisessa.',
20482067 'confirmemail_subject' => '{{GRAMMAR:genitive|{{SITENAME}}}} sähköpostiosoitteen varmennus',
20492068 'confirmemail_body' => 'Joku IP-osoitteesta $1 on rekisteröinyt {{GRAMMAR:inessive|{{SITENAME}}}} tunnuksen $2 tällä sähköpostiosoitteella.
20502069
Index: branches/liquidthreads/RELEASE-NOTES
@@ -161,6 +161,9 @@
162162 * (bug 10701) Link to Special:Listusers in default Special:Statistics messages
163163 * Improved file history presentation
164164 * (bug 10739) Users can now enter comments when reverting files
 165+* Improved handling of permissions errors
 166+* (bug 10798) Exclude MediaWiki namespace from filtering options on
 167+ Special:Protectedpages (implicit protection, doesn't make sense to have it)
165168
166169 == Bugfixes since 1.10 ==
167170
@@ -334,6 +337,23 @@
335338 * Fixed leading zero in base 36 SHA-1 hash
336339 * Protection form no longer produces JavaScript errors
337340 * (bug 10741) File histories show "delete" links for non-sysops
 341+* (bug 10744) Treat "noarticletext" and "noarticletextanon" as wiki text when
 342+ used on a non-existent page with "action=info"
 343+* Fix escaping of raw message text when used on a non-existent page with
 344+ "action=info"
 345+* (bug 10683) Fix inconsistent handling of URL-encoded titles in links
 346+ used in redirects (i.e. they now work)
 347+* (bug 8878) Changes to $dateFormats in German localization (removing unused,
 348+ nonexistent formats, putting time after date)
 349+* (bug 10769) Database::update() should return boolean result
 350+* Fix RTL display of the preferences: checkboxes were indented to the right,
 351+ hidden in IE in some cases.
 352+* Fix RTL display of the upload form.
 353+* Fixed regression in blocking of username '0'
 354+* (bug 9437) Don't overwrite edit form submission handler when setting up
 355+ edit box scroll position preserve/restore behaviour
 356+* (bug 10805) Fix "undo" link when viewing the diff of the most recent
 357+ change to a page using "diff=0"
338358
339359 == API changes since 1.10 ==
340360
Property changes on: branches/liquidthreads
___________________________________________________________________
Modified: svnmerge-integrated
341361 - /trunk/phase3:1-24479
342362 + /trunk/phase3:1-24600

Follow-up revisions

RevisionCommit summaryAuthorDate
r24680Revert r24574 and r24667 per Brion on bug 10798robchurch17:46, 8 August 2007
r24705Merged revisions 24632-24693 via svnmerge from...david19:15, 9 August 2007
r24710* (bug 10367) Update Kazakh translations...raymond20:46, 9 August 2007
r24739* (bug 10367) Update Kazakh translations...raymond07:52, 13 August 2007
r24755Merged revisions 24694-24754 via svnmerge from...david19:48, 13 August 2007
r24770* (bug 10367) Update Kazakh translations...raymond06:40, 14 August 2007
r24863* (bug 10367) Update Kazakh translations...raymond21:36, 16 August 2007
r24866Merged revisions 24755-24865 via svnmerge from...david23:08, 16 August 2007
r25112* (bug 10367) Update Kazakh translations...raymond08:01, 24 August 2007
r25126Merged revisions 25109-25125 via svnmerge from...david22:55, 24 August 2007
r25161Fix regression caused by r24505 for bug 10683 -- was breaking redirects to pa...brion14:52, 26 August 2007
r25196* (bug 10367) Update Kazakh translations...raymond14:25, 27 August 2007
r25223Merged revisions 25126-25214 via svnmerge from...david07:39, 28 August 2007
r25489* (bug 10367) Update Kazakh translations...raymond17:14, 4 September 2007
r25530Merged revisions 25454-25529 via svnmerge from...david08:28, 5 September 2007
r25622* (bug 10367) Update Kazakh translations...raymond09:20, 7 September 2007
r25754Merged revisions 25607-25751 via svnmerge from...david23:02, 10 September 2007
r26291* (bug 10367) Update Kazakh translations...raymond21:19, 1 October 2007
r26331Merged revisions 26280-26330 via svnmerge from...david22:28, 2 October 2007
r26935* (bug 10367) Kazakh message updates, by AlefZetraymond22:07, 24 October 2007
r27849* (bug 10367) Update Kazakh translations...raymond16:32, 26 November 2007

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r6560more fixes for languages with no language files; allow UI customization for a...zhengzhu20:22, 7 December 2004
r23472* (bug 10367) Update Kazakh translations...raymond10:35, 27 June 2007
r23581Merged revisions 23406-23580 via svnmerge from...david04:50, 30 June 2007
r24480* Adding IDs to submit and reset buttons (this was my initial intent)...raymond09:40, 31 July 2007
r24491Adding new parameter $8 with the begin of a block to 'blockedtext' and 'autob...raymond13:59, 31 July 2007
r24492Backing out 24448, 24455, 24456 for the moment....brion14:40, 31 July 2007
r24493* (bug 10367) Update Kazakh translations...raymond15:26, 31 July 2007
r24494API: Added meta=userinfo module to get data about the currently logged-in user.yurik17:53, 31 July 2007
r24495(bug 10762) Tweak wording for "prefs-watchlist-days" and "prefs-watchlist-edits"robchurch18:51, 31 July 2007
r24497* Updates to finikerabbit19:25, 31 July 2007
r24500Update.rotem21:49, 31 July 2007
r24504* (bug 10744) Treat "noarticletext" and "noarticletextanon" as wiki text when...robchurch01:23, 1 August 2007
r24505(bug 10683) Fix inconsistent handling of URL-encoded titles in links used in ...robchurch01:45, 1 August 2007
r24508* Adding the long existing 'bad_image_list' to message files to document it a...raymond06:25, 1 August 2007
r24509* (bug 10765) Update Thai translation...raymond06:28, 1 August 2007
r24510* (bug 10761) Update Malayalam translation...raymond06:34, 1 August 2007
r24511Update Kurdish translations (arabic script)raymond07:34, 1 August 2007
r24513No need to separate 'passwordtooshort' from other password related messagesraymond10:00, 1 August 2007
r24514* (bug 8878) Changes to $dateFormats in German localization (removing unused,...raymond10:03, 1 August 2007
r24515userCan changes, which have been done for about 3 weeks. Still TODO includes ...werdna10:19, 1 August 2007
r24519Small bug in userCan changes. Kudos to Raymond_ for spotting itwerdna13:15, 1 August 2007
r24520(bug 10767) More fixes for userCan. Kudos to WebBoy for report + patchwerdna13:21, 1 August 2007
r24526Update.rotem15:47, 1 August 2007
r24527Fix.rotem17:18, 1 August 2007
r24529Per Brion's suggestion, fixed blocker user detection: User::whoIs($wgUser->bl...yurik20:11, 1 August 2007
r24530Remove "allmessagesnotsupportedUI" message: not used since r6560.rotem21:20, 1 August 2007
r24532(bug 10769) Database::update() should return boolean resultrobchurch21:42, 1 August 2007
r24533API: Added various edit tokens to prop=info (except rollback - will be added ...yurik22:46, 1 August 2007
r24535Quick fix for dump problem:...brion04:15, 2 August 2007
r24536* (bug 10367) Update Kazakh translations...raymond06:24, 2 August 2007
r24538(bug 10775) French localisation. Patch, syntax fixed, by Alexandre Emsenhuberwerdna12:31, 2 August 2007
r24540Remove partial patch mixed in with last commitwerdna12:36, 2 August 2007
r24541rebuildMessages for French. Werdna was to fast (or I am to slow :-/ )raymond12:42, 2 August 2007
r24546Toggles in RTL preferences indented to the right, hidden in IE in some cases.rotem19:00, 2 August 2007
r24547I guess it should actually return the result (anyway, there is a fatal PHP er...rotem00:00, 3 August 2007
r24548Fix RTL display of the upload form.rotem00:47, 3 August 2007
r24554* (bug 10778) Update Chinese translations...raymond05:54, 3 August 2007
r24555* (bug 10785) Update Thai translation...raymond06:04, 3 August 2007
r24561* Fixed regression in blocking of username '0'...brion08:51, 3 August 2007
r24562Use the new userCan changes to display better, clearer error messages when a ...werdna09:27, 3 August 2007
r24565(bug 9437) Don't overwrite edit form submission handler when setting up edit ...robchurch17:40, 3 August 2007
r24569Clarification of a bugfix description.rotem23:09, 3 August 2007
r24573Move $wgAlternateMaster to core DefaultSettings.php from MakeSysop, since it'...brion10:49, 4 August 2007
r24574* (bug 10798) Exclude MediaWiki namespace from filtering options on Special:P...robchurch12:20, 4 August 2007
r24575This is a public service announcement. When using entities, failure to termin...robchurch12:38, 4 August 2007
r24576(bug 10803) Grammar error in "category-empty"; what Brogmid wrote this? ;)robchurch12:48, 4 August 2007
r24577Rewrite Xml::namespaceSelector() before it drives me to totemize somebody.robchurch12:50, 4 August 2007
r24588Clean up autocreation a smidge... let the auth plugin know whether the user y...brion16:34, 4 August 2007
r24589update prototypebrion16:36, 4 August 2007
r24596* (bug 10805) Fix "undo" link when viewing the diff of the most recent change...robchurch19:15, 4 August 2007
r24597Customizations should be added in LocalSettings.php, not in DefaultSettings.php.rotem20:44, 4 August 2007

Status & tagging log