Merge "[JobQueue] Pushed stats down to job queue subclasses."
authorArielGlenn <ariel@wikimedia.org>
Tue, 11 Dec 2012 08:20:51 +0000 (08:20 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 11 Dec 2012 08:20:51 +0000 (08:20 +0000)
163 files changed:
CREDITS
RELEASE-NOTES-1.21
includes/Action.php
includes/AutoLoader.php
includes/ChangesList.php
includes/ConfEditor.php
includes/DefaultSettings.php
includes/ExternalStore.php [deleted file]
includes/ExternalStoreDB.php [deleted file]
includes/ExternalStoreHttp.php [deleted file]
includes/Fallback.php
includes/GlobalFunctions.php
includes/Hooks.php
includes/Html.php
includes/ImagePage.php
includes/LinksUpdate.php
includes/LocalisationCache.php
includes/OutputPage.php
includes/Preferences.php
includes/ProtectionForm.php
includes/QueryPage.php
includes/SpecialPage.php
includes/Timestamp.php
includes/Title.php
includes/User.php
includes/UserMailer.php
includes/WebRequest.php
includes/WikiPage.php
includes/api/ApiPageSet.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryUsers.php
includes/cache/MessageCache.php
includes/content/ContentHandler.php
includes/db/Database.php
includes/db/IORMTable.php
includes/db/LoadBalancer.php
includes/db/ORMRow.php
includes/db/ORMTable.php
includes/externalstore/ExternalStore.php [new file with mode: 0644]
includes/externalstore/ExternalStoreDB.php [new file with mode: 0644]
includes/externalstore/ExternalStoreHttp.php [new file with mode: 0644]
includes/filebackend/FileBackend.php
includes/filebackend/FileOp.php
includes/filebackend/FileOpBatch.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/lockmanager/MemcLockManager.php
includes/filerepo/file/File.php
includes/installer/DatabaseUpdater.php
includes/installer/Installer.i18n.php
includes/installer/MysqlUpdater.php
includes/installer/WebInstallerPage.php
includes/job/JobQueue.php
includes/job/JobQueueDB.php
includes/job/JobQueueGroup.php
includes/job/jobs/DoubleRedirectJob.php
includes/job/jobs/NullJob.php
includes/media/DjVuImage.php
includes/objectcache/SqlBagOStuff.php
includes/parser/LinkHolderArray.php
includes/site/SiteArray.php
includes/site/SiteObject.php
includes/site/Sites.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialUndelete.php
includes/upload/AssembleUploadChunks.php
includes/upload/UploadFromStash.php
includes/upload/UploadFromUrl.php
languages/Language.php
languages/LanguageConverter.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesAst.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBar.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBr.php
languages/messages/MessagesCa.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCy.php
languages/messages/MessagesDe.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEu.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGl.php
languages/messages/MessagesGsw.php
languages/messages/MessagesHe.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesId.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKa.php
languages/messages/MessagesKhw.php
languages/messages/MessagesKm.php
languages/messages/MessagesKo.php
languages/messages/MessagesKy.php
languages/messages/MessagesLb.php
languages/messages/MessagesLt.php
languages/messages/MessagesMk.php
languages/messages/MessagesMn.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesNan.php
languages/messages/MessagesNl.php
languages/messages/MessagesOs.php
languages/messages/MessagesPa.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRo.php
languages/messages/MessagesRue.php
languages/messages/MessagesSi.php
languages/messages/MessagesSl.php
languages/messages/MessagesSo.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesTe.php
languages/messages/MessagesTr.php
languages/messages/MessagesUk.php
languages/messages/MessagesZh_hans.php
maintenance/fixDoubleRedirects.php
maintenance/mwdocgen.php
maintenance/storage/moveToExternal.php
profileinfo.php
resources/jquery/jquery.client.js
tests/TestsAutoLoader.php
tests/parser/parserTests.txt
tests/phpunit/StructureTest.php
tests/phpunit/includes/ArticleTest.php
tests/phpunit/includes/DiffHistoryBlobTest.php
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/LinkerTest.php
tests/phpunit/includes/LinksUpdateTest.php
tests/phpunit/includes/PreferencesTest.php
tests/phpunit/includes/SampleTest.php
tests/phpunit/includes/SanitizerTest.php
tests/phpunit/includes/TitleMethodsTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/XmlSelectTest.php
tests/phpunit/includes/XmlTest.php
tests/phpunit/includes/api/ApiTest.php
tests/phpunit/includes/content/JavaScriptContentTest.php [new file with mode: 0644]
tests/phpunit/includes/content/JavascriptContentTest.php [deleted file]
tests/phpunit/includes/content/TextContentTest.php
tests/phpunit/includes/content/WikitextContentTest.php
tests/phpunit/includes/db/ORMRowTest.php
tests/phpunit/includes/libs/GenericArrayObjectTest.php
tests/phpunit/includes/parser/MediaWikiParserTest.php
tests/phpunit/includes/parser/PreprocessorTest.php
tests/phpunit/includes/upload/UploadFromUrlTest.php
tests/phpunit/maintenance/MaintenanceTest.php
tests/qunit/suites/resources/jquery/jquery.client.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Uri.test.js

diff --git a/CREDITS b/CREDITS
index 6555b07..217109a 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -85,6 +85,7 @@ following names for their contribution to the product.
 * Agbad
 * Ahmad Sherif
 * Alejandro Mery
+* Alexander Monk
 * Amalthea
 * Amir E. Aharoni
 * Andrew Dunbar
@@ -129,7 +130,6 @@ following names for their contribution to the product.
 * John N
 * Karun Dambiec
 * Kim Hyun-Joon
-* Krenair
 * Lee Worden
 * Lejonel
 * liangent
index 220089d..b7571bb 100644 (file)
@@ -57,6 +57,9 @@ production.
   debug mode: wfMsg, wfMsgNoTrans, wfMsgForContent, wfMsgForContentNoTrans,
   wfMsgReal, wfMsgGetKey, wfMsgHtml, wfMsgWikiHtml, wfMsgExt, wfEmptyMsg. Use
   the Message class, or the global method wfMessage.
+* Debug message emitted by wfDebugLog() will now be prefixed with the group
+  name when its logged to the default log file. That is the case whenever the
+  group has no key in wgDebugLogGroups, that will help triage the default log.
 
 === Bug fixes in 1.21 ===
 * (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
@@ -119,6 +122,7 @@ production.
 * (bug 41042) Revert change to action=parse&page=... behavior when the page
   does not exist.
 * (bug 27202) Add timestamp sort to list=allimages.
+* (bug 29115) Add redirect target value on page info.
 
 === Languages updated in 1.21 ===
 
index 19552bc..8201763 100644 (file)
@@ -455,9 +455,10 @@ abstract class FormAction extends Action {
 
        /**
         * @see Action::execute()
-        * @throws ErrorPageError
+        *
         * @param $data array|null
         * @param $captureErrors bool
+        * @throws ErrorPageError|Exception
         * @return bool
         */
        public function execute( array $data = null, $captureErrors = true ) {
@@ -546,7 +547,7 @@ abstract class FormlessAction extends Action {
         * forms, they probably won't have any data, but some (eg rollback) may do
         * @param $data Array values that would normally be in the GET request
         * @param $captureErrors Bool whether to catch exceptions and just return false
-        * @throws ErrorPageError
+        * @throws ErrorPageError|Exception
         * @return Bool whether execution was successful
         */
        public function execute( array $data = null, $captureErrors = true ) {
index 3d0c27a..f71857d 100644 (file)
@@ -90,9 +90,9 @@ $wgAutoloadLocalClasses = array(
        'ErrorPageError' => 'includes/Exception.php',
        'ExplodeIterator' => 'includes/StringUtils.php',
        'ExternalEdit' => 'includes/ExternalEdit.php',
-       'ExternalStore' => 'includes/ExternalStore.php',
-       'ExternalStoreDB' => 'includes/ExternalStoreDB.php',
-       'ExternalStoreHttp' => 'includes/ExternalStoreHttp.php',
+       'ExternalStore' => 'includes/externalstore/ExternalStore.php',
+       'ExternalStoreDB' => 'includes/externalstore/ExternalStoreDB.php',
+       'ExternalStoreHttp' => 'includes/externalstore/ExternalStoreHttp.php',
        'ExternalUser' => 'includes/ExternalUser.php',
        'FakeTitle' => 'includes/FakeTitle.php',
        'Fallback' => 'includes/Fallback.php',
index 9ca64c5..f8dbf3b 100644 (file)
@@ -435,6 +435,7 @@ class ChangesList extends ContextSource {
                                return Linker::commentBlock( $rc->mAttribs['rc_comment'], $rc->getTitle() );
                        }
                }
+               return '';
        }
 
        /**
index d304e65..e563416 100644 (file)
@@ -1060,6 +1060,7 @@ class ConfEditorParseError extends MWException {
                                return "$line\n" .str_repeat( ' ', $this->colNum - 1 ) . "^\n";
                        }
                }
+               return '';
        }
 
 }
index 2073f16..e12b3be 100644 (file)
@@ -2165,6 +2165,12 @@ $wgUsePrivateIPs = false;
 /** Site language code, should be one of ./languages/Language(.*).php */
 $wgLanguageCode = 'en';
 
+/**
+ * Language cache size, or really how many languages can we handle
+ * simultanously without degrading to crawl speed.
+ */
+$wgLangObjCacheSize = 10;
+
 /**
  * Some languages need different word forms, usually for different cases.
  * Used in Language::convertGrammar().
diff --git a/includes/ExternalStore.php b/includes/ExternalStore.php
deleted file mode 100644 (file)
index 1b7c29d..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-/**
- * Data storage in external repositories.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * @defgroup ExternalStorage ExternalStorage
- */
-
-/**
- * Constructor class for data kept in external repositories
- *
- * External repositories might be populated by maintenance/async
- * scripts, thus partial moving of data may be possible, as well
- * as possibility to have any storage format (i.e. for archives)
- *
- * @ingroup ExternalStorage
- */
-class ExternalStore {
-       var $mParams;
-
-       /**
-        * @param $params array
-        */
-       function __construct( $params = array() ) {
-               $this->mParams = $params;
-       }
-
-       /**
-        * Fetch data from given URL
-        *
-        * @param $url String: The URL of the text to get
-        * @param $params Array: associative array of parameters for the ExternalStore object.
-        * @return string|bool The text stored or false on error
-        */
-       static function fetchFromURL( $url, $params = array() ) {
-               global $wgExternalStores;
-
-               if( !$wgExternalStores ) {
-                       return false;
-               }
-
-               $parts = explode( '://', $url, 2 );
-
-               if ( count( $parts ) != 2 ) {
-                       return false;
-               }
-
-               list( $proto, $path ) = $parts;
-
-               if ( $path == '' ) { // Bad URL
-                       return false;
-               }
-
-               $store = self::getStoreObject( $proto, $params );
-               if ( $store === false ) {
-                       return false;
-               }
-
-               return $store->fetchFromURL( $url );
-       }
-
-       /**
-        * Get an external store object of the given type, with the given parameters
-        *
-        * @param $proto String: type of external storage, should be a value in $wgExternalStores
-        * @param $params Array: associative array of parameters for the ExternalStore object.
-        * @return ExternalStore|bool ExternalStore class or false on error
-        */
-       static function getStoreObject( $proto, $params = array() ) {
-               global $wgExternalStores;
-               if( !$wgExternalStores ) {
-                       return false;
-               }
-
-               /* Protocol not enabled */
-               if( !in_array( $proto, $wgExternalStores ) ) {
-                       return false;
-               }
-
-               $class = 'ExternalStore' . ucfirst( $proto );
-               /* Any custom modules should be added to $wgAutoLoadClasses for on-demand loading */
-               if( !MWInit::classExists( $class ) ) {
-                       return false;
-               }
-
-               return new $class($params);
-       }
-
-       /**
-        * Store a data item to an external store, identified by a partial URL
-        * The protocol part is used to identify the class, the rest is passed to the
-        * class itself as a parameter.
-        * @param $url
-        * @param $data
-        * @param $params array
-        * @return string|bool The URL of the stored data item, or false on error
-        */
-       static function insert( $url, $data, $params = array() ) {
-               list( $proto, $params ) = explode( '://', $url, 2 );
-               $store = self::getStoreObject( $proto, $params );
-               if ( $store === false ) {
-                       return false;
-               } else {
-                       return $store->store( $params, $data );
-               }
-       }
-
-       /**
-        * Like insert() above, but does more of the work for us.
-        * This function does not need a url param, it builds it by
-        * itself. It also fails-over to the next possible clusters.
-        *
-        * @param $data String
-        * @param $storageParams Array: associative array of parameters for the ExternalStore object.
-        * @throws MWException|DBConnectionError|DBQueryError
-        * @return string|bool The URL of the stored data item, or false on error
-        */
-       public static function insertToDefault( $data, $storageParams = array() ) {
-               global $wgDefaultExternalStore;
-               $tryStores = (array)$wgDefaultExternalStore;
-               $error = false;
-               while ( count( $tryStores ) > 0 ) {
-                       $index = mt_rand(0, count( $tryStores ) - 1);
-                       $storeUrl = $tryStores[$index];
-                       wfDebug( __METHOD__.": trying $storeUrl\n" );
-                       list( $proto, $params ) = explode( '://', $storeUrl, 2 );
-                       $store = self::getStoreObject( $proto, $storageParams );
-                       if ( $store === false ) {
-                               throw new MWException( "Invalid external storage protocol - $storeUrl" );
-                       }
-                       try {
-                               $url = $store->store( $params, $data ); // Try to save the object
-                       } catch ( DBConnectionError $error ) {
-                               $url = false;
-                       } catch( DBQueryError $error ) {
-                               $url = false;
-                       }
-                       if ( $url ) {
-                               return $url; // Done!
-                       } else {
-                               unset( $tryStores[$index] ); // Don't try this one again!
-                               $tryStores = array_values( $tryStores ); // Must have consecutive keys
-                               wfDebugLog( 'ExternalStorage', "Unable to store text to external storage $storeUrl" );
-                       }
-               }
-               // All stores failed
-               if ( $error ) {
-                       // Rethrow the last connection error
-                       throw $error;
-               } else {
-                       throw new MWException( "Unable to store text to external storage" );
-               }
-       }
-
-       /**
-        * @param $data
-        * @param $wiki
-        *
-        * @return string
-        */
-       public static function insertToForeignDefault( $data, $wiki ) {
-               return self::insertToDefault( $data, array( 'wiki' => $wiki ) );
-       }
-}
diff --git a/includes/ExternalStoreDB.php b/includes/ExternalStoreDB.php
deleted file mode 100644 (file)
index 37b1b93..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-/**
- * External storage in SQL database.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * DB accessable external objects
- * @ingroup ExternalStorage
- */
-class ExternalStoreDB {
-
-       /**
-        * @param $params array
-        */
-       function __construct( $params = array() ) {
-               $this->mParams = $params;
-       }
-
-       /**
-        * Get a LoadBalancer for the specified cluster
-        *
-        * @param $cluster String: cluster name
-        * @return LoadBalancer object
-        */
-       function &getLoadBalancer( $cluster ) {
-               $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
-
-               return wfGetLBFactory()->getExternalLB( $cluster, $wiki );
-       }
-
-       /**
-        * Get a slave database connection for the specified cluster
-        *
-        * @param $cluster String: cluster name
-        * @return DatabaseBase object
-        */
-       function &getSlave( $cluster ) {
-               global $wgDefaultExternalStore;
-
-               $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
-               $lb =& $this->getLoadBalancer( $cluster );
-
-               if ( !in_array( "DB://" . $cluster, (array)$wgDefaultExternalStore ) ) {
-                       wfDebug( "read only external store" );
-                       $lb->allowLagged(true);
-               } else {
-                       wfDebug( "writable external store" );
-               }
-
-               return $lb->getConnection( DB_SLAVE, array(), $wiki );
-       }
-
-       /**
-        * Get a master database connection for the specified cluster
-        *
-        * @param $cluster String: cluster name
-        * @return DatabaseBase object
-        */
-       function &getMaster( $cluster ) {
-               $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
-               $lb =& $this->getLoadBalancer( $cluster );
-               return $lb->getConnection( DB_MASTER, array(), $wiki );
-       }
-
-       /**
-        * Get the 'blobs' table name for this database
-        *
-        * @param $db DatabaseBase
-        * @return String: table name ('blobs' by default)
-        */
-       function getTable( &$db ) {
-               $table = $db->getLBInfo( 'blobs table' );
-               if ( is_null( $table ) ) {
-                       $table = 'blobs';
-               }
-               return $table;
-       }
-
-       /**
-        * Fetch data from given URL
-        * @param $url String: an url of the form DB://cluster/id or DB://cluster/id/itemid for concatened storage.
-        * @return mixed
-        */
-       function fetchFromURL( $url ) {
-               $path = explode( '/', $url );
-               $cluster = $path[2];
-               $id = $path[3];
-               if ( isset( $path[4] ) ) {
-                       $itemID = $path[4];
-               } else {
-                       $itemID = false;
-               }
-
-               $ret =& $this->fetchBlob( $cluster, $id, $itemID );
-
-               if ( $itemID !== false && $ret !== false ) {
-                       return $ret->getItem( $itemID );
-               }
-               return $ret;
-       }
-
-       /**
-        * Fetch a blob item out of the database; a cache of the last-loaded
-        * blob will be kept so that multiple loads out of a multi-item blob
-        * can avoid redundant database access and decompression.
-        * @param $cluster
-        * @param $id
-        * @param $itemID
-        * @return mixed
-        * @private
-        */
-       function &fetchBlob( $cluster, $id, $itemID ) {
-               /**
-                * One-step cache variable to hold base blobs; operations that
-                * pull multiple revisions may often pull multiple times from
-                * the same blob. By keeping the last-used one open, we avoid
-                * redundant unserialization and decompression overhead.
-                */
-               static $externalBlobCache = array();
-
-               $cacheID = ( $itemID === false ) ? "$cluster/$id" : "$cluster/$id/";
-               if( isset( $externalBlobCache[$cacheID] ) ) {
-                       wfDebug( "ExternalStoreDB::fetchBlob cache hit on $cacheID\n" );
-                       return $externalBlobCache[$cacheID];
-               }
-
-               wfDebug( "ExternalStoreDB::fetchBlob cache miss on $cacheID\n" );
-
-               $dbr =& $this->getSlave( $cluster );
-               $ret = $dbr->selectField( $this->getTable( $dbr ), 'blob_text', array( 'blob_id' => $id ), __METHOD__ );
-               if ( $ret === false ) {
-                       wfDebugLog( 'ExternalStoreDB', "ExternalStoreDB::fetchBlob master fallback on $cacheID\n" );
-                       // Try the master
-                       $dbw =& $this->getMaster( $cluster );
-                       $ret = $dbw->selectField( $this->getTable( $dbw ), 'blob_text', array( 'blob_id' => $id ), __METHOD__ );
-                       if( $ret === false) {
-                               wfDebugLog( 'ExternalStoreDB', "ExternalStoreDB::fetchBlob master failed to find $cacheID\n" );
-                       }
-               }
-               if( $itemID !== false && $ret !== false ) {
-                       // Unserialise object; caller extracts item
-                       $ret = unserialize( $ret );
-               }
-
-               $externalBlobCache = array( $cacheID => &$ret );
-               return $ret;
-       }
-
-       /**
-        * Insert a data item into a given cluster
-        *
-        * @param $cluster String: the cluster name
-        * @param $data String: the data item
-        * @throws MWException
-        * @return string URL
-        */
-       function store( $cluster, $data ) {
-               $dbw = $this->getMaster( $cluster );
-               $id = $dbw->nextSequenceValue( 'blob_blob_id_seq' );
-               $dbw->insert( $this->getTable( $dbw ),
-                       array( 'blob_id' => $id, 'blob_text' => $data ),
-                       __METHOD__ );
-               $id = $dbw->insertId();
-               if ( !$id ) {
-                       throw new MWException( __METHOD__.': no insert ID' );
-               }
-               if ( $dbw->getFlag( DBO_TRX ) ) {
-                       $dbw->commit( __METHOD__ );
-               }
-               return "DB://$cluster/$id";
-       }
-}
diff --git a/includes/ExternalStoreHttp.php b/includes/ExternalStoreHttp.php
deleted file mode 100644 (file)
index 311e32b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * External storage using HTTP requests.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * Example class for HTTP accessable external objects.
- * Only supports reading, not storing.
- *
- * @ingroup ExternalStorage
- */
-class ExternalStoreHttp {
-
-       /**
-        * Fetch data from given URL
-        *
-        * @param $url String: the URL
-        * @return String: the content at $url
-        */
-       function fetchFromURL( $url ) {
-               $ret = Http::get( $url );
-               return $ret;
-       }
-
-       /* XXX: may require other methods, for store, delete,
-        * whatever, for initial ext storage
-        */
-}
index 4b138c1..b517656 100644 (file)
@@ -192,22 +192,4 @@ class Fallback {
                        return false;
                }
        }
-
-       /**
-        * Fallback implementation of stream_resolve_include_path()
-        * Native stream_resolve_include_path is available for PHP 5 >= 5.3.2
-        * @param $filename String
-        * @return String
-        */
-       public static function stream_resolve_include_path( $filename ) {
-               $pathArray = explode( PATH_SEPARATOR, get_include_path() );
-               foreach ( $pathArray as $path ) {
-                       $fullFilename = $path . DIRECTORY_SEPARATOR . $filename;
-                       if ( file_exists( $fullFilename ) ) {
-                               return $fullFilename;
-                       }
-               }
-               return false;
-       }
-
 }
index 6d86a50..7833a71 100644 (file)
@@ -1037,7 +1037,7 @@ function wfDebugLog( $logGroup, $text, $public = true ) {
                        wfErrorLog( "$time $host $wiki: $text", $wgDebugLogGroups[$logGroup] );
                }
        } elseif ( $public === true ) {
-               wfDebug( $text, true );
+               wfDebug( "[$logGroup] $text", true );
        }
 }
 
index c9c0679..9e201a2 100644 (file)
@@ -138,6 +138,8 @@ class Hooks {
         * @param $event String: event name
         * @param $args  Array: parameters passed to hook functions
         *
+        * @throws MWException
+        * @throws FatalError
         * @return Boolean True if no handler aborted the hook
         */
        public static function run( $event, $args = array() ) {
index 2ab6069..14456e4 100644 (file)
@@ -476,7 +476,13 @@ class Html {
                        // server-side validation.  Opera is the only other implementation at
                        // this time, and has ugly UI, so just kill the feature entirely until
                        // we have at least one good implementation.
-                       if ( in_array( $key, array( 'max', 'min', 'pattern', 'required', 'step' ) ) ) {
+
+                       // As the default value of "1" for "step" rejects decimal
+                       // numbers to be entered in 'type="number"' fields, allow
+                       // the special case 'step="any"'.
+
+                       if ( in_array( $key, array( 'max', 'min', 'pattern', 'required' ) ) ||
+                                $key === 'step' && $value !== 'any' ) {
                                continue;
                        }
 
index 316e1c9..ecf4f89 100644 (file)
@@ -340,13 +340,13 @@ class ImagePage extends Article {
                                if ( $width > $maxWidth || $height > $maxHeight ) {
                                        # Calculate the thumbnail size.
                                        # First case, the limiting factor is the width, not the height.
-                                       if ( $width / $height >= $maxWidth / $maxHeight ) {
-                                               $height = round( $height * $maxWidth / $width );
+                                       if ( $width / $height >= $maxWidth / $maxHeight ) { // FIXME: Possible divison by 0. bug 36911
+                                               $height = round( $height * $maxWidth / $width ); // FIXME: Possible divison by 0. bug 36911
                                                $width = $maxWidth;
                                                # Note that $height <= $maxHeight now.
                                        } else {
-                                               $newwidth = floor( $width * $maxHeight / $height );
-                                               $height = round( $height * $newwidth / $width );
+                                               $newwidth = floor( $width * $maxHeight / $height ); // FIXME: Possible divison by 0. bug 36911
+                                               $height = round( $height * $newwidth / $width ); // FIXME: Possible divison by 0. bug 36911
                                                $width = $newwidth;
                                                # Note that $height <= $maxHeight now, but might not be identical
                                                # because of rounding.
index a7a903e..7ddf863 100644 (file)
@@ -819,6 +819,7 @@ class LinksDeletionUpdate extends SqlDataUpdate {
         * Constructor
         *
         * @param $page WikiPage Page we are updating
+        * @throws MWException
         */
        function __construct( WikiPage $page ) {
                parent::__construct( false ); // no implicit transaction
index 94e823e..f6f5a76 100644 (file)
@@ -1160,7 +1160,7 @@ class LCStore_CDB implements LCStore {
        }
 
        protected function getFileName( $code ) {
-               if ( !$code || strpos( $code, '/' ) !== false ) {
+               if ( strval( $code ) === '' || strpos( $code, '/' ) !== false ) {
                        throw new MWException( __METHOD__ . ": Invalid language \"$code\"" );
                }
                return "{$this->directory}/l10n_cache-$code.cdb";
index 7649b23..868c786 100644 (file)
@@ -777,6 +777,7 @@ class OutputPage extends ContextSource {
                if ( isset( $this->mPageTitleActionText ) ) {
                        return $this->mPageTitleActionText;
                }
+               return '';
        }
 
        /**
index a3c684b..9a10867 100644 (file)
@@ -158,18 +158,21 @@ class Preferences {
                        $wgEnableEmail, $wgEmailConfirmToEdit, $wgEnableUserEmail, $wgEmailAuthentication,
                        $wgEnotifWatchlist, $wgEnotifUserTalk, $wgEnotifRevealEditorAddress;
 
+               // retrieving user name for GENDER and misc.
+               $userName = $user->getName();
+
                ## User info #####################################
                // Information panel
                $defaultPreferences['username'] = array(
                        'type' => 'info',
-                       'label-message' => 'username',
-                       'default' => $user->getName(),
+                       'label-message' => array( 'username', $userName ),
+                       'default' => $userName,
                        'section' => 'personal/info',
                );
 
                $defaultPreferences['userid'] = array(
                        'type' => 'info',
-                       'label-message' => 'uid',
+                       'label-message' => array( 'uid', $userName ),
                        'default' => $user->getId(),
                        'section' => 'personal/info',
                );
@@ -185,7 +188,7 @@ class Preferences {
                        $groupName  = User::getGroupName( $ueg );
                        $userGroups[] = User::makeGroupLinkHTML( $ueg, $groupName );
 
-                       $memberName = User::getGroupMember( $ueg, $user->getName() );
+                       $memberName = User::getGroupMember( $ueg, $userName );
                        $userMembers[] = User::makeGroupLinkHTML( $ueg, $memberName );
                }
                asort( $userGroups );
@@ -196,7 +199,7 @@ class Preferences {
                $defaultPreferences['usergroups'] = array(
                        'type' => 'info',
                        'label' => $context->msg( 'prefs-memberingroups' )->numParams(
-                               count( $userGroups ) )->parse(),
+                               count( $userGroups ) )->params( $userName )->parse(),
                        'default' => $context->msg( 'prefs-memberingroups-type',
                                $lang->commaList( $userGroups ),
                                $lang->commaList( $userMembers )
@@ -252,7 +255,7 @@ class Preferences {
                if ( $wgAuth->allowPasswordChange() ) {
                        $link = Linker::link( SpecialPage::getTitleFor( 'ChangePassword' ),
                                $context->msg( 'prefs-resetpass' )->escaped(), array(),
-                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' ) ) );
+                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' )->getPrefixedText() ) );
 
                        $defaultPreferences['password'] = array(
                                'type' => 'info',
@@ -367,7 +370,7 @@ class Preferences {
                                SpecialPage::getTitleFor( 'ChangeEmail' ),
                                $context->msg( $user->getEmail() ? 'prefs-changeemail' : 'prefs-setemail' )->escaped(),
                                array(),
-                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' ) ) );
+                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' )->getPrefixedText() ) );
 
                        $emailAddress = $user->getEmail() ? htmlspecialchars( $user->getEmail() ) : '';
                        if ( $wgAuth->allowPropChange( 'emailaddress' ) ) {
@@ -507,14 +510,15 @@ class Preferences {
                # be nice to somehow merge this back in there to avoid redundancy.
                if ( $wgAllowUserCss || $wgAllowUserJs ) {
                        $linkTools = array();
+                       $userName = $user->getName();
 
                        if ( $wgAllowUserCss ) {
-                               $cssPage = Title::makeTitleSafe( NS_USER, $user->getName() . '/common.css' );
+                               $cssPage = Title::makeTitleSafe( NS_USER, $userName . '/common.css' );
                                $linkTools[] = Linker::link( $cssPage, $context->msg( 'prefs-custom-css' )->escaped() );
                        }
 
                        if ( $wgAllowUserJs ) {
-                               $jsPage = Title::makeTitleSafe( NS_USER, $user->getName() . '/common.js' );
+                               $jsPage = Title::makeTitleSafe( NS_USER, $userName . '/common.js' );
                                $linkTools[] = Linker::link( $jsPage, $context->msg( 'prefs-custom-js' )->escaped() );
                        }
 
@@ -1009,27 +1013,17 @@ class Preferences {
                        'section' => 'searchoptions/advancedsearchoptions',
                );
 
-               $nsOptions = array();
-
-               foreach ( $wgContLang->getNamespaces() as $ns => $name ) {
-                       if ( $ns < 0 ) {
-                               continue;
-                       }
-
-                       $displayNs = str_replace( '_', ' ', $name );
-
-                       if ( !$displayNs ) {
-                               $displayNs = $context->msg( 'blanknamespace' )->text();
-                       }
-
-                       $displayNs = htmlspecialchars( $displayNs );
-                       $nsOptions[$displayNs] = $ns;
+               $nsOptions = $wgContLang->getFormattedNamespaces();
+               $nsOptions[0] = $context->msg( 'blanknamespace' )->text();
+               foreach ( $nsOptions as $ns => $name ) {
+                       if ( $ns < 0 )
+                               unset( $nsOptions[$ns] );
                }
 
                $defaultPreferences['searchnamespaces'] = array(
                        'type' => 'multiselect',
                        'label-message' => 'defaultns',
-                       'options' => $nsOptions,
+                       'options' => array_flip( $nsOptions ),
                        'section' => 'searchoptions/advancedsearchoptions',
                        'prefix' => 'searchNs',
                );
index 9643ba7..e844a1e 100644 (file)
@@ -501,7 +501,7 @@ class ProtectionForm {
                                        <td class='mw-input'>" .
                                                Xml::checkLabel( wfMessage( 'watchthis' )->text(),
                                                        'mwProtectWatch', 'mwProtectWatch',
-                                                       $this->mTitle->userIsWatching() || $wgUser->getOption( 'watchdefault' ) ) .
+                                                       $wgUser->isWatched( $this->mTitle ) || $wgUser->getOption( 'watchdefault' ) ) .
                                        "</td>
                                </tr>";
                        }
index 1f21584..31df316 100644 (file)
@@ -652,7 +652,7 @@ abstract class QueryPage extends SpecialPage {
 
                if ( !$wgFeed ) {
                        $this->getOutput()->addWikiMsg( 'feed-unavailable' );
-                       return;
+                       return false;
                }
 
                global $wgFeedLimit;
index 67aa2b3..e844d93 100644 (file)
@@ -254,13 +254,14 @@ class SpecialPage {
         *
         * @param $name String
         * @param $subpage String|Bool subpage string, or false to not use a subpage
+        * @param $fragment String the link fragment (after the "#")
         * @throws MWException
         * @return Title object
         */
-       public static function getTitleFor( $name, $subpage = false ) {
+       public static function getTitleFor( $name, $subpage = false, $fragment = '' ) {
                $name = SpecialPageFactory::getLocalNameFor( $name, $subpage );
                if ( $name ) {
-                       return Title::makeTitle( NS_SPECIAL, $name );
+                       return Title::makeTitle( NS_SPECIAL, $name, $fragment );
                } else {
                        throw new MWException( "Invalid special page name \"$name\"" );
                }
index 56ce46c..3b7b801 100644 (file)
@@ -216,7 +216,7 @@ class MWTimestamp {
 
                if( $message ) {
                        $initial = call_user_func_array( 'wfMessage', $message );
-                       return wfMessage( 'ago', $initial );
+                       return wfMessage( 'ago', $initial->parse() );
                } else {
                        return wfMessage( 'just-now' );
                }
index 6cd8ee5..896218b 100644 (file)
@@ -675,6 +675,7 @@ class Title {
        /**
         * Get the page's content model id, see the CONTENT_MODEL_XXX constants.
         *
+        * @throws MWException
         * @return String: Content model id
         */
        public function getContentModel() {
@@ -2972,6 +2973,7 @@ class Title {
         * What is the page_latest field for this page?
         *
         * @param $flags Int a bit field; may be Title::GAID_FOR_UPDATE to select for update
+        * @throws MWException
         * @return Int or 0 if the page doesn't exist
         */
        public function getLatestRevID( $flags = 0 ) {
@@ -3695,8 +3697,8 @@ class Title {
                }
 
                # Update watchlists
-               $oldnamespace = $this->getNamespace() & ~1;
-               $newnamespace = $nt->getNamespace() & ~1;
+               $oldnamespace = MWNamespace::getSubject( $this->getNamespace() );
+               $newnamespace = MWNamespace::getSubject( $nt->getNamespace() );
                $oldtitle = $this->getDBkey();
                $newtitle = $nt->getDBkey();
 
index 507b254..28ff630 100644 (file)
@@ -3034,6 +3034,7 @@ class User {
         * so it is still advisable to make the call conditional on isLoggedIn(),
         * and to commit the transaction after calling.
         *
+        * @throws MWException
         * @return Status
         */
        public function addToDatabase() {
index daf7435..b8b6aa8 100644 (file)
@@ -231,12 +231,7 @@ class UserMailer {
                        # PEAR MAILER
                        #
 
-                       if ( function_exists( 'stream_resolve_include_path' ) ) {
-                               $found = stream_resolve_include_path( 'Mail.php' );
-                       } else {
-                               $found = Fallback::stream_resolve_include_path( 'Mail.php' );
-                       }
-                       if ( !$found ) {
+                       if ( ! stream_resolve_include_path( 'Mail.php' ) ) {
                                throw new MWException( 'PEAR mail package is not installed' );
                        }
                        require_once( 'Mail.php' );
@@ -498,7 +493,7 @@ class EmailNotification {
                                'pageStatus' => $pageStatus
                        );
                        $job = new EnotifNotifyJob( $title, $params );
-                       $job->insert();
+                       JobQueueGroup::singleton()->push( $job );
                } else {
                        $this->actuallyNotifyOnPageChange( $editor, $title, $timestamp, $summary, $minorEdit, $oldid, $watchers, $pageStatus );
                }
@@ -517,6 +512,8 @@ class EmailNotification {
         * @param $minorEdit bool
         * @param $oldid int Revision ID
         * @param $watchers array of user IDs
+        * @param string $pageStatus
+        * @throws MWException
         */
        public function actuallyNotifyOnPageChange( $editor, $title, $timestamp, $summary, $minorEdit,
                $oldid, $watchers, $pageStatus = 'changed' ) {
@@ -780,13 +777,15 @@ class EmailNotification {
        /**
         * Same as sendPersonalised but does impersonal mail suitable for bulk
         * mailing.  Takes an array of MailAddress objects.
-        * @return Status
+        * @param $addresses array
+        * @return Status|null
         */
        function sendImpersonal( $addresses ) {
                global $wgContLang;
 
-               if ( empty( $addresses ) )
-                       return;
+               if ( empty( $addresses ) ) {
+                       return null;
+               }
 
                $body = str_replace(
                                array( '$WATCHINGUSERNAME',
index e251ac5..8cf25bb 100644 (file)
@@ -1044,6 +1044,7 @@ HTML;
         *
         * @since 1.19
         *
+        * @throws MWException
         * @return String
         */
        protected function getRawIP() {
@@ -1335,8 +1336,10 @@ class FauxRequest extends WebRequest {
         * @return mixed
         */
        public function getSessionData( $key ) {
-               if( isset( $this->session[$key] ) )
+               if( isset( $this->session[$key] ) ) {
                        return $this->session[$key];
+               }
+               return null;
        }
 
        /**
index 0b588cb..68068a8 100644 (file)
@@ -1409,6 +1409,7 @@ class WikiPage extends Page implements IDBAccessObject {
         * @param $text String: new text of the section
         * @param $sectionTitle String: new section's subject, only if $section is 'new'
         * @param $edittime String: revision timestamp or null to use the current revision
+        * @throws MWException
         * @return String new complete article text, or null if error
         *
         * @deprecated since 1.21, use replaceSectionContent() instead
@@ -1451,6 +1452,7 @@ class WikiPage extends Page implements IDBAccessObject {
         * @param $sectionTitle String: new section's subject, only if $section is 'new'
         * @param $edittime String: revision timestamp or null to use the current revision
         *
+        * @throws MWException
         * @return Content new complete article content, or null if error
         *
         * @since 1.21
@@ -1599,10 +1601,11 @@ class WikiPage extends Page implements IDBAccessObject {
         * edit-already-exists error will be returned. These two conditions are also possible with
         * auto-detection due to MediaWiki's performance-optimised locking strategy.
         *
-        * @param $baseRevId the revision ID this edit was based off, if any
+        * @param bool|\the $baseRevId the revision ID this edit was based off, if any
         * @param $user User the user doing the edit
         * @param $serialisation_format String: format for storing the content in the database
         *
+        * @throws MWException
         * @return Status object. Possible errors:
         *     edit-hook-aborted:       The ArticleSave hook aborted the edit but didn't set the fatal flag of $status
         *     edit-gone-missing:       In update mode, but the article didn't exist
index 0f5be6b..bee8046 100644 (file)
@@ -624,10 +624,43 @@ class ApiPageSet extends ApiQueryBase {
         * @return LinkBatch
         */
        private function getRedirectTargets() {
+               $redirectTitles = $this->resolveIdsToRedirectTargets( array_keys( $this->mPendingRedirectIDs ), 'profileDB' );
+
                $lb = new LinkBatch();
+               foreach( $this->mPendingRedirectIDs as $rdfrom => $from ) {
+                       if( !isset( $redirectTitles[$rdfrom] ) ) {
+                               continue;
+                       }
+                       $to = $redirectTitles[$rdfrom];
+                       if ( $to && !isset( $this->mAllPages[$to->getNamespace()][$to->getText()] ) ) {
+                               $lb->addObj( $to );
+                       }
+                       $this->mRedirectTitles[$from->getPrefixedText()] = $to;
+               }
+               return $lb;
+       }
+
+       /**
+        * Get the targets of redirects from the database
+        *
+        * Also creates entries in the redirect table for redirects that don't
+        * have one.
+        *
+        * @param $redirectIDs array The array of pageids to resolve
+        * @param $profileDB string if profileDBIn should called
+        * @return array id => redirect target as title
+        * @since 1.21
+        */
+       public function resolveIdsToRedirectTargets( $redirectIDs, $profileDB = '' ) {
+               if( !$redirectIDs ) {
+                       return array();
+               }
+
                $db = $this->getDB();
 
-               $this->profileDBIn();
+               if( $profileDB ) {
+                       $this->profileDBIn();
+               }
                $res = $db->select(
                        'redirect',
                        array(
@@ -636,37 +669,38 @@ class ApiPageSet extends ApiQueryBase {
                                'rd_fragment',
                                'rd_interwiki',
                                'rd_title'
-                       ), array( 'rd_from' => array_keys( $this->mPendingRedirectIDs ) ),
+                       ), array( 'rd_from' => $redirectIDs ),
                        __METHOD__
                );
-               $this->profileDBOut();
+               if( $profileDB ) {
+                       $this->profileDBOut();
+               }
+
+               $redirectTitles = array();
                foreach ( $res as $row ) {
                        $rdfrom = intval( $row->rd_from );
-                       $from = $this->mPendingRedirectIDs[$rdfrom]->getPrefixedText();
                        $to = Title::makeTitle( $row->rd_namespace, $row->rd_title, $row->rd_fragment, $row->rd_interwiki );
-                       unset( $this->mPendingRedirectIDs[$rdfrom] );
-                       if ( !isset( $this->mAllPages[$row->rd_namespace][$row->rd_title] ) ) {
-                               $lb->add( $row->rd_namespace, $row->rd_title );
-                       }
-                       $this->mRedirectTitles[$from] = $to;
+                       $redirectTitles[$rdfrom] = $to;
                }
 
-               if ( $this->mPendingRedirectIDs ) {
+               $unresolvedRedirectIDs = array_diff( $redirectIDs, array_keys( $redirectTitles ) );
+               if ( $unresolvedRedirectIDs ) {
                        // We found pages that aren't in the redirect table
                        // Add them
-                       foreach ( $this->mPendingRedirectIDs as $id => $title ) {
-                               $page = WikiPage::factory( $title );
+                       foreach ( $unresolvedRedirectIDs as $id ) {
+                               $page = WikiPage::newFromID( $id );
+                               if ( !$page ) {
+                                       continue;
+                               }
                                $rt = $page->insertRedirect();
                                if ( !$rt ) {
                                        // What the hell. Let's just ignore this
                                        continue;
                                }
-                               $lb->addObj( $rt );
-                               $this->mRedirectTitles[$title->getPrefixedText()] = $rt;
-                               unset( $this->mPendingRedirectIDs[$id] );
+                               $redirectTitles[$id] = $rt;
                        }
                }
-               return $lb;
+               return $redirectTitles;
        }
 
        /**
index e5cea96..76d1e3b 100644 (file)
@@ -34,12 +34,12 @@ class ApiQueryInfo extends ApiQueryBase {
        private $fld_protection = false, $fld_talkid = false,
                $fld_subjectid = false, $fld_url = false,
                $fld_readable = false, $fld_watched = false, $fld_notificationtimestamp = false,
-               $fld_preload = false, $fld_displaytitle = false;
+               $fld_preload = false, $fld_displaytitle = false, $fld_redirecttarget = false;
 
        private $params, $titles, $missing, $everything, $pageCounter;
 
        private $pageRestrictions, $pageIsRedir, $pageIsNew, $pageTouched,
-               $pageLatest, $pageLength;
+               $pageLatest, $pageLength, $redirectTarget;
 
        private $protections, $watched, $notificationtimestamps, $talkids, $subjectids, $displaytitles;
 
@@ -255,6 +255,7 @@ class ApiQueryInfo extends ApiQueryBase {
                        $this->fld_readable = isset( $prop['readable'] );
                        $this->fld_preload = isset( $prop['preload'] );
                        $this->fld_displaytitle = isset( $prop['displaytitle'] );
+                       $this->fld_redirecttarget = isset( $prop['redirecttarget'] );
                }
 
                $pageSet = $this->getPageSet();
@@ -317,6 +318,10 @@ class ApiQueryInfo extends ApiQueryBase {
                        $this->getDisplayTitle();
                }
 
+               if ( $this->fld_redirecttarget ) {
+                       $this->redirectTarget = $pageSet->resolveIdsToRedirectTargets( array_keys( $this->pageIsRedir ) );
+               }
+
                foreach ( $this->everything as $pageid => $title ) {
                        $pageInfo = $this->extractPageInfo( $pageid, $title );
                        $fit = $result->addValue( array(
@@ -359,6 +364,13 @@ class ApiQueryInfo extends ApiQueryBase {
                        if ( $this->pageIsNew[$pageid] ) {
                                $pageInfo['new'] = '';
                        }
+                       if ( $this->fld_redirecttarget && isset( $this->redirectTarget[$pageid] ) ) {
+                               $targetTitle = $this->redirectTarget[$pageid];
+                               $pageInfo['redirecttarget'] = $targetTitle->getPrefixedText();
+                               if( $targetTitle->getFragment() !== '' ) {
+                                       $pageInfo['redirecttargetfragment'] = $targetTitle->getFragment();
+                               }
+                       }
                }
 
                if ( !is_null( $this->params['token'] ) ) {
@@ -686,6 +698,7 @@ class ApiQueryInfo extends ApiQueryBase {
                        'url',
                        'preload',
                        'displaytitle',
+                       'redirecttarget',
                );
                if ( !is_null( $params['prop'] ) ) {
                        foreach ( $params['prop'] as $prop ) {
@@ -715,6 +728,7 @@ class ApiQueryInfo extends ApiQueryBase {
                                        'readable', # private
                                        'preload',
                                        'displaytitle',
+                                       'redirecttarget',
                                        // If you add more properties here, please consider whether they
                                        // need to be added to getCacheMode()
                                ) ),
@@ -740,6 +754,7 @@ class ApiQueryInfo extends ApiQueryBase {
                                ' readable              - Whether the user can read this page',
                                ' preload               - Gives the text returned by EditFormPreloadText',
                                ' displaytitle          - Gives the way the page title is actually displayed',
+                               ' redirecttarget        - Gives the redirect target, if this page is a redirect',
                        ),
                        'token' => 'Request a token to perform a data-modifying action on a page',
                        'continue' => 'When more results are available, use this to continue',
@@ -797,6 +812,13 @@ class ApiQueryInfo extends ApiQueryBase {
                        ),
                        'displaytitle' => array(
                                'displaytitle' => 'string'
+                       ),
+                       'redirecttarget' => array(
+                               'redirecttarget' => 'string',
+                               'redirecttargetfragment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
                        )
                );
 
index 591ace9..edcbc1a 100644 (file)
@@ -250,7 +250,7 @@ class ApiQueryUsers extends ApiQueryBase {
                        }
                        $done[] = $u;
                }
-               return $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), 'user' );
+               $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), 'user' );
        }
 
        /**
index f5feaf9..d567035 100644 (file)
@@ -257,7 +257,8 @@ class MessageCache {
         * or false if populating empty cache fails. Also returns true if MessageCache
         * is disabled.
         *
-        * @param $code String: language to which load messages
+        * @param bool|String $code String: language to which load messages
+        * @throws MWException
         * @return bool
         */
        function load( $code = false ) {
index 7d1be2b..282a7ba 100644 (file)
@@ -131,6 +131,7 @@ abstract class ContentHandler {
         * @param $format null|string the format to use for deserialization. If not
         *    given, the model's default format is used.
         *
+        * @throws MWException
         * @return Content a Content object representing $text
         *
         * @throw MWException if $model or $format is not supported or if $text can
index a638540..ffc4de0 100644 (file)
@@ -780,6 +780,7 @@ abstract class DatabaseBase implements DatabaseType {
         * Closes a database connection.
         * if it is open : commits any open transactions
         *
+        * @throws MWException
         * @return Bool operation success. true if already closed.
         */
        public function close() {
@@ -3280,6 +3281,7 @@ abstract class DatabaseBase implements DatabaseType {
         *      generated dynamically using $filename
         * @param bool|callable $inputCallback Callback: Optional function called for each complete line sent
         * @throws MWException
+        * @throws Exception|MWException
         * @return bool|string
         */
        public function sourceFile(
index dfc5916..67dbdfe 100644 (file)
@@ -455,15 +455,6 @@ interface IORMTable {
         */
        public function unprefixFieldName( $fieldName );
 
-       /**
-        * Get an instance of this class.
-        *
-        * @since 1.20
-        *
-        * @return IORMTable
-        */
-       public static function singleton();
-
        /**
         * Get an array with fields from a database result,
         * that can be fed directly to the constructor or
index 7e5feea..8ba5f4f 100644 (file)
@@ -954,10 +954,11 @@ class LoadBalancer {
         * @return bool
         */
        function allowLagged( $mode = null ) {
-               if ( $mode === null) {
+               if ( $mode === null ) {
                        return $this->mAllowLagged;
                }
                $this->mAllowLagged = $mode;
+               return $this->mAllowLagged;
        }
 
        /**
index affd65f..5c730fb 100644 (file)
@@ -120,7 +120,8 @@ abstract class ORMRow implements IORMRow {
                        $result = $this->table->rawSelectRow(
                                $this->table->getPrefixedFields( $fields ),
                                array( $this->table->getPrefixedField( 'id' ) => $this->getId() ),
-                               array( 'LIMIT' => 1 )
+                               array( 'LIMIT' => 1 ),
+                               __METHOD__
                        );
 
                        if ( $result !== false ) {
@@ -418,7 +419,7 @@ abstract class ORMRow implements IORMRow {
        public function remove() {
                $this->beforeRemove();
 
-               $success = $this->table->delete( array( 'id' => $this->getId() ) );
+               $success = $this->table->delete( array( 'id' => $this->getId() ), __METHOD__ );
 
                // DatabaseBase::delete does not always return true for success as documented...
                $success = $success !== false;
@@ -453,8 +454,8 @@ abstract class ORMRow implements IORMRow {
        }
 
        /**
-        * Gets called after successfull removal.
-        * Can be overriden to get rid of linked data.
+        * Gets called after successful removal.
+        * Can be overridden to get rid of linked data.
         *
         * @since 1.20
         */
index e3c8aa7..1292963 100644 (file)
@@ -332,7 +332,8 @@ abstract class ORMTable extends DBAccessBase implements IORMTable {
                $res = $this->rawSelectRow(
                        array( 'rowcount' => 'COUNT(*)' ),
                        $this->getPrefixedValues( $conditions ),
-                       $options
+                       $options,
+                       __METHOD__
                );
 
                return $res->rowcount;
@@ -354,7 +355,7 @@ abstract class ORMTable extends DBAccessBase implements IORMTable {
                $result = $dbw->delete(
                        $this->getName(),
                        $conditions === array() ? '*' : $this->getPrefixedValues( $conditions ),
-                       $functionName
+                       is_null( $functionName ) ? __METHOD__ : $functionName
                ) !== false; // DatabaseBase::delete does not always return true for success as documented...
 
                $this->releaseConnection( $dbw );
diff --git a/includes/externalstore/ExternalStore.php b/includes/externalstore/ExternalStore.php
new file mode 100644 (file)
index 0000000..1b7c29d
--- /dev/null
@@ -0,0 +1,182 @@
+<?php
+/**
+ * Data storage in external repositories.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * @defgroup ExternalStorage ExternalStorage
+ */
+
+/**
+ * Constructor class for data kept in external repositories
+ *
+ * External repositories might be populated by maintenance/async
+ * scripts, thus partial moving of data may be possible, as well
+ * as possibility to have any storage format (i.e. for archives)
+ *
+ * @ingroup ExternalStorage
+ */
+class ExternalStore {
+       var $mParams;
+
+       /**
+        * @param $params array
+        */
+       function __construct( $params = array() ) {
+               $this->mParams = $params;
+       }
+
+       /**
+        * Fetch data from given URL
+        *
+        * @param $url String: The URL of the text to get
+        * @param $params Array: associative array of parameters for the ExternalStore object.
+        * @return string|bool The text stored or false on error
+        */
+       static function fetchFromURL( $url, $params = array() ) {
+               global $wgExternalStores;
+
+               if( !$wgExternalStores ) {
+                       return false;
+               }
+
+               $parts = explode( '://', $url, 2 );
+
+               if ( count( $parts ) != 2 ) {
+                       return false;
+               }
+
+               list( $proto, $path ) = $parts;
+
+               if ( $path == '' ) { // Bad URL
+                       return false;
+               }
+
+               $store = self::getStoreObject( $proto, $params );
+               if ( $store === false ) {
+                       return false;
+               }
+
+               return $store->fetchFromURL( $url );
+       }
+
+       /**
+        * Get an external store object of the given type, with the given parameters
+        *
+        * @param $proto String: type of external storage, should be a value in $wgExternalStores
+        * @param $params Array: associative array of parameters for the ExternalStore object.
+        * @return ExternalStore|bool ExternalStore class or false on error
+        */
+       static function getStoreObject( $proto, $params = array() ) {
+               global $wgExternalStores;
+               if( !$wgExternalStores ) {
+                       return false;
+               }
+
+               /* Protocol not enabled */
+               if( !in_array( $proto, $wgExternalStores ) ) {
+                       return false;
+               }
+
+               $class = 'ExternalStore' . ucfirst( $proto );
+               /* Any custom modules should be added to $wgAutoLoadClasses for on-demand loading */
+               if( !MWInit::classExists( $class ) ) {
+                       return false;
+               }
+
+               return new $class($params);
+       }
+
+       /**
+        * Store a data item to an external store, identified by a partial URL
+        * The protocol part is used to identify the class, the rest is passed to the
+        * class itself as a parameter.
+        * @param $url
+        * @param $data
+        * @param $params array
+        * @return string|bool The URL of the stored data item, or false on error
+        */
+       static function insert( $url, $data, $params = array() ) {
+               list( $proto, $params ) = explode( '://', $url, 2 );
+               $store = self::getStoreObject( $proto, $params );
+               if ( $store === false ) {
+                       return false;
+               } else {
+                       return $store->store( $params, $data );
+               }
+       }
+
+       /**
+        * Like insert() above, but does more of the work for us.
+        * This function does not need a url param, it builds it by
+        * itself. It also fails-over to the next possible clusters.
+        *
+        * @param $data String
+        * @param $storageParams Array: associative array of parameters for the ExternalStore object.
+        * @throws MWException|DBConnectionError|DBQueryError
+        * @return string|bool The URL of the stored data item, or false on error
+        */
+       public static function insertToDefault( $data, $storageParams = array() ) {
+               global $wgDefaultExternalStore;
+               $tryStores = (array)$wgDefaultExternalStore;
+               $error = false;
+               while ( count( $tryStores ) > 0 ) {
+                       $index = mt_rand(0, count( $tryStores ) - 1);
+                       $storeUrl = $tryStores[$index];
+                       wfDebug( __METHOD__.": trying $storeUrl\n" );
+                       list( $proto, $params ) = explode( '://', $storeUrl, 2 );
+                       $store = self::getStoreObject( $proto, $storageParams );
+                       if ( $store === false ) {
+                               throw new MWException( "Invalid external storage protocol - $storeUrl" );
+                       }
+                       try {
+                               $url = $store->store( $params, $data ); // Try to save the object
+                       } catch ( DBConnectionError $error ) {
+                               $url = false;
+                       } catch( DBQueryError $error ) {
+                               $url = false;
+                       }
+                       if ( $url ) {
+                               return $url; // Done!
+                       } else {
+                               unset( $tryStores[$index] ); // Don't try this one again!
+                               $tryStores = array_values( $tryStores ); // Must have consecutive keys
+                               wfDebugLog( 'ExternalStorage', "Unable to store text to external storage $storeUrl" );
+                       }
+               }
+               // All stores failed
+               if ( $error ) {
+                       // Rethrow the last connection error
+                       throw $error;
+               } else {
+                       throw new MWException( "Unable to store text to external storage" );
+               }
+       }
+
+       /**
+        * @param $data
+        * @param $wiki
+        *
+        * @return string
+        */
+       public static function insertToForeignDefault( $data, $wiki ) {
+               return self::insertToDefault( $data, array( 'wiki' => $wiki ) );
+       }
+}
diff --git a/includes/externalstore/ExternalStoreDB.php b/includes/externalstore/ExternalStoreDB.php
new file mode 100644 (file)
index 0000000..37b1b93
--- /dev/null
@@ -0,0 +1,189 @@
+<?php
+/**
+ * External storage in SQL database.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * DB accessable external objects
+ * @ingroup ExternalStorage
+ */
+class ExternalStoreDB {
+
+       /**
+        * @param $params array
+        */
+       function __construct( $params = array() ) {
+               $this->mParams = $params;
+       }
+
+       /**
+        * Get a LoadBalancer for the specified cluster
+        *
+        * @param $cluster String: cluster name
+        * @return LoadBalancer object
+        */
+       function &getLoadBalancer( $cluster ) {
+               $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
+
+               return wfGetLBFactory()->getExternalLB( $cluster, $wiki );
+       }
+
+       /**
+        * Get a slave database connection for the specified cluster
+        *
+        * @param $cluster String: cluster name
+        * @return DatabaseBase object
+        */
+       function &getSlave( $cluster ) {
+               global $wgDefaultExternalStore;
+
+               $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
+               $lb =& $this->getLoadBalancer( $cluster );
+
+               if ( !in_array( "DB://" . $cluster, (array)$wgDefaultExternalStore ) ) {
+                       wfDebug( "read only external store" );
+                       $lb->allowLagged(true);
+               } else {
+                       wfDebug( "writable external store" );
+               }
+
+               return $lb->getConnection( DB_SLAVE, array(), $wiki );
+       }
+
+       /**
+        * Get a master database connection for the specified cluster
+        *
+        * @param $cluster String: cluster name
+        * @return DatabaseBase object
+        */
+       function &getMaster( $cluster ) {
+               $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
+               $lb =& $this->getLoadBalancer( $cluster );
+               return $lb->getConnection( DB_MASTER, array(), $wiki );
+       }
+
+       /**
+        * Get the 'blobs' table name for this database
+        *
+        * @param $db DatabaseBase
+        * @return String: table name ('blobs' by default)
+        */
+       function getTable( &$db ) {
+               $table = $db->getLBInfo( 'blobs table' );
+               if ( is_null( $table ) ) {
+                       $table = 'blobs';
+               }
+               return $table;
+       }
+
+       /**
+        * Fetch data from given URL
+        * @param $url String: an url of the form DB://cluster/id or DB://cluster/id/itemid for concatened storage.
+        * @return mixed
+        */
+       function fetchFromURL( $url ) {
+               $path = explode( '/', $url );
+               $cluster = $path[2];
+               $id = $path[3];
+               if ( isset( $path[4] ) ) {
+                       $itemID = $path[4];
+               } else {
+                       $itemID = false;
+               }
+
+               $ret =& $this->fetchBlob( $cluster, $id, $itemID );
+
+               if ( $itemID !== false && $ret !== false ) {
+                       return $ret->getItem( $itemID );
+               }
+               return $ret;
+       }
+
+       /**
+        * Fetch a blob item out of the database; a cache of the last-loaded
+        * blob will be kept so that multiple loads out of a multi-item blob
+        * can avoid redundant database access and decompression.
+        * @param $cluster
+        * @param $id
+        * @param $itemID
+        * @return mixed
+        * @private
+        */
+       function &fetchBlob( $cluster, $id, $itemID ) {
+               /**
+                * One-step cache variable to hold base blobs; operations that
+                * pull multiple revisions may often pull multiple times from
+                * the same blob. By keeping the last-used one open, we avoid
+                * redundant unserialization and decompression overhead.
+                */
+               static $externalBlobCache = array();
+
+               $cacheID = ( $itemID === false ) ? "$cluster/$id" : "$cluster/$id/";
+               if( isset( $externalBlobCache[$cacheID] ) ) {
+                       wfDebug( "ExternalStoreDB::fetchBlob cache hit on $cacheID\n" );
+                       return $externalBlobCache[$cacheID];
+               }
+
+               wfDebug( "ExternalStoreDB::fetchBlob cache miss on $cacheID\n" );
+
+               $dbr =& $this->getSlave( $cluster );
+               $ret = $dbr->selectField( $this->getTable( $dbr ), 'blob_text', array( 'blob_id' => $id ), __METHOD__ );
+               if ( $ret === false ) {
+                       wfDebugLog( 'ExternalStoreDB', "ExternalStoreDB::fetchBlob master fallback on $cacheID\n" );
+                       // Try the master
+                       $dbw =& $this->getMaster( $cluster );
+                       $ret = $dbw->selectField( $this->getTable( $dbw ), 'blob_text', array( 'blob_id' => $id ), __METHOD__ );
+                       if( $ret === false) {
+                               wfDebugLog( 'ExternalStoreDB', "ExternalStoreDB::fetchBlob master failed to find $cacheID\n" );
+                       }
+               }
+               if( $itemID !== false && $ret !== false ) {
+                       // Unserialise object; caller extracts item
+                       $ret = unserialize( $ret );
+               }
+
+               $externalBlobCache = array( $cacheID => &$ret );
+               return $ret;
+       }
+
+       /**
+        * Insert a data item into a given cluster
+        *
+        * @param $cluster String: the cluster name
+        * @param $data String: the data item
+        * @throws MWException
+        * @return string URL
+        */
+       function store( $cluster, $data ) {
+               $dbw = $this->getMaster( $cluster );
+               $id = $dbw->nextSequenceValue( 'blob_blob_id_seq' );
+               $dbw->insert( $this->getTable( $dbw ),
+                       array( 'blob_id' => $id, 'blob_text' => $data ),
+                       __METHOD__ );
+               $id = $dbw->insertId();
+               if ( !$id ) {
+                       throw new MWException( __METHOD__.': no insert ID' );
+               }
+               if ( $dbw->getFlag( DBO_TRX ) ) {
+                       $dbw->commit( __METHOD__ );
+               }
+               return "DB://$cluster/$id";
+       }
+}
diff --git a/includes/externalstore/ExternalStoreHttp.php b/includes/externalstore/ExternalStoreHttp.php
new file mode 100644 (file)
index 0000000..311e32b
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/**
+ * External storage using HTTP requests.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Example class for HTTP accessable external objects.
+ * Only supports reading, not storing.
+ *
+ * @ingroup ExternalStorage
+ */
+class ExternalStoreHttp {
+
+       /**
+        * Fetch data from given URL
+        *
+        * @param $url String: the URL
+        * @return String: the content at $url
+        */
+       function fetchFromURL( $url ) {
+               $ret = Http::get( $url );
+               return $ret;
+       }
+
+       /* XXX: may require other methods, for store, delete,
+        * whatever, for initial ext storage
+        */
+}
index 3108d11..0b7c072 100644 (file)
@@ -279,9 +279,6 @@ abstract class FileBackend {
         *   - nonLocking          : No locks are acquired for the operations.
         *                           This can increase performance for non-critical writes.
         *                           This has no effect unless the 'force' flag is set.
-        *   - allowStale          : Don't require the latest available data.
-        *                           This can increase performance for non-critical writes.
-        *                           This has no effect unless the 'force' flag is set.
         *   - nonJournaled        : Don't log this operation batch in the file journal.
         *                           This limits the ability of recovery scripts.
         *   - parallelize         : Try to do operations in parallel when possible.
@@ -315,7 +312,6 @@ abstract class FileBackend {
                }
                if ( empty( $opts['force'] ) ) { // sanity
                        unset( $opts['nonLocking'] );
-                       unset( $opts['allowStale'] );
                }
                return $this->doOperationsInternal( $ops, $opts );
        }
index 0d64a44..7952bcb 100644 (file)
@@ -42,7 +42,6 @@ abstract class FileOp {
        protected $state = self::STATE_NEW; // integer
        protected $failed = false; // boolean
        protected $async = false; // boolean
-       protected $useLatest = true; // boolean
        protected $batchId; // string
 
        protected $doOperation = true; // boolean; operation is not a no-op
@@ -124,16 +123,6 @@ abstract class FileOp {
                $this->batchId = $batchId;
        }
 
-       /**
-        * Whether to allow stale data for file reads and stat checks
-        *
-        * @param $allowStale bool
-        * @return void
-        */
-       final public function allowStaleReads( $allowStale ) {
-               $this->useLatest = !$allowStale;
-       }
-
        /**
         * Get the value of the parameter with the given name
         *
@@ -411,7 +400,7 @@ abstract class FileOp {
                if ( isset( $predicates['exists'][$source] ) ) {
                        return $predicates['exists'][$source]; // previous op assures this
                } else {
-                       $params = array( 'src' => $source, 'latest' => $this->useLatest );
+                       $params = array( 'src' => $source, 'latest' => true );
                        return $this->backend->fileExists( $params );
                }
        }
@@ -429,7 +418,7 @@ abstract class FileOp {
                } elseif ( isset( $predicates['exists'][$source] ) && !$predicates['exists'][$source] ) {
                        return false; // previous op assures this
                } else {
-                       $params = array( 'src' => $source, 'latest' => $this->useLatest );
+                       $params = array( 'src' => $source, 'latest' => true );
                        return $this->backend->getFileSha1Base36( $params );
                }
        }
index 736393a..6e103ec 100644 (file)
@@ -42,9 +42,6 @@ class FileOpBatch {
         * $opts is an array of options, including:
         *   - force        : Errors that would normally cause a rollback do not.
         *                    The remaining operations are still attempted if any fail.
-        *   - allowStale   : Don't require the latest available data.
-        *                    This can increase performance for non-critical writes.
-        *                    This has no effect unless the 'force' flag is set.
         *   - nonJournaled : Don't log this operation batch in the file journal.
         *   - concurrency  : Try to do this many operations in parallel when possible.
         *
@@ -69,7 +66,6 @@ class FileOpBatch {
                }
 
                $batchId = $journal->getTimestampedUUID();
-               $allowStale = !empty( $opts['allowStale'] );
                $ignoreErrors = !empty( $opts['force'] );
                $journaled = empty( $opts['nonJournaled'] );
                $maxConcurrency = isset( $opts['concurrency'] ) ? $opts['concurrency'] : 1;
@@ -84,7 +80,6 @@ class FileOpBatch {
                foreach ( $performOps as $index => $fileOp ) {
                        $backendName = $fileOp->getBackend()->getName();
                        $fileOp->setBatchId( $batchId ); // transaction ID
-                       $fileOp->allowStaleReads( $allowStale ); // consistency level
                        // Decide if this op can be done concurrently within this sub-batch
                        // or if a new concurrent sub-batch must be started after this one...
                        if ( $fileOp->dependsOn( $curBatchDeps )
index e9d27f7..f4457de 100644 (file)
@@ -1318,8 +1318,9 @@ class SwiftFileBackend extends FileBackendStore {
        /**
         * Get an authenticated connection handle to the Swift proxy
         *
-        * @return CF_Connection|bool False on failure
         * @throws CloudFilesException
+        * @throws CloudFilesException|Exception
+        * @return CF_Connection|bool False on failure
         */
        protected function getConnection() {
                if ( $this->connException instanceof CloudFilesException ) {
index 26a5e2d..b8e25e7 100644 (file)
@@ -111,7 +111,7 @@ class MemcLockManager extends QuorumLockManager {
                        foreach ( $paths as $path ) {
                                $status->fatal( 'lockmanager-fail-acquirelock', $path );
                        }
-                       return;
+                       return; // FIXME: Should return a Status object
                }
 
                // Fetch all the existing lock records...
index c1abe61..9adcc99 100644 (file)
@@ -1800,7 +1800,7 @@ abstract class File {
        }
 
        /**
-        * @return Title
+        * @return Title|null
         */
        function getRedirectedTitle() {
                if ( $this->redirected ) {
@@ -1809,6 +1809,7 @@ abstract class File {
                        }
                        return $this->redirectTitle;
                }
+               return null;
        }
 
        /**
index b200dcf..dde2193 100644 (file)
@@ -721,8 +721,8 @@ abstract class DatabaseUpdater {
                } elseif( $this->updateRowExists( $updateKey ) ) {
                        $this->output( "...$field in table $table already modified by patch $patch.\n" );
                } else {
-                       return $this->applyPatch( $patch, $fullpath, "Modifying $field field of table $table" );
                        $this->insertUpdateRow( $updateKey );
+                       return $this->applyPatch( $patch, $fullpath, "Modifying $field field of table $table" );
                }
                return true;
        }
@@ -817,7 +817,7 @@ abstract class DatabaseUpdater {
        protected function doUpdateTranscacheField() {
                if ( $this->updateRowExists( 'convert transcache field' ) ) {
                        $this->output( "...transcache tc_time already converted.\n" );
-                       return;
+                       return true;
                }
 
                return $this->applyPatch( 'patch-tc-timestamp.sql', false,
index ea31b0a..50aa2bc 100644 (file)
@@ -9942,7 +9942,7 @@ $1
 アスキー英字(a-z, A-Z)、数字(0-9)、下線(_)、ハイフン(-)のみを使用してください。',
        'config-connection-error' => '$1。
 
-以下のホスト名、ユーザ名、パスワードをチェックして、再度試してみてください。',
+以下のホスト名、ユーザ名、パスワードを確認してから再度試してください。',
        'config-invalid-schema' => '「$1」は MediaWiki のスキーマとして無効です。
 ASCII の英数字 (a-z、A-Z、0-9)、下線 (_) のみを使用してください。',
        'config-postgres-old' => 'PostgreSQL $1 以降が必要です。ご使用中の PostgreSQL は $2 です。',
@@ -13488,9 +13488,9 @@ U kunt MediaWiki niet installeren.',
 MediaWiki heeft PHP $2 of hoger nodig om correct te kunnen werken.',
        'config-unicode-using-utf8' => 'Voor Unicode-normalisatie wordt utf8_normalize.so van Brion Vibber gebruikt.',
        'config-unicode-using-intl' => 'Voor Unicode-normalisatie wordt de [http://pecl.php.net/intl PECL-extensie intl] gebruikt.',
-       'config-unicode-pure-php-warning' => "'''Waarschuwing''': De [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicode-normalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.
-Als u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-normalisatie].",
-       'config-unicode-update-warning' => "'''Waarschuwing''': De geïnstalleerde versie van de Unicode-normalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].
+       'config-unicode-pure-php-warning' => "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.
+Als u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicodenormalisatie].",
+       'config-unicode-update-warning' => "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].
 U moet [//www.mediawiki.org/wiki/Unicode_normalization_considerations bijwerken] als Unicode voor u van belang is.",
        'config-no-db' => 'Het was niet mogelijk een geschikte databasedriver te vinden voor PHP.
 U moet een databasedriver installeren voor PHP.
@@ -13501,7 +13501,7 @@ Als u PHP zelf hebt gecompileerd, wijzig dan uw instellingen zodat een databased
 Als u PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook de module php5-mysql.',
        'config-outdated-sqlite' => "''' Waarschuwing:''' u gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
        'config-no-fts3' => "'''Waarschuwing''': SQLite is gecompileerd zonder de module [//sqlite.org/fts3.html FTS3]; er zijn geen zoekfuncties niet beschikbaar.",
-       'config-register-globals' => "'''Waarschuwing: De PHP-optie <code>[http://php.net/register_globals register_globals]</code> is ingeschakeld.'''
+       'config-register-globals' => "'''Waarschuwing: de PHP-optie <code>[http://php.net/register_globals register_globals]</code> is ingeschakeld.'''
 '''Schakel deze uit als dat mogelijk is.'''
 MediaWiki kan ermee werken, maar uw server is dan meer kwetsbaar voor beveiligingslekken.",
        'config-magic-quotes-runtime' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is actief!'''
@@ -13661,7 +13661,7 @@ Gebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_) en st
 Gebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_) en streepjes (-).',
        'config-connection-error' => '$1.
 
-Controleer de host, gebruikersnaam en wachtwoord hieronder in en probeer het opnieuw.',
+Controleer de host, gebruikersnaam en wachtwoord en probeer het opnieuw.',
        'config-invalid-schema' => 'Ongeldig schema voor MediaWiki "$1".
 Gebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_).',
        'config-db-sys-create-oracle' => 'Het installatieprogramma biedt alleen de mogelijkheid een nieuwe gebruiker aan te maken met de SYSDBA-gebruiker.',
@@ -13690,14 +13690,14 @@ Voer op een Linux-systeem de volgende opdrachten uit:
 <pre>cd $2
 mkdir $3
 chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Er is een fout opgetreden bij het aanmaken van de gegevensmap "$1".
+       'config-sqlite-mkdir-error' => 'Er is een fout opgetreden tijdens het aanmaken van de gegevensmap "$1".
 Controleer de locatie en probeer het opnieuw.',
        'config-sqlite-dir-unwritable' => 'Het was niet mogelijk in de map "$1" te schrijven.
 Wijzig de rechten zodat de webserver erin kan schrijven en probeer het opnieuw.',
        'config-sqlite-connection-error' => '$1.
 
 Controleer de map voor gegevens en de databasenaam hieronder en probeer het opnieuw.',
-       'config-sqlite-readonly' => 'Het bestand <code>$1</code> kan niet geschreven worden.',
+       'config-sqlite-readonly' => 'Er kan niet naar bestand <code>$1</code> worden geschreven.',
        'config-sqlite-cant-create-db' => 'Het was niet mogelijk het databasebestand <code>$1</code> aan te maken.',
        'config-sqlite-fts3-downgrade' => 'PHP heeft geen ondersteuning voor FTS3.
 De tabellen worden gedowngrade.',
@@ -13827,7 +13827,7 @@ Het is ook lastig inhoud te hergebruiken onder de GFDL.",
 Als u niet wilt dat e-mailen mogelijk is, dan kunt u de instellingen hier uitschakelen.",
        'config-email-user' => 'E-mail tussen gebruikers inschakelen',
        'config-email-user-help' => 'Gebruikers toestaan e-mail aan elkaar te verzenden als dit in de voorkeuren is ingesteld.',
-       'config-email-usertalk' => 'Gebruikersoverlegnotificatie inschakelen',
+       'config-email-usertalk' => 'Gebruikersoverlegmeldingen inschakelen',
        'config-email-usertalk-help' => 'Gebruikers toestaan notificaties te ontvangen bij wijzigingen op de eigen overlegpagina als dit in de voorkeuren is ingesteld',
        'config-email-watchlist' => 'Volglijstnotificatie inschakelen',
        'config-email-watchlist-help' => "Gebruikers toestaan notificaties te ontvangen bij wijzigingen van pagina's op hun volglijst als dit in de voorkeuren is ingesteld",
@@ -13862,13 +13862,13 @@ Meer informatie over deze functie en hoe deze in te stellen voor andere wiki\'s
        'config-cc-error' => 'De licentiekiezer van Creative Commons heeft geen resultaat opgeleverd.
 Voer de licentie handmatig in.',
        'config-cc-again' => 'Opnieuw kiezen...',
-       'config-cc-not-chosen' => 'Kies alstublieft de Creative Commons-licentie die u wilt gebruiken en klik op "doorgaan".',
+       'config-cc-not-chosen' => 'Kies alstublieft de Creative Commonslicentie die u wilt gebruiken en klik op "doorgaan".',
        'config-advanced-settings' => 'Gevorderde instellingen',
        'config-cache-options' => 'Instellingen voor het cachen van objecten:',
        'config-cache-help' => 'Het cachen van objecten wordt gebruikt om de snelheid van MediaWiki te verbeteren door vaak gebruikte gegevens te bewaren.
 Middelgrote tot grote websites wordt geadviseerd dit in te schakelen en ook kleine sites merken de voordelen.',
        'config-cache-none' => 'Niets cachen.
-Er gaat geen functionaliteit verloren, maar dit kan invloed hebben op de snelheid.',
+Er gaat geen functionaliteit verloren, maar dit kan invloed hebben op de prestaties.',
        'config-cache-accel' => 'Cachen van objecten via PHP (APC, XCache of WinCache)',
        'config-cache-memcached' => 'Memcached gebruiken (dit vereist aanvullende instellingen)',
        'config-memcached-servers' => 'Memcachedservers:',
@@ -13890,8 +13890,8 @@ Mogelijk moet u aanvullende instellingen maken, maar u kunt deze uitbreidingen n
 Ga alstublieft door naar de volgende pagina.",
        'config-install-begin' => 'Als u nu op "{{int:config-continue}}" klikt, begint de installatie van MediaWiki.
 Als u nog wijzigingen wilt maken, klik dan op "Terug".',
-       'config-install-step-done' => 'Afgerond',
-       'config-install-step-failed' => 'Mislukt',
+       'config-install-step-done' => 'afgerond',
+       'config-install-step-failed' => 'mislukt',
        'config-install-extensions' => 'Inclusief uitbreidingen',
        'config-install-database' => 'Database inrichten',
        'config-install-schema' => 'Het schema wordt aangemaakt',
index 06ec158..bbeb685 100644 (file)
@@ -790,9 +790,8 @@ class MysqlUpdater extends DatabaseUpdater {
                } elseif ( $this->db->fieldExists( 'profiling', 'pf_memory', __METHOD__ ) ) {
                        $this->output( "...profiling table has pf_memory field.\n" );
                        return true;
-               } else {
-                       $this->applyPatch( 'patch-profiling-memory.sql', false, "Adding pf_memory field to table profiling" );
                }
+               return $this->applyPatch( 'patch-profiling-memory.sql', false, "Adding pf_memory field to table profiling" );
        }
 
        protected function doFilearchiveIndicesUpdate() {
index a193afb..f1340d7 100644 (file)
@@ -422,6 +422,7 @@ class WebInstaller_Welcome extends WebInstallerPage {
                } else {
                        $this->parent->showStatusMessage( $status );
                }
+               return '';
        }
 
 }
index f7ca935..65c0725 100644 (file)
@@ -117,6 +117,7 @@ abstract class JobQueue {
         *
         * @param $jobs array List of Jobs
         * @param $flags integer Bitfield (supports JobQueue::QoS_Atomic)
+        * @throws MWException
         * @return bool
         */
        final public function batchPush( array $jobs, $flags = 0 ) {
@@ -159,6 +160,7 @@ abstract class JobQueue {
         * Acknowledge that a job was completed
         *
         * @param $job Job
+        * @throws MWException
         * @return bool
         */
        final public function ack( Job $job ) {
@@ -203,6 +205,7 @@ abstract class JobQueue {
         * previous "root job" for the same task of "update links of pages that use template X".
         *
         * @param $job Job
+        * @throws MWException
         * @return bool
         */
        final public function deduplicateRootJob( Job $job ) {
index 02f0784..c928682 100644 (file)
@@ -49,15 +49,19 @@ class JobQueueDB extends JobQueue {
                        return false;
                }
 
-               $found = $this->getSlaveDB()->selectField(
-                       'job', '1', array( 'job_cmd' => $this->type ), __METHOD__
+               $found = $this->getSlaveDB()->selectField( // unclaimed job
+                       'job', '1', array( 'job_cmd' => $this->type, 'job_token' => '' ), __METHOD__
                );
-
                $wgMemc->add( $key, $found ? 'false' : 'true', self::CACHE_TTL );
+
+               return !$found;
        }
 
        /**
         * @see JobQueue::doBatchPush()
+        * @param array $jobs
+        * @param $flags
+        * @throws DBError|Exception
         * @return bool
         */
        protected function doBatchPush( array $jobs, $flags ) {
@@ -175,6 +179,7 @@ class JobQueueDB extends JobQueue {
                        }
                        $job = Job::factory( $row->job_cmd, $title,
                                self::extractBlob( $row->job_params ), $row->job_id );
+                       $job->id = $row->job_id; // XXX: work around broken subclasses
                        // Flag this job as an old duplicate based on its "root" job...
                        if ( $this->isRootJobOldDuplicate( $job ) ) {
                                $job = DuplicateJob::newFromJob( $job ); // convert to a no-op
@@ -366,20 +371,29 @@ class JobQueueDB extends JobQueue {
 
        /**
         * @see JobQueue::doAck()
+        * @param Job $job
+        * @throws MWException
         * @return Job|bool
         */
        protected function doAck( Job $job ) {
+               if ( !$job->getId() ) {
+                       throw new MWException( "Job of type '{$job->getType()}' has no ID." );
+               }
+
                $dbw = $this->getMasterDB();
                $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
 
                // Delete a row with a single DELETE without holding row locks over RTTs...
-               $dbw->delete( 'job', array( 'job_cmd' => $this->type, 'job_id' => $job->getId() ) );
+               $dbw->delete( 'job',
+                       array( 'job_cmd' => $this->type, 'job_id' => $job->getId() ), __METHOD__ );
 
                return true;
        }
 
        /**
         * @see JobQueue::doDeduplicateRootJob()
+        * @param Job $job
+        * @throws MWException
         * @return bool
         */
        protected function doDeduplicateRootJob( Job $job ) {
index 97e0598..10fe51c 100644 (file)
@@ -76,6 +76,7 @@ class JobQueueGroup {
         * Insert jobs into the respective queues of with the belong
         *
         * @param $jobs Job|array A single Job or a list of Jobs
+        * @throws MWException
         * @return bool
         */
        public function push( $jobs ) {
index ddd4fcc..fb73bf1 100644 (file)
@@ -66,11 +66,11 @@ class DoubleRedirectJob extends Job {
                                'redirTitle' => $redirTitle->getPrefixedDBkey() ) );
                        # Avoid excessive memory usage
                        if ( count( $jobs ) > 10000 ) {
-                               Job::batchInsert( $jobs );
+                               JobQueueGroup::singleton()->push( $jobs );
                                $jobs = array();
                        }
                }
-               Job::batchInsert( $jobs );
+               JobQueueGroup::singleton()->push( $jobs );
        }
 
        function __construct( $title, $params = false, $id = 0 ) {
index 99a8429..4996984 100644 (file)
@@ -52,7 +52,7 @@ class NullJob extends Job {
                        $params = $this->params;
                        $params['lives']--;
                        $job = new self( $this->title, $params );
-                       $job->insert();
+                       JobQueueGroup::singleton()->push( $job );
                }
                return true;
        }
index bdedbd1..cad9c1b 100644 (file)
  * @ingroup Media
  */
 class DjVuImage {
+       /**
+        * Constructor
+        *
+        * @param string $filename The DjVu file name.
+        */
        function __construct( $filename ) {
                $this->mFilename = $filename;
        }
 
+        /**
+         * @const DJVUTXT_MEMORY_LIMIT Memory limit for the DjVu description software
+         */
+       const DJVUTXT_MEMORY_LIMIT = 300000;
+
        /**
         * Check if the given file is indeed a valid DjVu image file
         * @return bool
@@ -252,7 +262,7 @@ class DjVuImage {
                        $cmd = wfEscapeShellArg( $wgDjvuTxt ) . ' --detail=page ' . wfEscapeShellArg( $this->mFilename ) ;
                        wfDebug( __METHOD__.": $cmd\n" );
                        $retval = '';
-                       $txt = wfShellExec( $cmd, $retval, array(), array( 'memory' => 300000 ) );
+                       $txt = wfShellExec( $cmd, $retval, array(), array( 'memory' => self::DJVUTXT_MEMORY_LIMIT ) );
                        wfProfileOut( 'djvutxt' );
                        if( $retval == 0) {
                                # Strip some control characters
index 54051dc..222d475 100644 (file)
@@ -86,6 +86,7 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
+        * @throws
         * @return DatabaseBase
         */
        protected function getDB() {
index 9f1fff2..e1fdbc3 100644 (file)
@@ -254,12 +254,12 @@ class LinkHolderArray {
         * @todo FIXME: Update documentation. makeLinkObj() is deprecated.
         * Replace <!--LINK--> link placeholders with actual links, in the buffer
         * Placeholders created in Skin::makeLinkObj()
-        * Returns an array of link CSS classes, indexed by PDBK.
+        * @return array of link CSS classes, indexed by PDBK.
         */
        function replace( &$text ) {
                wfProfileIn( __METHOD__ );
 
-               $colours = $this->replaceInternal( $text );
+               $colours = $this->replaceInternal( $text ); // FIXME: replaceInternal doesn't return a value
                $this->replaceInterwiki( $text );
 
                wfProfileOut( __METHOD__ );
index 141629e..ad57ed3 100644 (file)
@@ -86,12 +86,12 @@ class SiteArray extends GenericArrayObject implements SiteList {
         * @param mixed $index
         */
        public function offsetUnset( $index ) {
-               /**
-                * @var Site $site
-                */
-               $site = $this->offsetGet( $index );
+               if ( $this->offsetExists( $index ) ) {
+                       /**
+                        * @var Site $site
+                        */
+                       $site = $this->offsetGet( $index );
 
-               if ( $site !== false ) {
                        unset( $this->byGlobalId[$site->getGlobalId()] );
                        unset( $this->byInternalId[$site->getInternalId()] );
                }
index 0c6aeb3..217f860 100644 (file)
@@ -151,6 +151,7 @@ class SiteObject extends ORMRow implements Site {
         *
         * @since 1.21
         *
+        * @throws MWException
         * @return string|false
         */
        public function getProtocol() {
@@ -439,7 +440,7 @@ class SiteObject extends ORMRow implements Site {
        }
 
        /**
-        * @see ORMRow::save
+        * @see IORMRow::save
         * @see Site::save
         *
         * @since 1.21
@@ -449,7 +450,7 @@ class SiteObject extends ORMRow implements Site {
         * @return boolean Success indicator
         */
        public function save( $functionName = null ) {
-               $dbw = wfGetDB( DB_MASTER );
+               $dbw = $this->table->getWriteDbConnection();
 
                $trx = $dbw->trxLevel();
 
@@ -495,6 +496,25 @@ class SiteObject extends ORMRow implements Site {
                return $success;
        }
 
+       /**
+        * @since 1.21
+        *
+        * @see ORMRow::onRemoved
+        */
+       protected function onRemoved() {
+               $dbw = $this->table->getWriteDbConnection();
+
+               $dbw->delete(
+                       'site_identifiers',
+                       array(
+                               'si_site' => $this->getId()
+                       ),
+                       __METHOD__
+               );
+
+               parent::onRemoved();
+       }
+
        /**
         * @see Site::setPath
         *
index 56d567e..a0ebfc1 100644 (file)
@@ -97,7 +97,7 @@ class Sites {
                if ( $source === 'cache' ) {
                        if ( $this->sites === false ) {
                                $cache = wfGetMainCache();
-                               $sites = $cache->get( 'sites-cache' );
+                               $sites = $cache->get( wfMemcKey( 'SiteList' ) );
 
                                if ( is_object( $sites ) ) {
                                        $this->sites = $sites;
@@ -170,7 +170,7 @@ class Sites {
                }
 
                $cache = wfGetMainCache();
-               $cache->set( 'sites-cache', $this->sites );
+               $cache->set( wfMemcKey( 'SiteList' ), $this->sites );
        }
 
        /**
index 8e528dc..6d27c1b 100644 (file)
@@ -130,6 +130,7 @@ class SpecialBookSources extends SpecialPage {
         * Determine where to get the list of book sources from,
         * format and output them
         *
+        * @throws MWException
         * @return string
         */
        private function showList() {
index 23cd9aa..eca62f2 100644 (file)
@@ -393,13 +393,13 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                        if( $title instanceof Title ) {
                                $rows[] = array(
                                        'wl_user' => $this->getUser()->getId(),
-                                       'wl_namespace' => ( $title->getNamespace() & ~1 ),
+                                       'wl_namespace' => MWNamespace::getSubject( $title->getNamespace() ),
                                        'wl_title' => $title->getDBkey(),
                                        'wl_notificationtimestamp' => null,
                                );
                                $rows[] = array(
                                        'wl_user' => $this->getUser()->getId(),
-                                       'wl_namespace' => ( $title->getNamespace() | 1 ),
+                                       'wl_namespace' => MWNamespace::getTalk( $title->getNamespace() ),
                                        'wl_title' => $title->getDBkey(),
                                        'wl_notificationtimestamp' => null,
                                );
@@ -427,7 +427,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                                        'watchlist',
                                        array(
                                                'wl_user' => $this->getUser()->getId(),
-                                               'wl_namespace' => ( $title->getNamespace() & ~1 ),
+                                               'wl_namespace' => MWNamespace::getSubject( $title->getNamespace() ),
                                                'wl_title' => $title->getDBkey(),
                                        ),
                                        __METHOD__
@@ -436,7 +436,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                                        'watchlist',
                                        array(
                                                'wl_user' => $this->getUser()->getId(),
-                                               'wl_namespace' => ( $title->getNamespace() | 1 ),
+                                               'wl_namespace' => MWNamespace::getTalk( $title->getNamespace() ),
                                                'wl_title' => $title->getDBkey(),
                                        ),
                                        __METHOD__
index 08d1517..85b9cf8 100644 (file)
@@ -140,7 +140,8 @@ class SpecialNewpages extends IncludableSpecialPage {
 
                        $feedType = $this->opts->getValue( 'feed' );
                        if( $feedType ) {
-                               return $this->feed( $feedType );
+                               $this->feed( $feedType );
+                               return;
                        }
 
                        $allValues = $this->opts->getAllValues();
index 0d2ac7e..1ea6e46 100644 (file)
@@ -432,9 +432,10 @@ class PageArchive {
         * be stuffed into old, otherwise the most recent will go into cur.
         *
         * @param $timestamps Array: pass an empty array to restore all revisions, otherwise list the ones to undelete.
-        * @param $comment String
         * @param $unsuppress Boolean: remove all ar_deleted/fa_deleted restrictions of seletected revs
         *
+        * @param $comment String
+        * @throws ReadOnlyError
         * @return Status, containing the number of revisions restored on success
         */
        private function undeleteRevisions( $timestamps, $unsuppress = false, $comment = '' ) {
@@ -826,7 +827,7 @@ class SpecialUndelete extends SpecialPage {
 
                if( $result->numRows() == 0 ) {
                        $out->addWikiMsg( 'undelete-no-results' );
-                       return;
+                       return false;
                }
 
                $out->addWikiMsg( 'undeletepagetext', $this->getLanguage()->formatNum( $result->numRows() ) );
index d5ce78d..74daf2a 100644 (file)
@@ -38,6 +38,8 @@ class AssembleUploadChunks extends Maintenance {
        }
 
        public function execute() {
+               $e = null;
+               wfDebug( "Started assembly for file {$this->getOption( 'filename' )}\n" );
                wfSetupSession( $this->getOption( 'sessionid' ) );
                try {
                        $user = User::newFromId( $this->getOption( 'userid' ) );
@@ -49,6 +51,7 @@ class AssembleUploadChunks extends Maintenance {
                        $upload->continueChunks(
                                $this->getOption( 'filename' ),
                                $this->getOption( 'filekey' ),
+                               // @TODO: set User?
                                RequestContext::getMain()->getRequest() // dummy request
                        );
 
@@ -59,6 +62,7 @@ class AssembleUploadChunks extends Maintenance {
                                        $this->getOption( 'filekey' ),
                                        array( 'result' => 'Failure', 'status' => $status )
                                );
+                               session_write_close();
                                $this->error( $status->getWikiText() . "\n", 1 ); // die
                        }
 
@@ -93,9 +97,12 @@ class AssembleUploadChunks extends Maintenance {
                                        'status' => Status::newFatal( 'api-error-stashfailed' )
                                )
                        );
-                       throw $e;
                }
                session_write_close();
+               if ( $e ) {
+                       throw $e;
+               }
+               wfDebug( "Finished assembly for file {$this->getOption( 'filename' )}\n" );
        }
 }
 
index 55209d4..c857f25 100644 (file)
@@ -141,12 +141,13 @@ class UploadFromStash extends UploadBase {
        /**
         * Stash the file.
         *
+        * @param $user User
         * @return UploadStashFile
         */
-       public function stashFile() {
+       public function stashFile( User $user = null ) {
                // replace mLocalFile with an instance of UploadStashFile, which adds some methods
                // that are useful for stashed files.
-               $this->mLocalFile = parent::stashFile();
+               $this->mLocalFile = parent::stashFile( $user );
                return $this->mLocalFile;
        }
 
index 7f430c5..70b6903 100644 (file)
@@ -332,7 +332,7 @@ class UploadFromUrl extends UploadBase {
                        'sessionKey' => $sessionKey,
                ) );
                $job->initializeSessionData();
-               $job->insert();
+               JobQueueGroup::singleton()->push( $job );
                return $sessionKey;
        }
 
index a72f98f..68d7d86 100644 (file)
@@ -172,19 +172,24 @@ class Language {
        );
 
        /**
-        * Get a cached language object for a given language code
+        * Get a cached or new language object for a given language code
         * @param $code String
         * @return Language
         */
        static function factory( $code ) {
-               if ( !isset( self::$mLangObjCache[$code] ) ) {
-                       if ( count( self::$mLangObjCache ) > 10 ) {
-                               // Don't keep a billion objects around, that's stupid.
-                               self::$mLangObjCache = array();
-                       }
-                       self::$mLangObjCache[$code] = self::newFromCode( $code );
-               }
-               return self::$mLangObjCache[$code];
+               global $wgLangObjCacheSize;
+
+               // get the language object to process
+               $langObj = isset( self::$mLangObjCache[$code] )
+                       ? self::$mLangObjCache[$code]
+                       : self::newFromCode( $code );
+
+               // merge the language object in to get it up front in the cache
+               self::$mLangObjCache = array_merge( array( $code => $langObj ), self::$mLangObjCache );
+               // get rid of the oldest ones in case we have an overflow
+               self::$mLangObjCache = array_slice( self::$mLangObjCache, 0, $wgLangObjCacheSize, true );
+
+               return $langObj;
        }
 
        /**
@@ -468,9 +473,13 @@ class Language {
         * getNsText() except with '_' changed to ' ', useful for
         * producing output.
         *
-        * @param $index string
+        * <code>
+        * $mw_ns = $wgContLang->getFormattedNsText( NS_MEDIAWIKI_TALK );
+        * echo $mw_ns; // prints 'MediaWiki talk'
+        * </code>
         *
-        * @return array
+        * @param int $index The array key of the namespace to return
+        * @return string Namespace name without underscores (empty string if namespace does not exist)
         */
        function getFormattedNsText( $index ) {
                $ns = $this->getNsText( $index );
index 79783cc..fed8835 100644 (file)
@@ -618,6 +618,8 @@ class LanguageConverter {
                if ( $wgDisableLangConversion ) {
                        return $text;
                }
+               // Reset converter state for a new converter run.
+               $this->mConvRuleTitle = false;
                return $this->recursiveConvertTopLevel( $text, $variant );
        }
 
index 0d50758..a3fd296 100644 (file)
@@ -1795,6 +1795,9 @@ $1",
 'rightslogtext' => 'هذا سجل بالتغييرات في صلاحيات المستخدمين.',
 'rightslogentry' => 'غير صلاحيات $1 من $2 إلى $3',
 'rightslogentry-autopromote' => 'تمت ترقيته تلقائيا من $2 إلى $3',
+'logentry-rights-rights' => 'غير $1 صلاحيات $3 من $4 إلى $5',
+'logentry-rights-rights-legacy' => 'غير $1 صلاحيات $3',
+'logentry-rights-autopromote' => 'تمت ترقية $1 تلقائياً من  $4 إلى $5',
 'rightsnone' => '(لا شيء)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -2041,6 +2044,7 @@ $1',
 'backend-fail-notsame' => 'يوجد بالفعل ملف غير متطابق في $1.',
 'backend-fail-invalidpath' => '$1 ليس مساراً صالحاً للتخزين.',
 'backend-fail-delete' => 'لم يمكن حذف الملف $1.',
+'backend-fail-describe' => 'لا يمكن تغيير البيانات التعريف (metadata) للملف " $1 ".',
 'backend-fail-alreadyexists' => 'الملف $1 موجود بالفعل.',
 'backend-fail-store' => 'لا يمكن تخزين الملف $1 في $2 .',
 'backend-fail-copy' => 'لا يمكن نسخ الملف  $1  إلى  $2 .',
@@ -2553,6 +2557,8 @@ $1',
 'enotif_mailer' => 'نظام {{SITENAME}} البريدي للإخطارات',
 'enotif_reset' => 'علم على كل الصفحات كمزارة',
 'enotif_impersonal_salutation' => 'مستخدم {{SITENAME}}',
+'enotif_subject_deleted' => 'الصفحة {{SITENAME}} $1 حذفها {{الجنس: $2 | $2 }}',
+'enotif_subject_created' => 'الصفحة {{SITENAME}}  $1  أنشأها {{الجنس: $2 | $2 }}',
 'enotif_lastvisited' => 'انظر $1 لكل التغييرات منذ زيارتك الأخيرة.',
 'enotif_lastdiff' => 'انظر $1 لرؤية هذا التغيير.',
 'enotif_anon_editor' => 'مستخدم مجهول $1',
@@ -3380,6 +3386,7 @@ $1',
 'markedaspatrollederror' => 'لا يمكن التعليم بالمراجعة',
 'markedaspatrollederrortext' => 'يجب عليك اختيار المراجعة التي تريد أن تشير أنها مراجعة',
 'markedaspatrollederror-noautopatrol' => 'لا يجوز لك تعليم تغييراتك الشخصية بعلامة المراجعة.',
+'markedaspatrollednotify' => 'هذا التغيير لـ $1  تم تعليمه كمراقب.',
 
 # Patrol log
 'patrol-log-page' => 'سجل الخفر',
@@ -3447,6 +3454,7 @@ $1',
 'hours' => '{{PLURAL:$1||ساعة واحدة|ساعتين|$1 ساعات|$1 ساعة}}',
 'days' => '{{PLURAL:$1||يوم واحد|يومين|$1 أيام|$1 يومًا|$1 يوم}}',
 'ago' => 'قبل $1',
+'just-now' => 'الآن فقط',
 
 # Bad image list
 'bad_image_list' => 'الصيغة كالتالي:
@@ -4179,6 +4187,7 @@ $5
 'version-license' => 'الرخصة',
 'version-poweredby-credits' => "تدار هذه الويكي ب'''[//www.mediawiki.org/ ميدياويكي]''', حقوق النشر © 2001-$1 $2.",
 'version-poweredby-others' => 'آخرون',
+'version-credits-summary' => 'نود أن نعرف بالأشخاص التالية أسماؤهم لمساهمتهم في [[خاص:نسخة|ميدياويكي]].',
 'version-license-info' => "ميدياويكي برنامج حر، يحق لك توزيعه و/أو تعديله وفقاً لبنود رخصة غنو العمومية كما نشرتها مؤسسة البرمجيات الحرة، الإصدار الثاني أو (وفقا لاختيارك أنت) أي إصدار لاحق.
 
 هذا البرنامج يوزع على أمل أن يكون مفيداً، ولكن '''دون أية ضمانات'''، بما في ذلك ضمانات '''التسويق''' أو '''الملاءمة لغرض معين'''. انظر رخصة غنو العمومية لمزيد من التفاصيل.
@@ -4398,4 +4407,6 @@ $5
 'duration-centuries' => '{{PLURAL: $1||قرن واحد|قرنان|$1 قرون|$1 قرنًا|$1 قرن}}',
 'duration-millennia' => '{{PLURAL: $1||ألفية واحدة|ألفيتان|$1 ألفيات|$1 ألفية}}',
 
+# Unknown messages
+'svg-long-error' => 'ملف SVG غير صالح: $1',
 );
index 29bc99d..b126bad 100644 (file)
@@ -221,7 +221,7 @@ $messages = array(
 'hidden-category-category' => 'ܣܕܪ̈ܐ ܛܘܫܝ̈ܐ',
 'category-subcat-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܗܢܐ ܣܕܪܐ ܦܪܥܝܐ ܕܐܬܐ ܒܠܚܘܕ.|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ {{PLURAL:$1|ܣܕܪܐ ܦܪܥܝܐ ܕܐܬܐ|$1 ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ ܕܐܬܝܢ}}، ܡܢ ܣܘܝܟܐ ܕ $2.}}',
 'category-subcat-count-limited' => 'ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ {{PLURAL:$1|ܣܕܪܐ ܦܪܥܝܐ ܗܢܐ|$1 ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ ܗܠܝܢ}}.',
-'category-article-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ {{PLURAL:$1|ܠܝܬ ܒܗ ܦܐܬܐ|ܐܝܬ ܒܗ ܦܐܬܐ ܗܕܐ|ܐܝܬ ܒܗ ܗܠܝܢ $1 ܦܐܬܬ̈ܐ}} ܡܢ ܣܘܝܟܐ ܕ$2.}}',
+'category-article-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܠܝܬ ܒܗ ܦܐܬܐ.|{{PLURAL:$1||ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܦܐܬܐ ܗܕܐ ܒܠܚܘܕ|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܗܠܝܢ $1 ܦܐܬܬ̈ܐ}} ܡܢ ܣܘܝܟܐ ܕ $2.}}',
 'category-article-count-limited' => '{{PLURAL:$1|ܦܐܬܐ ܗܕܐ|$1 ܦܐܬܬ̈ܐ ܗܠܝܢ}} ܒܣܕܪܐ ܗܢܐ.',
 'category-file-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܠܦܦܐ ܕܐܬܐ ܒܠܚܘܕ.|{{PLURAL:$1|ܠܦܦܐ ܕܐܬܐ ܐܝܬܘܗܝ|$1 ܠܦܦ̈ܐ ܕܐܬܝܢ ܐܝܬܝܗܘܢ}} ܒܣܕܪܐ ܗܢܐ، ܡܢ ܣܘܝܟܐ ܕ $2.}}',
 'category-file-count-limited' => 'ܐܝܬ {{PLURAL:$1|ܠܦܦܐ ܕܐܬܐ|$1 ܠܦܦ̈ܐ ܕܐܬܝܢ}} ܒܣܕܪܐ ܗܫܝܐ.',
@@ -420,9 +420,9 @@ $1',
 # Login and logout pages
 'logouttext' => "'''ܗܫܐ ܦܠܛܠܟ ܡܢ ܚܘܫܒܢܟ.'''
 
-ܡܨÜ\90 Ü\90ܢܬ Ü\90ܦܠÜ\9aܬ {{SITENAME}} Ü\90Ü\9dÜ\9f Ü¡Ü¦Ü Ü\9aÜ¢Ü\90 Ü Ü\90 Ü\9dÜ\95Ü\9dÜ¥Ü\90 Ü\90Ü\98 Ü¡Ü¨Ü\90 Ü\90Ü¢ܬ ܕ<span class='plainlinks'>[$1 ܬܥܘܠ]</span> ܒܚܘܫܒܢܐ ܥܝܢܗ ܐܘ ܐܝܟ ܡܦܠܚܢܐ ܐܚܪܢܐ.
+ܡܨܬ Ü\90ܦܠÜ\9aܬ {{SITENAME}} Ü\90Ü\9dÜ\9f Ü¡Ü¦Ü Ü\9aÜ¢Ü\90 Ü Ü\90 Ü\9dÜ\95Ü\9dÜ¥Ü\90 Ü\90Ü\98 Ü¡Ü¨ܬ ܕ<span class='plainlinks'>[$1 ܬܥܘܠ]</span> ܒܚܘܫܒܢܐ ܥܝܢܗ ܐܘ ܐܝܟ ܡܦܠܚܢܐ ܐܚܪܢܐ.
 
\9aÜ\95 Ü\9fÜ¡Ü\90 Ü¡Ü¢ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü¡Ü¬Ü\9aÜ\99Ü\9dÜ¢ Ü\90Ü\9dÜ\9f Ü\95Ü\97Ü\98 Ü\90ܢܬ Ü¥Ü Ü\9dÜ Ü\90 Ü¥Ü\95Ü¡Ü\90 Ü\95Ü\90ܣܦܩܬ Ü Ü¦Ü\90ܬܬÌ\88Ü\90 Ü Ü\92Ü\9dÜ\9fܬÌ\88Ü\90 Ü\95ܡܦÜ\90ܬܢÜ\90 Ü\95Ü\9dÜ Ü\9f",
\9aÜ\95 Ü\9fÜ¡Ü\90 Ü¡Ü¢ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü¡Ü¬Ü\9aÜ\99Ü\9dÜ¢ Ü\90Ü\9dÜ\9f Ü\95Ü\97Ü\98 Ü\90ܢܬ Ü¥Ü Ü\9dÜ Ü\90 Ü\90Ü\9dܬÜ\9dÜ\9f Ü¥Ü\95Ü¡Ü\90 Ü\95Ü\90ܣܦܩܬ Ü Ü¦Ü\90ܬܬÌ\88Ü\90 Ü Ü\92Ü\9dÜ\9fܬÌ\88Ü\90 Ü\95ܡܦÜ\90ܬܢÜ\90 Ü\95Ü\9dÜ Ü\9f.",
 'yourname' => 'ܫܡܐ ܕܡܦܠܚܢܐ:',
 'yourpassword' => 'ܡܠܬܐ ܕܥܠܠܐ:',
 'yourpasswordagain' => 'ܟܬܘܒ ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܬܐ ܐܚܪܬܐ:',
@@ -1662,7 +1662,7 @@ $1',
 'watchlistedit-normal-legend' => 'ܠܚܝ ܟܘܢܝ̈ܐ ܡܢ ܪ̈ܗܝܬܟ',
 'watchlistedit-normal-explain' => 'ܟܘܢܝ̈ܐ ܒܪ̈ܗܝܬܟ ܡܬܚܘܝܢ ܠܬܚܬ.
 ܠܠܚܝܐ ܕܟܘܢܝܐ, ܫܘܕܥ ܥܠ ܣܢܕܘܩܐ ܕܕܦܢܗ, ܘܕܘܫ "{{int:Watchlistedit-normal-submit}}".
-ܡܨÜ\90 Ü\90ܢܬ Ü\95[[Special:EditWatchlist/raw|ܬܫÜ\9aܠܦ ܪ̈ܗܝܬܐ ܦܛܝܪ̈ܬܐ]].',
+ܡܨܬ Ü\95[[Special:EditWatchlist/raw|ܬܫÜ\9aܠܦܬ ܪ̈ܗܝܬܐ ܦܛܝܪ̈ܬܐ]].',
 'watchlistedit-normal-submit' => 'ܠܚܝ ܟܘܢܝܐ',
 'watchlistedit-normal-done' => '{{PLURAL:$1|ܚܕ ܟܘܢܝܐ ܐܬܠܚܝ|$1 ܟܘܢܝ̈ܐ ܐܬܠܚܘܢ}} ܡܢ ܪ̈ܗܝܬܟ:',
 'watchlistedit-raw-title' => 'ܫܚܠܦ ܪ̈ܗܝܬܐ ܦܛܝܪ̈ܬܐ',
index e856159..d9d6b2d 100644 (file)
@@ -2372,7 +2372,7 @@ $1",
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => 'Collaboraciones del usuariu',
+'contributions' => 'Collaboraciones {{GENDER:$1|del usuariu|de la usuaria}}',
 'contributions-title' => "Contribuciones d'usuariu pa $1",
 'mycontris' => 'Collaboraciones',
 'contribsub2' => 'De $1 ($2)',
index b720c81..5cc4773 100644 (file)
@@ -58,13 +58,13 @@ $messages = array(
 'tog-watchlisthideown' => 'منیم دَییشیکلیکلریمی ایزله‌دیکلردن گیزلت',
 'tog-watchlisthidebots' => 'بوت دَییشیکلیکلرینی ایزله‌دیکلردن گیزلت',
 'tog-watchlisthideminor' => 'کیچیک دَییشیکلیکلری ایزله‌دیکلردن گیزلت',
-'tog-watchlisthideliu' => 'قئيدیاتلی ایستیفاده‌چیلرین رئداکته‌لرینی ایزله‌مه سياهیسیندا گیزلت',
-'tog-watchlisthideanons' => 'قئيدیاتدان کئچمه‌میش ایستیفاده‌چیلرین رئداکته‌لرینی ایزله‌مه سياهیسیندا گیزلت',
-'tog-watchlisthidepatrolled' => 'Ù\8aÙ\88Ø®Ù\84اÙ\86Û\8cÙ\84Ù\85Û\8cØ´ Ø±Ø¦Ø¯Ø§Ú©ØªÙ\87â\80\8cÙ\84رÛ\8c Ø§Û\8cزÙ\84Ù\87â\80\8cÙ\85Ù\87 Ø³Ù\8aاÙ\87Û\8cسÛ\8cÙ\86دا گیزلت',
-'tog-ccmeonemails' => 'گؤÙ\86دردÛ\8cÚ¯Û\8cÙ\85 Ù\85Û\8cÙ\84\85کتÙ\88بÙ\88Ù\86 Ù\86Ù\88سخÙ\87â\80\8cÙ\84رÛ\8cÙ\86Û\8c Ù\85Ù\86Ù\87 Ú¯Ø¤Ù\86در',
-'tog-diffonly' => 'Ù\88ئرسÛ\8cÙ\8aاÙ\84ارÛ\8cÙ\86 Ù\85Ù\88Ù\82اÙ\8aÛ\8cسÙ\87â\80\8cسÛ\8c Ø²Ø§Ù\85اÙ\86Û\8c ØµØ­Û\8cÙ\81Ù\87â\80\8câ\80\8cÙ\86Û\8cÙ\86 Ù\85ظÙ\85Ù\88Ù\86Ù\88Ù\86Ù\88 گؤسترمه',
-'tog-showhiddencats' => 'گیزلی کاتئقوریيالاری گؤستر',
-'tog-norollbackdiff' => 'گئری قايتاردیقدان سونرا، ائدیلمیش ديَشیکیک‌لری ديَشیکلیک‌لر سياهیسیندان سیل',
+'tog-watchlisthideliu' => 'گیرمیش ایستیفاده‌چیلرین دَییشیکلیکلرینی ایزله‌دیکلردن گیزلت',
+'tog-watchlisthideanons' => 'تانینمامیش ایستیفاده‌چیلرین دَییشیکلیکلرینی ایزله‌دیکلردن گیزلت',
+'tog-watchlisthidepatrolled' => 'Ù\86ظارتÙ\84Ù\86Ù\85Û\8cØ´ Ø¯Ù\8eÛ\8cÛ\8cØ´Û\8cÚ©Ù\84Û\8cÚ©Ù\84رÛ\8c Ø§Û\8cزÙ\84Ù\87â\80\8cدÛ\8cÚ©Ù\84ردÙ\86 گیزلت',
+'tog-ccmeonemails' => 'باشÙ\82ا Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8cÙ\84رÙ\87 Ú¯Ø¤Ù\86دردÛ\8cÚ¯Û\8cÙ\85 Ø§Û\8cÙ\85Û\8cÙ\84â\80\8cÙ\84رÛ\8cÙ\86 Ú©Ù\88Ù¾Û\8cÙ\84رÛ\8cÙ\86Û\8c Ù\85Ù\86Ù\87 Ú¯Ø¤Ù\86در',
+'tog-diffonly' => 'Ù\85Ù\88Ù\82اÛ\8cÛ\8cسÙ\87â\80\8cÙ\84ر Ø¢Ù\84Û\8cتÙ\86دا ØµØ­Û\8cÙ\81Ù\87â\80\8cÙ\84رÛ\8cÙ\86 Ø§Û\8cÚ\86Û\8cÙ\86دÙ\87â\80\8cÚ©Û\8cÙ\84رÛ\8cÙ\86Û\8c گؤسترمه',
+'tog-showhiddencats' => 'گیزلی بؤلمه‌لری گؤستر',
+'tog-norollbackdiff' => 'قایتاراندان سونرا موقاییسه گؤسترمه',
 
 'underline-always' => 'همیشه',
 'underline-never' => 'هئچ واخت',
@@ -90,7 +90,7 @@ $messages = array(
 'tue' => 'سه‌شنبه',
 'wed' => 'چهارشنبه',
 'thu' => 'پنج‌شنبه',
-'fri' => 'جÙ\88Ù\85ا',
+'fri' => 'جÙ\88Ù\85عÙ\87',
 'sat' => 'شنبه',
 'january' => 'ژانویه',
 'february' => 'فئوریه',
@@ -143,7 +143,7 @@ $messages = array(
 'category-article-count-limited' => 'بو بؤلمه‌ده، آشاغیداکی {{PLURAL:$1|یارپاق|$1 یارپاق}} واردیر.',
 'category-file-count' => 'بو بؤلمه‌ده {{PLURAL:$2|یالنیز|}} آشاغیداکی {{PLURAL:$1|بیر|$1}} فایل وار؛ بو بؤلمه‌نین جمعاً $2 فایلی وار.',
 'category-file-count-limited' => 'بؤلمه‌ده، بو {{PLURAL:$1|فایل|$1 فایل}} واردیر.',
-'listingcontinuesabbrev' => '(داوام)',
+'listingcontinuesabbrev' => '(قالانی)',
 'index-category' => 'ایندئکس‌لشدیریلمیش یارپاقلار',
 'noindex-category' => 'ایندئکس‌لشدیریلمه‌ین یارپاقلار',
 'broken-file-category' => 'فایل‌لارا قیریلمیش باغلانتیلاری اولان یارپاقلار',
@@ -186,9 +186,9 @@ $messages = array(
 'namespaces' => 'آدلار فضاسی',
 'variants' => 'واریانتلار',
 
-'navigation-heading' => 'ناویگاسيون مئنوسو',
+'navigation-heading' => 'دولانماق مِنوسو',
 'errorpagetitle' => 'خطا',
-'returnto' => '$1-ه/ا قاییت',
+'returnto' => '$1-ه قاییت.',
 'tagline' => '{{SITENAME}} سایتیندان',
 'help' => 'یاردیم',
 'search' => 'آختار',
@@ -204,39 +204,39 @@ $messages = array(
 'view' => 'باخ',
 'edit' => 'دَییشدیر',
 'create' => 'یارات',
-'editthispage' => 'بو صحیفه‌‌نی دَییش',
+'editthispage' => 'بو صحیفه‌‌نی دَییشدیر',
 'create-this-page' => 'بو صحیفه‌‌نی يارات',
 'delete' => 'سیل',
 'deletethispage' => 'بو صحیفه‌‌نی سیل',
 'undelete_short' => '{{PLURAL:$1|بیر دَییشیکلیگی|$1 دَییشیکلیگی}} برپا ائت',
 'viewdeleted_short' => '{{PLURAL:$1|بیر|$1}} سیلینمیش دَییشیکلیگی گؤستر',
-'protect' => 'Ù\85Ù\88حاÙ\81ظÙ\87â\80\8câ\80\8c Ø§Ø¦Øª',
-'protect_change' => 'ديَیش',
-'protectthispage' => 'بÙ\88 ØµØ­Û\8cÙ\81Ù\87â\80\8câ\80\8cÙ\86Û\8c Ù\85Ù\88حاÙ\81ظÙ\87â\80\8câ\80\8c Ø§Ø¦Øª',
-'unprotect' => 'Ù\85Ù\88حاÙ\81ظÙ\87â\80\8câ\80\8cÙ\86Û\8c Ú©Ù\86ارÙ\84اشدیر',
+'protect' => 'Ù\82Ù\88رÙ\88Ù\85اÙ\82',
+'protect_change' => 'ديَیشدیر',
+'protectthispage' => 'بÙ\88 ØµØ­Û\8cÙ\81Ù\87â\80\8câ\80\8cÙ\86Û\8c Ù\82Ù\88رÙ\88',
+'unprotect' => 'Ù\82Ù\88رÙ\88Ù\85اغÛ\8c Ø¯Ù\8eÛ\8cÛ\8cشدیر',
 'unprotectthispage' => 'بو یارپاغین قوروماسینی دَییشدیر',
 'newpage' => 'يئنی صحیفه‌‌',
-'talkpage' => 'بو یارپاغا گؤره دانیشیق آپارین',
+'talkpage' => 'بو صحیفه‌یه گؤره دانیشیق آپارین',
 'talkpagelinktext' => 'دانیشیق',
 'specialpage' => 'اؤزل صحیفه',
 'personaltools' => 'شخصی آراجلار',
 'postcomment' => 'يئنی بؤلوم',
-'articlepage' => 'مقاله یه باخین',
+'articlepage' => 'مقالهیه باخین',
 'talk' => 'دانیشیق',
 'views' => 'گؤرونوشلر',
 'toolbox' => 'آراجلار قوتوسو',
-'userpage' => 'ایستیفاده‌چی صحیفه‌‌سینی گؤستر',
+'userpage' => 'ایستیفاده‌چی صحیفه‌‌سینی باخین',
 'projectpage' => 'پروژه صحیفه‌سینه باخین',
 'imagepage' => 'فایل صحیفه‌سینه باخین',
 'mediawikipage' => 'مئساژ صحیفه‌سینه باخین',
-'templatepage' => 'شابلون صحیفه‌سینه  باخین',
+'templatepage' => 'شابلون صحیفه‌سینه باخین',
 'viewhelppage' => 'یاردیم صحیفه‌سینه باخین',
 'categorypage' => 'بؤلمه صحیفه‌‌سینی گؤستر',
 'viewtalkpage' => 'دانیشیغا باخین',
 'otherlanguages' => 'آیری دیللرده',
 'redirectedfrom' => '($1 صحیفه‌‌سیندن يؤنلن‌دیریلمیش‌دیر)',
 'redirectpagesub' => 'یوللاندیرما صحیفه‌سی',
-'lastmodifiedat' => 'بۇ صحیفه‌‌ سوْنونجو دفعه‌‌ $1، $2 تاریخینده دَییشیلیب.',
+'lastmodifiedat' => 'بو صحیفه‌‌ سون دفعه‌‌ $1، $2 چاغیندا دَییشیلیب‌دیر.',
 'viewcount' => 'بو یارپاق {{PLURAL:$1|بیر|$1}} دفعه گؤرونوب‌دور.',
 'protectedpage' => 'قورونموش یارپاق',
 'jumpto' => 'آتلان:',
@@ -248,7 +248,7 @@ $messages = array(
 
 $1',
 'pool-timeout' => 'قیفیلا دؤزمک واختی قورتاردی',
-'pool-queuefull' => 'چیخاریش صحیفه‌‌سی دولودور',
+'pool-queuefull' => 'مخزن صفی دولودور',
 'pool-errorunknown' => 'تانینمامیش خطا',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
@@ -258,8 +258,8 @@ $1',
 'copyrightpage' => '{{ns:project}}:کوپی حاقی',
 'currentevents' => 'ایندیکی اولایلار',
 'currentevents-url' => 'Project:ایندیکی اولایلار',
-'disclaimers' => 'مسئولیتدن ایمتیناع',
-'disclaimerpage' => 'Project:مسولیتدن ایمتیناع',
+'disclaimers' => 'رد ائتمک',
+'disclaimerpage' => 'Project:عمومی رد ائتمک',
 'edithelp' => 'ديَیشیکلیک‌لر اوچون یاردیم',
 'edithelppage' => 'Help:دَییشدیرمه',
 'helppage' => 'Help:ایچینده‌کیلر',
@@ -279,10 +279,10 @@ $1',
 'versionrequiredtext' => 'بو یارپاغی ایشلتدماغا، مئدیاویکی یازیلیمینین $1 نوسخه‌سی لازیم‌دیر.
 [[Special:Version|نوسخه یارپاغینا]] باخین.',
 
-'ok' => 'تاÙ\85اÙ\85',
+'ok' => 'اÙ\88Ù\84دÙ\88',
 'retrievedfrom' => '«$1»-دن آلینمیشدیر',
-'youhavenewmessages' => 'سیزین $1 ($2) وارینیز.',
-'newmessageslink' => 'بیلدیرنیز',
+'youhavenewmessages' => 'سیزین $1 ($2) وارینیزدیر.',
+'newmessageslink' => 'یئنی مئساژلار',
 'newmessagesdifflink' => 'سون دَییشیکلیک',
 'youhavenewmessagesfromusers' => 'سیزین {{PLURAL:$3|بیر باشقا ایشلدن‌دن|$3 ایشلدن‌دن}} $1 وارینیزدیر ($2).',
 'youhavenewmessagesmanyusers' => 'سیزین چوخلو ایشلدنلردن $1 وارینیزدیر ($2).',
@@ -290,26 +290,26 @@ $1',
 'newmessagesdifflinkplural' => 'سون {{PLURAL:$1|دَییشیکلیک|دَییشیکلیکلر}}',
 'youhavenewmessagesmulti' => '$1-دا یئنی بیلدیرینیز وار.',
 'editsection' => 'دَییشدیر',
-'editold' => 'دَییش',
-'viewsourceold' => 'قایناقا باخ',
+'editold' => 'دَییشدیرمک',
+'viewsourceold' => 'قایناغا باخ',
 'editlink' => 'دَییشدیر',
 'viewsourcelink' => 'قایناغا باخ',
 'editsectionhint' => 'بؤلومو دَییشدیر: $1',
-'toc' => 'ایچینده‌کیلر',
+'toc' => 'ایچینده‌کیلر',
 'showtoc' => 'گؤستر',
 'hidetoc' => 'گیزلت',
-'collapsible-collapse' => 'گیزلت',
-'collapsible-expand' => 'گئنشتیرمه',
+'collapsible-collapse' => 'دارالت',
+'collapsible-expand' => 'گئنیشلندیر',
 'thisisdeleted' => '$1-نا باخ یا اونو قایتار؟',
 'viewdeleted' => '$1 گؤستریلسین؟',
 'restorelink' => '{{PLURAL:$1|بیر سیلینمیش دَییشیکلیک|$1 سیلینمیش دَییشیکلیکلر}}',
 'feedlinks' => 'بسلمه',
 'feed-invalid' => 'گئچرسیز آبونه کانال جورو.',
 'feed-unavailable' => 'سیندیکاسیا خطلری ال‌ده دئییل‌لر',
-'site-rss-feed' => '$1 آراس اس اوچون یئمک',
-'site-atom-feed' => '$1 آتومات بسله‌مه‌سی',
-'page-rss-feed' => '$1 آراس اس اوچون یئمک',
-'page-atom-feed' => '$1 آتوم فید',
+'site-rss-feed' => '$1 آراِس‌اِس فید',
+'site-atom-feed' => '$1 آتوم فید',
+'page-rss-feed' => '«$1» آراِس‌اِس فید',
+'page-atom-feed' => '«$1» آتوم فید',
 'red-link-title' => '$1 (صحیفه یوخدور)',
 'sort-descending' => 'آزالان سیرالاماق',
 'sort-ascending' => 'چوخالان سیرالاماق',
@@ -317,7 +317,7 @@ $1',
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'مقاله',
 'nstab-user' => 'ایستیفاده‌چی صحیفه‌سی',
-'nstab-media' => 'مئدیا یارپاقی',
+'nstab-media' => 'مئدیا صحیفه‌سی',
 'nstab-special' => 'اؤزل صحیفه',
 'nstab-project' => 'پروژه صحیفه‌سی',
 'nstab-image' => 'فایل',
@@ -327,7 +327,7 @@ $1',
 'nstab-category' => 'بؤلمه',
 
 # Main script and global functions
-'nosuchaction' => 'بو جور چالیشم مؤوجود دئيیل.',
+'nosuchaction' => 'بئله چالیشما یوخدور',
 'nosuchactiontext' => 'URL-ده گؤستریلن ایش گئچرسیزدیر.
 اولا بیلر کی URL-ی یانلیش یازیب یوخسا یانلیش باغلانتی‌لا گلمیشسینیز.
 همده بو، {{SITENAME}} سایتی ایشلدن یازیلیمین خطاسینی گؤستره بیلر.',
@@ -361,8 +361,8 @@ $1',
 
 اگر نیيه بۇ دئيیلسه، پروْقرامدا بیر سهو ایله قارشیلاشمیش اوْلا بیلرسینیز. 
 خاهیش ائدیریک بۇنو بیر [[Special:ListUsers/sysop|administrator]]، URL نوْت ائده‌رک گؤندرین.',
-'missingarticle-rev' => '(تفتیش#: $1)',
-'missingarticle-diff' => '(فرق: $1, $2)',
+'missingarticle-rev' => '(نوسخه نومره‌سی: $1)',
+'missingarticle-diff' => '(فرق: $1، $2)',
 'readonly_lag' => 'ایکینجی درجه‌لی دیتابیس خیدمت‌چیلری، آنا دیتابیسه یئتیشماغا گؤره، بو دیتابیس اوتوماتیک باغلانیب‌دیر',
 'internalerror' => 'ایچ خطاسی',
 'internalerror_info' => 'ایچ خطاسی: $1',
@@ -426,15 +426,16 @@ $2',
 'virus-unknownscanner' => 'تانینمامیش آنتی‌ویروس:',
 
 # Login and logout pages
-'logouttext' => "'سیستئم‌دن چیخدینیز.'
+'logouttext' => "'''سیز ایندی سیستِم‌دن چیخدینیز.'''
 
-سیز {{SITENAME}} سایتینی آنونیم اولا‌راق ایستیفاده ائتمه‌یه داوام ائده بیلر و یا عینی، یاخود باشقا ایستیفاده‌چی آدی ایله <span class='plainlinks'>[$1 یئنی دن داخیل اولا]</span> بیلرسینیز. وئب-براوزئرین کئش یادداشینی تمیزلیندک بعضی صحیفه‌لر هله ده سیستئمده ایمیشسینیز کیمی گؤرونه بیلر.",
-'welcomeuser' => 'خوش گلمیسینیز, $1!',
+سیز {{SITENAME}}-ی تانینمامیش اولاراق ایشلده بیلرسینیز، یوخسا همن ایستیفاده‌چی آدی یا باشقا ایستیفاده‌چی آدی ایله <span class='plainlinks'>[$1یئنی‌دن گیریش]</span> ائده بیلرسینیز.
+بونا دیقت ائدین کی بعضی صحیفه‌لر، کَش-ینیزی سیلمه‌میشه کیمی، هله ده سیزین گیریش ائتدیگینیز کیمی گؤستریله‌جکلر.",
+'welcomeuser' => 'خوش گلمیسینیز، $1!',
 'welcomecreation-msg' => 'حسابینیز آچیلدی.
 [[Special:Preferences|{{SITENAME}}ترجیحلر]] دییشدیرمیی اونوتمایین.',
 'yourname' => 'ایستیفاده‌چی آدی:',
-'yourpassword' => 'رمز',
-'yourpasswordagain' => 'پسووردو یئنی‌دن یاز',
+'yourpassword' => 'پسوورد:',
+'yourpasswordagain' => 'رمزی یئنی‌دن یازین:',
 'remembermypassword' => 'بو بیلگی‌سایاردا منیم گیریشیمی (چوخو $1 {{PLURAL:$1|گون}}ه قدر) یاددا ساخلا',
 'securelogin-stick-https' => 'گیرندن سونرا، HTTPS-ه باغلی قال',
 'yourdomainname' => 'سیزین دامنه:',
@@ -508,8 +509,8 @@ $2',
 'emailauthenticated' => 'ایمیل آدرسینیز $3 تاریخینده ساعات $2-ده دوغرولانیب‌دیر.',
 'emailnotauthenticated' => 'سیزین ایمیل آدرسینیز هله دوغرولانماییب‌دیر.
 آشاغیداکی اؤزل‌لیکلر اوچون هئچ بیر ایمیل گؤندریلمه‌یه‌جک‌دیر.',
-'noemailprefs' => 'بÙ\88 Ø®Û\8cدÙ\85تÙ\84ردÙ\86 Ù\8aارارÙ\84اÙ\86Ù\85اÙ\82 Ø§Ù\88Ú\86Ù\88Ù\86 ØªØ±Ø¬Û\8cØ­ Ù\84رÛ\8cÙ\86دا Ø§Ø¦-Ù\85کتÙ\88ب Ø§Ù\88Ù\86Ù\88اÙ\86Û\8cÙ\86Û\8c Ú¯Ø¤Ø³ØªØ±.',
-'emailconfirmlink' => 'ایمیل-پوست اونوانینی تصدیق ائت',
+'noemailprefs' => 'بÙ\88 Ø§Ø¤Ø²Ù\84â\80\8cÙ\84Û\8cÚ©Ù\84ر Ø§Û\8cØ´Ù\84Ù\87â\80\8cÙ\85Ú© Ø§Ù\88Ú\86Ù\88Ù\86Ø\8c ØªØ±Ø¬Û\8cØ­â\80\8cÙ\84رÛ\8cÙ\86Û\8cزدÙ\87 Ø§Û\8cÙ\85Û\8cÙ\84 Ø¢Ø¯Ø±Ø³Û\8cÙ\86Û\8cزÛ\8c Ù\88ئرÛ\8cÙ\86.',
+'emailconfirmlink' => 'ایمیل آدرسینیزی دوغرولایین',
 'invalidemailaddress' => 'بو ایمیل آدرس، یانلیش فورمتی اولدوغو اوچون، قبول اولماز.
 لوطفاً دوزگون فورمت‌لی آدرس وئرین، یوخسا اونو بوش بوراخین.',
 'cannotchangeemail' => 'حساب ایمیل آدرسلری بو ویکی‌ده دَییشیلنمزلر.',
@@ -615,7 +616,7 @@ $2
 'watchthis' => 'بو صفحه‌نی ایزله',
 'savearticle' => 'صحیفه‌نی قئید ائت',
 'preview' => 'اؤن‌گؤستریش',
-'showpreview' => 'اؤÙ\86‌گؤستریش',
+'showpreview' => 'سÛ\8cÙ\86Û\8cÙ\82 ‌گؤستریش',
 'showlivepreview' => 'دیری اؤن‌گؤستریش',
 'showdiff' => 'دَییشیکلیکلری گؤستر',
 'anoneditwarning' => "'''دیقت:''' سیز سیستئمه گیرمه‌میسینیز. سیزین آی‌پی آدرسینیز بو صفحه‌نین دییشیک تاریخچه‌سین‌ده یازیلاجاق‌دیر.",
@@ -787,12 +788,13 @@ $2
 'edit-already-exists' => 'یئنی صحیفنی یاراتماق مومکون دئییل.
 بئله کی، بو آددا صحیفه آرتیق مؤوجوددور.',
 'defaultmessagetext' => 'دفالت دانیشیق متنی',
+'content-failed-to-parse' => 'تجزیه محتوای $2  مدل اوچون $1: $3 موفقیت اله گلمه دی',
 'invalid-content-data' => 'اعتبارسیز مضمون معلوماتی',
 'content-not-allowed-here' => '"$1" مقاله‌سینه، [[$2]] صحیفه‌سینده ایجازه وئریلممیش دیر.',
 
 # Content models
-'content-model-wikitext' => 'ویکی متن',
-'content-model-text' => 'ساده متن',
+'content-model-wikitext' => 'ویکی‌یازی',
+'content-model-text' => 'ساده یازی',
 'content-model-javascript' => 'جاوااسکریپت',
 'content-model-css' => 'سی‌اس‌اس',
 
@@ -815,6 +817,8 @@ $2
 'expansion-depth-exceeded-category' => 'گئنیشلمه درین‌لیگی آشیلان صحیفه‌لر',
 'expansion-depth-exceeded-warning' => 'صحیفه گئنیشلنمه درین‌لیگی آشیلدی',
 'parser-unstrip-loop-warning' => 'تکرارلاما دونمه سی قبول ائدیلدی',
+'parser-unstrip-recursion-limit' => 'حداکثر ارجاع دستور دا unstrip تجاوز گئچیب دیر ($1)',
+'converter-manual-rule-error' => 'خطا ال مبدیلی قانون لاریندا',
 
 # "Undo" feature
 'undo-success' => 'بو دَییشیک‌لیک گئری آلینا بیلر. لطفاً آشاغی‌داکی موقاییسه ائتمیی نظارت ائدین، حقیقتن بو دییشیک‌لیگی ائتمک ایستدیگینیزدن امین اولون و صحیفنی یازا‌راق بیر اوولکی دییشیک‌لیگی گئرییه آلین.',
@@ -823,7 +827,7 @@ $2
 'undo-summary' => '$1 دییشیک‌لیک [[Special:Contributions/$2|$2]] ([[User talk:$2|دانیشیق]]) طرفین‌دن گئری آلیندی​​.',
 
 # Account creation failure
-'cantcreateaccounttitle' => 'حساب آچیلمیر.',
+'cantcreateaccounttitle' => 'حساب یارادماق اولمور',
 'cantcreateaccount-text' => "بو ای پی عنوانین‌دان ('$1) ایستیفاده‌چی حسابی یارادیلماسی [[User:$3|$3]] طرفین‌دن انگللنمیش‌دیر.
 
 $3 طرفین‌دن وئریلن سبب '$2",
@@ -845,23 +849,23 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'page_last' => 'سون',
 'histlegend' => "فرقلری سئچمه: موقاییسه ائتمک ایسته‌دیگینیز دییشیک‌لیکلرین یانینداکی گیرده دویمه‌لره علامت قویون و سونرا Enter-ی ووروب یوخسا آشاغیداکی اویمه‌نی وورون.<br />
 آچیقلاما:'''({{int:cur}})''' =سون نوسخه ایله فرقلر ، '''({{int:last}})''' = اؤنجه‌کی نوسخه ایله فرقلر، '''{{int:minoreditletter}}''' = کیچیک دییشیک‌لیک.",
-'history-fieldset-title' => 'Ú©ئچمیشی آختار',
-'history-show-deleted' => 'Û\8cاÙ\86Ù\84Û\8cز Ø³Û\8cÙ\84Û\8cÙ\86Ù\86â\80\8cلر',
-'histfirst' => 'ان یئنی',
-'histlast' => 'اÙ\86 Ø§Ø³کی',
+'history-fieldset-title' => 'Ú¯ئچمیشی آختار',
+'history-show-deleted' => 'Û\8cاÙ\84Ù\86Û\8cز Ø³Û\8cÙ\84Û\8cÙ\86Ù\8eÙ\86لر',
+'histfirst' => 'ان قاباقکی',
+'histlast' => 'اÙ\86 Ø³Ù\88Ù\86راکی',
 'historysize' => '({{PLURAL:$1|بیر|$1}} بایت)',
 'historyempty' => '(بوش)',
 
 # Revision feed
 'history-feed-title' => 'دَییشیکلیکلر گئچمیشی',
 'history-feed-description' => 'ویکی‌ده بو صحیفه اوچون نوسخه‌لر گئچمیشی',
-'history-feed-item-nocomment' => '$1 دن $2',
+'history-feed-item-nocomment' => '$2-ده $1',
 'history-feed-empty' => 'ایسته‌دیگینیز صحیفه یوخدور.
 اولا بیلر کی بو ویکی‌دن سیلینیب یوخسا آدی دَییشیلیب‌دیر.
 ایلگیلی یئنی صحیفه‌لری تاپماق اوچون [[Special:Search|بو ویکی‌ده آختارماغا چالیشین]].',
 
 # Revision deletion
-'rev-deleted-comment' => '(شرحÙ\84ر سیلیندی)',
+'rev-deleted-comment' => '(دÙ\8eÛ\8cÛ\8cشدÛ\8cرÙ\85Ú© Ù\82Û\8cساسÛ\8c سیلیندی)',
 'rev-deleted-user' => '(ایستیفاده‌چی آدی سیلیندی)',
 'rev-deleted-event' => '(قئيد سیلیندی)',
 'rev-deleted-user-contribs' => '[ایستیفاده‌چی آدی و يا ای-پی اونوانی سیلیندی - ديَیشیکلیک چالیشمالاردان چیخاریلدی]',
@@ -891,8 +895,8 @@ $3 طرفین‌دن وئریلن سبب '$2",
 بیر خیدمتله اولا‌راق بو دییشیک‌لیگی گؤره بیلرسینیز؛ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} دایاندیرما گوندلیگینده] دئتال‌لار اولا بیلر.",
 'rev-delundel' => 'گؤستر/گیزلت',
 'rev-showdeleted' => 'گؤستر',
-'revisiondelete' => 'صحیفه‌‌نین وئرسیيالارینی سیل/برپا ائت',
-'revdelete-nooldid-title' => 'هدف ديَیشیکلیگی کئچرسیزدیر',
+'revisiondelete' => 'نوسخه‌لری سیل/قایتار',
+'revdelete-nooldid-title' => 'هدف نوسخه گئچرسیزدیر',
 'revdelete-nooldid-text' => 'بو فونکسیانی حیاتا کئچیرمک اوچون مویین هدف دییشیک‌لیک و یا دئغیشیکیلئرینیز یوخ. تقدیم ائدیلمیش اولان رئویزیون مؤوجود دئییل، و یا مؤوجود رئویزیونو گیزلتمه‌یه چالیشیرسینیز.',
 'revdelete-nologtype-title' => 'هئچ بیر قئيد تیپی وئریلمه‌دی',
 'revdelete-nologtype-text' => 'بو عملیاتی دؤوره‌يه سوخماق اوچون بیر قئيد تیپی ایفاده ائتمه‌دینیز.',
@@ -909,7 +913,7 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'revdelete-suppress-text' => "ساخلاما 'یالنیز آشاغی‌داکی حال‌لار اوچون ایستیفاده ائدیلمه‌لی‌دیر:
 * اویگون‌سوز فردی معلومات
 *:' ائو اونوان‌لاری و تئلئفون نؤمره‌لری، سوسیال تهلوکه‌سیزلیک نؤمره‌لری، و س.'",
-'revdelete-legend' => 'محدودیتلری موعيينلشدیر:',
+'revdelete-legend' => 'گؤرونوش محدودیتلری قوی:',
 'revdelete-hide-text' => 'صحیفه‌‌نین بو وئرسیياسی‌نین متنینی گیزله',
 'revdelete-hide-image' => 'فایلین ایچینده‌کیلرینی گیزلت',
 'revdelete-hide-name' => 'حرکتی و مقصدی گیزله‌مک',
@@ -921,7 +925,7 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'revdelete-radio-unset' => 'یوخ',
 'revdelete-suppress' => 'بیلگی‌لری ایداره‌چیلردن ده گیزله',
 'revdelete-unsuppress' => 'برپا اولونان وئرسیا‌لار اوزرین‌دن محدودیت‌لری قال‌دیر',
-'revdelete-log' => 'ندن',
+'revdelete-log' => 'ندن:',
 'revdelete-submit' => 'سئچیلمیش {{PLURAL:$1|نوسخه|نوسخه لری}} تطبیق ائت',
 'revdelete-success' => "'نوسخه لرین گؤرونوشو یئنیلندی.'",
 'revdelete-failure' => "'نوسخه لرین گؤرونوشو دییش‌دیریله بیلمز:'$1",
@@ -929,8 +933,8 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'logdelete-failure' => "'''ژورنالین گؤرونوشو تنزیملنمه‌ییب:'''
 $1",
 'revdel-restore' => 'گؤرونوشو دییش',
-'revdel-restore-deleted' => 'سیلینمیش دئیشیلیک‌لر',
-'revdel-restore-visible' => 'گؤرونن دوزه‌لیشلر',
+'revdel-restore-deleted' => 'سیلینمیش نوسخه‌لر',
+'revdel-restore-visible' => 'گؤرونن نوسخه‌لر',
 'pagehist' => 'صحیفه‌‌نین گئچمیشی',
 'deletedhist' => 'سیلین‌میش گئچمیشی',
 'revdelete-hide-current' => 'تاریخ $2 و ساعات $1-ده‌کی آیتئمی گیزلدمک خطاسی: بو ایندیکی نوسخه‌دیر و گیزلدیلنمز.',
@@ -947,7 +951,7 @@ $1",
 ** اویغون‌سوز ایستیفاده‌چی آدی
 ** ایفتیرا احتیمالی اولان بیلگیلر',
 'revdelete-otherreason' => 'آیری/آرتیق دلیل:',
-'revdelete-reasonotherlist' => 'آیری فیکیرلر',
+'revdelete-reasonotherlist' => 'آیری دلیل‌لر',
 'revdelete-edit-reasonlist' => 'سیلمک دلیل‌لرینی دَییشدیر',
 'revdelete-offender' => 'نوسخه یازاری:',
 
@@ -988,7 +992,7 @@ $1",
 'mergelogpagetext' => 'آشاغدی‌دا، ان سون صحیفه بیرلشدیریلمه‌لری گؤستریلیر.',
 
 # Diffs
-'history-title' => '"$1" صحیفه‌سی‌نین کئچمیشی',
+'history-title' => '«$1»-ین گئچمیشی',
 'difference-title' => '«$1» نوسخه‌لرینین آراسینداکی فرقلری',
 'difference-title-multipage' => '«$1» و «$2» صحیفه‌لرین آراسینداکی فرقلر',
 'difference-multipage' => '(صحیفه‌لر آراسینداکی فرقلر)',
@@ -1014,15 +1018,15 @@ $1",
 'notitlematches' => 'عینی صحیفه باشلیغی تاپیلمادی',
 'textmatches' => 'یازی عینی‌دیر',
 'notextmatches' => 'هئچ بیر بنزر صحیفه یازی‌سی تاپیلمادی',
-'prevn' => 'اولکی{{PLURAL:$1|$1}}',
-'nextn' => 'سونراکی{{PLURAL:$1|$1}}',
-'prevn-title' => 'اولکی بیر $1 {{PLURAL:$1|نتیجه}}',
-'nextn-title' => 'سونراکی $1 {{PLURAL:$1|سونوج|سونوجلار}}',
+'prevn' => 'اؤنجه‌کی {{PLURAL:$1|$1}}',
+'nextn' => 'سونراکی {{PLURAL:$1|$1}}',
+'prevn-title' => 'قاباقکی {{PLURAL:$1|بیر|$1}} نتیجه',
+'nextn-title' => 'سونراکی {{PLURAL:$1|بیر|$1}} سونوج',
 'shown-title' => 'هر صحیفه‌ده {{PLURAL:$1|بیر|$1}} نتیجه گؤستر',
 'viewprevnext' => 'گؤستر ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'آختارماق تنظیملری',
 'searchmenu-exists' => "'''\"[[:\$1]]\" آدلی صحیفه بو ویکی‌ده وار.'''",
-'searchmenu-new' => "'''بو ویکیده \"[[:\$1]]\" صحیفه‌‌سینی يارات !'''",
+'searchmenu-new' => "'''بو ویکی‌ده «[[:$1]]» صحیفه‌‌سینی يارات!'''",
 'searchhelp-url' => 'Help:ایچینده‌کیلر',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1| بو اؤن‌اک ایله اولان صحیفه‌لری آختار]]',
 'searchprofile-articles' => 'مقاله‌لر',
@@ -1030,9 +1034,9 @@ $1",
 'searchprofile-images' => 'مولتی‌مئدیا',
 'searchprofile-everything' => 'هرشئی',
 'searchprofile-advanced' => 'گلیشمیش',
-'searchprofile-articles-tooltip' => '$1 ده / دا آختار',
-'searchprofile-project-tooltip' => '$1 ده / دا آختار',
-'searchprofile-images-tooltip' => 'فایل اوچون آختار',
+'searchprofile-articles-tooltip' => '$1-ده آختار',
+'searchprofile-project-tooltip' => '$1-ده آختار',
+'searchprofile-images-tooltip' => 'فایل‌لار اوچون آختار',
 'searchprofile-everything-tooltip' => 'بوتون متنلری آختار (دانیشیق صحیفه‌لری اولماقلا)',
 'searchprofile-advanced-tooltip' => 'تاپشیریلان صحیفه فضالاریندا آختار',
 'search-result-size' => '$1 ({{PLURAL:$2|۱ سؤزجوک|$2 سؤزجوک}})',
@@ -1054,7 +1058,7 @@ $1",
 'showingresultsheader' => "'''$4''' اوچون {{PLURAL:$5|'''$3'''-دن '''$1''' نتیجه|'''$3'''-دن '''$1-$2''' نتیجه}}",
 'nonefound' => "'''دیقت:''' یالنیز بعضی آدفضالاری آختاریلیر. سورغونوزو ''all:'' اؤن‌اکی‌نی آرتیرماقلا بوتون یئرلرده (او جومله‌دن دانیشیق صحیفه‌لری، شابلونلار و سونرا) آختارین، یوخسا ایسته‌دیگینیز آدفضاسینین آدینی اؤن‌اک کیمی آرتیرین و یالنیز اوردا آختارین.",
 'search-nonefound' => 'سیزین سورونوزا اویغون نتیجه تاپیلمادی.',
-'powersearch' => 'اؤزل آختاریش',
+'powersearch' => 'گلیشمیش آختاریش',
 'powersearch-legend' => 'گلیشمیش آختاریش',
 'powersearch-ns' => 'آدفضالاریندا آختار',
 'powersearch-redir' => 'یوللاندیرمالاری لیست ائت',
@@ -1107,7 +1111,7 @@ $1",
 'saveprefs' => 'قئید ائت',
 'resetprefs' => 'قئید ائدیلمه‌میش ترجیحلری صیفیرله',
 'restoreprefs' => 'بوتون ایلک ترجیحلری قایتار',
-'prefs-editing' => 'دÙ\8eÛ\8cÛ\8cشتÛ\8cرÙ\85Ú© Ø­Ø§Ù\84Û\8cÙ\86دا',
+'prefs-editing' => 'دÙ\8eÛ\8cÛ\8cشدÛ\8cرÙ\85Ú©â\80\8cدÙ\87',
 'prefs-edit-boxsize' => 'دَییشدیرمه پنجره‌سینین اؤلچو',
 'rows' => 'سطرلر:',
 'columns' => 'سوتونلار',
@@ -1154,9 +1158,9 @@ $1",
 'prefs-emailconfirm-label' => 'ایمیل دوغرولاماسی:',
 'prefs-textboxsize' => 'دَییشدیرمه قوتوسونون اؤلچو',
 'youremail' => 'ایمیل:',
-'username' => 'ایستیفاده‌چی آدی:',
-'uid' => 'ایستیفاده‌چی ID:',
-'prefs-memberingroups' => '{{PLURAL:$1|گروپ|گروپلار}} عوضوو:',
+'username' => '{{GENDER:$1|ایستیفاده‌چی آدی}}:',
+'uid' => '{{GENDER:$1|ایستیفاده‌چی}} ID:',
+'prefs-memberingroups' => '{{PLURAL:$1|بیر|$1}} گروپ {{GENDER:$2|عوضو}}و:',
 'prefs-registration' => 'یازیلماق واختی:',
 'yourrealname' => 'دوغرو آد',
 'yourlanguage' => 'دیل:',
@@ -1321,7 +1325,7 @@ $1",
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'بو صحیفه‌نی اوخو',
 'action-edit' => 'بو صحیفه‌نی دَییشدیر',
-'action-createpage' => 'صحÛ\8cÙ\81Ù\87 Û\8cاراد',
+'action-createpage' => 'صحÛ\8cÙ\81Ù\87 Û\8cارات',
 'action-createtalk' => 'دانیشیق صحیفه‌سی یاراد',
 'action-createaccount' => 'بو ایستیفاده‌چی حسابینی یاراد',
 'action-minoredit' => 'بو دَییشیکلیگی، کیچیک اولاراق نیشانلا',
@@ -1357,23 +1361,23 @@ $1",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|دَییشیکلیک}}',
-'recentchanges' => 'سون دَییشیکلر',
-'recentchanges-legend' => 'سون دییشیکلر سئچمه‌لری',
-'recentchanges-summary' => 'بو صحیفه‌ده، ویکی‌یه ان سون وئریلن دَییشیکلیکلری ایزله.',
+'recentchanges' => 'سون دَییشیکلیکلر',
+'recentchanges-legend' => 'سون دَییشیکلر سئچمه‌لری',
+'recentchanges-summary' => 'بو صحیفه‌ده، بو ویکی‌ده وئریلن ان سون دَییشیکلیکلری ایزله‌یین.',
 'recentchanges-feed-description' => 'ویکی‌ده‌کی ان سون ديَیشیکلیک‌لری بو يايیم کانالیندان ایزله‌يین.',
 'recentchanges-label-newpage' => 'بو دییشیک یئنی بیر صحیفه یاراتدی',
 'recentchanges-label-minor' => 'بو بیر کیچیک دَییشدیرمه‌دیر',
-'recentchanges-label-bot' => 'بو دییشیک بیر بوت طرفیندن ائدیلیب‌دیر',
-'recentchanges-label-unpatrolled' => 'بو دییشیک هله گؤزدن کئچیریلمه‌ییبدیر',
+'recentchanges-label-bot' => 'بو دییشیک بیر بوت طرفیندن ائدیلیب‌دیر',
+'recentchanges-label-unpatrolled' => 'بو دییشیک هله گؤزدن کئچیریلمه‌ییبدیر',
 'rcnote' => "آشاغیداکی {{PLURAL:$1|'''1''' ديَیشیکلیک|'''$1''' ديَیشیکلیک}} ساعت$5, $4 تاریخینه قدر سون {{PLURAL:$2|گون|'''$2''' گون}} عرضینده ائدیلمیشدیر.",
 'rcnotefrom' => "آشاغیدا '''$2'''-دن ('''$1'''-ه قدر) ديَیشیکلیکلر سادالانمیشدیر.",
 'rclistfrom' => '$1 واختیندان باشلایاراق یئنی دییشیکلری گؤستر',
-'rcshowhideminor' => 'کیچیک دییشیکلری $1',
+'rcshowhideminor' => 'کیچیک دَییشیکلری $1',
 'rcshowhidebots' => 'بوتلاری $1',
 'rcshowhideliu' => 'ایچری گیرمیش ایستیفاده‌چیلری $1',
 'rcshowhideanons' => 'تانینمامیش ایستیفاده‌چیلری $1',
 'rcshowhidepatr' => 'نظارت ائدیلن دَییشیکلری $1',
-'rcshowhidemine' => 'منیم دییشیکلریمی $1',
+'rcshowhidemine' => 'منیم دَییشیکلریمی $1',
 'rclinks' => 'سون $2 گون عرضینده‌کی سون  $1 ديَیشیکلیگی گؤستر <br />$3',
 'diff' => 'فرق',
 'hist' => 'گئچمیش',
@@ -1488,14 +1492,22 @@ $1",
 فايلینیزی يئنه ده يوکله‌مک ایسته‌يیرسینیزسه، خاهیش ائدیریک گئری گئدیب يئنی بیر آد ایستیفاده ائدین. 
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'بو فایل آشاغی‌داکی {{PLURAL: $1 | فایلین | فایل‌لارین}} تکراری سی‌دیر:',
+'file-deleted-duplicate' => 'بو فایلین عینی اولان باشقا بیر فایل([[:$1]])داها اول‌دن سیلیندی. بو فای‌لی یئنی‌دن یوکلمه‌دن اول دیگر فایلین سیلینمه‌سی قئیدلرینی ایداره ائتملیسینیز.',
 'uploadwarning' => 'يوکله‌مه خبردارلیغی',
+'uploadwarning-text' => 'خاهیش ائدیریک آشاغی‌داکی فایل شرحینی دییش‌دیرین و یئنی‌دن جهد ائدین.',
 'savefile' => 'فايلی قئيد ائت',
 'uploadedimage' => '"[[$1]]" یوکلندی',
+'overwroteimage' => '"[[$1]]"-این یئنی نوسخه سی یوکلندی',
 'uploaddisabled' => 'يوکله‌مه باش توتمادی',
+'copyuploaddisabled' => 'اینترنت آدرسی ایله یوکلمه باش توتمادی.',
 'uploadfromurl-queued' => 'يوکله‌مه‌نیز نؤوبه گؤزله‌يیر',
 'uploaddisabledtext' => 'فايل يوکلنمه‌سی باش توتمادی.',
+'php-uploaddisabledtext' => 'پی اچ پی فایل یوکلملری دؤوره خاریجی‌دیر. خاهیش ائدیریک file_uploads تنظیم لرین یئنی دن بیر باخین.',
+'uploadscripted' => 'بو فایل بیر اینتئرنئت آختاریش برنامه سی طرفین‌دن سهو چئوریلبیلجک بیر HTML و یا ایسکریپت کودو عبارت‌دیر.',
 'uploadvirus' => 'فايلدا ویروس وار!  
 دئتاللار: $1',
+'uploadjava' => 'فایل، بیر جاوا. نوع ‎‎class ائهتیوا ائدن بیر زیپ فایلی‌دیر.
+جاوا فایل‌لارینین یوکلنمه‌سینه ایجازه وئریلمیر، چونکی تهلوکه‌سیزلیک محدودلاشدیرما‌لارینین آتلانماسینا سبب اولا بیلمکده‌دیرلر.',
 'upload-source' => 'قایناق فايلی',
 'sourcefilename' => 'فايل آدی منبع‌لری',
 'sourceurl' => 'قایناق آدرسی',
@@ -1504,7 +1516,14 @@ $1",
 'upload-description' => 'فایل ایضاهی',
 'upload-options' => 'یوکلمه سئچینیکلر',
 'watchthisupload' => 'بو فايلی ایزله',
+'filewasdeleted' => 'بو آددا بیر فایل یاخین زاماندا یوکلندی و سونرا ایداره‌چی‌لر طرفین‌دن سیلیندی. فای‌لی یوکلئمئدئن اول، $1 صحیفه‌سینه بیر گؤز آتین.',
+'filename-bad-prefix' => 'یوکلمکده اولدوغونوز فایلین آدی، عمومی اولا‌راق رقمسال کامئرا‌لار طرفین‌دن آوتوماتیک اولا‌راق ائکئلئنئن و آچیقلاییجی اولمایان \'"$1"\' ایله باشلاییر.
+خاهیش ائدیریک فایلینیز اوچون داها آچیقلاییجی بیر آد سئچین.
+
+یوکلمکده اولدوغونوز فایلین آدی، عمومی اولا‌راق رقمسال کامئرا‌لار طرفین‌دن آوتوماتیک اولا‌راق باغلانان و آچیقلاییجی اولمایان \'"$1"\' ایله باشلاییر.
+خاهیش ائدیریک فایلینیز اوچون داها آچیقلاییجی بیر آد سئچین.',
 'upload-success-subj' => 'یوکلمه گوتولدو',
+'upload-success-msg' => '[$2] یوکلمه‌نیز موفقیت‌لی اولدو. یوکلمه‌نیز بورادا مؤوجود: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'یوکلمه پروبلئمی',
 'upload-failure-msg' => '[$2]-دن یوکله‌دیگینیزده بیر ایشکال قاباغا گلدی:
 
@@ -1515,16 +1534,28 @@ $1',
 'upload-proto-error' => 'یانلیش پروتوکول',
 'upload-proto-error-text' => 'اوزاقدان یوکلمه، <code>http://</code> یوخسا <code>ftp://</code> ایله باشلانان آدرس ایسته‌ییر.',
 'upload-file-error' => 'ایچ خطاسی',
+'upload-file-error-text' => 'سئروئرده مووققتی فایل میدانا گتیرمه جهدی زامانی بیر داخیلی خطا میدانا گلدی.
+خاهیش ائدیریک بیر [[Special:ListUsers/sysop|administrator]] یله علاقه ساخلایین.',
 'upload-misc-error' => 'بیلین‌مه‌ین یوکلمه خطاسی',
+'upload-misc-error-text' => 'یوکلمه اسناسیندا بیلینمه‌ین بیر خطا میدانا گلدی.
+خاهیش ائدیریک علاقه‌نین اعتبارلی و چاتیلا بیلر اولدوغونو تصدیق و یئنی‌دن جهد ائدین.
+اگر پروبلئم تکرارلانسا، بیر [[Special:ListUsers/sysop|administrator]] ایله علاقه ساخلایین',
 'upload-too-many-redirects' => 'آدرس ده چوخ یؤنلندیرمه وار',
 'upload-unknown-size' => 'بیلین‌مه‌ين هجم',
+'upload-http-error' => 'اچ تی تی پی ختاسی وار : $1',
+'upload-copy-upload-invalid-domain' => 'فایل یوکلنمه سی بو بازه ده امکانی یوخدور',
 
 # File backend
 'backend-fail-stream' => '$1 فای‌لی یولانمامادی.',
+'backend-fail-backup' => 'بو فایل $1 اوچون نوسخه پشتیان یارتماق اولماز',
 'backend-fail-notexists' => '"$1" فای‌لی مؤوجود دئییل',
+'backend-fail-hashes' => 'هش‌لری آلماق پرونده مقایسه اوچون یانلیشی دیر.',
+'backend-fail-notsame' => 'بیر اولمایان فایل $1 دا واردیر.',
 'backend-fail-invalidpath' => '"$1" اعتبارلی بیر ییغما یولو دئییل.',
 'backend-fail-delete' => '"$1" فایلن سیله بیلمه سینیز.',
+'backend-fail-describe' => 'مئتاداتا "$1" فایل دییشیک‌لیک وئرمک اولماز.',
 'backend-fail-alreadyexists' => '"$1" فای‌لی اونسوز دا مؤوجوددور.',
+'backend-fail-store' => 'فایلین $1 $2 ساخلایا ائتمک اولا بیلمز.',
 'backend-fail-copy' => '"$1" فايلی "$2" فايلینا کوپي‌لانمیر.',
 'backend-fail-move' => '"$1" فای‌لی، "$2" فایلینا تاشینامادی.',
 'backend-fail-opentemp' => 'مووققتی فایل آچیلا بیلمه‌دی.',
@@ -1532,6 +1563,30 @@ $1',
 'backend-fail-closetemp' => 'مووققتی فایل باغلاندی.',
 'backend-fail-read' => '"$1" فایلی اوخونمادی.',
 'backend-fail-create' => '"$1" فایلی یارانمادی.',
+'backend-fail-maxsize' => 'ائدیر: فایل داها چوخ $1 {{PLURAL:$2|بیر بایتی|$2 بایتی}} $2 {جمع} چونکی داتا یازا بیلمز.',
+'backend-fail-readonly' => 'پشتیبان "$1" حال حاضیر دا فقط اوخوماق وضعیتینده دیر. وئریلمیش سببی: "$2"',
+'backend-fail-synced' => 'فایل «$1» پشتیبان لاری اوچوجو داخی‌لی وضعیت ساخلانیلیر',
+'backend-fail-connect' => 'ارتیباط ذخیره پشتیبانی «$1» ایله قورولمادی',
+'backend-fail-internal' => 'بیلنمه ین خطا ذخیره پشتیبانین دا «$1» اوز وئردی.',
+'backend-fail-contenttype' => 'فایلین ایچینده کی نوعون ساخلاماق اوچون «$1» یئرده  تعیین اولماسی موفقیت سیزی دیر.',
+'backend-fail-batchsize' => 'دسته لر واردیر $1 {{PLURAL:$1|ایش آپاریلماسی |ایش آپاریلماسی}} فایل ذخیره پشتیبانینا ذخیره وئریلدی؛ چوخلوسی، ایجازه وار $2 {{PLURAL:$2|ایش آپاریلماسی |ایش آپاریلماسی}} دیر.',
+'backend-fail-usable' => '$1فایل اوچون اوخوماق و یازماق ایمکانی یوخدور نیه کی  دسرسی سطحی کیفایت ائتمیر یا دا نظرده آلینان شاخه/محفظهٔ یوخدور.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'وصل اولماق ایمکانی دفترخانا داده پایگاهینا پشتیبانلیق ائتمک اوچون   "$1" ساخلاماقی یوخدور.',
+'filejournal-fail-dbquery' => 'دفترخانا داده پایگاهین یئنی لمک پشتیبان ساخلاماق اوچون«$1» امکان یوخدور.',
+
+# Lock manager
+'lockmanager-notlocked' => 'کلید «$1» آچماق اولمور؛ نیه کی بالانمییب.',
+'lockmanager-fail-closelock' => 'موحافیظه اولونموش فایل "$1" اوچون باقلاماق اولا بیلمز .',
+'lockmanager-fail-deletelock' => 'موحافیظه اولونموش فایل "$1" اوچون سیلمه اولا بیلمز .',
+'lockmanager-fail-acquirelock' => 'موحافیظه «$1» اوچون اولا بیلمز',
+'lockmanager-fail-openlock' => 'موحافیظه اولونموش فایل "$1" اوچون آچمااولا بیلمز .',
+'lockmanager-fail-releaselock' => 'موحافیظه «$1» اوچون آچیلا بیلمز',
+'lockmanager-fail-db-bucket' => 'ارتباط ایمکانی داده پایگاهین تعداد کافی  کیلد لر $1 محفظه سینده یوخدور.',
+'lockmanager-fail-db-release' => 'داده پایاگاهین $1 کیلید لرین آچماقی مومکین دییل.',
+'lockmanager-fail-svr-acquire' => 'سئرور کیلید لرین $1 اچماق مومکین دییل.',
+'lockmanager-fail-svr-release' => 'سئرور کیلید لرین $1 آچماق امکانی یوخدور.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'فايل زیپ يوخلامالاری اوچون آچیلارکن بیر خطاایله قارشیلاشیلدی.',
@@ -1627,7 +1682,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'filehist-filesize' => 'فایل اؤلچوسو',
 'filehist-comment' => 'باخیش',
 'filehist-missing' => 'فایل یوخدور',
-'imagelinks' => 'فايل کئچیدلری',
+'imagelinks' => 'فايل ایشلدمه‌سی',
 'linkstoimage' => 'آشاغیداکی {{PLURAL:$1|صحیفه|$1 صحیفه‌لر}} بو فایلا {{PLURAL:$1|باغلانیر|باغلانیرلار}}',
 'linkstoimage-more' => 'بو فایلا {{PLURAL:$1|بیر|$1}}-دن چوخ صحیفه باغلانتی‌سی واردیر.
 آشاغیداکی لیست بو فایلا یالنیز ایلک $1 صحیفه باغلانتیسینی گؤستریر.
@@ -1640,11 +1695,16 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'sharedupload-desc-there' => 'بو فایل $1 آنبارین‌دان و دیگر پروژئجتس. داها چوخ معلومات اوچون لطفاً [$2 فایل شرح صحیفه‌سینه] باخین.',
 'sharedupload-desc-here' => 'بو فایل $1-دن‌دیر و آیری پروژه‌ده ایستیفاده اولماق امکانی وار.
 اونون باره‌سینده اولان شرح [$2 فایلین شرح صحیفه‌سی] آشاغیدا گوستریلیب.',
+'sharedupload-desc-edit' => 'بو فایل $1 دن دیر و ائلیه بیلر اوبیری پروژه لرده ایستفاده اولا.
+ایر ایستیرسینیز ائلیه بیلرسینیز پرونده نین شرحلرین [$2 شرحلر صحیفه سیندن]دییشدیرسینیز.',
+'sharedupload-desc-create' => 'بو فایل $1 دن دیر و ائلیه بیلر اوبیری پروژه لرده ایستفاده اولا.
+ایر ایستیرسینیز ائلیه بیلرسینیز پرونده نین شرحلرین[$2 شرحلر صحیفه سیندن]دییشدیرسینیز.',
 'filepage-nofile' => 'بو آدلا فایل یوخدور',
 'filepage-nofile-link' => 'بو آددا بیر فایل یوخ، اما سیز [$1 یوکله‌یه بیلرسینیز].',
 'uploadnewversion-linktext' => 'بو فايلین يئنی سین يوکله',
 'shared-repo-from' => '$1-دن',
 'shared-repo' => 'عومومی آمبار',
+'upload-disallowed-here' => 'تاسف لر سیز ائلیه بیلمه سیز بو فایلی تزدن یازاسیز.',
 
 # File reversion
 'filerevert' => '$1فایلی اولکی حالینا قایتار',
@@ -1666,6 +1726,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'filedelete-success' => "'$1 سیلینمیش‌دیر.",
 'filedelete-success-old' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'-nin  $3 və $2 نوسخه لری سیلینمیش‌دیر.</span>',
 'filedelete-nofile' => "'$1 مؤوجود دئییل.",
+'filedelete-nofile-old' => "'''$1 اوچون نظرده توتولان خصوصیتده آرشیولئنمیش بیر نوسخه یوخ.",
 'filedelete-otherreason' => 'باشقا/آرتیق دلیل:',
 'filedelete-reason-otherlist' => 'باشقا سبب',
 'filedelete-reason-dropdown' => '*اساس سیلمه سببی
@@ -1736,6 +1797,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 بیر صحیفه، بلیرلندیرمه صحیفه‌سی کیمی اولار، اگر [[MediaWiki:Disambiguationspage]] صحیفه‌سینه باغلانمیش بیر شابلون‌دان ایستیفاده ائتسه.",
 
 'doubleredirects' => 'ایکی‌قات یول‌لاندیرمالار',
+'doubleredirectstext' => 'بو صحیفه دیگر ایستیقامتلندیرمه صحیفه‌لرینه ایستیقامتلندیرمه ائدن صحیفه‌لری سیاهی‌لار.
+هر سطرین ائهتیوا ائتدیگی کئچیدلر؛ بیرینجی و ایکینجی ایستیقامتلندیرمه، هم‌چی‌نین ایکینجی ایستیقامتلن‌دیرمک هدفی، کی بو عمومیتله بیرینجی ایستیقامتلن‌دیرمک گؤسترمه‌سی لازیم اولان "گئرچک" هدف صحیفه‌سی‌دیر.
+<del> اوستو خط لنیب </del> دوزلمیش دیر.',
 'double-redirect-fixed-move' => '[[$1]] دییشدیریلیب.
 حاضردا [[$2]]-یه ایستیقامتلنیب.',
 'double-redirect-fixed-maintenance' => '[[$1]]-دن [[$2]]-یه ایکی‌قات ایستیقامتلنمه دوزلدیلیر.',
@@ -1765,6 +1829,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'ntransclusions' => '$1 ده{{PLURAL:$1|صحیفه‌ده}}ایستیفاده اولونور',
 'specialpage-empty' => 'بو صحیفه بوشدور',
 'lonelypages' => 'يئتیم صحیفه‌‌لر',
+'lonelypagestext' => 'آشاغی‌داکی صحیفه‌لره {{SITENAME}} سایتین‌داکی دیگر صحیفه‌لردن علاقه وئریلممیش یا دا چارپاز داخیل ائدیلممیش.',
 'uncategorizedpages' => 'بؤلمه‌سیز صحیفه‌لر',
 'uncategorizedcategories' => 'بؤلمه‌سیز بؤلمه‌لر',
 'uncategorizedimages' => 'بؤلمه‌سیز شکیل‌لر',
@@ -1776,6 +1841,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'wantedpages' => 'ایسته نن صحیفه‌لر',
 'wantedpages-badtitle' => 'مراجعت زامانتی يانلیش باشلیق: $1',
 'wantedfiles' => 'ایسته نن فایللار',
+'wantedfiletext-cat' => 'آشاغیداکی فایل‌لار ایشله‌نیبلر اما یوخدورلار. ائشیک آنباردا اولان فایل‌لار دا اولدوقلارینا باخمایاراق، لیست‌ده گلیبلر. ائله یانلیش باخیشلار <del>خطلنه‌جکلر</del>. هم‌ده، اولمایان فایل‌لاری ایشلدن صحیفه‌لر ده [[:$1]]-ده لیست اولونوبلار.',
+'wantedfiletext-nocat' => 'اشاغی داکی فایل لار ایستفاده اولور سانکی یوخدولار.حتی مومکین دیر خارجی حویض مخزن لریندن اولماق  ایله بو ردا فهرست اولا . وهر مثب رتبه سی یانلیش <del> خط یئمیش اولاجاق.</del>',
 'wantedtemplates' => 'ایسته نن شابلونلار',
 'mostlinked' => 'ان چوخ کئچیدلنن صحیفه‌‌لر',
 'mostlinkedcategories' => 'ان چوخ مقاله‌سی اولان بولمه لر',
@@ -1785,6 +1852,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'mostinterwikis' => 'اینتر ویکی‌سی ان چوخ اولان صحیفه‌لر',
 'mostrevisions' => 'ان چوخ نظردن کئچیریلمیش (وئرسیا‌لی) مقاله‌لر',
 'prefixindex' => 'پرئفیکس ایندئکسلی بوتون یارپاقلار',
+'prefixindex-namespace' => 'بوتون صفحه لر (آد فضاسی$1) قاباق دان یاپیشیقی وار',
 'shortpages' => 'قیسا صحیفه‌‌لر',
 'longpages' => 'اوزون صحیفه‌‌لر',
 'deadendpages' => 'کئچید وئرمه‌ين صحیفه‌‌لر',
@@ -1795,6 +1863,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'protectedpagestext' => 'آشاغی‌داکی صحیفه‌لر آد دییشیمینه و دَییشدیرمه‌یه باغلی‌دیر',
 'protectedpagesempty' => 'حال-حاضردا بو پارامئتره اویغون هئچ بیر محافظه‌لی صحیفه یوخ‌دور',
 'protectedtitles' => 'محافظه‌لی باش‌لیق‌لار',
+'protectedtitlestext' => 'آشاغی‌داکی باش‌لیق‌لار یارادیلماغا قارشی قوروما‌لی‌دیر',
+'protectedtitlesempty' => 'حال-حاضردا، بو پارامئترلری قورونان هئچ بیر موضوع یوخ‌دور.',
 'listusers' => 'ایستیفاده‌چی سیياهیسی',
 'listusers-editsonly' => 'يالنیز دَییشدیرمه ائدن ایستیفاده‌چیلری گؤستر',
 'listusers-creationsort' => 'يارانما تاریخینه گؤره سیرالا',
@@ -1805,8 +1875,13 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'ancientpages' => 'ان اسکی صحیفه‌لر',
 'move' => 'آدینی دَییشدیر',
 'movethispage' => 'بو صحیفه‌‌نین آدینی ديَیشدیر',
+'unusedimagestext' => 'آشاغی‌داکی فایل‌لار وار آنجاق هر هانسی بیر صحیفه‌ده باسدیریلمیش دئییل.
+خاهیش ائدیریک اونوتمایین کی، دیگر web سایت‌لاری بیر فایلا بیرباشا بیر اورل ایله علاقه وئره بیلر، و بونا گؤره ائففئکتیو ایستیفاده‌ده اولماسا بئله هله بورادا لیستنبیلیر.',
+'unusedcategoriestext' => 'آشاغیدا اولان بولمه لر مؤوجود اولدوغو حالدا، هئچ بیر مادده یا دا بولمه لر طرفین‌دن ایستیفاده ائدیلمیر.',
 'notargettitle' => 'وئریلمه‌يیب',
+'notargettext' => 'بو صحیفه یا یا کاربر حیاتا کئچیرمک اوچون بیر هدف صحیفه‌سی یا دا ایستیفاده‌چی‌سی بئلیرتمئدینیز.',
 'nopagetitle' => 'بئله هدف صحیفه‌سی یوخ‌دور',
+'nopagetext' => 'ایفاده ائتدیگینیز هدف صحیفه‌سی مؤوجود دئییل.',
 'pager-newer-n' => '{{PLURAL:$1|بیر داها یئنی|$1 داها یئنی}}',
 'pager-older-n' => '{{PLURAL:$1|بیر داها کؤهنه|$1 داها کؤهنه}}',
 'suppress' => 'باخان',
@@ -1817,6 +1892,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'booksources-search-legend' => 'کیتاب قایناقلارین آختار',
 'booksources-go' => 'گئت',
 'booksources-text' => 'آشاغیدا یئنی و ایشلنمیش کیتاب‌لار ساتان خاریجی کئچیدلرده سیز آختاردیغینیز کیتاب حاقیندا علاوه معلومات آلا بیلرسیز:',
+'booksources-invalid-isbn' => 'وئریلن ISBN اعتبارسیز کیمی گؤرونور؛ اورجینال قایناق‌دان کوپیالاما اشکالار اوچون نظارت ائدین.',
 
 # Special:Log
 'specialloguserlabel' => 'ایجراچی',
@@ -1827,24 +1903,29 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 قئید نؤوو، ایستیفاده‌چی آدی و یا تأثیر ائدیلمیش صحیفنی سئچمکله داها ایسپئسیفیک اولا بیلرسینیز.',
 'logempty' => 'ژورنالدا اويغون قئيد تاپیلمادی.',
 'log-title-wildcard' => 'بو متنله باشلایان باش‌لیق‌لاری آختار',
+'showhideselectedlogentries' => 'گؤستریش/گیزلمه سییاهه ده سئچیلمیش‌لر اوچون',
 
 # Special:AllPages
 'allpages' => 'بوتون صحیفه‌لر',
-'alphaindexline' => '$1 مقاله‌سیندن $2 مقاله‌سینه کیمی',
+'alphaindexline' => '$1-دن $2-یه',
 'nextpage' => 'سونراکی صحیفه‌‌ ($1)',
 'prevpage' => 'اولکی صحیفه ($1)',
 'allpagesfrom' => 'بو حرفله باشلایان صحیفه‌لری گؤستر:',
 'allpagesto' => 'بو حرفله باشلایان صحیفه لری گؤستر:',
-'allarticles' => 'بوتون یارپاقلار',
+'allarticles' => 'بوتون صحیفه‌لر',
 'allinnamespace' => 'بوتون صحیفه‌لر ($1 صحیفه‌لری)',
 'allnotinnamespace' => 'بوتون صحیفه‌لر ( $1 ساحه‌سینده اولمایان‌لار)',
 'allpagesprev' => 'اونجه‌کی',
 'allpagesnext' => 'سونراکی',
 'allpagessubmit' => 'گئت',
 'allpagesprefix' => 'بورا یازدیغینیز حرف‌لرله باشلایان صحیفه‌لری سیاهی‌سینی:',
+'allpagesbadtitle' => 'گیریلن صحیفه آدی دیل‌لر آراسی علاقه و یا wiki آراسی علاقه ائهتیوا ائتدیگین‌دن اعتبارلی دئییل. باش‌لیق‌لاردا ایستیفاده ائدیلمه‌سی قاداغان اولان بیر یا دا داها چوخ کاراکتئر ائهتیوا ائدیر اولا بیلر.',
+'allpages-bad-ns' => '{{SITENAME}} سایتیندا "$1" آد ساحه‌سی یوخ.',
 'allpages-hide-redirects' => 'یؤنلندیرمه‌لری گیزلت',
 
 # SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'سیز بو صفحه نین بیر نوسخه نی گورورسیز کی اورتا توتان یئرلشیب دیر و مومکین دیر $1 اوچون قاباقدان اولا.',
+'cachedspecial-viewing-cached-ts' => 'سیز ایندی بیر کَش اولونموش صحیفه‌یه باخیرسینیز؛ بو صحیفه‌ده ایندی‌کی ایله فرق‌لی اولا بیلر.',
 'cachedspecial-refresh-now' => 'ان سونراکی گورونوش',
 
 # Special:Categories
@@ -1852,6 +1933,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'categoriespagetext' => 'آشاغی‌داکی {{PLURAL:$1|بولمه لردهٔ|بولمه لرده}}  صحیفه‌لر، یاخود مئدیا-فایل‌لار وار.
 [[Special:UnusedCategories|ایستفاده اولمایان بولمه لر]] بورادا گؤستریلمه‌ییب.
 هم‌چی‌نین، [[Special:WantedCategories|لازیم اولان بولمه لره]] باخین.',
+'categoriesfrom' => 'شونونلا باشلایان بولمه لر باخ:',
 'special-categories-sort-count' => 'میقدارا گؤره تنزیمله',
 'special-categories-sort-abc' => 'الیفبا سیراسی ایله دوز',
 
@@ -1979,10 +2061,21 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'ایزله‌نیلیر...',
 'unwatching' => 'ایزله‌مه...',
+'watcherrortext' => 'ایزلئمئ سیاهی‌سی ترجیحلرینیزی "$1" اوچون دییشدیررکن بیر خطا میدانا گلدی.',
 
 'enotif_mailer' => '{{SITENAME}} بیلدیریش خیدمتی',
 'enotif_reset' => 'باخیلمیش بوتون صحیفه‌لری ایشاره‌له.',
 'enotif_impersonal_salutation' => '{{SITENAME}} ایستیفاده‌چی‌سی',
+'enotif_subject_deleted' => '{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله سیلینیب‌دیر',
+'enotif_subject_created' => '{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله یارانیب‌دیر',
+'enotif_subject_moved' => '{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله آدی دَییشیلیب‌دیر',
+'enotif_subject_restored' => '{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله قایتاریلیب‌دیر',
+'enotif_subject_changed' => '{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله دَییشیلیب‌دیر',
+'enotif_body_intro_deleted' => '{{SITENAME}} صحیفه‌‌$1-ای {{gender:$2|$2}} $PAGEEDITDATE-سینده سیلینمیشدیر، جاری يئنیدن باخما اوچون $3-ای گؤر.',
+'enotif_body_intro_created' => '{{SITENAME}} صحیفه‌‌$1-ای {{gender:$2|$2}} $PAGEEDITDATE-سینده سیلینمیشدیر، جاری يئنیدن باخما اوچون $3-ای گؤر.',
+'enotif_body_intro_moved' => '{{SITENAME}} صحیفه‌‌$1-ای {{gender:$2|$2}} $PAGEEDITDATE-سینده حرکت ائتدیریلن ، جاری يئنیدن باخما اوچون $3-ای گؤر.',
+'enotif_body_intro_restored' => '{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله $PAGEEDITDATE-ده قایتاریلیب‌دیر، سون نوسخه اوچون $3-ه باخین.',
+'enotif_body_intro_changed' => '{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله $PAGEEDITDATE-ده دَییشیلیب‌دیر، سون نوسخه اوچون $3-ه باخین.',
 'enotif_lastvisited' => 'سونونجو زیارتینیزدن ایندیدک اولان بوتون دییشیک‌لیک‌لری گؤرمک اوچون باخین: $1.',
 'enotif_lastdiff' => 'بو دییشیک‌لیگی گؤرمک اوچون $1 صحیفه‌سینه باخین.',
 'enotif_anon_editor' => 'قئیدیات‌سیز ایستیفاده‌چی $1',
@@ -2036,13 +2129,24 @@ $نئwپاگئ
 ** یازانلار حقوق پوزونتوسو
 ** واندالیزم',
 'delete-edit-reasonlist' => 'سیلمک دلیل‌لرینی دَییشدیر',
+'delete-toobig' => 'بو صحیفه، $1 {{PLURAL: $1 | دنه دییشیک‌لیک | دنه دییشیک‌لیک}} ایله چوخ اوزون بیر کئچمیشه مالیک‌دیر.
+بئله صحیفه‌لرین سیلینمه‌سی، {{SITENAME}} سایتینی پوزماماق اوچون مهدودلاشدیریلماقدا‌دیر.',
+'delete-warning-toobig' => 'بو صحیفه‌‌نین بؤيوک بیر ديَیشیکلیک کئچمیشی وار، $1 {{PLURAL:$1|نسخه| نسخه}} اوزرینده. 
+بونو سیلمک {{SITENAME}} عملیاتلارینی مخدل‌ائده‌بیلیر؛ 
+دیقتله داوام ائدین.',
 
 # Rollback
 'rollback' => 'اوولکی نوسخه لر',
 'rollback_short' => 'اوولکی حالینا قایتار',
 'rollbacklink' => 'گئری‌دؤندر',
+'rollbacklinkcount' => 'گیتیرلمه $1  {{PLURAL:$1|دییشمک |دییشمک}} دییشدیرمه',
+'rollbacklinkcount-morethan' => 'گیتیرلمه آرتیق $1 {{PLURAL:$1|دییشمک |دییشمک}} دییشدیرمه',
 'rollbackfailed' => 'گئری قایتارما اوغورسوزدور',
 'cantrollback' => 'دییشدیر گئری قایتاریلا بیلمز؛ آخیرینجی دییشدیر صحیفه‌ده اولان یئگانه فالیت‌دیر.',
+'alreadyrolled' => '[[User:$2|$2]] ([[User talk:$2|موزاکیره]] {{int:pipe-separator}} [[Special:Contributions/$2| {{int:contribslink}}]]) طرفین‌دن [[:$1]] صحیفه‌سینده ائدیلمیش سون دییشیک‌لیک گئرییه آلینا بیلمیر؛
+باشقا بیری صحیفه‌ده دییشیک‌لیک ائتدی یا دا صحیفنی گئرییه آلدی.
+
+سون دییشیک‌لیگی ائدن: [[User:$3|$3]] ([[User talk:$3|تالک]] {{int:pipe-separator}} [[Special:Contributions/$3| {{int:contribslink}}]] ).',
 'editcomment' => "دییشیک‌لیک خلاصه‌سی: ''\" \$1''\" ایدی.",
 'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|دانیشیق]]) طرفین‌دن ائدیلمیش دییشیک‌لیک‌لر [[User:$1|$1]] طرفین‌دن ائدیلمیش دییشیک‌لیک‌لره قایتاریلدی.',
 'revertpage-nouser' => '(ایستیفاده‌چی آدی چیخاریلمیش) طرفین‌دن ائدیلن دییشیک‌لیک‌لر [[User:$1|$1]] طرفین‌دن ائدیلن سون دییشیک‌لییه گئری آلیندی',
@@ -2056,12 +2160,16 @@ $نئwپاگئ
 
 # Protect
 'protectlogpage' => 'قوروما قئیدلری',
+'protectlogtext' => 'آشاغی‌داکی، صحیفه قوروما‌لارینا دییشیک‌لیک‌لرین بیر سیاهی‌سی‌دیر.
+حال-حاضردا تطبیق اولونان صحیفه قوروما‌لاری اوچون [[Special:ProtectedPages| قوروما آلتینا آلینمیش صحیفه‌لر سیاهی‌سینا]] باخا بیلرسینیز.',
 'protectedarticle' => '"[[$1]]" قورولدو',
 'modifiedarticleprotection' => '"[[$1]]" صحیفه‌سی اوچون محافظه سویه‌سی دییشیلدی',
 'unprotectedarticle' => 'محافظه کنارلاشدیریلدی "[[$1]]"',
+'movedarticleprotection' => 'قوروما نیزام‌لاری "[[$2]]" صحیفه‌سین‌دن "[[$1]]" صحیفه‌سی داشیندی',
 'protect-title' => '"$1" اوچون محافظه سویه‌سی‌نین دییشدیریلمه‌سی',
 'protect-title-notallowed' => '"$1"اوچون محافظه سویه‌سی‌نین گؤسترین',
 'prot_1movedto2' => '[[$1]] آدی دییشیلدی. یئنی آدی: [[$2]]',
+'protect-badnamespace-title' => 'آد سیز حفظ اولموش فضا',
 'protect-badnamespace-text' => 'بو آد ساحه‌سین‌دکی صحیفه‌لر قورونا.',
 'protect-legend' => 'قورومایی تصدیق ائت',
 'protectcomment' => 'ندن:',
@@ -2121,10 +2229,19 @@ $نئwپاگئ
 'undeletepage' => 'سیلینمیش صحیفه‌لری گؤستر و یا برپا ائت',
 'undeletepagetitle' => "'اشاغی‌داکی، [[:$1|$1]] صحیفه‌سی‌نین سیلینمیش دییشیک‌لیک‌لرین‌دن ایبارتدیر.",
 'viewdeletedpage' => 'سیلینمیش صحیفه‌لری گؤستر',
+'undeletepagetext' => 'آشاغی‌داکی {{PLURAL:$1|صحیفه|$1 صحیفه}} سیلینمیش‌دیر اما هله آرشیودئ‌دیر و گئری گتیریله بیلر.
+آرخیو نیزام‌لی اولا‌راق تمیزلمک اولار.',
 'undelete-fieldset-title' => 'دییشیک‌لیک‌لری گئری یوکله',
+'undeleteextrahelp' => "سایفا‌لارلا بیرلیکده کئچمیشی گئری گتیرمک اوچون تصدیق قوتولارینا توخونمادان 'گئری گتیر!' دویمه‌سینه باسین. صحیفه‌نین کئچمیشینی آیری-آیری گتیرمک اوچون گئری گتیرمک ایستدیگینیز دییشیک‌لیک‌لرین تصدیق قوتولارینی سئچیب 'گئری گتیر!' دویمه‌سینه باسین. سئچیلن تسدیق قوتولارینی و سبب ساحه‌سینی یئنی‌دن قورماق اوچون 'وازگئچ دویمه‌سینه باسین.",
+'undeleterevisions' => '$1 {{PLURAL:$1 | اولوب دیر | اولدولار}} آرشیولئندی',
 'undeletehistory' => 'اگر صحیفه‌‌نی گئری گتیرسه‌نیز، بوتون رئویزيونلار کئچمیشه گئری گتیریله‌جک. 
 سیلیندیکدن سونرا عینی آدلا يئنی بیر صحیفه‌‌ يارانمیشسا، گئری گلن رئویزيونلار مؤوجود اولان صحیفه‌‌نین کئچمیشینده گؤرونه‌جک.',
+'undeleterevdel' => 'اگر اوست صحیفه‌ده سونو چلاناجاقسا یا دا فایل رئویزیونو قیسمن سیلینمیش ایسه، سیلمیی گئری آلما تطبیق اولونا بیلمز.
+بئله حال‌لاردا، ان یئنی سیلینن رئویزیونو سئچمملی یا دا گیزلمه سینی قالدیرما‌لی‌دیر.',
+'undeletehistorynoadmin' => 'بو مادده سیلینمیش‌دیر. سیلینمه سببی و سیلینمه اولینده ماددنی تشکیل ائدن ایستیفاده‌چی‌لرین دئتال‌لاری آشاغی‌داکی ایستفادچی موشخصاتی وئریلمیش‌دیر. بو سیلینمیش‌دیر دییشیک لیک متن‌لری ایسه یالنیز ایداره‌چی‌لر طرفین‌دن گؤروله بیلر.',
 'undelete-revision' => '$3 طرفین‌دن $1 صحیفه‌سی‌نین سیلینمیش دییشدیر ‌سین ($4 تاریخیندئن بری، $5 ساعتدا):',
+'undeleterevision-missing' => 'اعتبارسیز و یا ایتکین نوسخه.
+نوسخه تمیر و یا آرخیو‌دن سیلینمیش اولا بیلر یا دا صاحب اولدوغونوز علاقه اشتباه دیر.',
 'undelete-nodiff' => 'اولکی دَییشمه تاپیلمادی.',
 'undeletebtn' => 'برپا ائت',
 'undeletelink' => 'باخ/قایتار',
@@ -2162,7 +2279,9 @@ $1',
 # Namespace form on various pages
 'namespace' => 'آد فضاسی:',
 'invert' => 'سئچیلنی دؤندر',
+'tooltip-invert' => 'بو قوتونی علامتله یین تا انتخاب اولان آد فضا سینین ایچری صحیفه لری دییشیک لیک لری(و اوبیری علامتلنمیش فضالار) گیزله نه آدی',
 'namespace_association' => 'علاقه‌لی آد ساحه‌سی',
+'tooltip-namespace_association' => 'بو قوتونو علامت له ین یالنیز آد بحث فضاسی یا مرتبط اولان آد فضاسی ایله انتخاب اولا',
 'blanknamespace' => '(آنا)',
 
 # Contributions
@@ -2202,11 +2321,11 @@ $1',
 'nolinkshere-ns' => "سئچیلمیش آدفضاسیندا، هئچ صحیفه '''[[:$1]]'''-ه باغلانتی‌سی یوخدور.",
 'isredirect' => 'یوللاندیرما صحیفه‌سی',
 'istemplate' => 'داخیل اولموش',
-'isimage' => 'شکیل اوچون کئچید',
+'isimage' => 'فایلا باغلانتی',
 'whatlinkshere-prev' => '{{PLURAL:$1|اؤنجه‌کی|اؤنجه‌کی $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|سونراکی|سونراکی $1}}',
 'whatlinkshere-links' => '← باغلانتیلار',
-'whatlinkshere-hideredirs' => '$1 ایستیقامتلندیرمه‌لر',
+'whatlinkshere-hideredirs' => 'یول‌لاندیرمالاری $1',
 'whatlinkshere-hidetrans' => 'علاوه‌لری $1',
 'whatlinkshere-hidelinks' => 'باغلانتیلاری $1',
 'whatlinkshere-hideimages' => '$1 شکیل اوچون کئچیدلر',
@@ -2289,7 +2408,7 @@ $1',
 'blocklist-nousertalk' => 'دانیشیق صحیفه‌‌سینی دَییشدیره بیلمزسیز.',
 'ipblocklist-empty' => 'بلوک سیياهیسی بوشدور.',
 'ipblocklist-no-results' => 'طلب اولونان ای‌پی اونوانی و يا ایستیفاده‌چی بلوکلانمادی.',
-'blocklink' => 'بلوکلا',
+'blocklink' => 'باغلا',
 'unblocklink' => 'بلوکلامانی قالدیر',
 'change-blocklink' => 'بلوکلامانی ديَیشدیر',
 'contribslink' => 'چالیشمالار',
@@ -2322,11 +2441,19 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'ipb-otherblocks-header' => 'آیری {{PLURAL:$1|باغلانماا|باغلاما‌لار}}',
 'unblock-hideuser' => 'ایستیفاده‌چی آدی گیزلی اولدوغو اوچون، بی باغلامانی گؤتوره بیلمزسینیز.',
 'ipb_cant_unblock' => 'ختا: باغلاما آی دی سی $1 تاپیلمادی. باغلامانین گؤتورولمه‌سی مومکون‌دور.',
+'ipb_blocked_as_range' => 'خطا: $1 ای پی عنوانی بیرباشا مانعه و مانعه تؤرتمه آزالدیلماسینا یول وئریلمیر.
+آنجاق، بو عنوان $2 آرا‌لیغینین پارچاسی اولا‌راق مانعه تؤردیلمیش، دئکابر مانعه تؤرتمه‌سینی قال‌دیرا.',
 'ip_range_invalid' => 'یانلیش ای پی',
+'ip_range_toolarge' => '/ $1 بلوک‌دان داها بؤیوک بازه باغلانمالارینا ایجازه وئریلمیر.',
 'blockme' => 'منی باغلا',
 'proxyblocker' => 'پروکسی باغلییان',
 'proxyblocker-disabled' => 'بو ایش باغلانیب دیر.',
+'proxyblockreason' => 'ای پی آدرئسینیز آچیق بیر پروکسی اولدوغو اوچون مانعه تؤردیلدی.
+خاهیش ائدیریک اینتئرنئت سئویش تعمین ایله یا دا تئکنیکی دستک ایله علاقه قورون و بو جدی تهلوکه‌سیزلیک پروبلئمین‌دن خبردار ائدین.',
 'proxyblocksuccess' => 'اولدو.',
+'sorbsreason' => 'ای پی عنوانینیز، {{SITENAME}} سایتی طرفین‌دن ایستیفاده ائدیلن DNSBL آچیق پروکسی اولا‌راق اولونموش.',
+'sorbs_create_account_reason' => 'ایپ اونوانینیز {{SITENAME}} سایتی طرفین‌دن ایستیفاده ائدیلن DNSBL آچیق پروکسی اولا‌راق اولونموش.
+حساب میدانا گتیره بیلمز',
 'cant-block-while-blocked' => 'سیز ائنگئللیيکئن باشقا ایستیفاده‌چیلری مانعه تؤره‌ده بیلمزسینیز.',
 'cant-see-hidden-user' => 'قارشیسینی آلماق ایسته‌دیگینیز ایستیفاده‌چی اونسوز دا مانعه تؤره‌دیلمیش و گیزلنمیش. کوللانیجیگیزلئ ایجازه‌نیز اولمادیغی اوچون، ایستیفاده‌چی‌نین قارشیسی‌نین آلینماسینی گؤره بیلمز يا دا ديَیشدیره.',
 'ipbblocked' => 'دیگر ایستیفاده‌چیلری مانعه تؤره‌ده بیلمز يا دا مانعه تؤرتمه‌سینی قالدیرا بیلمز، چونکی اؤزونوز ائنگئللئنمیشسیز',
@@ -2343,9 +2470,14 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'unlockconfirm' => 'بلی، من حقیقتن وئریلن‌لر بازاسینین باغلانمانی آچماق ایستییرم.',
 'lockbtn' => 'وئریلن‌لر بازاسینی باغلا',
 'unlockbtn' => 'وئریلن‌لر بازاسین‌دان باغلانتی سین گؤتور',
+'locknoconfirm' => 'تصدیق قوتوسونو سئچمئدینیز.',
 'lockdbsuccesssub' => 'وئریلن‌لر بازاسی باغلانیب',
 'unlockdbsuccesssub' => 'باغلانما وئریلن‌لر بازاسی گوتورلنیب',
+'lockdbsuccesstext' => 'وئریلن‌لر بازاسی کیلیدلندی. <br />
+باخیمین ایشلرینیز بیتدیگینده وئریلن‌لر بازاسینین [[Special:UnlockDB| کیلیدینی آچماغی]] اونوتمایین.',
 'unlockdbsuccesstext' => 'وئریلن‌لر بازاسی باغلانمیش آولا بیلر.',
+'lockfilenotwritable' => 'وئریلن‌لر بازاسی کیلیدلمه فایلی یازیلا دئییل.
+بو، وئریلن‌لر بازاسینی کیلیدله‌ییب آچا بیلمک اوچون، وئب سئروئری طرفین‌دن یازیلا اولما‌لی‌دیر.',
 'databasenotlocked' => 'وئریلن‌لر بازاسی باغلانماییب.',
 'lockedbyandtime' => '({{Gender: $1 | $1}} طرفین‌دن  $2 $3 اعتبار ایله)',
 
@@ -2362,13 +2494,26 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 
 'خبردارلیق!'
 بو یئردییشمه پوپولیار صحیفه اوچون اساس‌لی و گؤزلنیلمز اولا بیلر، اونا گؤره ده بو دییشیک‌لیگی یئرینه یئتیرمزدن اول، بونون مومکون نتیجه‌لرینی باشا دوشدوگونوزدن عمین اولون.",
+'movepagetext-noredirectfixer' => "آشاغی‌داکی فورمو دول‌دورماق بیر صحیفنی یئنی‌دن آدلاندیریر، بوتون کئچمیشینی یئنی آدا داشیییر.
+کؤهنه مؤوزو یئنی باشلیغا بیر ایستیقامتلندیرمه صحیفه‌سی اولار.
+[[Special:DoubleRedirects|جوت]] یا دا [[Special:BrokenRedirects|نوزوک ایستیقامتلندیرمه‌لر]] صحیفه‌لرینی ایداره ائدین.
+علاقه‌لرین گئتمه‌لری لازیم اولان یئرلره گئتدیک‌لرینی عمین اولماق سیزین سوروملولوغونوزدا‌دیر.
+
+یئنی باش‌لیقدا مؤوجود بیر صحیفه وارسا، بوش یا دا بیر ایستیقامتلندیرمه اولمادیقجا و دییشیک‌لیک کئچمیشی اولمادیغی تق‌دیرده، سهیف 'تاشینمایاجاکتیر.
+بو بو معنانی وئرر، بیر صحیفنی اشتباه ائتسه‌نیز صحیفنی کؤهنه آدییلا یئنی‌دن آدلان‌دیرا بیلریک، بو مؤوجود صحیفه‌نین اوزرینه یازماز.
+
+' 'خبردارلیق!'
+بو مشهور بیر صحیفه اوچون تأثیرلی و گؤزلنیلمز بیر دییشیک‌لیک اولا بیلر؛
+خاهیش ائدیریک راتیفیکاسیا ائتمه‌دن اول بونون نتیجه‌لرینی آنلادیغینیزدان امین اولون.",
 'movepagetalktext' => "اویغون دانیشیق صحیفه‌سی آوتوماتیک حرکت ائده‌جک 'گر:'
 * بوش اولمایان دانیشیق صحیفه‌سی یئنی آدلا آرتیق مؤوجوددورسا، و یا
 * سیز بایراغی آشاغی‌دان گؤتورسه‌نیز.
 
 همین حال‌لاردا ، احتیاج یارانارسا سیز صحیفه‌لری الله بیرلش‌دیرمک مجبوریتینده قالاجاقسینیز",
 'movearticle' => 'صحیفه‌نین آدینی دییش‌دیر',
+'moveuserpage-warning' => "' 'خبردارلیق:' بیر ایستیفاده‌چی صحیفه‌سینی داشیماق اوزرسینیز. خاهیش ائدیریک یالنیز صحیفه‌نین تاشیناجاغینا، آنجاق ایستیفاده‌چی‌نین یئنی‌دن آدلاندیریلمایاجاغینا دقت ائدین.",
 'movenologin' => 'سیستئمده دئییلسینیز',
+'movenologintext' => 'صحیفه‌نین آدینی دییشیک‌لیک اوچون قئیدیات‌لی و [[Special:UserLogin|سیستئمه]] داخیل اولمانیز لازیم‌دیر.',
 'movenotallowed' => 'سیز صحیفه‌لرین آدینی دییشه بیلمزسینیز.',
 'movenotallowedfile' => 'سیز فایل‌لارین آدینی دییشه بیلمزسینیز.',
 'cant-move-user-page' => 'ایستیفاده‌چی صحیفه‌لری‌نین آدینی دییشه بیلمزسینیز (باش‌لیق‌لاردان باشقا).',
@@ -2382,18 +2527,23 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'movepage-moved-noredirect' => 'یؤنلندیرمه‌نین یارادیلماسینین قارشییس آلیندی.',
 'articleexists' => 'بو آددا صحیفه آرتیق مؤوجوددور و یا سیزین سئچدیگینیز آد اویغون دئییل.
 زحمت اولماسا باشقا آد سئچین.',
+'cantmove-titleprotected' => 'بیر صحیفنی بو مؤوقئیه داشییا بیلمز، چونکی یئنی موضونون یارادیلماسی قورونور',
 'talkexists' => "'صحیفه‌نین آدی دییشدی، لاکین دانیشیق صحیفه‌سی یئنی آدلا اولدوغو اوچون دییشه بیلمیر. زحمت اولماسا، اونون آدینی اؤزونوز دییشین.'",
 'movedto' => 'داشیندی :',
 'movetalk' => 'بو صحیفه‌نین دانیشیق صحیفه‌سی‌نین ده آدینی دییش‌دیر.',
 'move-subpages' => 'یاریم صحیفه‌لری کؤچور ($1-ا قدر)',
 'move-talk-subpages' => 'دانیشیق صحیفه‌لری‌نین آلت صحیفه‌لرینی کؤچور ($1-ا قدر)',
+'movepage-page-exists' => '$1 مادده‌سی اونسوز دا وار اولماقدا‌دیر، و آوتوماتیک اولا‌راق یئنی‌دن یازیلا بیلمز.',
 'movepage-page-moved' => '$1 صحیفه‌سی $2 صحیفه‌سینه کؤچورولوب.',
 'movepage-page-unmoved' => '$1 صحیفه‌سی $2 صحیفه‌سینه کؤچوروله بیلینمیر.',
+'movepage-max-pages' => 'ان چوخ $1 {{PLURAL:$1|صحیفه |صحیفه}} داشیندی و داها چوخو آوتوماتیک اولا‌راق تاشیناماز.',
 'movelogpage' => 'يئرديیشمه سییاهه',
+'movelogpagetext' => 'آشاغیدا اولان سیاهی آدی دییشدیریلمیش صحیفه‌لری گؤستریر.',
 'movesubpage' => '{{PLURAL:$1|آلتینداکی صحیفه}}',
+'movesubpagetext' => 'بو صحیفه‌نین آشاغیدا گؤستریلن $1 {{PLURAL: $1 | آلت صحیفه سی | آلت صحیفه اسی}} وار.',
 'movenosubpage' => 'بو صحیفه‌نین آلت صحیفه‌سی یوخ‌دور.',
 'movereason' => 'ندن:',
-'revertmove' => 'گئری آل',
+'revertmove' => 'گئریآل',
 'delete_and_move' => 'سیل و آپار',
 'delete_and_move_text' => '==هازیرکی مقاله‌نین سیلینمه‌سی لازیم‌دیر==
 
@@ -2406,14 +2556,33 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'immobile-target-namespace-iw' => 'ویکیلر اراسی علاقه، صحیفه داشیماسی اوچون اعتبارلی بیر هدف دئییل.',
 'immobile-source-page' => 'بو صحیفه‌نین آدی دییش‌دیریله بیلمز.',
 'immobile-target-page' => 'بو هدف باش‌لیغینا داشینمیر.',
+'bad-target-model' => 'هدف فرق‌لی بیر مزمون مودئل ایستیفاده ائدیر. $1 $2 مومکون دئییل.',
+'imagenocrossnamespace' => 'قئيری-فايل آد ایماگئ کؤچورمه يوخدور',
+'nonfile-cannot-move-to-file' => 'فایل اولمایان‌لار، فایل آد ساحه‌سینه تاشیناماز',
+'imagetypemismatch' => 'یئنی فایل علاوه‌سی تیپیله بیربیر لر ایله دوز دئمیر',
 'imageinvalidfilename' => 'سئچیلمیش فایل آدی کئچرسیزدیر.',
+'fix-double-redirects' => 'اوریژینال باشلیغا ایشاره ائدن گیزلت یوکله',
+'move-leave-redirect' => 'آرخادا بیر ایستیقامتلندیرمه بوراخ',
 'protectedpagemovewarning' => "'''خبردارلیق:''' بو صحیفه محافظه ائدیلدیگی اوچون اونون آدینی یالنیز ایداره‌چی‌لر دییشه بیلرلر.",
+'semiprotectedpagemovewarning' => "'''قئید:' بو صحیفه کیلیدلنمیش، یالنیز قئیدیات‌لی ایستیفاده‌چی‌لر داشییا بیلر.
+سون گونده‌لیک گیردی‌سی ایستیناد مقصدلی آشاغیدا وئریلمیش‌دیر:",
+'move-over-sharedrepo' => '== فایل مؤوجود ==
+[[:$1]] پایلاشیلمیش هوووزدا مؤوجود. بیر فایلی بو باشلیغا داشیماق پایلاشیلمیش فایلین اوستونه گله‌جک.',
+'file-exists-sharedrepo' => 'سئچیلن آد پایلاشیلمیش بیر هوووزدا اونسوز دا مؤوجود.
+خاهیش ائدیریک باشقا بیر آد سئچین.',
 
 # Export
 'export' => 'صحیفه‌‌لری ایخراج ائت',
+'exporttext' => 'مویین بیر صحیفه و یا صحیفه کومانداسینین متنی و دییشدیرمه کئچمیشینی خمل ایله ساری‌لی اولا‌راق خاریجه کؤچوره بیلرسینیز.
+بو، مئدیاویکی ایستیفاده باشقا بیر ویکی [[Special:Import|ایچه کؤچورمه صحیفه‌سی]] ایله ایچه کؤچوروله بیلر.
+
+صحیفه‌لری خاریجه کؤچورمک اوچون، باش‌لیق‌لاری آشاغی‌داکی متن قوتوسونا داخیل ائدین، هر سطره بیر دنه، و کؤهنه سوروملئرلئ بیرلیکده ایندیکی وئرسیاسی، صحیفه کئچمیشی سطرلرینی، یا دا سون دییشیک‌لیک ملوماتییلا بیرلیکده آکتوال وئرسیاسی ایسته‌ییب ایستمدیگینیزی قئید ائدین.
+
+سونونجو حالدا، بیر لینک ده ایستیفاده ائده بیلرسینیز، هؤر: "[[{{MediaWiki:Mainpage}}]]" صحیفه‌سی اوچون [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].',
 'exportall' => 'بوتون صحیفه‌لری خاریجه کؤچور',
 'exportcuronly' => 'بوتون تاریخچنی دئییل، یالنیز حال-هازیرکی نوسخه نی داخیل ائت',
 'exportnohistory' => 'هدف‌لنن قایناق صحیفه‌سی (ایسته‌یه باغ‌لی):',
+'exportlistauthors' => 'هر صحیفه‌‌ اوچون دَییشدیرمه ائدن سیياهیسینی اؤزونده ساخلايین',
 'export-submit' => 'ایخراج',
 'export-addcattext' => 'صحیفه‌لری بو بولمه دن علاوه ائت:',
 'export-addcat' => 'علاوه ائت',
@@ -2429,10 +2598,13 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'allmessagesdefault' => 'دفالت دانیشیق متنی',
 'allmessagescurrent' => 'ایندیکی متن',
 'allmessagestext' => 'بو مئدیا ویکی-ده اولان سیستئم مئساژلارینین سیاهی‌سی‌دیر. اگر مئدیا ویکی-نی لوکاللاش‌دیرماق ایشینده کؤمک ائتمک ایسییرسینیزسه، لطفاً [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] و [//translatewiki.net translatewiki.net]-ا باش چکین.',
+'allmessagesnotsupportedDB' => "'''\$ wgUseDatabaseMessages''' باغ‌لی اولدوغو اوچون '{{ns:special}}: Allmessages ایستیفاده‌یه آچیق دئییل.",
 'allmessages-filter-legend' => 'فیلتر',
+'allmessages-filter' => 'خصوصی ائتمک وضعیتینه گؤره فیلترلی:',
 'allmessages-filter-unmodified' => 'دییشدیریلممیش',
 'allmessages-filter-all' => 'هامیسی',
 'allmessages-filter-modified' => 'دییشدیریلمیش',
+'allmessages-prefix' => 'اؤنک ایله فیلترلی:',
 'allmessages-language' => 'دیل',
 'allmessages-filter-submit' => 'گئت',
 
@@ -2442,6 +2614,10 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'thumbnail_error' => 'کیچیک شکیل یاراتما خطاسی: $1',
 'djvu_page_error' => 'DjVu صحیفه‌سی الچاتمازدیر',
 'djvu_no_xml' => 'DjVu اوچون XML فایلی آلماق مومکون دئییل.',
+'thumbnail-temp-create' => 'ائلمک اولماز بارماق اولچوسوجه موقت فایل دوزتمک اولا',
+'thumbnail-dest-create' => 'باجاریقسیز تعییناتا باش بارماغین دیرناغینی خلاص ائتمک اوچون',
+'thumbnail_invalid_params' => 'اعتبارسیز کیچیک شکیل پارامئترلری',
+'thumbnail_dest_directory' => 'هدف قورو‌لوغو یارادیلا بیلمیر',
 'thumbnail_image-type' => 'گؤرونوش نؤع دستکله‌نیلمیر',
 'thumbnail_gd-library' => "' 'قئید:' صحیفه‌لرین بوتون کئچمیشینی بو فورملا خاریجه اؤتورولمه‌سی، پئرفورمانس سبب‌لرین‌دن اؤتری دؤوره خاریجی بوراخیلمیش‌دیر.$1",
 'thumbnail_image-missing' => 'بئله گؤرونور کی، $1 فایلی یوخ‌دور',
@@ -2449,6 +2625,9 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 # Special:Import
 'import' => 'صحیفه‌لری ایدخال ائت',
 'importinterwiki' => 'ویکیلر اراسی چیخارما',
+'import-interwiki-text' => 'ایچه کؤچورمک اوچون بیر wiki و صحیفه باش‌لیغی سئچین.
+رئویزیون تاریخ‌لری و یازارلارین آدلاری قورونا‌جاق.
+بوتون ویکیلئراراسی ایچه کؤچورمه حرکت‌لری [[Special:Log/import|ایچه کؤچورمه گوندلیگینده]] یازیلماقدا‌دیر.',
 'import-interwiki-source' => 'قایناق ویکی/صحیفه:',
 'import-interwiki-history' => 'صحیفه‌نین دییشمه تاریخچه‌لری‌نین هامی‌سینی کؤچور',
 'import-interwiki-templates' => 'بوتون شابلون‌لارلا بیرلیکده',
@@ -2462,6 +2641,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'importstart' => 'صحیفه‌لری ایچری توکمه حالیندا...',
 'import-revision-count' => '$1 {{PLURAL:$1|دییشدیر|دییشدیرین}}',
 'importnopages' => 'ایچری توکمه صحیفه یوخ‌دور.',
+'imported-log-entries' => '$1{{PLURAL:$1|گونده‌لیک گیردی‌سی |گونده‌لیک گیردی‌سی}}ایچه کؤچوردو.',
 'importfailed' => 'اوغورسوز چیخاریش: <nowiki>$1</nowiki>',
 'importunknownsource' => 'بیلینمه‌ین ایچری کؤچورمه قایناق نؤوو',
 'importcantopen' => 'ایچری توکمه فایل پرونده لری آچیلمادی',
@@ -2470,13 +2650,28 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'importsuccess' => 'ایچری توکمه باشا چاتدی!',
 'importhistoryconflict' => 'اوست-اوسته دوشمه‌ین کئچمیش رئویزیونو مؤوجود (بو صحیفه داها اول‌دن ایچه کؤچورولموش اولا بیلر)',
 'importnosources' => 'هئچ ویکیلئراراسی ایچه کؤچورمه قایناغی تعیین و بیرباشا کئچمیش یوکلملری دؤوره خاریجی.',
+'importnofile' => 'بیر کؤچورمه فایلی یوکلنمدی.',
+'importuploaderrorsize' => 'ایچه کؤچورولموش فایلین یوکلنمه‌سی اوغورسوز اولدو.
+فایل، ایجازه وئریلن یوکلمه اؤلچوسون‌دن بؤیوک.',
+'importuploaderrorpartial' => 'ایچه کؤچورولموش فایلین یوکلنمه‌سی اوغورسوز اولدو.
+فایلین یالنیز بیر قیسیمی یوکلندی.',
+'importuploaderrortemp' => 'ایچه کؤچورولن فایلین یوکلنمه‌سی اوغورسوز اولدو.
+مووققتی فایل ایتکین.',
+'import-parse-failure' => 'اکس ام ال ایچری کؤچورمه ییغماسی موفقیت‌سیز',
 'import-noarticle' => 'یوکلمگه صحیفه یوخدور!',
+'import-nonewrevisions' => 'بوتون نوسخه لر اول‌دن ایچه کؤچورولموش.',
 'xml-error-string' => '$1 $2 سترینده، $3 سوتونوندا ($4 بایت): $5',
 'import-upload' => 'XML-وئریلنی یوکله',
 'import-token-mismatch' => 'سئانس معلومات‌لارینین ایتیریلمه‌سی. لطفاً، یئنی‌دن جهد ائدین.',
 'import-invalid-interwiki' => 'گؤستریلن ویکی‌دن کؤچورمک مومکون دئییل',
 'import-error-edit' => '"$1" صحیفه‌سی ایدخال ائدیله بیلینمیر، چونکی اونو دییشمک سلاهیتینیز یوخ‌دور.',
 'import-error-create' => '"$1" صحیفه‌سی آچیلمیر، چونکی اونو یاراتماق سلاهیتینیز یوخ‌دور.',
+'import-error-interwiki' => 'صحیفه "$1" داخیل ائدیلممیش‌دیر. چونکی اونون خاریجی باغلانتی سی (interwiki) یئری توتولوب و رئزرو اولوب.',
+'import-error-special' => 'صحیفه «$1» ایچری توکمه اولنمادی، نیه کی بیر اجازه سیز آد ین فضاسینا تعلوقو وار.',
+'import-error-invalid' => 'صحیفه "$1" اعتبار سیز اولماق دلیل اوچون آدی داخیل اولنمور.',
+'import-options-wrong' => '{{PLURAL:$2|جزئیات| جزئیات}} یانلیش: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'وئریلن کؤک صحیفه‌‌سی اعتبارسیز آددیر.',
+'import-rootpage-nosubpage' => 'آد فضا سی  "$1" آنا باسئ ٔآلت صحیفه اوچون اجازه وئرمیر.',
 
 # Import log
 'importlogpage' => 'چیخاریلما گونده‌لیگی',
@@ -2499,19 +2694,19 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'ایستیفاده‌چی صفحه‌نیز',
 'tooltip-pt-anonuserpage' => 'سیز او آی‌پی آدرسیله دَییشیکلیک ائتدیگینیز ایستیفاده‌چی صحیفه‌سی',
-'tooltip-pt-mytalk' => 'دانیشیق یارپاغیز',
+'tooltip-pt-mytalk' => 'دانیشیق صحیفه‌نیز',
 'tooltip-pt-anontalk' => 'بو آی‌پی آدرسینین دَییشیکلیکلرینه گؤره دانیشیق',
 'tooltip-pt-preferences' => 'ترجیحلرینیز',
 'tooltip-pt-watchlist' => 'دییشمکلرینی ایزله‌دیگینیز صفحه‌لرین سیاهی‌سی',
-'tooltip-pt-mycontris' => 'ائتدÛ\8cÚ¯Û\8cÙ\85 Ø¯Ù\8aÙ\8eÛ\8cØ´Û\8cÚ©Ù\84Û\8cÚ©â\80\8cÙ\84رÛ\8cÙ\86 Ø³Û\8cÙ\8aاÙ\87Û\8cسی',
-'tooltip-pt-login' => 'داخیل اولمانیز توصیه‌‌ اولونور، آمما بو مجبوری طلب دئيیل.',
+'tooltip-pt-mycontris' => 'سÛ\8cزÛ\8cÙ\86 Ú\86اÙ\84Û\8cØ´Ù\85اÙ\84ارÛ\8cÙ\86Û\8cزÛ\8cÙ\86 Ù\84Û\8cستی',
+'tooltip-pt-login' => 'گیریش ائتمه‌یینیز توصیه اولونور؛ اما گرکلی دئییل',
 'tooltip-pt-anonlogin' => 'داخیل اولمانیز توصیه‌‌ اولونور، آمما طلب اولونمور.',
 'tooltip-pt-logout' => 'چیخیش',
 'tooltip-ca-talk' => 'ایچینده‌کیلره گؤره دانیشیق',
 'tooltip-ca-edit' => 'سیز بو صحیفه‌نی دَییشدیره بیلرسینیز. لوطفاً قئید ائتمه‌دن اونجه اؤن‌گؤستریش دویگه‌سینی ایشلدین',
 'tooltip-ca-addsection' => 'یئنی بؤلوم یارات',
 'tooltip-ca-viewsource' => 'بو صحیفه‌‌ محافظه‌‌ اولونوب. آمما سیز اونون متنینه باخاب و متنین صورتینی کؤچوره بیلرسینیز.',
-'tooltip-ca-history' => 'بۇ صحیفه‌‌نین کئچمیش نۆسخه‌لری.',
+'tooltip-ca-history' => 'بو صحیفه‌نین گئچمیش نوسخه‌لری',
 'tooltip-ca-protect' => 'بو صحیفه‌نی قورو',
 'tooltip-ca-unprotect' => 'بو صحیفه‌نین قوروماسینی دَییشدیر',
 'tooltip-ca-delete' => 'بو صحیفه‌‌نی سیل',
@@ -2523,20 +2718,20 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'tooltip-search-go' => 'اولورسا بو آددا بیر صحیفه‌یه گئت',
 'tooltip-search-fulltext' => 'بو یازی اولان صحیفه‌لری آختار',
 'tooltip-p-logo' => 'آنا صحیفه‌یه باخ',
-'tooltip-n-mainpage' => 'آنا صحیفه‌ یه باخین',
+'tooltip-n-mainpage' => 'آنا صحیفه‌یه باخین',
 'tooltip-n-mainpage-description' => 'آنا صحیفه‌یه باخین',
 'tooltip-n-portal' => 'پروژه‌ یه گؤره، سیز نه ایش گوره بیلرسیز، هاردا نه‌لری تاپا بیلرسیز',
 'tooltip-n-currentevents' => 'گونجل اولایلارلا ایلگیلی بیلگیلر تاپ',
 'tooltip-n-recentchanges' => 'بو ویکی‌ده سون دَییشیکلرین لیستی',
-'tooltip-n-randompage' => 'بیرصحیفه صحیفه‌لردن گتیر',
+'tooltip-n-randompage' => 'بیر راست‌گله صحیفه گتیر',
 'tooltip-n-help' => 'آنلاماق یئری',
-'tooltip-t-whatlinkshere' => 'بورایا لینک اولان بوتون صحیفه‌لرین لیستی',
+'tooltip-t-whatlinkshere' => 'بورایا باغلانان بوتون ویکی صحیفه‌لرین لیستی',
 'tooltip-t-recentchangeslinked' => 'بۇ مقاله‌يه عاید باشقا صحیفه‌‌لرده يئنی ديَیشیکلیکلر',
 'tooltip-feed-rss' => 'بو صحیفه‌‌ اوچون آراس‌اس يايیمی',
 'tooltip-feed-atom' => 'بو صحیفه‌‌ اوچون آتوم يايیمی',
 'tooltip-t-contributions' => 'بو ایستیفاده‌چی‌نین وئردیگی دییشیکلر سیاهی‌سی',
 'tooltip-t-emailuser' => 'بو ایستیفاده‌چی یه بیر ایمیل گؤندر',
-'tooltip-t-upload' => 'Ù\8aئÙ\86Û\8c Ø´Ú©Û\8cÙ\84 Ù\88 Ù\8aا Ù\85Ù\88Ù\84تÛ\8câ\80\8cÙ\85ئدÛ\8cا Ù\81اÙ\8aÙ\84Û\8c Ù\8aوکله',
+'tooltip-t-upload' => 'Ù\81اÛ\8cÙ\84â\80\8cÙ\84ار Û\8cوکله',
 'tooltip-t-specialpages' => 'بوتون اؤزل صحیفه‌لرین لیستی',
 'tooltip-t-print' => 'بو صحیفه‌‌نین چاپ ائدیلن نوسخه‌سی',
 'tooltip-t-permalink' => 'یارپاغا بو وئرسیياسینا دایمی کئچید',
@@ -2545,7 +2740,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'tooltip-ca-nstab-media' => 'مئدیا-فايل',
 'tooltip-ca-nstab-special' => 'بو بیر اؤزل یارپاق‌دیر، سیز اونو دَییشدیره بیلمزسیز',
 'tooltip-ca-nstab-project' => 'پروژه صحیفه‌سینه باخ',
-'tooltip-ca-nstab-image' => 'فايلین صحیفه‌‌سینه باخ',
+'tooltip-ca-nstab-image' => 'فايل صحیفه‌‌سینه باخین',
 'tooltip-ca-nstab-mediawiki' => 'سیستم مئساژلرینه باخ',
 'tooltip-ca-nstab-template' => 'شابلونا باخ',
 'tooltip-ca-nstab-help' => 'یاردیم صحیفه‌‌سی',
@@ -2601,6 +2796,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'pageinfo-default-sort' => 'فرض ائدیلن سیرالاما آچاری',
 'pageinfo-length' => 'صحیفه‌‌ اوزونلوغو (بايت)',
 'pageinfo-article-id' => 'صحیفه اید-سی',
+'pageinfo-language' => 'صحیفه مضمونونون دیلی',
 'pageinfo-robot-policy' => 'آختاریش سیستمین دورومو',
 'pageinfo-robot-index' => 'سییاهه آلینیشی',
 'pageinfo-robot-noindex' => 'ایندِکسله‌نه بیلمز',
@@ -2620,9 +2816,14 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'pageinfo-magic-words' => 'سیحیرلی {{PLURAL:$1|بیر|$1}} سؤزجوک ($1)',
 'pageinfo-hidden-categories' => 'گیزلی {{PLURAL:$1|بؤلمه|بؤلمه‌لر}} ($1)',
 'pageinfo-templates' => 'ایشله‌دیلمیش {{PLURAL:$1|بیر|$1}} شابلون ($1)',
+'pageinfo-toolboxlink' => 'صحیفه بیلگی سی',
+'pageinfo-redirectsto' => 'ایستیقامتلن‌دیریلن',
 'pageinfo-redirectsto-info' => 'بیلگی',
+'pageinfo-contentpage' => 'بیر مزمون صحیفه‌سی ساییلیر',
 'pageinfo-contentpage-yes' => 'بلی',
+'pageinfo-protect-cascading' => 'مدافعه‌‌لر بورادان شراره کیمی تؤکولور',
 'pageinfo-protect-cascading-yes' => 'بلی',
+'pageinfo-protect-cascading-from' => 'شراره مدافعه‌‌لر بورادان',
 
 # Patrolling
 'markaspatrolleddiff' => 'ایداره ائدیلمیش اولا‌راق ایشاره‌له',
@@ -2632,7 +2833,10 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'rcpatroldisabled' => 'سون دییشیک‌لیک‌لرین پاتروللانماسی قاداغان‌دیر',
 'rcpatroldisabledtext' => 'سون دییشیک‌لیک‌لرین یوخلانیلماسی حال-حاضردا مومکون دئییل.',
 'markedaspatrollederror' => 'یوخلانمادی',
+'markedaspatrollederrortext' => 'موشاهیده کیمی ایشاره‌لمک اوچون بیر رئویزیون ائتملیسینیز.',
 'markedaspatrollederror-noautopatrol' => 'اؤز دییشیک‌لیک‌لرینیزی یوخلاییب ایشاره‌له‌یه بیلمزسینیز.',
+'markedaspatrollednotify' => '$1-اوستونده ديَیشیکلیک قئيد ائدیلمیشدیر، نئجه کی پاترول کئشیگی چکدی.',
+'markedaspatrollederrornotify' => 'دولانماق برچسبی مووفقیت سیز اولدو',
 
 # Patrol log
 'patrol-log-page' => 'پاترول گونده‌لیگی',
@@ -2646,6 +2850,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 
 $1',
 'filedelete-missing' => '"$1" فایلی مؤوجود اولمادیغین‌دان سیلینه بیلینمیر.',
+'filedelete-old-unregistered' => 'گؤستریلن فایل نوسخه سی "$1" وئریلن‌لر بازاسیندا یوخ‌دور.',
 'filedelete-current-unregistered' => 'گؤستریلن "$1" فایلی وئریلن‌لر بازاسیندا یوخ‌دور.',
 'filedelete-archive-read-only' => '"$1" کاتالوقونون آرشیوی وئب-سئروئر یازی‌لاری اوچون باغلی‌دیر.',
 
@@ -2654,30 +2859,40 @@ $1',
 'nextdiff' => 'یئنی دَییشدیرمه',
 
 # Media information
+'mediawarning' => "'''خبردارلیق: بو ​​فایل نوعو پیس نیت‌لی کودلار اولا بیلر.
+بونو ایشلتمک، سیستئمینیزی تهلوکه‌یه آتا بیلر.",
 'imagemaxsize' => "شکیلین ماکسیمال توتومو:<br />(فایلین تصویری صحیفه‌لری اوچون)'",
 'thumbsize' => 'کیچیک اؤلچو:',
 'widthheightpage' => '$1 × $2، $3 {{PLURAL:$3|صحیف|صحیفه‌لر}}',
 'file-info' => 'فایلین اؤلچوسو: $1، MIME تیپی: $2',
 'file-info-size' => '$1 × $2 پیکسل, فایل اؤلچوسو: $3, MIME نوعو: $4',
+'file-info-size-pages' => '$1 × $2 پیکسئل، فایلین اؤلچوسو: $3، میمئ نؤوو: $4، $5 {{PLURAL:$5|صحیفه| صحیفه}}',
 'file-nohires' => 'یوخاری کیفیت الده یوخدور.',
 'svg-long-desc' => 'SVG فایلی، $1 × $2 پیکسئل، فایلین اؤلچوسو: $3',
-'show-big-image' => 'یوکسک کیفیت‌لی',
+'svg-long-desc-animated' => 'فایل اس‌وی‌جی حرکت ائدن، ابعادی <span dir="ltr">$1 × $2</span> پیکسل، فایل اولچوسو: $3',
+'show-big-image' => 'یوکسک کیفیتلی',
 'show-big-image-preview' => 'سیناق گؤستریشی اؤلچوسو: $1.',
 'show-big-image-other' => 'دیگر {{PLURAL:$2|نتیج|نتیجه‌لر}}: $1.',
 'show-big-image-size' => '$1 × $2 پیکسئل',
 'file-info-gif-looped' => 'ایلملنیب',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|فرامئ|چرچیوه}}',
 'file-info-png-looped' => 'ایلملنیب',
+'file-info-png-repeat' => '$1 {{PLURAL: $ 1|دفعه| دفعه}} اویناتیلدی',
 'file-info-png-frames' => '$1 {{PLURAL:$1|فرامئ|چرچیوه}}',
+'file-no-thumb-animation' => "'''قئید:تئکنیکی مسئله‌لر سببیندن قاباق دان گورسنمه فایل متحرک شکیلی گؤرستمیر .",
+'file-no-thumb-animation-gif' => "'''قئید:فنی مسائیله گوره GIF  فایلارین و اونا تای اولانان لار  قالباق دان گورستمه پروقرمی متحرک حالیندا گورسدیلمیجک.'''",
 
 # Special:NewFiles
 'newimages' => 'یئنی فایل‌لارین سیاهی‌سی',
+'imagelisttext' => "آشاغی‌داکی سیاهی '$2 گؤره دوزولموش {{PLURAL:$1|ادد فایلی| ادد فای‌لی}} گؤستریر.",
+'newimages-summary' => 'بو خصوصی صحیفه، ان سون یوک‌لنن فایل‌لاری گؤستریر.',
 'newimages-legend' => 'فیلتر',
 'newimages-label' => 'فایلین (و یا اونون بیر حیسه‌سی‌نین) آدی:',
 'showhidebots' => '($1 روبات دییشدیر)',
 'noimages' => 'هئچ نیی گؤرممک.',
 'ilsubmit' => 'آختار',
 'bydate' => 'تاریخین اوستوندن',
+'sp-newimages-showfrom' => '$1، $2 تاریخی اعتباری ایله یئنی فایل‌لاری گؤستر',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 'seconds' => '{{PLURAL:$1|$1 ثانی|$1 ثانییه}}',
@@ -2744,10 +2959,14 @@ $1',
 'exif-artist' => 'یازار',
 'exif-copyright' => 'یازانلار حقوقو صاحبی',
 'exif-exifversion' => 'exif نوسخه سی',
+'exif-flashpixversion' => 'دستک‌لنن Flashpix نوسخه سی',
 'exif-colorspace' => 'رنگ ساحه‌سی',
+'exif-componentsconfiguration' => 'هر بیلشنین معناسی',
+'exif-compressedbitsperpixel' => 'شکیل سیخیشدیرما فورماتی',
 'exif-pixelydimension' => 'شکیلین انی',
 'exif-pixelxdimension' => 'شکیلین اوزوناسی',
 'exif-usercomment' => 'استفادچی شرحی',
+'exif-relatedsoundfile' => 'حاقیندا سس لی فایل',
 'exif-datetimeoriginal' => 'اورژینال یاراتما زامانی',
 'exif-datetimedigitized' => 'دیجیتالی‌ اولان تاریخ و زمانی',
 'exif-subsectime' => 'آلت-ایکینجی واخت',
@@ -2773,18 +2992,64 @@ $1',
 'exif-flashenergy' => 'فلاش ائنئرژی‌سی',
 'exif-focalplanexresolution' => 'صفحهٔ کانونی سویه X هللولما دقیق‌لیگی',
 'exif-focalplaneyresolution' => 'صفحهٔ کانونی ده تفکیک‌پذیری Y',
+'exif-focalplaneresolutionunit' => 'کانونی صحیفه نین بیربیرندن سئچمه واحدی',
+'exif-subjectlocation' => 'سوژه یئری',
+'exif-exposureindex' => 'ایشیق شاخیصی',
+'exif-sensingmethod' => 'قبول ائتمه مئتودو',
+'exif-filesource' => 'فایل قایناقی',
+'exif-scenetype' => 'صحنه تیپی',
+'exif-customrendered' => 'شخصی شکیل عملیاتی',
+'exif-exposuremode' => 'ایشیق وئرمه حالتی',
+'exif-whitebalance' => 'آغ بالانسی',
+'exif-digitalzoomratio' => 'یاخینلاشدیرما نیسبتی (زوم)',
+'exif-focallengthin35mmfilm' => '35 میلی متر-لیک فیلمده مرکز اوزاق‌لیغی',
+'exif-scenecapturetype' => 'سهنه توتما تیپی',
+'exif-gaincontrol' => 'سهنه ایداره‌سی',
+'exif-contrast' => 'کونتراست',
+'exif-saturation' => 'دویموشلوق',
+'exif-sharpness' => 'کسکین‌لیک',
+'exif-devicesettingdescription' => 'دسگاهین تنظیم لر تعریف‌لری',
+'exif-subjectdistancerange' => 'سوژه نین مسافه محدوده سی',
+'exif-imageuniqueid' => 'شکیل خصوصی شخصیتی',
+'exif-gpsversionid' => 'جی پی اس ائتیکئت نوسخه سی',
+'exif-gpslatituderef' => 'شیمال و یا جنوب جغرافیایی ائنی',
+'exif-gpslatitude' => 'جغرافیایی ائنی',
+'exif-gpslongituderef' => 'جغرافیایی شرق و یا قرب اوزونلوقو',
+'exif-gpslongitude' => 'جغرافیایی اوزوناسی',
+'exif-gpsaltituderef' => 'اوجالیق یئری',
 'exif-gpsaltitude' => 'يوکسکلیک',
+'exif-gpstimestamp' => 'جی پی اس واختی (آتوم ساعتی)',
+'exif-gpssatellites' => 'اؤلچمک اوچون ایستیفاده ائتدیگی پئیک‌لر',
+'exif-gpsstatus' => 'ایستاتوسو قبول ائدن',
+'exif-gpsmeasuremode' => 'اؤلچمه اوصولو',
 'exif-gpsdop' => 'اؤلچونون دقیقلیگی',
 'exif-gpsspeedref' => 'سرعت اونیتی',
+'exif-gpsspeed' => 'چی پی اس قبولئدیجی‌نین سرعتی',
+'exif-gpstrackref' => 'جهت حرکتی اوچون قایناق',
 'exif-gpstrack' => 'ایدارئتمه مئخانیزمی',
+'exif-gpsimgdirectionref' => 'شکیل جهتی اوچون قایناق',
 'exif-gpsimgdirection' => 'شکلین ایستیقامتی',
+'exif-gpsmapdatum' => 'نقشه‌گوتورمک اطلاعاتی ژئودزیک',
+'exif-gpsdestlatituderef' => 'جغرافیایی ائنی مقصد اوچون قایناق',
 'exif-gpsdestlatitude' => 'ائن دایره‌سی‌نین تعیین اولونماسی',
+'exif-gpsdestlongituderef' => 'جغرافیایی اوزوناسی مقصد اوچون قایناق',
 'exif-gpsdestlongitude' => 'اوزونلوق دایره‌سی‌نین تعیین اولونماسی',
+'exif-gpsdestbearingref' => 'مقصد جهتی اوچون قایناق',
 'exif-gpsdestbearing' => 'اوبيئکتین پئلئنقی',
+'exif-gpsdestdistanceref' => 'قایناق فاصله مقصد چان',
 'exif-gpsdestdistance' => 'مسافه',
+'exif-gpsprocessingmethod' => 'چی پی اس پردازیشینین آدی',
+'exif-gpsareainformation' => 'چی پی اس ساحه‌نین آدی',
+'exif-gpsdatestamp' => 'چی پی اس زامانی',
+'exif-gpsdifferential' => 'چی پی اس ین جزئی اصلاحی',
+'exif-jpegfilecomment' => 'JPEG شکیل شرحی',
 'exif-keywords' => 'آچار سؤزلر',
 'exif-worldregioncreated' => 'شکلین چکیلدیگی دونيا یئرلری',
 'exif-countrycreated' => 'شکلین چکیلدیگی اؤلکه',
+'exif-countrycodecreated' => 'شکلین چکیلدیگی اؤلکه‌نین کودو',
+'exif-provinceorstatecreated' => 'شکلین چکیلدیگی ایالت،آدی',
+'exif-citycreated' => 'شکلین چکیلدیگی شهر',
+'exif-sublocationcreated' => 'شکلین چکیلدیگی شهرین بخش آدی',
 'exif-worldregiondest' => 'تصویر ائدیلمیش دونیا بؤلگه‌سی',
 'exif-countrydest' => 'تصویر اولونموش اؤلکه',
 'exif-countrycodedest' => 'تصویر ائدیلمیش اؤلکه‌نین کودو',
@@ -2810,18 +3075,25 @@ $1',
 'exif-iimsupplementalcategory' => 'علاوه بولمه لر',
 'exif-datetimeexpires' => 'سونرا ایشلتمه',
 'exif-datetimereleased' => 'چیخیش تاریخی',
+'exif-originaltransmissionref' => 'اصلی تاشیماق یئر کودو',
 'exif-identifier' => 'تانیملاییجی',
 'exif-lens' => 'ایستیفاده اولونموش لنز',
 'exif-serialnumber' => 'کامئرانین سئریال نؤمره‌سی',
 'exif-cameraownername' => 'کامئرانین صاحبی',
 'exif-label' => 'نیشان',
+'exif-datetimemetadata' => 'سون دَییشیکلر تاریخی',
 'exif-nickname' => 'شکلین قئيری-رسمی آدی',
 'exif-rating' => 'قیيمت (5 اوزرینده)',
+'exif-rightscertificate' => 'ایداره‌چی گوواهی حاقی',
 'exif-copyrighted' => 'ستاتوسون یازانلار حقوقو',
 'exif-copyrightowner' => 'یازانلار حقوقو صاحبی',
 'exif-usageterms' => 'ایستیفاده قايداسی',
 'exif-webstatement' => 'اینتئرنئتده مؤلف‌لیک حقوق‌لاری قایدا‌لاری',
+'exif-originaldocumentid' => 'تانیشچی تکجه سند',
+'exif-licenseurl' => 'مؤلف حقوقو اینترنت آدرسی تکثیر حقی اوچون',
 'exif-morepermissionsurl' => 'آلتئرناتیو لیسئنزیيا بیلگی‌لری',
+'exif-attributionurl' => 'بو ایشی یئنی‌دن ایستیفاده لطفاً علاقه وئرین',
+'exif-preferredattributionname' => 'ایستیفاده ائدیلنده لطفاً علاقه وئرین',
 'exif-pngfilecomment' => 'PNG شکیل شرحی',
 'exif-disclaimer' => 'مسئولیتدن ایمتیناع',
 'exif-contentwarning' => 'متن خبردارلیغی',
@@ -2832,9 +3104,14 @@ $1',
 'exif-event' => 'تصویر ائدیلمیش حادثه‌‌',
 'exif-organisationinimage' => 'تصویر ائدیلمیش قوروملار',
 'exif-personinimage' => 'تصویر ائدیلمیش شخص',
+'exif-originalimageheight' => 'شکیلین کسیلمه دن اوولکی اوجالیقی',
+'exif-originalimagewidth' => 'شکیلین کسیلمه دن اوولکی گئنیش‌لیگی',
 
 # EXIF attributes
 'exif-compression-1' => 'سیخیلمامیش',
+'exif-compression-2' => 'پسوورد قویماق سی‌سی‌آی‌تی‌تی ۳  گروه دا بیر بعدی هافمن روشی ایله اوزوناسی اوستونده دییشیلیب',
+'exif-compression-3' => 'رمز قرار وئرمک سی‌سی‌آی‌تی‌تی گروپ ۳',
+'exif-compression-4' => 'رمز قرار وئرمک سی‌سی‌آی‌تی‌تی گروپ 4',
 
 'exif-copyrighted-true' => 'مؤلف‌لیک حقوقو ایله قورونور',
 'exif-copyrighted-false' => 'عمومی دامنه',
@@ -3053,15 +3330,81 @@ $1',
 
 # E-mail address confirmation
 'confirmemail' => 'ایمیل-پوست اونوانینی تصدیق ائت',
+'confirmemail_noemail' => '[[Special:Preferences|ایستیفاده‌چی ترجیه لرینی]] تعیین اولونموش اویغون بیر ایمیل عنوانینیز یوخ.',
+'confirmemail_text' => 'ویکینین ایمیل اعتباری کوللانمابیلمئک اوچون، اول ایمیل عنوانینیزین تصدیقلنمه‌سی لازیم‌دیر.
+اونوانینیزا تسدیق ائ-پوچت گؤندرمک اوچون آشاغی‌داکی بوتونو تیکلایین.
+گؤندریله‌جک ایسماریج‌لار اونوانینیزی تسدیقلمک اوچون براوزئری ایله سیز گیریش ایمکانینیز، تسدیق کودو ائهتیوا ائدن بیر علاقه اولا‌جاق؛
+لینکی تاراییجینیدا آچین و ایمیل عنوانینیزین اعتبارلی‌لیغینی یوخلایین.',
+'confirmemail_pending' => 'بیر تسدیقلمه کودو سیزه اونسوز دا ایمیلندی؛
+اگر حسابینیزی یئنی آچ بیلسنیز، یئنی بیر کود ایستمه‌یه ایشدن اول گلمه‌سینی بیر آز گؤزلمیی ایسته‌یه بیلرسینیز.',
 'confirmemail_send' => 'تسدیق کودو گؤندر',
+'confirmemail_sent' => 'تصدیق ایمیل مکتوبو گؤندریلدی.',
+'confirmemail_oncreate' => 'بیر تصدیقله‌مه کودو ائ-پوست اونوانینیزا گؤندریلدی. 
+گیریش ائتمک اوچون بو کود لازیملی دئيیل، آنجاق بو ویکیدئکی هر هانسی بیر ائ-پوست اساسلی خصوصیتی دؤوره‌يه سوخماق اوچون بونو تعمین ائتمک مجبوریتینده‌سینیز.',
+'confirmemail_sendfailed' => '{{SITENAME}} تسدیق مای‌لی گؤندره. اعتبارسیز کاراکتئرلر اولا بیلر اونوانی نظارت ائدین
+
+مایل پروقرامی قایتاردی: $1',
+'confirmemail_invalid' => 'خطاتسدیقله‌مه کودو. کودون واختی کئچمیش اولا بیلر.',
+'confirmemail_needlogin' => 'ائ-پوست اونوانینیزین تسدیق‌لنمه‌سی اوچون $1 لازیمدیر.',
+'confirmemail_success' => 'ایمیل اونوانینیز ایندی تسدیق ائدیلدی.
+سیز ایندی [[Special:UserLogin|حئساب آچاراق]] ویکیدن لذت آپارین.',
+'confirmemail_loggedin' => 'ایمیل‌نیز ایندی تسدیق ائدیلدی.',
+'confirmemail_error' => 'قئید بیلینمه‌ين بیر خطا اوچون قئید اولونمادی.',
+'confirmemail_subject' => '{{SITENAME}} ایمیل تسدیق ائتمه',
+'confirmemail_body' => 'بیری، احتیماللا سیز، $1 ایپ اونوانیندان، 
+{{SITENAME}} سايتیندا بو ائ-پوچت اونوانی ایله $2 حسابینی آچدی. 
+
+بو حسابین حقیقتن سیزه عاید اولدوغونو تسدیق و {{SITENAME}} سايتینداکی 
+ائ-پوست فونکسیيالارینی آکتیو حالا گتیرمک اوچون آشاغیداکی علاقه‌‌نی تارايیجینیزدا آچین. 
+
+$3 
+
+اگر حسابی سیز * آچمادیيسانیز *، ائ-پوچت اونوانی دوغرولاماسینی 
+لغو ائتمک اوچون آشاغیداکی علاقه‌‌نی تعقیب ائدین: 
+
+$5 
+
+بو تسدیق کودو $4 تاریخینه قدر اعتبارلی اولاجاق.',
+'confirmemail_body_changed' => 'بیری، ائحتیماللا سیز، $1 ایپ اونوانین‌دان،
+{{SITENAME}} سایتیندا "$2" حسابی اوچون ایمیل اونوانینی دییشدیردی.
+
+بو حسابین حقیقتن سیزه عاید اولدوغونو تسدیق و {{SITENAME}} سایتین‌داکی
+ایمیل فونکسیا‌لارینی تکرار آکتیو حالا گتیرمک اوچون آشاغی‌داکی علاقنی تاراییجینیزدا آچین.:
+
+$3
+
+اگر حساب سیزه عاید * دئییلسه *، ائ-پوچت اونوانی دوغرولاماسینی
+لغو ائتمک اوچون آشاغی‌داکی علاقنی تعقیب ائدین:
+
+$5
+
+بو تسدیق کودو $4 تاریخینه قدر اعتبارلی اولا‌جاق.',
+'confirmemail_body_set' => 'بیری $1 ای‌پی آدرئسیيلئ{{SITENAME}} سايتیندا "$2" ایستیفاده‌چی حسابی ایمیل اونوانی اولاراق بو ایمیل  اونوانینی ایفاده ائتدی. 
+
+اگر بو عملیاتی ائدن سیزسینیزسه و {{SITENAME}} سايتینداکی ایمیل  فونکسیيالارینی تکرار آکتیو ائتمک ایسته‌يیرسینیزسه آشاغیداکی علاقه‌‌نی تارايیجینیزدا آچمانیز لازیمدیر: 
+
+$3 
+
+اگر بو عملیاتی ائدن سیز دئيیلسینیزسه و بئله بیر عضولويونوز يوخسا ایمیل  تسدیق عملیاتینی لغو ائتمک اوچون آشاغیداکی علاقه‌‌نی تارايیجینیزدا آچمانیز لازیمدیر: 
+
+$5 
+
+بو تسدیق کودو $4 تاریخینه قدر اعتبارلیدیر.',
 'confirmemail_invalidated' => 'ایمیل تصدیقلنمه‌سی دایاندیریلدی',
 'invalidateemail' => 'ایمیل تصدیقلنمه‌سین‌دن ایمتینا',
 
 # Scary transclusion
 'scarytranscludedisabled' => '[«Interwiki transcluding»دن چیخیلمیش‌دیر]',
 'scarytranscludefailed' => '[$1اوچون شابلون آلیشی موفقیت‌سیز اولدو]',
+'scarytranscludefailed-httpstatus' => '[چاغریش $1 شابلون اوچون اولا بیلمه دی: اچ‌تی‌تی‌پی خطاسی $2]',
+'scarytranscludetoolong' => '[آدرس(URL)اوزوندور]',
 
 # Delete conflict
+'deletedwhileediting' => "'''دیققت!''' بو صحیفه‌‌ سیز دَییشدیرمه‌ائتمه‌يه باشلادیقدان سونرا سیلینمیشدیر!",
+'confirmrecreate' => "بو صحیفنی [[User:$1|$1]] ([[User talk:$1|مئساژ]]) ایستیفاده‌چی‌سی سیز صحیفه‌ده دییشیک‌لیک ائدرکن سیلمیشتیر، سببی:
+:' $2
+صحیفنی باش‌دان آچماق ایسیتیورسانیز، لطفاً تسدیق ائدین.",
+'confirmrecreate-noreason' => '[[User:$1|$1]] ([[User talk:$1|دانیشیق]]) آدلی ایستیفاده‌چی، سیز ديَیشیکلیک ائتمه‌يه باشلادیقدان سونرا بو صحیفه‌‌نی سیلدی. خاهیش ائدیریک بو صحیفه‌‌نی حقیقتن يئنیدن ياراتماق ایسته‌دیگینیزی تسدیق ائدین.',
 'recreate' => 'يئنیله‌مک',
 
 # action=purge
@@ -3102,15 +3445,29 @@ $1',
 # Live preview
 'livepreview-loading' => 'یوکلنیر...',
 'livepreview-ready' => 'گؤزله... حاضردیر!',
+'livepreview-failed' => 'جانلی اؤنیزلئمئ موفقیتسیز! نورمال سینیق گوستریشی کولانین.',
+'livepreview-error' => 'علاقه‌‌ موفقیتسیز:$1 "$2". 
+نورمال سینیق گوستریشی کولانین.',
+
+# Friendlier slave lag warnings
+'lag-warn-normal' => '$1 {{PLURAL: $1 | سانیيه‌دن | سانیيه‌ده}} يئنی ديَیشیکلیکلر بو سیياهیدا گؤرولمه‌يه.',
+'lag-warn-high' => 'وئریلنلر بازاسی سونوجوسونداکی هددیندن آرتیق گئجیکمه‌دن گؤره، $1 {{PLURAL:$1 | سانیيه‌دن | سانیيه‌دن}} يئنی ديَیشیکلیکلر بو سیياهیدا گؤرونمئيئبیلیر.',
 
 # Watchlist editor
+'watchlistedit-numitems' => 'ایزلئمئ صحیفه‌‌نیزده {{PLURAL:$1|1 باشلیق|$1 باشلیق}} وار، دانیشیق صحیفه‌‌لری چیخماق شرطیله.',
 'watchlistedit-noitems' => 'ایزله‌مه سیياهینیز بوشدور.',
 'watchlistedit-normal-title' => 'ایزله‌دیگیم صحیفه‌‌لری دَییشدیر',
 'watchlistedit-normal-legend' => 'ایزله‌مه سیياهیسیندان باشلیقلارین سیلینمه‌سی',
+'watchlistedit-normal-explain' => 'ایزله‌مه سیياهینیزدا باشلیقلار آشاغیدا گؤستریلمیشدیر. 
+بیر باشلیغی چیخارماق اوچون، يانینداکی قوتوجوغو ایشارله‌يین و «{{int:Watchlistedit-normal-submit}}» دويمه‌سینی باسین. 
+[[Special:EditWatchlist/raw|سطرلر سیياهیسینی]] ده تشکیل ائده بیلرسینیز',
 'watchlistedit-normal-submit' => 'باشلیقین سیلینمه‌سی',
 'watchlistedit-normal-done' => '{{PLURAL:$1|$1 صحیفه‌‌}} ایزله‌مه صحیفه‌‌لرینیزدن سیلیندی:',
 'watchlistedit-raw-title' => 'چی متن کیمی دییشدیر',
 'watchlistedit-raw-legend' => 'چی متن کیمی دییشدیر',
+'watchlistedit-raw-explain' => 'ایزله‌مه سیياهینیزدا باشلیقلار آشاغیدا گؤستریلیر. هر سطرده بیر باشلیق اولماق عذره، باشلیقلاری علاوه‌‌ ائده‌رک يا دا سیله‌رک سیياهینی تشکیل ائده بیلرسینیز. 
+بیتدیگینده «{{int:Watchlistedit-raw-submit}}» يئ تیکلايینیز. 
+آيریجا [[Special:EditWatchlist|استاندارت تنزیمله‌مه صحیفه‌‌سینی]] دا ایستیفاده ائده بیلرسینیز.',
 'watchlistedit-raw-titles' => 'باشلیقلار:',
 'watchlistedit-raw-submit' => 'ایزلدیگیم صحیفه‌لرین سیاهی‌سینین یئنی‌لنمه‌سی',
 'watchlistedit-raw-done' => 'ایزله‌دیکلرینیز گونجل‌لندی.',
@@ -3149,6 +3506,7 @@ $1',
 'version-license' => 'لیسانس',
 'version-poweredby-credits' => "بو wیکی ' ''[//www.mediawiki.org/ مئدیاwیکی]'ع' پروقرامی ایستیفاده ائدیله‌رک يارادیلمیشدیر، یاازارلار © 2001-$1 $2.",
 'version-poweredby-others' => 'آیریلار',
+'version-credits-summary' => 'بو ایستفاده چیلر دییشدیر لرینه گوره [[Special:Version|مئدیاویکی]] تانیش ائدیرم.',
 'version-license-info' => 'مئدیاویکی بیر اؤزگور یازیلیم‌دیر؛ سیز اونو، اؤزگور یازیلیم قورولوشو یایان GNU گنل عمومی لیسانسی اساسی‌له یئنی‌دن داغیدیب یوخسا دَییشه بیلرسینیز؛ یا لیسانسین ۲-نجی نوسخه‌سی، یا دا (اؤز سئچدیگینیزله) هر هانکی سونراکی نوسخه‌سی.
 
 مئدیاویکی، فایدالی اولماق اومودویله داغینیب‌دیر، اما هئچ قارانتی‌سی یوخدور؛ حتی تیجارت یا بیر ایشه اویغون اولماق قارانتی‌سی ده یوخدور.باشقا بیلگیلر اوچون GNU گنل عمومی لیسانسینا باخین.
@@ -3366,4 +3724,6 @@ $1',
 'duration-centuries' => '{{PLURAL:$1|بیر|$1}} یوز-ایل',
 'duration-millennia' => '{{PLURAL:$1|بیر|$1}} مین‌ایل',
 
+# Unknown messages
+'svg-long-error' => 'اعتبارسیز سوگ فایل: $1',
 );
index eaf2af2..9eb9402 100644 (file)
@@ -277,7 +277,7 @@ $messages = array(
 'newwindow' => '(яңы биттә)',
 'cancel' => 'Бөтөрөргә',
 'moredotdotdot' => 'Дауамы...',
-'mypage' => 'ШÓ\99Ñ\85Ñ\81и Ð±ит',
+'mypage' => 'Ð\91ит',
 'mytalk' => 'Әңгәмә',
 'anontalk' => 'Был IP-адресының фекер алышыу бите',
 'navigation' => 'Төп йүнәлештәр',
@@ -300,7 +300,7 @@ $messages = array(
 'vector-action-protect' => 'Һаҡларға',
 'vector-action-undelete' => 'Тергеҙергә',
 'vector-action-unprotect' => 'Һаҡлауҙы үҙгәртергә',
-'vector-simplesearch-preference' => 'Ð\9aиңÓ\99йÑ\82елгÓ\99н эҙләү тәҡдимдәрен ҡулланырға ("Векторлы" күренеш өсөн генә)',
+'vector-simplesearch-preference' => 'ЯбайлаÑ\88Ñ\82Ñ\8bÑ\80Ñ\8bлÒ\93ан эҙләү тәҡдимдәрен ҡулланырға ("Векторлы" күренеш өсөн генә)',
 'vector-view-create' => 'Яһау',
 'vector-view-edit' => 'Үҙгәртергә',
 'vector-view-history' => 'Тарихты ҡарау',
@@ -463,7 +463,7 @@ $1',
 'error' => 'Хата',
 'databaseerror' => 'Мәғлүмәттәр базаһы хатаһы',
 'dberrortext' => 'Мәғлүмәттәр базаһына ебәрелгән һорауҙа синтаксис хатаһы табылды.
-Был программала хата булыу мөмкинселеген күрһәтә.
+Был программала хата булыу мөмкинлеген күрһәтә.
 Мәғлүмәттәр базаһына ебәрелгән һуңғы һорау:
 <blockquote><tt>$1</tt></blockquote>
 <tt>«$2»</tt> функцияһынан.
@@ -523,7 +523,8 @@ $1',
 'protectedpagetext' => 'Был бит мөхәррирләү өсөн ябыҡ.',
 'viewsourcetext' => 'Һеҙ был биттең сығанаҡ текстын ҡарай һәм күсермәһен ала алаһығыҙ:',
 'viewyourtext' => "Был биттәге '''үҙгәртеүҙәрегеҙҙең''' сығанаҡ текстын ҡарай һәм күсермәһен ала алаһығыҙ:",
-'protectedinterface' => 'Был биттә программа арайөҙө белдереүҙәре бар. Вандализмға ҡаршы көрәш сәбәпле, был битте үҙгәртеү тыйыла.',
+'protectedinterface' => 'Был биттә программаның интерфейс хәбәре бар. Вандализм осраҡтарын булдырмау өсөн, был битте үҙгәртеү тыйыла.
+Был хәбәрҙең тәржемәһен өҫтәү йәки үҙгәртеү өсөн, зинһар, MediaWiki проектының [//translatewiki.net/ translatewiki.net] локалләштереү сайтын ҡулланығыҙ.',
 'editinginterface' => "'''Иғтибар.''' Һеҙ программаның арайөҙ тексты булған битте мөхәррирләйһегеҙ.
 Уны үҙгәртеү, башҡа ҡулланыусыларҙын арайөҙ күренешен үҙгәртәсәктер.
 Тәржемә өсөн [//translatewiki.net/wiki/Main_Page?setlang=ba translatewiki.net] адресын, MediaWiki-ны локалләштереү проектын ҡулланыу яҡшыраҡ буласаҡтыр.",
@@ -803,11 +804,10 @@ $2
 'userpage-userdoesnotexist' => '«<nowiki>$1</nowiki>» иҫәп яҙыуы юҡ. Һеҙ бындай бит яһарға йәки битте үҙгәртергә теләһәгеҙ яңынан тикшерегеҙ.',
 'userpage-userdoesnotexist-view' => '«$1» исемле иҫәп яҙыуы юҡ.',
 'blocked-notice-logextract' => 'Хәҙергә был ҡатнашыусы ябылған. Һуңғы ҡулланыусы ябыу яҙмаһы:',
-'clearyourcache' => "'''Иҫкәрмә:''' Битте һаҡлағандан һуң үҙгәртеүҙерегеҙ күренһен өсөн браузерығыҙҙың кэшын таҙартығыҙ.
-* '''Firefox / Safari:''' ''Shift'' төймәһенә баҫып, ебәрмәйенсә, ҡоралдар панелендәге ''Яңыртырға'' төймәһенә баҫығыҙ, йәки ''Ctrl-F5'' йәки ''Ctrl-R'' (Mac-та ''⌘-R'') төймәләренә баҫығыҙ.
+'clearyourcache' => "'''Иҫкәрмә:''' Битте һаҡлағандан һуң үҙгәртеүҙерегеҙ күренһен өсөн, браузерығыҙҙың кэшын таҙартығыҙ.
+* '''Firefox / Safari:''' ''Shift'' төймәһенә баҫып, ебәрмәйенсә, ''Яңыртырға'' төймәһенә баҫығыҙ, йәки ''Ctrl-F5'' йә ''Ctrl-R'' (Mac-та ''⌘-R'') төймәләренә баҫығыҙ
 * '''Google Chrome:''' ''Ctrl-Shift-R'' төймәһенә баҫығыҙ (Mac-та ''⌘-Shift-R'')
 * '''Internet Explorer:''' ''Ctrl'' төймәһенә баҫып, ебәрмәйенсә, ''Яңыртырға'' төймәһенә баҫығыҙ, йәки ''Ctrl-F5'' төймәһенә баҫығыҙ
-* '''Konqueror:''' ''Яңыртырға'' йәки ''F5'' төймәһенә баҫығыҙ
 * '''Opera:''' ''Ҡоралдар → Көйләүҙәр' менюһында кеш таҙартыуҙы һайлағыҙ",
 'usercssyoucanpreview' => "'''Кәңәш:''' Яңы CSS-файлды һаҡларҙан алда тикшерер өсөн \"{{int:showpreview}}\" төймәһенә баҫығыҙ.",
 'userjsyoucanpreview' => "'''Кәңәш:''' Яңы JS-файлды һаҡларҙан алда тикшерер өсөн \"{{int:showpreview}}\" төймәһенә баҫығыҙ.",
@@ -822,7 +822,7 @@ $2
 'note' => "'''Иҫкәрмә:'''",
 'previewnote' => "'''Ҡарап сығыу өлгөһө, әлегә үҙгәрештәр яҙҙырылмаған!'''
 Һеҙҙең үҙгәртеүҙәр әле яҙылмаған!",
-'continue-editing' => 'Мөхәррирләүҙе дауам итергә',
+'continue-editing' => 'Мөхәррирләү өлкәһенә күсергә',
 'previewconflict' => 'Әлеге алдан ҡарау, мөхәррирләү тәҙрәһенең өҫтөндә, һаҡланғандан һуң текстың нисек күренәсәген күрһәтә.',
 'session_fail_preview' => "'''Ҡыҙғанысҡа ҡаршы, һеҙҙең ултырыш идентификаторығыҙ юғалды. Һөҙөмтәлә үҙгәртеүҙәрегеҙ ҡабул ителмәйәсәк.
 Зинһар, тағы бер тапҡыр ҡабатлағыҙ.
@@ -1058,7 +1058,9 @@ $1",
 'revdelete-only-restricted' => '$2, $1 ваҡытлы яҙманы йәшереүҙә хата: башҡа йәшереү көйләүҙәренең береһен һайламайынса яҙманы хәкимдәрҙән йәшерә алмайһығыҙ.',
 'revdelete-reason-dropdown' => '* Ғәҙәттәге юйыу сәбәптәре
 ** Авторлыҡ хоҡуҡтарын боҙоу
-** Урынһыҙ шәхси мәғлүмәттәр',
+** Урынһыҙ комментарий йәки шәхси мәғлүмәт
+** Урынһыҙ ҡулланыусы исеме
+** Ялған булыуы ихтимал мәғлүмәт',
 'revdelete-otherreason' => 'Башҡа/өҫтәмә сәбәп:',
 'revdelete-reasonotherlist' => 'Башҡа сәбәп',
 'revdelete-edit-reasonlist' => 'Сәбәптәр исемлеген мөхәррирләргә',
@@ -1252,7 +1254,7 @@ $1",
 'timezoneregion-indian' => 'Һинд океаны',
 'timezoneregion-pacific' => 'Тымыҡ океан',
 'allowemail' => 'Башҡа ҡулланыусыларҙан электрон хат алыуҙы рөхсәт итергә',
-'prefs-searchoptions' => 'Эҙләү көйләүҙәре',
+'prefs-searchoptions' => 'Эҙләү',
 'prefs-namespaces' => 'Исем арауыҡтары',
 'defaultns' => 'Юғиһә киләһе исем арауыҡтарында эҙләргә:',
 'default' => 'ғәҙәттәге',
@@ -1265,7 +1267,7 @@ $1",
 'prefs-emailconfirm-label' => 'Электрон почтаны раҫлау:',
 'prefs-textboxsize' => 'Мөхәррирләү тәҙрәһе дәүмәле',
 'youremail' => 'Электрон почта *',
-'username' => 'Ҡулланыусы исеме:',
+'username' => 'Ҡатнашыусы исеме',
 'uid' => 'Ҡатнашыусының идентификаторы:',
 'prefs-memberingroups' => 'Түбәндәге {{PLURAL:$1|төркөм|төркөмдәр}} ағзаһы:',
 'prefs-registration' => 'Теркәлеү ваҡыты:',
@@ -1466,7 +1468,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|үҙгәртеү|үҙгәртеү}}',
 'recentchanges' => 'Һуңғы үҙгәртеүҙәр',
 'recentchanges-legend' => 'Һуңғы үҙгәртеүҙәр көйләүҙәре',
-'recentchanges-summary' => '{{grammar:genitive|{{SITENAME}}}}. биттәрендә индерелгән һуңғы үҙгәртеүҙәр исемлеге',
+'recentchanges-summary' => 'Төрлө биттәрҙә эшләнгән һуңғы үҙгәртеүҙәр исемлеге',
 'recentchanges-feed-description' => 'Был таҫмалағы һуңғы үҙгәртеүҙәрҙе күҙәтеп барырға',
 'recentchanges-label-newpage' => 'Был үҙгәртеү яңы бит яһаны',
 'recentchanges-label-minor' => 'Был әҙ үҙгәреш',
@@ -1671,7 +1673,7 @@ $1',
 'backend-fail-internal' => '$1 һаҡлағысында билдәһеҙ хата килеп сыҡты',
 'backend-fail-contenttype' => 'Файлды $1 адресына һаҡлар өсөн уның эстәлеге төрөн билдәләп булманы.',
 'backend-fail-batchsize' => 'Һаҡлағыс $1 {{PLURAL:$1|файл операцияһынан|файл операцияһынан}} бер блок алды, сикләү һаны: $2 {{PLURAL:$1|операция|операция}}.',
-'backend-fail-usable' => 'Хоҡуҡтар етмәгәнлектән йәки кәрәкле папкалар булмағанлыҡтан $1 файлын яҙып булманы.',
+'backend-fail-usable' => 'ХоҡÑ\83Ò¡Ñ\82аÑ\80 ÐµÑ\82мÓ\99гÓ\99нлекÑ\82Ó\99н Ð¹Ó\99ки ÐºÓ\99Ñ\80Ó\99кле Ð¿Ð°Ð¿ÐºÐ°Ð»Ð°Ñ\80 Ð±Ñ\83лмаÒ\93анлÑ\8bÒ¡Ñ\82ан $1 Ñ\84айлÑ\8bн Ñ\83Ò¡Ñ\8bп Ð¹Ó\99ки Ñ\8fÒ\99Ñ\8bп Ð±Ñ\83лманÑ\8b.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => '"$1" мәғлүмәт базаһы журналына тоташып булманы.',
@@ -1807,6 +1809,7 @@ $1',
 'uploadnewversion-linktext' => 'Был файлдың яңы версияһын тейәргә',
 'shared-repo-from' => '$1 базаһынан',
 'shared-repo' => 'дөйөм һаҡлағыс',
+'upload-disallowed-here' => 'Һеҙ был файлды ҡабаттан яҙҙыра алмайһығыҙ.',
 
 # File reversion
 'filerevert' => '$1 өлгөһөнә ҡайтыу',
@@ -1916,6 +1919,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|байт}}',
 'ncategories' => '$1 {{PLURAL:$1|Категория|Категория}}',
+'ninterwikis' => '$1 {{PLURAL:$1|интервики-һылтанма}}',
 'nlinks' => '$1 {{PLURAL:$1|һылтанма}}',
 'nmembers' => '$1 {{PLURAL:$1|объект}}',
 'nrevisions' => '$1 {{PLURAL:$1|өлгө|өлгө}}',
@@ -1944,6 +1948,7 @@ $1',
 'mostlinkedtemplates' => 'Иң күп һылтанма яһалған ҡалыптар',
 'mostcategories' => 'Күп категорияларға кертелгән биттәр',
 'mostimages' => 'Иң күп һылтанма яһалған рәсемдәр',
+'mostinterwikis' => 'Иң күп интервики-һылтанмалы биттәр',
 'mostrevisions' => 'Иң күп үҙгәртеү яһалған биттәр',
 'prefixindex' => 'Исемдәре башында ҡушымта торған биттәр',
 'prefixindex-namespace' => 'Префикслы бар биттәр ( $1 исемдәр арауығы)',
@@ -2043,7 +2048,7 @@ $1',
 'linksearch-ok' => 'Эҙләү',
 'linksearch-text' => '<code>*.wikipedia.org</code> һымаҡ төркөм билдәләрен ҡулланырға була.
 Кәмендә, өҫкө кимәл домен кәрәк. Мәҫәлән, <code>*.org</code><br />
¢ÐµÑ\80Ó\99клÓ\99нгÓ\99н Ð¿Ñ\80оÑ\82околдаÑ\80: <code>$1</code> (Ñ\8dÒ\99лÓ\99үегеÒ\99Ò\99Ó\99 Ð±Ñ\83лÒ\93андаÑ\80Ò\99Ñ\8bÒ£ Ð±ÐµÑ\80еһен Ð´Ó\99 Ó©Ò«Ñ\82Ó\99мÓ\99геÒ\99)',
\9cөмкин Ð±Ñ\83лÒ\93ан Ð¿Ñ\80оÑ\82околдаÑ\80: <code>$1</code> (беÑ\80 Ð¿Ñ\80оÑ\82окол Ð´Ð° ÐºÒ¯Ñ\80Ò»Ó\99Ñ\82елмÓ\99Ò»Ó\99, http:// Ò¡Ñ\83лланÑ\8bла)',
 'linksearch-line' => '$1 адресына $2 битенән һылтанма яһалған',
 'linksearch-error' => 'Төркөм билдәләре URL адрестың башында ғына ҡулланыла ала.',
 
@@ -2089,8 +2094,10 @@ $1',
 'mailnologin' => 'Хат ебәреү өсөн адрес юҡ',
 'mailnologintext' => 'Башҡа ҡатнашыусыларға хат ебәреү өсөн, һеҙ [[Special:UserLogin|танылырға]] һәм [[Special:Preferences|көйләүҙәрегеҙҙә]] ысын электрон адрес почтаһы кереткән булырға тейешһегеҙ.',
 'emailuser' => 'Ҡатнашыусыға хат',
+'emailuser-title-target' => '{{GENDER:$1|Ҡатнашыусыға}} хат яҙыу',
+'emailuser-title-notarget' => 'Ҡатнашыусыға хат',
 'emailpage' => 'Ҡатнашыусыға хат',
-'emailpagetext' => 'Был ҡатнашыусыға электрон почта аша хат ебәреү өсөн, һеҙ түбәндәге форманы ҡуллана алаһығыҙ.
+'emailpagetext' => 'Был {{GENDER:$1|ҡатнашыусы}} электрон почта аша хат ебәреү өсөн, һеҙ түбәндәге форманы ҡуллана алаһығыҙ.
 Яуап өсөн адрес булараҡ һеҙ [[Special:Preferences|көйләүҙәрегеҙҙә]] күрһәткән электрон почта адресы күрһәтеләсәк, шулай итеп, хатты алыусы һеҙгә тура яуап ебәрә аласаҡ.',
 'usermailererror' => 'Хат ебәргән ваҡытта хата килеп сыҡты:',
 'defemailsubject' => '{{SITENAME}} — $1 ҡулланыусыһынан хат',
@@ -2377,7 +2384,7 @@ $1',
 'blanknamespace' => '(Төп)',
 
 # Contributions
-'contributions' => 'Ҡатнашыусы өлөшө',
+'contributions' => '{{GENDER:$1|Ҡатнашыусы}} өлөшө',
 'contributions-title' => '$1 исемле ҡулланыусының кереткән өлөшө',
 'mycontris' => 'Өлөш',
 'contribsub2' => '$1 ($2) өсөн',
@@ -2884,7 +2891,11 @@ The wiki server cannot provide data in a format your client can read.',
 
 # Info page
 'pageinfo-title' => '«$1» буйынса мәғлүмәт',
-'pageinfo-header-edits' => 'Үҙгәртеүҙәр',
+'pageinfo-not-current' => 'Ғәфү итегеҙ, был мәғлүмәтте иҫке версиялар өсөн күрһәтеп булмай.',
+'pageinfo-header-basic' => 'Төп мәғлүмәт',
+'pageinfo-header-edits' => 'Үҙгәртеүҙәр тарихы',
+'pageinfo-header-restrictions' => 'Бите һаҡлау',
+'pageinfo-header-properties' => 'Биттең үҙенсәлектәре',
 'pageinfo-display-title' => 'Күренгән исем',
 'pageinfo-default-sort' => 'Ғәҙәттәге сортлау асҡысы',
 'pageinfo-length' => 'Бит оҙонлоғо (байттарҙа)',
@@ -2905,6 +2916,9 @@ The wiki server cannot provide data in a format your client can read.',
 'pageinfo-edits' => 'Дөйөм төҙәтеү һаны',
 'pageinfo-authors' => 'Төрлө авторҙар һаны',
 'pageinfo-recent-edits' => 'Һуңғы ваҡыттағы төҙәтеүҙәр ($1 эсендә)',
+'pageinfo-recent-authors' => 'Төрлө авторҙарҙың һуңғы һаны',
+'pageinfo-hidden-categories' => 'Йәшерен {{PLURAL:$1|категория|категориялар}} ($1)',
+'pageinfo-templates' => 'Ҡулланылған {{PLURAL:$1|ҡалып|ҡалыптар}} ($1)',
 'pageinfo-toolboxlink' => 'Бит мәғлүмәттәре',
 
 # Skin names
@@ -2958,6 +2972,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 пиксель, файл күләме: $3, MIME төр: $4, $5 {{PLURAL:$5|бит}}',
 'file-nohires' => 'Юғары асыҡлыҡтағы өлгө юҡ.',
 'svg-long-desc' => 'SVG файлы, номиналь $1 × $2 нөктә, файлдың дәүмәле: $3',
+'svg-long-desc-animated' => 'Анимациялы SVG файлы, номиналь $1 × $2 нөктә, файлдың дәүмәле: $3',
 'show-big-image' => 'Тулы асыҡлыҡ',
 'show-big-image-preview' => 'Байҡау ваҡытындағы күләм: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Башҡа сиселеш|Башҡа сиселештәр}}: $1.',
@@ -2967,6 +2982,9 @@ $1',
 'file-info-png-looped' => 'әйләнешле',
 'file-info-png-repeat' => '$1 {{PLURAL:$1|тапҡыр}} уйнала',
 'file-info-png-frames' => '$1 {{PLURAL:$1|фрейм}}',
+'file-no-thumb-animation' => "
+'''Иғтибар: Техник сикләүҙәр арҡаһында, был файлдың бәләкәй рәсемдәре анимацияланмаясаҡ.'''",
+'file-no-thumb-animation-gif' => "'''Иғтибар: Техник сикләүҙәр арҡаһында, бының һымаҡ юғары асыҡлыҡтағы GIF рәсемдәрҙең бәләкәй рәсемдәре анимацияланмаясаҡ.'''",
 
 # Special:NewFiles
 'newimages' => 'Яңы файлдар йыйылмаһы',
@@ -3733,9 +3751,9 @@ MediaWiki файҙалы булыр, тигән өмөттә, ләкин БЕР
 'logentry-move-move_redir-noredirect' => '$1 $3 битенең исемен йүнәлтеү ҡуймайынса һәм йүнәлтеү өҫтөнән үҙгәртте. Яңы исеме: $4',
 'logentry-patrol-patrol' => '$1 $3 битенең $4 версияһын билдәләне.',
 'logentry-patrol-patrol-auto' => '$1 $3 битенең $4 версияһын автоматик рәүештә билдәләне.',
-'logentry-newusers-newusers' => '$1 ҡулланыусының иҫәп яҙыуын булдырҙы',
-'logentry-newusers-create' => '$1 ҡулланыусының иҫәп яҙыуын булдырҙы',
-'logentry-newusers-create2' => '$1 ҡулланыусы иҫәп яҙыуын яһаны $3',
+'logentry-newusers-newusers' => '$1 ҡатнашыусыһының иҫәп яҙмаһы булдырылды',
+'logentry-newusers-create' => '$1 ҡатнашыусыһының иҫәп яҙмаһы булдырылды',
+'logentry-newusers-create2' => '$3 ҡатнашыусыһының иҫәп яҙмаһы $1 тарафынан булдырылды',
 'logentry-newusers-autocreate' => 'Автоматик рәүештә $1 иҫәп яҙыуы яһалды',
 'newuserlog-byemail' => 'пароль электрон почта адресы аша ебәрелде',
 
index d78fbee..8c242b2 100644 (file)
@@ -81,13 +81,13 @@ $messages = array(
 'editfont-serif' => 'Schrift mid Serifen',
 
 # Dates
-'sunday' => 'Sunndog',
+'sunday' => 'Sundog',
 'monday' => 'Mondog',
 'tuesday' => 'Deansdog',
 'wednesday' => 'Midwoch',
-'thursday' => 'Dunnersdog',
+'thursday' => 'Dunasdog',
 'friday' => 'Freidog',
-'saturday' => 'Såmsdog',
+'saturday' => 'Samsdog',
 'sun' => 'Su',
 'mon' => 'Mo',
 'tue' => 'De',
@@ -140,9 +140,9 @@ $messages = array(
 'category-empty' => "''De Kategorie enthoit im Moment koane Seitn und koane Medien ned.''",
 'hidden-categories' => '{{PLURAL:$1|Vasteckte Kategorie|Vasteckte Kategorina}}',
 'hidden-category-category' => 'Vasteckte Kategorie',
-'category-subcat-count' => '{{PLURAL:$2|De Kategorie enthoit netter de foigande Unterkategorie:|{{PLURAL:$1|De foigande Unterkategorie is oane voh insgsåmt $2 Unterkategorien in derer Kategorie:|Voh insgsåmt $2 Unterkategorien in derer Kategorie wern $1 åzoagt:}}}}',
+'category-subcat-count' => '{{PLURAL:$2|De Kategorie enthoit nua de foigande Untakategorie:|{{PLURAL:$1|De foigande Untakategorie is oane vo insgsamt $2 Untakategorina in dea Kategorie:|Vo insgsamt $2 Untakategorina in dea Kategoriewean $1 zoagt:}}}}',
 'category-subcat-count-limited' => 'In de Kategorie {{PLURAL:$1|is de foigande Unterkategorie|san de foiganden Unterkategorien}} eihsortird:',
-'category-article-count' => '{{PLURAL:$2|De Kategorie enthoit foigernde Seiten:|{{PLURAL:$1|Foigernde Seiten is aane voh insgsåmt $2 Seiten in derer Kategorie:|Es wern $1 voh insgsåmt $2 Seiten in derer Kategorie åzaagt:}}}}',
+'category-article-count' => '{{PLURAL:$2|De Kategorie enthoit foigande Seitn:|{{PLURAL:$1|Foigande Seitn is oane vo insgsamt $2 Seitn in dear Kategorie:|Es wern $1 voh insgsamt $2 Seitn in dea Kategorie zoagt:}}}}',
 'category-article-count-limited' => 'De {{PLURAL:$1|foigande Seiten is|foiganden $1 Seiten san}} in derer Kategorie enthoiden:',
 'category-file-count' => '{{PLURAL:$2|De Kategorie enthoid foigende Datei:|{{PLURAL:$1|Foigende Datei is oane vo insgsamt $2 Datein in dera Kategorie:|Es wean $1 von insgsamt $2 Datein in dera Kategorie ozoagt:}}}}',
 'category-file-count-limited' => "{{PLURAL:$1|D' foingde Datei is|De foingden $1 Datein san}} in de Kategorie eisortird:",
@@ -153,7 +153,7 @@ $messages = array(
 
 'about' => 'Iba',
 'article' => 'Artike',
-'newwindow' => '(werd in am neichen Fenster aufgmocht)',
+'newwindow' => '(wean in an neichn Fensta afgmocht)',
 'cancel' => 'Obbrecha',
 'moredotdotdot' => 'Merer',
 'mypage' => 'Eigerne Seiten',
@@ -173,9 +173,9 @@ $messages = array(
 'faqpage' => 'Project:FAQ',
 
 # Vector skin
-'vector-action-addsection' => 'Obschnit dazuafyng',
+'vector-action-addsection' => 'An Obschnitt dazua doa',
 'vector-action-delete' => 'Leschn',
-'vector-action-move' => 'Vaschiam',
+'vector-action-move' => 'Vaschiabm',
 'vector-action-protect' => 'Schitzn',
 'vector-action-undelete' => 'Wiederherstön',
 'vector-action-unprotect' => 'freigeem',
@@ -197,7 +197,7 @@ $messages = array(
 'searchbutton' => 'Suacha',
 'go' => 'Ausfyrn',
 'searcharticle' => 'Artikl',
-'history' => 'Versiónen',
+'history' => 'Versiona',
 'history_short' => 'Gschicht oschaugn',
 'updatedmarker' => '(gänderd)',
 'printableversion' => 'Druckversion',
@@ -257,7 +257,7 @@ $1",
 'aboutsite' => 'Iba {{SITENAME}}',
 'aboutpage' => 'Project:Iba',
 'copyright' => 'Da Inhoid is unter da $1 vafiagbor.',
-'copyrightpage' => '{{ns:project}}:Urheewerrechte',
+'copyrightpage' => '{{ns:project}}:Urhebarecht',
 'currentevents' => 'Aktuelle Ereigniss',
 'currentevents-url' => 'Project:Aktuelle Ereigniss',
 'disclaimers' => 'Impressum',
@@ -317,7 +317,7 @@ Schaug auf [[Special:Version|Versiónsseiten]]",
 'nstab-user' => 'Nutzaseitn',
 'nstab-media' => 'Meedienseiten',
 'nstab-special' => 'Spezialseitn',
-'nstab-project' => 'Projektseiten',
+'nstab-project' => 'Projektseitn',
 'nstab-image' => 'Datei',
 'nstab-mediawiki' => 'Systémnoochricht',
 'nstab-template' => 'Vorlog',
@@ -473,33 +473,34 @@ Es muass sichergstöd seih, daas Cookies aktivierd san. Danoch bittscheh d' Seit
 'passwordreset-username' => 'Benutzernåm:',
 
 # Edit page toolbar
-'bold_sample' => 'Fetter Text',
-'bold_tip' => 'Fetter Text',
+'bold_sample' => 'Fetta Text',
+'bold_tip' => 'Fetta Text',
 'italic_sample' => 'Kursiva Text',
-'italic_tip' => 'Kursiaver Text',
+'italic_tip' => 'Kursiva Text',
 'link_sample' => 'Link-Text',
-'link_tip' => 'Interner Link',
+'link_tip' => 'Interna Link',
 'extlink_sample' => 'http://www.example.com Link-Text',
-'extlink_tip' => 'Externer Link (http:// beochten)',
-'headline_sample' => 'Ywerschrift auf da zwoaten Ewene',
-'headline_tip' => 'Ewene-2-Ywerschrift',
-'nowiki_sample' => 'Dén néd-formatirden Text dodan eihfiang',
-'nowiki_tip' => 'Ned-formatirder Text',
-'image_tip' => 'Daateilink',
-'media_tip' => 'Meediendaatei-Link',
+'extlink_tip' => 'Externa Link (http:// beochtn)',
+'headline_sample' => 'Ibaschrift Text',
+'headline_tip' => 'Ebane-2-Ibaschrift',
+'nowiki_sample' => 'Nedformatiadn Text do eibaun',
+'nowiki_tip' => 'Wiki-Format ignorian',
+'image_tip' => 'Dateilink',
+'media_tip' => 'Datei-Link',
 'sig_tip' => 'Dei Untaschrift mit Zeitstempe',
-'hr_tip' => 'Woogrechte Linie (sporsåm vawenden)',
+'hr_tip' => 'Wogrechte Linie (sporsam vawendn)',
 
 # Edit pages
-'summary' => 'Zåmmfossung:',
+'summary' => 'Zammfossung:',
 'subject' => 'Bedreff',
 'minoredit' => 'Nua Kloanigkeidn san vaendat worn',
-'watchthis' => "D' Seiten beówochten",
+'watchthis' => 'De Seitn beobochtn',
 'savearticle' => 'Seitn speichan',
 'preview' => 'Vorschau',
 'showpreview' => 'Vorschau zoagn',
 'showdiff' => 'Endarunga zoagn',
-'anoneditwarning' => "Du beorweitsd dé Seiten ois néd-ågmöidt. Wånn du dé speichertsd, werd deih aktuelle IP-Adress in da Versiónsgschichd aufzeichnet und is dodamid unwiaderruafflich '''éffmtléch''' zum åschauh.",
+'anoneditwarning' => 'Obocht: Du bist ned eigloggt.
+Dei IP-Adress wead in da Versionsgschicht afzoachnet.',
 'missingsummary' => "'''Hiwais:''' du host koa Zåmmfossung ågeem. Wånn du ernait auf „{{int:savearticle}}“ druckst, werd dai Enderung one a Zåmmfossung ywernumma.",
 'missingcommenttext' => 'Bittschee gib a Zåmmfossung ai.',
 'summary-preview' => 'Vurschau vo da Zåmmfossung:',
@@ -524,7 +525,7 @@ Wånnst a anonymer Benutzer bist und denkst, das irrelevante Kommentare ån di g
 Du konst [[Special:Search/{{PAGENAME}}|nochm Titl]] in andan Seitn suacha,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de Logbiacha duachsuacha],
 oda [{{fullurl:{{FULLPAGENAME}}|action=edit}} de Seitn beorbatn]</span>.',
-'noarticletext-nopermission' => 'There is currently no text in this page.
+'noarticletext-nopermission' => 'Af dea Seitn gibts zua Zeit koan Text.
 Du konst [[Special:Search/{{PAGENAME}}|in Seitntitl]] in andan Seitn suacha, oda <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} dia de Logbiachln dazua oschaugn]</span>, oba du hosd koa Berechtigung de Seitn ozlegn.',
 'userpage-userdoesnotexist' => 'Des Benutzerkonto „<nowiki>$1</nowiki>“ is ned vurhånden. Bittschee priaf, ob du de Seiten wirkle erstöin/beorweiten wüist.',
 'userpage-userdoesnotexist-view' => 'Benutzerkonto „$1“ existiard ned.',
@@ -537,7 +538,7 @@ Zua da Informazion foigt a aktueller Auszug aus 'm Benutzersperr-Logbiache:",
 'session_fail_preview' => "'''Daine Beorwaitungen håm ned gspaichert wern kenna, wail Sitzungsdaaten valurn gånga san.'''
 Bittschee vasuachs nuamoi, indem du unter da foiganden Textvurschau noamoi auf „Saiten spaichern“ druckst.
 Soidad des Probleem bestee blaim, [[Special:UserLogout|möid de ob]] und danoch wider å.",
-'editing' => 'Beorwaiten vo $1',
+'editing' => 'Beorbatn vo $1',
 'editingsection' => 'Werkln ba $1 (Obschnitt)',
 'editingcomment' => 'Werkeln voh $1 (Neicher Obschnit)',
 'editconflict' => 'Konflikt baim Beorwaiten: $1',
@@ -631,7 +632,7 @@ Nähere Angaben zum Löschvorgang sowia a Begründung findn si im [{{fullurl:{{#
 Du kauhstas auhschauh, waunn du wüst. Nahernte Auhgoom steengern im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lésch-Logbiaché].",
 'rev-deleted-no-diff' => '<div class="mw-warning plainlinks">Du kannst diesen Unterschied nicht betrachten, da eine der Versionen aus den öffentlichen Archiven entfernt wurde.
 Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].</div>',
-'rev-delundel' => 'zoang / vastecken',
+'rev-delundel' => 'zoagn / vastecka',
 'revdelete-nooldid-title' => 'Koa Version ogem',
 'revdelete-text' => "'''Der Inhalt oder andere Bestandteile gelöschter Versionen sind nicht mehr öffentlich einsehbar, erscheinen jedoch weiterhin als Einträge in der Versionsgeschichte.'''
 {{SITENAME}}-Administratoren können den entfernten Inhalt oder andere entfernte Bestandteile weiterhin einsehen und wiederherstellen, es sei denn, es wurde festgelegt, dass die Zugangsbeschränkungen auch für Administratoren gelten.",
@@ -648,7 +649,7 @@ Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}}
 # Diffs
 'history-title' => 'Gschicht vo „$1“ oschaugn',
 'lineno' => 'Zein $1:',
-'compareselectedversions' => 'Gwöde Versionen vagleichen',
+'compareselectedversions' => 'Ausgwejde Versiona vagleicha',
 'editundo' => 'zruck doa',
 'diff-multi' => '({{PLURAL:$1|A dazwischnliegade Version|$1 dazwiscenliegade Versiona}} {{PLURAL:$2|vonam Nutza|vo $2 Nutzan}} {{PLURAL:$1|wead|wean}} ned ozoagt)',
 
@@ -767,47 +768,47 @@ Dei Mail-Adress wead dabei ned ozoagt.',
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|Endarung|Endarunga}}',
 'recentchanges' => 'Letzte Endarunga',
-'recentchanges-legend' => 'Åzoagopziónen',
+'recentchanges-legend' => 'Ozoagoptiona',
 'recentchanges-summary' => "Auf derer Seiten kåst d' létzden Änderrungen auf '''{{SITENAME}}''' nochévavóing.",
 'recentchanges-feed-description' => 'Vafoig mid em Feed de letztn Endarunga in {{SITENAME}}.',
-'recentchanges-label-newpage' => 'Neiche Seiten',
-'recentchanges-label-minor' => 'Kloane Änderrungen',
-'recentchanges-label-bot' => 'Änderrung durch an Bot',
-'recentchanges-label-unpatrolled' => 'Néd-kontróilirde Änderrung',
+'recentchanges-label-newpage' => 'Neiche Seitn',
+'recentchanges-label-minor' => 'Kloane Endarunga',
+'recentchanges-label-bot' => 'Endarung duach an Bot',
+'recentchanges-label-unpatrolled' => 'De Endarung is no ned kontrolliad worn',
 'rcnote' => "{{PLURAL:$1|'''1''' Endarung|'''$1''' Endarunga}} in dn {{PLURAL:$2|letztn 24 Stundn|letztn '''$2'''Dog}}.
 Stand: $4, $5 Uhr.",
 'rcnotefrom' => "Untn san de Endarunga seit  '''$2''' (bis za '''$1''' Ozoagn).",
-'rclistfrom' => 'Netter Änderrungen seid $1 åzoang.',
-'rcshowhideminor' => 'kloane Änderrungen $1',
+'rclistfrom' => 'Nua Endarunga seit $1 zoagn.',
+'rcshowhideminor' => 'Kloane Endarunga $1',
 'rcshowhidebots' => 'Bots $1',
-'rcshowhideliu' => 'Ågmödte Benutzer $1',
-'rcshowhideanons' => 'Anónyme Benutzer $1',
+'rcshowhideliu' => 'Eigloggte Nutza $1',
+'rcshowhideanons' => 'Anonyme Nutza $1',
 'rcshowhidepatr' => 'Kontrolliade Endarunga $1',
-'rcshowhidemine' => 'Eigerne Beiträg $1',
-'rclinks' => "D' létzden $1 Änderrungen voh dé létzden $2 Dog åzoang<br />$3",
+'rcshowhidemine' => 'Meine Beidreg $1',
+'rclinks' => 'De letztn Endarunga vo de letztn $2 Dog zoagn<br />$3',
 'diff' => 'Untaschied',
 'hist' => 'Versiona',
 'hide' => 'Ausblendn',
 'show' => 'Zoag',
 'minoreditletter' => 'K',
-'newpageletter' => 'Neich',
+'newpageletter' => 'N',
 'boteditletter' => 'B',
 'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|beówochtender|beówochtende}} Benutzer]',
 'rc_categories' => 'Netter Seiten aus d\' Kategorien (trennd mid "l"):',
 'rc_categories_any' => 'Olle',
 'newsectionsummary' => 'Neicher Obschnit /* $1 */',
-'rc-enhanced-expand' => 'Deteus åzoang (geet netter mid JavaScript)',
-'rc-enhanced-hide' => 'Deteils vastecker',
+'rc-enhanced-expand' => 'Details zoagn (braucht JavaScript)',
+'rc-enhanced-hide' => 'Details vastecka',
 
 # Recent changes linked
-'recentchangeslinked' => 'Änderrungen ån valinkte Seiten',
+'recentchangeslinked' => 'Endarunga an Valinkunga',
 'recentchangeslinked-feed' => 'Valinkts priaffm',
 'recentchangeslinked-toolbox' => 'Endarunga af valinktn Seitn',
-'recentchangeslinked-title' => 'Änderrungen ån Seiten, dé voh „$1“ valinkt san',
+'recentchangeslinked-title' => 'Endarunga wo vo „$1“ valinkt san',
 'recentchangeslinked-noresult' => 'Im ausgwejtn Zeidraum san an dena valinkdn Seitn koane Endarunga vorgnumma worn.',
 'recentchangeslinked-summary' => "Des is a Listn vo de letztn Endarunga af Seitn, de wo vo ana bstimmtn Seitn valinkt san (bzw. za ana bstimmtn Kategorie ghean).
 Seitn af [[Special:Watchlist|deina Beobochtungslistn]] san '''fett'''.",
-'recentchangeslinked-page' => 'Seiten:',
+'recentchangeslinked-page' => 'Seitn:',
 'recentchangeslinked-to' => 'Zoagt Änderrungen auf Seiten, dé do her valinken',
 
 # Upload
@@ -956,7 +957,7 @@ Links as Naumensraim wern do néd afglistt.",
 'nbytes' => '$1 {{PLURAL:$1|Byte}}',
 'ncategories' => '$1 {{PLURAL:$1|Kategorie|Kategorien}}',
 'nlinks' => '{{PLURAL:$1|a Link|$1 Links}}',
-'nmembers' => '{{PLURAL:$1|1 Eithråg|$1 Eihtreeg}}',
+'nmembers' => '{{PLURAL:$1|1 Eindrog|$1 Eindreg}}',
 'nrevisions' => '{{PLURAL:$1|oah Beorwatung|$1 Beorwatungen}}',
 'nviews' => '{{PLURAL:$1|1 Åbfråg|$1 Åbfrång}}',
 'uncategorizedpages' => 'Néd kategorisirde Seiten',
@@ -990,7 +991,7 @@ Links as Naumensraim wern do néd afglistt.",
 'newpages' => 'Neiche Seitn',
 'newpages-username' => 'Benutzernåm:',
 'ancientpages' => 'Schoh länger nimmer beorweitade Seiten',
-'move' => 'vaschiam',
+'move' => 'Vaschiabm',
 'movethispage' => 'de Seiten vaschiam',
 'notargettitle' => 'Koa Seiten ågeem',
 'pager-newer-n' => '{{PLURAL:$1|naxta|naxte $1}}',
@@ -1026,7 +1027,7 @@ Links as Naumensraim wern do néd afglistt.",
 'allpages-bad-ns' => 'Dén Naumensraum „$1“ gibts in {{SITENAME}} néd.',
 
 # Special:Categories
-'categories' => 'Kategorien',
+'categories' => 'Kategorina',
 'special-categories-sort-count' => 'Sortiarung noch da Auhzoi',
 'special-categories-sort-abc' => "Sortiarung noch 'm Alfabet",
 
@@ -1262,8 +1263,8 @@ Da aktuöje Text voh da gléschden Seiten is netter fyr Administraatorn zuagäng
 
 # What links here
 'whatlinkshere' => 'Links af de Seitn',
-'whatlinkshere-title' => 'Seiten, dé noch „$1“ valinken',
-'whatlinkshere-page' => 'Seiten:',
+'whatlinkshere-title' => 'Seitn, wo af „$1“ valinka',
+'whatlinkshere-page' => 'Seitn:',
 'linkshere' => "De foigandn Seitn valinka af '''„[[:$1]]“''':",
 'nolinkshere' => "Koa Seitn valinkt af '''„[[:$1]]“'''.",
 'isredirect' => 'Weidaloatungsseitn',
@@ -1272,11 +1273,11 @@ Da aktuöje Text voh da gléschden Seiten is netter fyr Administraatorn zuagäng
 'whatlinkshere-prev' => '{{PLURAL:$1|vorige|vorign $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|naxde|naxdn $1}}',
 'whatlinkshere-links' => '← Vaweise',
-'whatlinkshere-hideredirs' => 'Weidaleitungen $1',
-'whatlinkshere-hidetrans' => 'Vurlongeihbindung $1',
+'whatlinkshere-hideredirs' => 'Weidaloatunga $1',
+'whatlinkshere-hidetrans' => 'Vorlognehbindung $1',
 'whatlinkshere-hidelinks' => 'Links $1',
 'whatlinkshere-hideimages' => '$1 Dateilinks',
-'whatlinkshere-filters' => 'Füter',
+'whatlinkshere-filters' => 'Fuita',
 
 # Block/unblock
 'autoblockid' => 'Autómaatische Sperrung #$1',
@@ -1333,7 +1334,7 @@ Zur da Aufheewung vo da Sperrn schau unter da [[Special:BlockList|Listen vo olle
 'blocklink' => 'Sperrn',
 'unblocklink' => 'Freigebm',
 'change-blocklink' => 'Sperr endan',
-'contribslink' => 'Beidräg',
+'contribslink' => 'Beidreg',
 'emaillink' => 'E-Póst schicker',
 'autoblocker' => 'Autómaatische Sperr, wei du a gmoahsaume IP-Adress mim [[User:$1|$1]] bnutzd. Grund voh da Benutzersperrn: „$2“.',
 'blocklogpage' => 'Sperrlogbuach',
@@ -1440,9 +1441,9 @@ Bsuach bittschee de Saiten [//www.mediawiki.org/wiki/Localisation MediaWiki-Loka
 'tooltip-ca-undelete' => 'Eihträg wiederherstön, bevur dé Seiten gléscht worn is.',
 'tooltip-ca-move' => 'De Seitn vaschiabm',
 'tooltip-ca-watch' => 'De Seitn zua Beobochtungslistn dazua doa',
-'tooltip-ca-unwatch' => 'Dé Seiten voh da persénlichen Beówochtungslisten entferner',
+'tooltip-ca-unwatch' => 'De Seitn vom "Beobochta" wegga doa',
 'tooltip-search' => '{{SITENAME}} duachsuacha',
-'tooltip-search-go' => 'Gee direkt zua derer Seiten, dé exakd am eihgeewernen Nåm entspricht.',
+'tooltip-search-go' => 'Geh direkt zua Seitn mit exakt im Nama, wens de gibt.',
 'tooltip-search-fulltext' => 'Suach noch Seitn, wo den Text enthoiden',
 'tooltip-p-logo' => 'Schau da de Hoamseitn o',
 'tooltip-n-mainpage' => 'Schau da de Hoamseitn o',
@@ -1458,14 +1459,14 @@ Hintagrundinfo za Neiigkeidn',
 'tooltip-t-recentchangeslinked' => 'De letztn Endarunga af Seitn, de wo do hea valinka',
 'tooltip-feed-rss' => 'RSS-Feed vo derer Saiten',
 'tooltip-feed-atom' => 'Atom-Feed vo dera Seitn',
-'tooltip-t-contributions' => "D' Listen voh d' Beiträg voh dém Benutzer åschauh",
+'tooltip-t-contributions' => 'A Listn vo de Nutzabeidreg',
 'tooltip-t-emailuser' => 'Em Nutza a Mail schicka',
 'tooltip-t-upload' => 'Datein affelodn',
 'tooltip-t-specialpages' => 'A Listn vo olle Spezialseitn',
 'tooltip-t-print' => 'Druckosicht za dea Seitn',
 'tooltip-t-permalink' => 'Dauerhofta Link za dea Seitnversion',
 'tooltip-ca-nstab-main' => 'Seitninhoid ozoagn',
-'tooltip-ca-nstab-user' => 'Benutzerseiten åzoang',
+'tooltip-ca-nstab-user' => 'Nutzaseitn oschaugn',
 'tooltip-ca-nstab-media' => 'Meediendaateiseiten åzoang',
 'tooltip-ca-nstab-special' => 'Des is a Spezialseitn, wosd ned beorbatn konst.',
 'tooltip-ca-nstab-project' => 'Projektseitn ozoagn',
@@ -1476,9 +1477,9 @@ Hintagrundinfo za Neiigkeidn',
 'tooltip-ca-nstab-category' => 'Kategorieseitn ozoagn',
 'tooltip-minoredit' => 'Ois kloane Endarung markian.',
 'tooltip-save' => 'Endarunga speichan',
-'tooltip-preview' => 'A Vurschau voh dé Änderrungen an derer Seiten. Bittscheh vurm Speichern bnutzen!',
-'tooltip-diff' => 'Änderrungen am Text zoang',
-'tooltip-compareselectedversions' => 'Unterschiade zwischen zwoa ausgwöde Versiónen voh derer  Seiten vagleichen.',
+'tooltip-preview' => 'A Vorschau vo de Endarunga an dea Seitn. Vorm Speichan bittschee nutzn!',
+'tooltip-diff' => 'Endarunga am Text zoagn',
+'tooltip-compareselectedversions' => 'De Untaschied zwischn zwoa Versiona oschaugn.',
 'tooltip-watch' => 'De Seitn zua Beobochtungslistn gebm',
 'tooltip-recreate' => 'Seitn nei erstelln, obwoi sie glöscht worn is.',
 'tooltip-upload' => 'Start as Aufféloon',
@@ -1506,7 +1507,7 @@ Hintagrundinfo za Neiigkeidn',
 'file-info-size' => '$1 × $2 Pixel, Dateigress: $3, MIME-Typ: $4',
 'file-nohires' => 'Es gibt koa hehare Aflesung.',
 'svg-long-desc' => 'SVG-Datei, Basisgress: $1 × $2 Pixl, Dateigress: $3',
-'show-big-image' => 'Versión in heecherner Auflésung',
+'show-big-image' => 'Volle Aflesung',
 
 # Special:NewFiles
 'newimages' => 'Neiche Daatein',
@@ -1523,7 +1524,8 @@ Irgendwejche foigandn Links in da sejm Zein definian Ausnahma, z. B. Seitn wo de
 
 # Metadata
 'metadata' => 'Metadatn',
-'metadata-help' => 'Dé Daatei enthoit weiderne Informaziónen, dé in da Reegel voh da Digitoikammera óder am vawenderden Scanner ståmmern. Durch a noochträgliche Beorweidung voh da Originoidaatei kennern oanige Deteils vaänderd worn seih.',
+'metadata-help' => 'De Datei enthoit weidane Infos, wo woarscheinli vo da vawendadn Digitalkamera oda Scanna kema.
+Wen de Datei vaendat worn is, kena a poar Detail andasta sei.',
 'metadata-expand' => 'Erweitate Deteus eiblendn',
 'metadata-collapse' => "D' erweiterden Details eihblenden",
 'metadata-fields' => 'De foigandn Fejda vo de EXIF-Metadaten, wo im MediaWiki-Systemtext ogebm san, wean auf Buidbschriebseitn mid eikloppta Metadatentabejn ozoagt.
@@ -1683,7 +1685,7 @@ Bittscheh d' noraale Vurschau bnutzen.",
 
 # Special:Tags
 'tags' => 'Gütige Änderrungsmarkiarunen',
-'tag-filter' => '[[Special:Tags|Markiarungs]]-Füter:',
+'tag-filter' => '[[Special:Tags|Markiarungs]]-Fuita:',
 'tag-filter-submit' => 'Füter',
 'tags-title' => 'Markiarungen',
 'tags-intro' => 'Dé Seiten zoagt olle Markiarungen, dé fyr Beorweidungen vawendt wern, sówia dé Bedeitung voh dé.',
index 71be8f1..b0a37bb 100644 (file)
@@ -3784,7 +3784,7 @@ Kun bako man, ika makakagamit nin sayon na porma sa ibaba. An saimong komento id
 'api-error-badtoken' => 'Panlaog na kasalaan: Raot na pangilip',
 'api-error-copyuploaddisabled' => 'An pagkakarga sa paagi kan URL pinag-untok sa serbidor na ini.',
 'api-error-duplicate' => 'Igwa {{PLURAL:$1|nin [$2 ibang sagunson]|mga [$2 iba pang mga sagunson]}} na yaon sa sityo na igwa nin kaparehong laog.',
-'api-error-duplicate-archive' => 'Igwa {{PLURAL:$1|kaidto nin {$2 ibang sagunson]|kaidto nin {$2 ibang mga sagunson]}} na yaon sa sityo na igwa nin kaparehong laog, alagad {{PLURAL:$1|ini kaidto|sinda kaidto}} pinagpura na.',
+'api-error-duplicate-archive' => 'Igwa {{PLURAL:$1|kaidto nin [$2 ibang sagunson]|kaidto nin [$2 ibang mga sagunson]}} na yaon sa sityo na igwa nin kaparehong laog, alagad {{PLURAL:$1|ini kaidto|sinda kaidto}} pinagpura na.',
 'api-error-duplicate-archive-popup-title' => 'Kambal na {{PLURAL:$1|sagunson na|mga sagunson na}} pinagpura na.',
 'api-error-duplicate-popup-title' => 'Kambal na {{PLURAL:$1|sagunson|mga sagunson}}.',
 'api-error-empty-file' => 'An sagunson na saimong pinagsumite daeng laog.',
@@ -3822,6 +3822,14 @@ Kun bako man, ika makakagamit nin sayon na porma sa ibaba. An saimong komento id
 
 # Durations
 'duration-seconds' => '$1 {{PLURAL:$1|segundo|mga segundo}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuto|minutos}}',
+'duration-hours' => '$1 {{PLURAL:$1|oras|mga oras}}',
+'duration-days' => '$1 {{PLURAL:$1|aldaw|mga aldaw}}',
+'duration-weeks' => '$1 {{PLURAL:$1|semana|mga semana}}',
+'duration-years' => '$1 {{PLURAL:$1|taon|mga taon}}',
+'duration-decades' => '$1 {{PLURAL:$1|dekada|mga dekada}}',
+'duration-centuries' => '$1 {{PLURAL:$1|siglo|mga siglo}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milenyo|mga millenyo}}',
 
 # Unknown messages
 'svg-long-error' => 'Imbalidong SVG na sagunson: $1',
index 5a9b652..616b91d 100644 (file)
@@ -2576,7 +2576,7 @@ $1',
 'block' => 'Заблякаваць удзельніка',
 'unblock' => 'Разблякаваць удзельніка',
 'blockip' => 'Заблякаваць',
-'blockip-title' => 'Блякаваньне ўдзельніка ці ўдзельніцы',
+'blockip-title' => 'Блякаваньне ўдзельнікаў',
 'blockip-legend' => 'Заблякаваць удзельніка',
 'blockiptext' => 'Наступная форма дазваляе заблякаваць магчымасьць рэдагаваньня з пэўнага IP-адрасу альбо імя ўдзельніка. Гэта трэба рабіць толькі дзеля прадухіленьня вандалізму і згодна з [[{{MediaWiki:Policy-url}}|правіламі]]. Пазначце ніжэй дакладную прычыну (напрыклад, пералічыце асобныя старонкі, на якіх былі парушэньні).',
 'ipadressorusername' => 'IP-адрас альбо імя ўдзельніка/ўдзельніцы:',
index 7493550..e8dc4fe 100644 (file)
@@ -345,6 +345,7 @@ $messages = array(
 'namespaces' => 'Esaouennoù anv',
 'variants' => 'Adstummoù',
 
+'navigation-heading' => 'Lañser merdeiñ',
 'errorpagetitle' => 'Fazi',
 'returnto' => "Distreiñ d'ar bajenn $1.",
 'tagline' => 'Eus {{SITENAME}}',
@@ -584,6 +585,7 @@ Setu amañ perak ''$2''.",
 
 Gallout a rit kenderc'hel da implijout {{SITENAME}} en un doare dizanv, pe <span class='plainlinks'>[$1 kevreañ en-dro]</span> gant an hevelep anv pe un anv all mar fell deoc'h.
 Notit mat e c'hallo pajennoù zo kenderc'hel da vezañ diskwelet evel pa vefec'h kevreet c'hoazh, betek ma vo riñset krubuilh ho merdeer ganeoc'h.",
+'welcomeuser' => 'Degemer mat $1 !',
 'yourname' => 'Anv implijer :',
 'yourpassword' => 'Ger-tremen :',
 'yourpasswordagain' => 'Skrivit ho ker-tremen en-dro',
@@ -2424,7 +2426,7 @@ $1',
 'blanknamespace' => '(Pennañ)',
 
 # Contributions
-'contributions' => 'Degasadennoù an implijer',
+'contributions' => 'Degasadennoù an {{GENDER:$1|implijer|implijerez}}',
 'contributions-title' => 'Degasadennoù an implijer evit $1',
 'mycontris' => 'Ma degasadennoù',
 'contribsub2' => 'Evit $1 ($2)',
@@ -3828,9 +3830,9 @@ Diskouezet eo ar skeudennoù gant ur pizhder uhel, erounit a ra ar restroù all
 'logentry-move-move_redir-noredirect' => 'kaset ar bajenn $3 da $4 gant $1 dreist un adkas hep lezel un adkas',
 'logentry-patrol-patrol' => 'Merket eo bet an adweladenn $4 eus ar bajenn $3 evel gwiriet gant $1',
 'logentry-patrol-patrol-auto' => 'Merket eo bet ent emgefre an adweladenn $4 eus ar bajenn $3 evel gwiriet gant $1',
-'logentry-newusers-newusers' => '$1 en deus krouet ur gont implijer',
-'logentry-newusers-create' => '$1 en deus krouet ur gont implijer',
-'logentry-newusers-create2' => '$1 en deus krouet ur gont implijer $3',
+'logentry-newusers-newusers' => 'Ar gont implijer $1 oa bet krouet',
+'logentry-newusers-create' => 'Ar gont implijer $1 oa bet krouet',
+'logentry-newusers-create2' => 'Ar gont implijer $3 oa bet krouet gant $1',
 'logentry-newusers-autocreate' => 'Krouet eo bet kont $1 ent emgefre',
 'newuserlog-byemail' => 'ger-tremen kaset dre bostel',
 
@@ -3906,4 +3908,6 @@ A-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc
 'duration-centuries' => "$1 {{PLURAL:$1|c'hantved|kantved}}",
 'duration-millennia' => '$1 {{PLURAL:$1|milvloaz|milvoaz}}',
 
+# Unknown messages
+'svg-long-error' => 'Restr SVG direizh : $1',
 );
index ea2ec4d..0d9f750 100644 (file)
@@ -2210,14 +2210,22 @@ S'hi mostraran els canvis futurs que tinguin lloc en aquesta pàgina i la corres
 'enotif_mailer' => 'Sistema de notificació per correl de {{SITENAME}}',
 'enotif_reset' => 'Marca totes les pàgines com a visitades',
 'enotif_impersonal_salutation' => 'usuari de la {{SITENAME}}',
+'enotif_subject_deleted' => 'La pàgina $1 de {{SITENAME}} ha estat suprimida per {{gender:$2|$2}}',
+'enotif_subject_created' => 'La pàgina $1 de {{SITENAME}} ha estat creada per {{gender:$2|$2}}',
+'enotif_subject_moved' => 'La pàgina $1 de {{SITENAME}} ha estat reanomenada per {{gender:$2|$2}}',
+'enotif_subject_restored' => 'La pàgina $1 de {{SITENAME}} ha estat restaurada per {{gender:$2|$2}}',
+'enotif_subject_changed' => 'La pàgina $1 de {{SITENAME}} ha estat canviada per {{gender:$2|$2}}',
+'enotif_body_intro_deleted' => 'La pàgina $1 de {{SITENAME}} ha estat suprimida el $PAGEEDITDATE per {{gender:$2|$2}}. Aneu a $3 per veure la revisió actual.',
+'enotif_body_intro_created' => 'La pàgina $1 de {{SITENAME}} ha estat creada el $PAGEEDITDATE per {{gender:$2|$2}}. Aneu a $3 per veure la revisió actual.',
+'enotif_body_intro_moved' => 'La pàgina $1 de {{SITENAME}} ha estat reanomenada el $PAGEEDITDATE per {{gender:$2|$2}}. Aneu a $3 per veure la revisió actual.',
+'enotif_body_intro_restored' => 'La pàgina $1 de {{SITENAME}} ha estat restaurada el $PAGEEDITDATE per {{gender:$2|$2}}. Aneu a $3 per veure la revisió actual.',
+'enotif_body_intro_changed' => 'La pàgina $1 de {{SITENAME}} ha estat canviada el $PAGEEDITDATE per {{gender:$2|$2}}. Aneu a $3 per veure la revisió actual.',
 'enotif_lastvisited' => "Vegeu $1 per a tots els canvis que s'han fet d'ença de la vostra darrera visita.",
 'enotif_lastdiff' => 'Consulteu $1 per a visualitzar aquest canvi.',
 'enotif_anon_editor' => 'usuari anònim $1',
-'enotif_body' => 'Benvolgut $WATCHINGUSERNAME,
+'enotif_body' => 'Benvolgut/uda $WATCHINGUSERNAME,
 
-La pàgina $PAGETITLE del projecte {{SITENAME}} ha estat $CHANGEDORCREATED el dia $PAGEEDITDATE per $PAGEEDITOR, vegeu la versió actual a $PAGETITLE_URL.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
 
 Resum de l\'editor: $PAGESUMMARY $PAGEMINOREDIT
 
@@ -2228,7 +2236,7 @@ wiki: $PAGEEDITOR_WIKI
 No rebreu més notificacions de futurs canvis si no visiteu la pàgina.
 També podeu canviar el mode de notificació de les pàgines que vigileu en la vostra llista de seguiment.
 
-                        El servei de notificacions del projecte {{SITENAME}}
+El servei de notificacions del projecte {{SITENAME}}
 
 --
 Per a canviar les opcions de notificació per correu electrònic aneu a
index 0e83ce7..6202886 100644 (file)
@@ -525,7 +525,7 @@ $1',
 'actionthrottled' => 'چالاکی پێشی پێ گیرا',
 'actionthrottledtext' => 'بە مەبەستی پێشگریی لە سپەم، ڕێگە نادرێت تۆ لە ماوەیەکی کورت دا لە سەر یەک ئەمە زۆر جار ئەنجام بدەی، وە ئیستا تۆ لە ڕادە بەدەرت کردووە.
 تکایە پاش چەند خولەک دووبارە تاقی بکەوە.',
-'protectedpagetext' => 'بÛ\95 Ù\85Û\95بÛ\95ستÛ\8c Ù¾Û\95رگرÛ\8c Ù\84Û\95 Ø¯Û\95ستکارÛ\8cکردÙ\86 Ø¦Û\95Ù\85 Ù¾Û\95Ú\95ە پارێزراوە.',
+'protectedpagetext' => 'بÛ\86 Ø¨Û\95رگرÛ\8c Ù\84Û\95 Ø¯Û\95ستکارÛ\8cکردÙ\86 Û\8cاÙ\86 Ú\86اÙ\84اکÛ\8cÛ\8cÛ\95کاÙ\86Û\8c ØªØ± Ø¦Û\95Ù\85 Ù¾Û\95Ú\95Û\95Û\8cە پارێزراوە.',
 'viewsourcetext' => 'دەتوانی سەرچاوەی ئەم پەڕە ببینی و کۆپیی بکەی:',
 'viewyourtext' => "دەتوانی ژێدەری '''دەستکارییەکەت''' لەم پەڕەیەدا ببینی و کۆپی بکەی:",
 'protectedinterface' => 'ئەم پەڕەیە دەقی ڕواڵەتی نەرمامێری ئەم ویکییە نیشان دەدات و بۆ بەرگری لە خراپکاری پارێزراوە.
@@ -2263,7 +2263,7 @@ $1',
 'blanknamespace' => '(سەرەکی)',
 
 # Contributions
-'contributions' => 'بەشدارییەکانی بەکارھێنەر',
+'contributions' => 'بەشدارییەکانی {{GENDER:$1|بەکارھێنەر}}',
 'contributions-title' => 'بەشدارییەکانی بەکارھێنەر $1',
 'mycontris' => 'بەشدارییەکان',
 'contribsub2' => 'بۆ $1 ($2)',
index 59629b8..5c3c6f7 100644 (file)
@@ -2055,7 +2055,7 @@ er mwyn medru anfon e-bost at ddefnyddwyr eraill.',
 'emailuser-title-notarget' => 'Anfon e-bost at ddefnyddiwr',
 'emailpage' => 'Anfon e-bost at ddefnyddiwr',
 'emailpagetext' => 'Os yw\'r cyfeiriad e-bost sydd yn newisiadau\'r {{GENDER:$1|defnyddiwr}} hwn yn un dilys, gellir anfon neges ato o\'i ysgrifennu ar y ffurflen isod.
-Bydd y cyfeiriad e-bost a osodoch yn eich [[Special:Preferences|dewisiadau chithau]] yn ymddangos ym maes "Oddi wrth" yr e-bost, fel bod y defnyddiwr arall yn gallu anfon ateb atoch.',
+Bydd y cyfeiriad e-bost a osodoch yn eich [[Special:Preferences|dewisiadau]] yn ymddangos ym maes "Oddi wrth" yr e-bost, fel bod y defnyddiwr arall yn gallu anfon ateb uniongyrchol atoch.',
 'usermailererror' => 'Dychwelwyd gwall gan y rhaglen e-bost:',
 'defemailsubject' => '{{SITENAME}} yn anfon e-bost oddi wrth y defnyddiwr "$1"',
 'usermaildisabled' => 'Dim modd anfon e-bost at ddefnyddwyr',
@@ -2339,7 +2339,7 @@ $1',
 'blanknamespace' => '(Prif)',
 
 # Contributions
-'contributions' => "Cyfraniadau'r defnyddiwr",
+'contributions' => "{{GENDER:$1|Cyfraniadau'r defnyddiwr}}",
 'contributions-title' => "Cyfraniadau'r defnyddiwr am $1",
 'mycontris' => 'Cyfraniadau',
 'contribsub2' => 'Dros $1 ($2)',
index 3505c5a..4002910 100644 (file)
@@ -1537,9 +1537,9 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'prefs-emailconfirm-label' => 'E-Mail-Bestätigung:',
 'prefs-textboxsize' => 'Größe des Bearbeitungsfensters',
 'youremail' => 'E-Mail-Adresse:',
-'username' => 'Benutzername:',
-'uid' => 'Benutzerkennung:',
-'prefs-memberingroups' => 'Mitglied der {{PLURAL:$1|Benutzergruppe|Benutzergruppen}}:',
+'username' => '{{GENDER:$1|Benutzername}}:',
+'uid' => '{{GENDER:$1|Benutzerkennung}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Mitglied}} der {{PLURAL:$1|Benutzergruppe|Benutzergruppen}}:',
 'prefs-memberingroups-type' => '$2',
 'prefs-registration' => 'Anmeldezeitpunkt:',
 'prefs-registration-date-time' => '$2, $3 Uhr',
index 09e0ad0..cd3ef1a 100644 (file)
@@ -1890,9 +1890,9 @@ This cannot be undone.',
 'prefs-emailconfirm-label'      => 'E-mail confirmation:',
 'prefs-textboxsize'             => 'Size of editing window',
 'youremail'                     => 'E-mail:',
-'username'                      => 'Username:',
-'uid'                           => 'User ID:',
-'prefs-memberingroups'          => 'Member of {{PLURAL:$1|group|groups}}:',
+'username'                      => '{{GENDER:$1|Username}}:',
+'uid'                           => '{{GENDER:$1|User}} ID:',
+'prefs-memberingroups'          => '{{GENDER:$2|Member}} of {{PLURAL:$1|group|groups}}:',
 'prefs-memberingroups-type'     => '$1', # only translate this message to other languages if you have to change it
 'prefs-registration'            => 'Registration time:',
 'prefs-registration-date-time'  => '$1', # only translate this message to other languages if you have to change it
index 2e2704d..67bb7f9 100644 (file)
@@ -724,6 +724,8 @@ La administranto kiu ŝlosis ĝin proponis tiun klarigon: "$3".',
 Vi rajtas daŭre vikiumi sennome, aŭ vi povas <span class='plainlinks'>[$1 reensaluti]</span> kiel la sama aŭ kiel alia uzanto.
 Notu ke iuj paĝoj daŭre ŝajnos kvazaŭ vi ankoraŭ estas ensalutita, ĝis vi refreŝigu vian retumilan kaŝmemoron.",
 'welcomeuser' => 'Bonvenon, $1!',
+'welcomecreation-msg' => 'Vian konton kreis.
+Ne forgesu ŝanĝi viajn [[Special:Preferences|{{SITENAME}}-preferojn]]',
 'yourname' => 'Salutnomo:',
 'yourpassword' => 'Pasvorto:',
 'yourpasswordagain' => 'Retajpu pasvorton',
@@ -1087,6 +1089,7 @@ Verŝajne ĝi estis forigita.',
 'edit-already-exists' => 'Ne eblis krei novan paĝon.
 Ĝi jam ekzistas.',
 'defaultmessagetext' => 'Defaŭlta teksto',
+'content-failed-to-parse' => 'Oni malsukcesis analizi $2-entenon laŭ la $1-modelo: $3',
 'invalid-content-data' => 'Enhavo estas malvalida',
 'content-not-allowed-here' => 'Enhavo de $1 ne estas permesita en paĝo [[$2]]',
 
@@ -1617,6 +1620,7 @@ Jen hazarde generita valoro por via uzo: $1',
 'rightslogentry-autopromote' => 'estis aŭtomate altrangigita de $2 al $3',
 'logentry-rights-rights' => '$1 ŝanĝis grupan membrecon por $3 de $4 al $5',
 'logentry-rights-rights-legacy' => '$1 ŝanĝis grupan membrecon por $3',
+'logentry-rights-autopromote' => '$1 estis aŭtomate altrangigita de $4 al $5',
 'rightsnone' => '(nenia)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1844,6 +1848,7 @@ Se la problemo kontinuas, kontaku [[Special:ListUsers/sysop|sisteman administran
 'backend-fail-notsame' => 'Malsama dosiero jam ekzistas ĉe $1.',
 'backend-fail-invalidpath' => '$1 ne estas valida pado por konservujo.',
 'backend-fail-delete' => 'Ne povis forigi dosieron "$1".',
+'backend-fail-describe' => 'Ne povis ŝanĝi la metadatenon de la dosiero "$1".',
 'backend-fail-alreadyexists' => 'La dosiero "$1" jam ekzistas.',
 'backend-fail-store' => 'Ne povis konservi dosieron $1 ĉe $2.',
 'backend-fail-copy' => 'Ne povis kopii dosieron $1 al $2.',
@@ -2348,14 +2353,25 @@ La retadreso kiun vi enigis en [[Special:Preferences|viaj preferoj]] aperos kiel
 'enotif_mailer' => 'Averta retmesaĝo de {{SITENAME}}',
 'enotif_reset' => 'Marki ĉiujn paĝojn vizititaj',
 'enotif_impersonal_salutation' => 'Uzanto de {{SITENAME}}',
+'enotif_subject_deleted' => 'La paĝon $1 de {{SITENAME}} forigis {{gender:$2|$2}}',
+'enotif_subject_created' => 'La paĝon $1 de {{SITENAME}} kreis {{gender:$2|$2}}',
+'enotif_subject_moved' => 'La paĝon $1 de {{SITENAME}} movis {{gender:$2|$2}}',
+'enotif_subject_restored' => 'La paĝon $1 de {{SITENAME}} remetis {{gender:$2|$2}}',
+'enotif_subject_changed' => 'La paĝon $1 de {{SITENAME}} ŝanĝis {{gender:$2|$2}}',
+'enotif_body_intro_deleted' => 'La paĝon $1 de {{SITENAME}} forigis {{gender:$2|$2}} je $PAGEEDITDATE; bonvole vidu $3 pri la nuna revizio.',
+'enotif_body_intro_created' => 'La paĝon $1 de {{SITENAME}} kreis {{gender:$2|$2}} je $PAGEEDITDATE; bonvole vidu $3 pri la nuna revizio.',
+'enotif_body_intro_moved' => 'La paĝon $1 de {{SITENAME}} movis {{gender:$2|$2}} je $PAGEEDITDATE; bonvole vidu $3 pri la nuna revizio.',
+'enotif_body_intro_restored' => 'La paĝon $1 de {{SITENAME}} remetis {{gender:$2|$2}} je $PAGEEDITDATE; bonvole vidu $3 pri la nuna revizio.',
+'enotif_body_intro_changed' => 'La paĝon $1 de {{SITENAME}} ŝanĝis {{gender:$2|$2}} je $PAGEEDITDATE; bonvole vidu $3 pri la nuna revizio.',
 'enotif_lastvisited' => 'Vidi $1 por ĉiuj ŝanĝoj de post via lasta vizito.',
 'enotif_lastdiff' => 'Vidi $1 por rigardi ĉi tiun ŝanĝon.',
 'enotif_anon_editor' => 'anonima uzanto $1',
 'enotif_body' => 'Kara $WATCHINGUSERNAME,
 
-La paĝo $PAGETITLE de {{SITENAME}} estis $CHANGEDORCREATED je $PAGEEDITDATE de $PAGEEDITOR; vidu $PAGETITLE_URL por la nuna revizio.
+$PAGEINTRO $NEWPAGE
 
-$NEWPAGE
+Redaktinta resumo:
+$PAGESUMMARY $PAGEMINOREDIT
 
 Resumo pri la ŝanĝo de la redaktinto: $PAGESUMMARY $PAGEMINOREDIT
 
@@ -2363,18 +2379,18 @@ Kontaktu la redaktinton:
 retpoŝte: $PAGEEDITOR_EMAIL
 vikie: $PAGEEDITOR_WIKI
 
-Ne estos aliaj avertoj kaze de sekvaj ŝanĝoj krom se vi vizitus la paĝon. Vi povas ankaŭ malaktivigi la avertsignalon por ĉiuj priatentitaj paĝoj de via atentaro.
+Ne estos aliaj avertoj kaze de sekvaj ŝanĝoj krom se vi vizitus ĉi tiun paĝon. Vi povas ankaŭ malaktivigi la avertsignalon por ĉiuj priatentitaj paĝoj de via atentaro.
 
             Sincere via, la avertsistemo de {{SITENAME}}
 
 --
-Por ŝanĝi vian retpoŝtan notigadan preferon, klaku
+Por ŝanĝi vian retpoŝtan avertadajn preferojn, klaku
 {{canonicalurl:{{#special:Preferences}}}}
 
-Por ŝanĝi vian preferon de la atentaro, klaku
+Por ŝanĝi vian preferojn de la atentaro, klaku
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
-Por forigi la paĝon de via atentaro, klaku
+Por forigi ĉi tiun paĝon de via atentaro, klaku
 $UNWATCHURL
 
 Komentoj kaj plia helpo:
@@ -2560,7 +2576,7 @@ $1',
 'blanknamespace' => '(Artikoloj)',
 
 # Contributions
-'contributions' => 'Kontribuoj de uzanto',
+'contributions' => 'Kontribuoj de {{GENDER:$1|uzanto|uzantino}}',
 'contributions-title' => 'Kontribuoj de uzanto $1',
 'mycontris' => 'Kontribuoj',
 'contribsub2' => 'De $1 ($2)',
@@ -2833,6 +2849,7 @@ La celartikolo "[[:$1]]" jam ekzistas. Ĉu vi volas forigi ĝin por krei spacon
 'immobile-target-namespace-iw' => 'Intervikia ligilo ne estas valida celo por paĝa movo.',
 'immobile-source-page' => 'Ĉi tiu paĝo ne estas movebla.',
 'immobile-target-page' => 'Ne povas movi al tiu destina titolo.',
+'bad-target-model' => 'La celo dezira uzas malakordan entenmodelon. Ne povas  ŝanĝi el $1 al $2.',
 'imagenocrossnamespace' => 'Ne povas movi dosieron al nedosiera nomspaco',
 'nonfile-cannot-move-to-file' => 'Ne povas movi ne-dosieron al dosiera nomspaco',
 'imagetypemismatch' => 'La nova dosierfinaĵo ne kongruas ĝian dosiertipon.',
@@ -3157,6 +3174,8 @@ Datoj de versioj kaj nomoj de redaktantoj estos preservitaj.
 'markedaspatrollederror' => 'Ne povas marki kiel patrolitan',
 'markedaspatrollederrortext' => 'Vi devas specifi version por marki kiel patrolitan.',
 'markedaspatrollederror-noautopatrol' => 'Vi ne rajtas marki viajn proprajn ŝanĝojn kiel patrolitajn.',
+'markedaspatrollednotify' => 'Ĉi tiun ŝanĝon al $1 markis kiel patrolatan.',
+'markedaspatrollederrornotify' => 'Malsukcesis marki la dosieron kiel patrolatan.',
 
 # Patrol log
 'patrol-log-page' => 'Protokolo pri patrolado',
@@ -3219,6 +3238,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 horo|$1 horoj}}',
 'days' => '{{PLURAL:$1|$1 tago|$1 tagoj}}',
 'ago' => 'antaŭ $1',
+'just-now' => 'ĵus nune',
 
 # Bad image list
 'bad_image_list' => 'La formato estas jen:
@@ -3431,6 +3451,7 @@ Aliaj estos kaŝitaj defaŭlte.
 'exif-compression-2' => 'CCITT-Grupo 3 modifita ciferado laŭ Huffman Dimensio-1',
 'exif-compression-3' => 'CCITT Grupo-3 ĉifrado por faksilo',
 'exif-compression-4' => 'CCITT Grupo-4 ĉifrado por faksilo',
+'exif-compression-8' => 'Malŝveli (Adobe)',
 
 'exif-copyrighted-true' => 'Sub aŭtorrajto',
 'exif-copyrighted-false' => 'Sub publika domajno',
@@ -3796,6 +3817,64 @@ Vi povas ankaŭ [[Special:EditWatchlist|redakti norme]].',
 'watchlisttools-edit' => 'Rigardi kaj redakti atentaron',
 'watchlisttools-raw' => 'Redakti krudan atentaron',
 
+# Iranian month names
+'iranian-calendar-m1' => 'farvardino',
+'iranian-calendar-m2' => 'ordibeheŝto',
+'iranian-calendar-m3' => 'ĥordado',
+'iranian-calendar-m4' => 'tiro',
+'iranian-calendar-m5' => 'mordado',
+'iranian-calendar-m6' => 'ŝahrivaro',
+'iranian-calendar-m7' => 'mehro',
+'iranian-calendar-m8' => 'abano',
+'iranian-calendar-m9' => 'azaro',
+'iranian-calendar-m10' => 'dejo',
+'iranian-calendar-m11' => 'bahmano',
+'iranian-calendar-m12' => 'esfando',
+
+# Hijri month names
+'hijri-calendar-m1' => 'muharamo',
+'hijri-calendar-m2' => 'safaro',
+'hijri-calendar-m3' => 'rabi-ul-aŭŭalo',
+'hijri-calendar-m4' => 'rabi-us-sanio',
+'hijri-calendar-m5' => 'ĵumada-l-ulo',
+'hijri-calendar-m6' => 'ĵumada-l-aĥiro',
+'hijri-calendar-m7' => 'raĵabo',
+'hijri-calendar-m8' => 'ŝabano',
+'hijri-calendar-m9' => 'ramadano',
+'hijri-calendar-m10' => 'ŝaŭalo',
+'hijri-calendar-m11' => 'du-l-kado',
+'hijri-calendar-m12' => 'du-l-hiĵo',
+
+# Hebrew month names
+'hebrew-calendar-m1' => 'tiŝrio',
+'hebrew-calendar-m2' => 'ĥeŝvano',
+'hebrew-calendar-m3' => 'kislevo',
+'hebrew-calendar-m4' => 'teveto',
+'hebrew-calendar-m5' => 'ŝevato',
+'hebrew-calendar-m6' => 'adaro',
+'hebrew-calendar-m6a' => 'adaro 1',
+'hebrew-calendar-m6b' => 'adaro 2',
+'hebrew-calendar-m7' => 'nisano',
+'hebrew-calendar-m8' => 'ijaro',
+'hebrew-calendar-m9' => 'sivano',
+'hebrew-calendar-m10' => 'tamuzo',
+'hebrew-calendar-m11' => 'abo',
+'hebrew-calendar-m12' => 'elulo',
+'hebrew-calendar-m1-gen' => 'tiŝrio',
+'hebrew-calendar-m2-gen' => 'ĥeŝvano',
+'hebrew-calendar-m3-gen' => 'kislevo',
+'hebrew-calendar-m4-gen' => 'teveto',
+'hebrew-calendar-m5-gen' => 'ŝevato',
+'hebrew-calendar-m6-gen' => 'adaro',
+'hebrew-calendar-m6a-gen' => 'adaro 1',
+'hebrew-calendar-m6b-gen' => 'adaro 2',
+'hebrew-calendar-m7-gen' => 'nisano',
+'hebrew-calendar-m8-gen' => 'ijaro',
+'hebrew-calendar-m9-gen' => 'sivano',
+'hebrew-calendar-m10-gen' => 'tamuzo',
+'hebrew-calendar-m11-gen' => 'abo',
+'hebrew-calendar-m12-gen' => 'elulo',
+
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskuto]])',
 
@@ -3823,6 +3902,7 @@ Vi povas ankaŭ [[Special:EditWatchlist|redakti norme]].',
 'version-license' => 'Permesilo',
 'version-poweredby-credits' => "Ĉi tiu vikio funkcias per '''[//www.mediawiki.org/ MediaWiki]''', aŭtorrajto ©&thinsp;2001–$1 $2.",
 'version-poweredby-others' => 'aliaj',
+'version-credits-summary' => 'Ni ŝatus agnoski la sekvajn personojn pro siaj kontribuoj al [[Special:Version|MediaWiki]].',
 'version-license-info' => 'MediaWiki estas libera programaro. Vi povas redistribui ĝin kaj/aŭ modifi ĝin sub la kondiĉoj de la GNU General Public Licens (GNU Ĝenerala Publika Permesilo) en ties eldono de la Free Software Foundation (Libera Softvara Fondaĵo) - aŭ versio 2 de la Permesilo, aŭ (laŭ via elekto) iu ajn posta versio.
 
 Tiun ĉi verkon ni distribuas esperante, ke ĝi utilos, sed SEN IA AJN GARANTIO; eĉ sen la implica garantio de SURMERKATIGEBLECO aŭ TAŬGECO POR IA DIFINITA CELO. Vidu GNU General Public License por pliaj detaloj.
@@ -4040,4 +4120,6 @@ Aŭ vi povas uzi la facilan formularon sube. Via komento estos aldonita al la pa
 'duration-centuries' => '$1 {{PLURAL:$1|jarcento|jarcentoj}}',
 'duration-millennia' => '$1 {{PLURAL:$1|jarmilo|jarmiloj}}',
 
+# Unknown messages
+'svg-long-error' => 'Malvalida SVG-dosiero: $1',
 );
index 958e2c3..45ebe69 100644 (file)
@@ -2023,9 +2023,10 @@ Ezabatzeak ezbeharrak eragin ditzake {{SITENAME}}ren datu-basean;
 kontu izan.',
 
 # Rollback
-'rollback' => 'Aldaketak desegin',
+'rollback' => 'Desegin aldaketak',
 'rollback_short' => 'Desegin',
 'rollbacklink' => 'desegin',
+'rollbacklinkcount' => 'desegin $1 {{PLURAL:$1|edizio bat|$1 edizio}}',
 'rollbackfailed' => 'Desegiteak huts egin dud',
 'cantrollback' => 'Ezin da aldaketa desegin; erabiltzaile bakarrak hartu du parte.',
 'alreadyrolled' => 'Ezin da [[User:$2|$2]](e)k ([[User talk:$2|Eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) [[$1]](e)n egindako azken aldaketa desegin;
index 9df40ce..c1fafc1 100644 (file)
@@ -422,7 +422,7 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Luokka|Luokat}}',
-'category_header' => "Luokan ''$1'' sisältämät sivut",
+'category_header' => 'Sivut, jotka ovat luokassa $1',
 'subcategories' => 'Alaluokat',
 'category-media-header' => 'Tiedostot, jotka ovat luokassa $1',
 'category-empty' => "''Tässä luokassa ei ole sivuja eikä tiedostoja.''",
@@ -1800,7 +1800,7 @@ $1',
 'backend-fail-notsame' => 'Epäidenttinen tiedosto on jo olemassa sijainnissa $1.',
 'backend-fail-invalidpath' => '$1 ei ole sallittu tallennuspolku.',
 'backend-fail-delete' => 'Tiedostoa $1 ei voitu poistaa.',
-'backend-fail-describe' => 'Tiedoston "$1" metatietoja ei voitu muuttaa.',
+'backend-fail-describe' => 'Tiedoston ”$1” metatietojen muuttaminen epäonnistui.',
 'backend-fail-alreadyexists' => 'Tiedosto $1 on jo olemassa.',
 'backend-fail-store' => 'Tiedostoa $1 ei voitu tallentaa polkuun $2.',
 'backend-fail-copy' => 'Tiedostoa ei voitu kopioida kohteesta $1 kohteeseen $2.',
@@ -1908,7 +1908,7 @@ Jos suodatusperusteena käytetään käyttäjää, tuloksissa näytetään vain
 # File description page
 'file-anchor-link' => 'Tiedosto',
 'filehist' => 'Tiedoston historia',
-'filehist-help' => 'Päiväystä napsauttamalla näet millainen tiedosto oli sillä ajan hetkellä.',
+'filehist-help' => 'Päiväystä napsauttamalla näet millainen tiedosto oli kyseisellä hetkellä.',
 'filehist-deleteall' => 'poista kaikki',
 'filehist-deleteone' => 'poista tämä',
 'filehist-revert' => 'palauta',
@@ -2441,10 +2441,10 @@ Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|k
 'pagesize' => 'tavua',
 
 # Restrictions (nouns)
-'restriction-edit' => 'muokkaus',
-'restriction-move' => 'siirto',
-'restriction-create' => 'luonti',
-'restriction-upload' => 'tiedostotallennus',
+'restriction-edit' => 'Muokkaus',
+'restriction-move' => 'Siirto',
+'restriction-create' => 'Luonti',
+'restriction-upload' => 'Tiedostotallennus',
 
 # Restriction levels
 'restriction-level-sysop' => 'täysin suojattu',
index 71c72a5..ea0336a 100644 (file)
@@ -75,6 +75,7 @@
  * @author Tititou36
  * @author TouzaxA
  * @author Tpt
+ * @author Trizek
  * @author Urhixidur
  * @author VIGNERON
  * @author Verdy p
@@ -785,7 +786,7 @@ L'administrateur qui l'a verrouillé a fourni ce motif: « $3 ».",
 
 Vous pouvez continuer à utiliser {{SITENAME}} de façon anonyme, <span class='plainlinks'>[$1 vous reconnecter]</span> sous le même nom ou un autre.
 Notez que certaines pages peuvent être encore affichées comme si vous étiez toujours connecté(e), jusqu'à ce que vous effaciez le cache de votre navigateur.",
-'welcomeuser' => 'Bienvenue, $1!',
+'welcomeuser' => 'Bienvenue, $1&nbsp;!',
 'welcomecreation-msg' => "Votre compte a été créé.
 N'oubliez pas de modifier vos [[Special:Preferences|{{SITENAME}} préférences]].",
 'yourname' => "Nom d'utilisateur :",
@@ -1504,9 +1505,9 @@ Voici une valeur générée aléatoirement que vous pouvez utiliser : $1',
 'prefs-emailconfirm-label' => 'Confirmation du courriel :',
 'prefs-textboxsize' => 'Taille de la fenêtre de modification',
 'youremail' => 'Courriel :',
-'username' => "Nom d'utilisateur :",
-'uid' => "Numéro d'utilisateur :",
-'prefs-memberingroups' => 'Membre {{PLURAL:$1|du groupe|des groupes}} :',
+'username' => "{{GENDER:$1|Nom d'utilisateur|Nom d'utilisatrice}}:",
+'uid' => "Numéro d'{{GENDER:$1|utilisateur|utilisatrice}}:",
+'prefs-memberingroups' => '{{GENDER:$2|Membre}} {{PLURAL:$1|du groupe|des groupes}}:',
 'prefs-registration' => "Date d'inscription :",
 'yourrealname' => 'Nom réel :',
 'yourlanguage' => 'Langue :',
@@ -3235,7 +3236,7 @@ Permet de rétablir la version précédente et d'ajouter un motif dans la boîte
 'markedaspatrollederror' => 'Ne peut être marquée comme relue',
 'markedaspatrollederrortext' => 'Vous devez sélectionner une version pour pouvoir la marquer comme relue.',
 'markedaspatrollederror-noautopatrol' => "Vous n'avez pas le droit de marquer vos propres modifications comme relues.",
-'markedaspatrollednotify' => 'Cette modification de $1 a été marquée comme contrôlée.',
+'markedaspatrollednotify' => 'Cette modification de $1 a été marquée comme relue.',
 'markedaspatrollederrornotify' => 'Échec du marquage comme contrôlé.',
 
 # Patrol log
@@ -3512,6 +3513,7 @@ Les autres liens sur la même ligne sont considérés comme des exceptions, par
 'exif-compression-2' => 'CCITT Groupe 3 Longueur du codage Huffman modifié de dimension 1',
 'exif-compression-3' => 'CCITT Groupe 3 codage du fax',
 'exif-compression-4' => 'CCITT Groupe 4 codage du fax',
+'exif-compression-6' => 'JPEG (ancien)',
 
 'exif-copyrighted-true' => "Soumis au droit d'auteur",
 'exif-copyrighted-false' => 'Domaine public',
index 316ce8a..ce6ac9c 100644 (file)
@@ -1388,9 +1388,9 @@ Este cambio non se poderá desfacer.',
 'prefs-emailconfirm-label' => 'Confirmación do correo:',
 'prefs-textboxsize' => 'Tamaño da caixa de edición',
 'youremail' => 'Correo electrónico:',
-'username' => 'Nome de usuario:',
-'uid' => 'ID de usuario:',
-'prefs-memberingroups' => 'Membro {{PLURAL:$1|do grupo|dos grupos}}:',
+'username' => 'Nome de {{GENDER:$1|usuario|usuaria}}:',
+'uid' => 'ID de {{GENDER:$1|usuario|usuaria}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Membro}} {{PLURAL:$1|do grupo|dos grupos}}:',
 'prefs-registration' => 'Data e hora de rexistro:',
 'yourrealname' => 'Nome real:',
 'yourlanguage' => 'Lingua:',
@@ -2085,7 +2085,7 @@ As entradas <del>riscadas</del> xa foron resoltas.',
 'mostimages' => 'Ficheiros máis usados',
 'mostinterwikis' => 'Páxinas con máis interwikis',
 'mostrevisions' => 'Páxinas con máis revisións',
-'prefixindex' => 'Todas as páxinas coas iniciais',
+'prefixindex' => 'Todas as páxinas con prefixo',
 'prefixindex-namespace' => 'Todas as páxinas con prefixo (espazo de nomes $1)',
 'shortpages' => 'Páxinas curtas',
 'longpages' => 'Páxinas longas',
index 869a334..a9d2ac9 100644 (file)
@@ -2350,7 +2350,7 @@ $1',
 'blanknamespace' => '(Haupt-)',
 
 # Contributions
-'contributions' => 'Benutzer-Byträg',
+'contributions' => '{{GENDER:$1|Benutzer-Byträg}}',
 'contributions-title' => 'Benutzerbyytreg vu „$1“',
 'mycontris' => 'Myyni Byyträg',
 'contribsub2' => 'Für $1 ($2)',
@@ -2876,6 +2876,7 @@ Die uf em lokale Rächner spychere un derno do uffelade.',
 'markedaspatrollederror' => 'Markierig as „kontrolliert“ nit megli.',
 'markedaspatrollederrortext' => 'Du muesch e Syteänderig uswehle.',
 'markedaspatrollederror-noautopatrol' => 'S isch nit erlaubt, eigeni Bearbeitige as kontrolliert z markiere.',
+'markedaspatrollednotify' => 'Die Änderig an $1 isch as kontrolliert markiert wore.',
 
 # Patrol log
 'patrol-log-page' => 'Kontroll-Logbuech',
index 7848a85..a64059c 100644 (file)
@@ -1507,9 +1507,9 @@ $1",
 'prefs-emailconfirm-label' => 'אימות כתובת דוא"ל:',
 'prefs-textboxsize' => 'גודל חלון העריכה',
 'youremail' => 'דואר אלקטרוני:',
-'username' => 'שם משתמש:',
-'uid' => '×\9eספר ×¡×\99×\93×\95ר×\99:',
-'prefs-memberingroups' => 'חבר {{PLURAL:$1|בקבוצה|בקבוצות}}:',
+'username' => 'שם {{GENDER:$1|המשתמש|המשתמשת}}:',
+'uid' => '×\94×\9eספר ×\94ס×\99×\93×\95ר×\99 ×©×\9c {{GENDER:$1|×\94×\9eשת×\9eש|×\94×\9eשת×\9eשת}}:',
+'prefs-memberingroups' => '{{GENDER:$2|חבר|חברה}} {{PLURAL:$1|בקבוצה|בקבוצות}}:',
 'prefs-registration' => 'זמן ההרשמה:',
 'yourrealname' => 'שם אמיתי:',
 'yourlanguage' => 'שפת הממשק:',
index 985a67f..0612036 100644 (file)
@@ -717,6 +717,7 @@ A lezárást végrehajtó rendszergazda az alábbi indoklást adta meg: "$3".',
 
 Folytathatod névtelenül  a(z) {{SITENAME}} használatát, vagy <span class='plainlinks'>[$1 ismét bejelentkezhetsz]</span> ugyanezzel, vagy egy másik névvel.
 Lehetséges, hogy néhány oldalon továbbra is azt látod, be vagy jelentkezve, mindaddig, amíg nem üríted a böngésződ gyorsítótárát.",
+'welcomeuser' => 'Üdvözlünk, $1!',
 'yourname' => 'Szerkesztőneved:',
 'yourpassword' => 'Jelszavad:',
 'yourpasswordagain' => 'Jelszavad ismét:',
@@ -1424,9 +1425,9 @@ A műveletet nem lehet visszavonni.',
 'prefs-emailconfirm-label' => 'E-mail cím megerősítése:',
 'prefs-textboxsize' => 'A szerkesztőablak mérete',
 'youremail' => 'Az e-mail címed:',
-'username' => 'Szerkesztőnév:',
-'uid' => 'Azonosító:',
-'prefs-memberingroups' => '{{PLURAL:$1|Csoporttagság|Csoporttagságok}}:',
+'username' => '{{GENDER:$1|Szerkesztőnév}}:',
+'uid' => '{{GENDER:$1|Azonosító}}:',
+'prefs-memberingroups' => '{{GENDER:$2|{{PLURAL:$1|Csoporttagság|Csoporttagságok}}}}:',
 'prefs-registration' => 'Regisztráció ideje:',
 'yourrealname' => 'Valódi neved:',
 'yourlanguage' => 'A felület nyelve:',
@@ -3081,8 +3082,8 @@ Ez valószínűleg egy olyan link miatt van, ami egy feketelistán lévő oldalr
 'pageinfo-redirects-name' => 'Átirányítások erre a lapra',
 'pageinfo-subpages-name' => 'Az lap allapjai',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|átirányítás}}; $3 {{PLURAL:$3|nem átirányítás}})',
-'pageinfo-firstuser' => 'Lap létrehozója',
-'pageinfo-firsttime' => 'A lap létrehozás ideje',
+'pageinfo-firstuser' => 'A lap létrehozója',
+'pageinfo-firsttime' => 'A lap létrehozásának ideje',
 'pageinfo-lastuser' => 'Utolsó szerkesztő',
 'pageinfo-lasttime' => 'Az utolsó szerkesztés ideje',
 'pageinfo-edits' => 'Szerkesztések teljes száma',
index 4982e77..0411db7 100644 (file)
@@ -326,7 +326,7 @@ $messages = array(
 # Font style option in Special:Preferences
 'editfont-style' => 'Խմբագրման շրջանի տառատեսակի ձևը.',
 'editfont-default' => 'Զննարկիչի լռելյայն տառատեսակը',
-'editfont-monospace' => 'Միալայն տառատեսակ',
+'editfont-monospace' => 'Միալայնք տառատեսակ',
 'editfont-sansserif' => 'Սանս-սերիֆ տառատեսակ',
 'editfont-serif' => 'Սերիֆ տառատեսակ',
 
@@ -684,7 +684,7 @@ $2',
 'userlogin' => 'Մտնել / Գրանցվել',
 'userloginnocreate' => 'Մտնել',
 'logout' => 'Դուրս գալ համակարգից',
-'userlogout' => 'Ելնել',
+'userlogout' => 'Ելնել համակարգից',
 'notloggedin' => 'Դուք չեք մտել համակարգ',
 'nologin' => "Դեռևս չե՞ք գրանցվել։ '''$1'''։",
 'nologinlink' => 'Ստեղծեք մասնակցային հաշիվ',
@@ -696,7 +696,7 @@ $2',
 'createaccountreason' => 'Պատճառ.',
 'badretype' => 'Ձեր մուտքագրած գաղտնաբառերը չեն համընկնում։',
 'userexists' => 'Այս մասնակցի անունը արդեն զբաղված է։ Խնդրում ենք ընտրել մեկ այլ անուն։',
-'loginerror' => 'Õ\84Õ¡Õ½Õ¶Õ¡Õ¯Ö\81Õ« Õ´Õ¸Ö\82Õ¿Ö\84Õ« Õ½Õ­Õ¡Õ¬',
+'loginerror' => 'Մուտքի սխալ',
 'createaccounterror' => 'Չհաջողվեց ստեղծել մասնակցային հաշիվ. $1',
 'nocookiesnew' => 'Մասնակցային հաշիվը ստեղծված է, սակայն մուտքը համակարգ չհաջողվեց։ {{SITENAME}} կայքը օգտագործում է «քուքիներ» մասնակիցների վավերացման համար։ Ձեր մոտ «քուքիները» արգելված են։ Խնդրում ենք թույլատրել սրանք, ապա մտնել համակարգ ձեր նոր մասնակցի անունով և գաղտնաբառով։',
 'nocookieslogin' => '{{SITENAME}} կայքը օգտագործում է «քուքիներ» մասնակիցների վավերացման համար։ Ձեր մոտ «քուքիները» արգելված են։ Խնդրում ենք թույլատրել սրանք և փորձել կրկին։',
@@ -748,7 +748,7 @@ $2',
 'usernamehasherror' => 'Մասնակցի անունը չի կարող պարունակել «#» նիշը։',
 'login-throttled' => 'Դուք կատարել եք չափից շատ մուտքի փորձ։
 Խնդրում ենք սպասել որոշ ժամանակ կրկին փորձելուց առաջ։',
-'loginlanguagelabel' => 'Լեզու. $1',
+'loginlanguagelabel' => 'Լեզու $1',
 
 # E-mail sending
 'php-mail-error-unknown' => 'Անհայտ սխալ PHP-ի mail() ֆունկցիայում',
@@ -919,7 +919,7 @@ $2',
 
 '''Եթե սա բարեխիղճ խմբագրման փորձ է, խնդրում ենք փորձել կրկին։ Սխալի կրկնման դեպքում՝ փորձեք [[Special:UserLogout|դուրս գալ]], ապա կրկին մտնել համակարգ։'''",
 'token_suffix_mismatch' => "'''Ձեր խմբագրումը մերժվել է, քանի որ ձեր օգտագործած ծրագիրը աղավաղել է կետադրության նշանները խմբագրման դաշտում։ Խմբագրումը մերժվել է էջի տեքստի խաթարումը կանխելու նպատակով։ Սա երբեմն պայմանավորված է սխալներ պարունակող անանվանեցնող վեբ-փոխարինորդ (proxy) ծառայության օգտագործմամբ։'''",
-'editing' => '$1ն խմբագրելիս',
+'editing' => 'Խմբագրում․ $1',
 'creating' => 'Ստեղծում $1',
 'editingsection' => 'Խմբագրում՝ $1 (բաժին)',
 'editingcomment' => 'Խմբագրում՝ $1 (նոր բաժին)',
@@ -1120,7 +1120,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'search-result-score' => 'Համընկնում $1%',
 'search-redirect' => '(վերահղում $1)',
 'search-section' => '(բաժին $1)',
-'search-suggest' => 'Ô´Õ¸Ö\82Ö\84 Õ« նկատի ունե՞ք՝ $1',
+'search-suggest' => 'Ô³Õ¸Ö\82Ö\81Õ¥ նկատի ունե՞ք՝ $1',
 'search-interwiki-caption' => 'Կից նախագծեր',
 'search-interwiki-default' => '$1 արդյունք.',
 'search-interwiki-more' => '(էլի)',
@@ -2372,11 +2372,12 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'pageinfo-magic-words' => 'Մոգական {{PLURAL:$1|բառ|բառեր}} ($1)',
 'pageinfo-hidden-categories' => 'Թաքնված {{PLURAL:$1|կաղապար|կաղապարներ}} ($1)',
 'pageinfo-templates' => 'Օգտագործված {{PLURAL:$1|կաղապար|կաղապարներ}} ($1)',
-'pageinfo-toolboxlink' => 'Ô·Õ»Õ« Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80',
+'pageinfo-toolboxlink' => 'Ô·Õ»Õ« Õ¾Õ«Õ³Õ¡Õ¯Õ¡Õ£Ö\80Õ¸Ö\82Õ©ÕµÕ¸Ö\82Õ¶',
 'pageinfo-redirectsto' => 'Վերահղում է դեպի',
 'pageinfo-redirectsto-info' => 'տվյալներ',
 'pageinfo-contentpage' => 'Հաշվառված որպես բովանդակային էջ',
 'pageinfo-contentpage-yes' => 'Այո',
+'pageinfo-protect-cascading-yes' => 'Այո',
 
 # Skin names
 'skinname-standard' => 'Դասական',
@@ -2397,6 +2398,8 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'markedaspatrollederror' => 'Չհաջողվեց նշել որպես ստուգված',
 'markedaspatrollederrortext' => 'Անհրաժեշտ է ընտրել տարբերակ՝ որպես ստուգված նշելու համար։',
 'markedaspatrollederror-noautopatrol' => 'Ձեզ չի թույլատրվում ձեր կատարած փոփոխությունները նշել որպես ստուգված։',
+'markedaspatrollednotify' => 'Այս փոփոխությունը $1 էջում նշվել է ստուգված',
+'markedaspatrollederrornotify' => 'Ստուգված նշել չհաջողվեց։',
 
 # Patrol log
 'patrol-log-page' => 'Պարեկման տեղեկամատյան',
@@ -2430,6 +2433,7 @@ $1',
 # Special:NewFiles
 'newimages' => 'Նոր նիշքերի սրահ',
 'imagelisttext' => "Ստորև բերված է '''$1''' {{PLURAL:$1|նիշքի}} ցանկ՝ դասավորված ըստ $2։",
+'newimages-legend' => 'Ֆիլտր',
 'showhidebots' => '($1 բոտերին)',
 'noimages' => 'Տեսնելու բան չկա։',
 'ilsubmit' => 'Որոնել',
index 5a59d46..1241f51 100644 (file)
@@ -23,6 +23,7 @@
  * @author J Subhi
  * @author Kaganer
  * @author Kenrick95
+ * @author Mahali syarifuddin
  * @author McDutchie
  * @author Meursault2004
  * @author Remember the dot
@@ -509,7 +510,7 @@ $messages = array(
 'searchbutton' => 'Cari',
 'go' => 'Tuju ke',
 'searcharticle' => 'Tuju ke',
-'history' => 'Versi terdahulu halaman',
+'history' => 'Halaman riwayat',
 'history_short' => 'Versi terdahulu',
 'updatedmarker' => 'diubah sejak kunjungan terakhir saya',
 'printableversion' => 'Versi cetak',
@@ -533,11 +534,11 @@ $messages = array(
 'talkpage' => 'Bicarakan halaman ini',
 'talkpagelinktext' => 'Bicara',
 'specialpage' => 'Halaman istimewa',
-'personaltools' => 'Akun',
+'personaltools' => 'Peralatan pribadi',
 'postcomment' => 'Bagian baru',
 'articlepage' => 'Lihat halaman isi',
 'talk' => 'Pembicaraan',
-'views' => 'Halaman',
+'views' => 'Tampilan',
 'toolbox' => 'Peralatan',
 'userpage' => 'Lihat halaman pengguna',
 'projectpage' => 'Lihat halaman proyek',
@@ -922,7 +923,8 @@ Sandi sementara: $2',
 'showpreview' => 'Lihat pratayang',
 'showlivepreview' => 'Pratayang langsung',
 'showdiff' => 'Lihat perubahan',
-'anoneditwarning' => 'Anda tidak terdaftar masuk. Alamat IP Anda akan tercatat dalam sejarah (versi terdahulu) halaman ini.',
+'anoneditwarning' => "'''Peringatan:''' Anda tidak terdaftar masuk.
+Alamat IP Anda akan tercatat dalam sejarah (versi terdahulu) halaman ini.",
 'anonpreviewwarning' => "''Anda belum masuk log. Menyimpan halaman akan menyebabkan alamat IP Anda tercatat pada riwayat suntingan laman ini.''",
 'missingsummary' => "'''Peringatan:''' Anda tidak memasukkan ringkasan penyuntingan. Jika Anda kembali menekan tombol Simpan, suntingan Anda akan disimpan tanpa ringkasan penyuntingan.",
 'missingcommenttext' => 'Harap masukkan komentar di bawah ini.',
@@ -982,7 +984,7 @@ Jika Anda adalah seorang pengguna anonim dan merasa mendapatkan komentar-komenta
 'noarticletext' => 'Saat ini tidak ada teks di halaman ini.
 Anda dapat [[Special:Search/{{PAGENAME}}|melakukan pencarian untuk judul halaman ini]] di halaman-halaman lain, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait], atau [{{fullurl:{{FULLPAGENAME}}|action=edit}} menyunting halaman ini]</span>.',
 'noarticletext-nopermission' => '!Saat ini tidak ada teks di halaman ini.
-Anda dapat [[Special:Search/{{PAGENAME}}|melakukan pencarian untuk judul halaman ini]] di halaman-halaman lain, atau <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait]</span>, tapi anda tidak memiliki izin untuk membuat halaman ini',
+Anda dapat [[Special:Search/{{PAGENAME}}|melakukan pencarian untuk judul halaman ini]] di halaman-halaman lain, atau <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait]</span>, tapi Anda tidak memiliki izin untuk membuat halaman ini',
 'missing-revision' => 'Revisi #$1 halaman berjudul "{{PAGENAME}}" tidak eksks.
 
 Hal ini biasanya disebabkan oleh tautan versi terdahulu menuju halaman yang sudah dihapus.
@@ -2181,7 +2183,7 @@ Anda dapat melakukan pembatasan tampilan dengan memilih jenis log, nama pengguna
 'allnotinnamespace' => 'Daftar halaman (bukan ruang nama $1)',
 'allpagesprev' => 'Sebelumnya',
 'allpagesnext' => 'Selanjutnya',
-'allpagessubmit' => 'Cari',
+'allpagessubmit' => 'Pergi',
 'allpagesprefix' => 'Tampilkan halaman dengan awalan:',
 'allpagesbadtitle' => 'Judul halaman yang diberikan tidak sah atau memiliki awalan antar-bahasa atau antar-wiki. Judul tersebut mungkin juga mengandung satu atau lebih aksara yang tidak dapat digunakan dalam judul.',
 'allpages-bad-ns' => '{{SITENAME}} tidak memiliki ruang nama "$1".',
@@ -2940,10 +2942,10 @@ Simpan ke komputer Anda dan unggah ke sini.',
 'tooltip-pt-anonlogin' => 'Anda disarankan untuk masuk log, meskipun hal itu tidak diwajibkan.',
 'tooltip-pt-logout' => 'Keluar log',
 'tooltip-ca-talk' => 'Pembicaraan halaman isi',
-'tooltip-ca-edit' => 'Sunting halaman ini. Gunakan tombol pratayang sebelum menyimpan.',
+'tooltip-ca-edit' => 'Anda dapat menyunting halaman ini. Gunakan tombol pratayang sebelum menyimpan',
 'tooltip-ca-addsection' => 'Mulai bagian baru',
 'tooltip-ca-viewsource' => 'Halaman ini dilindungi. Anda hanya dapat melihat sumbernya.',
-'tooltip-ca-history' => 'Versi-versi sebelumnya dari halaman ini.',
+'tooltip-ca-history' => 'Revisi-revisi sebelumnya dari halaman ini.',
 'tooltip-ca-protect' => 'Lindungi halaman ini',
 'tooltip-ca-unprotect' => 'Ubah perlindungan halaman ini',
 'tooltip-ca-delete' => 'Hapus halaman ini',
@@ -2957,7 +2959,7 @@ Simpan ke komputer Anda dan unggah ke sini.',
 'tooltip-p-logo' => 'Kunjungi Halaman Utama',
 'tooltip-n-mainpage' => 'Kunjungi Halaman Utama',
 'tooltip-n-mainpage-description' => 'Kunjungi Halaman Utama',
-'tooltip-n-portal' => 'Tentang proyek, apa yang dapat anda lakukan, di mana mencari sesuatu',
+'tooltip-n-portal' => 'Tentang proyek, apa yang dapat Anda lakukan, di mana untuk mencari sesuatu',
 'tooltip-n-currentevents' => 'Temukan informasi tentang peristiwa terkini',
 'tooltip-n-recentchanges' => 'Daftar perubahan terbaru dalam wiki.',
 'tooltip-n-randompage' => 'Tampilkan sembarang halaman',
index 00ef0ab..8af63d5 100644 (file)
@@ -2352,7 +2352,7 @@ $1',
 'blanknamespace' => '(Umuna)',
 
 # Contributions
-'contributions' => 'Naaramidan dagiti agar-aramat',
+'contributions' => 'Naar-aramid ti {{GENDER:$1|Agar-aramat}}',
 'contributions-title' => 'Naaramidan ni $1',
 'mycontris' => 'Naar-aramid',
 'contribsub2' => 'Para iti $1 ($2)',
index a6d23be..11961c4 100644 (file)
@@ -1385,9 +1385,9 @@ L'operazione non può essere annullata.",
 'prefs-emailconfirm-label' => "Conferma dell'e-mail:",
 'prefs-textboxsize' => 'Dimensione della finestra di modifica',
 'youremail' => 'Indirizzo e-mail:',
-'username' => 'Nome utente:',
-'uid' => 'ID utente:',
-'prefs-memberingroups' => 'Membro {{PLURAL:$1|del gruppo|dei gruppi}}:',
+'username' => '{{GENDER:$1|Nome utente}}:',
+'uid' => '{{GENDER:$1|ID utente}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Membro}} {{PLURAL:$1|del gruppo|dei gruppi}}:',
 'prefs-registration' => 'Data di registrazione:',
 'yourrealname' => 'Nome vero:',
 'yourlanguage' => "Lingua dell'interfaccia:",
@@ -2288,25 +2288,25 @@ il titolo della pagina apparirà in '''grassetto''' nella pagina delle [[Special
 'enotif_body_intro_moved' => 'La pagina $1 di {{SITENAME}} è stata spostata da {{gender:$2|$2}} il $PAGEEDITDATE, vedi $3 per la versione attuale.',
 'enotif_body_intro_restored' => 'La pagina $1 di {{SITENAME}} è stata ripristinata da {{gender:$2|$2}} il $PAGEEDITDATE, vedi $3 per la versione attuale.',
 'enotif_body_intro_changed' => 'La pagina $1 di {{SITENAME}} è stata modificata da {{gender:$2|$2}} il $PAGEEDITDATE, vedi $3 per la versione attuale.',
-'enotif_lastvisited' => "Consultare $1 per vedere tutte le modifiche dall'ultima visita.",
-'enotif_lastdiff' => 'Vedere $1 per visualizzare la modifica.',
+'enotif_lastvisited' => "Visita $1 per vedere tutte le modifiche dall'ultima visita.",
+'enotif_lastdiff' => 'Visita $1 per vedere la modifica.',
 'enotif_anon_editor' => 'utente anonimo $1',
 'enotif_body' => 'Gentile $WATCHINGUSERNAME,
 
 $PAGEINTRO $NEWPAGE
 
-Oggetto della modifica, inserito dall\'autore: $PAGESUMMARY $PAGEMINOREDIT
+Oggetto dell\'intervento, inserito dall\'autore: $PAGESUMMARY $PAGEMINOREDIT
 
-Contatta l\'autore della modifica:
-via e-mail: $PAGEEDITOR_EMAIL
+Contatta l\'autore:
+via posta elettronica: $PAGEEDITOR_EMAIL
 sul sito: $PAGEEDITOR_WIKI
 
-Non verranno inviate altre notifiche in caso di ulteriori cambiamenti, a meno che tu non visiti la pagina. Inoltre, è possibile reimpostare l\'avviso di notifica per tutte le pagine nella lista degli osservati speciali.
+Non verranno inviate altre notifiche in caso di ulteriori attività, se non visiti la pagina. Inoltre, è possibile modificare le impostazioni di notifica per tutte le pagine nella lista degli osservati speciali.
 
              Il sistema di notifica di {{SITENAME}}, al tuo servizio
 
 --
-Per modificare le impostazioni delle notifiche via email, visita 
+Per modificare le impostazioni delle notifiche via posta elettronica, visita 
 {{canonicalurl:{{#special:Preferences}}}}
 
 Per modificare la lista degli osservati speciali, visita 
index f31f75f..879e2e5 100644 (file)
@@ -43,6 +43,7 @@
  * @author Muttley
  * @author Mzm5zbC3
  * @author Ohgi
+ * @author Ort43v
  * @author Penn Station
  * @author Reedy
  * @author Schu
@@ -876,7 +877,7 @@ Cookieを有効にしていることを確認して、このページを再読
 このアカウントが何かの手違いで作成された場合は、このメッセージを無視してください。',
 'usernamehasherror' => '利用者名には番号記号を含めることができません',
 'login-throttled' => 'ログインの失敗が制限回数を超えました。
-しばらく時間をおいてから再度お試しください。',
+しばらく時間をおいてから再度試してください。',
 'login-abort-generic' => 'ログインに失敗しました - 中止',
 'loginlanguagelabel' => '言語: $1',
 'suspicious-userlogout' => '壊れたブラウザーまたはキャッシュプロキシによって送信された可能性があるため、ログアウト要求は拒否されました。',
@@ -1041,7 +1042,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 この新アカウントのパスワードは、ログインした際に''[[Special:ChangePassword|パスワード変更]]''ページで変更できます。",
 'newarticle' => '(新)',
 'newarticletext' => "まだ存在しないページへのリンクをたどりました。
-このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[[{{MediaWiki:Helppage}}|ヘルプ ページ]]を参照してください)。
+このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[[{{MediaWiki:Helppage}}|ヘルプページ]]を参照してください)。
 誤ってこのページにたどり着いた場合には、ブラウザーの'''戻る'''ボタンで前のページに戻ってください。",
 'anontalkpagetext' => "----''このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。
 匿名利用者を識別するために、利用者名の代わりにIPアドレスが使用されています。
@@ -1067,8 +1068,8 @@ IP アドレスは複数の利用者で共有されている場合がありま
 * '''Google Chrome:''' ''Ctrl-Shift-R'' を押してください (Mac では ''&#x2318;-Shift-R'')
 * '''Internet Explorer:''' ''Ctrl'' を押しながら ''最新の情報に更新'' をクリックするか、''Ctrl-F5'' を押してください
 * '''Opera:''' ''ツール → 設定'' からキャッシュをクリアしてください。",
-'usercssyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいスタイルシートを試験できます。",
-'userjsyoucanpreview' => "'''ヒント:''' 「{{int:showpreview}}」ボタンを使うと、保存前に新しいスクリプトを試験できます。",
+'usercssyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいCSSを試験できます。",
+'userjsyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいJavaScriptを試験できます。",
 'usercsspreview' => "'''利用者CSSをプレビューしています。'''
 '''まだ保存されていません!'''",
 'userjspreview' => "'''利用者JavaScriptを試験/プレビューしています。'''
@@ -1077,18 +1078,18 @@ IP アドレスは複数の利用者で共有されている場合がありま
 '''まだ保存されていません!'''",
 'sitejspreview' => "'''ここでは、JavaScriptをプレビューしているだけに過ぎません。'''
 '''まだ保存されていません!'''",
-'userinvalidcssjstitle' => "'''警告'''「$1」という外装はありません。
-カスタム .css/.js ページではページ名を小文字にしてください。例{{ns:user}}:Hoge/Vector.css ではなく {{ns:user}}:Hoge/vector.css",
+'userinvalidcssjstitle' => "'''警告:'''「$1」という外装はありません。
+カスタム .css/.js ページではページ名を小文字にしてください。例{{ns:user}}:Hoge/Vector.css ではなく {{ns:user}}:Hoge/vector.css",
 'updated' => '(更新)',
-'note' => "'''お知らせ'''",
+'note' => "'''お知らせ:'''",
 'previewnote' => "'''これはプレビューです。'''
 変更内容はまだ保存されていません!",
 'continue-editing' => '編集を続行',
 'previewconflict' => 'これは、上の編集エリアの文章を保存した場合にどう表示されるかを示すプレビューです。',
-'session_fail_preview' => "'''申し訳ありませんセッションデータが消失したため編集を処理できませんでした。'''
+'session_fail_preview' => "'''申し訳ありませんセッションデータが消失したため編集を処理できませんでした。'''
 もう一度やり直してください。
 それでも失敗する場合、[[Special:UserLogout|ログアウト]]してからログインし直してください。",
-'session_fail_preview_html' => "'''申し訳ありませんセッション データが消失したため編集を処理できませんでした。'''
+'session_fail_preview_html' => "'''申し訳ありませんセッション データが消失したため編集を処理できませんでした。'''
 
 ''{{SITENAME}}では生のHTMLが有効であり、JavaScriptでの攻撃を予防するためにプレビューを表示していません。''
 
@@ -1122,7 +1123,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'copyrightwarning2' => "{{SITENAME}}へのすべての投稿は、他の利用者が編集、変更、除去する可能性があります。
 あなたの投稿を、他人が遠慮なく編集するのを望まない場合は、ここには投稿しないでください。<br />
 また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は$1を参照)。
-'''著作権保護されている作品を、許諾なしに投稿してはいけません'''",
+'''著作権保護されている作品を、許諾なしに投稿してはいけません!'''",
 'longpageerror' => "'''エラー:投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。'''
 この編集は保存できません。",
 'readonlywarning' => "'''警告:データベースがメンテナンスのためロックされており、現在は編集を保存できません。'''
@@ -1145,7 +1146,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'edittools' => '<!-- ここに書いたテキストは編集及びアップロードのフォームの下に表示されます。 -->',
 'nocreatetitle' => 'ページの作成が制限されています',
 'nocreatetext' => '{{SITENAME}}ではページの新規作成を制限しています。
-元のページに戻って既存のページを編集するか、[[Special:UserLogin|ログインまたはアカウント作成]]をしてください。',
+元のページに戻って既存のページを編集するか、[[Special:UserLogin|ログインまたはアカウント作成]]をしてください。',
 'nocreate-loggedin' => '新しいページを作成する権限がありません。',
 'sectioneditnotsupported-title' => '節単位編集はサポートされていません',
 'sectioneditnotsupported-text' => 'このページでは節単位編集はサポートされません。',
@@ -1327,7 +1328,7 @@ $1",
 アクセス権限がありません。',
 'revdelete-modify-no-access' => '$1$2の項目の修正に失敗しました:この項目には「制限付き」の印が付いています。
 アクセス権限がありません。',
-'revdelete-modify-missing' => 'ID$1の項目の変更に失敗しました:データベースに見当たりません!',
+'revdelete-modify-missing' => '版 ID $1 の項目の変更に失敗しました: データベース内にありません!',
 'revdelete-no-change' => "'''警告:''' $1$2の項目には要求された閲覧レベルが既に設定されています。",
 'revdelete-concurrent-change' => '$1$2の項目の変更に失敗しました:あなたが変更しようとしている間に、他の誰かが変更したようです。
 記録を確認してください。',
@@ -1546,9 +1547,9 @@ $1",
 'prefs-emailconfirm-label' => 'メールアドレスの確認:',
 'prefs-textboxsize' => '編集画面の大きさ',
 'youremail' => 'メールアドレス:',
-'username' => '利用者名:',
-'uid' => '利用者 ID:',
-'prefs-memberingroups' => '所属{{PLURAL:$1|グループ}}:',
+'username' => '{{GENDER:$1|利用者名}}:',
+'uid' => '{{GENDER:$1|利用者}} ID:',
+'prefs-memberingroups' => '{{GENDER:$2|所属}}{{PLURAL:$1|グループ}}:',
 'prefs-memberingroups-type' => '$1',
 'prefs-registration' => '登録日時:',
 'prefs-registration-date-time' => '$1',
@@ -2014,7 +2015,7 @@ $1',
 'uploadstash-summary' => 'このページでは、アップロードされた、もしくはアップロード中の、ウィキ上でまだ公開されていないファイルを表示します。これらのファイルは、アップロードした利用者以外閲覧できません。',
 'uploadstash-clear' => '未公開ファイルを消去',
 'uploadstash-nofiles' => '未公開ファイルはありません。',
-'uploadstash-badtoken' => '操作を実行できませんでした。編集するための認証の期限切れが原因である可能性があります。再度お試しください。',
+'uploadstash-badtoken' => '操作を実行できませんでした。編集するための認証の期限切れが原因である可能性があります。再度試してください。',
 'uploadstash-errclear' => 'ファイルの消去に失敗しました。',
 'uploadstash-refresh' => 'ファイルの一覧を更新',
 'invalid-chunk-offset' => '無効なチャンクオフセット',
@@ -2480,15 +2481,17 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 
 'enotif_mailer' => '{{SITENAME}} 通知メール',
 'enotif_reset' => 'すべてのページを訪問済みにする',
-'enotif_impersonal_salutation' => '{{SITENAME}} 利用者',
+'enotif_impersonal_salutation' => '{{SITENAME}}利用者',
 'enotif_subject_deleted' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が削除しました',
 'enotif_subject_created' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が作成しました',
 'enotif_subject_moved' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が移動しました',
 'enotif_subject_restored' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が復元しました',
 'enotif_subject_changed' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が変更しました',
-'enotif_body_intro_deleted' => '{{SITENAME}} のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって削除されました。現在の版は$3で閲覧できます。',
-'enotif_body_intro_created' => '{{SITENAME}} のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって作成されました。現在の版は$3で閲覧できます。',
-'enotif_body_intro_changed' => '{{SITENAME}} のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって変更されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_deleted' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって削除されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_created' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって作成されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_moved' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって移動されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_restored' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって復元されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_changed' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって変更されました。現在の版は$3で閲覧できます。',
 'enotif_lastvisited' => '最終訪問以降のすべての変更は $1 をご覧ください。',
 'enotif_lastdiff' => 'この変更内容を表示するには $1 をご覧ください。',
 'enotif_anon_editor' => '匿名利用者「$1」',
@@ -2712,7 +2715,7 @@ $1',
 'blanknamespace' => '(標準)',
 
 # Contributions
-'contributions' => '利用者の投稿記録',
+'contributions' => '{{GENDER:$1|利用者}}の投稿記録',
 'contributions-title' => '$1の投稿記録',
 'mycontris' => '投稿記録',
 'contribsub2' => '利用者: $1 ($2)',
@@ -3391,6 +3394,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 時間}}',
 'days' => '{{PLURAL:$1|$1 日}}',
 'ago' => '$1前',
+'just-now' => 'ちょうど今',
 
 # Bad image list
 'bad_image_list' => '書式は以下の通りです:
index 6678bb9..5362488 100644 (file)
@@ -672,7 +672,7 @@ $1 საათში.',
 'cannotchangeemail' => 'ანგარიშის ელ-ფოსტის მისამართების შეცვლა ამ ვიკიში შეუძლებელია.',
 'emaildisabled' => 'ამ საიტს არ შეუძლია ელ.ფოსტის გაგზავნა.',
 'accountcreated' => 'ანგარიში შეიქმნა',
-'accountcreatedtext' => 'á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\98á\83¡ á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 $1-á\83¡á\83\97á\83\95á\83\98á\83¡ á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\98á\83\9aá\83\98á\83\90.',
+'accountcreatedtext' => 'á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\98á\83\9aá\83\98á\83\90 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\98á\83¡ á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 $1.',
 'createaccount-title' => 'ანგარიშის შექმნა {{SITENAME}}-თვის',
 'createaccount-text' => 'ვიღაცამ შექმნა ანგარიში სახელით „$2“ და პაროლით „$3“ თქვენი ელექტრონული ფოსტისთვის {{SITENAME}}-ში ($4). გთხოვთ დარეგისტრირდეთ და შეცვალოთ პაროლი.
 
@@ -825,7 +825,7 @@ $2
 არ გაქვთ მითითებული თქვენს [[Special:Preferences|კონფიგურაციაში]] და არ ხართ დაბლოკილი მისი გამოყენებისთვის.
 
 თქვენი IP — $3. თქვენი დაბლოკვის საიდენტიფიკაციო ნომერია $5. გთხოვთ მიუთითოთ ეს ნომერი, ნებისმიერ მიმოწერაში.",
-'blockednoreason' => 'á\83¡á\83\90á\83\91á\83\90á\83\91á\83\98 á\83\9bá\83\98á\83\97á\83\98á\83\97á\83\94á\83\91á\83£á\83\9aá\83\98 á\83\90á\83  á\83\90á\83 á\83\98á\83¡',
+'blockednoreason' => 'á\83\9bá\83\98á\83\96á\83\94á\83\96á\83\98 á\83\90á\83  á\83\90á\83 á\83\98á\83¡ á\83\9bá\83\98á\83\97á\83\98á\83\97á\83\94á\83\91á\83£á\83\9aá\83\98',
 'whitelistedittext' => 'გვერდების რედაქტირებისათვის თქვენ გესაჭიროებათ $1.',
 'confirmedittext' => 'გვერდების დარედაქტირებამდე უნდა დაადასტუროთ თქვენი ელფოსტის მისამართი. გთხოვთ [[Special:Preferences|მომხმარებლის პარამეტრებში]] მიუთითოთ და დაამოწმოთ ელფოსტის მისამართი.',
 'nosuchsectiontitle' => 'სექცია არ არსებობს',
@@ -1332,9 +1332,9 @@ $1",
 'prefs-emailconfirm-label' => 'ელ–ფოსტის დადასტურება:',
 'prefs-textboxsize' => 'რედაქტირების ფანჯრის ზომა',
 'youremail' => 'ელექტრონული ფოსტა:',
-'username' => 'მომხმარებლის სახელი:',
-'uid' => 'მომხმარებლის იდენტიფიკაცია:',
-'prefs-memberingroups' => '{{PLURAL:$1|ჯგუფის|ჯგუფების}} წევრი:',
+'username' => '{{GENDER:$1|მომხმარებლის სახელი}}:',
+'uid' => '{{GENDER:$1|მომხმარებლის}} იდენტიფიკატორი:',
+'prefs-memberingroups' => '{{PLURAL:$1|ჯგუფის|ჯგუფების}} {{GENDER:$2|წევრი}}:',
 'prefs-memberingroups-type' => '$1',
 'prefs-registration' => 'რეგისტრაციის თარიღი',
 'prefs-registration-date-time' => '$1',
@@ -2541,7 +2541,7 @@ $1',
 'badipaddress' => 'არასწორი IP მისამართი',
 'blockipsuccesssub' => 'ბლოკირება შესრულებულია',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] ბლოკირებულ იქნა.<br />
-იხილეთ [[Special:BlockList|ბლოკირებების სია]].',
\83\98á\83®á\83\98á\83\9aá\83\94á\83\97 [[Special:BlockList|á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\98 IP á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\94á\83\91á\83\98á\83¡ á\83¡á\83\98á\83\90]].',
 'ipb-blockingself' => 'თქვენ აპირებთ დაბლოკოთ საკუთარი თავი! დარწმუნებული ხართ, რომ გსურთ ამის გაკეთება?',
 'ipb-confirmhideuser' => 'თქვენ აპირებთ მომხმარებლის დაბლოკვას და ჩართული გაქვთ ოპცია „დამალე მომხმარებელი“. ასეთი ქმედება აღკვეთს მომხმარებლის სახელს ყველა სიიდან და ჟურნალების ჩანაწერებიდან. დარწმუნებული ხართ, რომ ამის გაკეთება გსურთ?',
 'ipb-edit-dropdown' => 'დაბლოკვის მიზეზების რედაქტირება',
@@ -3893,7 +3893,7 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'sqlite-no-fts' => '$1 სრული ტექსტის ძიების მხარდაჭერის გარეშე',
 
 # New logging system
-'logentry-delete-delete' => '$1 წაშალა გვერდი: „$3“',
+'logentry-delete-delete' => 'მომხმარებელმა $1 წაშალა გვერდი: „$3“',
 'logentry-delete-restore' => '$1 აღადგინა გვერდი $3',
 'logentry-delete-event' => '$1 შეცვალა {{PLURAL:$5|ჟურნალის ჩანაწერის|$5 ჟურნალის ჩანაწერების}} ხილვადობა $3-ზე: $4',
 'logentry-delete-revision' => '$1 შეცვალა {{PLURAL:$5|$5 ვერსიის|$5 ვერსიის}} ხილვადობა გვერდისათვის $3: $4',
@@ -3919,9 +3919,9 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'logentry-patrol-patrol' => '$1 გააკეთა გვერდის „$3“ $4 ვერსიის პატრულირება',
 'logentry-patrol-patrol-auto' => '$1 ავტომატურად გააკეთა გვერდის „$3“ $4 ვერსიის პატრულირება',
 'logentry-newusers-newusers' => 'მომხმარებლის ანგარიში $1 შექმნილია',
-'logentry-newusers-create' => 'á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\98á\83¡ á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 $1 á\83¨á\83\94á\83\98á\83¥á\83\9bá\83\9cá\83\90',
+'logentry-newusers-create' => 'á\83¨á\83\94á\83\98á\83¥á\83\9bá\83\9cá\83\90 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\98á\83¡ á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 $1',
 'logentry-newusers-create2' => 'მომხმარებლის ანგარიში $3 შექმნა მომხმარებელმა $1',
-'logentry-newusers-autocreate' => 'á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 $1 á\83\90á\83\95á\83¢á\83\9dá\83\9bá\83\90á\83¢á\83£á\83 á\83\90á\83\93 á\83¨á\83\94á\83\98á\83¥á\83\9bá\83\9cá\83\90',
+'logentry-newusers-autocreate' => 'á\83\90á\83\95á\83¢á\83\9dá\83\9bá\83\90á\83¢á\83£á\83 á\83\90á\83\93 á\83¨á\83\94á\83\98á\83¥á\83\9bá\83\9cá\83\90 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\98á\83¡ á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 $1',
 'newuserlog-byemail' => 'პაროლი ელ-ფოსტითაა გამოგზავნილი',
 
 # Feedback
index bcd3210..a19bfe7 100644 (file)
@@ -237,6 +237,7 @@ $messages = array(
 برائے مہربانی! صفحو لوڑیکو بچے دوبارہ کوشش کوریکاری پروشٹی پھوکرو انتظار کورے.
 
 $1',
+'pool-errorunknown' => 'نامعلوم خطا',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'تعارف {{SITENAME}}',
@@ -284,6 +285,7 @@ $1',
 'showtoc' => 'پشاوے',
 'hidetoc' => 'کھوشتاوے',
 'collapsible-collapse' => 'خاتمہ/Collapse',
+'collapsible-expand' => 'فراخ کورے',
 'thisisdeleted' => 'لوڑے  یا بحال کورے $1',
 'viewdeleted' => 'لوڑے $1؟',
 'restorelink' => '{{PLURAL:$1|ای ترمیم حذف ہوی|$1 ترامیم حذف ہونی}}',
@@ -478,6 +480,10 @@ MySQL جوابِ خطاء پرائے "$3: $4"',
 
 # Special:PasswordReset
 'passwordreset' => 'پاسورڈو ری سیٹ کورے',
+'passwordreset-username' => 'ممبارو نم',
+
+# Special:ChangeEmail
+'changeemail-none' => '(نو)',
 
 # Edit page toolbar
 'bold_sample' => 'بوسک متن',
index 1c9e0ff..2aa9a2f 100644 (file)
@@ -660,6 +660,9 @@ $2',
 អ្នកអាចបន្តប្រើប្រាស់{{SITENAME}}ក្នុងភាពអនាមិក ឬ <span class='plainlinks'>[$1 កត់ឈ្មោះចូលម្ដងទៀត]</span>ក្នុងនាមជាអ្នកប្រើប្រាស់ដដែលឬផ្សេងទៀត។
 
 សូមកត់សំគាល់ថាទំព័រមួយចំនួនប្រហែលជានៅតែបង្ហាញដូចពេលលោកអ្នកកត់ឈ្មោះចូលក្នុងគណនីរបស់លោកអ្នកដដែល។ ប្រសិនបើមានករណីនេះកើតឡើង សូមសំអាត សតិភ្ជាប់នៃកម្មវិធីរុករករបស់លោកអ្នក។",
+'welcomeuser' => 'សូមស្វាគមន៍ $1!',
+'welcomecreation-msg' => 'គណនីរបស់អ្នកត្រូវបានបង្កើតហើយ។
+កុំភ្លេចផ្លាស់ប្ដូរ[[Special:Preferences|ចំណង់ចំណូលចិត្ត{{SITENAME}}]]របស់អ្នក។',
 'yourname' => 'អត្តនាម៖',
 'yourpassword' => 'ពាក្យសំងាត់៖',
 'yourpasswordagain' => 'វាយពាក្យសំងាត់ម្តងទៀត៖',
@@ -1060,6 +1063,10 @@ $2
 ទំព័រនេះមានរួចហើយ។',
 'defaultmessagetext' => 'អត្ថបទសារតាមលំនាំដើម',
 
+# Content models
+'content-model-wikitext' => 'អត្ថបទវិគី',
+'content-model-text' => 'អត្ថបទសុទ្ធ',
+
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''ប្រយ័ត្ន៖''' ទំព័រនេះមានប្រើអនុគមន៍ញែកច្រើនពេកហើយ។
 
@@ -1556,6 +1563,9 @@ $1",
 'rightslogtext' => 'នេះ​ជា​កំណត់ហេតុនៃបំលាស់ប្ដូរចំពោះកាប្ដូរក្រុមសមាជិកភាព​របស់​អ្នកប្រើប្រាស់។',
 'rightslogentry' => 'បានប្ដូរក្រុមសមាជិកភាពសម្រាប់ $1 ពី $2 ទៅ $3',
 'rightslogentry-autopromote' => 'ត្រូវបានតំលើងតំណែងដោយស្វ័យប្រវត្តិពី $2 ទៅជា $3',
+'logentry-rights-rights' => '$1 បានផ្លាស់ប្ដូរសមាជិកភាពរបស់ $3 ពី $4 ទៅជា $5',
+'logentry-rights-rights-legacy' => '$1បានផ្លាស់ប្ដូរសមាជិកភាពរបស់ $3',
+'logentry-rights-autopromote' => '$1 ត្រូវបានតំលើងសមាជិកភាពពី $4 ជា $5',
 'rightsnone' => '(ទទេ)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1755,6 +1765,8 @@ $1",
 'uploadvirus' => 'ឯកសារមានមេរោគ!
 
 សេចក្តីលំអិត៖ $1',
+'uploadjava' => 'ឯកសារនេះជាប្រភេទ ZIP ដែលមានផ្ទុក Java .class។
+ការផ្ទុកឡើងឯកសារ Java ត្រូវបានហាមឃាត់ ព្រោះវាអាចធ្វើមានបញ្ហាក្នុងការឆ្លងកុងត្រូលសុវត្តិភាព។',
 'upload-source' => 'ឯកសារប្រភព',
 'sourcefilename' => 'ឈ្មោះឯកសារប្រភព៖',
 'sourceurl' => 'URLប្រភព៖',
@@ -2045,8 +2057,10 @@ $1',
 'mostlinkedtemplates' => 'ទំព័រគំរូ​ដែលត្រូវបានប្រើប្រាស់​ច្រើនបំផុត',
 'mostcategories' => 'អត្ថបទដែលមានចំណាត់ថ្នាក់ក្រុមច្រើនបំផុត',
 'mostimages' => 'រូបភាពដែលត្រូវបានតភ្ជាប់មកច្រើនបំផុត',
+'mostinterwikis' => 'អត្ថបទដែលមានតំនភ្ជាប់អន្តរវិគីច្រើនបំផុត',
 'mostrevisions' => 'អត្ថបទដែលត្រូវបានកែប្រែច្រើនបំផុត',
 'prefixindex' => 'ទំព័រ​ទាំង​អស់​ជាមួយ​បុព្វបទ',
+'prefixindex-namespace' => 'ទំព័រទាំងអស់ដែលមានបុព្វបទ (លំហឈ្មោះ $1)',
 'shortpages' => 'ទំព័រខ្លីៗ',
 'longpages' => 'ទំព័រវែងៗ',
 'deadendpages' => 'ទំព័រ​ទាល់',
@@ -2100,6 +2114,7 @@ $1',
 អ្នកអាចបង្រួមការបង្ហាញដោយជ្រើសរើសប្រភេទកំណត់ហេតុ អត្តនាម ឬ ទំព័រពាក់ព័ន្ធ។',
 'logempty' => 'គ្មានអ្វីក្នុងកំណត់ហេតុដែលត្រូវនឹងអ្វីដែលអ្នកចង់រកទេ។',
 'log-title-wildcard' => 'ស្វែងរកចំណងជើងចាប់ផ្តើមដោយឃ្លានេះ',
+'showhideselectedlogentries' => 'បង្ហាញ/លាក់កំណត់ហេតុដែលបានជ្រើសយក',
 
 # Special:AllPages
 'allpages' => 'ទំព័រទាំងអស់',
@@ -2117,6 +2132,10 @@ $1',
 'allpagesprefix' => 'បង្ហាញទំព័រដែលចាប់ផ្ដើមដោយ ៖',
 'allpagesbadtitle' => 'ចំណងជើង​ទំព័រ​ដែល​ត្រូវ​បាន​ផ្តល់ឱ្យ​គឺ​គ្មាន​សុពលភាព​ឬក៏​មាន​បុព្វបទ​ដែល​មាន​អន្តរភាសា​ឬអ​ន្តរវីគី​។ ប្រហែលជា​វា​មាន​អក្សរ​មួយ​ឬ​ច្រើន ដែល​មិន​អាច​ត្រូវ​ប្រើ​នៅក្នុង​ចំណងជើង​។',
 'allpages-bad-ns' => '{{SITENAME}}មិនមានឈ្មោះប្រភេទ"$1"ទេ។',
+'allpages-hide-redirects' => 'លាក់ការបញ្ជូនបន្ត',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'មើ់លកំណែថ្មីបំផុត។',
 
 # Special:Categories
 'categories' => 'ចំណាត់ថ្នាក់ក្រុម',
@@ -2137,9 +2156,9 @@ $1',
 'linksearch-pat' => 'ស្វែងរកគំរូ៖',
 'linksearch-ns' => 'លំហឈ្មោះ៖',
 'linksearch-ok' => 'ស្វែងរក',
-'linksearch-text' => 'កូដពិសេសដូចជា "*.wikipedia.org" អាចប្រើបាន។
+'linksearch-text' => 'Wildcards ដូចជា "*.wikipedia.org" អាចប្រើបាន។
 តំរូវអោយមានយ៉ាងហោចណាស់អោយមានដូម៉ែនកំរិតលើគេ ឧទាហារណ៍ "*.org"។<br />
-ប្រូតូខូលប្រើបាន៖ <code>$1</code> (កុំបន្ថែមវាទាំងនេះទៅក្នុងការស្វែងរករបស់អ្នកអោយសោះ)។',
+ប្រូតូខូលប្រើបាន៖ <code>$1</code>  (តាមលំនាំដើមជា http:// ប្រសិនបើគ្មានបញ្ជាក់ប្រូតូខូល)។',
 'linksearch-line' => '$1បានតភ្ជាប់ពី$2',
 
 # Special:ListUsers
@@ -2186,8 +2205,8 @@ $1',
 'emailuser-title-target' => 'ផ្ញើសារទៅកាន់ {{GENDER:$1|អ្នកប្រើប្រាស់}} នេះ',
 'emailuser-title-notarget' => 'ផ្ញើអ៊ីមែលទៅកាន់អ្នកប្រើប្រាស់',
 'emailpage' => 'ផ្ញើអ៊ីមែលទៅកាន់អ្នកប្រើប្រាស់',
-'emailpagetext' => 'អ្នក​អាច​ប្រើសំនុំ​បែប​បទ​ខាង​ក្រោម​ក្នុង​ការ​ផ្ញើ​សារ​ជា​អ៊ីមែល​ទៅ​កាន់​អ្នក​ប្រើប្រាស់​នេះ​
-អាសយដ្ឋាន​អ៊ីមែល​ដែល​អ្នក​បាន​វាយ​បញ្ចូល​ក្នុង​[[Special:Preferences|ចំណង់ចំណូល​ចិត្ត​]]​របស់​អ្នក នឹង​បង្ហាញ​ជា​អាសយដ្ឋាន​អ៊ីមែល "From" ដូច្នោះ​អ្នក​ទទួល​នឹង​អាច​ឆ្លើយ​តប​ទៅ​អ្នក​វិញ​ដោយ​ផ្ទាល់​។',
+'emailpagetext' => 'អ្នក​អាច​ប្រើសំនុំ​បែប​បទ​ខាង​ក្រោម​ក្នុង​ការ​ផ្ញើ​សារ​ជា​អ៊ីមែល​ទៅ​កាន់​{{GENDER:$1|អ្នកប្រើប្រាស់}}នេះ
+អាសយដ្ឋាន​អ៊ីមែល​ដែល​អ្នក​បាន​វាយ​បញ្ចូល​ក្នុង [[Special:Preferences|ចំណង់ចំណូលចិត្តរបស់អ្នក]]នឹង​បង្ហាញ​ជា​អាសយដ្ឋាន​អ៊ីមែល "From" ដូច្នោះ​អ្នក​ទទួល​នឹង​អាច​ឆ្លើយ​តប​ទៅ​អ្នក​វិញ​ដោយ​ផ្ទាល់​។',
 'usermailererror' => 'កំហុសឆ្គងក្នុងចំណងជើងអ៊ីមែល៖',
 'defemailsubject' => 'អ៊ីមែល{{SITENAME}}ពី "$1"',
 'usermaildisabled' => 'មិនប្រើអ៊ីមែល',
@@ -3041,6 +3060,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 ម៉ោង|$1 ម៉ោង}}',
 'days' => '{{PLURAL:$1|$1 ថ្ងៃ|$1 ថ្ងៃ}}',
 'ago' => '$1 មុន',
+'just-now' => 'អំបាញ់មិញនេះ',
 
 # Bad image list
 'bad_image_list' => 'ទម្រង់ ដូចតទៅ ៖
@@ -3113,7 +3133,12 @@ $1',
 'exif-gpslatitude' => 'រយៈទទឹង',
 'exif-gpslongituderef' => 'រយៈបណ្ដោយ​ខាងកើតឬខាងលិច',
 'exif-gpslongitude' => 'រយៈបណ្តោយ',
+'exif-gpsaltituderef' => 'តំរុយរយៈកម្ពស់',
 'exif-gpsaltitude' => 'រយៈកម្ពស់',
+'exif-gpstimestamp' => 'ពេល GPS (នាឡិកាអាតូមិច)',
+'exif-gpssatellites' => 'ផ្កាយរណបដែលប្រើសំរាប់វាស់វែង',
+'exif-gpsstatus' => 'ស្ថានភាពរបស់ម៉ាស៊ីនទទួលសញ្ញា',
+'exif-gpsmeasuremode' => 'ម៉ូដវាស់វែល',
 'exif-gpsspeedref' => 'ខ្នាតល្បឿន',
 'exif-gpsspeed' => 'ល្បឿន​នៃ​ឧបករណ៍​ទទួល​​ GPS',
 'exif-gpstrackref' => 'ឯកសារ​យោង​ ទិស​នៃ​ចលនា​',
@@ -3620,10 +3645,10 @@ $5
 'logentry-move-move-noredirect' => '$1 បានប្ដូរទីតាំង ទំព័រ $3 ពី $4 ដោយមិនបន្សល់ទុកតំនភ្ជាប់បញ្ជូនបន្ត',
 'logentry-move-move_redir' => '$1 បានប្ដូរទីតាំង ទំព័រ $3 ពី $4 តាមរយៈការបញ្ជូនបន្ត',
 'logentry-move-move_redir-noredirect' => '$1 បានប្ដូរទីតាំង ទំព័រ $3 ពី $4 តាមរយៈការបញ្ជូនបន្ត ដោយមិនបន្សល់ទុកតំនភ្ជាប់បញ្ជូនបន្ត',
-'logentry-newusers-newusers' => '$1 បានបង្កើត គណនីអ្នកប្រើប្រាស់មួយ',
-'logentry-newusers-create' => '$1 បានបង្កើត គណនីអ្នកប្រើប្រាស់មួយ',
-'logentry-newusers-create2' => '$1 បានបង្កើត គណនីអ្នកប្រើប្រាស់មួយ $3',
-'logentry-newusers-autocreate' => 'គណនី $1 ត្រូវ បានបង្កើត ដោយស្វ័យប្រវត្តិ',
+'logentry-newusers-newusers' => 'បានបង្កើតគណនីអ្នកប្រើប្រាស់ $1',
+'logentry-newusers-create' => 'បានបង្កើតគណនីអ្នកប្រើប្រាស់ $1',
+'logentry-newusers-create2' => ' $3 បានបង្កើតគណនីអ្នកប្រើប្រាស់ $1',
+'logentry-newusers-autocreate' => 'គណនី $1 ត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិ',
 'newuserlog-byemail' => 'ពាក្យសំងាត់ត្រូវបានផ្ញើតាមអ៊ីមែល',
 
 # Feedback
@@ -3676,5 +3701,6 @@ $5
 'duration-years' => '$1 {{PLURAL:$1|ឆ្នាំ|ឆ្នាំ}}',
 'duration-decades' => '$1 {{PLURAL:$1|ទសវត្សរ៍|ទសវត្សរ៍}}',
 'duration-centuries' => '$1 {{PLURAL:$1|សតវត្សរ៍|សតវត្សរ៍}}',
+'duration-millennia' => '$1 {{PLURAL:$1|សហសវត្សរ៍|សហសវត្សរ៍}}',
 
 );
index 51ce3b8..221183f 100644 (file)
@@ -1160,10 +1160,10 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'parser-template-loop-warning' => '재귀적인 틀이 발견되었습니다: [[$1]]',
 'parser-template-recursion-depth-warning' => '틀 반복 횟수 제한을 초과함($1)',
 'language-converter-depth-warning' => '언어 변환기 실행 제한 초과($1)',
-'node-count-exceeded-category' => '페이지가 노드 횟수를 초과하였습니다.',
-'node-count-exceeded-warning' => '페이지가 노드 수를 초과하였습니다.',
-'expansion-depth-exceeded-category' => '페이지가 확장 깊이를 초과하였습니다.',
-'expansion-depth-exceeded-warning' => '페이지가 확장 깊이를 초과하였습니다',
+'node-count-exceeded-category' => '문서가 노드 횟수를 초과하였습니다.',
+'node-count-exceeded-warning' => '문서가 노드 수를 초과하였습니다.',
+'expansion-depth-exceeded-category' => '문서가 확장 깊이를 초과하였습니다.',
+'expansion-depth-exceeded-warning' => '문서가 확장 깊이를 초과하였습니다',
 'parser-unstrip-loop-warning' => '스트립하지 않는 반복이 감지되었습니다',
 'parser-unstrip-recursion-limit' => '스트립하지 않는 재귀 한도가 초과됨 ($1)',
 'converter-manual-rule-error' => '언어 변환 규칙을 수동으로 지정하는 도중 오류',
@@ -2296,7 +2296,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 
 # SpecialCachedPage
 'cachedspecial-viewing-cached-ttl' => '지금 이 문서의 캐시된 버전을 보고 있습니다. 이 버전은 최대 $1만큼 지난 버전일 가능성이 있습니다.',
-'cachedspecial-viewing-cached-ts' => '현재 이 페이지는 캐시 처리된 버전으로 현재 문서 상태를 반영하지 않을 수도 있습니다.',
+'cachedspecial-viewing-cached-ts' => '현재 이 문서는 캐시 처리된 버전으로 현재 문서 상태를 반영하지 않을 수도 있습니다.',
 'cachedspecial-refresh-now' => '최신 버전 보기.',
 
 # Special:Categories
@@ -3077,7 +3077,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 # JavaScriptTest
 'javascripttest' => '자바스크립트 테스트',
 'javascripttest-title' => '$1 테스트 실행',
-'javascripttest-pagetext-noframework' => '이 페이지는 자바스크립트 테스트를 실행하기 위한 용도로 할당되어 있습니다.',
+'javascripttest-pagetext-noframework' => '이 문서는 자바스크립트 테스트를 실행하기 위한 용도로 할당되어 있습니다.',
 'javascripttest-pagetext-unknownframework' => '실험용 프레임워크 "$1"를 알 수 없습니다.',
 'javascripttest-pagetext-frameworks' => '다음 실험용 프레임워크 중 하나를 선택하세요: $1',
 'javascripttest-pagetext-skins' => '실험할 스킨을 선택하세요:',
@@ -3779,7 +3779,7 @@ Variants for Chinese language
 'edit-externally-help' => '(자세한 정보는 [//www.mediawiki.org/wiki/Manual:External_editors 설치 방법]을 참고하세요)',
 
 # 'all' in various places, this might be different for inflected languages
-'watchlistall2' => '모ë\93  ê¸°ê°\84',
+'watchlistall2' => '모ë\91\90',
 'namespacesall' => '모두',
 'monthsall' => '모든 달',
 'limitall' => '모두',
index 2dc8f29..5e166c3 100644 (file)
@@ -41,6 +41,7 @@ $messages = array(
 'tog-editondblclick' => 'Эки басып баракты оңдоо (JavaScript талап кылынат)',
 'tog-editsection' => 'Ар бир секция үчүн «оңдоо» шилтемеси',
 'tog-oldsig' => 'Кезектеги кол:',
+'tog-showhiddencats' => 'Жашырылган категорияларды көрсөтүү',
 
 'underline-always' => 'Дайыма',
 'underline-never' => 'Эч качан',
@@ -248,6 +249,9 @@ $messages = array(
 'toc' => 'Мазмун',
 'showtoc' => 'көрсөтүү',
 'hidetoc' => 'Жашыруу',
+'collapsible-collapse' => 'Түрүү',
+'collapsible-expand' => 'Жаюу',
+'viewdeleted' => 'Көрүү $1?',
 'site-rss-feed' => '$1 RSS тилкеси',
 'site-atom-feed' => '$1 Atom агымы',
 'page-atom-feed' => '"$1" Atom агымы',
@@ -291,11 +295,15 @@ $messages = array(
 'badtitletext' => 'Талап кылынган барак аталышы туура эмес, бош, же тилдер-аралык же уики-аралык аталышы туура эмес шилтемеленген.
 Балким аталышта колдонулбай турган бир же андан көп белги камтылган.',
 'viewsource' => 'Кароо',
+'viewsource-title' => '$1 барагынын баштапкы кодун көрүү',
+'ns-specialprotected' => 'Атайын барактарды оңдоого мүмкүн эмес.',
 
 # Virus scanner
+'virus-scanfailed' => 'скандоо катасы (код $1)',
 'virus-unknownscanner' => 'белгисиз антивирус:',
 
 # Login and logout pages
+'welcomeuser' => 'Кош келиңиз, $1!',
 'yourname' => 'Колдонуучу аты',
 'yourpassword' => 'Сырсөз',
 'yourpasswordagain' => 'Сырсөздү кайра жазыңыз',
@@ -389,6 +397,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'blockedtitle' => 'Катышуучу тосмолонгон',
 'blockedtext' => 'Сиздин колдонуучу атыңыз же IP дарегиңиз тосмолонгон',
 'blockednoreason' => 'себеби көрсөтүлгөн жок',
+'nosuchsectiontitle' => 'Бөлүктүү табууга мүмкүн эмес',
 'loginreqtitle' => 'Колдонуучунун аты талап кылынат',
 'loginreqlink' => 'Кирүү',
 'accmailtitle' => 'Сырсөз жөнөтүлдү.',
@@ -406,9 +415,10 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 же <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тийиштүү жазууларды таба аласыз]</span>.',
 'userpage-userdoesnotexist' => '"$1" Мындай колдонуучу катталган эмес. Ушул баракты түзүүнү же оңдогонду каалганыңыз анык болсун',
 'updated' => '(Жаңыртылды)',
+'note' => "'''Эскертүү:'''",
 'previewnote' => "'''Бул алдын ала көрүнүшү гана болгонун эсиңизге алыңыз.'''
 Өзгөртүүлөрүңүз сактала элек!",
-'continue-editing' => 'Өзгөртүүүлөрдү улантабыз',
+'continue-editing' => 'Редакторлоону улантуу',
 'session_fail_preview' => 'Кечиресиз, байланыш үзүлгөндүктөн сиздин өзгөртүүлөр сакталган жок. Дагы бир жолу аракет кылып көрүңүз. Болбосо, [[Special:UserLogout|logging out]] аткарып, кайра кирип көрүңүз.',
 'editing' => 'Оңдоо $1',
 'creating' => '$1 түзүлүүдө',
@@ -420,6 +430,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'template-protected' => '(корголгон)',
 'template-semiprotected' => '(жарым-жартылай корголгон)',
 'hiddencategories' => 'Бул барак {{PLURAL:$1|1 жашыруун категориянын|$1 жашыруун категориялардын}} мүчөсү:',
+'nocreatetitle' => 'Барактарды жаратуу чектелген',
 'permissionserrorstext-withaction' => 'Сизге $2, төмөнкү {{PLURAL:$1|себеп|себеп}} менен уруксат жок:',
 'recreate-moveddeleted-warn' => "'''Эскертүү: Сиз мурун өчүрүлгөн баракты кайра баштап жатасыз.'''
 
@@ -431,6 +442,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'edit-already-exists' => 'Жаңы барак түзүү мүмкүн эмес. Мындай барак бар',
 
 # Content models
+'content-model-wikitext' => 'уики-текст',
+'content-model-text' => 'жөнөкөй текст',
 'content-model-javascript' => 'JavaScript',
 'content-model-css' => 'CSS',
 
@@ -473,18 +486,29 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Revision deletion
 'rev-delundel' => 'көрсөтүү/жашыруу',
 'rev-showdeleted' => 'көрсөтүү',
+'revdelete-show-file-submit' => 'Ооба',
+'revdelete-hide-image' => 'Файл мазмунун жашыруу',
+'revdelete-radio-same' => '(өзгөртпөө)',
+'revdelete-radio-set' => 'Ооба',
+'revdelete-radio-unset' => 'Жок',
+'revdelete-log' => 'Себеп:',
 'revdel-restore' => 'көрүнүшүн өзгөртүү',
 'revdel-restore-deleted' => 'өчүрүлгөн версиялар',
 'revdel-restore-visible' => 'көрүнүүчү версиялары',
+'pagehist' => 'Барактын тарыхы',
+'deletedhist' => 'Өчүрүүлөрдүн тарыхы',
 'revdelete-reasonotherlist' => 'Башка себеп',
+'revdelete-edit-reasonlist' => 'Өчүрүү себептерин оңдоо',
 'revdelete-offender' => 'Барак версиясынын автору:',
 
 # History merging
+'mergehistory' => 'Барактардын тарыхын бириктирүү',
 'mergehistory-from' => 'Баштапкы барак:',
 'mergehistory-submit' => 'Версияларды бириктирүү',
 'mergehistory-reason' => 'Себеп',
 
 # Merge log
+'mergelog' => 'Бириктирүүлөрдүн журналы',
 'revertmerge' => 'Бөлүү',
 
 # Diffs
@@ -522,14 +546,19 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'search-redirect' => '($1 кайра багыттоо)',
 'search-section' => '($1 бөлүмү)',
 'search-suggest' => 'Ушуну кааладыңызбы: $1',
+'search-interwiki-caption' => 'Тектеш долбоорлор',
+'search-interwiki-default' => '$1 жыйын.:',
+'search-interwiki-more' => '(көбүрөөк)',
 'searchrelated' => 'байланыштуу',
 'searchall' => 'баары',
 'showingresultsheader' => "'''$4''' үчүн {{PLURAL:$5|'''$3''' жыйынтыктан '''$1'''-и|'''$1 - $2''' -дан '''$3''' жыйынтык}}",
 'search-nonefound' => 'Талапка төп маалымат табылган жок.',
 'powersearch' => 'Кеңейтилген издөө',
 'powersearch-legend' => 'Кеңейтилген издөө',
+'powersearch-field' => 'Издөө',
 'powersearch-toggleall' => 'Баары',
 'powersearch-togglenone' => 'Эчтеке',
+'search-external' => 'Тышкы издөө',
 
 # Quickbar
 'qbsettings' => 'Навигация панели',
@@ -541,15 +570,22 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-edits' => 'Өзгөртүүлөрдүн саны',
 'changepassword' => 'Сырсөздү өзгөртүү',
 'skin-preview' => 'Алдын ала көрүү',
+'prefs-beta' => 'Бета-мүмкүнчүлүктөр',
 'prefs-datetime' => 'Дата жана убакыт',
 'prefs-user-pages' => 'Катышуучунун барактары',
 'prefs-rc' => 'Соңку өзгөрүүлөр',
 'prefs-watchlist' => 'Байкоо тизмеси',
 'prefs-resetpass' => 'Сырсөздү өзгөртүү',
+'prefs-email' => 'Электрондук почтанын параметрлери',
 'saveprefs' => 'Сактоо',
 'prefs-editing' => 'Редакторлоо',
+'rows' => 'Сап:',
+'columns' => 'Тилке:',
 'searchresultshead' => 'Издөө',
-'localtime' => 'Жергиликтүү убакыт',
+'stub-threshold-disabled' => 'Өчүрүлгөн',
+'timezonelegend' => 'Сааттык алкак:',
+'localtime' => 'Жердик убакыт:',
+'timezoneoffset' => 'Жылыш¹:',
 'servertime' => 'Сервер убагы:',
 'timezoneregion-africa' => 'Африка',
 'timezoneregion-america' => 'Америка',
@@ -569,7 +605,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'uid' => 'Колдонуучунун ID си:',
 'yourrealname' => 'Анык атыңыз:',
 'yourlanguage' => 'Тил:',
-'yourvariant' => 'Ð\92аÑ\80ианÑ\82:',
+'yourvariant' => 'Ð\9cазмÑ\83ндÑ\83н Ñ\82ил Ð²Ð°Ñ\80ианÑ\82Ñ\8b:',
 'yournick' => 'Жаңы колуңуз:',
 'yourgender' => 'Жыныс:',
 'gender-male' => 'Эркек',
@@ -579,6 +615,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-help-email-others' => 'Ошондой эле башкалар сиз менен колдонуучу же талкуу барактарыңыздагы шилтеме аркылуу байланыш түзүүгө уруксат берүүнү тандай аласыз.
 Электрондук дарегиңиз башка кодонуучуларга байланыш түзгөндө көрүнбөйт.',
 'prefs-info' => 'Негизги маалыматтары',
+'prefs-i18n' => 'Интернационализация',
+'prefs-signature' => 'Кол тамга',
 'prefs-dateformat' => 'Дата форматы',
 'prefs-advancedediting' => 'Кеңейтилген ырастоолор',
 'prefs-advancedrc' => 'Кеңейтилген ырастоолор',
@@ -586,6 +624,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-advancedsearchoptions' => 'Кеңейтилген ырастоолор',
 'prefs-advancedwatchlist' => 'Кеңейтилген ырастоолор',
 'prefs-displayrc' => 'Көрсөтүүнүн ырастоолору',
+'prefs-displaysearchoptions' => 'Көрсөтүүнүн ырастоолору',
+'prefs-displaywatchlist' => 'Көрсөтүүнүн ырастоолору',
 
 # User rights
 'userrights-reason' => 'Себеп:',
@@ -593,14 +633,29 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Groups
 'group' => 'Топ:',
 'group-user' => 'Катышуучулар',
+'group-bot' => 'Боттор',
 'group-sysop' => 'Администраторлор',
 'group-bureaucrat' => 'Бюрократтар',
+'group-all' => '(баары)',
 
-'group-bureaucrat-member' => 'Бюрократ',
+'group-user-member' => '{{GENDER:$1|катышуучу}}',
+'group-bot-member' => '{{GENDER:$1|бот}}',
+'group-sysop-member' => '{{GENDER:$1|администратор}}',
+'group-bureaucrat-member' => '{{GENDER:$1|бюрократ}}',
+
+'grouppage-user' => '{{ns:project}}:Катышуучулар',
+'grouppage-bot' => '{{ns:project}}:Боттор',
+'grouppage-sysop' => '{{ns:project}}:Администраторлор',
 
 # Rights
+'right-edit' => 'Барактарды оңдоо',
+'right-move' => 'Барактарды ташуу',
+'right-movefile' => 'Файлдарды ташуу',
 'right-upload' => 'Файлдарды жүктөө',
 'right-delete' => 'Барактарды өчүрүү',
+'right-browsearchive' => 'Өчүрүлгөн барактарды издөө',
+'right-suppressionlog' => 'Жеке журналдарды көрүү',
+'right-userrights' => 'Бүт катышуучулардын укуктарын оңдоо',
 
 # User rights log
 'rightsnone' => '(жок)',
@@ -609,7 +664,13 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'action-read' => 'бул баракты окуу',
 'action-edit' => 'бул баракты оңдоо',
 'action-createpage' => 'барактарды жаратуу',
+'action-createtalk' => 'талкуулоо барагын жаратуу',
+'action-createaccount' => 'бул эсеп жазуусун жаратуу',
+'action-upload' => 'бул файлды жүктөө',
 'action-delete' => 'бул баракты өчүрүү',
+'action-suppressionlog' => 'бул жеке журналды көрүү',
+'action-userrights' => 'бүт катышуучулардын укуктарын оңдоо',
+'action-sendemail' => 'электрондук каттарды жөнөтүү',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|өзгөрүү|өзгөрүү}}',
@@ -638,6 +699,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'minoreditletter' => 'м',
 'newpageletter' => 'Ж',
 'boteditletter' => 'б',
+'rc_categories_any' => 'Каалаган',
 'rc-enhanced-expand' => 'Кошумча маалыматтарды көрсөтүү (JavaScript талап кылынат)',
 'rc-enhanced-hide' => 'Кошумча маалыматтарды жашыруу',
 
@@ -658,15 +720,22 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'uploaderror' => 'Жүктөө катасы',
 'uploadlog' => 'жүктөө журналы',
 'uploadlogpage' => 'Жүктөөлөрдүн тизмеси',
+'filename' => 'Файл аты',
 'filedesc' => 'Кыска түшүндүрмө',
 'fileuploadsummary' => 'Кыскача баяндама:',
+'filereuploadsummary' => 'Файлдагы өзгөрүүлөр:',
+'filesource' => 'Булак:',
 'uploadedfiles' => 'Жүктөлгөн файлдар',
 'savefile' => 'Файлды сактоо',
 'uploadedimage' => '"[[$1]]" жүктөлдү',
 'upload-source' => 'Баштапкы файл',
+'sourcefilename' => 'Булактын файл аты:',
+'sourceurl' => 'Булактын URL-дареги:',
 'upload-description' => 'Файл баяндамасы',
 'upload-success-subj' => 'Ийгиликтүү жүктөлдү',
+'upload-failure-subj' => 'Жүктөө көйгөйү',
 
+'upload-proto-error' => 'Туура эмес протокол',
 'upload-file-error' => 'Ички ката',
 'upload-unknown-size' => 'Белгисиз өлчөм',
 
@@ -682,6 +751,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Special:ListFiles
 'imgfile' => 'файл',
 'listfiles' => 'Файлдар тизмеси',
+'listfiles_thumb' => 'Миниатюра',
 'listfiles_date' => 'Дата',
 'listfiles_name' => 'Ат',
 'listfiles_user' => 'Катышуучу',
@@ -700,6 +770,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'filehist-datetime' => 'Дата/Убакыт',
 'filehist-thumb' => 'Миниатюра',
 'filehist-thumbtext' => '$1 -дагы версиясы үчүн кичирейтилген сүрөтү',
+'filehist-nothumb' => 'Миниатюра жок',
 'filehist-user' => 'Катышуучу',
 'filehist-dimensions' => 'Өлчөмдөр',
 'filehist-filesize' => 'Файл өлчөмү',
@@ -1077,17 +1148,57 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'exif-source' => 'Булак',
 'exif-languagecode' => 'Тил',
 
+'exif-subjectdistance-value' => '$1 метр',
+
 'exif-meteringmode-0' => 'Белгисиз',
 'exif-meteringmode-255' => 'Башка',
 
+'exif-lightsource-0' => 'Белгисиз',
+'exif-lightsource-4' => 'Жарк',
+'exif-lightsource-11' => 'Көлөкө',
+
+# Flash modes
+'exif-flash-mode-3' => 'автоматтык режим',
+
 'exif-focalplaneresolutionunit-2' => 'дюйм',
 
+'exif-scenecapturetype-0' => 'Стандарттуу',
+'exif-scenecapturetype-1' => 'Ландшафт',
+'exif-scenecapturetype-2' => 'Портрет',
+'exif-scenecapturetype-3' => 'Түнкү тартуу',
+
 'exif-gaincontrol-0' => 'Жок',
 
+'exif-subjectdistancerange-0' => 'Белгисиз',
+'exif-subjectdistancerange-1' => 'Макротартуу',
+
 # Pseudotags used for GPSDestDistanceRef
 'exif-gpsdestdistance-k' => 'Километр',
-
-'exif-dc-rights' => 'Укутар',
+'exif-gpsdestdistance-m' => 'Миля',
+
+'exif-gpsdop-excellent' => 'Мыкты ($1)',
+'exif-gpsdop-good' => 'Жакшы ($1)',
+'exif-gpsdop-moderate' => 'Орточо ($1)',
+'exif-gpsdop-poor' => 'Начар ($1)',
+
+'exif-dc-contributor' => 'Авторлоштор',
+'exif-dc-date' => 'Дата(лар)',
+'exif-dc-publisher' => 'Бастыруучу',
+'exif-dc-rights' => 'Укуктар',
+'exif-dc-source' => 'Баштапкы медиа',
+'exif-dc-type' => 'Медианын түрү',
+
+'exif-iimcategory-fin' => 'Экономика жана бизнес',
+'exif-iimcategory-edu' => 'Билим',
+'exif-iimcategory-evn' => 'Айлана чөйрө',
+'exif-iimcategory-hth' => 'Ден соолук',
+'exif-iimcategory-lab' => 'Эмгек',
+'exif-iimcategory-pol' => 'Саясат',
+'exif-iimcategory-rel' => 'Дин жана ишеним',
+'exif-iimcategory-sci' => 'Илим жана техника',
+'exif-iimcategory-soi' => 'Социалдык маселелер',
+'exif-iimcategory-spo' => 'Спорт',
+'exif-iimcategory-wea' => 'Аба ырайы',
 
 # External editor support
 'edit-externally' => 'Бул файлды сырткы программа колдонуу аркылуу оңдоо',
@@ -1113,6 +1224,18 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'confirm-watch-button' => 'ОК',
 'confirm-unwatch-button' => 'ОК',
 
+# Multipage image navigation
+'imgmultipageprev' => '← мурунку барак',
+'imgmultipagenext' => 'кийинки барак →',
+'imgmultigo' => 'Өтүү!',
+
+# Table pager
+'table_pager_next' => 'Кийинки барак',
+'table_pager_prev' => 'Мурунку барак',
+'table_pager_first' => 'Биринчи барак',
+'table_pager_last' => 'Акыркы барак',
+'table_pager_limit_submit' => 'Аткаруу',
+
 # Live preview
 'livepreview-loading' => 'Жүктөө...',
 
@@ -1126,7 +1249,9 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 
 # Special:Version
 'version' => 'Версия',
+'version-variables' => 'Өзгөрмөлөр',
 'version-other' => 'Башка',
+'version-version' => '(Версия $1)',
 'version-license' => 'Лицензия',
 'version-software' => 'Орнотулган программалык камсыздоо',
 'version-software-product' => 'Продукт',
@@ -1136,6 +1261,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Special:FilePath
 'filepath' => 'Файл жолу',
 'filepath-page' => 'Файл:',
+'filepath-submit' => 'Өтүү',
 
 # Special:SpecialPages
 'specialpages' => 'Атайын барактар',
index 1fcc5e5..1b4ce31 100644 (file)
@@ -1309,9 +1309,9 @@ Dëst kann net réckgängeg gemaach ginn.",
 'prefs-emailconfirm-label' => 'E-Mail Confirmatioun:',
 'prefs-textboxsize' => 'Gréisst vun der Ännerungsfënster',
 'youremail' => 'E-Mailadress:',
-'username' => 'Benotzernumm:',
-'uid' => 'Benotzer ID:',
-'prefs-memberingroups' => 'Member vun {{PLURAL:$1|der Benotzergrupp|de Benotzergruppen}}:',
+'username' => '{{GENDER:$1|Benotzernumm}}:',
+'uid' => '{{GENDER:$1|Benotzer}} ID:',
+'prefs-memberingroups' => '{{GENDER:$2|Member}} vun {{PLURAL:$1|der Benotzergrupp|de Benotzergruppen}}:',
 'prefs-registration' => 'Zäitpunkt vum Opmaache vum Benotzerkont:',
 'yourrealname' => 'Richtegen Numm:',
 'yourlanguage' => 'Sprooch:',
@@ -2809,6 +2809,7 @@ Späichert en op Ärem Computer of a luet en hei nees erop.',
 'javascripttest-title' => '$1-Tester ginn elo gemaach',
 'javascripttest-pagetext-noframework' => 'Dës Säit ass fir Java-Script-Tester reservéiert.',
 'javascripttest-pagetext-unknownframework' => 'Onbekannten Test-Framework "$1".',
+'javascripttest-pagetext-frameworks' => 'Sicht w.e.g. eng vun dësen Test-Strukturen eraus: $1',
 'javascripttest-qunit-intro' => "Kuckt d'[$1 Dokumentatioun vun den Tester] op mediawiki.org",
 
 # Tooltip help for the actions
@@ -2977,6 +2978,7 @@ Dëst warscheinlech duerch en externe Link den op der schwaarzer Lëscht (blackl
 'markedaspatrollederrortext' => 'Dir musst eng Säitenännerung auswielen.',
 'markedaspatrollederror-noautopatrol' => 'Dir däerft Är eegen Ännerungen net als nogekuckt markéieren.',
 'markedaspatrollednotify' => 'Dës Ännerung vu(n) $1 gouf als nogekuckt markéiert.',
+'markedaspatrollederrornotify' => 'Markéieren als kontrolléiert huet net fonctionnéiert.',
 
 # Patrol log
 'patrol-log-page' => 'Logbuch vun den iwwerkuckte Versiounen',
index d1914ab..118933b 100644 (file)
@@ -348,6 +348,7 @@ $messages = array(
 'namespaces' => 'Vardų sritys',
 'variants' => 'Variantai',
 
+'navigation-heading' => 'Naršymo meniu',
 'errorpagetitle' => 'Klaida',
 'returnto' => 'Grįžti į $1.',
 'tagline' => 'Iš {{SITENAME}}.',
@@ -589,6 +590,9 @@ Ją užrakinęs administratorius pateikė šį paaiškinimą: "$3".',
 
 Galite toliau naudoti {{SITENAME}} anonimiškai arba <span class='plainlinks'>[$1 prisijunkite]</span> iš naujo tuo pačiu ar kitu naudotoju.
 Pastaba: kai kuriuose puslapiuose ir toliau gali rodyti, kad esate prisijungęs iki tol, kol išvalysite savo naršyklės podėlį.",
+'welcomeuser' => 'Sveiki,  $1 !',
+'welcomecreation-msg' => 'Jūsų paskyra buvo sukurta.
+Nepamirškite pakeisti savo [[Special:Preferences|{{SITENAME}} nustatymų]].',
 'yourname' => 'Naudotojo vardas:',
 'yourpassword' => 'Slaptažodis:',
 'yourpasswordagain' => 'Pakartokite slaptažodį:',
@@ -1440,6 +1444,9 @@ teisės",
 'rightslogtext' => 'Pateikiamas naudotojų teisių pakeitimų sąrašas.',
 'rightslogentry' => 'pakeista $1 grupės narystė iš $2 į $3',
 'rightslogentry-autopromote' => 'buvo automatiškai paaukštintas iš $2 į $3',
+'logentry-rights-rights' => '$1 pakeista narystė grupėje $3 iš $4 į $5',
+'logentry-rights-rights-legacy' => '$1 pakeista narystė grupėje $3',
+'logentry-rights-autopromote' => '$1 buvo automatiškai pervestas iš $4 į $5',
 'rightsnone' => '(jokių)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1796,6 +1803,7 @@ Informacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.',
 'shared-repo-from' => 'iš $1',
 'shared-repo' => 'bendrosios failų saugyklos',
 'shared-repo-name-wikimediacommons' => 'Vikiteka',
+'upload-disallowed-here' => 'Jūs negalite perrašyti šio failo.',
 
 # File reversion
 'filerevert' => 'Sugrąžinti $1',
@@ -1902,6 +1910,7 @@ Kiekvienoje eilutėje yra nuorodos į pirmąjį ir antrąjį peradresavimą, tai
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|baitas|baitai|baitų}}',
 'ncategories' => '$1 {{PLURAL:$1|kategorija|kategorijos|kategorijų}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interviki nuoroda|interviki nuorodos}}',
 'nlinks' => '$1 {{PLURAL:$1|nuoroda|nuorodos|nuorodų}}',
 'nmembers' => '$1 {{PLURAL:$1|narys|nariai|narių}}',
 'nrevisions' => '$1 {{PLURAL:$1|keitimas|keitimai|keitimų}}',
@@ -1930,6 +1939,7 @@ Kiekvienoje eilutėje yra nuorodos į pirmąjį ir antrąjį peradresavimą, tai
 'mostlinkedtemplates' => 'Daugiausiai nurodomi šablonai',
 'mostcategories' => 'Puslapiai su daugiausiai kategorijų',
 'mostimages' => 'Daugiausiai nurodomi failai',
+'mostinterwikis' => 'Puslapiai, turintys daugiausiai tarpkalbinių nuorodų',
 'mostrevisions' => 'Puslapiai su daugiausiai keitimų',
 'prefixindex' => 'Visi puslapiai pagal pavadinimo pradžią',
 'prefixindex-namespace' => 'Visi puslapiai prasidedantys ($1 vardų sritis)',
@@ -2880,11 +2890,38 @@ Leidžia pridėti atmetimo priežastį komentaruose',
 
 # Info page
 'pageinfo-title' => '„$1“ informacija',
-'pageinfo-header-edits' => 'Pakeitimai',
+'pageinfo-not-current' => 'Atsiprašome, neįmanoma pateikti šios senų versijų informacijos.',
+'pageinfo-header-basic' => 'Pagrindinė informacija',
+'pageinfo-header-edits' => 'Redagavimo istorija',
+'pageinfo-header-restrictions' => 'Puslapio apsaugos lygmuo',
+'pageinfo-header-properties' => 'Puslapio savybės',
+'pageinfo-display-title' => 'Rodyti pavadinimą',
+'pageinfo-default-sort' => 'Numatytasis rūšiavimo raktas',
+'pageinfo-length' => 'Puslapio ilgis (baitais)',
+'pageinfo-article-id' => 'Puslapio ID',
+'pageinfo-language' => 'Puslapio turinio kalba',
+'pageinfo-robot-policy' => 'Paieškos variklio būsena',
+'pageinfo-robot-index' => 'Indeksuotas',
+'pageinfo-robot-noindex' => 'Neindeksuotas',
 'pageinfo-views' => 'Peržiūrų skaičius',
-'pageinfo-watchers' => 'Stebėtojų skaičius',
+'pageinfo-watchers' => 'Puslapio stebėtojų skaičius',
+'pageinfo-redirects-name' => 'Nukreipimai į šį puslapį',
+'pageinfo-subpages-name' => 'Šio puslapio papuslapiai',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|peradresavimas|peradresavimai}}; $3 {{PLURAL:$3|neperadresavimas|peradresavimai}})',
+'pageinfo-firstuser' => 'Puslapio kūrėjas',
+'pageinfo-firsttime' => 'Puslapio sukūrimo data',
+'pageinfo-lastuser' => 'Paskutinis redaktorius',
+'pageinfo-lasttime' => 'Paskutinio keitimo data',
 'pageinfo-edits' => 'Keitimų skaičius',
 'pageinfo-authors' => 'Skirtingų autorių skaičius',
+'pageinfo-recent-edits' => 'Paskutinųjų keitimų skaičius (per $1 laikotarpį)',
+'pageinfo-recent-authors' => 'Pastarųjų skirtingų redaguotojų skaičius',
+'pageinfo-toolboxlink' => 'Puslapio informacija',
+'pageinfo-redirectsto' => 'Nukreipimai į',
+'pageinfo-redirectsto-info' => 'informacija',
+'pageinfo-contentpage' => 'Priskirtas turinio puslapiams',
+'pageinfo-contentpage-yes' => 'Taip',
+'pageinfo-protect-cascading-yes' => 'Taip',
 
 # Skin names
 'skinname-standard' => 'Klasikinė',
index bf6f3ee..e4e247e 100644 (file)
@@ -597,7 +597,7 @@ $1',
 'policy-url' => 'Project:Начела',
 'portal' => 'Портал',
 'portal-url' => 'Project:Портал на заедницата',
-'privacy' => 'Ð\97аÑ\88Ñ\82иÑ\82а Ð½Ð° Ð»Ð¸Ñ\87ниÑ\82е Ð¿Ð¾Ð´Ð°Ñ\82оÑ\86и',
+'privacy' => 'Ð\97аÑ\88Ñ\82иÑ\82а Ð½Ð° Ð¿Ñ\80иваÑ\82ноÑ\81Ñ\82а',
 'privacypage' => 'Project:Заштита на личните податоци',
 
 'badaccess' => 'Немате овластување',
index 4c8bcb4..7e3f940 100644 (file)
@@ -305,6 +305,8 @@ $1',
 'youhavenewmessages' => 'Таньд $1 ($2) байна.',
 'newmessageslink' => 'шинэ мессеж',
 'newmessagesdifflink' => 'сүүлийн өөрчлөлт',
+'youhavenewmessagesfromusers' => 'Танд {{PLURAL:$3|өөр нэгэн хэрэглэгчээс |$3 хэрэглэгчээс}} $1 ирсэн байна ($2).',
+'youhavenewmessagesmanyusers' => 'Танд ($2) олон хэрэглэгчидээс $1.',
 'youhavenewmessagesmulti' => 'Таньд $1 дээр шинэ мессеж ирсэн байна',
 'editsection' => 'засварлах',
 'editold' => 'засварлах',
@@ -411,7 +413,7 @@ $1',
 'viewsource-title' => '$1 хуудсын эх сурвалжийг харах',
 'actionthrottled' => 'Үйлдэл хязгаарлагдлаа',
 'actionthrottledtext' => 'Бид спамаас хамгаалахын тулд энэ үйлдлийг богино хугацаанд хэт олон удаа давтахыг хязгаарладаг. Та энэхүү хязгаарт хүрсэн тул түр хүлээгээд дахин оролдоно уу.',
-'protectedpagetext' => 'Ð\97аÑ\81ваÑ\80лаÑ\85 Ñ\8fвдлÑ\8bг Ñ\81ааÑ\82Ñ\83Ñ\83лаÑ\85Ñ\8bн Ñ\82Ñ\83лд Ñ\8dнÑ\8d Ñ\85Ñ\83Ñ\83даÑ\81 Ñ\82үгжигдÑ\81Ñ\8dн байна.',
+'protectedpagetext' => 'ЭнÑ\8d Ñ\85Ñ\83Ñ\83дÑ\81Ñ\8bг Ð·Ð°Ñ\81ваÑ\80 Ñ\85ийÑ\85Ñ\8dÑ\8dÑ\81 Ñ\85амгаалÑ\81ан байна.',
 'viewsourcetext' => 'Та энэ хуудасны кодыг харах болон хуулж авах үйлдлийг хийх боломжтой:',
 'viewyourtext' => "Та энэ хуудсан дахь '''өөрийн өөрчлөлтөө''' хуулбарлаж, харж болно",
 'protectedinterface' => 'Энэ хуудас программын харагдах байдалд ашиглагддаг текстийг агуулдаг тул түгжигдсэн байна.',
@@ -427,6 +429,7 @@ $2',
 'ns-specialprotected' => 'Тусгай хуудсуудыг засварлах боломжгүй.',
 'titleprotected' => "[[User:$1|$1]] нь энэ хуудсыг үүсгэх явдыг хорьжээ.
 Шалтгаан нь: ''$2''.",
+'exception-nologin' => 'Та хэрэглэгчийн нэрээр нэвтрээгүй байна.',
 
 # Virus scanner
 'virus-badscanner' => "Буруу тохиргоо: үл мэдэгдэх вирус илрүүлэгч программ: ''$1''",
@@ -438,12 +441,16 @@ $2',
 
 Та ямар нэг хэрэглэгчийн бүртгэлгүйгээр {{SITENAME}}-г ашиглах боломжтой, эсвэл саяынхаа болон өөр хэрэглэгчийн бүртгэлээ ашиглан <span class='plainlinks'>[$1 дахин нэвтэрч]</span> болно.
 Броузерийнхаа хийсвэр санах ойг цэвэрлэх хүртэл зарим нэг хуудсууд нь таны холбогдсон байдлаар харагдаж болзошгүйг анхааруулъя.",
+'welcomeuser' => '$1, та тавтай морил!',
+'welcomecreation-msg' => 'Таны бүртгэл хийгдсэн байна.
+Та өөрийн [[Special:Preferences|{{SITENAME}}-н тохиргоогоо]]  өөрчлөхөө бүү мартаарай.',
 'yourname' => 'Хэрэглэгчийн нэр:',
 'yourpassword' => 'Нууц үг:',
 'yourpasswordagain' => 'Нууц үгээ дахин оруулах:',
 'remembermypassword' => 'Энэ компьютер дээрх миний нэвтрэлтийг сана (хамгийн дээд талдаа $1 {{PLURAL:$1|өдрийн|өдрийн}} туршид)',
 'securelogin-stick-https' => 'Нэвтэрсний дараа HTTPS -д нэвтэрсэн хэвээр байх',
 'yourdomainname' => 'Таны домэйн:',
+'password-change-forbidden' => 'Та энэ вики дээрх нууц үгээ сольж болохгүй.',
 'externaldberror' => 'Нэг бол гадны баталгаажуулах мэдээллийн сангийн алдаа гарсан, эсвэл та өөрийн гадны бүртгэлээ шинэчлэх эрхгүй байна.',
 'login' => 'Нэвтрэх',
 'nav-login-createaccount' => 'Нэвтрэх / Бүртгүүлэх',
@@ -517,6 +524,7 @@ $2',
 'invalidemailaddress' => 'Таны мэйл хаяг нь хүчингүй форматтай байгаа тул зөвшөөрөгдөхгүй.
 Зөв форматтай хаяг оруул, эсвэл талбарыг хоослоно уу.',
 'cannotchangeemail' => 'Энэ вики-н бүртгэлийн цахим шуудангийн хаяг солигдож болохгүй.',
+'emaildisabled' => 'Та энэ сайт дээрээс и-мэйл явуулж болохгүй.',
 'accountcreated' => 'Бүртгэл үүсгэгдлээ',
 'accountcreatedtext' => '$1 хэрэглэгчийн бүртгэл үүсгэгдлээ.',
 'createaccount-title' => '{{SITENAME}}-н бүртгэлийн үүсгэл',
@@ -702,7 +710,7 @@ $2',
 'note' => "'''Анхааруулга:'''",
 'previewnote' => "'''Энэ бол зөвхөн урьдчилж харсан байдал.'''
 Таны хийсэн өөрчлөлтүүдийг одоохондоо хадгалаагүй байгаа!",
-'continue-editing' => 'Үргэлжлүүлэн янзлах',
+'continue-editing' => 'Засвар талбарт очих',
 'previewconflict' => 'Энэ урьдчилж харсан байдал нь дээд талын засварлах талбарын текстийг хадгалахад харагдах байдлыг харуулна.',
 'session_fail_preview' => "'''Уучлаарай! Мэдээлэл алдагдснаас болж таны засварыг боловсруулж чадсангүй. Дахин оролдож үзнэ үү. Ингээд ч болохгүй байвал сайтаас гарч дахин нэвтэрч орж үзнэ үү.'''",
 'session_fail_preview_html' => "'''Уучлаарай! Мэдээлэл алдагдснаас болж таны засварыг боловсруулж чадсангүй.'''
@@ -782,6 +790,13 @@ $2',
 'edit-no-change' => 'Текстэд өөрчлөлт хийгдээгүй тул таны засварыг үл тоов.',
 'edit-already-exists' => 'Шинэ хуудас үүсгэж чадсангүй.
 Өмнө үүсгэгдсэн байна.',
+'defaultmessagetext' => 'Үндсэн мессеж текст',
+
+# Content models
+'content-model-wikitext' => 'вики бичвэр',
+'content-model-text' => 'энгийн бичвэр',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''Анхаар:''' Энэ хуудсанд хэт олон парсер функцийн дуудлагууд байна.
@@ -978,6 +993,7 @@ $1",
 
 # Diffs
 'history-title' => '"$1"-н хянасан түүх',
+'difference-title-multipage' => '"$1", "$2" хоёр хуудасны ялгаа',
 'difference-multipage' => '(Хуудсууд хоорондын ялгаа)',
 'lineno' => '$1-р мөр:',
 'compareselectedversions' => 'Сонгосон хувилбаруудыг харьцуулах',
@@ -1071,6 +1087,7 @@ $1",
 'datedefault' => 'Анхны байдал',
 'prefs-beta' => 'Туршилтын бета хэрэгсүүрүүд',
 'prefs-datetime' => 'Огноо ба цаг',
+'prefs-user-pages' => 'Хэрэглэгчийн хуудсууд',
 'prefs-personal' => 'Хувийн тохируулга',
 'prefs-rc' => 'Сүүлийн засварууд',
 'prefs-watchlist' => 'Хянах жагсаалт',
@@ -1533,9 +1550,11 @@ URL нь хүчинтэй, мөн түүн руу орж болж байгаа 
 'backend-fail-stream' => '$1 файлыг дамжуулж чадсангүй.',
 'backend-fail-backup' => '$1 файлыг нөөцөлж чадсангүй.',
 'backend-fail-notexists' => '$1 файл байхгүй байна.',
+'backend-fail-hashes' => 'Харьцуулалт хийх хаш файл олдсонгүй.',
 'backend-fail-notsame' => '$1 дээр ялгаатай файл аль эрт үүссэн байна.',
 'backend-fail-invalidpath' => '$1 хадгалах зам хуурамч байна.',
 'backend-fail-delete' => '$1 файлыг устгаж чадсангүй.',
+'backend-fail-describe' => '"$1" файлын метадатаг сольж чадсангүй.',
 'backend-fail-alreadyexists' => '$1 файл аль хэдийн байж байна.',
 'backend-fail-store' => '$2 дахь $1 файлыг хадгалж чадсангүй.',
 'backend-fail-copy' => '$1 файлыг $2-руу хуулж чадсангүй.',
@@ -1575,6 +1594,8 @@ URL нь хүчинтэй, мөн түүн руу орж болж байгаа 
 # Special:UploadStash
 'uploadstash' => 'stash файл илгээх',
 'uploadstash-summary' => 'Уг хуудсанд вики-д нийтлээгүй боловч байршуулсан эсвэл байршуулж буй файлд нэвтрэх боломж олгож байна. Эдгээр байршуулсан эзнээс бусад хүнд харагдахгүй болно.',
+'uploadstash-clear' => 'Нууцалсан файлыг цэвэрлэх',
+'uploadstash-nofiles' => 'Танд нууцалсан файл алга.',
 'uploadstash-errclear' => 'Файлыг цэвэрлэхэд саад учирлаа.',
 'uploadstash-refresh' => 'Харагдаж буй файлуудыг сэргээн харах',
 
@@ -1671,6 +1692,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'uploadnewversion-linktext' => 'Энэ файлын шинэ хувилбарыг оруулах',
 'shared-repo-from' => '$1-с',
 'shared-repo' => 'хамтаар хэрэглэх агуулах',
+'upload-disallowed-here' => 'Та энэ хуудсыг давхардуулж болохгүй.',
 
 # File reversion
 'filerevert' => '$1-г хуучин төлөвт шилжүүлэх',
@@ -1779,6 +1801,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'nmembers' => '$1 гишүүн',
 'nrevisions' => '$1 засвар',
 'nviews' => '$1 удаа үзсэн',
+'nimagelinks' => '$1 {{PLURAL:$1|хуудсанд|хуудсанд}} ашигласан',
 'specialpage-empty' => 'Энэ мэдүүлэгт үр дүн гарсангүй.',
 'lonelypages' => 'Өнчин хуудсууд',
 'lonelypagestext' => 'Энэ хуудсууд {{SITENAME}}-дахь бусад хуудсуудтай холбогдоогүй эсвэл заагаас хэтэрсэн байна.',
@@ -1850,6 +1873,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 Та логийн төрөл, хэрэглэгчийн нэр (оруулсан үгнийхээ том ба жижиг үсгийг яг зөв оруулахгүй бол болохгүй), эсвэл нөлөөлөгдсөн хуудсаа сонгож (мөн оруулсан үгнийхээ том ба жижиг үсгийг яг зөв оруулах ёстой) үзэгдэх зйүлсийг багасгаж болно.',
 'logempty' => 'Логт тохирох зүйл алга.',
 'log-title-wildcard' => 'Энэ текстээр эхлэсэн гарчигуудыг хайх',
+'showhideselectedlogentries' => 'Сонгосон логуудыг харагдуулах/нуух',
 
 # Special:AllPages
 'allpages' => 'Бүх хуудас',
@@ -1868,6 +1892,9 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'allpagesbadtitle' => 'Хуудасны нэр нь хүчингүй эсвэл интер-хэл буюу интер-викид байгаа нэр байна. Нэрэнд хэрэглэж болохгүй тэмдэгт агуулагдаж байж болзошгүй юм.',
 'allpages-bad-ns' => '{{SITENAME}} нь "$1"-г агуулаагүй байна.',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Саяханы хуудсыг харах',
+
 # Special:Categories
 'categories' => 'Ангиллууд',
 'categoriespagetext' => 'Дараах {{PLURAL:$1|ангилалд|ангиллуудад}} хуудас эсвэл медиа файл агуулагдаж байна.
@@ -1935,6 +1962,8 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'mailnologin' => 'илгээх хаяг байхгүй',
 'mailnologintext' => 'Та бусад хэрэглэгчдэд мэйл явуулахын тулд өөрийн [[Special:Preferences|хувийн тохируулгадаа]] мэйлээ оруулсан, мөн [[Special:UserLogin|нэвтэрсэн]] байх шаардлагатай.',
 'emailuser' => 'Энэ хэрэглэгчид мэйл илгээх',
+'emailuser-title-target' => 'Энэ {{GENDER:$1|хэрэглэгчийг}} и-мейлээр явуулах',
+'emailuser-title-notarget' => 'И-мейл хэрэглэгч',
 'emailpage' => 'Хэрэглэгчид мэйл илгээх',
 'emailpagetext' => 'Энэ хэрэглэгч рүү мэйл илгээхэд доорхийг бөглөнө.
 Таны өөрийн [[Special:Preferences|хэрэглэгчийн тохиргоонд]] оруулсан мэйл хаяг нь "Хэнээс" гэсэн хэсэгт гарах тул хүлээн авагч хариугаа тань руу шууд илгээх боломжтой.',
@@ -1946,6 +1975,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'noemailtext' => 'Энэ хэрэглэгч хүчинтэй и-мэйл хаяг тохируулаагүй байна.',
 'nowikiemailtitle' => 'Мэйл зөвшөөрөгдөхгүй',
 'nowikiemailtext' => 'Энэ хэрэглэгч бусад хэрэглэгчдээс мэйл хүлээж авахгүй гэсэн байна.',
+'emailtarget' => 'Хүлээн авагчийн хэрэглэгчийн нэрийг оруулах',
 'emailusername' => 'Хэрэглэгчийн нэр:',
 'emailusernamesubmit' => 'Явуулах',
 'email-legend' => '{{SITENAME}}-н өөр хэрэглэгч руу мэйл явуулах',
@@ -1973,8 +2003,10 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'watchlistanontext' => 'Та өөрийн хянах листийг өөрчлөх буюу үзэхийг хүсвэл $1 хэрэгтэй.',
 'watchnologin' => 'Нэвтрээгүй байна.',
 'watchnologintext' => 'Та өөрийн хянаж буй хуудаснуудын жагсаалтыг өөрчлөхийн тулд [[Special:UserLogin|нэвтэрсэн байх]] шаардлагатай.',
+'addwatch' => 'Хяналтын жагсаалтад нэмэх',
 'addedwatchtext' => "\"[[:\$1]]\" гэсэн хуудас таны [[Special:Watchlist|хянах жагсаалтанд]] нэмэгдлээ.
 Энэ хуудас эсвэл түүний хэлэлцүүлгийн хуудас засварлагдахад тэдгээр нь [[Special:RecentChanges|сүүлийн засваруудын жагсаалтад]] '''тодруулалттай''' харагдах болно.",
+'removewatch' => 'Хяналтын жагсаалтаас хасах',
 'removedwatchtext' => '"[[:$1]]" хуудас таны [[Special:Watchlist|хяналтын жагсаалтаас]] хасагдлаа.',
 'watch' => 'Хянах',
 'watchthispage' => 'Энэ хуудсыг хяна',
@@ -2201,6 +2233,7 @@ $UNWATCHURL
 'undelete-cleanup-error' => 'Хэрэглэгддэггүй архивийн "$1" файлыг устгахад алдаа гарлаа.',
 'undelete-missing-filearchive' => 'Файлын архивийн ID $1 нь мэдээллийн санд байхгүй тул сэргээх боломжгүй байна.
 Аль хэдийнээ сэргээгдсэн байж магадгүй.',
+'undelete-error' => 'Хуудсыг сэргээхэд алдаа гарлаа',
 'undelete-error-short' => 'Файлыг сэргээхэд алдаа гарлаа: $1',
 'undelete-error-long' => 'Дараах файлыг сэргээхэд алдаа гарлаа:
 
@@ -2318,6 +2351,7 @@ $1',
 'blocklist-addressblocks' => 'Ганц IP блокыг нуух',
 'blocklist-target' => 'Бай',
 'blocklist-expiry' => 'Цуцлагдана',
+'blocklist-by' => 'Админыг блоклох',
 'blocklist-params' => 'Блоклох параметрүүд',
 'blocklist-reason' => 'Шалтгаан',
 'ipblocklist-submit' => 'Хайх',
@@ -2364,6 +2398,7 @@ $1',
 'ipb-needreblock' => '$1 нь аль хэдийнээ түгжигдсэн байна.
 Та тохиргоог өөрчилмөөр байна уу?',
 'ipb-otherblocks-header' => ' Бусад {{PLURAL:$1|түгжээ|түгжээ}}',
+'unblock-hideuser' => 'Энэ хэрэглэгчийн нэрийг нуусан учир, блоклолоос гаргаж болохгүй.',
 'ipb_cant_unblock' => 'Алдаа: Түгжигдсэн ID $1 нь олдохгүй байна. Түгжээ нь аль хэдийн тайлагдсан байж болзошгүй.',
 'ipb_blocked_as_range' => 'Алдаа: $1 гэсэн IP хаяг нь шууд түгжигдээгүй бөгөөд тайлах боломжгүй байна.
 Харин энэ нь $2 хэсгийн хэсэг болж түгжигдсэн байгаа бөгөөд үүнийг тайлах боломжтой.',
@@ -2401,6 +2436,7 @@ $1',
 'unlockdbsuccesstext' => 'Мэдээллийн сангийн цоожийг тайллаа.',
 'lockfilenotwritable' => 'Мэдээллийн сан цоожлоход файл бичигдэхгүй болно. Мэдээллийн санг цоожлох болон тайлах нь файл хуулж болох вэб сервер тусламжтай хийгдэнэ.',
 'databasenotlocked' => 'Өгөгдлийн сан хаагдаагүй байна.',
+'lockedbyandtime' => '($2-ны $3 цагт {{GENDER:$1|$1}}-ын)',
 
 # Move page
 'move-page' => '$1-г зөөх',
@@ -2581,6 +2617,9 @@ $1',
 
 # JavaScriptTest
 'javascripttest' => 'JavaScript туршилт',
+'javascripttest-title' => '$1 теёт хийж байна',
+'javascripttest-pagetext-noframework' => 'Уг хуудсыг JavaScript тест хийхэд ашиглана.',
+'javascripttest-pagetext-unknownframework' => '"$1" мэдэхгүй тест фреймворк байна.',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Таны хэрэглэгчийн хуудас',
@@ -2643,6 +2682,7 @@ $1',
 'tooltip-compareselectedversions' => 'Энэ хуудасны сонгосон хоёр хувилбарын ялгааг харна уу.',
 'tooltip-watch' => 'Энэ хуудсыг өөрийн хянах жагсаалтандаа нэмэх',
 'tooltip-watchlistedit-normal-submit' => 'Гарчигийг устгах',
+'tooltip-watchlistedit-raw-submit' => 'Хянаж буй хуудсуудын жагсаалтыг шинэчлэх',
 'tooltip-recreate' => 'Арилгагдсан хуудсыг дахин эхлүүлэх',
 'tooltip-upload' => 'Аплоудоо эхлэх',
 'tooltip-rollback' => '"Буцаах" функцээр энэ хуудаст хийсэн засвар(ууд)ыг хамгийн сүүлийн засвар хийсэн хүний хувилбар руу ганц товшилтоор шилжүүлнэ',
@@ -2683,11 +2723,29 @@ $1',
 
 # Info page
 'pageinfo-title' => '"$1" - хуудасны мэдээлэл',
+'pageinfo-header-basic' => 'Үндсэн мэдээлэл',
 'pageinfo-header-edits' => 'Өөрчлөлтийн түүх',
+'pageinfo-header-restrictions' => 'Хуудасны хамгаалалт',
+'pageinfo-header-properties' => 'Хуудасны төлөв',
+'pageinfo-display-title' => 'Гарчиг харуулах',
+'pageinfo-default-sort' => 'Үндсэн ангилах түлхүүр',
+'pageinfo-length' => 'Хуудасны урт (байтаар)',
+'pageinfo-article-id' => 'Хуудасны ID',
 'pageinfo-views' => 'Харагдацуудын тоо',
 'pageinfo-watchers' => 'Хуудас хянагчдын тоо',
-'pageinfo-edits' => 'Засваруудын тоо',
+'pageinfo-subpages-name' => 'Үүний дэд хуудас',
+'pageinfo-firstuser' => 'Хуудас үүсгэсэн',
+'pageinfo-firsttime' => 'Хуудас үүсгэсэн огноо',
+'pageinfo-lastuser' => 'Сүүлд зассан хэрэглэгч',
+'pageinfo-lasttime' => 'Сүүлд зассан огноо',
+'pageinfo-edits' => 'Нийт засварын тоо',
 'pageinfo-authors' => 'Нийт зохиогчидын тоо',
+'pageinfo-recent-edits' => 'Сүүлд хийсэн нийт засварууд (сүүлийн $1 -т)',
+'pageinfo-hidden-categories' => '($1) {{PLURAL:$1|ангиллыг|ангилалуудыг}} нуусан',
+'pageinfo-toolboxlink' => 'Хуудасны мэдээлэл',
+'pageinfo-redirectsto-info' => 'мэдээлэл',
+'pageinfo-contentpage-yes' => 'Тийм',
+'pageinfo-protect-cascading-yes' => 'Тийм',
 
 # Patrolling
 'markaspatrolleddiff' => 'Хяналтанд авъя',
@@ -2757,6 +2815,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 цаг|$1 цаг}}',
 'days' => '{{PLURAL:$1|$1 өдөр|$1 өдөр}}',
 'ago' => '$1 -ын өмнө',
+'just-now' => 'дөнгөж сая',
 
 # Bad image list
 'bad_image_list' => 'Формат дараах байдлаар байна:
@@ -2917,6 +2976,7 @@ $1',
 'exif-specialinstructions' => 'Тусгай заавар',
 'exif-headline' => 'Толгой хэсэг',
 'exif-source' => 'Эх сурвалж',
+'exif-contact' => 'Холбогдох мэдээлэл',
 'exif-writer' => 'Бичсэн',
 'exif-languagecode' => 'Хэл',
 'exif-iimversion' => 'IIM хувилбар',
@@ -2936,6 +2996,9 @@ $1',
 'exif-copyrightowner' => 'Зохиогчийн эрх эзэмшигч',
 'exif-usageterms' => 'Хэрэглээний нөхцөл, шаардлага',
 'exif-originaldocumentid' => 'Ориг баримтын ID',
+'exif-pngfilecomment' => 'PNG файлын тэмдэглэгээ',
+'exif-giffilecomment' => 'GIF файлын тэмдэглэгээ',
+'exif-intellectualgenre' => 'Зүйлийн төрөл',
 
 # EXIF attributes
 'exif-compression-1' => 'Шахагдаагүй',
@@ -3058,6 +3121,11 @@ $1',
 'exif-gpsdestdistance-m' => 'Милл',
 'exif-gpsdestdistance-n' => 'бээр',
 
+'exif-gpsdop-excellent' => 'Маш сайн ($1)',
+'exif-gpsdop-good' => 'Сайн ($1)',
+'exif-gpsdop-moderate' => 'Дундаж ($1)',
+'exif-gpsdop-poor' => 'Муу ($1)',
+
 'exif-objectcycle-a' => 'Зөвхөн өглөө',
 'exif-objectcycle-p' => 'Зөвхөн орой',
 'exif-objectcycle-b' => 'Өдөр ч шөнө ч',
@@ -3071,6 +3139,7 @@ $1',
 'exif-dc-contributor' => 'Хувь нэмэр оруулагчид',
 'exif-dc-date' => 'Огноо',
 'exif-dc-relation' => 'Холбогдох мэдээллийн эх сурвалж',
+'exif-dc-rights' => 'Эрхүүд',
 'exif-dc-source' => 'Тулгууласан эх сурвалж',
 'exif-dc-type' => 'Эх сурвалжийн төрөл',
 
@@ -3084,6 +3153,7 @@ $1',
 'exif-iimcategory-edu' => 'Боловсрол',
 'exif-iimcategory-evn' => 'Байгал орчин',
 'exif-iimcategory-hth' => 'Эрүүл Мэнд',
+'exif-iimcategory-hum' => 'Хүний сонирхол',
 'exif-iimcategory-lif' => 'Амьдралын хэв маяг болон чөлөөт уран бүтээл',
 'exif-iimcategory-pol' => 'Улс төр',
 'exif-iimcategory-rel' => 'Шашин шүтлэг болон итгэл үнэмшил',
@@ -3340,6 +3410,8 @@ $5
 'compare-rev1' => 'Нэгдүгээр засвар',
 'compare-rev2' => 'Хоёрдугаар засвар',
 'compare-submit' => 'Харьцуулах',
+'compare-invalid-title' => 'Өгсөн гарчиг буруу байна.',
+'compare-title-not-exists' => 'Өгсөн гарчиг байхгүй байна.',
 
 # Database error messages
 'dberr-header' => 'Энэхүү викид асуудал үүсэв',
@@ -3368,11 +3440,34 @@ $5
 'sqlite-no-fts' => '$1 (бүх текстээрх хайлтыг дэмждэггүй)',
 
 # New logging system
+'logentry-delete-delete' => '$3 хуудсыг $1 устгасан',
+'logentry-delete-restore' => '$3 хуудсыг $1 сэтгээсэн',
 'revdelete-restricted' => 'системийн операторуудад тавигдсан хязгаарлалтууд',
 'revdelete-unrestricted' => 'системийн операторуудаас авч хаясан хязгаарлалтууд',
 'newuserlog-byemail' => 'мэйлээр явуулсан нууц үг',
 
+# Feedback
+'feedback-cancel' => 'Болих',
+'feedback-close' => 'Болсон',
+
 # Search suggestions
 'searchsuggest-search' => 'Хайх',
 
+# API errors
+'api-error-filename-tooshort' => 'Файлын нэр хэтэрхий урт байна.',
+'api-error-filetype-banned' => 'Ийм төрлийн файлыг хорьсон байна.',
+
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|секунд|секунд}}',
+'duration-minutes' => '$1 {{PLURAL:$1|минут|минут}}',
+'duration-hours' => '$1 {{PLURAL:$1|цаг|цаг}}',
+'duration-days' => '$1 {{PLURAL:$1|өдөр|өдөр}}',
+'duration-weeks' => '$1 {{PLURAL:$1|долоо хоног|долоо хоног}}',
+'duration-years' => '$1 {{PLURAL:$1|жил|жил}}',
+'duration-decades' => '$1 {{PLURAL:$1|арван|арван}}',
+'duration-centuries' => '$1 {{PLURAL:$1|зуун|зуун}}',
+'duration-millennia' => '$1 {{PLURAL:$1|мянган|мянган}}',
+
+# Unknown messages
+'svg-long-error' => '$1 : Буруу SVG файл',
 );
index 7ac4d9e..f67d234 100644 (file)
@@ -572,7 +572,7 @@ Pertanyaan: $2',
 'viewsource-title' => 'Lihat sumber bagi $1',
 'actionthrottled' => 'Tindakan didikitkan',
 'actionthrottledtext' => 'Untuk mencegah spam, anda dihadkan daripada melakukan tindakan ini berulang kali dalam ruang waktu yang singkat, dan anda telah melebihi had tersebut. Sila cuba lagi selepas beberapa minit.',
-'protectedpagetext' => 'Laman ini telah dikunci untuk menghalang penyuntingan.',
+'protectedpagetext' => 'Laman ini telah dikunci untuk melarang penyuntingan atau sebarang tindakan yang lain.',
 'viewsourcetext' => 'Anda boleh melihat dan menyalin sumber bagi laman ini:',
 'viewyourtext' => "Anda boleh melihat dan menyalin sumber '''suntingan anda''' kepada laman ini:",
 'protectedinterface' => 'Laman ini menyediakan teks antara muka bagi perisian ini, akan tetapi dikunci untuk menghalang penyalahgunaan.
@@ -1327,9 +1327,9 @@ Tindakan ini tidak boleh dibatalkan.',
 'prefs-emailconfirm-label' => 'Pengesahan e-mel:',
 'prefs-textboxsize' => 'Saiz tetingkap penyuntingan',
 'youremail' => 'E-mel:',
-'username' => 'Nama pengguna:',
-'uid' => 'ID pengguna:',
-'prefs-memberingroups' => 'Ahli {{PLURAL:$1|kumpulan|kumpulan}}:',
+'username' => '{{GENDER:$1|Nama pengguna}}:',
+'uid' => 'ID {{GENDER:$1|Pengguna}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Ahli}} {{PLURAL:$1|kumpulan|kumpulan-kumpulan}}:',
 'prefs-memberingroups-type' => '$1',
 'prefs-registration' => 'Waktu pendaftaran:',
 'prefs-registration-date-time' => '$1',
@@ -1361,9 +1361,9 @@ Tindakan ini tidak boleh dibatalkan.',
 'prefs-advancedrendering' => 'Pilihan lanjutan',
 'prefs-advancedsearchoptions' => 'Pilihan lanjutan',
 'prefs-advancedwatchlist' => 'Pilihan lanjutan',
-'prefs-displayrc' => 'Papar pilihan',
-'prefs-displaysearchoptions' => 'Papar pilihan',
-'prefs-displaywatchlist' => 'Papar pilihan',
+'prefs-displayrc' => 'Pilihan paparan',
+'prefs-displaysearchoptions' => 'Pilihan paparan',
+'prefs-displaywatchlist' => 'Pilihan paparan',
 'prefs-diffs' => 'Beza',
 
 # User preference: e-mail validation using jQuery
@@ -2233,38 +2233,44 @@ Jika anda mahu membuang laman tersebut daripada senarai pantau, klik \"Nyahpanta
 'enotif_mailer' => 'Sistem Pemberitahuan {{SITENAME}}',
 'enotif_reset' => 'Tandakan semua laman sebagai telah dikunjungi',
 'enotif_impersonal_salutation' => 'Pengguna {{SITENAME}}',
+'enotif_subject_deleted' => 'Halaman $1 di {{SITENAME}} telah dihapuskan oleh {{gender:$2|$2}}',
+'enotif_subject_created' => 'Halaman $1 di {{SITENAME}} telah diwujudkan oleh {{gender:$2|$2}}',
+'enotif_subject_moved' => 'Halaman $1 di {{SITENAME}} telah dipindahkan oleh {{gender:$2|$2}}',
+'enotif_subject_restored' => 'Halaman $1 di {{SITENAME}} telah dipulihkan oleh {{gender:$2|$2}}',
+'enotif_subject_changed' => 'Halaman $1 di {{SITENAME}} telah disunting oleh {{gender:$2|$2}}',
+'enotif_body_intro_deleted' => 'Halaman $1 di {{SITENAME}} telah dihapuskan oleh {{gender:$2|$2}} pada $PAGEEDITDATE, sila rujuk $3 untuk semakan terkini.',
+'enotif_body_intro_created' => 'Halaman $1 di {{SITENAME}} telah diwujudkan oleh {{gender:$2|$2}} pada $PAGEEDITDATE, sila rujuk $3 untuk semakan terkini.',
+'enotif_body_intro_moved' => 'Halaman $1 di {{SITENAME}} telah dipindahkan oleh {{gender:$2|$2}} pada $PAGEEDITDATE, sila rujuk $3 untuk semakan terkini.',
+'enotif_body_intro_restored' => 'Halaman $1 di {{SITENAME}} telah dipulihkan oleh {{gender:$2|$2}} pada $PAGEEDITDATE, sila rujuk $3 untuk semakan terkini.',
+'enotif_body_intro_changed' => 'Halaman $1 di {{SITENAME}} telah disunting oleh {{gender:$2|$2}} pada $PAGEEDITDATE, sila rujuk $3 untuk semakan terkini.',
 'enotif_lastvisited' => 'Lihat $1 untuk semua perubahan sejak kunjungan terakhir anda.',
 'enotif_lastdiff' => 'Rujuk $1 untuk melihat perubahan ini.',
 'enotif_anon_editor' => 'pengguna tanpa nama $1',
 'enotif_body' => '$WATCHINGUSERNAME,
 
-
-Laman $PAGETITLE di {{SITENAME}} telah $CHANGEDORCREATED pada $PAGEEDITDATE oleh $PAGEEDITOR; sila lihat $PAGETITLE_URL untuk semakan terkini.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
 
 Ringkasan penyunting: $PAGESUMMARY $PAGEMINOREDIT
 
-Hubungi penyunting tersebut:
+Hubungi penyunting:
 mel: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-Tiada pemberitahuan lain akan dikirim berkaitan perubahan selanjutnya melainkan anda mengunjungi laman tersebut.
-Anda juga boleh menetapkan semula penanda pemberitahuan bagi semua laman dalam senarai pantau anda.
+Tiada lagi pemberitahuan lanjut sekiranya terdapat suntingan selanjutnya melainkan anda mengunjungi halaman berkenaan. Anda juga boleh menetapkan semula tanda-tanda pemberitahuan untuk kesemua halaman dalam senarai pantau anda.
 
-         Sistem pemberitahuan {{SITENAME}} anda yang ramah mesra
+                        Sistem pemberitahuan {{SITENAME}} yang mesra
 
 --
-Untuk mengubah tetapan pemberitahuan e-mel anda, lawati
+Untuk mengubah tetapan pemberitahuan melalui e-mel anda, kunjungi
 {{canonicalurl:{{#special:Preferences}}}}
 
-Untuk mengubah tetapan senarai pantau anda, lawati
+Untuk mengubah tetapan senarai pantau anda, kunjungi
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
-Untuk menghapuskan laman ini dari senarai pantau anda, lawati
+Untuk menggugurkan halaman ini daripada senarai pantau anda, kunjungi
 $UNWATCHURL
 
-Maklum balas dan bantuan:
+Maklum balas dan bantuan selanjutnya:
 {{canonicalurl:{{MediaWiki:Helppage}}}}',
 
 # Delete
@@ -2447,7 +2453,7 @@ $1',
 'blanknamespace' => '(Utama)',
 
 # Contributions
-'contributions' => 'Sumbangan pengguna',
+'contributions' => 'Sumbangan {{GENDER:$1|pengguna}}',
 'contributions-title' => 'Sumbangan oleh $1',
 'mycontris' => 'Sumbangan',
 'contribsub2' => 'Oleh $1 ($2)',
@@ -3089,6 +3095,7 @@ Dengan menjalankannya, komputer anda mungkin akan terjejas.",
 'hours' => '$1 jam',
 'days' => '$1 hari',
 'ago' => '$1 yang lalu',
+'just-now' => 'tadi',
 
 # Bad image list
 'bad_image_list' => 'Berikut adalah format yang digunakan:
@@ -3922,4 +3929,6 @@ Ataupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dic
 'duration-centuries' => '$1 abad',
 'duration-millennia' => '$1 alaf',
 
+# Unknown messages
+'svg-long-error' => 'Fail SVG tidak sah: $1',
 );
index 6955572..2463081 100644 (file)
@@ -2841,7 +2841,7 @@ Kull azzjonijiet ta' importazzjoni tal-transwiki jiġu reġistrati fil-[[Special
 'tooltip-ca-nstab-project' => 'Uri l-paġna tal-proġett',
 'tooltip-ca-nstab-image' => 'Uri l-paġna tal-fajl',
 'tooltip-ca-nstab-mediawiki' => 'Uri l-messaġġ tas-sistema',
-'tooltip-ca-nstab-template' => 'Uri t-template',
+'tooltip-ca-nstab-template' => 'Ara l-mudell',
 'tooltip-ca-nstab-help' => 'Uri l-paġna tal-għajnuna',
 'tooltip-ca-nstab-category' => 'Uri l-paġna kategorika',
 'tooltip-minoredit' => 'Immarka din bħala modifika minuri',
@@ -2907,11 +2907,41 @@ Kull azzjonijiet ta' importazzjoni tal-transwiki jiġu reġistrati fil-[[Special
 
 # Info page
 'pageinfo-title' => 'Informazzjoni għal "$1"',
-'pageinfo-header-edits' => 'Modifiki',
+'pageinfo-not-current' => 'Jiddispjaċina, imma huwa impossibbli li tingħata informazzjoni fuq reviżjonijiet qodma.',
+'pageinfo-header-basic' => 'Informazzjoni bażika',
+'pageinfo-header-edits' => 'Kronoloġija tal-modifiki',
+'pageinfo-header-restrictions' => 'Protezzjoni tal-paġna',
+'pageinfo-display-title' => 'Titlu muri',
+'pageinfo-length' => "Daqs tal-paġna (f'bytes)",
+'pageinfo-article-id' => 'ID tal-paġna',
+'pageinfo-language' => 'Lingwa tal-kontenut tal-paġna',
+'pageinfo-robot-policy' => 'Stat għall-muturi tat-tfittxija',
+'pageinfo-robot-index' => 'Indiċjabbli',
+'pageinfo-robot-noindex' => 'Mhux indiċjabbli',
 'pageinfo-views' => "Numru ta' viżti",
-'pageinfo-watchers' => "Numru ta' osservaturi",
-'pageinfo-edits' => "Numru ta' modifiki",
-'pageinfo-authors' => "Numru ta' awturi distinti",
+'pageinfo-watchers' => "Numru ta' osservaturi tal-paġna",
+'pageinfo-redirects-name' => 'Rindirizzi lejn din il-paġna',
+'pageinfo-subpages-name' => "Sottopaġni ta' din il-paġna",
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|rindirizz|rindirizzi}}; $3 {{PLURAL:$3|mhumiex rindirizzi}})',
+'pageinfo-firstuser' => 'Kreatur tal-paġna',
+'pageinfo-firsttime' => 'Data tal-ħolqien tal-paġna',
+'pageinfo-lastuser' => 'L-aħħar editur',
+'pageinfo-lasttime' => 'Data tal-aħħar modifika',
+'pageinfo-edits' => "Numru totali ta' modifiki",
+'pageinfo-authors' => "Numru totali ta' awturi distinti",
+'pageinfo-recent-edits' => "Numru ta' modifiki riċenti (f'dawn l-aħħar $1)",
+'pageinfo-recent-authors' => "Numru riċenti ta' awturi distinti",
+'pageinfo-magic-words' => '{{PLURAL:$1|Kelma maġika|Kliem maġiku}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Kategorija|Kategoriji}} moħbija ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Mudell inkluż|Mudelli inklużi}} ($1)',
+'pageinfo-toolboxlink' => 'Informazzjoni fuq il-paġna',
+'pageinfo-redirectsto' => 'Tirrindirizza lejn',
+'pageinfo-redirectsto-info' => 'info',
+'pageinfo-contentpage' => "Magħduda bħala paġna ta' kontenut",
+'pageinfo-contentpage-yes' => 'Iva',
+'pageinfo-protect-cascading' => 'Protezzjoni li tintiret minn hawnhekk',
+'pageinfo-protect-cascading-yes' => 'Iva',
+'pageinfo-protect-cascading-from' => 'Protezzjoni li tintiret minn',
 
 # Skin names
 'skinname-standard' => 'Classic',
@@ -2933,6 +2963,8 @@ Kull azzjonijiet ta' importazzjoni tal-transwiki jiġu reġistrati fil-[[Special
 'markedaspatrollederror' => 'Ma jistax jiġi markat bħalha verifikat',
 'markedaspatrollederrortext' => 'Int trid tispeċifika r-reviżjoni li trida tkun verifikata.',
 'markedaspatrollederror-noautopatrol' => "Int m'għandhekx id-drittijiet neċessarji biex timmarka l-modifiki tiegħek bħala verifikati.",
+'markedaspatrollednotify' => 'Din il-bidla fuq $1 ġiet immarkata bħala verifikata.',
+'markedaspatrollederrornotify' => 'L-ivverifikar tal-modifika falla.',
 
 # Patrol log
 'patrol-log-page' => 'Modifiki verifikati',
index 9ecdd4b..0e97218 100644 (file)
@@ -18,8 +18,8 @@ $datePreferences = array(
 $defaultDateFormat = 'nan';
 $dateFormats = array(
        'nan time' => 'H:i',
-       'nan date' => 'Y-"nî" n-"goe̍h" j-"jt" (l)',
-       'nan both' => 'Y-"nî" n-"goe̍h" j-"jt" (D) H:i',
+       'nan date' => 'Y-"nî" n-"goe̍h" j-"jt" (l)',
+       'nan both' => 'Y-"nî" n-"goe̍h" j-"jt" (D) H:i',
 );
 
 $messages = array(
index 67700c4..e424efc 100644 (file)
@@ -1536,9 +1536,9 @@ Deze handeling kan niet ongedaan gemaakt worden.',
 'prefs-emailconfirm-label' => 'E-mailbevestiging:',
 'prefs-textboxsize' => 'Afmetingen bewerkingsscherm',
 'youremail' => 'Uw e-mailadres:',
-'username' => 'Gebruikersnaam:',
-'uid' => 'Gebruikersnummer:',
-'prefs-memberingroups' => 'Lid van {{PLURAL:$1|groep|groepen}}:',
+'username' => '{{GENDER:$1|Gebruikersnaam}}:',
+'uid' => '{{GENDER:$1|Gebruikersnummer}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Lid}} van {{PLURAL:$1|groep|groepen}}:',
 'prefs-registration' => 'Registratiedatum:',
 'yourrealname' => 'Uw echte naam:',
 'yourlanguage' => 'Taal:',
@@ -3251,7 +3251,7 @@ Meestal wordt dit door een externe verwijzing op een zwarte lijst veroorzaakt.',
 'pageinfo-default-sort' => 'Standaard sorteerwijze',
 'pageinfo-length' => 'Paginalengte (in bytes)',
 'pageinfo-article-id' => 'Paginanummer',
-'pageinfo-language' => 'Pagina-inhoudstaal',
+'pageinfo-language' => 'Taal voor de pagina',
 'pageinfo-robot-policy' => 'Status voor de zoekmachine',
 'pageinfo-robot-index' => 'Indexeerbaar',
 'pageinfo-robot-noindex' => 'Niet indexeerbaar',
@@ -3995,7 +3995,7 @@ U kunt ook [[Special:EditWatchlist|het standaard bewerkingsscherm gebruiken]].',
 'version-license' => 'Licentie',
 'version-poweredby-credits' => "Deze wiki wordt aangedreven door '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'anderen',
-'version-credits-summary' => 'We zouden graag de volgende personen erkennen voor hun bijdrage aan [[Special:Version|MediaWiki]].',
+'version-credits-summary' => 'We erkennen graag de volgende personen voor hun bijdrage aan [[Special:Version|MediaWiki]].',
 'version-license-info' => 'MediaWiki is vrije software; u kunt MediaWiki verspreiden en/of aanpassen onder de voorwaarden van de GNU General Public License zoals gepubliceerd door de Free Software Foundation; ofwel versie 2 van de Licentie, of - naar uw wens - enige latere versie.
 
 MediaWiki wordt verspreid in de hoop dat het nuttig is, maar ZONDER ENIGE GARANTIE; zonder zelfs de impliciete garantie van VERKOOPBAARHEID of GESCHIKTHEID VOOR ENIG DOEL IN HET BIJZONDER. Zie de GNU General Public License voor meer informatie.
index cc61f0b..0f8a436 100644 (file)
@@ -306,7 +306,7 @@ $messages = array(
 'categorypage' => 'Категорийы фарс фен',
 'viewtalkpage' => 'Тæрхон фен',
 'otherlanguages' => 'Æндæр æвзæгтыл',
-'redirectedfrom' => '(Ацы уацæй æрвыст: «$1»)',
+'redirectedfrom' => '({{grammar:ablative|$1}} ӕрвыст)',
 'redirectpagesub' => 'Рарвысты фарс',
 'lastmodifiedat' => 'Ацы фарс фæстаг хатт ивд æрцыд: $1, $2.',
 'viewcount' => 'Ацы фарс домд æрцыд {{PLURAL:$1|иу хатт|$1 хатты}}.',
@@ -329,11 +329,11 @@ $1',
 'copyright' => 'Лицензи: $1.',
 'copyrightpage' => '{{ns:project}}:Авторы бартæ',
 'currentevents' => 'Ног хабæрттæ',
-'currentevents-url' => 'Project:Xabar',
-'disclaimers' => 'Бæрн нæ исыны тыххæй',
-'disclaimerpage' => 'Project:Ð\9dæ Ð±Ã¦Ñ\80н Ð¸Ñ\81Ñ\8bнÑ\8b Ñ\82Ñ\8bÑ\85Ñ\85æй',
+'currentevents-url' => 'Project:Ног хабæрттæ',
+'disclaimers' => 'Бæрн',
+'disclaimerpage' => 'Project:Ð\91æÑ\80н',
 'edithelp' => 'Ивынæн æххуыс',
-'edithelppage' => 'Help:Ивд',
+'edithelppage' => 'Help:Ивын',
 'helppage' => 'Help:Мидис',
 'mainpage' => 'Сæйраг фарс',
 'mainpage-description' => 'Сæйраг фарс',
@@ -351,9 +351,9 @@ $1',
 'versionrequiredtext' => 'Хъæуы MediaWiki-йы $1 фæлтæр, цæмæй ацы фарсæй архайæн уа.
 Кæс [[Special:Version|фæлтæры фарс]].',
 
-'ok' => 'Ð\90Ñ\84Ñ\82æ Ñ\83æд!',
+'ok' => 'ХоÑ\80з',
 'pagetitle' => '$1 — {{SITENAME}}',
-'retrievedfrom' => 'РаÑ\82æдзæн: Â«$1»',
+'retrievedfrom' => 'Ð\98Ñ\81Ñ\82 Ã¦Ñ\80Ñ\86Ñ\8bд {{grammar:ablative|"$1"}}',
 'youhavenewmessages' => 'Райстай $1 ($2).',
 'newmessageslink' => 'ног фыстæгтæ',
 'newmessagesdifflink' => 'фæстаг ивд',
@@ -367,32 +367,32 @@ $1',
 'viewsourceold' => 'Код кæсын',
 'editlink' => 'ивын',
 'viewsourcelink' => 'Код кæсын',
-'editsectionhint' => 'Ð\98в Ñ\85ай: $1',
+'editsectionhint' => 'Хай Ð¸Ð²Ñ\8bн: $1',
 'toc' => 'Сæртæ',
 'showtoc' => 'равдисын',
 'hidetoc' => 'бамбæхсын',
 'collapsible-collapse' => 'Стухын',
-'collapsible-expand' => 'Райтынг',
-'thisisdeleted' => 'Фенын æви рацаразын $1?',
+'collapsible-expand' => 'Райтынг кæнын',
+'thisisdeleted' => '$1 фенын хъæуы, æви рацаразын ?',
 'viewdeleted' => '$1 фенын дæ фæнды?',
 'restorelink' => '{{PLURAL:$1|иу хафт ивд|$1 хафт ивды}}',
 'feedlinks' => 'Лæсæн:',
 'feed-invalid' => 'Рæдыд рафыссæн каналы хуыз.',
 'feed-unavailable' => 'Синдикацийы лæсæнтæм бавналæн нæй',
-'site-rss-feed' => '$1 — RSS-уадздзаг',
-'site-atom-feed' => '$1 — Atom-уадздзаг',
-'page-rss-feed' => '$1 — RSS-лæсæн',
-'page-atom-feed' => '$1 — Atom-лæсæн',
-'red-link-title' => '$1 (фыст нæу)',
+'site-rss-feed' => '{{grammar:genitive|$1}} RSS лæсæн',
+'site-atom-feed' => '{{grammar:genitive|$1}} Atom лæсæн',
+'page-rss-feed' => '"{{grammar:genitive|$1}}" RSS лæсæн',
+'page-atom-feed' => '"{{grammar:genitive|$1}}" Atom лæсæн',
+'red-link-title' => '$1 (фарс нæй)',
 'sort-descending' => 'Радæвæрын цъускæнынмæ',
 'sort-ascending' => 'Радæвæрын фылдæркæнынмæ',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Уац',
 'nstab-user' => 'Архайæджы фарс',
-'nstab-media' => 'Мультимеди',
+'nstab-media' => 'Медиа фарс',
 'nstab-special' => 'Сæрмагонд фарс',
-'nstab-project' => 'Ð\9fÑ\80оекÑ\82Ñ\8b Ñ\82Ñ\8bÑ\85Ñ\85æй',
+'nstab-project' => 'Ð\9fÑ\80оекÑ\82Ñ\8b Ñ\84аÑ\80Ñ\81',
 'nstab-image' => 'Файл',
 'nstab-mediawiki' => 'Фыстæг',
 'nstab-template' => 'Хуызæг',
@@ -746,7 +746,7 @@ $2
 'loginreqtitle' => 'Хъæуы бахизын',
 'loginreqlink' => 'бахизын',
 'loginreqpagetext' => 'Дæуæн хъæуы $1 цæмæй æндæр фæрстæ кæсай.',
-'accmailtitle' => 'Пароль рарвыст у.',
+'accmailtitle' => 'Пароль æрвыст æрцыд.',
 'accmailtext' => "[[User talk:$1|{{grammar:dative|$1}}]] халæй ист пароль æрвыст æрцыд $2-мæ.
 
 Ацы ног аккаунты пароль гæнæн ис фæивын ''[[Special:ChangePassword|пароль ивæн варсыл]]'' бахизыны фæстæ.",
@@ -764,13 +764,14 @@ $2
 'noarticletext-nopermission' => 'Ацы фарсы нырмæ текст нæй.
 Дæ бон у [[Special:Search/{{PAGENAME}}|бацагурын ацы фарсы ном]] æндæр фæрсты, кæнæ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} агурын йæ кой логты]</span>, фæлæ дын йæ саразыны бар нæй.',
 'userpage-userdoesnotexist-view' => 'Архайæджы аккаунт "$1" регистрацигонд нæу.',
-'note' => "'''Бафиппай:'''",
+'updated' => '(Ноггонд)',
+'note' => "'''Фиппаинаг:'''",
 'previewnote' => "'''Зон æй, æмæ ай у æрмæстдæр разбакаст.'''
 Дæ ивдтытæ нырмæ æвæрд не рцыдысты!",
 'continue-editing' => 'Ивыны бынатмæ ацæуын',
 'editing' => 'Ивд цæуы $1',
 'creating' => 'Конд цæуы $1',
-'editingsection' => 'Ивыс $1 (фарсы хай)',
+'editingsection' => 'Ивд цæуы $1 (хай)',
 'editingcomment' => 'Ивд цæуы $1 (ног хай)',
 'editconflict' => 'Ивыны конфликт: $1',
 'yourtext' => 'Дæ текст',
@@ -779,7 +780,7 @@ $2
 'template-protected' => '(æхгæд)',
 'template-semiprotected' => '(æрдæг-æхгæд)',
 'hiddencategories' => 'Ацы фарс у {{PLURAL:$1|1 æмбæхст категорийы|$1 æмбæхст категориты}} уæнг:',
-'permissionserrors' => 'Бацæуæны рæдыдтæ',
+'permissionserrors' => 'Бавналыны рæдыдтытæ',
 'permissionserrorstext-withaction' => 'Нæй дын бар $2 {{PLURAL:$1|ай|адон}} тыххæй:',
 'recreate-moveddeleted-warn' => "'''Сындæг: Ды нæуæгæй кæныс фарс, кæцы раздæр уыдис хафт.'''
 
@@ -787,9 +788,15 @@ $2
 Хафын æмæ номивыны логтæ бындæр сты фыст.",
 'moveddeleted-notice' => 'Ацы фарс хафт уыдис.
 Уый тыххæй бындæр ис хафын æмæ номивыны логтæй фыст.',
-'edit-conflict' => 'Ð\98ввдзинæдты конфликт.',
+'edit-conflict' => 'Ð\98вдÑ\82Ñ\8bты конфликт.',
 'edit-already-exists' => 'Ног фарс скæнæн нæй. Ахæм фарс ис.',
 
+# Content models
+'content-model-wikitext' => 'викитекст',
+'content-model-text' => 'хуымæтæг текст',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
+
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Сындæг: ''' Хуызæджы бавæрд бæрц æгæр стыр у.
 Кæцыдæр хуызæгтæ нæ бавæд уыдзысты.",
@@ -832,7 +839,8 @@ $2
 'rev-deleted-event' => '(фыст хафт у)',
 'rev-delundel' => 'равдисын/айсын',
 'rev-showdeleted' => 'равдисын',
-'revisiondelete' => 'Схафын/рацаразын фарсы фæлтæртæ',
+'revisiondelete' => 'Фæлтæртæ схафын/рацаразын',
+'revdelete-radio-same' => '(ма баив)',
 'revdelete-radio-set' => 'О',
 'revdelete-radio-unset' => 'Нæ',
 'revdel-restore' => 'ивын зынæн',
@@ -840,7 +848,7 @@ $2
 'revdel-restore-visible' => 'зынгæ ивдтытæ',
 'pagehist' => 'Фарсы истори',
 'revdelete-reasonotherlist' => 'Æндæр аххос',
-'revdelete-offender' => 'Фарсы фæлтæры автор:',
+'revdelete-offender' => 'Фæлтæры автор:',
 
 # History merging
 'mergehistory-reason' => 'Аххос:',
@@ -882,7 +890,7 @@ $2
 'searchprofile-advanced-tooltip' => 'Агурын равзаргæ номдæтты',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 дзырд|$2 дзырды}})',
 'search-result-category-size' => '{{PLURAL:$1|1 уæнг|$1 уæнгы}} ({{PLURAL:$2|1 дæлкатегори|$2 дæлкатегорийы}}, {{PLURAL:$3|1 файл|$3 файлы}})',
-'search-redirect' => '(рарвыст ардыгæй: $1)',
+'search-redirect' => '({{grammar:ablative|$1}} æрвыст)',
 'search-section' => '(хай $1)',
 'search-suggest' => 'Кæд мыййаг агурыс: $1',
 'search-interwiki-caption' => 'Æфсымæрон проекттæ',
@@ -895,7 +903,7 @@ $2
 'search-nonefound' => 'Ницы разындис домæнæн',
 'powersearch' => 'Сæрмагонд агуырд',
 'powersearch-legend' => 'Сæрмагонд агуырд',
-'powersearch-redir' => 'Рарвыстытæ дæр æвдис',
+'powersearch-redir' => 'Рарвыстытæ æвдисын',
 'powersearch-field' => 'Агуырд',
 'powersearch-toggleall' => 'Иууылдæр',
 
@@ -907,6 +915,7 @@ $2
 'qbsettings-floatingleft' => 'Рахизырдыгæй ленккæнгæ',
 
 # Preferences page
+'preferences' => 'Уагæвæрдтæ',
 'mypreferences' => 'Уагæвæрдтæ',
 'prefs-edits' => 'Ивдтыты нымæц:',
 'prefsnologin' => 'Системæйæн дæхи нæ бацамыдтай',
@@ -1305,7 +1314,7 @@ $3',
 'blanknamespace' => '(Сæйраг)',
 
 # Contributions
-'contributions' => 'Архайæджы бавæрд',
+'contributions' => '{{GENDER:$1|Архайæджы}} бавæрд',
 'contributions-title' => 'Архайæджы бавæрд: $1',
 'mycontris' => 'Бавæрд',
 'contribsub2' => 'Архайæг: $1 ($2)',
@@ -1329,13 +1338,13 @@ $3',
 'whatlinkshere-page' => 'Фарс:',
 'linkshere' => "Ацы фæрстæ æрвитынц '''{{grammar:allative|[[:$1]]}}''':",
 'nolinkshere' => "Никæцы фарс æрвиты ардæм: '''[[:$1]]'''.",
-'isredirect' => 'рарвысты фарс',
+'isredirect' => 'æрвитæн фарс',
 'istemplate' => 'æфтыдæй',
 'isimage' => 'файлмæ æрвитæн',
 'whatlinkshere-prev' => '{{PLURAL:$1|раздæры|раздæры $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|иннæ|иннæ $1}}',
 'whatlinkshere-links' => '← æрвитæнтæ',
-'whatlinkshere-hideredirs' => '$1 рарвыстытæ',
+'whatlinkshere-hideredirs' => 'Рарвыстытæ $1',
 'whatlinkshere-hidetrans' => '$1 æфтыдтытæ',
 'whatlinkshere-hidelinks' => '$1 æрвитæнтæ',
 'whatlinkshere-hideimages' => 'Файлмæ æрвитæнтæ $1',
@@ -1559,7 +1568,7 @@ $3',
 'table_pager_last' => 'Фæстаг фарс',
 
 # Auto-summaries
-'autoredircomment' => 'РаÑ\80вÑ\8bÑ\81Ñ\82 [[$1|{{grammar:allative|$1}}]]',
+'autoredircomment' => 'ФаÑ\80Ñ\81 Ã¦Ñ\80вÑ\8bÑ\81Ñ\82 Ã¦Ñ\80Ñ\86Ñ\8bд [[$1|{{grammar:allative|$1}}]]',
 'autosumm-new' => 'Ног фарс, йæ код райдайы афтæ: «$1»',
 
 # Size units
@@ -1569,15 +1578,15 @@ $3',
 'size-gigabytes' => '$1 ГБ',
 
 # Live preview
-'livepreview-loading' => 'Ã\86вгæнгæ...',
-'livepreview-ready' => 'Ã\86вгæнгæ...Цæттæ!',
+'livepreview-loading' => 'Ã\86вгæд Ñ\86æÑ\83Ñ\8b...',
+'livepreview-ready' => 'Ã\86вгæд Ñ\86æÑ\83Ñ\8b...Цæттæ!',
 'livepreview-failed' => 'Тагъд разæркастæй пайда кæнæн нæй. Хуымæтæджы разæркастæй пайда кæн.',
 
 # Watchlist editor
 'watchlistedit-noitems' => 'Дæ цæстдард афтид у.',
 'watchlistedit-normal-title' => 'Цæстдард ивæн',
 'watchlistedit-normal-submit' => 'Схафын фыстытæ',
-'watchlistedit-raw-titles' => 'ФæÑ\80Ñ\81тæ:',
+'watchlistedit-raw-titles' => 'СæÑ\80тæ:',
 'watchlistedit-raw-submit' => 'Номхыгъд бафснай',
 
 # Watchlist editing tools
@@ -1597,6 +1606,7 @@ $3',
 'version-other' => 'Æндæр',
 'version-version' => '(Фæлтæр $1)',
 'version-license' => 'Лицензи',
+'version-poweredby-credits' => "Ацы викийæн тых радта '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'æндæртæ',
 'version-software-version' => 'Верси',
 
index 750bc43..fed0779 100644 (file)
@@ -19,6 +19,7 @@
  * @author Sukh
  * @author Surinder.wadhawan
  * @author TariButtar
+ * @author VibhasKS
  * @author Xqt
  * @author Ævar Arnfjörð Bjarmason
  * @author לערי ריינהארט
@@ -141,11 +142,11 @@ $messages = array(
 'tog-numberheadings' => 'ਆਟੋ-ਨੰਬਰ ਹੈਡਿੰਗ',
 'tog-showtoolbar' => 'ਐਡਿਟ ਟੂਲਬਾਰ ਵੇਖੋ (JavaScript)',
 'tog-editondblclick' => 'ਦੂਹਰੇ ਕਲਿੱਕ ਨਾਲ਼ ਸਫ਼ੇ ਸੋਧੋ (ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
-'tog-editsection' => '[ਸà©\8bਧà©\8b] ਲਿੰਕਾਂ ਜ਼ਰੀਏ ਸੈਕਸ਼ਨ ਸੋਧ ਚਾਲੂ ਕਰੋ',
+'tog-editsection' => '[ਸੰਪਾਦਨ] ਲਿੰਕਾਂ ਜ਼ਰੀਏ ਸੈਕਸ਼ਨ ਸੋਧ ਚਾਲੂ ਕਰੋ',
 'tog-editsectiononrightclick' => 'ਸੈਕਸ਼ਨ ਸਿਰਲੇਖਾਂ ਤੇ ਸੱਜੀ ਕਲਿੱਕ ਦੁਆਰਾ ਸੋਧ ਯੋਗ ਕਰੋ (ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
 'tog-showtoc' => 'ਟੇਬਲ ਆਫ਼ ਕੰਨਟੈੱਟ ਵੇਖਾਓ (for pages with more than 3 headings)',
 'tog-rememberpassword' => 'ਇਸ ਬਰਾਊਜ਼ਰ ਉੱਤੇ ਮੇਰਾ ਲਾਗਇਨ ਯਾਦ ਰੱਖੋ ($1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ)',
-'tog-watchcreations' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¬à¨£à¨¾à¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80à¨\86à¨\82 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-watchcreations' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¬à¨£à¨¾à¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80à¨\86à¨\82 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
 'tog-watchdefault' => 'ਮੇਰੇ ਵੱਲੋਂ ਸੋਧੇ ਗਏ ਸਫ਼ੇ ਅਤੇ ਫ਼ਾਈਲਾਂ ਮੇਰੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਪਾਓ',
 'tog-watchmoves' => 'ਮੇਰੇ ਵੱਲੋਂ ਬਦਲੇ ਸਿਰਲੇਖਾਂ ਵਾਲ਼ੇ ਸਫ਼ੇ ਅਤੇ ਫ਼ਾਈਲਾਂ ਮੇਰੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਪਾਓ',
 'tog-watchdeletion' => 'ਮੇਰੇ ਵਲੋਂ ਮਿਟਾਏ ਗਏ ਸਫ਼ੇ ਅਤੇ ਫ਼ਾਈਲਾਂ ਮੇਰੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਪਾਓ',
@@ -210,7 +211,7 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'fri' => 'ਸ਼ੁੱਕਰ',
 'sat' => 'ਸ਼ਨੀ',
 'january' => 'ਜਨਵਰੀ',
-'february' => 'ਫ਼ਰਵਰà©\80',
+'february' => 'ਫਰਵਰੀ',
 'march' => 'ਮਾਰਚ',
 'april' => 'ਅਪਰੈਲ',
 'may_long' => 'ਮਈ',
@@ -249,20 +250,20 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|ਸ਼੍ਰੇਣੀ|ਸ਼੍ਰੇਣੀਆਂ}}',
 'category_header' => 'ਸ਼੍ਰੇਣੀ "$1" ਵਿੱਚ ਲੇਖ',
-'subcategories' => 'ਸਬ-à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ',
-'category-media-header' => 'à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 "$1" à¨µà¨¿ਚ ਮੀਡੀਆ',
-'category-empty' => "''à¨\87ਸ à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨µà¨¿à¨\9a à¨\87ਸ à¨µà©\87ਲ਼à©\87 à¨\95à©\8bà¨\88 à¨µà©\80 à¨¸à¨«à¨¼ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
-'hidden-categories' => '{{PLURAL:$1|ਲà©\81à¨\95ਵà©\80à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80|ਲà©\81à¨\95ਵà©\80à¨\82à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ}}',
+'subcategories' => 'à¨\89ਪਸ਼à©\8dਰà©\87ਣੀਆਂ',
+'category-media-header' => 'ਸ਼à©\8dਰà©\87ਣà©\80 "$1" à¨µà¨¿à©±ਚ ਮੀਡੀਆ',
+'category-empty' => "''à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a à¨\87ਸ à¨µà©\87ਲà©\87 à¨\95à©\8bà¨\88 à¨µà©\80 à¨ªà©°à¨¨ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
+'hidden-categories' => '{{PLURAL:$1|ਲà©\81à¨\95ਵà©\80à¨\82 à¨¸à¨¼à©\8dਰà©\87ਣà©\80|ਲà©\81à¨\95ਵà©\80à¨\82à¨\86à¨\82 à¨¸à¨¼à©\8dਰà©\87ਣੀਆਂ}}',
 'hidden-category-category' => 'ਲੁਕੀਆਂ ਕੈਟੇਗਰੀਆਂ',
-'category-subcat-count' => 'à¨\87ਸ à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨µà¨¿à¨\9a, à¨\95à©\81ੱਲ $2 à¨µà¨¿à¨\9aà©\8bà¨\82, {{PLURAL:$2|ਸਿਰਫ਼ à¨\87ਹ à¨¸à¨¬-à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨¹à©\88|à¨\87ਹ {{PLURAL:$1|ਸਬ-à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨¹à©\88|$1 à¨¸à¨¬-à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ ਹਨ}}}}।',
+'category-subcat-count' => 'à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a, à¨\95à©\81ੱਲ $2 à¨µà¨¿à©±à¨\9aà©\8bà¨\82, {{PLURAL:$2|ਸਿਰਫ਼ à¨\87ਹ à¨\89ਪਸ਼à©\8dਰà©\87ਣà©\80 à¨¹à©\88|à¨\87ਹ {{PLURAL:$1|à¨\89ਪਸ਼à©\8dਰà©\87ਣà©\80 à¨¹à©\88|$1 à¨\89ਪਸ਼à©\8dਰà©\87ਣੀਆਂ ਹਨ}}}}।',
 'category-subcat-count-limited' => 'ਇਸ ਕੈਟੇਗਰੀ ਵਿਚ {{PLURAL:$1|ਸਬ-ਕੈਟੇਗਰੀ ਹੈ|$1 ਸਬ-ਕੈਟੇਗਰੀਆਂ ਹਨ}}।',
 'category-article-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਸਿਰਫ਼ ਇਹ ਪੰਨਾ ਹੈ।| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ, ਕੁੱਲ $2 ਵਿੱਚੋਂ, ਇਹ {{PLURAL:$1|ਪੰਨਾ ਹੈ|$1 ਪੰਨੇ ਹਨ}}}}।',
 'category-article-count-limited' => 'ਮੌਜੂਦਾ ਕੈਟੇਗਰੀ ਵਿਚ ਇਹ {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ ਹਨ}}।',
-'category-file-count' => '{{PLURAL:$2|à¨\87ਸ à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨µà¨¿à¨\9a à¨¸à¨¿à¨°à¨«à¨¼ à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ à¨¹à©\88|à¨\87ਸ à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨µà¨¿ਚ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}}}।',
+'category-file-count' => '{{PLURAL:$2|à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a à¨¸à¨¿à¨°à¨«à¨¼ à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ à¨¹à©\88|à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±ਚ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}}}।',
 'category-file-count-limited' => 'ਮੌਜੂਦਾ ਕੈਟੇਗਰੀ ਵਿਚ ਇਹ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}।',
 'listingcontinuesabbrev' => 'ਜਾਰੀ',
 'index-category' => 'ਤਤਕਰੇ ਵਾਲ਼ੇ ਸਫ਼ੇ',
-'noindex-category' => 'ਬਿਨਾà¨\82 à¨¤à¨¤à¨\95ਰà©\87 à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨«à¨¼ੇ',
+'noindex-category' => 'ਬਿਨਾà¨\82 à¨¤à¨¤à¨\95ਰà©\87 à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨ੇ',
 'broken-file-category' => 'ਟੁੱਟੇ ਹੋਏ ਫ਼ਾਈਲ ਜੋੜਾਂ ਵਾਲ਼ੇ ਸਫ਼ੇ',
 
 'about' => 'ਇਸ ਬਾਰੇ',
@@ -271,7 +272,7 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'cancel' => 'ਰੱਦ ਕਰੋ',
 'moredotdotdot' => 'ਹੋਰ...',
 'mypage' => 'ਪੰਨਾ',
-'mytalk' => 'ਮà©\87ਰà©\80 à¨\9aਰà¨\9aਾ',
+'mytalk' => 'ਚਰਚਾ',
 'anontalk' => 'ਇਸ IP ਲਈ ਗੱਲ-ਬਾਤ',
 'navigation' => 'ਰਹਿਨੁਮਾਈ',
 'and' => '&#32;ਅਤੇ',
@@ -283,27 +284,27 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'qbpageoptions' => 'ਇਹ ਪੰਨਾ',
 'qbmyoptions' => 'ਮੇਰੇ ਪੰਨੇ',
 'qbspecialpages' => 'ਖਾਸ ਪੰਨੇ',
-'faq' => 'à¨\85à¨\95ਸਰ à¨ªà©\81ੱà¨\9bà©\87 à¨\9cਾਣ à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨µà¨¾à¨²',
+'faq' => 'ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲੇ ਸਵਾਲ',
 'faqpage' => 'Project:ਸਵਾਲ-ਜਵਾਬ',
 
 # Vector skin
-'vector-action-addsection' => 'ਮà¨\9c਼ਮà©\82ਨ ਜੋੜੋ',
-'vector-action-delete' => 'ਮਿਟਾਓ',
-'vector-action-move' => 'ਭà©\87à¨\9cà©\8b',
+'vector-action-addsection' => 'ਵਿਸ਼ਾ ਜੋੜੋ',
+'vector-action-delete' => 'ਹਟਾਓ',
+'vector-action-move' => 'ਹਿੱਲ',
 'vector-action-protect' => 'ਸੁਰੱਖਿਅਤ ਕਰੋ',
 'vector-action-undelete' => 'ਅਣ-ਮਿਟਾਉਣਾ',
 'vector-action-unprotect' => 'ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'vector-simplesearch-preference' => 'ਵਾਧੂ ਖੋਜ ਸਲਾਹਾਂ ਯੋਗ ਕਰੋ (ਸਿਰਫ਼ ਵਿਕਟਰ ਸਕਿੰਨ ਵਿਚ)',
 'vector-view-create' => 'ਬਣਾਓ',
-'vector-view-edit' => 'ਸà©\8bਧ',
-'vector-view-history' => 'à¨\85ਤà©\80ਤ ਵੇਖੋ',
+'vector-view-edit' => 'ਸੰਪਾਦਨ',
+'vector-view-history' => 'à¨\87ਤਿਹਾਸ ਵੇਖੋ',
 'vector-view-view' => 'ਪੜ੍ਹੋ',
 'vector-view-viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
 'actions' => 'ਕਾਰਵਾਈਆਂ',
 'namespaces' => 'ਨਾਮ-ਥਾਂਵਾਂ',
 'variants' => 'ਬਦਲ',
 
-'errorpagetitle' => 'à¨\97਼ਲਤà©\80',
+'errorpagetitle' => 'ਗਲਤੀ',
 'returnto' => '$1 ’ਤੇ ਵਾਪਸ ਜਾਓ।',
 'tagline' => '{{SITENAME}} ਤੋਂ',
 'help' => 'ਮਦਦ',
@@ -311,18 +312,18 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'searchbutton' => 'ਖੋਜੋ',
 'go' => 'ਜਾਓ',
 'searcharticle' => 'ਜਾਓ',
-'history' => 'ਸਫ਼à©\87 à¨¦à¨¾ à¨\85ਤà©\80ਤ',
-'history_short' => 'à¨\85ਤà©\80ਤ',
+'history' => 'ਪੰਨà©\87 à¨¦à¨¾ à¨\87ਤਿਹਾਸ',
+'history_short' => 'à¨\87ਤਿਹਾਸ',
 'updatedmarker' => 'ਮੇਰੀ ਆਖ਼ਰੀ ਫੇਰੀ ਤੋਂ ਬਾਅਦ ਬਦਲੇ ਗਏ',
 'printableversion' => 'ਛਪਣਯੋਗ ਵਰਜਨ',
 'permalink' => 'ਪੱਕਾ ਲਿੰਕ',
 'print' => 'ਛਾਪੋ',
 'view' => 'ਵੇਖੋ',
-'edit' => 'ਬਦਲੋ',
+'edit' => 'ਸà©\8bਧੋ',
 'create' => 'ਬਣਾਓ',
 'editthispage' => 'ਇਹ ਸਫ਼ਾ ਸੋਧੋ',
 'create-this-page' => 'ਇਹ ਸਫ਼ਾ ਬਣਾਓ',
-'delete' => 'ਮਿਟਾਓ',
+'delete' => 'ਹਟਾਓ',
 'deletethispage' => 'ਇਹ ਸਫ਼ਾ ਮਿਟਾਓ',
 'undelete_short' => '{{PLURAL:$1|ਇੱਕ ਸੋਧ|$1 ਸੋਧਾਂ}} ਅਣ-ਮਿਟਾਓ',
 'viewdeleted_short' => '{{PLURAL:$1|ਇਕ ਮਿਟਾਈ ਸੋਧ|$1 ਮਿਟਾਈਆਂ ਸੋਧਾਂ}} ਵੇਖੋ',
@@ -331,9 +332,9 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'protectthispage' => 'ਇਹ ਸਫ਼ਾ ਸੁਰੱਖਿਅਤ ਕਰੋ',
 'unprotect' => 'ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'unprotectthispage' => 'ਇਹ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
-'newpage' => 'ਨਵਾà¨\82 à¨¸à¨«à¨¼ਾ',
+'newpage' => 'ਨਵਾà¨\82 à¨ªà©°à¨¨ਾ',
 'talkpage' => 'ਇਸ ਸਫ਼ੇ ਬਾਰੇ ਚਰਚਾ ਕਰੋ',
-'talkpagelinktext' => 'à¨\9aਰà¨\9aਾ',
+'talkpagelinktext' => 'à¨\97ੱਲਬਾਤ',
 'specialpage' => 'ਖ਼ਾਸ ਸਫ਼ਾ',
 'personaltools' => 'ਨਿੱਜੀ ਸੰਦ',
 'postcomment' => 'ਨਵਾਂ ਸੈਕਸ਼ਨ',
@@ -349,10 +350,10 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'viewhelppage' => 'ਮਦਦ ਸਫ਼ਾ ਵੇਖੋ',
 'categorypage' => 'ਕੈਟੈਗਰੀ ਸਫ਼ਾ ਵੇਖੋ',
 'viewtalkpage' => 'ਚਰਚਾ ਵੇਖੋ',
-'otherlanguages' => 'ਹà©\8bਰ à¨\9c਼ਬਾਨਾà¨\82 à¨µà¨¿à¨\9a',
-'redirectedfrom' => '($1 ਤੋਂ ਰੀ-ਡਿਰੈਕਟ)',
+'otherlanguages' => 'ਹà©\8bਰ à¨­à¨¾à¨¸à¨¼à¨¾à¨µà¨¾à¨\82',
+'redirectedfrom' => '($1 ਤੋਂ ਰੀਡਿਰੈਕਟ)',
 'redirectpagesub' => 'ਰੀਡਿਰੈਕਟ ਸਫ਼ਾ',
-'lastmodifiedat' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\86à¨\96਼ਰà©\80 à¨µà¨¾à¨° $1 à¨¨à©\82à©° $2 â\80\99ਤà©\87 à¨¸à©\8bਧਿà¨\86 ਗਿਆ ਸੀ।',
+'lastmodifiedat' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨\86à¨\96ਰà©\80 à¨µà¨¾à¨° $1 à¨¨à©\82à©° $2 â\80\99ਤà©\87 à¨¬à¨¦à¨² ਗਿਆ ਸੀ।',
 'viewcount' => 'ਇਹ ਸਫ਼ਾ {{PLURAL:$1|ਇੱਕ ਵਾਰ|$1 ਵਾਰ}} ਵੇਖਿਆ ਗਿਆ।',
 'protectedpage' => 'ਸੁਰੱਖਿਅਤ ਪੇਜ',
 'jumpto' => 'ਇਸ ’ਤੇ ਜਾਓ:',
@@ -371,20 +372,20 @@ $1',
 'aboutpage' => 'Project:ਬਾਰੇ',
 'copyright' => 'ਸਮੱਗਰੀ $1 ਹੇਠ ਉਪਲੱਬਧ ਹੈ।',
 'copyrightpage' => '{{ns:project}}:ਕਾਪੀਰਾਈਟ',
-'currentevents' => 'ਮà©\8cà¨\9cà©\82ਦਾ à¨\87ਵà©\88à¨\82à¨\9f',
-'currentevents-url' => 'Project:ਮà©\8cà¨\9cà©\82ਦਾ à¨\88ਵà©\88à¨\82à¨\9f',
+'currentevents' => 'ਹਾਲ à¨¦à©\80à¨\86à¨\82 à¨\98à¨\9fਨਾਵਾà¨\82',
+'currentevents-url' => 'Project:ਹਾਲ à¨¦à©\80à¨\86à¨\82 à¨\98à¨\9fਨਾਵਾà¨\82',
 'disclaimers' => 'ਇਨਕਾਰੀ ਐਲਾਨ',
 'disclaimerpage' => 'Project:ਆਮ ਇਨਕਾਰ',
-'edithelp' => 'ਮੱਦਦ à¨\90ਡà©\80à¨\9fਿੰà¨\97',
-'edithelppage' => 'Help:à¨\90ਡà¨\9fਿੰà¨\97',
+'edithelp' => 'ਸੰਪਾਦਨ à¨®à¨¦à¨¦',
+'edithelppage' => 'Help:ਸੰਪਾਦਨ',
 'helppage' => 'Help:ਚੀਜ਼ਾਂ',
 'mainpage' => 'ਮੁੱਖ ਪੰਨਾ',
-'mainpage-description' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼ਾ',
+'mainpage-description' => 'ਮà©\81ੱà¨\96 à¨ªà©°à¨¨ਾ',
 'policy-url' => 'Project:ਪਾਲਸੀ',
-'portal' => 'à¨\95ਮਿà¨\8aਨà¨\9fà©\80 à¨ªà©\8bਰà¨\9fਲ',
-'portal-url' => 'Project:à¨\95ਮਿà¨\8aਨà¨\9fà©\80 à¨ªà©\8bਰà¨\9fਲ',
-'privacy' => 'ਪਰਾà¨\88ਵà©\87ਸà©\80 à¨ªà¨¾à¨²à¨¸ੀ',
-'privacypage' => 'Project:ਪਰਾà¨\88ਵà©\87ਸà©\80 à¨ªà¨¾à¨²à¨¸ੀ',
+'portal' => 'ਸਮਾà¨\9c à¨®à©\81ੱà¨\96 à¨ªà©°à¨¨à¨¾',
+'portal-url' => 'Project:ਸਮਾà¨\9c à¨®à©\81ੱà¨\96 à¨ªà©°à¨¨à¨¾',
+'privacy' => 'ਲà©\81à¨\95ਾà¨\85 à¨¨à©\80ਤੀ',
+'privacypage' => 'Project:ਲà©\81à¨\95ਾà¨\85 à¨¨à©\80ਤੀ',
 
 'badaccess' => 'ਅਧਿਕਾਰ ਗਲਤੀ',
 'badaccess-group0' => 'ਤੁਹਾਨੂੰ ਉਹ ਐਕਸ਼ਨ ਕਰਨ ਦੀ ਮਨਜ਼ੂਰੀ ਨਹੀਂ, ਜਿਸ ਦੀ ਤੁਸੀਂ ਮੰਗ ਕੀਤੀ ਹੈ।',
@@ -398,19 +399,19 @@ $1',
 'retrievedfrom' => '"$1" ਤੋਂ ਲਿਆ',
 'youhavenewmessages' => 'ਤੁਹਾਡੇ ਲਈ $1। ($2)',
 'newmessageslink' => 'ਨਵੇਂ ਸੁਨੇਹੇ',
-'newmessagesdifflink' => 'à¨\86à¨\96਼ਰà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80',
+'newmessagesdifflink' => 'ਆਖਰੀ ਤਬਦੀਲੀ',
 'youhavenewmessagesfromusers' => '{{PLURAL:$3|ਇੱਕ ਵਰਤੋਂਕਾਰ|$3 ਵਰਤੋਂਕਾਰਾਂ}} ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
 'youhavenewmessagesmanyusers' => 'ਕਈ ਵਰਤੋਂਕਾਰਾਂ ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
 'newmessageslinkplural' => '{{PLURAL:$1|ਇੱਕ ਨਵਾਂ ਸੁਨੇਹਾ|ਨਵੇਂ ਸੁਨੇਹੇ}} {{PLURAL:$1|ਹੈ|ਹਨ}}',
 'newmessagesdifflinkplural' => 'ਆਖ਼ਰੀ {{PLURAL:$1|ਤਬਦੀਲੀ|ਤਬਦੀਲੀਆਂ}}',
 'youhavenewmessagesmulti' => '$1 ’ਤੇ ਤੁਹਾਡੇ ਲਈ ਨਵੇਂ ਸੁਨੇਹੇ ਹਨ',
 'editsection' => 'ਸੋਧੋ',
-'editold' => 'ਸà©\8bਧà©\8b',
+'editold' => 'ਸੰਪਾਦਨ',
 'viewsourceold' => 'ਸਰੋਤ ਵੇਖੋ',
-'editlink' => 'ਸà©\8bਧà©\8b',
+'editlink' => 'ਸੰਪਾਦਨ',
 'viewsourcelink' => 'ਸਰੋਤ ਵੇਖੋ',
-'editsectionhint' => '$1 ਸੈਕਸ਼ਨ ਸੋਧੋ',
-'toc' => 'ਲਿਸà¨\9f',
+'editsectionhint' => 'ਭਾਗ ਸੰਪਾਦਨ: $1',
+'toc' => 'ਵਿਸ਼ਾ à¨¸à©\82à¨\9aà©\80',
 'showtoc' => 'ਵੇਖੋ',
 'hidetoc' => 'ਓਹਲੇ',
 'collapsible-collapse' => 'ਸਮੇਟੋ',
@@ -430,16 +431,16 @@ $1',
 'sort-ascending' => 'ਵੱਧਦਾ ਕ੍ਰਮ',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'ਲà©\87à¨\96',
-'nstab-user' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¸à¨«à¨¼à¨¾',
+'nstab-main' => 'ਪੰਨਾ',
+'nstab-user' => 'ਮà©\88à¨\82ਬਰ à¨ªà©°à¨¨à©\87',
 'nstab-media' => 'ਮੀਡੀਆ ਸਫ਼ਾ',
-'nstab-special' => 'à¨\96਼ਾਸ à¨¸à¨«à¨¼ਾ',
-'nstab-project' => 'ਪà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f à¨¸à¨«à¨¼ਾ',
+'nstab-special' => 'à¨\96਼ਾਸ à¨ªà©°à¨¨ਾ',
+'nstab-project' => 'ਪਰਿਯà©\8bà¨\9cਨਾ à¨ªà©°à¨¨ਾ',
 'nstab-image' => 'ਫ਼ਾਈਲ',
 'nstab-mediawiki' => 'ਸੁਨੇਹਾ',
-'nstab-template' => 'ਫਰਮਾ',
+'nstab-template' => 'ਸਾà¨\82à¨\9aਾ',
 'nstab-help' => 'ਮੱਦਦ ਪੇਜ',
-'nstab-category' => 'à¨\95à©\88à¨\9fà©\87à¨\97ਰੀ',
+'nstab-category' => 'ਸ਼à©\8dਰà©\87ਣੀ',
 
 # Main script and global functions
 'nosuchaction' => 'ਐਸਾ ਕੋਈ ਐਕਸ਼ਨ ਨਹੀਂ ਹੈ',
@@ -466,9 +467,9 @@ $1',
 'enterlockreason' => 'ਤਾਲਾ-ਬੰਦੀ ਲਈ ਕਾਰਨ ਦਾਖ਼ਲ ਕਰੋ, ਨਾਲ਼ ਹੀ ਤਾਲਾ-ਬੰਦੀ ਦੇ ਰਿਲੀਜ਼ ਹੋਣ ਦਾ ਅੰਦਾਜ਼ਨ ਵਕਤ',
 'readonlytext' => 'ਡੈਟਾਬੇਸ ਨੂੰ ਇਸ ਵੇਲ਼ੇ ਤਾਲਾ ਲੱਗਾ ਹੋਇਆ ਹੈ, ਸ਼ਾਇਦ ਆਮ ਰੱਖ-ਰਖਾਵ ਲਈ, ਇਸਤੋਂ ਬਾਅਦ ਇਹ ਆਮ ਵਾਂਗ ਉਪਲੱਬਧ ਹੋਵੇਗਾ।
 ਜਿਸ ਪ੍ਰਬੰਧਕ ਨੇ ਇਸਨੂੰ ਤਾਲਾ ਲਾਇਆ ਹੈ ਉਸਦਾ ਕਹਿਣਾ ਹੈ ਕਿ: $1',
-'missing-article' => "ਡਾà¨\9fਾਬà©\87ਸ à¨¨à©\82à©° ''$1'' $2 à¨¨à¨¾à¨® à¨¦à¨¾ à¨\95à©\8bà¨\88 à¨¸à¨«à¨¼ਾ ਨਹੀਂ ਮਿਲਿਆ।
-à¨\86ਮ à¨¤à©\8cਰ à¨¤à©\87 à¨®à¨¿à¨\9fਾà¨\8f à¨\9cਾ à¨\9aà©\81ੱà¨\95à©\87 à¨¸à¨«à¨¼à©\87 à¨¦à©\80 à¨\85ਤà©\80ਤ à¨\95à©\9cà©\80 à¨¦à©\80 à¨µà¨°à¨¤à©\8bà¨\82 à¨\95ਰਨ à¨¨à¨¾à¨²à¨¼ ਇੰਝ ਹੁੰਦਾ ਹੈ।
-à¨\9cà©\87 à¨\87ਹ à¨\97ੱਲ à¨¨à¨¹à©\80à¨\82 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨¤à©\81ਹਾਨà©\82à©° à¨¸à¨¾à¨«à¨¼à¨\9fਵà©\87à¨\85ਰ à¨µà¨¿à¨\9a à¨\96਼ਾਮà©\80 à¨®à¨¿à¨² à¨\97à¨\88 à¨¹à©\88। à¨®à¨¿à¨¹à¨°à¨¬à¨¾à¨¨à©\80 à¨\95ਰà¨\95à©\87 à¨¸à¨«à¨¼ੇ ਦੇ ਪਤੇ ਸਮੇਤ [[Special:ListUsers/sysop|administrator]] ਨੂੰ ਇਤਲਾਹ ਦਿਓ।",
+'missing-article' => "ਡਾà¨\9fਾਬà©\87ਸ à¨¨à©\82à©° ''$1'' $2 à¨¨à¨¾à¨® à¨¦à¨¾ à¨\95à©\8bà¨\88 à¨ªà©°à¨¨ਾ ਨਹੀਂ ਮਿਲਿਆ।
+à¨\86ਮ à¨¤à©\8cਰ à¨¤à©\87 à¨®à¨¿à¨\9fਾà¨\8f à¨\9cਾ à¨\9aà©\81ੱà¨\95à©\87 à¨ªà©°à¨¨à©\87 à¨¦à©\80 à¨\85ਤà©\80ਤ à¨\95à©\9cà©\80 à¨¦à©\80 à¨µà¨°à¨¤à©\8bà¨\82 à¨\95ਰਨ à¨¨à¨¾à¨² ਇੰਝ ਹੁੰਦਾ ਹੈ।
+à¨\9cà©\87 à¨\87ਹ à¨\97ੱਲ à¨¨à¨¹à©\80à¨\82 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨¤à©\81ਹਾਨà©\82à©° à¨¸à¨¾à¨«à¨¼à¨\9fਵà©\87à¨\85ਰ à¨µà¨¿à¨\9a à¨\96ਾਮà©\80 à¨®à¨¿à¨² à¨\97à¨\88 à¨¹à©\88। à¨®à¨¿à¨¹à¨°à¨¬à¨¾à¨¨à©\80 à¨\95ਰà¨\95à©\87 à¨ªà©°à¨¨ੇ ਦੇ ਪਤੇ ਸਮੇਤ [[Special:ListUsers/sysop|administrator]] ਨੂੰ ਇਤਲਾਹ ਦਿਓ।",
 'missingarticle-rev' => '(ਬਦਲਾਅ#: $1)',
 'missingarticle-diff' => '(ਫ਼ਰਕ: $1, $2)',
 'readonly_lag' => 'ਜਦੌਂ ਤਕ ਅਧੀਨ ਡੇਟਾਬੇਸ ਸਰਵਰ ਸੁਤੰਤਰ ਡੈਟਾਬੇਸ ਸਰਵਰ ਦੀ ਪਕੜ ਵਿਚ ਨਹੀਂ ਆ ਜਾਂਦੇ ਡੈਟਾਬੇਸ ਸਵੈ ਜਕੜਿਆ ਗਿਆ ਹੈ।',
@@ -490,8 +491,8 @@ $1',
 'cannotdelete-title' => "ਸਫ਼ਾ ''$1'' ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ",
 'delete-hook-aborted' => 'ਹੁੱਕ ਨੇ ਮਿਟਾਉਣਾ ਨਾਕਾਮ ਕੀਤਾ।
 ਇਸਨੇ ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦੱਸਿਆ।',
-'badtitle' => 'à¨\97਼ਲਤ à¨¸à¨¿à¨°à¨²à©\87à¨\96',
-'badtitletext' => 'ਤà©\81ਹਾਡਾ à¨¦à¨°à¨\96਼ਾਸਤਸ਼à©\81ਦਾ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¨à¨¾à¨\95ਾਬਿਲ, à¨\96਼ਾਲà©\80 à¨\9cਾà¨\82 à¨\97਼ਲਤ à¨\9cà©\81à©\9cਿà¨\86 à¨¹à©\8bà¨\87à¨\86 inter-languagd à¨\9cਾà¨\82 inter-wiki à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¹à©\88। à¨\87ਹ à¨µà©\80 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨\95ਿ à¨\87ਸ à¨µà¨¿à¨\9a à¨\87à¨\95-ਦà©\8b à¨\85ੱà¨\96ਰ à¨\90ਸà©\87 à¨¹à©\8bਣ à¨\9cà©\8b à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨µà¨¿ਚ ਵਰਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ।',
+'badtitle' => 'ਗਲਤ ਸਿਰਲੇਖ',
+'badtitletext' => 'ਤà©\81ਹਾਡਾ à¨¦à¨°à¨\96ਾਸਤਸ਼à©\81ਦਾ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¨à¨¾à¨\95ਾਬਿਲ, à¨\96ਾਲà©\80 à¨\9cਾà¨\82 à¨\97ਲਤ à¨\9cà©\81à©\9cਿà¨\86 à¨¹à©\8bà¨\87à¨\86 inter-languagd à¨\9cਾà¨\82 inter-wiki à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¹à©\88। à¨\87ਹ à¨µà©\80 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨\95ਿ à¨\87ਸ à¨µà¨¿à©±à¨\9a à¨\87à¨\95-ਦà©\8b à¨\85ੱà¨\96ਰ à¨\90ਸà©\87 à¨¹à©\8bਣ à¨\9cà©\8b à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨µà¨¿à©±ਚ ਵਰਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ।',
 'viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
 'viewsource-title' => '$1 ਲਈ ਸਰੋਤ ਵੇਖੋ',
 'actionthrottled' => 'ਕਾਰਜ ਬੰਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ',
@@ -520,7 +521,7 @@ You can continue to use {{SITENAME}} anonymously, or you can log in again as the
 Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
 'welcomeuser' => 'ਸੁਆਗਤ, $1!',
 'welcomecreation-msg' => 'ਤੁਹਾਡਾ ਖਾਤਾ ਬਣ ਚੁੱਕਾ ਹੈ। ਆਪਣੀਆਂ [[Special:Preferences|{{SITENAME}} ਪਸੰਦਾਂ]] ਬਦਲਣੀਆਂ ਨਾ ਭੁੱਲੋ।',
-'yourname' => 'ਮà©\88à¨\82ਬਰ à¨¨à¨¾à¨\82:',
+'yourname' => 'ਮà©\88à¨\82ਬਰ à¨¨à¨¾à¨®:',
 'yourpassword' => 'ਪਾਸਵਰਡ:',
 'yourpasswordagain' => 'ਪਾਸਵਰਡ ਦੁਬਾਰਾ ਲਿਖੋ:',
 'remembermypassword' => 'ਇਸ ਕੰਪਿਊਟਰ ’ਤੇ ਮੇਰਾ ਲਾਗਇਨ ਯਾਦ ਰੱਖੋ (ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਲਈ)',
@@ -600,7 +601,7 @@ Note that some pages may continue to be displayed as if you were still logged in
 'login-throttled' => 'ਤੁਸੀਂ ਬਹੁਤ ਸਾਰੀਆਂ ਤਾਜ਼ਾ ਲਾਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਕੀਤੀਆਂ ਹਨ।
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਥੋੜੀ ਉਡੀਕ ਕਰੋ।',
 'login-abort-generic' => 'ਤੁਹਾਡੀ ਲਾਗਇਨ ਨਾਕਾਮ ਸੀ - ਰੱਦ',
-'loginlanguagelabel' => 'ਬà©\8bਲà©\80: $1',
+'loginlanguagelabel' => 'ਭਾਸ਼ਾ: $1',
 
 # E-mail sending
 'user-mail-no-addy' => 'ਬਿਨਾਂ ਈ-ਮੇਲ ਪਤਾ ਦਿੱਤੇ ਈ-ਮੇਲ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ।',
@@ -660,49 +661,49 @@ $2
 'bold_tip' => 'ਗੁੜ੍ਹੀ ਲਿਖਾਈ',
 'italic_sample' => 'ਟੇਢੀ ਲਿਖਤ',
 'italic_tip' => 'ਟੇਢੀ ਲਿਖਾਈ',
-'link_sample' => 'ਲਿੰà¨\95 à¨¦à¨¾ ਸਿਰਲੇਖ',
-'link_tip' => 'à¨\85ੰਦਰà©\82ਨà©\80 à¨²à¨¿à©°à¨\95',
+'link_sample' => 'à¨\95à©\9cà©\80 ਸਿਰਲੇਖ',
+'link_tip' => 'à¨\85ੰਦਰà©\82ਨà©\80 à¨\95à©\9cà©\80',
 'extlink_sample' => 'http://www.example.com ਲਿੰਕ ਸਿਰਲੇਖ',
-'extlink_tip' => 'ਬਾਹਰà©\80 à¨²à¨¿à©°à¨\95 (ਅਗੇਤਰ http:// ਯਾਦ ਰੱਖੋ)',
-'headline_sample' => 'ਸà©\81ਰà¨\96਼à©\80 à¨¦à©\80 à¨²à¨¿à¨\96ਤ',
+'extlink_tip' => 'ਬਾਹਰà©\80 à¨\95à©\9cà©\80 (ਅਗੇਤਰ http:// ਯਾਦ ਰੱਖੋ)',
+'headline_sample' => 'ਸਿਰਲà©\87à¨\96',
 'headline_tip' => 'ਦੂਜੇ ਦਰਜੇ ਦਾ ਸਿਰਲੇਖ',
 'nowiki_sample' => 'ਅਸੰਗਠਿਤ ਪਾਠ (NON -FORMATTED) ਇੱਥੇ ਰਖੋ।',
 'nowiki_tip' => 'ਵਿਕੀ ਫ਼ੌਰਮੈਟਿੰਗ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰੋ',
 'image_tip' => 'ਇੰਬੈੱਡ ਚਿੱਤਰ',
-'media_tip' => 'ਮà©\80ਡਿà¨\86 à¨«à¨¾à¨\87ਲ à¨²à¨¿à©°à¨\95',
-'sig_tip' => 'ਤà©\81ਹਾਡà©\87 à¨¦à¨¸à¨¤à¨\96਼ਤ à¨µà¨\95ਤ ਸਮੇਤ',
+'media_tip' => 'ਫ਼ਾà¨\88ਲ à¨\95à©\9cà©\80',
+'sig_tip' => 'ਤà©\81ਹਾਡà©\87 à¨¦à¨¸à¨¤à¨\96ਤ à¨¸à¨®à©\87à¨\82 ਸਮੇਤ',
 'hr_tip' => 'ਲੇਟਵੀਂ ਲਾਈਨ (use sparingly)',
 
 # Edit pages
 'summary' => 'ਸਾਰ:',
 'subject' => 'ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ:',
-'minoredit' => 'à¨\87ਹ à¨\9bà©\8bà¨\9fà©\80 à¨¸à©\8bਧ ਹੈ',
-'watchthis' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 â\80\99ਤà©\87 à¨¨à¨\9c਼ਰ ਰੱਖੋ',
-'savearticle' => 'ਸਫ਼ਾ ਸਾਂਭੋ',
+'minoredit' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80 ਹੈ',
+'watchthis' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 â\80\99ਤà©\87 à¨§à¨¿à¨\86ਨ ਰੱਖੋ',
+'savearticle' => 'ਪੰਨਾ ਸਾਂਭੋ',
 'preview' => 'ਝਲਕ',
 'showpreview' => 'ਝਲਕ ਵੇਖੋ',
 'showlivepreview' => 'ਲਾਈਵ ਝਲਕ',
 'showdiff' => 'ਤਬਦੀਲੀ ਵੇਖੋ',
-'anoneditwarning' => "'''à¨\9aà©\87ਤਾਵਨà©\80:''' à¨¤à©\81ਸà©\80à¨\82 à¨²à¨¾à¨\97à¨\87ਨ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ à¨¹à©\88। à¨¤à©\81ਹਾਡਾ IP à¨\90ਡਰà©\88ੱਸ à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨\85ਤà©\80ਤ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਵੇਗਾ।",
+'anoneditwarning' => "'''à¨\9aà©\87ਤਾਵਨà©\80:''' à¨¤à©\81ਸà©\80à¨\82 à¨²à¨¾à¨\97à¨\87ਨ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ à¨¹à©\88। à¨¤à©\81ਹਾਡਾ IP à¨\90ਡਰà©\88ੱਸ à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨\87ਤਿਹਾਸ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਵੇਗਾ।",
 'anonpreviewwarning' => "''ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ। ਤਬਦੀਲੀ ਸਾਂਭਣ ਨਾਲ਼ ਤੁਹਾਡਾ IP ਪਤਾ ਸਫ਼ੇ ਦੇ ਸੋਧ ਅਤੀਤ ਵਿਚ ਰਿਕਾਰਡ ਹੋ ਜਾਵੇਗਾ।''",
 'missingsummary' => "'''ਯਾਦ-ਦਹਾਨੀ:''' ਤੁਸੀਂ ਸੋਧ ਸਾਰ ਮੁਹੱਈਆ ਨਹੀਂ ਕਰਵਾਇਆ। ਜੇ ਤੁਸੀਂ \"{{int:savearticle}}\" ਤੇ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕੀਤਾ ਤਾਂ ਤੁਹਾਡਾ ਸਫ਼ਾ ਇਸਦੇ ਬਿਨਾਂ ਹੀ ਸਾਂਭਿਆ ਜਾਵੇਗਾ।",
 'missingcommenttext' => 'ਹੇਠਾਂ ਇੱਕ ਟਿੱਪਣੀ ਦਿਓ।',
 'summary-preview' => 'ਸੋਧ ਸਾਰ ਦੀ ਝਲਕ:',
 'subject-preview' => 'ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ ਝਲਕ:',
 'blockedtitle' => 'ਯੂਜ਼ਰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ',
-'blockedtext' => "'''ਤà©\81ਹਾਡà©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ à¨¨à¨¾à¨\82 ਜਾਂ IP ਪਤੇ ’ਤੇ ਪਾਬੰਦੀ ਲੱਗ ਚੁੱਕੀ ਹੈ।'''
+'blockedtext' => "'''ਤà©\81ਹਾਡà©\87 à¨®à©\8cਮਬਰ à¨¨à¨¾à¨® ਜਾਂ IP ਪਤੇ ’ਤੇ ਪਾਬੰਦੀ ਲੱਗ ਚੁੱਕੀ ਹੈ।'''
 
 ਪਾਬੰਦੀ $1 ਨੇ ਲਾਈ ਹੈ।
 ਦਿੱਤਾ ਗਿਆ ਕਾਰਨ ਇਹ ਹੈ, ''$2''।
 
 * ਪਾਬੰਦੀ ਸ਼ੁਰੂ: $8
-* à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨\96਼ਤਮ: $6
-* à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨²à¨¾à¨\89ਣ à¨µà¨¾à¨²à¨¼à©\87 à¨¦à¨¾ à¨\87ਰਾਦਾ: $7
+* ਪਾਬੰਦੀ ਖਤਮ: $6
+* ਪਾਬੰਦੀ ਲਾਉਣ ਵਾਲੇ ਦਾ ਇਰਾਦਾ: $7
 
 ਪਾਬੰਦੀ ਬਾਰੇ ਚਰਚਾ ਕਰਨ ਲਈ ਤੁਸੀਂ $1 ਜਾਂ ਕਿਸੇ ਹੋਰ
 [[{{MediaWiki:Grouppage-
-sysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।
-ਤੁਸੀਂ 'ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ' ਸਹੂਲਤ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜੇ ਤੁਹਾਡੀਆਂ [[Special:Preferences|ਖਾਤਾ ਪਸੰਦਾਂ]] ਵਿਚ ਇੱਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ ਜਾਂ ਜੇ ਤੁਹਾਡੇ ਇਸਨੂੰ ਵਰਤਣ ਤੇ ਪਾਬੰਦੀ ਹੈ।
+sysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।
+ਤà©\81ਸà©\80à¨\82 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ à¨¨à©\82à©° à¨\88-ਮà©\87ਲ à¨­à©\87à¨\9cà©\8b' à¨¸à¨¹à©\82ਲਤ à¨¦à©\80 à¨µà¨°à¨¤à©\8bà¨\82 à¨¨à¨¹à©\80à¨\82 à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨\9cà©\87 à¨¤à©\81ਹਾਡà©\80à¨\86à¨\82 [[Special:Preferences|à¨\96ਾਤਾ à¨ªà¨¸à©°à¨¦à¨¾à¨\82]] à¨µà¨¿à©±à¨\9a à¨\87ੱà¨\95 à¨¸à¨¹à©\80 à¨\88-ਮà©\87ਲ à¨ªà¨¤à¨¾ à¨¨à¨¹à©\80à¨\82 à¨¦à¨¿à©±à¨¤à¨¾ à¨\97ਿà¨\86 à¨\9cਾà¨\82 à¨\9cà©\87 à¨¤à©\81ਹਾਡà©\87 à¨\87ਸਨà©\82à©° à¨µà¨°à¨¤à¨£ à¨¤à©\87 à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨¹à©\88।
 ਤੁਹਾਡਾ ਚਾਲੂ IP ਪਤਾ $3 ਹੈ,
 ਅਤੇ ਪਾਬੰਦੀ ਪਤਾ #$5 ਹੈ।
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਆਪਣੇ ਕਿਸੇ ਵੀ ਸਵਾਲ ਜਾਂ ਪੁੱਛ-ਗਿੱਛ ਵਿਚ ਇਹ ਉੱਪਰਲੀ ਤਫ਼ਸੀਲ ਜ਼ਰੂਰ ਸ਼ਾਮਲ ਕਰੋ।",
@@ -720,15 +721,15 @@ sysop}}|administrator]] ਨਾਲ਼ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ
 'accmailtext' => "[[User talk:$1|$1]] ਲਈ ਰਲ਼ਵੇਂ ਤੌਰ ’ਤੇ ਬਣਿਆ ਪਾਸਵਰਡ $2 ਨੂੰ ਭੇਜਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।
 ਇਸ ਨਵੇਂ ਖਾਤੇ ਲਈ ਲਾਗਇਨ ਕਰਨ ਤੋਂ ਬਾਅਦ ''[[Special:ChangePassword|ਪਾਸਵਰਡ ਬਦਲੋ]]'' ’ਤੇ ਜਾ ਕੇ ਪਾਸਵਰਡ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।",
 'newarticle' => '(ਨਵਾਂ)',
-'newarticletext' => "ਤà©\81ਸà©\80à¨\82 à¨\95ਿਸà©\87 à¨\90ਸà©\87 à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨²à¨¿à©°à¨\95 ’ਤੇ ਹੋ ਜੋ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।
-ਸਫ਼ਾ à¨¬à¨£à¨¾à¨\89ਣ à¨²à¨\88 à¨¹à©\87ਠ à¨¦à¨¿à©±à¨¤à©\87 à¨\96਼ਾਨà©\87 à¨µà¨¿à¨\9a à¨²à¨¿à¨\96ਣਾ à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà©\8b। (ਹà©\8bਰ à¨®à¨¦à¨¦ à¨²à¨\88 [[{{MediaWiki:Helppage}}|ਮਦਦ à¨¸à¨«à¨¼ਾ]] ਵੇਖੋ।)
-à¨\9cà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\97਼ਲਤà©\80 à¨¨à¨¾à¨²à¨¼ ਇੱਥੇ ਆਏ ਹੋ ਤਾਂ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ '''ਪਿੱਛੇ''' ਬਟਨ ’ਤੇ ਕਲਿੱਕ ਕਰੋ।",
+'newarticletext' => "ਤà©\81ਸà©\80à¨\82 à¨\95ਿਸà©\87 à¨\90ਸà©\87 à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨\95à©\9cà©\80 ’ਤੇ ਹੋ ਜੋ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।
+ਸਫ਼ਾ à¨¬à¨£à¨¾à¨\89ਣ à¨²à¨\88 à¨¹à©\87ਠ à¨¦à¨¿à©±à¨¤à©\87 à¨\96ਾਨà©\87 à¨µà¨¿à©±à¨\9a à¨²à¨¿à¨\96ਣਾ à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà©\8b। (ਹà©\8bਰ à¨®à¨¦à¨¦ à¨²à¨\88 [[{{MediaWiki:Helppage}}|ਮਦਦ à¨ªà©°à¨¨ਾ]] ਵੇਖੋ।)
+à¨\9cà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\97ਲਤà©\80 à¨¨à¨¾à¨² ਇੱਥੇ ਆਏ ਹੋ ਤਾਂ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ '''ਪਿੱਛੇ''' ਬਟਨ ’ਤੇ ਕਲਿੱਕ ਕਰੋ।",
 'anontalkpagetext' => "----''ਇਹ ਇਕ ਗੁਮਨਾਮ ਮੈਂਬਰ ਲਈ ਇਕ ਚਰਚਾ ਸਫ਼ਾ ਹੈ ਜਿਸਨੇ ਹਾਲੇ ਖਾਤਾ ਨਹੀ ਬਣਾਇਆ ਜਾਂ ਉਸਨੂੰ ਵਰਤ ਨਹੀਂ ਰਿਹਾ।
 ਇਸ ਵਾਸਤੇ ਸਾਡੇ ਕੋਲ ਉਸਨੂੰ ਪਛਾਨਣ ਲਈ IP ਪਤਾ ਹੈ।
 ਇਕ IP ਪਤਾ ਕਈ ਵਰਤਣ ਵਾਲ਼ਿਆਂ ਦੁਆਰਾ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
 ਜੇ ਤੁਸੀਂ ਇੱਕ ਗੁਮਨਾਮ ਮੈਂਬਰ ਹੋ ਅਤੇ ਸਮਝਦੇ ਹੋ ਕਿ ਇਹ ਟਿੱਪਣੀਆਂ ਤੁਹਾਡੇ ਲਈ ਹਨ ਤਾਂ ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਹੋਰਾਂ ਗੁਮਨਾਮ ਮੈਂਬਰਾਂ ਨਾਲ਼ ਪੈਦਾ ਹੋਣ ਵਾਲ਼ੀ ਉਲਝਣ ਤੋਂ ਬਚਣ ਲਈ [[Special:UserLogin/signup|ਖਾਤਾ ਬਣਾਓ]] ਜਾਂ [[Special:UserLogin|ਲਾਗਇਨ ਕਰੋ]]।''",
-'noarticletext' => 'ਫ਼ਿਲਹਾਲ à¨\87ਸ à¨¸à¨«à¨¼à©\87 â\80\99ਤà©\87 à¨\95à©\8bà¨\88 à¨²à¨¿à¨\96ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88। à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82à¨\9cà©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 â\80\99ਤà©\87 [[Special:Search/{{PAGENAME}}|à¨\87ਸ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¦à©\80 à¨\96à©\8bà¨\9c]] à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¨¸à¨¬à©°à¨§à¨¿à¨¤ à¨\9aਿੱਠà©\87 à¨\96à©\8bà¨\9c] à¨¸à¨\95ਦà©\87 à¨¹à©\8b à¨\9cਾà¨\82 à¨\87ਸ [{{fullurl:{{FULLPAGENAME}}|action=edit}} à¨¸à¨«à¨¼à©\87 à¨µà¨¿ਚ ਲਿਖ] ਸਕਦੇ ਹੋ</span>।',
-'noarticletext-nopermission' => 'ਫ਼ਿਲਹਾਲ à¨\87ਸ à¨ªà©°à¨¨à©\87 â\80\99ਤà©\87 à¨\95à©\8bà¨\88 à¨²à¨¿à¨\96ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88। à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82ਸਰà©\87 à¨¸à¨«à¨¼ਿਆਂ ’ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਸਿਰਲੇਖ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ, ਸਬੰਧਤ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਚਿੱਠੇ] ਖੋਜ ਸਕਦੇ ਹੋ ਜਾਂ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਇਸ ਪੰਨੇ ਵਿੱਚ ਲਿਖ] ਸਕਦੇ ਹੋ।</span>',
+'noarticletext' => 'ਫ਼ਿਲਹਾਲ à¨\87ਸ à¨ªà©°à¨¨à©\87 â\80\99ਤà©\87 à¨\95à©\8bà¨\88 à¨²à¨¿à¨\96ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88। à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82à¨\9cà©\87 à¨ªà©°à¨¨à¨¿à¨\86à¨\82 â\80\99ਤà©\87 [[Special:Search/{{PAGENAME}}|à¨\87ਸ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¦à©\80 à¨\96à©\8bà¨\9c]] à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¨¸à¨¬à©°à¨§à¨¿à¨¤ à¨\9aਿੱਠà©\87 à¨\96à©\8bà¨\9c] à¨¸à¨\95ਦà©\87 à¨¹à©\8b à¨\9cਾà¨\82 à¨\87ਸ [{{fullurl:{{FULLPAGENAME}}|action=edit}} à¨ªà©°à¨¨à©\87 à¨µà¨¿à©±ਚ ਲਿਖ] ਸਕਦੇ ਹੋ</span>।',
+'noarticletext-nopermission' => 'ਫ਼ਿਲਹਾਲ à¨\87ਸ à¨ªà©°à¨¨à©\87 â\80\99ਤà©\87 à¨\95à©\8bà¨\88 à¨²à¨¿à¨\96ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88। à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82ਸਰà©\87 à¨ªà©°à¨¨ਿਆਂ ’ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਸਿਰਲੇਖ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ, ਸਬੰਧਤ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਚਿੱਠੇ] ਖੋਜ ਸਕਦੇ ਹੋ ਜਾਂ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਇਸ ਪੰਨੇ ਵਿੱਚ ਲਿਖ] ਸਕਦੇ ਹੋ।</span>',
 'userpage-userdoesnotexist' => 'ਮੈਂਬਰ ਖਾਤਾ "$1" ਰਜਿਸਟਰ ਨਹੀਂ ਹੈ।
 ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬਣਾਉਣਾ/ਸੋਧਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਮਿਰਬਾਨੀ ਕਰਕੇ ਜਾਂਚ ਕਰ ਲਓ।',
 'userpage-userdoesnotexist-view' => 'ਮੈਂਬਰ ਖਾਤਾ "$1" ਰਜਿਸਟਰ ਨਹੀਂ ਹੈ।',
@@ -747,11 +748,11 @@ sysop}}|administrator]] ਨਾਲ਼ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ
 'updated' => '(ਅੱਪਡੇਟ)',
 'note' => "'''ਨੋਟ:'''",
 'previewnote' => "'''ਯਾਦ ਰੱਖੋ ਇਹ ਸਿਰਫ਼ ਇਕ ਝਲਕ ਹੈ।''' ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਹਾਲੇ ਸਾਂਭੀਆਂ ਨਹੀਂ ਗਈਆਂ!",
-'continue-editing' => 'ਸà©\8bਧਣਾ ਜਾਰੀ ਰੱਖੋ',
+'continue-editing' => 'ਸੰਪਾਦਨ ਜਾਰੀ ਰੱਖੋ',
 'previewconflict' => 'ਇਹ ਝਲਕ ਲਿਖਤ ਦਾ ਓਹ ਅਕਸ ਪੇਸ਼ ਕਰਦੀ ਹੈ ਜਿਵੇਂ ਓਹ ਤੁਹਾਡੇ ਸਾਂਭੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਦਿੱਸੇਗਾ।',
-'editing' => '$1 à¨¸à©\8bਧਿà¨\86 à¨\9cਾ à¨°à¨¿à¨¹à¨¾ à¨¹à©\88',
+'editing' => '$1 à¨¸à©°à¨ªà¨¾à¨¦à¨¨',
 'creating' => '$1 ਬਣਾ ਰਹੇ ਹੋ',
-'editingsection' => '$1 à¨\9c਼à©\87ਰà©\87 à¨¸à©\81ਧਾà¨\88 à¨¹à©\88 (ਸ਼à©\88à¨\95ਸ਼ਨ)',
+'editingsection' => '$1 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ (ਭਾà¨\97)',
 'editingcomment' => '$1 ਸੋਧ ਰਹੇ ਹੋ (ਨਵਾਂ ਸੈਕਸ਼ਨ)',
 'editconflict' => 'ਅਪਵਾਦ ਟਿੱਪਣੀ: $1',
 'yourtext' => 'ਤੁਹਾਡਾ ਟੈਕਸਟ',
@@ -769,12 +770,12 @@ sysop}}|administrator]] ਨਾਲ਼ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ
 ਚਿੱਠੇ ਵਿਚਲਾ ਨਵਾਂ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:",
 'titleprotectedwarning' => "'''ਖ਼ਬਰਦਾਰ: ਇਹ ਸਫ਼ਾ ਸੁਰੱਖਿਅਤ ਹੈ ਸੋ ਇਸਨੂੰ ਬਣਾਉਣ ਲਈ [[Special:ListGroupRights|ਖ਼ਾਸ ਹੱਕਾਂ]] ਦੀ ਲੋੜ ਹੈ।'''
 ਚਿੱਠੇ ਦਾ ਨਵਾਂ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:",
-'templatesused' => 'à¨\87ਸ à¨¸à¨«ੇ ’ਤੇ {{PLURAL:$1|ਵਰਤਿਆ ਸਾਂਚਾ|ਵਰਤੇ ਸਾਂਚੇ}}:',
+'templatesused' => 'à¨\87ਸ à¨ªà©°à¨¨ੇ ’ਤੇ {{PLURAL:$1|ਵਰਤਿਆ ਸਾਂਚਾ|ਵਰਤੇ ਸਾਂਚੇ}}:',
 'templatesusedpreview' => "{{PLURAL:$1|ਟੈਪਲੇਟ|ਟੈਪਲੇਟ}} ਇਹ ਝਲਕ 'ਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:",
-'templatesusedsection' => 'à¨\87ਹ à¨¸à¨¼à©\88à¨\95ਸ਼ਨ à¨µà¨¿à©±à¨\9a à¨\9fà©\88ਪਲà©\87à¨\9f ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:',
+'templatesusedsection' => 'à¨\87ਹ à¨­à¨¾à¨\97 à¨µà¨¿à©±à¨\9a {{PLURAL:$1|ਸਾà¨\82à¨\9aਾ|ਸਾà¨\82à¨\9aà©\87}} ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:',
 'template-protected' => '(ਸੁਰੱਖਿਅਤ)',
 'template-semiprotected' => '(ਨੀਮ-ਸੁਰੱਖਿਅਤ)',
-'hiddencategories' => 'à¨\87ਹ à¨¸à¨«à¨¼ਾ {{PLURAL:$1|੧ ਲੁਕਵੀਂ ਸ਼੍ਰੇਣੀ|
+'hiddencategories' => 'à¨\87ਹ à¨ªà©°à¨¨ਾ {{PLURAL:$1|੧ ਲੁਕਵੀਂ ਸ਼੍ਰੇਣੀ|
 $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ ਹੈ:',
 'nocreatetitle' => 'ਸਫ਼ਾ ਬਣਾਉਣ ਦੀ ਹੱਦ ਹੈ',
 'nocreatetext' => '{{SITENAME}} ਨੇ ਨਵੇਂ ਸਫ਼ੇ ਬਣਾਉਣ ਤੇ ਰੋਕ ਲਾਈ ਹੋਈ ਹੈ।
@@ -783,12 +784,12 @@ $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ 
 'permissionserrors' => 'ਅਧਿਕਾਰ ਗਲਤੀਆਂ',
 'permissionserrorstext' => 'ਤੁਹਾਨੂੰ ਇੰਝ ਕਰਨ ਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਹੇਠ ਦਿੱਤੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨ}} ਨੇ:',
 'permissionserrorstext-withaction' => '{{PLURAL:$1|ਇਸ ਕਾਰਨ|ਇਹਨਾਂ ਕਾਰਨਾਂ}} ਕਰਕੇ ਤੁਹਾਨੂੰ $2 ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ:',
-'recreate-moveddeleted-warn' => "'''à¨\96਼ਬਰਦਾਰ:
-ਤà©\81ਸà©\80à¨\82 à¨\90ਸਾ à¨¸à¨«à¨¼à¨¾ à¨¬à¨£à¨¾ à¨°à¨¹à©\87 à¨¹à©\8b à¨\9cà©\8b à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨®à¨¿ਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।'''
+'recreate-moveddeleted-warn' => "'''ਖਬਰਦਾਰ:
+ਤà©\81ਸà©\80à¨\82 à¨\90ਸਾ à¨ªà©°à¨¨à¨¾ à¨¬à¨£à¨¾ à¨°à¨¹à©\87 à¨¹à©\8b à¨\9cà©\8b à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¹ਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।'''
 
-à¨\96਼ਿà¨\86ਲ à¨\95ਰà©\8b à¨\95ਿ à¨\95à©\80 à¨\87ਸ à¨¸à¨«à¨¼ੇ ਦਾ ਕਾਇਮ ਰਹਿਣਾ ਠੀਕ ਹੈ।
+à¨\96ਿà¨\86ਲ à¨\95ਰà©\8b à¨\95ਿ à¨\95à©\80 à¨\87ਸ à¨ªà©°à¨¨ੇ ਦਾ ਕਾਇਮ ਰਹਿਣਾ ਠੀਕ ਹੈ।
 ਇਸਨੂੰ ਮਿਟਾਉਣ ਜਾਂ ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
-'moveddeleted-notice' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à¨¿ਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
+'moveddeleted-notice' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨¹ਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
 ਇਸਦੇ ਮਿਟਾਉਣ ਜਾਂ ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹਵਾਲੇ ਲਈ ਹੇਠ ਦਿੱਤਾ ਗਿਆ ਹੈ।',
 'log-fulllog' => 'ਪੂਰਾ ਚਿੱਠਾ ਵੇਖੋ',
 'edit-gone-missing' => 'ਸਫ਼ਾ ਅਪਡੇਟ ਨਹੀਂ ਹੋ ਸਕਿਆ।
@@ -798,11 +799,11 @@ $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ 
 ਇਹ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।',
 
 # Parser/template warnings
-'post-expand-template-inclusion-warning' => "'''à¨\96਼ਬਰਦਾਰ:''' à¨\9fà©\88à¨\82ਪਲà©\87à¨\9fਾà¨\82 ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਕੁਝ ਟੈਂਪਲੇਟ ਸ਼ਾਮਲ ਨਹੀਂ ਹੋਣਗੇ।",
-'post-expand-template-inclusion-category' => 'à¨\93ਹ à¨¸à¨«à¨¼ੇ ਜਿੱਥੇ ਟੈਂਪਲੇਟਾਂ ਦੇ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਅਕਾਰ ਹੱਦੋਂ ਵਧ ਗਿਆ ਹੈ',
-'post-expand-template-argument-warning' => "'''à¨\96਼ਬਰਦਾਰ:'''
-à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¤à©\87 à¨\98ੱà¨\9fà©\8b à¨\98ੱà¨\9f à¨\87à¨\95 à¨\90ਸà©\80 à¨\9fà©\88à¨\82ਪਲà©\87à¨\9f ਬਹਿਸ ਹੈ ਜਿਸ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਐਸੀਆਂ ਬਹਿਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
-'post-expand-template-argument-category' => 'à¨\90ਸà©\87 à¨¸à¨«à¨¼à©\87 à¨\9cਿਨà©\8dਹਾà¨\82 à¨µà¨¿à¨\9a à¨«à¨¼à¨°à¨®ੇ ਦੇ ਸਁਘਟਕ ਛੁੱਟ ਗਏ ਹਨ ।',
+'post-expand-template-inclusion-warning' => "'''à¨\96ਬਰਦਾਰ:''' à¨¸à¨¾à¨\82à¨\9aਾ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਕੁਝ ਟੈਂਪਲੇਟ ਸ਼ਾਮਲ ਨਹੀਂ ਹੋਣਗੇ।",
+'post-expand-template-inclusion-category' => 'à¨\93ਹ à¨ªà©°à¨¨ੇ ਜਿੱਥੇ ਟੈਂਪਲੇਟਾਂ ਦੇ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਅਕਾਰ ਹੱਦੋਂ ਵਧ ਗਿਆ ਹੈ',
+'post-expand-template-argument-warning' => "'''ਖਬਰਦਾਰ:'''
+à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¤à©\87 à¨\98ੱà¨\9fà©\8b à¨\98ੱà¨\9f à¨\87ੱà¨\95 à¨\90ਸà©\80 à¨¸à¨¾à¨\82à¨\9aਾ ਬਹਿਸ ਹੈ ਜਿਸ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਐਸੀਆਂ ਬਹਿਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
+'post-expand-template-argument-category' => 'à¨\90ਸà©\87 à¨ªà©°à¨¨à©\87 à¨\9cਿਨà©\8dਹਾà¨\82 à¨µà¨¿à©±à¨\9a à¨¸à¨¾à¨\82à¨\9aੇ ਦੇ ਸਁਘਟਕ ਛੁੱਟ ਗਏ ਹਨ ।',
 'parser-template-loop-warning' => 'ਸਾਂਚੇ ਦਾ ਲੂਪ ਲੱਭਿਆ: [[$1]]',
 
 # "Undo" feature
@@ -818,25 +819,25 @@ $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ 
 $3 ਨੇ ਕਾਰਨ ਇਹ ਦੱਸਿਆ ਹੈ, ''$2''",
 
 # History pages
-'viewpagelogs' => 'à¨\87ਸ à¨¸à¨«à¨¼ੇ ਲਈ ਚਿੱਠੇ ਵੇਖੋ',
+'viewpagelogs' => 'à¨\87ਸ à¨ªà©°à¨¨ੇ ਲਈ ਚਿੱਠੇ ਵੇਖੋ',
 'nohistory' => 'ਇਸ ਸਫ਼ੇ ਦਾ ਕੋਈ ਸੋਧ ਅਤੀਤ ਨਹੀਂ ਹੈ।',
 'currentrev' => 'ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ',
-'currentrev-asof' => '$1 à¨®à©\81ਤਾਬà¨\95 à¨¸à¨­ à¨¤à©\8bà¨\82 à¨¨à¨µà¨¾à¨\82 à¨°à©\80ਵਿà¨\9c਼ਨ',
-'revisionasof' => '$1 à¨¦à¨¾ à¨°à©\80ਵਿà¨\9c਼ਨ',
-'revision-info' => '$2 à¨¦à¨¾ à¨¬à¨£à¨¾à¨\87à¨\86 $1 à¨¦à¨¾ à¨°à©\80ਵਿà¨\9c਼ਨ',
-'previousrevision' => 'â\86\90ਪà©\81ਰਾਣਾ à¨°à©\80ਵਿà¨\9c਼ਨ',
-'nextrevision' => 'ਨਵਾà¨\82 à¨°à©\80ਵਿà¨\9c਼ਨ→',
-'currentrevisionlink' => 'ਸਭ à¨¤à©\8b à¨¨à¨µà¨¾à¨\82 à¨°à©\80ਵਿà¨\9c਼ਨ',
+'currentrev-asof' => '$1 ਮੁਤਾਬਕ ਸਭ ਤੋਂ ਨਵਾਂ ਰੀਵਿਜਨ',
+'revisionasof' => '$1 ਦਾ ਰੀਵਿਜਨ',
+'revision-info' => '$2 ਦਾ ਬਣਾਇਆ $1 ਦਾ ਰੀਵਿਜਨ',
+'previousrevision' => '←ਪੁਰਾਣਾ ਰੀਵਿਜਨ',
+'nextrevision' => 'ਨਵਾà¨\82 à¨°à©\80ਵਿà¨\9cਨ →',
+'currentrevisionlink' => 'ਸਭ ਤੋ ਨਵਾਂ ਰੀਵਿਜਨ',
 'cur' => 'ਮੌਜੂਦਾ',
 'next' => 'ਅੱਗੇ',
-'last' => 'à¨\86à¨\96਼ਰà©\80',
+'last' => 'ਆਖਰੀ',
 'page_first' => 'ਪਹਿਲਾਂ',
 'page_last' => 'ਆਖਰੀ',
 'histlegend' => "ਫ਼ਰਕ ਵੇਖੋ:
-ਮà©\81à¨\95ਾਬਲਾ à¨\95ਰਨ à¨²à¨\88 à¨°à©\80ਵਿà¨\9c਼ਨਾà¨\82 à¨¦à©\87 à¨°à©\87ਡà©\80à¨\93 à¨¬à¨\9fਨਾà¨\82 à¨µà¨¿à¨\9a à¨¨à¨¿à¨¸à¨¼à¨¾à¨¨ à¨²à¨¾à¨\93 à¨\85ਤà©\87 à¨\9cਾà¨\93 à¨\9cਾà¨\82 à¨¸à¨­ à¨¤à©\8bà¨\82 à¨¥à©±à¨²à©\87 à¨µà¨¾à¨²à¨¼ੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
+ਮà©\81à¨\95ਾਬਲਾ à¨\95ਰਨ à¨²à¨\88 à¨°à©\80ਵਿà¨\9cਨਾà¨\82 à¨¦à©\87 à¨°à©\87ਡà©\80à¨\93 à¨¬à¨\9fਨਾà¨\82 à¨µà¨¿à©±à¨\9a à¨¨à¨¿à¨¸à¨¼à¨¾à¨¨ à¨²à¨¾à¨\93 à¨\85ਤà©\87 à¨\9cਾà¨\93 à¨\9cਾà¨\82 à¨¸à¨­ à¨¤à©\8bà¨\82 à¨¥à©±à¨²à©\87 à¨µà¨¾à¨²ੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
 ਲੈਜਅੰਡ:
-'''({{int:cur}})''' = à¨¨à¨µà©\87à¨\82 à¨°à©\80ਵਿà¨\9c਼ਨ à¨¨à¨¾à¨²à¨¼à©\8bà¨\82 à¨«à¨¼à¨°à¨\95, '''({{int:last}})''' = à¨\86à¨\96਼ਰà©\80 à¨°à©\80ਵਿà¨\9c਼ਨ à¨¨à¨¾à¨²à¨¼ੋਂ ਫ਼ਰਕ, '''({{int:minoreditletter}})''' = ਛੋਟੀ ਸੋਧ।",
-'history-fieldset-title' => 'à¨\85ਤà©\80ਤ â\80\99ਤà©\87 à¨¨à¨\9c਼ਰ à¨®à¨¾ਰੋ',
+'''({{int:cur}})''' = à¨¨à¨µà©\87à¨\82 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨«à¨¼à¨°à¨\95, '''({{int:last}})''' = à¨\86à¨\96ਰà©\80 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²ੋਂ ਫ਼ਰਕ, '''({{int:minoreditletter}})''' = ਛੋਟੀ ਸੋਧ।",
+'history-fieldset-title' => 'à¨\87ਤਿਹਾਸ à¨¨à©\82à©° à¨¬à©\8dਰਾà¨\8aà¨\9c਼ à¨\95ਰੋ',
 'history-show-deleted' => 'ਸਿਰਫ਼ ਮਿਟਾਏ ਗਏ',
 'histfirst' => 'ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਦੇ',
 'histlast' => 'ਸਭ ਤੋਂ ਨਵਾਂ',
@@ -899,11 +900,11 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'logdelete-success' => "'''ਚਿੱਠੇ ਦੀ ਦਿੱਖ ਕਾਮਯਾਬੀ ਨਾਲ਼ ਸੈੱਟ ਕੀਤੀ।'''",
 'logdelete-failure' => "'''ਚਿੱਠੇ ਦੀ ਦਿੱਖ ਸੈੱਟ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ:''' $1",
 'revdel-restore' => 'ਦਿੱਖ ਬਦਲੋ',
-'revdel-restore-deleted' => 'ਮਿà¨\9fਾà¨\8f à¨\97à¨\8f à¨°à©\80ਵà©\80à¨\9c਼ਨ',
-'revdel-restore-visible' => 'ਦਿੱਸਣਯà©\8bà¨\97 à¨°à©\80ਵà©\80à¨\9c਼ਨ',
+'revdel-restore-deleted' => 'ਹà¨\9fਾà¨\8f à¨\97à¨\8f à¨°à©\80ਵà©\80à¨\9cਨ',
+'revdel-restore-visible' => 'ਦਿੱਸਣਯੋਗ ਰੀਵੀਜਨ',
 'pagehist' => 'ਪੇਜ ਦਾ ਅਤੀਤ',
 'deletedhist' => 'ਹਟਾਇਆ ਗਿਆ ਅਤੀਤ',
-'revdelete-hide-current' => 'ਤਾਰੀਖ਼ &2, $1 ਦੀ ਚੀਜ਼ ਲੁਕਾਉਣ ਵਿਚ ਗ਼ਲਤੀ: ਇਹ ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ ਹੈ।
+'revdelete-hide-current' => 'ਤਾਰੀਖ &2, $1 ਦੀ ਚੀਜ਼ ਲੁਕਾਉਣ ਵਿਚ ਗਲਤੀ: ਇਹ ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ ਹੈ।
 ਇਹ ਲੁਕਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ।',
 'revdelete-otherreason' => 'ਹੋਰ/ਵਾਧੂ ਕਾਰਨ:',
 'revdelete-reasonotherlist' => 'ਹੋਰ ਕਾਰਨ',
@@ -931,15 +932,15 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'mergelogpagetext' => 'ਹੇਠਾਂ ਇੱਕ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਦੂਜੇ ਦੇ ਅਤੀਤ ਵਿਚ ਰਲ਼ਾਉਣ ਦੀ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਲਿਸਟ ਹੈ।',
 
 # Diffs
-'history-title' => '"$1" ਦੇ  ਸੁਧਾਰਾਂ ਦਾ ਅਤੀਤ',
+'history-title' => 'ਰੀਵਿਜ਼ਨ ਦਾ ਇਤਿਹਾਸ "$1"',
 'difference-title' => '"$1" ਦੇ ਰੀਵਿਜ਼ਨਾਂ ਵਿਚ ਫ਼ਰਕ',
 'difference-title-multipage' => 'ਸਫ਼ਿਆਂ "$1" ਅਤੇ "$2" ਵਿਚ ਫ਼ਰਕ',
 'difference-multipage' => '(ਦੋ ਸਫ਼ਿਆਂ ਵਿਚਕਾਰ ਫ਼ਰਕ)',
 'lineno' => 'ਲਾਈਨ $1:',
 'compareselectedversions' => 'ਚੁਣੇ ਵਰਜਨਾਂ ਦੀ ਤੁਲਨਾ',
 'showhideselectedversions' => 'ਚੁਣੇ ਰੀਵਿਜ਼ਨ ਵਖਾਓ/ਲੁਕਾਓ',
-'editundo' => 'ਨà¨\95ਾਰੋ',
-'diff-multi' => '({{PLURAL:$2|ਮà©\88à¨\82ਬਰ à¨¦à©\80|$2 à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¦à©\80à¨\86à¨\82}} {{PLURAL:$1|ਵਿà¨\9aà¨\95ਾਰਲà©\80 à¨°à©\80ਵਿà¨\9c਼ਨ à¨¨à¨¹à©\80à¨\82 à¨¦à¨¿à¨\96ਾà¨\88 à¨\9cਾ à¨°à¨¹à©\80|ਵਿà¨\9aà¨\95ਾਰਲà©\80à¨\86à¨\82 $1 à¨°à©\80ਵਿà¨\9c਼ਨਾà¨\82 à¨¨à¨¹à©\80à¨\82 à¨¦à¨¿à¨\96ਾà¨\88à¨\86à¨\82 à¨\9cਾ à¨°à¨¹à©\80à¨\86à¨\82}})',
+'editundo' => 'à¨\89ਧà©\87à©\9cੋ',
+'diff-multi' => '({{PLURAL:$2|ਮੈਂਬਰ ਦੀ|$2 ਮੈਂਬਰਾਂ ਦੀਆਂ}} {{PLURAL:$1|ਵਿਚਕਾਰਲੀ ਰੀਵਿਜਨ ਨਹੀਂ ਦਿਖਾਈ ਜਾ ਰਹੀ|ਵਿਚਕਾਰਲੀਆਂ $1 ਰੀਵਿਜ਼ਨਾਂ ਨਹੀਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ}})',
 
 # Search results
 'searchresults' => 'ਖੋਜ ਨਤੀਜੇ',
@@ -955,27 +956,27 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'nextn' => 'ਅਗਲੇ {{PLURAL:$1|$1}}',
 'prevn-title' => 'ਪਿਛਲੇ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
 'nextn-title' => 'ਅਗਲੇ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
-'shown-title' => 'ਪà©\8dਰਤà©\80 à¨¸à¨«à¨¼ਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}} ਵਖਾਓ',
+'shown-title' => 'ਪà©\8dਰਤà©\80 à¨ªà©°à¨¨ਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}} ਵਖਾਓ',
 'viewprevnext' => 'ਵੇਖੋ ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'ਖੋਜ ਇਖ਼ਤਿਆਰ',
-'searchmenu-exists' => "'''à¨\87ਸ à¨µà¨¿à¨\95à©\80 â\80\99ਤà©\87 \"[[:\$1]]\" à¨¨à¨¾à¨® à¨¦à¨¾ à¨¸à¨«à¨¼ਾ ਹੈ।'''",
-'searchmenu-new' => "'''à¨\87ਸ à¨µà¨¿à¨\95à©\80 â\80\99ਤà©\87 \"[[:\$1]]\" à¨¸à¨«à¨¼ਾ ਬਣਾਓ!'''",
+'searchmenu-exists' => "'''à¨\87ਸ à¨µà¨¿à¨\95à©\80 â\80\99ਤà©\87 \"[[:\$1]]\" à¨¨à¨¾à¨® à¨¦à¨¾ à¨ªà©°à¨¨ਾ ਹੈ।'''",
+'searchmenu-new' => "'''à¨\87ਸ à¨µà¨¿à¨\95à©\80 â\80\99ਤà©\87 \"[[:\$1]]\" à¨ªà©°à¨¨ਾ ਬਣਾਓ!'''",
 'searchhelp-url' => 'Help:ਸਮੱਗਰੀ',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ਇਸ ਅਗੇਤਰ ਵਾਲ਼ੇ ਸਫ਼ੇ ਵੇਖੋ]]',
-'searchprofile-articles' => 'ਸਮੱà¨\97ਰà©\80 à¨¸à¨«à¨¼ੇ',
-'searchprofile-project' => 'ਮਦਦ à¨\85ਤà©\87 à¨ªà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f à¨¸à¨«à¨¼ੇ',
-'searchprofile-images' => 'ਮਲà¨\9fà©\80ਮà©\80ਡਿਆ',
+'searchprofile-articles' => 'ਸਮੱà¨\97ਰà©\80 à¨ªà©°à¨¨ੇ',
+'searchprofile-project' => 'ਮਦਦ à¨\85ਤà©\87 à¨ªà¨°à¨¿à¨¯à©\8bà¨\9cਨਾ à¨ªà©°à¨¨ੇ',
+'searchprofile-images' => 'ਮਲà¨\9fà©\80ਮà©\80ਡà©\80ਆ',
 'searchprofile-everything' => 'ਸਭ ਕੁਝ',
 'searchprofile-advanced' => 'ਆਧੁਨਿਕ',
-'searchprofile-articles-tooltip' => '$1 ਵਿਚ ਖੋਜੋ',
-'searchprofile-project-tooltip' => '$1 ਵਿਚ ਖੋਜੋ',
-'searchprofile-images-tooltip' => 'ਫਾà¨\87ਲਾਂ ਖੋਜੋ',
-'searchprofile-everything-tooltip' => 'ਸਭ à¨\9aà©\80à¨\9c਼ਾà¨\82 à¨\96à©\8bà¨\9cà©\8b (à¨\97ੱਲਬਾਤ à¨¸à¨«à¨¼ਿਆਂ ਸਮੇਤ)',
-'searchprofile-advanced-tooltip' => 'ਆਪਣੇ ਬਣਾਏ ਨਾਮ-ਥਾਂਵਾਂ ਵਿਚ ਖੋਜੋ',
-'search-result-size' => '$1 ({{PLURAL:$2| ਸ਼ਬਦ|$2 ਸ਼ਬਦ}})',
-'search-result-category-size' => '{{PLURAL:$1|੧ ਮੈਂਬਰ|$1 ਮੈਂਬਰ}} ({{PLURAL:$2|੧ ਉਪ-ਸ਼੍ਰੇਣੀ|$2 ਉਪ-ਸ਼੍ਰੇਣੀਆਂ}}, {{PLURAL:$3|੧ ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})',
+'searchprofile-articles-tooltip' => '$1 à¨µà¨¿à©±à¨\9a à¨\96à©\8bà¨\9cà©\8b',
+'searchprofile-project-tooltip' => '$1 à¨µà¨¿à©±à¨\9a à¨\96à©\8bà¨\9cà©\8b',
+'searchprofile-images-tooltip' => 'ਫ਼ਾà¨\88ਲਾਂ ਖੋਜੋ',
+'searchprofile-everything-tooltip' => 'ਸਭ à¨\9aà©\80à¨\9c਼ਾà¨\82 à¨\96à©\8bà¨\9cà©\8b (à¨\9aਰà¨\9aਾ à¨ªà©°à¨¨ਿਆਂ ਸਮੇਤ)',
+'searchprofile-advanced-tooltip' => 'à¨\86ਪਣà©\87 à¨¬à¨£à¨¾à¨\8f à¨¨à¨¾à¨®-ਥਾà¨\82ਵਾà¨\82 à¨µà¨¿à©±à¨\9a à¨\96à©\8bà¨\9cà©\8b',
+'search-result-size' => '$1 ({{PLURAL:$2|1 ਸ਼ਬਦ|$2 ਸ਼ਬਦ}})',
+'search-result-category-size' => '{{PLURAL:$1|1 ਮੈਂਬਰ|$1 ਮੈਂਬਰ}} ({{PLURAL:$2|1 ਉਪਸ਼੍ਰੇਣੀ|$2 ਉਪਸ਼੍ਰੇਣੀਆਂ}}, {{PLURAL:$3|1 ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})',
 'search-result-score' => 'ਸਹੀ: $1%',
-'search-redirect' => '($1 ਰੀ-ਡਿਰੈਕਟ)',
+'search-redirect' => '($1 ਰੀਡਿਰੈਕਟ)',
 'search-section' => '(ਭਾਗ $1)',
 'search-suggest' => 'ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ ਸੀ: $1',
 'search-interwiki-caption' => 'ਸਾਥੀ ਪ੍ਰੋਜੈਕਟ',
@@ -990,8 +991,8 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 $1|'''1''' ਨਤੀਜਾ|'''$1''' ਤੱਕ ਨਤੀਜੇ}} ਵਖਾਓ।",
 'showingresultsnum' => "ਹੇਠਾਂ #'''$2''' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ {{PLURAL:
 $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
-'showingresultsheader' => "'''$4''' à¨µà¨¾à¨¸à¨¤à©\87 {{PLURAL:$5|'''$3''' à¨µà¨¿à¨\9aà©\8bà¨\82 '''$1''' à¨¨à¨¤à©\80à¨\9cà©\87|'''$3''' à¨µà¨¿ਚੋਂ '''$1 - $2''' ਨਤੀਜੇ}}",
-'search-nonefound' => 'ਤੁਹਾਡੀ ਖੋਜ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ।',
+'showingresultsheader' => "'''$4''' à¨µà¨¾à¨¸à¨¤à©\87 {{PLURAL:$5|'''$3''' à¨µà¨¿à©±à¨\9aà©\8bà¨\82 '''$1''' à¨¨à¨¤à©\80à¨\9cà©\87|'''$3''' à¨µà¨¿à©±ਚੋਂ '''$1 - $2''' ਨਤੀਜੇ}}",
+'search-nonefound' => 'ਤੁਹਾਡੀ ਖੋਜ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ।',
 'powersearch' => 'ਖੋਜ',
 'powersearch-legend' => 'ਤਕਨੀਕੀ ਖੋਜ',
 'powersearch-ns' => 'ਨੇਮ-ਸਪੇਸ ਵਿੱਚ ਖੋਜ:',
@@ -1084,7 +1085,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'email' => 'ਈਮੇਲ',
 'prefs-help-realname' => 'ਅਸਲੀ ਨਾਂ ਚੋਣਵਾਂ ਹੈ, ਅਤੇ ਜੇ ਤੁਸੀਂ ਇਹ ਦਿੱਤਾ ਹੈ ਤਾਂ ਤੁਹਾਡੇ ਕੰਮ ਵਾਸਤੇ ਗੁਣ ਦੇ ਤੌਰ ਉੱਤੇ ਵਰਤਿਆ ਜਾਵੇਗਾ।',
 'prefs-help-email' => 'ਤੁਹਾਡੀ ਮਰਜ਼ੀ ਹੈ ਈਮੇਲ ਪਤਾ ਦਿਓ ਜਾਂ ਨਾ ਦਿਓ ਪਰ ਪਾਸਵਰਡ ਭੁੱਲ ਜਾਣ ਤੇ ਨਵਾਂ ਪਾਸਵਰਡ ਹਾਸਲ ਕਰਨ ਲਈ ਇਹ ਜ਼ਰੂਰੀ ਹੈ।',
-'prefs-help-email-others' => 'ਤà©\81ਸà©\80à¨\82 à¨\87ਹ à¨µà©\80 à¨\9aà©\81ਣ à¨¸à¨\95ਦà©\87 à¨¹à©\8b à¨\95ਿ à¨¤à©\81ਹਾਡà©\87 à¨®à©\88à¨\82ਬਰ à¨\9cਾà¨\82 à¨\97ੱਲ-ਬਾਤ à¨¸à¨«à¨¼ੇ ਤੋਂ ਹੋਰ ਮੈਂਬਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜ ਸਕਣ?
+'prefs-help-email-others' => 'ਤà©\81ਸà©\80à¨\82 à¨\87ਹ à¨µà©\80 à¨\9aà©\81ਣ à¨¸à¨\95ਦà©\87 à¨¹à©\8b à¨\95ਿ à¨¤à©\81ਹਾਡà©\87 à¨®à©\88à¨\82ਬਰ à¨\9cਾà¨\82 à¨\9aਰà¨\9aਾ à¨ªà©°à¨¨ੇ ਤੋਂ ਹੋਰ ਮੈਂਬਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜ ਸਕਣ?
 ਜਦੋਂ ਹੋਰ ਮੈਂਬਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜਦੇ ਹਨ ਤਾਂ ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਜ਼ਾਹਰ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ।',
 'prefs-help-email-required' => 'ਈ-ਮੇਲ ਪਤਾ ਚਾਹੀਦਾ ਹੈ।',
 'prefs-info' => 'ਮੁੱਢਲੀ ਜਾਣਕਾਰੀ',
@@ -1161,7 +1162,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'ਇਹ ਸਫ਼ਾ ਪੜ੍ਹਨ',
-'action-edit' => 'à¨\87ਹ à¨¸à¨«à¨¼à©\87 â\80\99à¨\9a à¨«à©\87ਰ-ਬਦਲ à¨\95ਰà©\8b',
+'action-edit' => 'à¨\87ਹ à¨ªà©°à¨¨à©\87 à¨¨à©\82à©° à¨¸à©°à¨ªà¨¾à¨¦à¨¿à¨¤ à¨\95ਰਨ',
 'action-createpage' => 'ਸਫ਼ੇ ਬਣਾਉਣ',
 'action-createtalk' => 'ਚਰਚਾ ਸਫ਼ੇ ਬਣਾਉਣ',
 'action-createaccount' => 'ਮੈਂਬਰ ਖਾਤਾ ਬਣਾਉਣ',
@@ -1184,25 +1185,25 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'nchanges' => '$1 {{PLURAL:$1|ਤਬਦੀਲੀ|
 ਤਬਦੀਲੀਆਂ}}',
 'recentchanges' => 'ਹਾਲ ਹੀ ’ਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ',
-'recentchanges-legend' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¦à©\87 à¨\87à¨\96਼ਤਿà¨\86ਰ',
+'recentchanges-legend' => 'ਹਾਲ à¨¦à©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¸à¨¬à©°à¨§à©\80 à¨\9aà©\8bਣਾà¨\82',
 'recentchanges-summary' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹੋਈਆਂ ਸਭ ਤੋਂ ਨਵੀਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਸਫ਼ੇ ’ਤੇ ਵੇਖੋ।',
 'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹਾਲ ਹੀ ਵਿਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਫ਼ੀਡ ’ਚ ਵੇਖੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।',
-'recentchanges-label-newpage' => 'à¨\87ਹ à¨¸à©\8bਧ à¨¨à©\87 à¨¨à¨µà¨¾à¨\82 à¨¸à¨«à¨¼ਾ ਬਣਾਇਆ ਹੈ',
-'recentchanges-label-minor' => 'à¨\87ਹ à¨\9bà©\8bà¨\9fà©\80 à¨¸à©\8bਧ ਹੈ',
+'recentchanges-label-newpage' => 'à¨\87ਹ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨¨à©\87 à¨¨à¨µà¨¾à¨\82 à¨ªà©°à¨¨ਾ ਬਣਾਇਆ ਹੈ',
+'recentchanges-label-minor' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fਾ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ ਹੈ',
 'recentchanges-label-bot' => 'ਇਹ ਸੋਧ ਬੋਟ ਵਲੋਂ ਕੀਤੀ ਗਈ ਹੈ',
 'recentchanges-label-unpatrolled' => 'ਇਹ ਫੇਰ-ਬਦਲ ਹਾਲੇ ਵੇਖਿਆ ਨਹੀਂ ਗਿਆ',
-'rcnote' => "$4, $5 à¨¤à©±à¨\95 à¨\86à¨\96਼ਰà©\80 {{PLURAL:$2|ਦਿਨ|'''$2''' à¨¦à¨¿à¨¨à¨¾à¨\82}} à¨µà¨¿ਚ {{PLURAL:$1|'''1''' ਤਬਦੀਲੀ ਹੋਈ ਹੈ।|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ ਹਨ।}}",
+'rcnote' => "$4, $5 à¨¤à©±à¨\95 à¨\86à¨\96ਰà©\80 {{PLURAL:$2|ਦਿਨ|'''$2''' à¨¦à¨¿à¨¨à¨¾à¨\82}} à¨µà¨¿à©±ਚ {{PLURAL:$1|'''1''' ਤਬਦੀਲੀ ਹੋਈ ਹੈ।|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ ਹਨ।}}",
 'rcnotefrom' => "'''$2''' ਤੱਕ ('''$1''' ਤੱਕ ਦਿੱਸਦੀਆਂ) ਤਬਦੀਲੀਆਂ ਹੇਠ ਦਿੱਤੀਆਂ ਹਨ।",
 'rclistfrom' => '$1 ਤੋਂ ਸ਼ੁਰੂ ਕਰਕੇ ਨਵੀਆਂ ਤਬਦੀਲੀਆਂ ਦਿਖਾਓ',
-'rcshowhideminor' => '$1 à¨\9bà©\8bà¨\9fà©\80à¨\86à¨\82 à¨¸à©\8bਧਾਂ',
+'rcshowhideminor' => '$1 à¨\9bà©\8bà¨\9fà©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86ਂ',
 'rcshowhidebots' => '$1 ਬੋਟ',
 'rcshowhideliu' => '$1 ਲਾਗਇਨ ਹੋਏ ਮੈਂਬਰ',
 'rcshowhideanons' => '$1 ਗੁਮਨਾਮ ਮੈਂਬਰ',
-'rcshowhidepatr' => 'ਵà©\87à¨\96à©\80à¨\86à¨\82 à¨\9cਾ à¨\9aà©\81ੱà¨\95à©\80à¨\86à¨\82 à¨¸à©\8bਧਾà¨\82 $1',
-'rcshowhidemine' => 'ਮà©\87ਰà©\80à¨\86à¨\82 à¨¸à©\8bਧਾਂ $1',
-'rclinks' => 'ਪਿਛਲੇ $2 ਦਿਨਾਂ ਵਿਚ ਹੋਈਆਂ $1 ਤਬਦੀਲੀਆਂ ਦਿਖਾਓ <br /> $3',
+'rcshowhidepatr' => 'à¨\9cਾà¨\82à¨\9aà©\87 à¨¹à©\8bà¨\8f à¨¸à©°à¨ªà¨¾à¨¦à¨¨ $1',
+'rcshowhidemine' => 'ਮà©\87ਰà©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86ਂ $1',
+'rclinks' => 'ਪਿà¨\9bਲà©\87 $2 à¨¦à¨¿à¨¨à¨¾à¨\82 à¨µà¨¿à©±à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 $1 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¦à¨¿à¨\96ਾà¨\93 <br /> $3',
 'diff' => 'ਫ਼ਰਕ',
-'hist' => 'à¨\85ਤà©\80ਤ',
+'hist' => 'à¨\87ਤਿਹਾਸ',
 'hide' => 'ਲੁਕਾਓ',
 'show' => 'ਵਖਾਓ',
 'minoreditletter' => 'ਛ',
@@ -1213,17 +1214,17 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'rc-enhanced-hide' => 'ਵੇਰਵਾ ਲੁਕਾਓ',
 
 # Recent changes linked
-'recentchangeslinked' => 'ਸਬੰਧਿਤ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82',
+'recentchangeslinked' => 'ਸਬੰਧਤ ਤਬਦੀਲੀਆਂ',
 'recentchangeslinked-feed' => 'ਸਬੰਧਤ ਤਬਦੀਲੀਆਂ',
 'recentchangeslinked-toolbox' => 'ਸਬੰਧਿਤ ਤਬਦੀਲੀਆਂ',
-'recentchangeslinked-title' => '"$1" ਨਾਲ ਸਬੰਧਿਤ ਤਬਦੀਲੀਆਂ',
-'recentchangeslinked-noresult' => 'à¨\9cà©\81à©\9cà©\87 à¨¸à¨«ਿਆਂ ’ਤੇ, ਦਿੱਤੇ ਸਮੇਂ ’ਚ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਹੋਈ।',
-'recentchangeslinked-summary' => 'à¨\87ਹ à¨²à¨¿à¨¸à¨\9f à¨\87à¨\95 à¨\96਼ਾਸ à¨¸à¨«à¨¼à©\87 à¨¨à¨¾à¨² à¨¸à¨¬à©°à¨§à¨¿à¨¤ à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨\9cਾà¨\82 à¨\95ਿਸà©\87 à¨\96਼ਾਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨¦à©\87 à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¦à©\87 à¨¹à¨¾à¨² à¨µà¨¿à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨µà¨¾à¨\82 à¨¨à©\82à©° à¨¦à¨°à¨¸à¨¾à¨\82à¨\89ਦà©\80 à¨¹à©\88। [[Special:Watchlist|ਤà©\81ਹਾਡà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f]] à¨µà¨¿à¨\9a à¨®à©\8cà¨\9cà©\82ਦ à¨¸à¨«à¨¼à©\87 à¨®à©\8bà¨\9fà©\87 à¨\85ੱà¨\96ਰਾà¨\82 à¨µà¨¿ਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
-'recentchangeslinked-page' => 'ਸਫ਼ੇ ਦਾ ਨਾਮ:',
-'recentchangeslinked-to' => 'à¨\87ਸਦà©\87 à¨¬à¨¦à¨²à©\87 à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à¨¾à¨²à¨¼ à¨\9cà©\81à©\9cà©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨µà¨¿ਚ ਹੋਏ ਬਦਲਾਅ ਦਿਖਾਓ',
+'recentchangeslinked-title' => '"$1" ਨਾਲ ਸਬੰਧਿਤ ਤਬਦੀਲੀਆਂ',
+'recentchangeslinked-noresult' => 'à¨\9cà©\81à©\9cà©\87 à¨ªà©°à¨¨ਿਆਂ ’ਤੇ, ਦਿੱਤੇ ਸਮੇਂ ’ਚ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਹੋਈ।',
+'recentchangeslinked-summary' => 'à¨\87ਹ à¨¸à©\82à¨\9aà©\80 à¨\87ੱà¨\95 à¨\96ਾਸ à¨ªà©°à¨¨à©\87 à¨¨à¨¾à¨² à¨¸à¨¬à©°à¨§à¨¿à¨¤ à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨\9cਾà¨\82 à¨\95ਿਸà©\87 à¨\96ਾਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨¦à©\87 à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¦à©\87 à¨¹à¨¾à¨² à¨µà¨¿à©±à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨µà¨¾à¨\82 à¨¨à©\82à©° à¨¦à¨°à¨¸à¨¾à¨\82à¨\89ਦà©\80 à¨¹à©\88। [[Special:Watchlist|ਤà©\81ਹਾਡà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80]] à¨µà¨¿à©±à¨\9a à¨®à©\8cà¨\9cà©\82ਦ à¨ªà©°à¨¨à©\87 à¨®à©\8bà¨\9fà©\87 à¨\85ੱà¨\96ਰਾà¨\82 à¨µà¨¿à©±ਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
+'recentchangeslinked-page' => 'ਪੰਨੇ ਦਾ ਨਾਮ:',
+'recentchangeslinked-to' => 'à¨\87ਸਦà©\87 à¨¬à¨¦à¨²à©\87 à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¨à¨¾à¨² à¨\9cà©\81à©\9cà©\87 à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨µà¨¿à©±ਚ ਹੋਏ ਬਦਲਾਅ ਦਿਖਾਓ',
 
 # Upload
-'upload' => 'ਫਾà¨\87ਲ ਅੱਪਲੋਡ ਕਰੋ',
+'upload' => 'ਫ਼ਾà¨\88ਲ ਅੱਪਲੋਡ ਕਰੋ',
 'uploadbtn' => 'ਫਾਇਲ ਅੱਪਲੋਡ ਕਰੋ',
 'reuploaddesc' => 'ਅੱਪਲੋਡ ਫਾਰਮ ਉੱਤੇ ਜਾਓ।',
 'uploadnologin' => 'ਲਾਗਇਨ ਨਹੀਂ ਹੋ',
@@ -1311,13 +1312,13 @@ to upload files.',
 
 # File description page
 'file-anchor-link' => 'ਫ਼ਾਈਲ',
-'filehist' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ à¨\85ਤà©\80ਤ',
-'filehist-help' => 'ਤਾਰੀਖ/ਸਮੇਂ ’ਤੇ ਕਲਿੱਕ ਕਰੋ ਤਾਂ ਉਸ ਸਮੇਂ ਦੀ ਫਾਈਲ ਪੇਸ਼ ਹੋ ਜਾਵੇਗੀ।',
+'filehist' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ à¨\87ਤਿਹਾਸ',
+'filehist-help' => 'ਤਾਰੀਖ/ਸਮੇਂ ’ਤੇ ਕਲਿੱਕ ਕਰੋ ਤਾਂ ਉਸ ਸਮੇਂ ਦੀ ਫਾਈਲ ਪੇਸ਼ ਹੋ ਜਾਵੇਗੀ।',
 'filehist-deleteall' => 'ਸਭ ਹਟਾਓ',
 'filehist-deleteone' => 'ਇਹ ਹਟਾਓ',
 'filehist-revert' => 'ਉਲਟਾਓ',
 'filehist-current' => 'ਮੌਜੂਦਾ',
-'filehist-datetime' => 'ਤਾਰੀਖ਼/ਸਮਾਂ',
+'filehist-datetime' => 'ਤਾਰੀਖ/ਸਮੇਂ',
 'filehist-thumb' => 'ਨਮੂਨਾ',
 'filehist-thumbtext' => '$1 ਦੇ ਸਮੇਂ ਦੇ ਸੰਸਕਰਨ ਦਾ ਅੰਗੂਠਾਕਾਰ ਪ੍ਰਤੀਰੂਪ',
 'filehist-nothumb' => 'ਕੋਈ ਨਮੂਨਾ-ਤਸਵੀਰ ਨਹੀਂ',
@@ -1327,8 +1328,8 @@ to upload files.',
 'filehist-comment' => 'ਟਿੱਪਣੀ',
 'filehist-missing' => 'ਫ਼ਾਈਲ ਗੁੰਮ',
 'imagelinks' => 'ਫ਼ਾਈਲ ਦੀ ਵਰਤੋਂ',
-'linkstoimage' => 'à¨\87ਹ {{PLURAL:$1|ਸਫ਼à©\87 à¨¦à©\87 à¨²à¨¿à©°à¨\95|$1 à¨¸à¨«à¨¼à©\87}} à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à¨¾à¨²à¨¼ ਜੋੜਦੇ ਹਨੇ:',
-'nolinkstoimage' => 'à¨\95à©\8bà¨\88 à¨µà©\80 à¨¸à¨«à¨¼à¨¾ à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à¨¾à¨²à¨¼ ਨਹੀਂ ਜੋੜਦਾ।',
+'linkstoimage' => 'à¨\87ਹ {{PLURAL:$1|ਪੰਨà©\87 à¨¦à©\87 à¨²à¨¿à©°à¨\95|$1 à¨ªà©°à¨¨à©\87}} à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à¨¾à¨² ਜੋੜਦੇ ਹਨੇ:',
+'nolinkstoimage' => 'à¨\95à©\8bà¨\88 à¨µà©\80 à¨ªà©°à¨¨à¨¾ à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à¨¾à¨² ਨਹੀਂ ਜੋੜਦਾ।',
 'morelinkstoimage' => 'ਇਸ ਫ਼ਾਈਲ ਨਾਲ਼ ਜੋੜਦੇ [[Special:WhatLinksHere/$1|ਹੋਰ ਲਿੰਕ]] ਵੇਖੋ।',
 'sharedupload' => 'ਇਹ ਫ਼ਾਈਲ $1 ਤੋਂ ਹੈ ਅਤੇ ਸ਼ਾਇਦ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟਾਂ ਤੇ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।',
 'sharedupload-desc-there' => 'ਇਹ ਫ਼ਾਈਲ $1 ਤੋਂ ਹੈ ਅਤੇ ਸ਼ਾਇਦ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟਾਂ ਦੁਆਰਾ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।
@@ -1383,7 +1384,7 @@ to upload files.',
 'unusedtemplateswlh' => 'ਹੋਰ ਲਿੰਕ',
 
 # Random page
-'randompage' => 'ਰਲ਼ਵਾà¨\82 à¨¸à¨«à¨¼ਾ',
+'randompage' => 'ਰਲਵਾà¨\82 à¨ªà©°à¨¨ਾ',
 'randompage-nopages' => '{{PLURAL:$2|ਇਸ ਥਾਂ-ਨਾਮ|ਇਹਨਾਂ ਥਾਂ-ਨਾਂਵਾ}} ਵਿਚ ਕੋਈ ਸਫ਼ਾ ਨਹੀਂ ਹੈ: $1।',
 
 # Statistics
@@ -1421,7 +1422,7 @@ to upload files.',
 'nbytes' => '$1 {{PLURAL:$1|ਬਾਈਟ|ਬਾਈਟ}}',
 'ncategories' => '$1 {{PLURAL:$1|ਕੈਟੇਗਰੀ|ਕੈਟੇਗਰੀਆਂ}}',
 'nlinks' => '$1 {{PLURAL:$1|ਲਿੰਕ|ਲਿੰਕ}}',
-'nmembers' => '$1 {{PLURAL:$1|ਮੈਂਬਰ|ਮੈਂਬਰ}}',
+'nmembers' => '$1 {{PLURAL:$1|ਮੈਂਬਰ|ਮੈਂਬਰਾਂ}}',
 'nrevisions' => '$1 {{PLURAL:$1|ਰੀਵਿਜ਼ਨ|ਰੀਵਿਜ਼ਨਾਂ}}',
 'nviews' => '$1 {{PLURAL:$1|ਨਜ਼ਾਰਾ|ਨਜ਼ਾਰੇ}}',
 'nimagelinks' => '$1 {{PLURAL:$1|ਸਫ਼ੇ|ਸਫ਼ਿਆਂ}} ’ਤੇ ਵਰਤਿਆ ਹੋਇਆ',
@@ -1440,19 +1441,19 @@ to upload files.',
 'wantedfiles' => 'ਚਾਹੀਦੀਆਂ ਫ਼ਾਈਲਾਂ',
 'wantedtemplates' => 'ਚਾਹੀਦੇ ਸਾਂਚੇ',
 'mostcategories' => 'ਸਭ ਤੋਂ ਵੱਧ ਕੈਟੇਗਰੀਆਂ ਵਾਲ਼ੇ ਸਫ਼ੇ',
-'prefixindex' => 'à¨\87ਸ à¨\85à¨\97à©\87ਤਰ à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨¾à¨°à©\87 à¨¸à¨«à¨¼ੇ',
+'prefixindex' => 'à¨\87ਸ à¨\85à¨\97à©\87ਤਰ à¨µà¨¾à¨²à©\87 à¨¸à¨¾à¨°à©\87 à¨ªà©°à¨¨ੇ',
 'shortpages' => 'ਛੋਟੇ ਪੇਜ',
 'listusers' => 'ਯੂਜ਼ਰ ਲਿਸਟ',
 'usercreated' => '$1 ਨੂੰ $2 ’ਤੇ {{GENDER:$3|ਬਣਾਇਆ}}',
-'newpages' => 'ਨਵà©\87à¨\82 à¨¸à¨«à¨¼ੇ',
+'newpages' => 'ਨਵà©\87à¨\82 à¨ªà©°à¨¨ੇ',
 'newpages-username' => 'ਵਰਤੋਂਕਾਰ-ਨਾਂ:',
 'ancientpages' => 'ਸਭ ਤੋਂ ਪੁਰਾਣੇ ਪੇਜ',
-'move' => 'ਭà©\87à¨\9cà©\8b',
+'move' => 'ਸਥਾਨਾà¨\82ਤਰਣ',
 'movethispage' => 'ਇਹ ਪੇਜ ਭੇਜੋ',
 'unusedcategoriestext' => 'ਇਹ ਕੈਟੇਗਰੀ ਸਫ਼ੇ ਮੌਜੂਦ ਹਨ ਹਾਲਾਂਕਿ ਕਿਸੇ ਵੀ ਸਫ਼ੇ ਜਾਂ ਕੈਟੇਗਰੀ ਨੇ ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ।',
 'notargettitle' => 'ਟਾਰਗੇਟ ਨਹੀਂ',
-'pager-newer-n' => '{{PLURAL:$1| ਨਵਾਂ|$1 ਨਵੇਂ}}',
-'pager-older-n' => '{{PLURAL:$1| ਪੁਰਾਣਾ|$1 ਪੁਰਾਣੇ}}',
+'pager-newer-n' => '{{PLURAL:$1|1 ਨਵਾਂ|$1 ਨਵੇਂ}}',
+'pager-older-n' => '{{PLURAL:$1|1 ਪੁਰਾਣਾ|$1 ਪੁਰਾਣੇ}}',
 
 # Book sources
 'booksources' => 'ਕਿਤਾਬ ਸਰੋਤ',
@@ -1470,13 +1471,13 @@ to upload files.',
 'showhideselectedlogentries' => 'ਚਿੱਠੇ ਦੇ ਚੁਣੇ ਹੋਏ ਦਾਖ਼ਲੇ ਵਖਾਓ/ਲੁਕਾਓ',
 
 # Special:AllPages
-'allpages' => 'ਸਭ à¨¸à¨«à¨¼ੇ',
+'allpages' => 'ਸਭ à¨ªà©°à¨¨ੇ',
 'alphaindexline' => '$1 ਤੋਂ $2',
 'nextpage' => 'ਅੱਗੇ ਪੇਜ ($1)',
 'prevpage' => 'ਪਿੱਛੇ ਪੇਜ ($1)',
 'allpagesfrom' => 'ਇਸਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ ਸਫ਼ੇ ਵਖਾਓ:',
 'allpagesto' => 'ਇਸਤੇ ਖ਼ਤਮ ਹੋਣ ਵਾਲ਼ੇ ਸਫ਼ੇ ਵਖਾਓ:',
-'allarticles' => 'ਸਭ ਸਫ਼ੇ',
+'allarticles' => 'ਸਭ  ਪੰਨੇ',
 'allinnamespace' => 'ਸਭ ਪੇਜ ($1 ਨੇਮਸਪੇਸ)',
 'allnotinnamespace' => 'ਸਭ ਪੇਜ ($1 ਨੇਮਸਪੇਸ ਵਿੱਚ ਨਹੀਂ)',
 'allpagesprev' => 'ਪਿੱਛੇ',
@@ -1490,7 +1491,7 @@ to upload files.',
 'cachedspecial-refresh-now' => 'ਸਭ ਤੋਂ ਨਵਾਂ ਵੇਖੋ।',
 
 # Special:Categories
-'categories' => 'à¨\95à©\88à¨\9fਾà¨\97ਰੀਆਂ',
+'categories' => 'ਸ਼à©\8dਰà©\87ਣੀਆਂ',
 'categoriesfrom' => 'ਇਸਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੀਆਂ ਕੈਟੇਗਰੀਆਂ ਵਖਾਓ:',
 'special-categories-sort-count' => 'ਗਿਣਤੀ ਮੁਤਾਬਕ ਤਰਤੀਬ ਦੇਵੋ',
 'special-categories-sort-abc' => 'ਅੱਖਰਾਂ ਮੁਤਾਬਕ ਤਰਤੀਬ ਦੇਵੋ',
@@ -1504,7 +1505,7 @@ to upload files.',
 'linksearch' => 'ਬਾਹਰੀ ਲਿੰਕ',
 'linksearch-ns' => 'ਥਾਂ-ਨਾਮ:',
 'linksearch-ok' => 'ਖੋਜੋ',
-'linksearch-line' => '$2 ਵਿਚ $1 ਬਾਹਰੀ ਸਿਰਨਾਵਾਂ ਹੈ',
+'linksearch-line' => '$2 à¨µà¨¿à©±à¨\9a $1 à¨¬à¨¾à¨¹à¨°à©\80 à¨¸à¨¿à¨°à¨¨à¨¾à¨µà¨¾à¨\82 à¨¹à©\88',
 
 # Special:ListUsers
 'listusersfrom' => 'ਇਸਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ ਮੈਂਬਰ ਵਖਾਓ:',
@@ -1529,7 +1530,7 @@ to upload files.',
 'listgrouprights-group' => 'ਗਰੁੱਪ',
 'listgrouprights-rights' => 'ਹੱਕ',
 'listgrouprights-helppage' => 'Help:ਗਰੁੱਪ ਹੱਕ',
-'listgrouprights-members' => '(ਮà©\88à¨\82ਬਰਾà¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f)',
+'listgrouprights-members' => '(ਮà©\88à¨\82ਬਰਾà¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80)',
 'listgrouprights-addgroup-all' => 'ਸਾਰੇ ਗਰੁੱਪ ਜੋੜੋ',
 'listgrouprights-removegroup-all' => 'ਸਾਰੇ ਗਰੁੱਪ ਹਟਾਓ',
 
@@ -1562,8 +1563,8 @@ to upload files.',
 'emailuserfooter' => 'ਇਹ ਈ-ਮੇਲ $1 ਨੇ {{SITENAME}} ’ਤੇ "ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ" ਸਹੂਲਤ ਜ਼ਰੀਏ $2 ਨੂੰ ਭੇਜੀ ਸੀ।',
 
 # Watchlist
-'watchlist' => 'ਮà©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f',
-'mywatchlist' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f',
+'watchlist' => 'ਮà©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80',
+'mywatchlist' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80',
 'watchlistfor2' => '$1 $2 ਲਈ',
 'nowatchlist' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ।',
 'watchlistanontext' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ ਵੇਖਣ ਜਾਂ ਸੋਧਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ $1।',
@@ -1574,18 +1575,18 @@ to upload files.',
 ਇਸ ਅਤੇ ਇਸਦੇ ਗੱਲ-ਬਾਤ ਸਫ਼ੇ ’ਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਓਥੇ ਵਖਾਈ ਦੇਣਗੀਆਂ ਅਤੇ ਵੇਖਣ ਦੀ ਸੌਖ ਲਈ [[Special:RecentChanges|ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਦੀ ਲਿਸਟ]] ਵਿਚ ਇਹ ਸਫ਼ਾ '''ਗੂੜ੍ਹਾ''' ਦਿਖਾਈ ਦੇਵੇਗਾ।",
 'removewatch' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ’ਚੋਂ ਹਟਾਓ',
 'removedwatchtext' => 'ਸਫ਼ਾ "[[:$1]]" [[Special:Watchlist|ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ]] ’ਚੋਂ ਹਟ ਚੁੱਕਾ ਹੈ।',
-'watch' => 'ਨà¨\9c਼ਰ ਰੱਖੋ',
+'watch' => 'ਧਿà¨\86ਨ ਰੱਖੋ',
 'watchthispage' => 'ਇਹ ਪੇਜ ਵਾਚ ਕਰੋ',
-'unwatch' => 'ਨà¨\9c਼ਰ ਹਟਾਓ',
+'unwatch' => 'ਧਿà¨\86ਨ ਹਟਾਓ',
 'unwatchthispage' => 'ਨਜ਼ਰ ਰੱਖਣੀ ਬੰਦ ਕਰੋ',
 'notvisiblerev' => 'ਇੱਕ ਵੱਖਰੇ ਮੈਂਬਰ ਦੀ ਬਣਾਈ ਆਖ਼ਰੀ ਰੀਵਿਜ਼ਨ ਮਿਟਾਈ ਜਾ ਚੁੱਕੀ ਹੈ',
 'watchnochange' => 'ਵਖਾਏ ਜਾ ਰਹੇ ਸਮੇਂ ਅੰਦਰ ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲਾ ਕੋਈ ਵੀ ਸਫ਼ਾ ਸੋਧਿਆ ਨਹੀਂ ਗਿਆ।',
-'watchlist-details' => 'à¨\97ੱਲ-ਬਾਤ à¨¸à¨«à¨¼à©\87 à¨¨à¨¾ à¨\97ਿਣਦà©\87 à¨¹à©\8bà¨\8f, à¨¤à©\81ਹਾਡà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà¨¿à¨\9a {{PLURAL:$1|$1 à¨¸à¨«à¨¼à¨¾ à¨¹à©\88|$1 à¨¸à¨«à¨¼ੇ ਹਨ}}।',
+'watchlist-details' => 'à¨\9aਰà¨\9aਾ à¨ªà©°à¨¨à©\87 à¨¨à¨¾ à¨\97ਿਣਦà©\87 à¨¹à©\8bà¨\8f, à¨¤à©\81ਹਾਡà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à©±à¨\9a{{PLURAL:$1|$1 à¨ªà©°à¨¨à¨¾ à¨¹à©\88|$1 à¨ªà©°à¨¨ੇ ਹਨ}}।',
 'watchlistcontains' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ $1 {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|ਸਫ਼ੇ ਹਨ}}।',
 'wlnote' => "$3, $4 ਮੁਤਾਬਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਘੰਟੇ|'''$2''' ਘੰਟਿਆਂ}} ਵਿਚ {{PLURAL:
 $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ}}, ਹੇਠਾਂ ਵੇਖੋ।",
-'wlshowlast' => 'à¨\86à¨\96਼ਰà©\80 $1 à¨¦à¨¿à¨¨ $2 à¨\98à©°à¨\9fà©\87 $3 à¨µà¨\96ਾà¨\93',
-'watchlist-options' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਦੇ ਇਖ਼ਤਿਆਰ',
+'wlshowlast' => 'ਆਖਰੀ $1 ਦਿਨ $2 ਘੰਟੇ $3 ਵਖਾਓ',
+'watchlist-options' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 ਦੇ ਇਖ਼ਤਿਆਰ',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'ਨਿਗ੍ਹਾ (ਵਾਚ) ਰੱਖੀ ਜਾ ਰਹੀ ਹੈ...',
@@ -1713,32 +1714,32 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'sp-contributions-blocklog' => 'ਪਾਬੰਦੀ ਚਿੱਠਾ',
 'sp-contributions-uploads' => 'ਅਪਲੋਡ',
 'sp-contributions-logs' => 'ਚਿੱਠੇ',
-'sp-contributions-talk' => 'à¨\97ੱਲ-ਬਾਤ',
+'sp-contributions-talk' => 'à¨\9aਰà¨\9aਾ',
 'sp-contributions-blocked-notice' => 'ਇਹ ਮੈਂਬਰ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
 ਪਾਬੰਦੀ ਚਿੱਠੇ ਦਾ ਤਾਜ਼ਾ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:',
 'sp-contributions-blocked-notice-anon' => 'ਇਹ IP ਪਤਾ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
 ਪਾਬੰਦੀ ਚਿੱਠੇ ਦਾ ਤਾਜ਼ਾ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:',
 'sp-contributions-search' => 'ਯੋਗਦਾਨ ਖੋਜੋ',
-'sp-contributions-username' => 'IP à¨ªà¨¤à¨¾ à¨\9cਾà¨\82 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਨਾਮ:',
-'sp-contributions-toponly' => 'ਸਿਰਫ਼ à¨\89ਹà©\80 à¨¸à©\8bਧਾà¨\82 à¨µà¨\96ਾà¨\93 à¨\9cà©\8b à¨¸à¨­ à¨¤à©\8bà¨\82 à¨¨à¨µà©\80à¨\82à¨\86à¨\82 ਹਨ',
+'sp-contributions-username' => 'IP à¨ªà¨¤à¨¾ à¨\9cਾà¨\82 à¨®à©\88à¨\82ਬਰ ਨਾਮ:',
+'sp-contributions-toponly' => 'à¨\95à©\87ਵਲ à¨\89ਨà©\8dਹਾà¨\82 à¨¸à©°à¨ªà¨¾à¨¦à¨¨à¨¾à¨\82 à¨¨à©\82à©° à¨¦à¨¿à¨\96ਾਵਾà¨\82 à¨\9cà©\8b à¨¨à¨µà©\80ਨਤਮ à¨¸à©°à¨¸à¨¼à©\8bਧਨ ਹਨ',
 'sp-contributions-submit' => 'ਖੋਜੋ',
 
 # What links here
-'whatlinkshere' => 'à¨\95ਿਹà©\9cà©\87 (ਸਫ਼ੇ) ਇੱਥੇ ਜੋੜਦੇ ਹਨ',
-'whatlinkshere-title' => '$1 ਨਾਲ਼ ਜੋੜਨ ਵਾਲ਼ੇ ਸਫ਼ੇ',
-'whatlinkshere-page' => 'ਸਫਾ:',
-'linkshere' => "à¨\87ਹ à¨¸à¨«à¨¼à©\87 '''[[:$1]]''' à¨¨à¨¾à¨²à¨¼ ਜੋੜਦੇ ਹਨ:",
-'nolinkshere' => "à¨\95à©\8bà¨\88 à¨µà©\80 à¨¸à¨«à¨¼à¨¾ '''[[:$1]]''' à¨¨à¨¾à¨²à¨¼ ਨਹੀਂ ਜੋੜਦਾ।",
-'isredirect' => 'ਰà©\80ਡਿਰà©\88à¨\95à¨\9f à¨¸à¨«à¨¼ਾ',
+'whatlinkshere' => 'à¨\95ਿਹà©\9cà©\87 (ਪੰਨੇ) ਇੱਥੇ ਜੋੜਦੇ ਹਨ',
+'whatlinkshere-title' => '$1 ਨਾਲ ਜੋੜਨ ਵਾਲੇ ਪੰਨੇ',
+'whatlinkshere-page' => 'ਪੰਨਾ:',
+'linkshere' => "à¨\87ਹ à¨ªà©°à¨¨à©\87 '''[[:$1]]''' à¨¨à¨¾à¨² ਜੋੜਦੇ ਹਨ:",
+'nolinkshere' => "à¨\95à©\8bà¨\88 à¨µà©\80 à¨ªà©°à¨¨à¨¾ '''[[:$1]]''' à¨¨à¨¾à¨² ਨਹੀਂ ਜੋੜਦਾ।",
+'isredirect' => 'ਰà©\80ਡਿਰà©\88à¨\95à¨\9f à¨ªà©°à¨¨ਾ',
 'istemplate' => 'ਟਾਕਰਾ ਕਰੋ',
-'isimage' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ à¨²à¨¿à©°à¨\95',
+'isimage' => 'ਫ਼ਾà¨\88ਲ à¨¦à©\80 à¨\95à©\9cà©\80',
 'whatlinkshere-prev' => '{{PLURAL:$1|ਪਿਛਲਾ|ਪਿਛਲੇ $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|ਅਗਲਾ|ਅਗਲੇ $1}}',
-'whatlinkshere-links' => 'â\86\90 à¨²à¨¿à©°à¨\95',
+'whatlinkshere-links' => 'â\86\90 à¨\95à©\9cà©\80à¨\86à¨\82',
 'whatlinkshere-hideredirs' => 'ਅਸਿੱਧੇ ਰਾਹ $1',
 'whatlinkshere-hidetrans' => '$1 ਇੱਥੇ ਕੀ ਕੀ ਜੁੜਦਾ ਹੈ।',
-'whatlinkshere-hidelinks' => '$1 à¨²à¨¿à©°à¨\95',
-'whatlinkshere-hideimages' => 'ਫ਼ਾà¨\88ਲ à¨\9cà©\8bà©\9c $1',
+'whatlinkshere-hidelinks' => '$1 à¨\95à©\9cà©\80',
+'whatlinkshere-hideimages' => 'ਫ਼ਾà¨\88ਲ à¨²à¨¿à©°à¨\95 $1',
 'whatlinkshere-filters' => 'ਛਾਨਣੀਆਂ',
 
 # Block/unblock
@@ -1749,7 +1750,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'ipbreasonotherlist' => 'ਹੋਰ ਕਾਰਨ',
 'ipbsubmit' => 'ਇਹ ਯੂਜ਼ਰ ਲਈ ਪਾਬੰਦੀ',
 'ipbother' => 'ਹੋਰ ਟਾਈਮ:',
-'ipboptions' => '੨ ਘੰਟੇ:2 hours, ੧ ਦਿਨ:1 day, ੩ ਦਿਨ:3 days, ੧ ਹਫ਼ਤਾ:1 week, ੨ ਹਫ਼ਤੇ:2 weeks, ੧ ਮਹੀਨਾ:1 month, ੩ ਮਹੀਨੇ:3 months, ੬ ਮਹੀਨੇ:6 months, ੧ ਸਾਲ:1 year, ਹਮੇਸ਼ਾ ਲਈ:infinite',
+'ipboptions' => '2 ਘੰਟੇ:2 hours, 1 ਦਿਨ:1 day, 3 ਦਿਨ:3 days, 1 ਹਫ਼ਤਾ:1 week, 2 ਹਫ਼ਤੇ:2 weeks, 2 ਮਹੀਨਾ:1 month, 3 ਮਹੀਨੇ:3 months, 6 ਮਹੀਨੇ:6 months, 1 ਸਾਲ:1 year, ਹਮੇਸ਼ਾ ਲਈ:infinite',
 'ipbotheroption' => 'ਹੋਰ',
 'ipbotherreason' => 'ਹੋਰ/ਆਮ ਕਾਰਨ:',
 'ipbwatchuser' => 'ਇਸ ਮੈਂਬਰ ਦੇ ਮੈਂਬਰ ਅਤੇ ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ ਤੇ ਨਜ਼ਰ ਰੱਖੋ',
@@ -1837,7 +1838,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'move-leave-redirect' => 'ਪਿੱਛੇ ਇਕ ਰੀਡਿਰੈਕਟ ਛੱਡੋ',
 
 # Export
-'export' => 'ਸਫ਼ੇ ਐਕਸਪੋਰਟ ਕਰੋ',
+'export' => 'ਪੰਨੇ ਐਕਸਪੋਰਟ ਕਰੋ',
 'exportcuronly' => 'ਸਿਰਫ਼ ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ ਸ਼ਾਮਲ ਕਰੋ, ਸਾਰਾ ਅਤੀਤ ਨਹੀਂ',
 'export-submit' => 'ਐਕਸਪੋਰਟ',
 'export-addcat' => 'ਸ਼ਾਮਲ',
@@ -1858,7 +1859,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 # Thumbnails
 'thumbnail-more' => 'ਵਧਾਓ',
 'filemissing' => 'ਫਾਇਲ ਗੁੰਮ ਹੈ',
-'thumbnail_error' => 'ਨਮà©\82ਨਾ à¨¬à¨£à¨¾à¨\89ਣ à¨µà¨¿à¨\9a à¨\97਼ਲਤੀ ਹੋਈ ਹੈ: $1',
+'thumbnail_error' => 'ਨਮà©\82ਨਾ à¨¬à¨£à¨¾à¨\89ਣ à¨µà¨¿à©±à¨\9a à¨\97ਲਤੀ ਹੋਈ ਹੈ: $1',
 
 # Special:Import
 'import' => 'ਪੇਜ ਇੰਪੋਰਟ ਕਰੋ',
@@ -1876,68 +1877,68 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'import-logentry-upload-detail' => '$1 ਰੀਵਿਜ਼ਨ',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'ਤà©\81ਹਾਡਾ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ à¨¸à¨«à¨¼ਾ',
-'tooltip-pt-mytalk' => 'ਤà©\81ਹਾਡਾ à¨\97ੱਲ-ਬਾਤ à¨¸à¨«à¨¼ਾ',
+'tooltip-pt-userpage' => 'ਤà©\81ਹਾਡਾ à¨®à©\88à¨\82ਬਰ à¨ªà©°à¨¨ਾ',
+'tooltip-pt-mytalk' => 'ਤà©\81ਹਾਡਾ à¨\9aਰà¨\9aਾ à¨ªà©°à¨¨ਾ',
 'tooltip-pt-preferences' => 'ਤੁਹਾਡੀਆਂ ਪਸੰਦਾਂ',
-'tooltip-pt-watchlist' => 'à¨\93ਹਨਾà¨\82 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f ਜੋ ਤੁਸੀਂ ਤਬਦੀਲੀਆਂ ਲਈ ਵੇਖ ਰਹੇ ਹੋ',
+'tooltip-pt-watchlist' => 'à¨\93ਹਨਾà¨\82 à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80 ਜੋ ਤੁਸੀਂ ਤਬਦੀਲੀਆਂ ਲਈ ਵੇਖ ਰਹੇ ਹੋ',
 'tooltip-pt-mycontris' => 'ਤੁਹਾਡੇ ਯੋਗਦਾਨਾਂ ਦੀ ਲਿਸਟ',
 'tooltip-pt-login' => 'ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਲਈ ਉਤਸ਼ਾਹਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ',
 'tooltip-pt-anonlogin' => 'ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਲਈ ਉਤਸ਼ਾਹਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ ਹੈ',
 'tooltip-pt-logout' => 'ਲਾਗ ਆਉਟ',
-'tooltip-ca-talk' => 'ਸਮà¨\97ੱਰà©\80 à¨¸à¨«à¨¼ੇ ਬਾਰੇ ਚਰਚਾ',
-'tooltip-ca-edit' => 'ਤੁਸੀਂ ਇਹ ਸਫ਼ਾ ਸੋਧ ਸਕਦੇ ਹੋ। ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਸੰਭਾਲਣ ਤੋਂ ਪਹਿਲਾਂ ਝਲਕ ਬਟਨ ਵਰਤੋ',
+'tooltip-ca-talk' => 'ਸਮà¨\97ੱਰà©\80 à¨ªà©°à¨¨ੇ ਬਾਰੇ ਚਰਚਾ',
+'tooltip-ca-edit' => 'ਤੁਸੀ ਇਹ ਪੰਨਾ ਬਦਲ ਸਕਦੇ ਹੋ। ਕਿਰਪਾ ਕਰਕੇ ਤਬਦੀਲੀ ਸੰਜੋਣ ਤੋਂ ਪਹਿਲਾਂ ਝਲਕ ਵੇਖੋ।',
 'tooltip-ca-addsection' => 'ਨਵਾਂ ਭਾਗ ਸ਼ੁਰੂ ਕਰੋ',
-'tooltip-ca-viewsource' => 'à¨\87ਹ à¨¸à¨«à¨¼ਾ ਸੁਰੱਖਿਅਤ ਹੈ।
+'tooltip-ca-viewsource' => 'à¨\87ਹ à¨ªà©°à¨¨ਾ ਸੁਰੱਖਿਅਤ ਹੈ।
 ਤੁਸੀਂ ਇਸਦਾ ਸਰੋਤ ਵੇਖ ਸਕਦੇ ਹੋ।',
-'tooltip-ca-history' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨ªà¨¿à¨\9bਲà©\87 à¨°à©\80ਵਿà¨\9c਼ਨ',
-'tooltip-ca-protect' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à¨¹à¨¿à¨«à¨¼à©\82à¨\9c਼ ਕਰੋ',
+'tooltip-ca-history' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨ªà¨¿à¨\9bਲà©\87 à¨°à©\80ਵਿà¨\9cਨ',
+'tooltip-ca-protect' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨¸à©\81ਰੱà¨\96ਿà¨\85ਤ ਕਰੋ',
 'tooltip-ca-unprotect' => 'ਇਸ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
-'tooltip-ca-delete' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à¨¿ਟਾਓ',
-'tooltip-ca-move' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨­à©\87à¨\9cੋ',
-'tooltip-ca-watch' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\86ਪਣà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà¨¿ਚ ਸ਼ਾਮਲ ਕਰੋ',
-'tooltip-ca-unwatch' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\86ਪਣà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ’ਚੋਂ ਹਟਾਓ',
+'tooltip-ca-delete' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨¨à©\82à©° à¨¹ਟਾਓ',
+'tooltip-ca-move' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨®à©\81ੰਤà¨\95ਿਲ à¨\95ਰੋ',
+'tooltip-ca-watch' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨\86ਪਣà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à©±ਚ ਸ਼ਾਮਲ ਕਰੋ',
+'tooltip-ca-unwatch' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨\86ਪਣà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ’ਚੋਂ ਹਟਾਓ',
 'tooltip-search' => '{{SITENAME}} ’ਤੇ ਖੋਜੋ',
-'tooltip-search-go' => 'ਠà©\80à¨\95 à¨\87ਸ à¨¨à¨¾à¨® à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨«à¨¼ੇ ’ਤੇ ਜਾਉ, ਜੇ ਮੌਜੂਦ ਹੈ ਤਾਂ',
+'tooltip-search-go' => 'ਠà©\80à¨\95 à¨\87ਸ à¨¨à¨¾à¨® à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨ੇ ’ਤੇ ਜਾਉ, ਜੇ ਮੌਜੂਦ ਹੈ ਤਾਂ',
 'tooltip-search-fulltext' => 'ਇਸ ਲਿਖਤ ਲਈ ਪੰਨੇ ਲੱਭੋ',
 'tooltip-p-logo' => 'ਮੁੱਖ ਪੰਨੇ ’ਤੇ ਜਾਓ',
-'tooltip-n-mainpage' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼ੇ ’ਤੇ ਜਾਓ',
-'tooltip-n-mainpage-description' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼ੇ ’ਤੇ ਜਾਓ',
+'tooltip-n-mainpage' => 'ਮà©\81ੱà¨\96 à¨ªà©°à¨¨ੇ ’ਤੇ ਜਾਓ',
+'tooltip-n-mainpage-description' => 'ਮà©\81ੱà¨\96 à¨ªà©°à¨¨ੇ ’ਤੇ ਜਾਓ',
 'tooltip-n-portal' => 'ਪਰਿਯੋਜਨਾ ਬਾਰੇ, ਤੁਸੀਂ ਕੀ ਕਰ ਸਕਦੇ ਹੋ, ਕਿੱਥੇ ਕੁਝ ਲੱਭਣਾ ਹੈ',
 'tooltip-n-currentevents' => 'ਮੌਜੂਦਾ ਸਮਾਗਮ ਬਾਰੇ ਪਿਛਲੀ ਜਾਣਕਾਰੀ ਲੱਭੋ',
-'tooltip-n-recentchanges' => 'ਵਿà¨\95à©\80 â\80\99à¨\9a à¨¤à¨¾à¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
-'tooltip-n-randompage' => 'à¨\87à¨\95 à¨°à¨²à¨¼à¨µà¨¾à¨\82 à¨¸à¨«à¨¼ਾ ਲੋਡ ਕਰੋ',
+'tooltip-n-recentchanges' => 'ਵਿà¨\95à©\80 â\80\99à¨\9a à¨¤à¨¾à¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
+'tooltip-n-randompage' => 'à¨\87ੱà¨\95 à¨°à¨²à¨µà¨¾à¨\82 à¨ªà©°à¨¨ਾ ਲੋਡ ਕਰੋ',
 'tooltip-n-help' => 'ਖੋਜਣ ਲਈ ਥਾਂ',
-'tooltip-t-whatlinkshere' => 'ਵਿà¨\95à©\80 à¨¦à©\87 à¨¸à¨¾à¨°à©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f, ਜੋ ਇੱਥੇ ਜੋੜਦੇ ਹਨ',
-'tooltip-t-recentchangeslinked' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¤à©\8bà¨\82 à¨²à¨¿à©°à¨\95 à¨\95à©\80ਤà©\87 à¨¸à¨«à¨¼ਿਆਂ ਵਿੱਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ',
-'tooltip-feed-atom' => 'à¨\87ਸ à¨¸à¨«à¨¼ੇ ਦੀ ਐਟਮ ਫ਼ੀਡ',
-'tooltip-t-contributions' => 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ à¨¦à©\87 à¨¯à©\8bà¨\97ਦਾਨ à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
+'tooltip-t-whatlinkshere' => 'ਵਿà¨\95à©\80 à¨¦à©\87 à¨¸à¨¾à¨°à©\87 à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80, ਜੋ ਇੱਥੇ ਜੋੜਦੇ ਹਨ',
+'tooltip-t-recentchangeslinked' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¤à©\8bà¨\82 à¨²à¨¿à©°à¨\95 à¨\95à©\80ਤà©\87 à¨ªà©°à¨¨ਿਆਂ ਵਿੱਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ',
+'tooltip-feed-atom' => 'à¨\87ਸ à¨ªà©°à¨¨ੇ ਦੀ ਐਟਮ ਫ਼ੀਡ',
+'tooltip-t-contributions' => 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ à¨¦à©\87 à¨¯à©\8bà¨\97ਦਾਨ à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
 'tooltip-t-emailuser' => 'ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
-'tooltip-t-upload' => 'à¨\9aਿੱਤਰ à¨\9cਾà¨\82 à¨®à©\80ਡਿà¨\86 à¨«à¨¾à¨\87ਲਾਂ ਅੱਪਲੋਡ ਕਰੋ',
-'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨\96ਾਸ à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
-'tooltip-t-print' => 'à¨\87ਹ à¨¸à¨«à¨¼ੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
-'tooltip-t-permalink' => 'ਸਫ਼à©\87 à¨¦à©\87 à¨\87ਸ à¨°à©\80ਵਿà¨\9c਼ਨ ਲਈ ਪੱਕਾ ਲਿੰਕ',
-'tooltip-ca-nstab-main' => 'ਸਮੱà¨\97ਰà©\80 à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
-'tooltip-ca-nstab-user' => 'ਮà©\88à¨\82ਬਰ à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'tooltip-t-upload' => 'à¨\9aਿੱਤਰ à¨\9cਾà¨\82 à¨®à©\80ਡà©\80à¨\86 à¨«à¨¾à¨\88ਲਾਂ ਅੱਪਲੋਡ ਕਰੋ',
+'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨\96਼ਾਸ à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
+'tooltip-t-print' => 'à¨\87ਹ à¨ªà©°à¨¨ੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
+'tooltip-t-permalink' => 'ਪੰਨà©\87 à¨¦à©\87 à¨\87ਸ à¨°à©\80ਵਿà¨\9cਨ ਲਈ ਪੱਕਾ ਲਿੰਕ',
+'tooltip-ca-nstab-main' => 'ਸਮੱà¨\97ਰà©\80 à¨ªà©°à¨¨ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-user' => 'ਮà©\88à¨\82ਬਰ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
 'tooltip-ca-nstab-media' => 'ਮੀਡਿਆ ਪੇਜ ਵੇਖੋ',
-'tooltip-ca-nstab-special' => 'à¨\87ਹ à¨\96਼ਾਸ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88, à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à©\82à©° à¨¸à©\8bਧ ਨਹੀਂ ਸਕਦੇ।',
-'tooltip-ca-nstab-project' => 'ਪà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
-'tooltip-ca-nstab-image' => 'ਫ਼ਾà¨\88ਲ à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-special' => 'à¨\87ਹ à¨\96ਾਸ à¨ªà©°à¨¨à¨¾ à¨¹à©\88, à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¨à©\82à©° à¨¬à¨¦à¨² ਨਹੀਂ ਸਕਦੇ।',
+'tooltip-ca-nstab-project' => 'ਪਰਿਯà©\8bà¨\9cਨਾ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-image' => 'ਫ਼ਾà¨\88ਲ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
 'tooltip-ca-nstab-mediawiki' => 'ਸਿਸਟਮ ਸੁਨੇਹੇ ਵੇਖੋ',
 'tooltip-ca-nstab-template' => 'ਸਾਂਚਾ ਵੇਖੋ',
 'tooltip-ca-nstab-help' => 'ਮੱਦਦ ਪੇਜ ਵੇਖੋ',
-'tooltip-ca-nstab-category' => 'à¨\95à©\88à¨\9fਾà¨\97ਰà©\80 à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-category' => 'ਸ਼à©\8dਰà©\87ਣà©\80 à¨ªà©°à¨¨ਾ ਵੇਖੋ',
 'tooltip-minoredit' => 'ਇਸ ’ਤੇ ਬਤੌਰ ਛੋਟੀ ਤਬਦੀਲੀ ਨਿਸ਼ਾਨ ਲਾਓ',
 'tooltip-save' => 'ਆਪਣੀਆਂ ਤਬਦੀਲੀਆਂ ਸਾਂਭੋ',
 'tooltip-preview' => 'ਆਪਣੀ ਤਬਦੀਲੀ ਦੀ ਝਲਕ ਵੇਖੋ, ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵਰਤੋਂ!',
-'tooltip-diff' => 'ਤੁਹਾਡੇ ਦੁਆਰਾ ਲਿਖਤ ਵਿਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਵਖਾਉਂਦਾ ਹੈ',
-'tooltip-compareselectedversions' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨¦à©\8b à¨\9aà©\81ਣà©\87 à¨¹à©\8bà¨\8f à¨¸à©\8bਧਾà¨\82 à¨µà¨¿ਚ ਫ਼ਰਕ ਵੇਖੋ',
-'tooltip-watch' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à©\82à©° à¨\86ਪਣà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà¨¿ਚ ਪਾਓ',
+'tooltip-diff' => 'ਤà©\81ਹਾਡà©\87 à¨¦à©\81à¨\86ਰਾ à¨²à¨¿à¨\96ਤ à¨µà¨¿à©±à¨\9a à¨\95à©\80ਤà©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µà¨\96ਾà¨\89à¨\82ਦਾ à¨¹à©\88',
+'tooltip-compareselectedversions' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨¦à©\8b à¨\9aà©\81ਣà©\87 à¨¹à©\8bà¨\8f à¨¸à©\8bਧਾà¨\82 à¨µà¨¿à©±ਚ ਫ਼ਰਕ ਵੇਖੋ',
+'tooltip-watch' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¨à©\82à©° à¨\86ਪਣà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à©±ਚ ਪਾਓ',
 'tooltip-watchlistedit-normal-submit' => 'ਸਿਰਲੇਖ ਹਟਾਓ',
 'tooltip-watchlistedit-raw-submit' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਨਵੀਂ ਕਰੋ',
 'tooltip-upload' => 'ਅੱਪਲੋਡ ਸਟਾਰਟ ਕਰੋ',
-'tooltip-rollback' => "''ਵਾਪਸ à¨®à©\8bà©\9cà©\8b'' à¨\87à¨\95 à¨¹à©\80 à¨\95ਲਿੱà¨\95 à¨¨à¨¾à¨²à¨¼ à¨\86à¨\96਼ਰੀ ਯੋਗਦਾਨ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ",
-'tooltip-undo' => '"ਨà¨\95ਾਰà©\8b" à¨\87ਸ à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¨à©\82à©° à¨°à©±à¨¦ à¨\95ਰà¨\95à©\87 à¨¸à©\8bਧ à¨«à¨¼à¨¾à¨°à¨® à¨¨à©\82à©° à¨\9dਲà¨\95 à¨¦à©\87 à¨\85ੰਦਾà¨\9c਼ à¨µà¨¿ਚ ਦਿਖਾਉਂਦਾ ਹੈ।
-ਇੰਝ "ਸਾਰ" ਵਿਚ ਤਬਦੀਲੀ ਨਕਾਰਨ ਦਾ ਕਾਰਨ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।',
+'tooltip-rollback' => "''ਵਾਪਸ à¨®à©\8bà©\9cà©\8b'' à¨\87ੱà¨\95 à¨¹à©\80 à¨\95ਲਿੱà¨\95 à¨¨à¨¾à¨² à¨\86à¨\96ਰੀ ਯੋਗਦਾਨ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ",
+'tooltip-undo' => '"à¨\89ਧà©\87à©\9cਨਾ" à¨\87ਸ à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¨à©\82à©° à¨°à©±à¨¦ à¨\95ਰà¨\95à©\87 à¨¸à©\8bਧ à¨«à¨¼à¨¾à¨°à¨® à¨¨à©\82à©° à¨\9dਲà¨\95 à¨¦à©\87 à¨¸à¨¼à©\88ਲà©\80 à¨µà¨¿à©±ਚ ਦਿਖਾਉਂਦਾ ਹੈ।
+à¨\87à©°à¨\9d "ਸਾਰ" à¨µà¨¿à©±à¨\9a à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¨à¨\95ਾਰਨ à¨¦à¨¾ à¨\95ਾਰਨ à¨²à¨¿à¨\96ਿà¨\86 à¨\9cਾ à¨¸à¨\95ਦਾ à¨¹à©\88।',
 'tooltip-preferences-save' => 'ਪਸੰਦਾਂ ਸਾਂਭੋ',
 'tooltip-summary' => 'ਸੰਖੇਪ ਸਾਰ ਦਰਜ ਕਰੋ',
 
@@ -1963,15 +1964,15 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'skinname-simple' => 'ਸੈਂਪਲ',
 
 # Browsing diffs
-'previousdiff' => 'â\86\90 à¨ªà©\81ਰਾਣà©\80 à¨¸à©\8bਧ',
-'nextdiff' => 'ਨਵà©\80à¨\82 à¨¸à©\8bਧ →',
+'previousdiff' => 'â\86\90 à¨\87ਸ à¨¤à©\8bà¨\82 à¨ªà©\81ਰਾਣà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80',
+'nextdiff' => 'ਤਾà¨\9cਾ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ →',
 
 # Media information
 'thumbsize' => 'ਥੰਮਨੇਲ ਆਕਾਰ:',
 'widthheightpage' => '$1 × $2, $3 ਪੇਜ਼',
 'file-info' => 'ਫਾਇਲ ਆਕਾਰ: $1, MIME ਕਿਸਮ: $2',
 'file-info-size' => '$1 × $2 ਪਿਕਸਲ, ਫ਼ਾਈਲ ਆਕਾਰ: $3, MIME ਕਿਸਮ: $4',
-'file-nohires' => 'à¨\87ਸ à¨¤à©\8bà¨\82 à¨µà©±à¨¡à©\80 à¨¤à¨¸à¨µà©\80ਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
+'file-nohires' => 'à¨\87ਸ à¨¤à©\8bà¨\82 à¨µà©±à¨¡à©\80 à¨\9aਿੱਤਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
 'svg-long-desc' => 'SVG ਫ਼ਾਈਲ, ਆਮ ਤੌਰ ’ਤੇ $1 × $2 ਪਿਕਸਲ, ਫ਼ਾਈਲ ਦਾ ਅਕਾਰ: $3',
 'show-big-image' => 'ਪੂਰਾ ਰੈਜ਼ੋਲੇਸ਼ਨ',
 
@@ -1983,13 +1984,13 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 
 # Bad image list
 'bad_image_list' => 'ਤਰਤੀਬ ਇਸ ਤਰਾਂ ਹੈ:
-ਸਿਰਫ਼ à¨²à¨¿à¨¸à¨\9f ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ (* ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੀਆਂ ਕਤਾਰਾਂ) ’ਤੇ ਹੀ ਗ਼ੌਰ ਕੀਤਾ ਜਾਵੇਗਾ।
-ਲਾà¨\88ਨ à¨µà¨¿à¨\9a à¨ªà¨¹à¨¿à¨²à©\80 à¨\95à©\9cà©\80 à¨\97਼ਲਤ à¨«à¨¼à¨¾à¨\88ਲ à¨¦à©\80 à¨\95à©\9cà©\80 à¨¹à©\8bਣà©\80 à¨\9aਾਹà©\80ਦà©\80 à¨¹à©\88। à¨\89ਸ à¨²à¨¾à¨\88ਨ â\80\99à¨\9a à¨\85ੱà¨\97à©\87 à¨¦à¨¿à¨¤à©\80à¨\86à¨\82 à¨\95à©\9cà©\80à¨\86à¨\82 à¨¨à©\82à©° à¨\87ਤਰਾà¨\9c਼ਯà©\8bà¨\97 à¨®à©°à¨¨à¨¿à¨\86 à¨\9cਾਵà©\87à¨\97ਾ, à¨­à¨¾à¨µ à¨\89ਹ à¨¸à¨«à¨¼ੇ ਜਿਨ੍ਹਾਂ ਵਿਚ ਫ਼ਾਈਲ ਕਿਸੇ ਲਾਈਨ ਵਿਚ ਸਥਿਤ ਹੋ ਸਕਦੀ ਹੈ।',
+ਸਿਰਫ਼ à¨¸à©\82à¨\9aà©\80 ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ (* ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੀਆਂ ਕਤਾਰਾਂ) ’ਤੇ ਹੀ ਗ਼ੌਰ ਕੀਤਾ ਜਾਵੇਗਾ।
+ਲਾà¨\88ਨ à¨µà¨¿à¨\9a à¨ªà¨¹à¨¿à¨²à©\80 à¨\95à©\9cà©\80 à¨\97਼ਲਤ à¨«à¨¼à¨¾à¨\88ਲ à¨¦à©\80 à¨\95à©\9cà©\80 à¨¹à©\8bਣà©\80 à¨\9aਾਹà©\80ਦà©\80 à¨¹à©\88। à¨\89ਸ à¨²à¨¾à¨\88ਨ â\80\99à¨\9a à¨\85ੱà¨\97à©\87 à¨¦à¨¿à¨¤à©\80à¨\86à¨\82 à¨\95à©\9cà©\80à¨\86à¨\82 à¨¨à©\82à©° à¨\87ਤਰਾà¨\9c਼ਯà©\8bà¨\97 à¨®à©°à¨¨à¨¿à¨\86 à¨\9cਾਵà©\87à¨\97ਾ, à¨­à¨¾à¨µ à¨\89ਹ à¨ªà©°à¨¨ੇ ਜਿਨ੍ਹਾਂ ਵਿਚ ਫ਼ਾਈਲ ਕਿਸੇ ਲਾਈਨ ਵਿਚ ਸਥਿਤ ਹੋ ਸਕਦੀ ਹੈ।',
 
 # Metadata
-'metadata' => 'ਮà©\87à¨\9fਾ à¨¡à©\88ਟਾ',
-'metadata-help' => 'à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿à¨\9a à¨µà¨¾à¨§à©\82 à¨\9cਾਣà¨\95ਾਰà©\80à¨\86à¨\82 à¨¹à¨¨, à¨\9cà©\8b à¨¸à¨¼à¨¾à¨\87ਦ à¨\89ਸ à¨\95à©\88ਮਰà©\87 à¨\9cਾà¨\82 à¨¸à¨\95à©\88ਨਰ à¨¦à©\80 à¨¦à©\87ਣ à¨¹à¨¨ à¨\9cà©\8b à¨\87ਸਨà©\82à©° à¨¬à¨£à¨¾à¨\89ਣ à¨²à¨\88 à¨µà¨°à¨¤à¨¿à¨\86 à¨\97ਿà¨\86। à¨\9cà©\87 à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿ਚ ਕੋਈ ਤਬਦੀਲੀ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕੁਝ ਵੇਰਵੇ ਬਦਲੀ ਫ਼ਾਈਲ ਦਾ ਸਹੀ ਰੂਪਮਾਨ ਨਾ ਹੋਣ।',
-'metadata-fields' => 'à¨\87ਸ à¨¸à©\81ਨà©\87ਹà©\87 à¨µà¨¿à¨\9a à¨¸à©\82à¨\9aà©\80ਬੱਧ à¨\96à©\87ਤਰ à¨¤à¨¸à¨µà©\80ਰ à¨¸à¨«à¨¼à©\87 â\80\99à¨\9a à¨¸à¨¼à¨¾à¨®à¨² à¨\95à©\80ਤà©\87 à¨\9cਾਣà¨\97à©\87 à¨\9cà©\8b à¨\89ਦà©\8bà¨\82 à¨¦à¨¿à©±à¨¸à¨¦à©\87 à¨¹à¨¨ à¨\9cਦà©\8b à¨®à©\88à¨\9fਾਡà©\88à¨\9fਾ à¨\96਼ਾਕਾ ਬੰਦ ਹੋਵੇ। ਬਾਕੀ ਉਂਞ ਹੀ ਲੁਕੇ ਹੋਣਗੇ।',
+'metadata' => 'ਮà©\80à¨\9fਾਡਾਟਾ',
+'metadata-help' => 'à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿à©±à¨\9a à¨µà¨¾à¨§à©\82 à¨\9cਾਣà¨\95ਾਰà©\80à¨\86à¨\82 à¨¹à¨¨, à¨\9cà©\8b à¨¸à¨¼à¨¾à¨\87ਦ à¨\89ਸ à¨\95à©\88ਮਰà©\87 à¨\9cਾà¨\82 à¨¸à¨\95à©\88ਨਰ à¨¦à©\80 à¨¦à©\87ਣ à¨¹à¨¨ à¨\9cà©\8b à¨\87ਸਨà©\82à©° à¨¬à¨£à¨¾à¨\89ਣ à¨²à¨\88 à¨µà¨°à¨¤à¨¿à¨\86 à¨\97ਿà¨\86। à¨\9cà©\87 à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿à©±ਚ ਕੋਈ ਤਬਦੀਲੀ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕੁਝ ਵੇਰਵੇ ਬਦਲੀ ਫ਼ਾਈਲ ਦਾ ਸਹੀ ਰੂਪਮਾਨ ਨਾ ਹੋਣ।',
+'metadata-fields' => 'à¨\87ਸ à¨¸à©\81ਨà©\87ਹà©\87 à¨µà¨¿à©±à¨\9a à¨¸à©\82à¨\9aà©\80ਬੱਧ à¨\96à©\87ਤਰ à¨\9aਿੱਤਰ à¨ªà©°à¨¨à©\87 â\80\99à¨\9a à¨¸à¨¼à¨¾à¨®à¨² à¨\95à©\80ਤà©\87 à¨\9cਾਣà¨\97à©\87 à¨\9cà©\8b à¨\89ਦà©\8bà¨\82 à¨¦à¨¿à©±à¨¸à¨¦à©\87 à¨¹à¨¨ à¨\9cਦà©\8b à¨®à©\88à¨\9fਾਡà©\88à¨\9fਾ à¨\96ਾਕਾ ਬੰਦ ਹੋਵੇ। ਬਾਕੀ ਉਂਞ ਹੀ ਲੁਕੇ ਹੋਣਗੇ।',
 
 # EXIF tags
 'exif-imagewidth' => 'ਚੌੜਾਈ',
@@ -2032,7 +2033,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'exif-gpsspeed-m' => 'ਮੀਲ ਪ੍ਰਤੀ ਘੰਟਾ',
 
 # External editor support
-'edit-externally' => 'ਬਾਹਰà©\80 à¨\90ਪਲà©\80à¨\95à©\87ਸ਼ਨ à¨µà¨°à¨¤à¨¦à©\87 à¨¹à©\8bà¨\8f à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à©\82à©° à¨¸à©\8bਧà©\8b',
+'edit-externally' => 'ਬਾਹਰà©\80 à¨\90ਪਲà©\80à¨\95à©\87ਸ਼ਨ à¨µà¨°à¨¤à¨¦à©\87 à¨¹à©\8bà¨\8f à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à©\82à©° à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\95ਰà©\8b।',
 'edit-externally-help' => '(ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਲਈ [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] ਵੇਖੋ)',
 
 # 'all' in various places, this might be different for inflected languages
@@ -2088,8 +2089,8 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'ਮੌਕੇ ਮੁਤਾਬਕ ਤਬਦੀਲੀਆਂ ਵੇਖੋ',
-'watchlisttools-edit' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà©\87à¨\96à©\8b â\80\99ਤà©\87 à¨¸à©\8bਧੋ',
-'watchlisttools-raw' => 'à¨\95ੱà¨\9aà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¸à©\8bਧੋ',
+'watchlisttools-edit' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨µà©\87à¨\96à©\8b â\80\99ਤà©\87 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\95ਰੋ',
+'watchlisttools-raw' => 'à¨\95ੱà¨\9aà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\95ਰੋ',
 
 # Core parser functions
 'duplicate-defaultsort' => 'ਪੁਰਾਣੀ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $1 ਦੇ ਬਜਾਏ ਹੁਣ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $2 ਹੋਵੇਗੀ।',
@@ -2098,7 +2099,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'version' => 'ਵਰਜਨ',
 
 # Special:SpecialPages
-'specialpages' => 'ਖਾਸ ਪੰਨੇ',
+'specialpages' => 'à¨\96਼ਾਸ à¨ªà©°à¨¨à©\87',
 'specialpages-group-login' => 'ਲਾਗਇਨ / ਖਾਤਾ ਬਣਾਓ',
 
 # Special:BlankPage
@@ -2107,7 +2108,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 # External image whitelist
 'external_image_whitelist' => " #ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ <pre>
 #ਹੇਠਾਂ ਓਹੀ ਐਕਸਪ੍ਰੈਸ਼ਨ ਪਾਓ (ਜਿਹੜਾ ਹਿੱਸਾ // ਦੇ ਵਿਚਾਲੇ ਹੈ)
-#ਇਹ ਬਾਹਰੀ ਤਸਵੀਰਾਂ ਦੇ URLs (ਹੌਟਲਿੰਕਡ) ਨਾਲ ਮਿਲਣਗੀਆਂ
+#ਇਹ ਬਾਹਰੀ ਤਸਵੀਰਾਂ ਦੇ URLs (ਹੌਟਲਿੰਕਡ) ਨਾਲ ਮਿਲਣਗੀਆਂ
 #ਜਿਹੜੀਆਂ ਮਿਲਣਗੀਆਂ ਓਹ ਬਤੌਰ ਤਸਵੀਰਾਂ ਦਿੱਸਣਗੀਆਂ ਨਹੀਂ ਤਾਂ ਤਸਵੀਰ ਦਾ ਸਿਰਫ਼ ਲਿੰਕ ਨਜ਼ਰ ਆਵੇਗਾ
 #'#' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੀਆਂ ਲਾਈਨਾਂ ਟਿੱਪਣੀਆਂ ਵਾਂਗ ਲਈਆਂ ਜਾਂਦੀਆਂ ਹਨ
 #ਇਹ ਕੇਸ-ਇਨਸੈਂਸਟਿਵ ਹੈ
index 0df47ff..dafadc7 100644 (file)
@@ -729,7 +729,7 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'gotaccount' => "Masz już konto? '''$1'''.",
 'gotaccountlink' => 'Zaloguj się',
 'userlogin-resetlink' => 'Zapomniałeś danych do zalogowania się?',
-'createaccountmail' => 'poprzez e‐mail',
+'createaccountmail' => 'Wyślij hasło e-mailem',
 'createaccountreason' => 'Powód',
 'badretype' => 'Wprowadzone hasła różnią się między sobą.',
 'userexists' => 'Wybrana przez Ciebie nazwa użytkownika jest już zajęta.
@@ -2425,7 +2425,7 @@ Bądź ostrożny, ponieważ usunięcie jej może spowodować zakłócenia w prac
 'rollbacklinkcount' => 'cofnij $1 {{PLURAL:$1|edycję|edycje|edycji}}',
 'rollbacklinkcount-morethan' => 'cofnij więcej niż $1 {{PLURAL:$1|edycję|edycje|edycji}}',
 'rollbackfailed' => 'Nie udało się cofnąć zmiany',
-'cantrollback' => 'Nie można cofnąć edycji, ponieważ jest tylko jedna wersja tej strony.',
+'cantrollback' => 'Nie można cofnąć edycji tego autora, ponieważ jest jedynym autorem tej strony.',
 'alreadyrolled' => 'Nie można dla strony [[:$1|$1]] cofnąć ostatniej zmiany, którą wykonał [[User:$2|$2]] ([[User talk:$2|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]).
 Ktoś inny zdążył już to zrobić lub wprowadził własne poprawki do treści strony.
 
@@ -3668,7 +3668,7 @@ Pozostałe pola zostaną domyślnie ukryte.
 
 # E-mail address confirmation
 'confirmemail' => 'Potwierdzanie adresu e‐mail',
-'confirmemail_noemail' => 'Nie {{GENDER:|podałeś|podałaś}} prawidłowego adresu e‐mail w [[Special:Preferences|preferencjach]].',
+'confirmemail_noemail' => 'Nie podał{{GENDER:|eś|aś|eś/aś}} prawidłowego adresu e‐mail w [[Special:Preferences|preferencjach]].',
 'confirmemail_text' => 'Projekt {{SITENAME}} wymaga weryfikacji adresu e‐mail przed użyciem funkcji korzystających z poczty.
 Wciśnij przycisk poniżej aby wysłać na swój adres list z linkiem do strony WWW.
 List będzie zawierał link do strony, w którym zakodowany będzie identyfikator.
@@ -3691,15 +3691,15 @@ Możesz [[Special:UserLogin|zalogować się]] i korzystać z szerszego wachlarza
 'confirmemail_error' => 'Pojawiły się błędy przy zapisywaniu potwierdzenia.',
 'confirmemail_subject' => '{{SITENAME}} – weryfikacja adresu e‐mail',
 'confirmemail_body' => 'Ktoś łącząc się z komputera o adresie IP $1
-zarejestrował w {{GRAMMAR:MS.lp|{{SITENAME}}}} konto „$2” podając niniejszy adres e‐mail.
+zarejestrował w {{GRAMMAR:MS.lp|{{SITENAME}}}} konto „$2”, podając niniejszy adres e‐mail.
 
-Aby potwierdzić, że to Ty {{GENDER:|zarejestrowałeś|zarejestrowałaś}} to konto oraz, aby włączyć
-wszystkie funkcje korzystające z poczty elektronicznej, otwórz w swojej
+Aby potwierdzić, że to Ty zarejestrował{{GENDER:|eś|aś|eś/aś}} to konto i włączyć
+wszystkie funkcje korzystające z poczty elektronicznej otwórz w swojej
 przeglądarce ten link:
 
 $3
 
-Jeśli to *nie* Ty {{GENDER:|zarejestrowałeś|zarejestrowałaś}} konto, otwórz w swojej przeglądarce
+Jeśli to *nie* Ty zarejestrował{{GENDER:|eś|aś|eś/aś}} konto, otwórz w swojej przeglądarce
 poniższy link, aby anulować potwierdzenie adresu e‐mail:
 
 $5
index 81a9988..a16b21c 100644 (file)
@@ -3659,8 +3659,8 @@ Le figure a së smon-o a amzura pijn-a, j'àotre sòrt d'archivi a ven-o fàite
 'tags-tag' => 'Nòm ëd la tichëtta',
 'tags-display-header' => 'Aparensa ant la lista dle modìfiche',
 'tags-description-header' => 'Descrission completa dël significà',
-'tags-hitcount-header' => 'Modìfiche con tag',
-'tags-edit' => 'modìfica',
+'tags-hitcount-header' => 'Modìfiche con tichëtta',
+'tags-edit' => 'modifiché',
 'tags-hitcount' => '$1 {{PLURAL:$1|cambiament|cambiament}}',
 
 # Special:ComparePages
@@ -3670,14 +3670,15 @@ Le figure a së smon-o a amzura pijn-a, j'àotre sòrt d'archivi a ven-o fàite
 'compare-page2' => 'Pàgina 2',
 'compare-rev1' => 'Revision 1',
 'compare-rev2' => 'Revision 2',
-'compare-submit' => 'Confronta',
+'compare-submit' => 'Confronté',
 'compare-invalid-title' => "Ël tìtol ch'a l'ha spessificà a va pa bin.",
-'compare-title-not-exists' => "Ël tìtol ch'a l'ha spessificà a esist pa",
-'compare-revision-not-exists' => "La revision che it l'has spessificà a esist pa.",
+'compare-title-not-exists' => "Ël tìtol ch'a l'ha spessificà a esist pa.",
+'compare-revision-not-exists' => "La revision che a l'ha spessificà a esist pa.",
 
 # Database error messages
 'dberr-header' => "Sta wiki-sì a l'ha un problema",
-'dberr-problems' => "Spiasent! Sto sit-sì a l'ha dle dificoltà técniche.",
+'dberr-problems' => "An dëspias!
+Ës sit a l'ha dle dificoltà técniche.",
 'dberr-again' => 'Preuva a speté cheich minute e a torna carié.',
 'dberr-info' => '(As peul pa contaté ël database server: $1)',
 'dberr-usegoogle' => 'It peule prové a serché con Google ant ël mentre.',
index 672a8a5..f08cac1 100644 (file)
@@ -357,7 +357,7 @@ $messages = array(
 
 'underline-always' => 'Sempre',
 'underline-never' => 'Nunca',
-'underline-default' => 'Usar a configuração do browser',
+'underline-default' => 'Aspeto ou padrão do browser',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Fonte de edição:',
@@ -475,6 +475,7 @@ $messages = array(
 'namespaces' => 'Espaços nominais',
 'variants' => 'Variantes',
 
+'navigation-heading' => 'Menu de navegação',
 'errorpagetitle' => 'Erro',
 'returnto' => 'Voltar para $1.',
 'tagline' => 'Da {{SITENAME}}',
@@ -628,11 +629,11 @@ Encontra uma lista das páginas especiais válidas em [[Special:SpecialPages|{{i
 'error' => 'Erro',
 'databaseerror' => 'Erro na base de dados',
 'dberrortext' => 'Ocorreu um erro sintáctico na pesquisa à base de dados.
-Isto pode indicar um defeito neste programa.
-A última tentativa de consulta à base de dados foi:
-<blockquote><tt>$1</tt></blockquote>
-na função "<tt>$2</tt>".
-A base de dados devolveu o erro "<tt>$3: $4</tt>".',
+Isto poderá indicar um defeito no software.
+A última pesquisa executada na base de dados foi:
+<blockquote><code>$1</code></blockquote>
+na função "<code>$2</code>".
+A base de dados devolveu o erro "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Ocorreu um erro sintáctico na pesquisa à base de dados.
 A última tentativa de consulta à base de dados foi:
 "$1"
@@ -685,7 +686,7 @@ Consulta: $2',
 'viewsource-title' => 'Mostrar código-fonte de $1',
 'actionthrottled' => 'Operação limitada',
 'actionthrottledtext' => 'Como medida anti-spam, está impedido de realizar esta operação demasiadas vezes num espaço de tempo curto e já excedeu esse limite. Tente de novo dentro de alguns minutos, por favor.',
-'protectedpagetext' => 'Esta página foi protegida contra novas edições.',
+'protectedpagetext' => 'Esta página foi protegida para prevenir a sua edição.',
 'viewsourcetext' => 'Pode ver e copiar o conteúdo desta página:',
 'viewyourtext' => "Pode ver e copiar o código-fonte das '''suas edições''' desta página:",
 'protectedinterface' => 'Esta página fornece o texto da interface ao software, e está protegida para prevenir abusos.',
@@ -717,6 +718,10 @@ O administrador que efetuou o bloqueio deu a seguinte explicação: "$3".',
 
 Pode continuar a utilizar a {{SITENAME}} anonimamente, ou pode <span class='plainlinks'>[$1 autenticar-se novamente]</span> com o mesmo nome de utilizador ou com um nome de utilizador diferente.
 Tenha em atenção que algumas páginas poderão continuar a ser apresentadas como se ainda estivesse autenticado até limpar a cache do seu browser.",
+'welcomeuser' => 'Bem-vindo, $1!',
+'welcomecreation-msg' => '== Bem-vindo, $1! ==
+A sua conta foi criada.
+Não se esqueça de personalizar as suas [[Special:Preferences|preferências]].',
 'yourname' => 'Nome de utilizador:',
 'yourpassword' => 'Palavra-chave:',
 'yourpasswordagain' => 'Repita a palavra-chave:',
@@ -1088,6 +1093,7 @@ Ela já existia.',
 'defaultmessagetext' => 'Texto da mensagem padrão',
 
 # Content models
+'content-model-text' => 'texto simples',
 'content-model-javascript' => 'JavaScript',
 'content-model-css' => 'CSS',
 
@@ -2018,7 +2024,7 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 'uploadnewversion-linktext' => 'Carregar uma nova versão deste ficheiro',
 'shared-repo-from' => 'de $1',
 'shared-repo' => 'um repositório partilhado',
-'upload-disallowed-here' => 'Infelizmente você não pode substituir essa imagem.',
+'upload-disallowed-here' => 'Você não pode substituir este ficheiro.',
 
 # File reversion
 'filerevert' => 'Reverter $1',
@@ -2304,8 +2310,8 @@ Encontram-se disponíveis [[{{MediaWiki:Listgrouprights-helppage}}|informações
 'emailuser' => 'Enviar correio electrónico a este utilizador',
 'emailuser-title-target' => 'Enviar correio eletrónico a {{GENDER:$1|este utilizador|esta utilizadora}}',
 'emailpage' => 'Enviar correio electrónico ao utilizador',
-'emailpagetext' => 'Pode usar o formulário abaixo para enviar uma mensagem por correio electrónico para este utilizador.
-O endereço de correio que introduziu nas suas [[Special:Preferences|preferências]] irá aparecer no campo do remetente da mensagem "De:", para que o destinatário lhe possa responder directamente.',
+'emailpagetext' => 'Pode usar o formulário abaixo para enviar uma mensagem por correio eletrónico para {{GENDER:$1|este utilizador|esta utilizadora}}.
+O endereço de correio que introduziu nas [[Special:Preferences|suas preferências]] irá aparecer no campo do remetente da mensagem "De:", para que o destinatário lhe possa responder diretamente.',
 'usermailererror' => 'O sistema de correio devolveu o erro:',
 'defemailsubject' => 'Correio electrónico da {{SITENAME}}, do utilizador "$1"',
 'usermaildisabled' => 'Correio electrónico do utilizador foi desactivado',
@@ -3120,6 +3126,7 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 
 # Info page
 'pageinfo-title' => 'Informações sobre "$1"',
+'pageinfo-not-current' => 'Desculpe, é impossível fornecer esta informação para revisõe antigas.',
 'pageinfo-header-basic' => 'Informação básica',
 'pageinfo-header-edits' => 'Histórico de edições',
 'pageinfo-header-restrictions' => 'Proteção da página',
@@ -3146,6 +3153,9 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 'pageinfo-magic-words' => '{{PLURAL:$1|Palavra mágica|Palavras mágicas}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria oculta|Categorias ocultas}} ($1)',
 'pageinfo-toolboxlink' => 'Informações da página',
+'pageinfo-redirectsto' => 'Redireciona para',
+'pageinfo-redirectsto-info' => 'informação',
+'pageinfo-contentpage' => 'Contada como página de conteúdo',
 'pageinfo-contentpage-yes' => 'Sim',
 'pageinfo-protect-cascading-yes' => 'Sim',
 
@@ -3202,6 +3212,7 @@ Executá-lo poderá comprometer a segurança do seu sistema.",
 'file-info-size-pages' => '$1 × $2 pixels, tamanho do ficheiro: $3, tipo MIME: $4, $5 {{PLURAL:$5|página|páginas}}',
 'file-nohires' => 'Sem resolução maior disponível.',
 'svg-long-desc' => 'ficheiro SVG, de $1 × $2 pixels, tamanho: $3',
+'svg-long-desc-animated' => 'ficheiro SVG animado, de $1 × $2 pixels, tamanho: $3',
 'show-big-image' => 'Resolução completa',
 'show-big-image-preview' => 'Tamanho desta antevisão: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Outra resolução|Outras resoluções}}: $1.',
@@ -3211,6 +3222,8 @@ Executá-lo poderá comprometer a segurança do seu sistema.",
 'file-info-png-looped' => 'ciclo infinito',
 'file-info-png-repeat' => 'reproduzido $1 {{PLURAL:$1|vez|vezes}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|fotograma|fotogramas}}',
+'file-no-thumb-animation' => "'''Nota: Devido a limitações técnicas, miniaturas deste ficheiro não serão animadas.'''",
+'file-no-thumb-animation-gif' => "'''Nota: Devido a limitações técnicas, miniaturas de imagens GIF de alta resolução tais como esta não serão animadas.'''",
 
 # Special:NewFiles
 'newimages' => 'Galeria de novos ficheiros',
@@ -3230,6 +3243,7 @@ Executá-lo poderá comprometer a segurança do seu sistema.",
 'hours' => '{{PLURAL:$1|uma hora|$1 horas}}',
 'days' => '{{PLURAL:$1|um dia|$1 dias}}',
 'ago' => '$1 atrás',
+'just-now' => 'agora mesmo',
 
 # Bad image list
 'bad_image_list' => 'O formato é o seguinte:
@@ -3983,9 +3997,9 @@ Imagens serão apresentadas pelo browser na resolução máxima; ficheiros de ou
 'logentry-move-move_redir-noredirect' => '$1 moveu a página $3 para $4 sem um redireccionamento',
 'logentry-patrol-patrol' => '$1 marcou a revisão $4 da página $3 como patrulhada',
 'logentry-patrol-patrol-auto' => '$1 marcou automaticamente a revisão $4 da página $3 como patrulhada',
-'logentry-newusers-newusers' => '$1 criou uma conta de utilizador',
-'logentry-newusers-create' => '$1 criou uma conta de utilizador',
-'logentry-newusers-create2' => '$1 criou uma conta de utilizador $3',
+'logentry-newusers-newusers' => 'A conta de utilizador $1 foi criada',
+'logentry-newusers-create' => 'A conta de utilizador $1 foi criada',
+'logentry-newusers-create2' => 'A conta de utilizador $3 foi criada por $1',
 'logentry-newusers-autocreate' => 'A conta $1 foi criada automaticamente',
 'newuserlog-byemail' => 'palavra-chave enviada por correio-electrónico',
 
@@ -4061,4 +4075,6 @@ Caso contrário, pode facilmente usar o formulário abaixo. O seu comentário se
 'duration-centuries' => '$1 {{PLURAL:$1|século|séculos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milénio|milénios}}',
 
+# Unknown messages
+'svg-long-error' => 'Ficheiro SVG inválido: $1',
 );
index 52ea9a5..402184e 100644 (file)
@@ -1603,7 +1603,7 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'rightslogtext' => 'Este é um registro de mudanças nos privilégios de usuários.',
 'rightslogentry' => 'alterou os grupos de privilégios {{GENDER:$1|do usuário|da usuária|de usuário para}} $1 (de $2 para $3)',
 'rightslogentry-autopromote' => 'foi automaticamente promovido de $2 para $3',
-'logentry-rights-rights' => '$1 alterou os grupos de privilégios a quais pertence $3 de $4 para $5',
+'logentry-rights-rights' => '$1 alterou os grupos de usuário de $3 de $4 para $5',
 'rightsnone' => '(nenhum)',
 
 # Associated actions - in the sentence "You do not have permission to X"
index 9dfe974..8e0dec2 100644 (file)
@@ -1576,9 +1576,13 @@ Shown as legend of the second fieldset of the tab 'Search' in [[Special:Preferen
 'youremail' => 'Label of the e-mail text box of the "E-mail options" section of "Special:Preferences".
 
 {{Identical|E-mail}}',
-'username' => '{{Identical|Username}}',
-'uid' => '{{Identical|User ID}}',
-'prefs-memberingroups' => 'This message is shown on [[Special:Preferences]], first tab. See also {{msg-mw|prefs-memberingroups-type}}.',
+'username' => 'Username field in [[Special:Preferences]]. $1 is the current user name for GENDER distinction (depends on sex setting).
+
+{{Identical|Username}}',
+'uid' => 'User ID field in [[Special:Preferences]]. $1 is the current user name for GENDER distinction (depends on sex setting).
+
+{{Identical|User ID}}',
+'prefs-memberingroups' => 'This message is shown on [[Special:Preferences]], first tab. See also {{msg-mw|prefs-memberingroups-type}}. $2 is the user name for GENDER.',
 'prefs-memberingroups-type' => '{{optional}}
 Parameters:
 * $1 is list of group names
@@ -2777,6 +2781,7 @@ Similar to {{msg-mw|rcnote}} which is used on [[Special:RecentChanges]].
 'watcherrortext' => 'When a user clicked the watch/unwatch tab and the action did not succeed, this message is displayed. See also {{msg|addedwatchtext}}. and {{msg|addedwatchtext}}. This message is used raw and should not contain wikitext.',
 
 'enotif_reset' => "This should be translated as \"Mark all pages '''as''' visited\".",
+'enotif_impersonal_salutation' => 'Used for impersonal e-mail notifications, suitable for bulk mailing.',
 'enotif_subject_deleted' => 'Email notification subject for deleted pages, $1 is page title, $2 is page editor.',
 'enotif_subject_created' => 'Email notification subject for new pages, $1 is page title, $2 is page editor.',
 'enotif_subject_moved' => 'Email notification subject for pages that get moved, $1 is page title, $2 is page editor.',
@@ -2794,7 +2799,27 @@ Similar to {{msg-mw|rcnote}} which is used on [[Special:RecentChanges]].
 * $1 is the anonymous user name (i.e. an IP address).',
 'enotif_body' => 'Text of a notification e-mail sent when a watched page has been edited or deleted.[[File:Screenshot_MediaWiki_e-mail_notifier.PNG|150px|right]]
 
-* <tt>$CHANGEDORCREATED</tt> can be one of {{msg-mw|changed}}, {{msg-mw|created}}, or {{msg-mw|deleted}}. Can also be {{msg-mw|blog-added}} or {{msg-mw|blog-edited}} from Wikia.',
+*$WATCHINGUSERNAME is the username of the user receiving the notification.
+*$PAGEINTRO is the first line of the message, saying what happened. It currently can be either of:
+**{{msg-mw|enotif body intro deleted}}
+**{{msg-mw|enotif body intro created}}
+**{{msg-mw|enotif body intro moved}}
+**{{msg-mw|enotif body intro restored}} 
+**{{msg-mw|enotif body intro changed}} (for all the other cases).
+*$NEWPAGE consists of either
+**if the page is new (in older releases), {{msg-mw|enotif newpagetext}}
+**if the page has a previous revision,
+***{{msg-mw|enotif lastdiff}}
+***a newline
+***{{msg-mw|enotif lastvisited}}
+*$PAGEEDITOR_EMAIL and $PAGEEDITOR_WIKI are links respectively to the e-mail user special page and user page for the user who performed the action.
+
+The subject of the e-mail is one of the following messages:
+*{{msg-mw|enotif subject deleted}}
+*{{msg-mw|enotif subject created}}
+*{{msg-mw|enotif subject moved}}
+*{{msg-mw|enotif subject restored}}
+*{{msg-mw|enotif subject changed}}',
 
 # Delete
 'confirm' => 'Submit button text for protection confirmation
@@ -2991,7 +3016,7 @@ Options for the duration of the page protection. Example: See e.g. [[MediaWiki:P
 
 {{Identical|View}}
 {{Identical|Restore}}',
-'undeleteviewlink' => 'ਦੇਖੋ',
+'undeleteviewlink' => 'First part of {{msg-mw|undeletelink}}',
 'undeletereset' => 'Shown on [[Special:Undelete]] as button caption.
 {{Identical|Reset}}',
 'undeleteinvert' => '{{Identical|Invert selection}}',
index afffc6b..b1856e5 100644 (file)
@@ -1448,9 +1448,9 @@ Acțiunea nu este reversibilă.',
 'prefs-emailconfirm-label' => 'Confirmare e-mail:',
 'prefs-textboxsize' => 'Mărime căsuță de modificare',
 'youremail' => 'Adresa de e-mail:',
-'username' => 'Nume de utilizator:',
-'uid' => 'ID utilizator:',
-'prefs-memberingroups' => 'Membru în {{PLURAL:$1|grupul|grupurile}}:',
+'username' => '{{GENDER:$1|Nume de utilizator}}:',
+'uid' => 'ID {{GENDER:$1|utilizator|utilizatoare}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Membru|Membră}} în {{PLURAL:$1|grupul|grupurile}}:',
 'prefs-registration' => 'Data înregistrării:',
 'yourrealname' => 'Nume real:',
 'yourlanguage' => 'Interfață în limba:',
index 9808e95..fb40c51 100644 (file)
@@ -2061,8 +2061,8 @@ $1',
 'emailuser-title-target' => 'Загнати імейл {{GENDER:$1|тому хоснователёви|тій хосновательцї}}',
 'emailuser-title-notarget' => 'Загнати імейл хоснователёви',
 'emailpage' => 'Пошлийте е-пошту',
-'emailpagetext' => 'Ð\9fомоÑ\87ов Ð½Ð¸Ð¶Ðµ Ð·Ð¾Ð±Ñ\80аженого Ñ\84оÑ\80мÑ\83лаÑ\80Ñ\8f Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\82омÑ\83 Ñ\85оÑ\81новаÑ\82елÑ\91ви Ð¿Ð¾Ñ\81лати повідомлїня ел. поштов.
\90дÑ\80еÑ\81а ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, ÐºÐ¾Ñ\82Ñ\80Ñ\83 Ð¼Ð°Ñ\82е Ð·Ð°Ð·Ð½Ð°Ñ\87енÑ\83 Ð² [[Special:Preferences|наÑ\81Ñ\82авлÑ\97нÑ\8f]],Ñ\81Ñ\8f Ð¾Ð±Ñ\8fвиÑ\82Ñ\8c Ñ\8fк Ð°Ð´Ñ\80еÑ\81а Ð¾Ð´Ð¾Ñ\81Ñ\8bлаÑ\82елÑ\8f Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, Ð¶ÐµÐ±Ñ\8b Ð²Ð°Ð¼ Ð°Ð´Ñ\80еÑ\81аÑ\82 Ð¼Ñ\96г Ð¾Ð´Ð¿Ð¾Ð²Ñ\96Ñ\81Ñ\82и Ð¿Ñ\80Ñ\8fмо.',
+'emailpagetext' => 'Ð\97 Ð½Ð¸Ð¶Ðµ Ð·Ð¾Ð±Ñ\80аженÑ\8bм Ñ\84оÑ\80мÑ\83лаÑ\80Ñ\91м Ð³Ð¾Ð´Ð½Ð¾ {{GENDER:$1|Ñ\82омÑ\83 Ñ\85оÑ\81новаÑ\82елÑ\91ви|Ñ\82Ñ\96й Ñ\85оÑ\81новаÑ\82елÑ\8cÑ\86Ñ\97}} Ð·Ð°Ð³Ð½ати повідомлїня ел. поштов.
\90дÑ\80еÑ\81а ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, ÐºÐ¾Ñ\82Ñ\80Ñ\83 Ð¼Ð°Ñ\82е Ð·Ð°Ð·Ð½Ð°Ñ\87енÑ\83 Ð² [[Special:Preferences|наÑ\81Ñ\82авлÑ\97нÑ\8f]],Ñ\81Ñ\8f Ð¾Ð±Ñ\8fвиÑ\82Ñ\8c Ñ\8fк Ð°Ð´Ñ\80еÑ\81а Ð¾Ð´Ð¾Ñ\81Ñ\8bлаÑ\82елÑ\8f Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, Ð¶ÐµÐ±Ñ\8b Ð²Ð°Ð¼ Ð°Ð´Ñ\80еÑ\81аÑ\82 Ð¼Ñ\96г Ð±ÐµÑ\81поÑ\81еÑ\80еднÑ\91 Ð¾Ð´Ð¿Ð¾Ð²Ñ\96Ñ\81Ñ\82и.',
 'usermailererror' => 'Хыба поштового проґраму:',
 'defemailsubject' => '{{SITENAME}}: лист од "$1"',
 'usermaildisabled' => 'Посыланя ел. пошты є выпнуте',
@@ -2130,6 +2130,16 @@ $1',
 'enotif_mailer' => 'Засылач нотіфікацій {{grammar:2sg|{{SITENAME}}}}',
 'enotif_reset' => 'Означіти вшытко як навщівене',
 'enotif_impersonal_salutation' => 'Хоснователь {{grammar:genitive|{{SITENAME}}}}',
+'enotif_subject_deleted' => '$2 {{gender:$2|змазав|змазала}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_created' => '$2 {{gender:$2|створив|створила}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_moved' => '$2 {{gender:$2|переменовав|переменовала}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_restored' => '$2 {{gender:$2|обновив|обновила}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_changed' => '$2 {{gender:$2|змінив|змінила}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_body_intro_deleted' => 'В $PAGEEDITDATE {{gender:$2|змазав|змазала}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_created' => 'В $PAGEEDITDATE {{gender:$2|створив|створила}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_moved' => 'В $PAGEEDITDATE {{gender:$2|переменовав|переменовала}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_restored' => 'В $PAGEEDITDATE {{gender:$2|обновив|обновила}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_changed' => 'В $PAGEEDITDATE {{gender:$2|змінив|змінила}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
 'enotif_lastvisited' => 'Видьте $1 про список вшыткых змін од минулой навщівы.',
 'enotif_lastdiff' => 'Тоту зміну видьте на $1',
 'enotif_anon_editor' => 'анонімный хоснователь $1',
@@ -2306,7 +2316,8 @@ $UNWATCHURL
 'undeletedrevisions' => '{{PLURAL:$1|Обновлена $1 верзія|Обновлены $1 верзії|Обновленых $1 верзій}}',
 'undeletedrevisions-files' => '{{PLURAL:$1|Обновлена єдна верзія|Обновлены $1 верзії|Обновленых $1 верзій}} і $2 {{PLURAL:$2|файл|файлы|файлів}}.',
 'undeletedfiles' => '{{PLURAL:$1|обновленый $1 файл|обновлены $1 файлы|обновленых $1 файлів}}',
-'cannotundelete' => 'Обновлїня ся не вдало; правдоподобно  дахто другый обновив сторінку скоре як вы.',
+'cannotundelete' => 'Обновлїня ся не вдало:
+$1',
 'undeletedpage' => "'''$1 была обновлена'''
 
 Запис о послїднїх мазанях і обновлїнях найдете в  [[Special:Log/delete|книзї змазаных сторінок]].",
@@ -2337,7 +2348,7 @@ $1',
 'blanknamespace' => '(Основный)',
 
 # Contributions
-'contributions' => 'Ð\9fÑ\80иÑ\81пÑ\96вок Ñ\85оÑ\81новаÑ\82елÑ\8f',
+'contributions' => 'Ð\9fÑ\80иÑ\81пÑ\96вкÑ\8b {{GENDER:$1|Ñ\85оÑ\81новаÑ\82елÑ\8f\85оÑ\81новаÑ\82елÑ\8cкÑ\8b}}',
 'contributions-title' => 'Приспівок хоснователя $1',
 'mycontris' => 'Приспівкы',
 'contribsub2' => 'Приспівок $1 ($2)',
@@ -2607,6 +2618,7 @@ $1',
 'immobile-target-namespace-iw' => 'Міджіязыковый одказ не є валідный ціль про переменованя сторінкы.',
 'immobile-source-page' => 'Тота сторінка ся не дасть переменовати.',
 'immobile-target-page' => 'Сторінка ся не дасть переменовати на дану назву.',
+'bad-target-model' => 'Желаный цїль хоснує другый модел обсягу. Не годен перевести $1 на $2.',
 'imagenocrossnamespace' => 'Не дасть ся переменовати файл мімо простор назв файлів',
 'nonfile-cannot-move-to-file' => 'До простору назв  {{ns:file}} ся не дають переменовати сторінкы неналежачі ку файлу',
 'imagetypemismatch' => 'Нове росшырїня файлу не одповідать ёго тіпу',
@@ -2683,6 +2695,7 @@ $1',
 'import-interwiki-templates' => 'Загорнути вшыткы шаблоны',
 'import-interwiki-submit' => 'Імпортовати',
 'import-interwiki-namespace' => 'Цілёвый простор назв:',
+'import-interwiki-rootpage' => 'Цїлёва корїнёва сторінка (необовязково):',
 'import-upload-filename' => 'Назва файлу:',
 'import-comment' => 'Коментарь:',
 'importtext' => 'Просиме Вас, експортуйте сторінку з іншой вікі помочов [[Special:Export|інштрументу на експорт]], уложте файл на ваш діск а потім го заладуйте гев.',
@@ -2714,6 +2727,9 @@ $1',
 'import-error-interwiki' => 'Сторінка „$1“ ся не імпортує, бо єй назва є зарезервована про вонкашнї лінкы (interwiki).',
 'import-error-special' => 'Сторінка „$1“ ся не імпортує, бо належыть до шпеціалного простору назв, до котрого сторінкы не належать.',
 'import-error-invalid' => 'Сторінка „$1“ ся не імпортує, бо єй назва неприпустна.',
+'import-options-wrong' => '{{PLURAL:$2|Неправильна опція|Неправильны опції}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Вказана некоректна назва корїнёвой сторінкы',
+'import-rootpage-nosubpage' => 'В просторї назв вказаной корїнёвой сторінкы «$1» не дозволены підсторінкы',
 
 # Import log
 'importlogpage' => 'Книга імпортів',
@@ -2829,18 +2845,38 @@ $1',
 
 # Info page
 'pageinfo-title' => 'Інформація про "$1"',
+'pageinfo-not-current' => 'Перебачте, інформації не годно вказати про старшы ревізії.',
 'pageinfo-header-basic' => 'Основны інформації',
 'pageinfo-header-edits' => 'Історія едітовань',
 'pageinfo-header-restrictions' => 'Замок сторінкы',
 'pageinfo-header-properties' => 'Властности сторінкы',
 'pageinfo-display-title' => 'Вказована назва',
+'pageinfo-default-sort' => 'Основный ключ сортованя',
+'pageinfo-length' => 'Довжына сторінкы (в байтах)',
+'pageinfo-article-id' => 'ID сторінкы',
+'pageinfo-language' => 'Язык обсягу сторінкы',
+'pageinfo-robot-policy' => 'Наштелёваня про выглядавачі сістемы',
+'pageinfo-robot-index' => 'Індексує ся',
+'pageinfo-robot-noindex' => 'Не індексує ся',
 'pageinfo-views' => 'Чісло переглядів',
 'pageinfo-watchers' => 'Кількость слїдуючіх сторінку',
 'pageinfo-redirects-name' => 'Напрямлїня на гевсю сторінку',
 'pageinfo-subpages-name' => 'Підсторінкы гевсёй сторінкы',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|напрямлїня}}; $3 {{PLURAL:$3|ненапрямлїня}})',
 'pageinfo-firstuser' => 'Заснователь сторінкы',
+'pageinfo-firsttime' => 'Дата створїня сторінкы',
+'pageinfo-lastuser' => 'Остатнїй редактор',
+'pageinfo-lasttime' => 'Дата остатнёго едітованя',
 'pageinfo-edits' => 'Кількость вшыткого едітованя',
 'pageinfo-authors' => 'Вшытка кількость унікатных авторів',
+'pageinfo-recent-edits' => 'Кількость недавных ($1) едітовань',
+'pageinfo-recent-authors' => 'Кількость авторів за остатнїй час',
+'pageinfo-magic-words' => '{{PLURAL:$1|Маґічне слово|Маґічны слова}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрыта катеґорія|Скрыты катеґорії}} ($1)',
+'pageinfo-redirectsto-info' => 'інформація',
+'pageinfo-contentpage' => 'Рахує ся як статя',
+'pageinfo-contentpage-yes' => 'Гей',
+'pageinfo-protect-cascading-yes' => 'Гей',
 
 # Patrolling
 'markaspatrolleddiff' => 'Означіти як перевірене',
@@ -2913,6 +2949,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 година|$1 годины|$1 годин}}',
 'days' => '{{PLURAL:$1|$1 день|$1 днї|$1 днїв}}',
 'ago' => '$1 тому',
+'just-now' => 'акурат теперь',
 
 # Bad image list
 'bad_image_list' => 'Формат має быти наступным:
@@ -3652,9 +3689,9 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'logentry-move-move_redir-noredirect' => '$1 переменовав сторінку $3 на $4 місце напрямлїня без створїня напрямлїня',
 'logentry-patrol-patrol' => '$1 означів ревізію $4 сторінкы $3 як перевірену',
 'logentry-patrol-patrol-auto' => '$1 автоматічно означів ревізію $4 сторінкы $3 як перевірену',
-'logentry-newusers-newusers' => '$1 створив конто хоснователя',
-'logentry-newusers-create' => '$1 створив конто хоснователя',
-'logentry-newusers-create2' => '$1 створив конто хоснователя $3',
+'logentry-newusers-newusers' => 'Створене хосновательске конто $1',
+'logentry-newusers-create' => 'Створене было хосновательске конто $1',
+'logentry-newusers-create2' => '$1 створив хосновательске конто $3',
 'logentry-newusers-autocreate' => 'Автоматічно было створене конто $1',
 'newuserlog-byemail' => 'гело послане електронічнов поштов',
 
index f07257d..bbba547 100644 (file)
@@ -361,6 +361,7 @@ $messages = array(
 'namespaces' => 'නාමඅවකාශයන්',
 'variants' => 'ප්‍රභේද',
 
+'navigation-heading' => 'සංචාලන මෙනුව',
 'errorpagetitle' => 'දෝෂය',
 'returnto' => '$1 වෙත නැවත යන්න.',
 'tagline' => '{{SITENAME}} වෙතින්',
@@ -603,6 +604,9 @@ $2',
 
 ඔබට නිර්නාමිකව {{SITENAME}} කටයුතු කරගෙන යාහැක, නැතහොත් පෙර පරිශීලක ලෙස හෝ වෙනත් පරිශීලකයෙකු ලෙස <span class='plainlinks'>[$1 නැවත ගිණුමක‍ට පිවිසිය හැක]</span>.
 ඔබගේ බ්‍රවුසරයෙහි පූර්වාපේක්‍ෂී සංචිතය (කෑෂය) පිරිසිදුකරන තෙක්, සමහරක් පිටු විසින් ඔබ තවදුරටත් පිවිසී ඇති බවක් දිගටම පෙන්නුම් කිරීමට ඉඩ ඇත.",
+'welcomeuser' => 'ආයුබෝවන්, $1!',
+'welcomecreation-msg' => 'ඔබගේ ගිණුම තනා ඇත.
+ඔබගේ [[Special:Preferences|{{SITENAME}} අභිරුචීන්]] නෙස් කිරීමට අමතක නොකරන්න.',
 'yourname' => 'පරිශීලක නාමය:',
 'yourpassword' => 'මුරපදය:',
 'yourpasswordagain' => 'මුරපදය යළි ඇතුළු කරන්න:',
index ec9432e..002acea 100644 (file)
@@ -1348,9 +1348,9 @@ Tega ni mogoče razveljaviti.',
 'prefs-emailconfirm-label' => 'Potrditev e-pošte:',
 'prefs-textboxsize' => 'Velikost urejevalnega polja',
 'youremail' => 'E-poštni naslov:',
-'username' => 'Uporabniško ime:',
-'uid' => 'ID uporabnika:',
-'prefs-memberingroups' => 'Član {{PLURAL:$1|naslednje skupine|naslednjih skupin|naslednjih skupin|naslednjih skupin|naslednjih skupin}}:',
+'username' => '{{GENDER:$1|Uporabniško|Uporabničino}} ime:',
+'uid' => 'ID {{GENDER:$1|uporabnika|uporabnice}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Član|Članica}} {{PLURAL:$1|naslednje skupine|naslednjih skupin}}:',
 'prefs-memberingroups-type' => '$1',
 'prefs-registration' => 'Registriran od:',
 'yourrealname' => 'Pravo ime:',
index adf1658..3f46114 100644 (file)
@@ -138,6 +138,7 @@ $messages = array(
 'listingcontinuesabbrev' => 'kont',
 'index-category' => 'Maqaalada indeksed',
 'noindex-category' => 'Maqaalada noindeksed',
+'broken-file-category' => 'Bog ka samaysan file aan jirin.',
 
 'about' => 'Ku saabsan',
 'article' => 'Qoraalka bogga oo kooban',
@@ -175,7 +176,9 @@ $messages = array(
 'vector-view-viewsource' => 'Itusi xogta',
 'actions' => 'Waxa dhacaayo',
 'namespaces' => 'Xarun magaceedyada',
+'variants' => 'Isbedelada',
 
+'navigation-heading' => 'Liiska laga galo',
 'errorpagetitle' => 'Qalad',
 'returnto' => 'Ku noqo $1.',
 'tagline' => 'Ka {{SITENAME}}',
@@ -273,6 +276,9 @@ fiiri [[Special:Version|nooca bogga]].',
 'youhavenewmessages' => 'Waxaa heysataa $1 ($2).',
 'newmessageslink' => 'Fariimaha cusub',
 'newmessagesdifflink' => 'bedelkii ugu dambeeyay',
+'youhavenewmessagesfromusers' => 'Waxay $1 kaaga timid {{PLURAL:$3|adeegsade kale|$3 adeegsade}} ($2).',
+'youhavenewmessagesmanyusers' => 'Waxay ka $1 timid adeegsade yaal farabadan ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|Waa fariin cusub|fariin cusub}}',
 'youhavenewmessagesmulti' => '$1 waxaa kuu yaalo fariimo cusub',
 'editsection' => 'Wax ka bedel',
 'editold' => 'Wax ka bedel',
@@ -289,11 +295,15 @@ fiiri [[Special:Version|nooca bogga]].',
 'viewdeleted' => 'Fiiri $1?',
 'restorelink' => '{{PLURAL:$1|halxabo oo bedelkii la tirtiray|$1 bedelyadii la tirtiray}}',
 'feedlinks' => 'Quudinta wararka:',
+'feed-invalid' => 'Habka aad uga soo qayb gashay masaxna.',
+'feed-unavailable' => 'Faallo diyaar maaha.',
 'site-rss-feed' => '$1 RSS quudiye',
 'site-atom-feed' => '$1 Atom quudiye',
 'page-rss-feed' => '"$1" RSS quudiye',
 'page-atom-feed' => '"$1" Atom quudiye',
 'red-link-title' => '$1 (Bogga ma jiro)',
+'sort-descending' => 'Habka hoos udhaca.',
+'sort-ascending' => 'Habka kor u kaca.',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Bog',
@@ -301,7 +311,7 @@ fiiri [[Special:Version|nooca bogga]].',
 'nstab-media' => 'Bogga wararka',
 'nstab-special' => 'Bogga khaaska ah',
 'nstab-project' => 'Bogga mashruuca',
-'nstab-image' => 'Fayl',
+'nstab-image' => 'Gal',
 'nstab-mediawiki' => 'Fariin',
 'nstab-template' => 'Tusmo',
 'nstab-help' => 'Bogga caawinaada',
@@ -309,6 +319,9 @@ fiiri [[Special:Version|nooca bogga]].',
 
 # Main script and global functions
 'nosuchaction' => 'Wax shaqo oo saas ah kama jiro',
+'nosuchactiontext' => 'Waxaad soo raacday URL aan sax ahayn.
+waxaa laga yaabaa URL inaad u qortay hab aan sax ahayn, ama aad soo raacday mid aan jirin.
+waxaa laga yaabaa inuu kani tilmaamayo cilad jirta  {{SITENAME}}.',
 'nosuchspecialpage' => 'Wax bog oo sidaas khaas u ah ma jirto.',
 'nospecialpagetext' => '<strong>Waxaana weydiisay bog khaas ah oosan jirin.</strong>
 
@@ -374,6 +387,7 @@ Waad sii isticmaali kartaa {{SITENAME}} adoona lagu aqoon, ama <span class='plai
 'yourpasswordagain' => 'Markale qor ereysirka:',
 'remembermypassword' => 'Kumbuyuutarkaan ku xasuusnaaw magaceyga gudagalka (ilaa  $1 {{PLURAL:$1|maalin|maalmood}})',
 'yourdomainname' => 'Magacaga shabakada',
+'password-change-forbidden' => 'Ma badali kartid Eraysir ee wiki.',
 'login' => 'Gudaha gal',
 'nav-login-createaccount' => 'Gudaha gal / sameyso akoon',
 'loginprompt' => "Waa in aad shidaa cookies'ka hadii aad rabto in aad soo gasho {{SITENAME}}.",
index 4ee00e5..0b4fbd7 100644 (file)
@@ -350,7 +350,7 @@ $messages = array(
 'cancel' => 'Anulo',
 'moredotdotdot' => 'Më shumë...',
 'mypage' => 'Faqja ime',
-'mytalk' => 'Diskutimet e mia',
+'mytalk' => 'diskutimet',
 'anontalk' => 'Diskutimet për këtë IP',
 'navigation' => 'Shfleto',
 'and' => '&#32;dhe',
@@ -873,10 +873,8 @@ Kjo adresë IP mund të përdoret nga disa përdorues.
 Ju mund [[Special:Search/{{PAGENAME}}|ta kërkoni këtë titull]] në faqe tjera,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} të kërkoni ngjarjet e ngjashme në regjistër],
 ose [{{fullurl:{{FULLPAGENAME}}|action=edit}} të redaktoni këtë faqe]</span>.',
-'noarticletext-nopermission' => 'Momentalisht nuk ka tekst në këtë faqe.
-Ju mundeni [[Special:Search/{{PAGENAME}}|me kërku këtë titull]] në faqe tjera,
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} me kërku në regjistrat tematikisht të afërm],
-apo [{{fullurl:{{FULLPAGENAME}}|action=edit}} me redaktu këtë faqe]</span>.',
+'noarticletext-nopermission' => 'Për momentin faqja e kërkuar është bosh.
+Ju mund të [[Special:Search/{{PAGENAME}}|kërkoni këtë titiull]] në faqet e tjera, ose të <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} këtkoni regjistrat e ngjashëm]</span>, por ju nuk mundeni ta krijoni këtë faqe.',
 'missing-revision' => 'Inspektimi #$1 i faqes me emrin "{{PAGENAME}}" nuk ekziston.
 
 Kjo zakonisht shkaktuar duke ndjekur një lidhje të vjetër tek një faqe që është fshirë. Hollësitë mund të gjenden në [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} regjistrin e fshirjeve].',
@@ -1180,7 +1178,7 @@ Kini kujdes se përdorimi i lidhjeve të shfletimit do të ndryshojë përzgjedh
 'mergelogpagetext' => 'Më poshtë jepet një listë e bashkimeve së fundmi nga historiku i një faqeje në historikun e një faqeje tjetër.',
 
 # Diffs
-'history-title' => 'Historiku i redaktimeve te "$1"',
+'history-title' => 'Historiku i redaktimeve të "$1"',
 'difference-title' => 'Ndryshimi mes inspektimeve të "$1"',
 'difference-title-multipage' => 'Ndryshimi mes faqeve "$1" dhe "$2"',
 'difference-multipage' => '(Ndryshimi midis faqeve)',
@@ -2455,9 +2453,9 @@ $1',
 'blanknamespace' => '(Artikujt)',
 
 # Contributions
-'contributions' => 'Kontributet',
+'contributions' => 'Kontributet e {{GENDER:$1|përdoruesit|përdorueses}}',
 'contributions-title' => 'Kontributet e përdoruesit për $1',
-'mycontris' => 'Redaktimet e mia',
+'mycontris' => 'Kontributet',
 'contribsub2' => 'Për $1 ($2)',
 'nocontribs' => 'Nuk ka asnjë ndryshim që përputhet me këto kritere.',
 'uctop' => ' (sipër)',
@@ -2498,7 +2496,7 @@ Bllokimi i funditë është më poshtë për referencë:',
 'whatlinkshere-hideredirs' => '$1 përcjellimet',
 'whatlinkshere-hidetrans' => '$1 përfshirjet',
 'whatlinkshere-hidelinks' => '$1 lidhjet',
-'whatlinkshere-hideimages' => '$1 lidhjet e figurave',
+'whatlinkshere-hideimages' => '$1 lidhjet me skedat',
 'whatlinkshere-filters' => 'Filtra',
 
 # Block/unblock
index d4af996..7dbb673 100644 (file)
@@ -3325,8 +3325,8 @@ $1',
 'markedaspatrollederror' => 'Не могу да означим као патролирано',
 'markedaspatrollederrortext' => 'Морате изабрати измену да бисте је означили као прегледану.',
 'markedaspatrollederror-noautopatrol' => 'Не можете да означите своје измене као патролиране.',
-'markedaspatrollednotify' => 'Ова измена на страници $1 је означена као прегледана.',
-'markedaspatrollederrornotify' => 'Није успешно означавање ове страницее као прегледаном.',
+'markedaspatrollednotify' => 'Ова измена на страници „$1“ је означена као прегледана.',
+'markedaspatrollederrornotify' => 'Није успешно означавање ове странице као прегледаном.',
 
 # Patrol log
 'patrol-log-page' => 'Дневник патролирања',
index 06943a5..d5460a5 100644 (file)
@@ -3235,7 +3235,7 @@ Ovo je verovatno izazvano vezom do spoljašnjeg sajta koji se nalazi na crnoj li
 'markedaspatrollederror' => 'Ne mogu da označim kao patrolirano',
 'markedaspatrollederrortext' => 'Morate izabrati izmenu da biste je označili kao pregledanu.',
 'markedaspatrollederror-noautopatrol' => 'Ne možete da označite svoje izmene kao patrolirane.',
-'markedaspatrollednotify' => 'Ova izmena na stranici $1 je označena kao pregledana.',
+'markedaspatrollednotify' => 'Ova izmena na stranici „$1“ je označena kao pregledana.',
 'markedaspatrollederrornotify' => 'Nije uspešno označavanje ove stranice kao pregledanom.',
 
 # Patrol log
index fbb6c94..65fbe47 100644 (file)
@@ -544,6 +544,13 @@ $2',
 
 మీరు {{SITENAME}}ని అజ్ఞాతంగా వాడుతూండొచ్చు, లేదా ఇదే వాడుకరిగా కానీ లేదా వేరే వాడుకరిగా కానీ <span class='plainlinks'>[$1 మళ్ళీ ప్రవేశించవచ్చు]</span>.
 అయితే, మీ విహారిణిలోని కోశాన్ని శుభ్రపరిచే వరకు కొన్ని పేజీలు మీరింకా ప్రవేశించి ఉన్నట్లుగానే చూపించవచ్చని గమనించండి.",
+'welcomeuser' => 'స్వాగతం, $1!',
+'welcomecreation-msg' => 'మీ ఖాతాని సృష్టించాం.
+మీ [[Special:Preferences|{{SITENAME}} అభిరుచులను]] మార్చుకోవడం మరువకండి.
+తెలుగు వికీపీడియాలో తెలుగులోనే రాయాలి. వికీలో రచనలు చేసే ముందు, కింది సూచనలను గమనించండి.
+తెలుగు {{SITENAME}}లో తెలుగులోనే రాయాలి. వికీలో రచనలు చేసే ముందు, కింది సూచనలను గమనించండి.
+*వికీని త్వరగా అర్థం చేసుకునేందుకు [[వికీపీడియా:5 నిమిషాల్లో వికీ|5 నిమిషాల్లో వికీ]] పేజీని చూడండి.
+*తెలుగులో రాసేందుకు ఇంగ్లీషు అక్షరాల ఉచ్ఛారణతో తెలుగు టైపు చేసే [[వికీపీడియా:టైపింగు సహాయం| టైపింగ్  సహాయం]] వాడవచ్చు. మరిన్ని ఉపకరణాల కొరకు [[కీ బోర్డు]] మరియు   తెరపై తెలుగు సరిగా లేకపోతే[[వికీపీడియా:Setting up your browser for Indic scripts|ఈ పేజీ]]  చూడండి.',
 'yourname' => 'వాడుకరి పేరు:',
 'yourpassword' => 'సంకేతపదం:',
 'yourpasswordagain' => 'సంకేతపదాన్ని మళ్ళీ ఇవ్వండి:',
index 18801e4..69405ee 100644 (file)
@@ -723,7 +723,7 @@ Sorgu: $2',
 'actionthrottled' => 'Eylem kısılmışdır',
 'actionthrottledtext' => 'Anti-spam önlemleri nedeniyle, bir eylemi kısa bir zaman aralığında çok defa yapmanız kısıtlandı, ve siz sınırı aşmış bulunmaktasınız.
 Lütfen birkaç dakika sonra yeniden deneyin.',
-'protectedpagetext' => 'Bu sayfa değişiklik yapılmaması için koruma altına alınmıştır.',
+'protectedpagetext' => 'Bu sayfa değişiklik ya da diğer eylemlerin yapılmasını engellemek için koruma altına alınmıştır.',
 'viewsourcetext' => 'Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz:',
 'viewyourtext' => "Bu sayfaya '''yaptığınız değişikliklerin''' kaynağını görünteleyip kopyalayabilirsiniz:",
 'protectedinterface' => "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır. Eklemek ya da bütün vikilerdeki çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesi [//translatewiki.net/ translatewiki.net]'i kullanın.",
@@ -1272,7 +1272,7 @@ Lütfen günlükleri kontrol edin.',
 # Suppression log
 'suppressionlog' => 'Gizleme kayıtları',
 'suppressionlogtext' => 'Aşağıdaki, hizmetlilerden gizlenen içerik içeren silinmelerin ve engellemelerin listesidir.
-Şu anda işlevsel olan yasak ve engellemelerin listesi için [[Special:BlockList|IP engelleme listesine]] bakın.',
+Şu anda işlevsel olan yasak ve engellemelerin listesi için [[Special:BlockList|engelleme listesine]] bakın.',
 
 # History merging
 'mergehistory' => 'Sayfa geçmişlerini takas et.',
@@ -1888,7 +1888,7 @@ Güvenlik denetimi uygun bir şekilde gerçekleştirilemiyor.',
 'img-auth-accessdenied' => 'Erişim engellendi',
 'img-auth-nopathinfo' => 'Eksik PATH_INFO.
 Sunucunuz bu bilgiyi geçirmek için ayarlanmamış.
-CGI-tabanlı olabilir ve img_auth desteklenmiyor olabilir.
+CGI-tabanlı ve img_auth desteklenmiyor olabilir.
 https://www.mediawiki.org/wiki/Manual:Image_Authorization sayfasına bakın.',
 'img-auth-notindir' => 'İstenen yol yapılandırılmış yükleme dizininde değil.',
 'img-auth-badtitle' => '"$1" ile geçerli bir başlık yapılamıyor.',
@@ -2082,6 +2082,7 @@ Her satırın içerdiği bağlantılar; birinci ve ikinci yönlendirme, ayrıca
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bayt|bayt}}',
 'ncategories' => '{{PLURAL:$1|kategori|kategoriler}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interviki|interviki}}',
 'nlinks' => '$1 {{PLURAL:$1|bağlantı|bağlantılar}}',
 'nmembers' => '{{PLURAL:$1|üye|üye}}',
 'nrevisions' => '{{PLURAL:$1|değişiklik|değişiklikler}}',
@@ -3029,6 +3030,7 @@ Geçici dosya kayıp.',
 'pageinfo-default-sort' => 'Varsayılan sıralama anahtarı',
 'pageinfo-length' => 'Sayfa uzunluğu (bayt cinsinden)',
 'pageinfo-article-id' => 'Sayfa ID',
+'pageinfo-language' => 'Sayfa içeriğinin dili',
 'pageinfo-robot-policy' => 'Arama motoru durumu',
 'pageinfo-robot-index' => 'İndekslenebilir',
 'pageinfo-robot-noindex' => 'İndekslenemez',
index 0bccb10..e86304f 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author A1
  * @author AS
+ * @author Aced
  * @author Ahonc
  * @author Aleksandrit
  * @author Alex Khimich
@@ -1512,9 +1513,9 @@ $1",
 'prefs-emailconfirm-label' => 'Підтвердження електронної пошти:',
 'prefs-textboxsize' => 'Розмір вікна редагування',
 'youremail' => 'Адреса електронної пошти:',
-'username' => "Ім'я користувача:",
-'uid' => 'Ідентифікатор користувача:',
-'prefs-memberingroups' => 'Член {{PLURAL:$1|групи|груп}}:',
+'username' => '{{GENDER:$1|Ім’я користувача}}:',
+'uid' => 'Ідентифікатор {{GENDER:$1|користувача}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Член}} {{PLURAL:$1|групи|груп}}:',
 'prefs-memberingroups-type' => '$1',
 'prefs-registration' => 'Час реєстрації:',
 'prefs-registration-date-time' => '$1',
@@ -2870,12 +2871,12 @@ $1',
 Ви відповідаєте за те, щоб посилання і далі вказували туди, куди треба.
 
 Зверніть увагу, що сторінка '''не буде''' перейменована, якщо сторінка з новою назвою вже існує, крім випадків, коли вона є перенаправленням або порожня та не має історії редагувань.
-Це означає, що Ви можете перейменувати сторінку назад, якщо Ви допустилися помилки, і при цьому не зможете випадково перезаписати існуючу сторінку.
+Це означає, що Ви можете перейменувати сторінку назад, якщо Ви допустилися помилки, і при цьому не зможете випадково перезаписати наявну сторінку.
 
 '''Попередження!'''
 Перейменування може призвести до масштабних і несподіваних змін для ''популярних'' сторінок.
-Тому перед перейменуванням упевніться, що Ви розумієте оцінили можливі наслідки.",
-'movepagetalktext' => "Приєднана сторінка обговорення також буде автоматично перейменована, '''окрім наступних випадків:'''
+Тому перед перейменуванням упевніться, що Виоцінили можливі наслідки.",
+'movepagetalktext' => "Приєднана сторінка обговорення також буде автоматично перейменована, '''окрім таких випадків:'''
 * Непорожня сторінка обговорення з такою назвою вже існує або
 * Ви не поставили галочку в полі нижче.
 
index adfd565..b3fee05 100644 (file)
@@ -487,7 +487,7 @@ $messages = array(
 'qbbrowse' => '浏览',
 'qbedit' => '编辑',
 'qbpageoptions' => '页面选项',
-'qbmyoptions' => 'æ\88\91ç\9a\84é\80\89项',
+'qbmyoptions' => 'æ\88\91ç\9a\84页é\9d¢',
 'qbspecialpages' => '特殊页面',
 'faq' => '常见问题',
 'faqpage' => 'Project:常见问题',
@@ -562,7 +562,7 @@ $messages = array(
 'lastmodifiedat' => '本页面最后修改于$1 $2。',
 'viewcount' => '此页面已被浏览过$1次。',
 'protectedpage' => '受保护页面',
-'jumpto' => '跳转:',
+'jumpto' => '跳转:',
 'jumptonavigation' => '导航',
 'jumptosearch' => '搜索',
 'view-pool-error' => '抱歉,服务器超负荷运转。
@@ -1795,6 +1795,7 @@ $1',
 'backend-fail-notsame' => '$1已存在不同的文件。',
 'backend-fail-invalidpath' => '$1不是有效的存储路径。',
 'backend-fail-delete' => '无法删除文件“$1”。',
+'backend-fail-describe' => '无法修改文件“$1”的元数据。',
 'backend-fail-alreadyexists' => '“$1”页面已存在',
 'backend-fail-store' => '无法在$2存储文件$1。',
 'backend-fail-copy' => '无法复制文件$1到$2。',
@@ -2288,6 +2289,11 @@ $1',
 'enotif_mailer' => '{{SITENAME}}通知发送器',
 'enotif_reset' => '标记所有页面为已访问',
 'enotif_impersonal_salutation' => '{{SITENAME}}用户',
+'enotif_subject_deleted' => '{{SITENAME}}的$1页面被$2删除',
+'enotif_subject_created' => '{{SITENAME}}的$1页面被$2创建',
+'enotif_subject_moved' => '{{SITENAME}}的$1页面被$2移动',
+'enotif_subject_restored' => '{{SITENAME}}的$1页面被$2恢复',
+'enotif_subject_changed' => '{{SITENAME}}的$1页面被$2修改',
 'enotif_lastvisited' => '请浏览 $1 查看你上次访问后的所有更改。',
 'enotif_lastdiff' => '请浏览 $1 查看该更改。',
 'enotif_anon_editor' => '匿名用户$1',
@@ -3134,6 +3140,7 @@ $1',
 'hours' => '$1小时',
 'days' => '$1天',
 'ago' => '$1前',
+'just-now' => '刚刚',
 
 # Bad image list
 'bad_image_list' => '请按照下列格式编写:
@@ -3905,9 +3912,9 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'logentry-move-move_redir-noredirect' => '$1通过重定向移动$3页面至$4,不留重定向',
 'logentry-patrol-patrol' => '$1标记页面$3的版本$4为已巡查',
 'logentry-patrol-patrol-auto' => '$1自动标记页面$3的版本$4为已巡查',
-'logentry-newusers-newusers' => '$1创建用户账户',
-'logentry-newusers-create' => '$1创建用户账户',
-'logentry-newusers-create2' => '$1创建用户账户$3',
+'logentry-newusers-newusers' => '已创建用户帐户 $1',
+'logentry-newusers-create' => '创建用户帐户$1',
+'logentry-newusers-create2' => '创建用户帐户 $3 由 $1',
 'logentry-newusers-autocreate' => '账户$1被自动创建',
 'newuserlog-byemail' => '密码已用电子邮件发送',
 
index d808500..19b9777 100644 (file)
@@ -129,7 +129,7 @@ class FixDoubleRedirects extends Maintenance {
 
        protected function queueJobs( $jobs, $dryrun = false ) {
                $this->output( "Queuing batch of " . count( $jobs ) . " double redirects.\n" );
-               Job::batchInsert( $dryrun ? array() : $jobs );
+               JobQueueGroup::singleton()->push( $dryrun ? array() : $jobs );
        }
 }
 
index e36674e..6e01291 100644 (file)
@@ -114,8 +114,7 @@ function readaline( $prompt = '' ) {
  * @param $doxyGenerateMan Boolean
  * @return string
  */
-function generateConfigFile( $doxygenTemplate, $outputDirectory, $stripFromPath, $currentVersion, $input, $exclude, $excludePatterns, $doxyGenerateMan ) {
-       global $doxygenInputFilter;
+function generateConfigFile( $doxygenTemplate, $outputDirectory, $stripFromPath, $currentVersion, $input, $exclude, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter ) {
 
        $template = file_get_contents( $doxygenTemplate );
        // Replace template placeholders by correct values.
@@ -242,7 +241,7 @@ $version = 'master';
 $excludedPaths = $mwPath . join( " $mwPath", $mwExcludePaths );
 print "EXCLUDE: $excludedPaths\n\n";
 
-$generatedConf = generateConfigFile( $doxygenTemplate, $doxyOutput, $mwPath, $version, $input, $excludedPaths, $excludePatterns, $doxyGenerateMan );
+$generatedConf = generateConfigFile( $doxygenTemplate, $doxyOutput, $mwPath, $version, $input, $excludedPaths, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter );
 $command = $doxygenBin . ' ' . $generatedConf;
 
 echo <<<TEXT
index 2dcc25c..e4a2a45 100644 (file)
@@ -25,7 +25,7 @@ define( 'REPORTING_INTERVAL', 1 );
 
 if ( !defined( 'MEDIAWIKI' ) ) {
        require_once( __DIR__ . '/../commandLine.inc' );
-       require_once( __DIR__ . '/../../includes/ExternalStoreDB.php' );
+       require_once( __DIR__ . '/../../includes/externalstore/ExternalStoreDB.php' );
        require_once( 'resolveStubs.php' );
 
        $fname = 'moveToExternal';
index 4787594..0e4131b 100644 (file)
@@ -214,7 +214,7 @@ class profile_point {
                ?>
                <tr>
                <th><div style="margin-left: <?php echo (int)$indent; ?>em;">
-                       <?php echo htmlspecialchars( $this->name() ) . $extet ?>
+                       <?php echo htmlspecialchars( str_replace( ',', ', ', $this->name() ) ) . $extet ?>
                </div></th>
                <td class="mw-profileinfo-timep"><?php echo @wfPercent( $this->time() / self::$totaltime * 100 ); ?></td>
                <td class="mw-profileinfo-memoryp"><?php echo @wfPercent( $this->memory() / self::$totalmemory * 100 ); ?></td>
index b35dbbb..ae6f2b0 100644 (file)
                                }
                                // Expose Opera 10's lies about being Opera 9.8
                                if ( name === 'opera' && version >= 9.8) {
-                                       version = ua.match( /version\/([0-9\.]*)/i )[1] || 10;
+                                       match = ua.match( /version\/([0-9\.]*)/i );
+                                       if ( match && match[1] ) {
+                                               version = match[1];
+                                       } else {
+                                               version = '10';
+                                       }
                                }
                                versionNumber = parseFloat( version, 10 ) || 0.0;
 
index 455479d..8373b51 100644 (file)
@@ -63,7 +63,7 @@ $wgAutoloadClasses += array(
        'DummyContentHandlerForTesting' => "$testDir/phpunit/includes/content/ContentHandlerTest.php",
        'DummyContentForTesting' => "$testDir/phpunit/includes/content/ContentHandlerTest.php",
        'ContentHandlerTest' => "$testDir/phpunit/includes/content/ContentHandlerTest.php",
-       'JavascriptContentTest' => "$testDir/phpunit/includes/content/JavascriptContentTest.php",
+       'JavaScriptContentTest' => "$testDir/phpunit/includes/content/JavaScriptContentTest.php",
        'TextContentTest' => "$testDir/phpunit/includes/content/TextContentTest.php",
        'WikitextContentTest' => "$testDir/phpunit/includes/content/WikitextContentTest.php",
 
index 652fa43..0b7b779 100644 (file)
@@ -5694,7 +5694,7 @@ disabled
 |bar
 |}
 !!result
-<table data-parsoid="{&quot;src&quot;:&quot;{|\n|{{echo|foo&lt;/table&gt;}}\n|bar\n|}&quot;}" about="#mwt1" typeof="mw:Object/Template ">
+<table  about="#mwt1" typeof="mw:Object/Template ">
 <tbody><tr><td>foo</td></tr></tbody></table><span about="#mwt1">
 bar</span><span about="#mwt1">
 </span>
@@ -5726,14 +5726,14 @@ disabled
   </tr>
 </table>
 !!result
-<table data-parsoid="{&quot;src&quot;:&quot;&lt;table&gt;\n  &lt;tr&gt;\n    &lt;td&gt;\n    &lt;table&gt;\n      &lt;tr&gt;\n        &lt;td&gt;1. {{echo|foo &lt;/table&gt;}}&lt;/td&gt;\n        &lt;td&gt; bar &lt;/td&gt;\n        &lt;td&gt;2. {{echo|baz &lt;/table&gt;}}&lt;/td&gt;\n      &lt;/tr&gt;\n      &lt;tr&gt;\n        &lt;td&gt;abc&lt;/td&gt;\n      &lt;/tr&gt;\n    &lt;/table&gt;\n    &lt;/td&gt;\n  &lt;/tr&gt;\n  &lt;tr&gt;\n    &lt;td&gt;xyz&lt;/td&gt;\n  &lt;/tr&gt;\n&lt;/table&gt;&quot;}" about="#mwt1" typeof="mw:Object/Template">
-  <tbody><tr data-parsoid="{&quot;stx&quot;:&quot;html&quot;}">
-    <td data-parsoid="{&quot;stx&quot;:&quot;html&quot;}">
-    <table data-parsoid="{&quot;stx&quot;:&quot;html&quot;}">
-      <tbody><tr data-parsoid="{&quot;stx&quot;:&quot;html&quot;}">
-        <td data-parsoid="{&quot;stx&quot;:&quot;html&quot;}">1. foo </td></tr></tbody></table></td>
-        <td data-parsoid="{&quot;stx&quot;:&quot;html&quot;}"> bar </td>
-        <td data-parsoid="{&quot;stx&quot;:&quot;html&quot;}">2. baz </td></tr></tbody></table><span about="#mwt1">
+<table  about="#mwt1" typeof="mw:Object/Template">
+  <tbody><tr >
+    <td >
+    <table >
+      <tbody><tr >
+        <td >1. foo </td></tr></tbody></table></td>
+        <td > bar </td>
+        <td >2. baz </td></tr></tbody></table><span about="#mwt1">
       </span><span about="#mwt1">
       
         abc</span><span about="#mwt1">
@@ -7505,6 +7505,10 @@ Namespaced link must have a title (bad fragment version)
 !!end
 
 
+###
+### HTML tags and HTML attributes
+###
+
 !! test
 div with no attributes
 !! input
@@ -7563,6 +7567,18 @@ disabled
 
 !! end
 
+# The PHP parser escapes the opening brace to &#123; for some reason, so
+# disabled this test for it.
+!! test
+div with braces in attribute value
+!! options
+disabled
+!! input
+<div title="{}">Foo</div>
+!! result
+<div title="{}">Foo</div>
+!! end
+
 # This it very inconsistent in the PHP parser: it returns 
 # class="class" if there is a space between the name and the equal sign (see
 # 'div with empty attribute value, space before equals'), but strips the
@@ -12956,7 +12972,7 @@ disabled
 !! input
 [[Foo|<nowiki>Foo''boo''</nowiki>]]
 !! result
-<a rel="mw:WikiLink" href="Foo" data-parsoid="{&quot;tsr&quot;:[0,7],&quot;contentPos&quot;:[5,5],&quot;src&quot;:&quot;[[Foo]]&quot;,&quot;bsp&quot;:[0,7],&quot;stx&quot;:&quot;simple&quot;}">Foo''boo''</a>
+<a rel="mw:WikiLink" href="Foo">Foo''boo''</a>
 !! end
 
 !! test
index 17ea06c..dfbcc9d 100644 (file)
@@ -8,6 +8,7 @@ class StructureTest extends MediaWikiTestCase {
        /**
         * Verify all files that appear to be tests have file names ending in
         * Test.  If the file names do not end in Test, they will not be run.
+        * @group medium
         */
        public function testUnitTestFileNamesEndWithTest() {
                if ( wfIsWindows() ) {
index 20952b1..82b947b 100644 (file)
@@ -62,6 +62,7 @@ class ArticleTest extends MediaWikiTestCase {
        function testStaticFunctions() {
                $this->hideDeprecated( 'Article::getAutosummary' );
                $this->hideDeprecated( 'WikiPage::getAutosummary' );
+               $this->hideDeprecated( 'CategoryPage::getAutosummary' ); // Inherited from Article
 
                $this->assertEquals( WikiPage::selectFields(), Article::selectFields(),
                        "Article static functions" );
index d46e683..361b412 100644 (file)
@@ -14,6 +14,7 @@ class DiffHistoryBlobTest extends MediaWikiTestCase {
                        $this->markTestSkipped( 'Neither the hash nor mhash extension is available' );
                        return;
                }
+               parent::setUp();
        }
 
        /**
index 65dd924..47fa5f4 100644 (file)
@@ -605,4 +605,16 @@ class HtmlTest extends MediaWikiTestCase {
                return $ret;
        }
 
+       public function testFormValidationBlacklist() {
+               $this->assertEmpty(
+                       Html::expandAttributes( array( 'min' => 1, 'max' => 100, 'pattern' => 'abc', 'required' => true, 'step' => 2 ) ),
+                       'Blacklist form validation attributes.'
+               );
+               $this->assertEquals(
+                       ' step=any',
+                       Html::expandAttributes( array( 'min' => 1, 'max' => 100, 'pattern' => 'abc', 'required' => true, 'step' => 'any' ) ),
+                       'Allow special case "step=any".'
+               );
+       }
+
 }
index df8e919..abb8374 100644 (file)
@@ -9,6 +9,7 @@ class LinkerTest extends MediaWikiLangTestCase {
        function testUserLink( $expected, $userId, $userName, $altUserName = false, $msg='' ) {
                $this->setMwGlobals( array(
                        'wgArticlePath' => '/wiki/$1',
+                       'wgWellFormedXml' => true,
                ) );
 
                $this->assertEquals( $expected,
index 7499272..3325885 100644 (file)
@@ -129,7 +129,7 @@ class LinksUpdateTest extends MediaWikiTestCase {
        public function testUpdate_langlinks() {
                list( $t, $po ) = $this->makeTitleAndParserOutput( "Testing", 111 );
 
-               $po->addLanguageLink( Title::newFromText( "en:Foo" ) );
+               $po->addLanguageLink( Title::newFromText( "en:Foo" )->getFullText() );
 
 
                $this->assertLinksUpdate( $t, $po, 'langlinks', 'll_lang, ll_title', 'll_from = 111', array(
index 1a8a4cc..5e546ce 100644 (file)
@@ -1,5 +1,8 @@
 <?php
 
+/**
+ * @group Database
+ */
 class PreferencesTest extends MediaWikiTestCase {
        /** Array of User objects */
        private $prefUsers;
index 45ea555..88bbc07 100644 (file)
@@ -35,12 +35,11 @@ class TestSample extends MediaWikiLangTestCase {
         */
        function testTitleObjectStringConversion() {
                $title = Title::newFromText("text");
-               $this->assertEquals("Text", $title->__toString(), "Title creation");
-               $this->assertEquals("Text", "Text", "Automatic string conversion");
+               $this->assertInstanceOf('Title', $title, "Title creation");
+               $this->assertEquals("Text", $title, "Automatic string conversion");
 
                $title = Title::newFromText("text", NS_MEDIA);
-               $this->assertEquals("Media:Text", $title->__toString(), "Title creation with namespace");
-
+               $this->assertEquals("Media:Text", $title, "Title creation with namespace");
        }
 
        /**
index 012c49d..5930d6c 100644 (file)
@@ -70,11 +70,11 @@ class SanitizerTest extends MediaWikiTestCase {
         * @param Boolean $escaped Wheter sanitizer let the tag in or escape it (ie: '&lt;video&gt;')
         */
        function testRemovehtmltagsOnHtml5Tags( $tag, $escaped ) {
-               global $wgHtml5;
-
-               # Enable HTML5 mode
-               $save = $wgHtml5;
-               $wgHtml5 = true;
+               $this->setMwGlobals( array(
+                       # Enable HTML5 mode
+                       'wgHtml5' => true,
+                       'wgUseTidy' => false
+               ));
 
                if( $escaped ) {
                        $this->assertEquals( "&lt;$tag&gt;",
@@ -85,7 +85,6 @@ class SanitizerTest extends MediaWikiTestCase {
                                Sanitizer::removeHTMLtags( "<$tag>" )
                        );
                }
-               $wgHtml5 = $save;
        }
 
        /**
@@ -103,7 +102,10 @@ class SanitizerTest extends MediaWikiTestCase {
        }
 
        function testSelfClosingTag() {
-               $GLOBALS['wgUseTidy'] = false;
+               $this->setMwGlobals( array(
+                       'wgUseTidy' => false
+               ));
+
                $this->assertEquals(
                        '<div>Hello world</div>',
                        Sanitizer::removeHTMLtags( '<div>Hello world</div />' ),
index d430827..89812c9 100644 (file)
@@ -2,6 +2,7 @@
 
 /**
  * @group ContentHandler
+ * @group Database
  *
  * @note: We don't make assumptions about the main namespace.
  *        But we do expect the Help namespace to contain Wikitext.
index cc23d6d..9300d4b 100644 (file)
@@ -546,9 +546,9 @@ class WikiPageTest extends MediaWikiLangTestCase {
 
                $title = Title::newFromText( $title );
 
-               if ( !$wgContentHandlerUseDB && ContentHandler::getDefaultModelFor( $title ) != $model ) {
+               if ( !$wgContentHandlerUseDB && $model && ContentHandler::getDefaultModelFor( $title ) != $model ) {
                        $this->markTestSkipped( "Can not use non-default content model $model for "
-                               . $title->getPrefixedDBkey() . " with \wgArticleCountMethod disabled." );
+                               . $title->getPrefixedDBkey() . " with \$wgContentHandlerUseDB disabled." );
                }
 
                $page = $this->createPage( $title, $text, $model );
index 1b48ad2..7c9cbe3 100644 (file)
@@ -6,6 +6,10 @@ class XmlSelectTest extends MediaWikiTestCase {
 
        protected function setUp() {
                parent::setUp();
+               $this->setMwGlobals( array(
+                       'wgHtml5' => true,
+                       'wgWellFormedXml' => true,
+               ));
                $this->select = new XmlSelect();
        }
        protected function tearDown() {
index 3cc5422..b54731b 100644 (file)
@@ -29,6 +29,8 @@ class XmlTest extends MediaWikiTestCase {
 
                $this->setMwGlobals( array(
                        'wgLang' => $langObj,
+                       'wgHtml5' => true,
+                       'wgWellFormedXml' => true,
                ) );
        }
 
index 9806a1c..a1b941d 100644 (file)
@@ -11,7 +11,7 @@ class ApiTest extends ApiTestCase {
 
                $this->assertEquals(
                        null, $mock->requireOnlyOneParameter( array( "filename" => "foo.txt",
-                                                                                                          "enablechunks" => false ), "filename", "enablechunks" ) );
+                               "enablechunks" => false ), "filename", "enablechunks" ) );
        }
 
        /**
@@ -22,7 +22,7 @@ class ApiTest extends ApiTestCase {
 
                $this->assertEquals(
                        null, $mock->requireOnlyOneParameter( array( "filename" => "foo.txt",
-                                                                                                          "enablechunks" => 0 ), "filename", "enablechunks" ) );
+                               "enablechunks" => 0 ), "filename", "enablechunks" ) );
        }
 
        /**
@@ -33,7 +33,7 @@ class ApiTest extends ApiTestCase {
 
                $this->assertEquals(
                        null, $mock->requireOnlyOneParameter( array( "filename" => "foo.txt",
-                                                                                                          "enablechunks" => true ), "filename", "enablechunks" ) );
+                               "enablechunks" => true ), "filename", "enablechunks" ) );
        }
 
        /**
@@ -43,7 +43,6 @@ class ApiTest extends ApiTestCase {
         * @expectedException UsageException
         */
        function testApi() {
-       
                $api = new ApiMain(
                        new FauxRequest( array( 'action' => 'help', 'format' => 'xml' ) )
                );
@@ -194,7 +193,7 @@ class ApiTest extends ApiTestCase {
 
                return $cj;
        }
-       
+
        function testRunLogin() {
                $sysopUser = self::$users['sysop'];
                $data = $this->doApiRequest( array(
@@ -217,10 +216,10 @@ class ApiTest extends ApiTestCase {
                $this->assertArrayHasKey( "result", $data[0]['login'] );
                $this->assertEquals( "Success", $data[0]['login']['result'] );
                $this->assertArrayHasKey( 'lgtoken', $data[0]['login'] );
-               
+
                return $data;
        }
-       
+
        function testGettingToken() {
                foreach ( self::$users as $user ) {
                        $this->runTokenTest( $user );
@@ -228,7 +227,6 @@ class ApiTest extends ApiTestCase {
        }
 
        function runTokenTest( $user ) {
-               
                $data = $this->getTokenList( $user );
 
                $this->assertArrayHasKey( 'query', $data[0] );
diff --git a/tests/phpunit/includes/content/JavaScriptContentTest.php b/tests/phpunit/includes/content/JavaScriptContentTest.php
new file mode 100644 (file)
index 0000000..18df53f
--- /dev/null
@@ -0,0 +1,273 @@
+<?php
+
+/**
+ * @group ContentHandler
+ * @group Database
+ *        ^--- needed, because we do need the database to test link updates
+ */
+class JavaScriptContentTest extends TextContentTest {
+
+       public function newContent( $text ) {
+               return new JavaScriptContent( $text );
+       }
+
+       public static function dataGetParserOutput() {
+               return array(
+                       array(
+                               'MediaWiki:Test.js',
+                               null,
+                               "hello <world>\n",
+                               "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello &lt;world&gt;\n\n</pre>"
+                       ),
+                       array(
+                               'MediaWiki:Test.js',
+                               null,
+                               "hello(); // [[world]]\n",
+                               "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello(); // [[world]]\n\n</pre>",
+                               array(
+                                       'Links' => array(
+                                               array( 'World' => 0 )
+                                       )
+                               )
+                       ),
+
+                       // TODO: more...?
+               );
+       }
+
+       // XXX: Unused function
+       public static function dataGetSection() {
+               return array(
+                       array( WikitextContentTest::$sections,
+                              '0',
+                              null
+                       ),
+                       array( WikitextContentTest::$sections,
+                              '2',
+                              null
+                       ),
+                       array( WikitextContentTest::$sections,
+                              '8',
+                              null
+                       ),
+               );
+       }
+
+       // XXX: Unused function
+       public static function dataReplaceSection() {
+               return array(
+                       array( WikitextContentTest::$sections,
+                              '0',
+                              'No more',
+                              null,
+                              null
+                       ),
+                       array( WikitextContentTest::$sections,
+                              '',
+                              'No more',
+                              null,
+                              null
+                       ),
+                       array( WikitextContentTest::$sections,
+                              '2',
+                              "== TEST ==\nmore fun",
+                              null,
+                              null
+                       ),
+                       array( WikitextContentTest::$sections,
+                              '8',
+                              'No more',
+                              null,
+                              null
+                       ),
+                       array( WikitextContentTest::$sections,
+                              'new',
+                              'No more',
+                              'New',
+                              null
+                       ),
+               );
+       }
+
+       public function testAddSectionHeader( ) {
+               $content = $this->newContent( 'hello world' );
+               $c = $content->addSectionHeader( 'test' );
+
+               $this->assertTrue( $content->equals( $c ) );
+       }
+
+       // XXX: currently, preSaveTransform is applied to scripts. this may change or become optional.
+       public static function dataPreSaveTransform() {
+               return array(
+                       array( 'hello this is ~~~',
+                               "hello this is [[Special:Contributions/127.0.0.1|127.0.0.1]]",
+                       ),
+                       array( 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
+                               'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
+                       ),
+                       array( " Foo \n ",
+                               " Foo",
+                       ),
+               );
+       }
+
+       public static function dataPreloadTransform() {
+               return array(
+                       array( 'hello this is ~~~',
+                              'hello this is ~~~',
+                       ),
+                       array( 'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
+                              'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
+                       ),
+               );
+       }
+
+       public static function dataGetRedirectTarget() {
+               return array(
+                       array( '#REDIRECT [[Test]]',
+                              null,
+                       ),
+                       array( '#REDIRECT Test',
+                              null,
+                       ),
+                       array( '* #REDIRECT [[Test]]',
+                              null,
+                       ),
+               );
+       }
+
+       /**
+        * @todo: test needs database!
+        */
+       /*
+       public function getRedirectChain() {
+               $text = $this->getNativeData();
+               return Title::newFromRedirectArray( $text );
+       }
+       */
+
+       /**
+        * @todo: test needs database!
+        */
+       /*
+       public function getUltimateRedirectTarget() {
+               $text = $this->getNativeData();
+               return Title::newFromRedirectRecurse( $text );
+       }
+       */
+
+       public static function dataIsCountable() {
+               return array(
+                       array( '',
+                              null,
+                              'any',
+                              true
+                       ),
+                       array( 'Foo',
+                              null,
+                              'any',
+                              true
+                       ),
+                       array( 'Foo',
+                              null,
+                              'comma',
+                              false
+                       ),
+                       array( 'Foo, bar',
+                              null,
+                              'comma',
+                              false
+                       ),
+                       array( 'Foo',
+                              null,
+                              'link',
+                              false
+                       ),
+                       array( 'Foo [[bar]]',
+                              null,
+                              'link',
+                              false
+                       ),
+                       array( 'Foo',
+                              true,
+                              'link',
+                              false
+                       ),
+                       array( 'Foo [[bar]]',
+                              false,
+                              'link',
+                              false
+                       ),
+                       array( '#REDIRECT [[bar]]',
+                              true,
+                              'any',
+                              true
+                       ),
+                       array( '#REDIRECT [[bar]]',
+                              true,
+                              'comma',
+                              false
+                       ),
+                       array( '#REDIRECT [[bar]]',
+                              true,
+                              'link',
+                              false
+                       ),
+               );
+       }
+
+       public static function dataGetTextForSummary() {
+               return array(
+                       array( "hello\nworld.",
+                              16,
+                              'hello world.',
+                       ),
+                       array( 'hello world.',
+                              8,
+                              'hello...',
+                       ),
+                       array( '[[hello world]].',
+                              8,
+                              '[[hel...',
+                       ),
+               );
+       }
+
+       public function testMatchMagicWord( ) {
+               $mw = MagicWord::get( "staticredirect" );
+
+               $content = $this->newContent( "#REDIRECT [[FOO]]\n__STATICREDIRECT__" );
+               $this->assertFalse( $content->matchMagicWord( $mw ), "should not have matched magic word, since it's not wikitext" );
+       }
+
+       public function testUpdateRedirect( ) {
+               $target = Title::newFromText( "testUpdateRedirect_target" );
+
+               $content = $this->newContent( "#REDIRECT [[Someplace]]" );
+               $newContent = $content->updateRedirect( $target );
+
+               $this->assertTrue( $content->equals( $newContent ), "content should be unchanged since it's not wikitext" );
+       }
+
+       public function testGetModel() {
+               $content = $this->newContent( "hello world." );
+
+               $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getModel() );
+       }
+
+       public function testGetContentHandler() {
+               $content = $this->newContent( "hello world." );
+
+               $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getContentHandler()->getModelID() );
+       }
+
+       public static function dataEquals( ) {
+               return array(
+                       array( new JavaScriptContent( "hallo" ), null, false ),
+                       array( new JavaScriptContent( "hallo" ), new JavaScriptContent( "hallo" ), true ),
+                       array( new JavaScriptContent( "hallo" ), new CssContent( "hallo" ), false ),
+                       array( new JavaScriptContent( "hallo" ), new JavaScriptContent( "HALLO" ), false ),
+               );
+       }
+
+}
diff --git a/tests/phpunit/includes/content/JavascriptContentTest.php b/tests/phpunit/includes/content/JavascriptContentTest.php
deleted file mode 100644 (file)
index e08252c..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-<?php
-
-/**
- * @group ContentHandler
- * @group Database
- *        ^--- needed, because we do need the database to test link updates
- */
-class JavascriptContentTest extends TextContentTest {
-
-       public function newContent( $text ) {
-               return new JavascriptContent( $text );
-       }
-
-       public static function dataGetParserOutput() {
-               return array(
-                       array(
-                               'MediaWiki:Test.js',
-                               null,
-                               "hello <world>\n",
-                               "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello &lt;world&gt;\n\n</pre>"
-                       ),
-                       array(
-                               'MediaWiki:Test.js',
-                               null,
-                               "hello(); // [[world]]\n",
-                               "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello(); // [[world]]\n\n</pre>",
-                               array(
-                                       'Links' => array(
-                                               array( 'World' => 0 )
-                                       )
-                               )
-                       ),
-
-                       // TODO: more...?
-               );
-       }
-
-       // XXX: Unused function
-       public static function dataGetSection() {
-               return array(
-                       array( WikitextContentTest::$sections,
-                              '0',
-                              null
-                       ),
-                       array( WikitextContentTest::$sections,
-                              '2',
-                              null
-                       ),
-                       array( WikitextContentTest::$sections,
-                              '8',
-                              null
-                       ),
-               );
-       }
-
-       // XXX: Unused function
-       public static function dataReplaceSection() {
-               return array(
-                       array( WikitextContentTest::$sections,
-                              '0',
-                              'No more',
-                              null,
-                              null
-                       ),
-                       array( WikitextContentTest::$sections,
-                              '',
-                              'No more',
-                              null,
-                              null
-                       ),
-                       array( WikitextContentTest::$sections,
-                              '2',
-                              "== TEST ==\nmore fun",
-                              null,
-                              null
-                       ),
-                       array( WikitextContentTest::$sections,
-                              '8',
-                              'No more',
-                              null,
-                              null
-                       ),
-                       array( WikitextContentTest::$sections,
-                              'new',
-                              'No more',
-                              'New',
-                              null
-                       ),
-               );
-       }
-
-       public function testAddSectionHeader( ) {
-               $content = $this->newContent( 'hello world' );
-               $c = $content->addSectionHeader( 'test' );
-
-               $this->assertTrue( $content->equals( $c ) );
-       }
-
-       // XXX: currently, preSaveTransform is applied to scripts. this may change or become optional.
-       public static function dataPreSaveTransform() {
-               return array(
-                       array( 'hello this is ~~~',
-                               "hello this is [[Special:Contributions/127.0.0.1|127.0.0.1]]",
-                       ),
-                       array( 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
-                               'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
-                       ),
-                       array( " Foo \n ",
-                               " Foo",
-                       ),
-               );
-       }
-
-       public static function dataPreloadTransform() {
-               return array(
-                       array( 'hello this is ~~~',
-                              'hello this is ~~~',
-                       ),
-                       array( 'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
-                              'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
-                       ),
-               );
-       }
-
-       public static function dataGetRedirectTarget() {
-               return array(
-                       array( '#REDIRECT [[Test]]',
-                              null,
-                       ),
-                       array( '#REDIRECT Test',
-                              null,
-                       ),
-                       array( '* #REDIRECT [[Test]]',
-                              null,
-                       ),
-               );
-       }
-
-       /**
-        * @todo: test needs database!
-        */
-       /*
-       public function getRedirectChain() {
-               $text = $this->getNativeData();
-               return Title::newFromRedirectArray( $text );
-       }
-       */
-
-       /**
-        * @todo: test needs database!
-        */
-       /*
-       public function getUltimateRedirectTarget() {
-               $text = $this->getNativeData();
-               return Title::newFromRedirectRecurse( $text );
-       }
-       */
-
-       public static function dataIsCountable() {
-               return array(
-                       array( '',
-                              null,
-                              'any',
-                              true
-                       ),
-                       array( 'Foo',
-                              null,
-                              'any',
-                              true
-                       ),
-                       array( 'Foo',
-                              null,
-                              'comma',
-                              false
-                       ),
-                       array( 'Foo, bar',
-                              null,
-                              'comma',
-                              false
-                       ),
-                       array( 'Foo',
-                              null,
-                              'link',
-                              false
-                       ),
-                       array( 'Foo [[bar]]',
-                              null,
-                              'link',
-                              false
-                       ),
-                       array( 'Foo',
-                              true,
-                              'link',
-                              false
-                       ),
-                       array( 'Foo [[bar]]',
-                              false,
-                              'link',
-                              false
-                       ),
-                       array( '#REDIRECT [[bar]]',
-                              true,
-                              'any',
-                              true
-                       ),
-                       array( '#REDIRECT [[bar]]',
-                              true,
-                              'comma',
-                              false
-                       ),
-                       array( '#REDIRECT [[bar]]',
-                              true,
-                              'link',
-                              false
-                       ),
-               );
-       }
-
-       public static function dataGetTextForSummary() {
-               return array(
-                       array( "hello\nworld.",
-                              16,
-                              'hello world.',
-                       ),
-                       array( 'hello world.',
-                              8,
-                              'hello...',
-                       ),
-                       array( '[[hello world]].',
-                              8,
-                              '[[hel...',
-                       ),
-               );
-       }
-
-       public function testMatchMagicWord( ) {
-               $mw = MagicWord::get( "staticredirect" );
-
-               $content = $this->newContent( "#REDIRECT [[FOO]]\n__STATICREDIRECT__" );
-               $this->assertFalse( $content->matchMagicWord( $mw ), "should not have matched magic word, since it's not wikitext" );
-       }
-
-       public function testUpdateRedirect( ) {
-               $target = Title::newFromText( "testUpdateRedirect_target" );
-
-               $content = $this->newContent( "#REDIRECT [[Someplace]]" );
-               $newContent = $content->updateRedirect( $target );
-
-               $this->assertTrue( $content->equals( $newContent ), "content should be unchanged since it's not wikitext" );
-       }
-
-       public function testGetModel() {
-               $content = $this->newContent( "hello world." );
-
-               $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getModel() );
-       }
-
-       public function testGetContentHandler() {
-               $content = $this->newContent( "hello world." );
-
-               $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getContentHandler()->getModelID() );
-       }
-
-       public static function dataEquals( ) {
-               return array(
-                       array( new JavascriptContent( "hallo" ), null, false ),
-                       array( new JavascriptContent( "hallo" ), new JavascriptContent( "hallo" ), true ),
-                       array( new JavascriptContent( "hallo" ), new CssContent( "hallo" ), false ),
-                       array( new JavascriptContent( "hallo" ), new JavascriptContent( "HALLO" ), false ),
-               );
-       }
-
-}
index dd03340..3501aec 100644 (file)
@@ -318,7 +318,7 @@ class TextContentTest extends MediaWikiLangTestCase {
                return array(
                        array( new TextContent( "hallo" ), null, false ),
                        array( new TextContent( "hallo" ), new TextContent( "hallo" ), true ),
-                       array( new TextContent( "hallo" ), new JavascriptContent( "hallo" ), false ),
+                       array( new TextContent( "hallo" ), new JavaScriptContent( "hallo" ), false ),
                        array( new TextContent( "hallo" ), new WikitextContent( "hallo" ), false ),
                        array( new TextContent( "hallo" ), new TextContent( "HALLO" ), false ),
                );
index ceb6d48..b76e9aa 100644 (file)
@@ -362,7 +362,7 @@ just a test"
                return array(
                        array( new WikitextContent( "hallo" ), null, false ),
                        array( new WikitextContent( "hallo" ), new WikitextContent( "hallo" ), true ),
-                       array( new WikitextContent( "hallo" ), new JavascriptContent( "hallo" ), false ),
+                       array( new WikitextContent( "hallo" ), new JavaScriptContent( "hallo" ), false ),
                        array( new WikitextContent( "hallo" ), new TextContent( "hallo" ), false ),
                        array( new WikitextContent( "hallo" ), new WikitextContent( "HALLO" ), false ),
                );
index b46ce2e..8516241 100644 (file)
@@ -136,7 +136,7 @@ abstract class ORMRowTest extends \MediaWikiTestCase {
        /**
         * @dataProvider constructorTestProvider
         */
-       public function testSave( array $data, $loadDefaults ) {
+       public function testSaveAndRemove( array $data, $loadDefaults ) {
                $item = $this->getRowInstance( $data, $loadDefaults );
 
                $this->assertTrue( $item->save() );
@@ -151,14 +151,6 @@ abstract class ORMRowTest extends \MediaWikiTestCase {
                $this->assertEquals( $id, $item->getId() );
 
                $this->verifyFields( $item, $data );
-       }
-
-       /**
-        * @dataProvider constructorTestProvider
-        * @depends testSave
-        */
-       public function testRemove( array $data, $loadDefaults ) {
-               $item = $this->getRowInstance( $data, $loadDefaults );
 
                $this->assertTrue( $item->remove() );
 
index 398ad2d..40a3965 100644 (file)
@@ -110,7 +110,10 @@ abstract class GenericArrayObjectTest extends MediaWikiTestCase {
         * @param GenericArrayObject $list
         */
        public function testUnset( GenericArrayObject $list ) {
-               if ( !$list->isEmpty() ) {
+               if ( $list->isEmpty() ) {
+                       $this->assertTrue( true ); // We cannot test unset if there are no elements
+               }
+               else {
                        $offset = $list->getIterator()->key();
                        $count = $list->count();
                        $list->offsetUnset( $offset );
@@ -123,10 +126,6 @@ abstract class GenericArrayObjectTest extends MediaWikiTestCase {
                        unset( $list[$offset] );
                        $this->assertEquals( $count - 1, $list->count() );
                }
-
-               $exception = null;
-               try { $list->offsetUnset( 'sdfsedtgsrdysftu' ); } catch ( \Exception $exception ){}
-               $this->assertInstanceOf( '\Exception', $exception );
        }
 
        /**
@@ -171,7 +170,7 @@ abstract class GenericArrayObjectTest extends MediaWikiTestCase {
 
                $elementClass = $list->getObjectType();
 
-               foreach ( array( 42, 'foo', array(), new \stdClass(), 4.2 ) as $element ) {
+               foreach ( array( 42, 'foo', array(), new stdClass(), 4.2 ) as $element ) {
                        $validValid = $element instanceof $elementClass;
 
                        try{
index 6a6fded..b15365c 100644 (file)
@@ -22,15 +22,13 @@ class MediaWikiParserTest {
                         * and then was ucfirst( basename( $filename, '.txt' )
                         * but that didn't work with names like foo.tests.txt
                         */
-                       $className = str_replace( '.', '_',  ucfirst( basename( $filename, '.txt' ) ) );
-                       
+                       $className = str_replace( '.', '_',  ucfirst( $testsName ) );
+
                        eval( "/** @group Database\n@group Parser\n*/ class $className extends NewParserTest { protected \$file = '" . strtr( $filename, array( "'" => "\\'", '\\' => '\\\\' ) ) . "'; } " );
 
                        $parserTester = new $className( $testsName );
                        $suite->addTestSuite( new ReflectionClass ( $parserTester ) );
                }
-               
-
                return $suite;
        }
 }
index 362d9f7..8b83b67 100644 (file)
@@ -119,7 +119,7 @@ class PreprocessorTest extends MediaWikiTestCase {
                if ( method_exists( $this->mPreprocessor, 'preprocessToXml' ) ) {
                        return $this->normalizeXml( $this->mPreprocessor->preprocessToXml( $wikiText ) );
                }
-               
+
                $dom = $this->mPreprocessor->preprocessToObj( $wikiText );
                if ( is_callable( array( $dom, 'saveXML' ) ) ) {
                        return $dom->saveXML();
@@ -136,11 +136,6 @@ class PreprocessorTest extends MediaWikiTestCase {
         */
        function normalizeXml( $xml ) {
                return preg_replace( '!<([a-z]+)/>!', '<$1></$1>', str_replace( ' />', '/>', $xml ) );
-               
-               $dom = new DOMDocument();
-               // 1 << 19 == XML_PARSE_HUGE, needed so newer versions of libxml2 don't barf when the XML is >256 levels deep
-               $dom->loadXML( $xml, 1 << 19 );
-               return $dom->saveXML();
        }
 
        /**
index 59663ba..a693cdb 100644 (file)
@@ -3,6 +3,7 @@
 /**
  * @group Broken
  * @group Upload
+ * @group Database
  */
 class UploadFromUrlTest extends ApiTestCase {
 
@@ -36,9 +37,9 @@ class UploadFromUrlTest extends ApiTestCase {
         * Ensure that the job queue is empty before continuing
         */
        public function testClearQueue() {
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                while ( $job ) {
-                       $job = Job::pop();
+                       $job = JobQueueGroup::singleton()->pop();
                }
                $this->assertFalse( $job );
        }
@@ -141,7 +142,7 @@ class UploadFromUrlTest extends ApiTestCase {
 
                $this->assertEquals( $data[0]['upload']['result'], 'Queued', 'Queued upload' );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertThat( $job, $this->isInstanceOf( 'UploadFromUrlJob' ), 'Queued upload inserted' );
        }
 
@@ -202,7 +203,7 @@ class UploadFromUrlTest extends ApiTestCase {
        public function testSyncDownload( $data ) {
                $token = $this->user->getEditToken();
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertFalse( $job, 'Starting with an empty jobqueue' );
 
                $this->user->addGroup( 'users' );
@@ -214,7 +215,7 @@ class UploadFromUrlTest extends ApiTestCase {
                        'token' => $token,
                ), $data );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertFalse( $job );
 
                $this->assertEquals( 'Success', $data[0]['upload']['result'] );
@@ -244,7 +245,7 @@ class UploadFromUrlTest extends ApiTestCase {
                        'ignorewarnings' => 1,
                ) );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertEquals( 'UploadFromUrlJob', get_class( $job ) );
                $job->run();
 
@@ -272,7 +273,7 @@ class UploadFromUrlTest extends ApiTestCase {
                }
                $this->assertTrue( $exception );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertFalse( $job );
 
                return;
@@ -314,7 +315,7 @@ class UploadFromUrlTest extends ApiTestCase {
                $this->assertTrue( isset( $data[0]['upload']['statuskey'] ) );
                $statusKey = $data[0]['upload']['statuskey'];
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertEquals( 'UploadFromUrlJob', get_class( $job ) );
 
                $status = $job->run();
index 4a6f08f..a0ed745 100644 (file)
@@ -88,15 +88,16 @@ class MaintenanceFixup extends Maintenance {
         * Safety net around register_shutdown_function of Maintenance.php
         */
        public function __destruct() {
-               if ( ( ! $this->shutdownSimulated ) && ( ! $this->testCase->hasFailed() ) ) {
+               if ( ! $this->shutdownSimulated ) {
                        // Someone generated a MaintenanceFixup instance without calling
                        // simulateShutdown. We'd have to raise a PHPUnit exception to correctly
                        // flag this illegal usage. However, we are already in a destruktor, which
                        // would trigger undefined behaviour. Hence, we can only report to the
                        // error output :( Hopefully people read the PHPUnit output.
-                       fwrite( STDERR, "ERROR! Instance of " . __CLASS__ . " destructed without "
-                               . "calling simulateShutdown method. Call simulateShutdown on the "
-                               . "instance before it gets destructed." );
+                       $name = $this->testCase->getName();
+                       fwrite( STDERR, "ERROR! Instance of " . __CLASS__ . " for test $name "
+                               . "destructed without calling simulateShutdown method. Call "
+                               . "simulateShutdown on the instance before it gets destructed." );
                }
 
                // The following guard is required, as PHP does not offer default destructors :(
@@ -148,6 +149,14 @@ class MaintenanceTest extends MediaWikiTestCase {
                $this->m = new MaintenanceFixup( $this );
        }
 
+       protected function tearDown() {
+               if ( $this->m ) {
+                       $this->m->simulateShutdown();
+                       $this->m = null;
+               }
+               parent::tearDown();
+       }
+
 
        /**
         * asserts the output before and after simulating shutdown
@@ -167,6 +176,7 @@ class MaintenanceTest extends MediaWikiTestCase {
                                "Output before shutdown simulation" );
 
                $this->m->simulateShutdown();
+               $this->m = null;
 
                $postShutdownOutput = $preShutdownOutput . ( $expectNLAppending ? "\n" : "" );
                $this->expectOutputString( $postShutdownOutput );
@@ -809,4 +819,4 @@ class MaintenanceTest extends MediaWikiTestCase {
        }
 
 
-}
\ No newline at end of file
+}
index bbc8852..29c6657 100644 (file)
                                }
                        },
                        // Safari 5
-                       // Opera 10
+                       // Opera 10+
+                       'Opera/9.80 (Windows NT 5.1)': {
+                               title: 'Opera 10+ (exact version unspecified)',
+                               platform: 'Win32',
+                               profile: {
+                                       name: 'opera',
+                                       layout: 'presto',
+                                       layoutVersion: 'unknown',
+                                       platform: 'win',
+                                       version: '10',
+                                       versionBase: '10',
+                                       versionNumber: 10
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
+                       // Opera 12
+                       'Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.11': {
+                               title: 'Opera 12',
+                               platform: 'Win32',
+                               profile: {
+                                       name: 'opera',
+                                       layout: 'presto',
+                                       layoutVersion: 'unknown',
+                                       platform: 'win',
+                                       version: '12.11',
+                                       versionBase: '12',
+                                       versionNumber: 12.11
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
                        // Chrome 5
                        // Chrome 6
                        // Chrome 7
index aba6a0c..7fc7453 100644 (file)
@@ -11,7 +11,7 @@
        }) );
 
        $.each( [true, false], function ( i, strictMode ) {
-               QUnit.test( 'Basic mw.Uri object test in ' + ( strictMode ? '' : 'non-' ) + 'strict mode for a simple HTTP URI', 2, function ( assert ) {
+               QUnit.test( 'Basic construction and properties (' + ( strictMode ? '' : 'non-' ) + 'strict mode)', 2, function ( assert ) {
                        var uriString, uri;
                        uriString = 'http://www.ietf.org/rfc/rfc2396.txt';
                        uri = new mw.Uri( uriString, {
                });
        });
 
-       QUnit.test( 'Parse an ftp URI correctly with user and password', 1, function ( assert ) {
-               var uri = new mw.Uri( 'ftp://usr:pwd@192.0.2.16/' );
+       QUnit.test( 'Constructor( String[, Object ] )', 10, function ( assert ) {
+               var uri;
+
+               uri = new mw.Uri( 'http://www.example.com/dir/?m=foo&m=bar&n=1', {
+                       overrideKeys: true
+               });
+
+               // Strict comparison to assert that numerical values stay strings
+               assert.strictEqual( uri.query.n, '1', 'Simple parameter with overrideKeys:true' );
+               assert.strictEqual( uri.query.m, 'bar', 'Last key overrides earlier keys with overrideKeys:true' );
+
+               uri = new mw.Uri( 'http://www.example.com/dir/?m=foo&m=bar&n=1', {
+                       overrideKeys: false
+               });
+
+               assert.strictEqual( uri.query.n, '1', 'Simple parameter with overrideKeys:false' );
+               assert.strictEqual( uri.query.m[0], 'foo', 'Order of multi-value parameters with overrideKeys:true' );
+               assert.strictEqual( uri.query.m[1], 'bar', 'Order of multi-value parameters with overrideKeys:true' );
+               assert.strictEqual( uri.query.m.length, 2, 'Number of mult-value field is correct' );
+
+               uri = new mw.Uri( 'ftp://usr:pwd@192.0.2.16/' );
 
                assert.deepEqual(
                        {
                                query: {},
                                fragment: undefined
                        },
-                       'basic object properties'
+                       'Parse an ftp URI correctly with user and password'
+               );
+
+               assert.throws(
+                       function () {
+                               return new mw.Uri( 'glaswegian penguins' );
+                       },
+                       function ( e ) {
+                               return e.message === 'Bad constructor arguments';
+                       },
+                       'throw error on non-URI as argument to constructor'
+               );
+
+               assert.throws(
+                       function () {
+                               return new mw.Uri( 'foo.com/bar/baz', {
+                                       strictMode: true
+                               });
+                       },
+                       function ( e ) {
+                               return e.message === 'Bad constructor arguments';
+                       },
+                       'throw error on URI without protocol or // or leading / in strict mode'
+               );
+
+               uri = new mw.Uri( 'foo.com/bar/baz', {
+                       strictMode: false
+               });
+               assert.equal( uri.toString(), 'http://foo.com/bar/baz', 'normalize URI without protocol or // in loose mode' );
+       });
+
+       QUnit.test( 'Constructor( Object )', 3, function ( assert ) {
+               var uri = new mw.Uri({
+                       protocol: 'http',
+                       host: 'www.foo.local',
+                       path: '/this'
+               });
+               assert.equal( uri.toString(), 'http://www.foo.local/this', 'Basic properties' );
+
+               uri = new mw.Uri({
+                       protocol: 'http',
+                       host: 'www.foo.local',
+                       path: '/this',
+                       query: { hi: 'there' },
+                       fragment: 'blah'
+               });
+               assert.equal( uri.toString(), 'http://www.foo.local/this?hi=there#blah', 'More complex properties' );
+
+               assert.throws(
+                       function () {
+                               return new mw.Uri({
+                                       protocol: 'http',
+                                       host: 'www.foo.local'
+                               });
+                       },
+                       function ( e ) {
+                               return e.message === 'Bad constructor arguments';
+                       },
+                       'Construction failed when missing required properties'
                );
        } );
 
+       QUnit.test( 'Constructor( empty )', 4, function ( assert ) {
+               var testuri, MyUri, uri;
+
+               testuri = 'http://example.org/w/index.php';
+               MyUri = mw.UriRelative( testuri );
+
+               uri = new MyUri();
+               assert.equal( uri.toString(), testuri, 'no arguments' );
+
+               uri = new MyUri( undefined );
+               assert.equal( uri.toString(), testuri, 'undefined' );
+
+               uri = new MyUri( null );
+               assert.equal( uri.toString(), testuri, 'null' );
+
+               uri = new MyUri( '' );
+               assert.equal( uri.toString(), testuri, 'empty string' );
+       } );
+
+       QUnit.test( 'Properties', 8, function ( assert ) {
+               var uriBase, uri;
+
+               uriBase = new mw.Uri( 'http://en.wiki.local/w/api.php' );
+
+               uri = uriBase.clone();
+               uri.fragment = 'frag';
+               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php#frag', 'add a fragment' );
+
+               uri = uriBase.clone();
+               uri.host = 'fr.wiki.local';
+               uri.port = '8080';
+               assert.equal( uri.toString(), 'http://fr.wiki.local:8080/w/api.php', 'change host and port' );
+
+               uri = uriBase.clone();
+               uri.query.foo = 'bar';
+               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php?foo=bar', 'add query arguments' );
+
+               delete uri.query.foo;
+               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php', 'delete query arguments' );
+
+               uri = uriBase.clone();
+               uri.query.foo = 'bar';
+               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php?foo=bar', 'extend query arguments' );
+               uri.extend({
+                       foo: 'quux',
+                       pif: 'paf'
+               });
+               assert.ok( uri.toString().indexOf( 'foo=quux' ) >= 0, 'extend query arguments' );
+               assert.ok( uri.toString().indexOf( 'foo=bar' ) === -1, 'extend query arguments' );
+               assert.ok( uri.toString().indexOf( 'pif=paf' ) >= 0 , 'extend query arguments' );
+       } );
+
        QUnit.test( '.getQueryString()', 2, function ( assert ) {
                var uri = new mw.Uri( 'http://www.google.com/?q=uri' );
 
 
        } );
 
-       QUnit.test( 'Handle multiple query parameter (overrideKeys on)', 5, function ( assert ) {
-               var uri = new mw.Uri( 'http://www.example.com/dir/?m=foo&m=bar&n=1', {
+       QUnit.test( '.clone()', 6, function ( assert ) {
+               var original, clone;
+
+               original = new mw.Uri( 'http://foo.example.org/index.php?one=1&two=2' );
+               clone = original.clone();
+
+               assert.deepEqual( clone, original, 'clone has equivalent properties' );
+               assert.equal( original.toString(), clone.toString(), 'toString matches original' );
+
+               assert.notStrictEqual( clone, original, 'clone is a different object when compared by reference' );
+
+               clone.host = 'bar.example.org';
+               assert.notEqual( original.host, clone.host, 'manipulating clone did not effect original' );
+               assert.notEqual( original.toString(), clone.toString(), 'Stringified url no longer matches original' );
+
+               clone.query.three = 3;
+
+               assert.deepEqual(
+                       original.query,
+                       { 'one': '1', 'two': '2' },
+                       'Properties is deep cloned (bug 37708)'
+               );
+       } );
+
+       QUnit.test( '.toString() after query manipulation', 8, function ( assert ) {
+               var uri;
+
+               uri = new mw.Uri( 'http://www.example.com/dir/?m=foo&m=bar&n=1', {
                        overrideKeys: true
                });
 
-               assert.equal( uri.query.n, '1', 'multiple parameters are parsed' );
-               assert.equal( uri.query.m, 'bar', 'last key overrides earlier keys' );
-
                uri.query.n = [ 'x', 'y', 'z' ];
 
                // Verify parts and total length instead of entire string because order
                assert.ok( uri.toString().indexOf( 'm=bar' ), 'toString preserves other values' );
                assert.ok( uri.toString().indexOf( 'n=x&n=y&n=z' ), 'toString parameter includes all values of an array query parameter' );
                assert.equal( uri.toString().length, 'http://www.example.com/dir/?m=bar&n=x&n=y&n=z'.length, 'toString matches expected string' );
-       } );
 
-       QUnit.test( 'Handle multiple query parameter (overrideKeys off)', 9, function ( assert ) {
-               var uri = new mw.Uri( 'http://www.example.com/dir/?m=foo&m=bar&n=1', {
+               uri = new mw.Uri( 'http://www.example.com/dir/?m=foo&m=bar&n=1', {
                        overrideKeys: false
                });
 
-               // Strict comparison so that types are also verified (n should be string '1')
-               assert.strictEqual( uri.query.m.length, 2, 'multi-value query should be an array with 2 items' );
-               assert.strictEqual( uri.query.m[0], 'foo', 'order and value is correct' );
-               assert.strictEqual( uri.query.m[1], 'bar', 'order and value is correct' );
-               assert.strictEqual( uri.query.n, '1', 'n=1 is parsed with the correct value of the expected type' );
-
                // Change query values
                uri.query.n = [ 'x', 'y', 'z' ];
 
                assert.equal( uri.toString(), 'http://www.example.com/dir/', 'empty array value is ommitted' );
        } );
 
-       QUnit.test( 'All-dressed URI with everything', 11, function ( assert ) {
+       QUnit.test( 'Advanced URL', 11, function ( assert ) {
                var uri, queryString, relativePath;
 
                uri = new mw.Uri( 'http://auth@www.example.com:81/dir/dir.2/index.htm?q1=0&&test1&test2=value+%28escaped%29#top' );
                assert.ok( relativePath.indexOf( uri.fragment ) >= 0, 'fragement in relative path' );
        } );
 
-       QUnit.test( 'Cloning', 6, function ( assert ) {
-               var original, clone;
-
-               original = new mw.Uri( 'http://foo.example.org/index.php?one=1&two=2' );
-               clone = original.clone();
-
-               assert.deepEqual( clone, original, 'clone has equivalent properties' );
-               assert.equal( original.toString(), clone.toString(), 'toString matches original' );
-
-               assert.notStrictEqual( clone, original, 'clone is a different object when compared by reference' );
-
-               clone.host = 'bar.example.org';
-               assert.notEqual( original.host, clone.host, 'manipulating clone did not effect original' );
-               assert.notEqual( original.toString(), clone.toString(), 'Stringified url no longer matches original' );
-
-               clone.query.three = 3;
-
-               assert.deepEqual(
-                       original.query,
-                       { 'one': '1', 'two': '2' },
-                       'Properties is deep cloned (bug 37708)'
-               );
-       } );
-
-       QUnit.test( 'Constructing mw.Uri from plain object', 3, function ( assert ) {
-               var uri = new mw.Uri({
-                       protocol: 'http',
-                       host: 'www.foo.local',
-                       path: '/this'
-               });
-               assert.equal( uri.toString(), 'http://www.foo.local/this', 'Basic properties' );
-
-               uri = new mw.Uri({
-                       protocol: 'http',
-                       host: 'www.foo.local',
-                       path: '/this',
-                       query: { hi: 'there' },
-                       fragment: 'blah'
-               });
-               assert.equal( uri.toString(), 'http://www.foo.local/this?hi=there#blah', 'More complex properties' );
-
-               assert.throws(
-                       function () {
-                               return new mw.Uri({
-                                       protocol: 'http',
-                                       host: 'www.foo.local'
-                               });
-                       },
-                       function ( e ) {
-                               return e.message === 'Bad constructor arguments';
-                       },
-                       'Construction failed when missing required properties'
-               );
-       } );
-
-       QUnit.test( 'Manipulate properties', 8, function ( assert ) {
-               var uriBase, uri;
-
-               uriBase = new mw.Uri( 'http://en.wiki.local/w/api.php' );
-
-               uri = uriBase.clone();
-               uri.fragment = 'frag';
-               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php#frag', 'add a fragment' );
-
-               uri = uriBase.clone();
-               uri.host = 'fr.wiki.local';
-               uri.port = '8080';
-               assert.equal( uri.toString(), 'http://fr.wiki.local:8080/w/api.php', 'change host and port' );
-
-               uri = uriBase.clone();
-               uri.query.foo = 'bar';
-               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php?foo=bar', 'add query arguments' );
-
-               delete uri.query.foo;
-               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php', 'delete query arguments' );
-
-               uri = uriBase.clone();
-               uri.query.foo = 'bar';
-               assert.equal( uri.toString(), 'http://en.wiki.local/w/api.php?foo=bar', 'extend query arguments' );
-               uri.extend({
-                       foo: 'quux',
-                       pif: 'paf'
-               });
-               assert.ok( uri.toString().indexOf( 'foo=quux' ) >= 0, 'extend query arguments' );
-               assert.ok( uri.toString().indexOf( 'foo=bar' ) === -1, 'extend query arguments' );
-               assert.ok( uri.toString().indexOf( 'pif=paf' ) >= 0 , 'extend query arguments' );
-       } );
-
        QUnit.test( 'Handle protocol-relative URLs', 5, function ( assert ) {
                var UriRel, uri;
 
                assert.equal( uri.toString(), 'http://en.wiki.local/foo.com', 'handle absolute paths by supplying host from document in strict mode' );
        } );
 
-       QUnit.test( 'Bad calls', 3, function ( assert ) {
-               var uri;
-
-               assert.throws(
-                       function () {
-                               return new mw.Uri( 'glaswegian penguins' );
-                       },
-                       function ( e ) {
-                               return e.message === 'Bad constructor arguments';
-                       },
-                       'throw error on non-URI as argument to constructor'
-               );
-
-               assert.throws(
-                       function () {
-                               return new mw.Uri( 'foo.com/bar/baz', {
-                                       strictMode: true
-                               });
-                       },
-                       function ( e ) {
-                               return e.message === 'Bad constructor arguments';
-                       },
-                       'throw error on URI without protocol or // or leading / in strict mode'
-               );
-
-               uri = new mw.Uri( 'foo.com/bar/baz', {
-                       strictMode: false
-               });
-               assert.equal( uri.toString(), 'http://foo.com/bar/baz', 'normalize URI without protocol or // in loose mode' );
-       });
-
        QUnit.test( 'bug 35658', 2, function ( assert ) {
                var testProtocol, testServer, testPort, testPath, UriClass, uri, href;
 
                assert.equal( href, testProtocol + testServer + ':' + testPort + testPath, 'Root-relative URL gets host, protocol, and port supplied' );
 
        } );
-
-       QUnit.test( 'Constructor falls back to default location', 4, function ( assert ) {
-               var testuri, MyUri, uri;
-
-               testuri = 'http://example.org/w/index.php';
-               MyUri = mw.UriRelative( testuri );
-
-               uri = new MyUri();
-               assert.equal( uri.toString(), testuri, 'no arguments' );
-
-               uri = new MyUri( undefined );
-               assert.equal( uri.toString(), testuri, 'undefined' );
-
-               uri = new MyUri( null );
-               assert.equal( uri.toString(), testuri, 'null' );
-
-               uri = new MyUri( '' );
-               assert.equal( uri.toString(), testuri, 'empty string' );
-       } );
 }( mediaWiki, jQuery ) );