Merge "(bug 42639) Fix API action=options for multiselect prefs"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 14 Dec 2012 14:55:04 +0000 (14:55 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 14 Dec 2012 14:55:04 +0000 (14:55 +0000)
175 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/LinksUpdate.php
includes/LocalisationCache.php
includes/Namespace.php
includes/OutputPage.php
includes/Preferences.php
includes/ProtectionForm.php
includes/QueryPage.php
includes/Revision.php
includes/Setup.php
includes/StringUtils.php
includes/Title.php
includes/User.php
includes/UserMailer.php
includes/WebRequest.php
includes/WikiPage.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryTags.php
includes/api/ApiQueryUsers.php
includes/api/ApiUpload.php
includes/cache/MessageCache.php
includes/content/ContentHandler.php
includes/content/WikitextContentHandler.php
includes/db/Database.php
includes/db/DatabaseOracle.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/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/logging/LogFormatter.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/specials/SpecialUserlogin.php
includes/upload/AssembleUploadChunks.php
includes/upload/UploadBase.php
languages/Language.php
languages/messages/MessagesAf.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesAs.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/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDe.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEu.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGa.php
languages/messages/MessagesGl.php
languages/messages/MessagesGsw.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.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/MessagesKu_latn.php
languages/messages/MessagesKw.php
languages/messages/MessagesKy.php
languages/messages/MessagesLb.php
languages/messages/MessagesLt.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesNan.php
languages/messages/MessagesNb.php
languages/messages/MessagesNl.php
languages/messages/MessagesOs.php
languages/messages/MessagesPa.php
languages/messages/MessagesPcd.php
languages/messages/MessagesPfl.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/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSl.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesSv.php
languages/messages/MessagesTly.php
languages/messages/MessagesUk.php
languages/messages/MessagesVec.php
languages/messages/MessagesVi.php
languages/messages/MessagesYi.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/storage/moveToExternal.php
profileinfo.php
resources/jquery/jquery.client.js
resources/jquery/jquery.json.js
resources/mediawiki.page/mediawiki.page.watch.ajax.js
tests/parser/parserTests.txt
tests/phpunit/MediaWikiPHPUnitCommand.php
tests/phpunit/StructureTest.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/StringUtilsTest.php [new file with mode: 0644]
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/libs/GenericArrayObjectTest.php
tests/phpunit/includes/logging/LogFormatterTest.php [new file with mode: 0755]
tests/phpunit/includes/logging/LogTests.i18n.php [new file with mode: 0755]
tests/phpunit/includes/parser/PreprocessorTest.php
tests/phpunit/includes/site/SiteArrayTest.php
tests/phpunit/includes/upload/UploadFromUrlTest.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..78ef1df 100644 (file)
@@ -57,6 +57,11 @@ 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 24620) Add types to LogFormatter.
+* jQuery JSON upgraded from 2.3 to 2.4.0.
 
 === Bug fixes in 1.21 ===
 * (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
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 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 e8d5632..46af002 100644 (file)
@@ -419,4 +419,18 @@ class MWNamespace {
                return $wgNonincludableNamespaces && in_array( $index, $wgNonincludableNamespaces );
        }
 
+       /**
+        * Get the default content model for a namespace
+        * This does not mean that all pages in that namespace have the model
+        *
+        * @since 1.21
+        * @param $index int Index to check
+        * @return null|string default model name for the given namespace, if set
+        */
+       public static function getNamespaceContentModel( $index ) {
+               global $wgNamespaceContentModels;
+               return isset( $wgNamespaceContentModels[$index] )
+                       ? $wgNamespaceContentModels[$index]
+                       : null;
+       }
 }
index 7649b23..868c786 100644 (file)
@@ -777,6 +777,7 @@ class OutputPage extends ContextSource {
                if ( isset( $this->mPageTitleActionText ) ) {
                        return $this->mPageTitleActionText;
                }
+               return '';
        }
 
        /**
index a79f98f..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 )
@@ -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 5d6bcbd..cc79c64 100644 (file)
@@ -1148,9 +1148,13 @@ class Revision implements IDBAccessObject {
          *
          * @param $row Object: the text data
          * @param $prefix String: table prefix (default 'old_')
+         * @param $wiki String|false: the name of the wiki to load the revision text from
+         *         (same as the the wiki $row was loaded from) or false to indicate the local
+         *         wiki (this is the default). Otherwise, it must be a symbolic wiki database
+         *         identifier as understood by the LoadBalancer class.
          * @return String: text the text requested or false on failure
          */
-       public static function getRevisionText( $row, $prefix = 'old_' ) {
+       public static function getRevisionText( $row, $prefix = 'old_', $wiki = false ) {
                wfProfileIn( __METHOD__ );
 
                # Get data
@@ -1178,7 +1182,7 @@ class Revision implements IDBAccessObject {
                                wfProfileOut( __METHOD__ );
                                return false;
                        }
-                       $text = ExternalStore::fetchFromURL( $url );
+                       $text = ExternalStore::fetchFromURL( $url, array( 'wiki' => $wiki ) );
                }
 
                // If the text was fetched without an error, convert it
index 83ca516..f6c8245 100644 (file)
@@ -390,6 +390,11 @@ if ( !defined( 'MW_COMPILED' ) ) {
        wfProfileOut( $fname . '-includes' );
 }
 
+if ( $wgSecureLogin && substr( $wgServer, 0, 2 ) !== '//' ) {
+       $wgSecureLogin = false;
+       wfWarn( 'Secure login was enabled on a server that only supports HTTP or HTTPS. Disabling secure login.' );
+}
+
 # Now that GlobalFunctions is loaded, set defaults that depend
 # on it.
 if ( $wgTmpDirectory === false ) {
index fba31ea..54a85dc 100644 (file)
  * A collection of static methods to play with strings.
  */
 class StringUtils {
+
+       /**
+        * Test whether a string is valid UTF-8.
+        *
+        * The function check for invalid byte sequences, overlong encoding but
+        * not for different normalisations.
+        *
+        * This relies internally on the mbstring function mb_check_encoding()
+        * hardcoded to check against UTF-8. Whenever the function is not available
+        * we fallback to a pure PHP implementation. Setting $disableMbstring to
+        * true will skip the use of mb_check_encoding, this is mostly intended for
+        * unit testing our internal implementation.
+        *
+        * @since 1.21
+        *
+        * @param string $value String to check
+        * @param boolean $disableMbstring Whether to use the pure PHP
+        * implementation instead of trying mb_check_encoding. Intended for unit
+        * testing. Default: false
+        *
+        * @return boolean Whether the given $value is a valid UTF-8 encoded string
+        */
+       static function isUtf8( $value, $disableMbstring = false ) {
+
+               if ( preg_match( '/[\x80-\xff]/', $value ) === 0 ) {
+                       # no high bit set, this is pure ASCII which is defacto
+                       # valid UTF-8
+                       return true;
+               }
+
+               if ( !$disableMbstring && function_exists( 'mb_check_encoding' ) ) {
+                       return mb_check_encoding( $value, 'UTF-8' );
+               } else {
+                       $hasUtf8 = preg_match( '/^(?>
+                                 [\x00-\x7f]
+                               | [\xc0-\xdf][\x80-\xbf]
+                               | [\xe0-\xef][\x80-\xbf]{2}
+                               | [\xf0-\xf7][\x80-\xbf]{3}
+                               | [\xf8-\xfb][\x80-\xbf]{4}
+                               | \xfc[\x84-\xbf][\x80-\xbf]{4}
+                       )+$/x', $value );
+                       return ($hasUtf8 > 0 );
+               }
+       }
+
        /**
         * Perform an operation equivalent to
         *
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 8d1ed68..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' );
@@ -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 ec503d6..bb22448 100644 (file)
@@ -227,6 +227,11 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        if ( MWNamespace::isNonincludable( $ns ) ) {
                                $data[$ns]['nonincludable'] = '';
                        }
+
+                       $contentmodel = MWNamespace::getNamespaceContentModel( $ns );
+                       if ( $contentmodel ) {
+                               $data[$ns]['defaultcontentmodel'] = $contentmodel;
+                       }
                }
 
                $this->getResult()->setIndexedTagName( $data, 'ns' );
index f97c1b2..de30d06 100644 (file)
@@ -162,7 +162,7 @@ class ApiQueryTags extends ApiQueryBase {
                        'prop' => array(
                                'Which properties to get',
                                ' name         - Adds name of tag',
-                               ' displayname  - Adds system messsage for the tag',
+                               ' displayname  - Adds system message for the tag',
                                ' description  - Adds description of the tag',
                                ' hitcount     - Adds the amount of revisions that have this tag',
                        ),
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 f88332f..89eff2e 100644 (file)
@@ -211,7 +211,8 @@ class ApiUpload extends ApiBase {
                                        }
                                        UploadBase::setSessionStatus(
                                                $this->mParams['filekey'],
-                                               array( 'result' => 'Poll', 'status' => Status::newGood() )
+                                               array( 'result' => 'Poll',
+                                                       'stage' => 'queued', 'status' => Status::newGood() )
                                        );
                                        $retVal = 1;
                                        $cmd = wfShellWikiCmd(
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..cff49df 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
@@ -185,8 +186,6 @@ abstract class ContentHandler {
         * @return null|string default model name for the page given by $title
         */
        public static function getDefaultModelFor( Title $title ) {
-               global $wgNamespaceContentModels;
-
                // NOTE: this method must not rely on $title->getContentModel() directly or indirectly,
                //       because it is used to initialize the mContentModel member.
 
@@ -194,11 +193,7 @@ abstract class ContentHandler {
 
                $ext = false;
                $m = null;
-               $model = null;
-
-               if ( !empty( $wgNamespaceContentModels[ $ns ] ) ) {
-                       $model = $wgNamespaceContentModels[ $ns ];
-               }
+               $model = MWNamespace::getNamespaceContentModel( $ns );
 
                // Hook can determine default model
                if ( !wfRunHooks( 'ContentHandlerDefaultModelFor', array( $title, &$model ) ) ) {
index 7e9e5e8..4ec20ef 100644 (file)
@@ -54,7 +54,7 @@ class WikitextContentHandler extends TextContentHandler {
         */
        public function makeRedirectContent( Title $destination ) {
                $mwRedir = MagicWord::get( 'redirect' );
-               $redirectText = $mwRedir->getSynonym( 0 ) . ' [[' . $destination->getPrefixedText() . "]]\n";
+               $redirectText = $mwRedir->getSynonym( 0 ) . ' [[' . $destination->getPrefixedText() . ']]';
 
                return new WikitextContent( $redirectText );
        }
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 aa4da0f..2f9a05c 100644 (file)
@@ -318,7 +318,7 @@ class DatabaseOracle extends DatabaseBase {
 
        protected function doQuery( $sql ) {
                wfDebug( "SQL: [$sql]\n" );
-               if ( !mb_check_encoding( $sql ) ) {
+               if ( !StringUtils::isUtf8( $sql ) ) {
                        throw new MWException( "SQL encoding is invalid\n$sql" );
                }
 
@@ -1116,7 +1116,7 @@ class DatabaseOracle extends DatabaseBase {
                if ( $col_type == 'CLOB' ) {
                        $col = 'TO_CHAR(' . $col . ')';
                        $val = $wgContLang->checkTitleEncoding( $val );
-               } elseif ( $col_type == 'VARCHAR2' && !mb_check_encoding( $val ) ) {
+               } elseif ( $col_type == 'VARCHAR2' ) {
                        $val = $wgContLang->checkTitleEncoding( $val );
                }
        }
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 d64530f..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;
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..172e4f6
--- /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] ) ) {
+                       wfDebugLog( 'ExternalStoreDB-cache', "ExternalStoreDB::fetchBlob cache hit on $cacheID\n" );
+                       return $externalBlobCache[$cacheID];
+               }
+
+               wfDebugLog( 'ExternalStoreDB-cache', "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 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 59beb7c..50aa2bc 100644 (file)
@@ -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 e88441d..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 ) {
@@ -127,9 +128,6 @@ abstract class JobQueue {
                }
                wfProfileIn( __METHOD__ );
                $ok = $this->doBatchPush( $jobs, $flags );
-               if ( $ok ) {
-                       wfIncrStats( 'job-insert', count( $jobs ) );
-               }
                wfProfileOut( __METHOD__ );
                return $ok;
        }
@@ -148,9 +146,6 @@ abstract class JobQueue {
        final public function pop() {
                wfProfileIn( __METHOD__ );
                $job = $this->doPop();
-               if ( $job ) {
-                       wfIncrStats( 'job-pop' );
-               }
                wfProfileOut( __METHOD__ );
                return $job;
        }
@@ -165,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 ) {
@@ -209,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 e23ff0d..719761b 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 ) {
@@ -110,6 +114,7 @@ class JobQueueDB extends JobQueue {
                                        foreach ( array_chunk( $rows, 50 ) as $rowBatch ) {
                                                $dbw->insert( 'job', $rowBatch, __METHOD__ );
                                        }
+                                       wfIncrStats( 'job-insert', count( $rows ) );
                                } catch ( DBError $e ) {
                                        if ( $atomic ) {
                                                $dbw->rollback( __METHOD__ );
@@ -164,11 +169,11 @@ class JobQueueDB extends JobQueue {
                                $wgMemc->set( $this->getEmptinessCacheKey(), 'true', self::CACHE_TTL );
                                break; // nothing to do
                        }
+                       wfIncrStats( 'job-pop' );
                        // Get the job object from the row...
                        $title = Title::makeTitleSafe( $row->job_namespace, $row->job_title );
                        if ( !$title ) {
                                $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
-                               wfIncrStats( 'job-pop' );
                                wfDebugLog( 'JobQueueDB', "Row has invalid title '{$row->job_title}'." );
                                continue; // try again
                        }
@@ -195,7 +200,6 @@ class JobQueueDB extends JobQueue {
         */
        protected function claimRandom( $uuid, $rand, $gte ) {
                $dbw  = $this->getMasterDB();
-               $dir  = $gte ? 'ASC' : 'DESC';
                $ineq = $gte ? '>=' : '<=';
 
                $row = false; // the row acquired
@@ -209,8 +213,8 @@ class JobQueueDB extends JobQueue {
                                        'job_cmd'   => $this->type,
                                        'job_token' => '',
                                        "job_random {$ineq} {$dbw->addQuotes( $rand )}" ),
-                               __METHOD__,
-                               array( 'ORDER BY' => "job_random {$dir}" )
+                               __METHOD__
+                               // Bug 42614: "ORDER BY job_random" causes slowness on mysql for some reason
                        );
                        if ( $row ) { // claim the job
                                $dbw->update( 'job', // update by PK
@@ -366,6 +370,8 @@ class JobQueueDB extends JobQueue {
 
        /**
         * @see JobQueue::doAck()
+        * @param Job $job
+        * @throws MWException
         * @return Job|bool
         */
        protected function doAck( Job $job ) {
@@ -385,6 +391,8 @@ class JobQueueDB extends JobQueue {
 
        /**
         * @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 8c1e294..3029925 100644 (file)
@@ -403,7 +403,7 @@ class LogFormatter {
                foreach ( $entry->getParameters() as $key => $value ) {
                        if ( strpos( $key, ':' ) === false ) continue;
                        list( $index, $type, $name ) = explode( ':', $key, 3 );
-                       $params[$index - 1] = $value;
+                       $params[$index - 1] = $this->formatParameterValue( $type, $value );
                }
 
                /* Message class doesn't like non consecutive numbering.
@@ -446,6 +446,78 @@ class LogFormatter {
                return $this->parsedParameters = $params;
        }
 
+       /**
+        * Formats parameters values dependent to their type
+        * @param $type string The type of the value.
+        *   Valid are currently:
+        *     * - (empty) or plain: The value is returned as-is
+        *     * raw: The value will be added to the log message
+        *            as raw parameter (e.g. no escaping)
+        *            Use this only if there is no other working
+        *            type like user-link or title-link
+        *     * msg: The value is a message-key, the output is
+        *            the message in user language
+        *     * msg-content: The value is a message-key, the output
+        *                    is the message in content language
+        *     * user: The value is a user name, e.g. for GENDER
+        *     * user-link: The value is a user name, returns a
+        *                  link for the user
+        *     * title: The value is a page title,
+        *              returns name of page
+        *     * title-link: The value is a page title,
+        *                   returns link to this page
+        *     * number: Format value as number
+        * @param $value string The parameter value that should
+        *                      be formated
+        * @return string or Message::numParam or Message::rawParam
+        *         Formated value
+        * @since 1.21
+        */
+       protected function formatParameterValue( $type, $value ) {
+               $saveLinkFlood = $this->linkFlood;
+
+               switch( strtolower( trim( $type ) ) ) {
+                       case 'raw':
+                               $value = Message::rawParam( $value );
+                               break;
+                       case 'msg':
+                               $value = $this->msg( $value )->text();
+                               break;
+                       case 'msg-content':
+                               $value = $this->msg( $value )->inContentLanguage()->text();
+                               break;
+                       case 'number':
+                               $value = Message::numParam( $value );
+                               break;
+                       case 'user':
+                               $user = User::newFromName( $value );
+                               $value = $user->getName();
+                               break;
+                       case 'user-link':
+                               $this->setShowUserToolLinks( false );
+
+                               $user = User::newFromName( $value );
+                               $value = Message::rawParam( $this->makeUserLink( $user ) );
+
+                               $this->setShowUserToolLinks( $saveLinkFlood );
+                               break;
+                       case 'title':
+                               $title = Title::newFromText( $value );
+                               $value = $title->getPrefixedText();
+                               break;
+                       case 'title-link':
+                               $title = Title::newFromText( $value );
+                               $value = Message::rawParam( $this->makePageLink( $title ) );
+                               break;
+                       case 'plain':
+                               // Plain text, nothing to do
+                       default:
+                               // Catch other types and use the old behavior (return as-is)
+               }
+
+               return $value;
+       }
+
        /**
         * Helper to make a link to the page, taking the plaintext
         * value in consideration.
@@ -570,6 +642,16 @@ class LogFormatter {
                return array();
        }
 
+       /**
+        * @return Output of getMessageParameters() for testing
+        */
+       public function getMessageParametersForTesting() {
+               // This function was added because getMessageParameters() is
+               // protected and a change from protected to public caused
+               // problems with extensions
+               return $this->getMessageParameters();
+       }
+
 }
 
 /**
@@ -1108,7 +1190,9 @@ class RightsLogFormatter extends LogFormatter {
                        $params[3] = $this->msg( 'rightsnone' )->text();
                }
                if ( count( $newGroups ) ) {
-                       $params[4] = $lang->listToText( $newGroups );
+                       // Array_values is used here because of bug 42211
+                       // see use of array_unique in UserrightsPage::doSaveUserGroups on $newGroups.
+                       $params[4] = $lang->listToText( array_values( $newGroups ) );
                } else {
                        $params[4] = $this->msg( 'rightsnone' )->text();
                }
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..096a179 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()] );
                }
@@ -202,4 +202,39 @@ class SiteArray extends GenericArrayObject implements SiteList {
                $this[] = $site;
        }
 
+       /**
+        * @see GenericArrayObject::getSerializationData
+        *
+        * @since 1.21
+        *
+        * @return array
+        */
+       protected function getSerializationData() {
+               return array_merge(
+                       parent::getSerializationData(),
+                       array(
+                               'internalIds' => $this->byInternalId,
+                               'globalIds' => $this->byGlobalId,
+                       )
+               );
+       }
+
+       /**
+        * @see GenericArrayObject::unserialize
+        *
+        * @since 1.21
+        *
+        * @param string $serialization
+        *
+        * @return array
+        */
+       public function unserialize( $serialization ) {
+               $serializationData = parent::unserialize( $serialization );
+
+               $this->byInternalId = $serializationData['internalIds'];
+               $this->byGlobalId = $serializationData['globalIds'];
+
+               return $serializationData;
+       }
+
 }
index 78c942b..217f860 100644 (file)
@@ -151,6 +151,7 @@ class SiteObject extends ORMRow implements Site {
         *
         * @since 1.21
         *
+        * @throws MWException
         * @return string|false
         */
        public function getProtocol() {
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 4980ffb..a09d5bd 100644 (file)
@@ -752,7 +752,7 @@ class LoginForm extends SpecialPage {
        }
 
        function processLogin() {
-               global $wgMemc, $wgLang, $wgSecureLogin;
+               global $wgMemc, $wgLang, $wgSecureLogin, $wgCookieSecure;
 
                switch ( $this->authenticateUserData() ) {
                        case self::SUCCESS:
@@ -1264,15 +1264,21 @@ class LoginForm extends SpecialPage {
         * Renew the user's session id, using strong entropy
         */
        private function renewSessionId() {
-               if ( wfCheckEntropy() ) {
+               global $wgSecureLogin, $wgCookieSecure;
+               if( $wgSecureLogin && !$this->mStickHTTPS ) {
+                       $wgCookieSecure = false;
+               }
+
+               // If either we don't trust PHP's entropy, or if we need
+               // to change cookie settings when logging in because of
+               // wpStickHTTPS, then change the session ID manually.
+               $cookieParams = session_get_cookie_params();
+               if ( wfCheckEntropy() && $wgCookieSecure == $cookieParams['secure'] ) {
                        session_regenerate_id( false );
                } else {
-                       //If we don't trust PHP's entropy, we have to replace the session manually
                        $tmp = $_SESSION;
-                       session_unset();
-                       session_write_close();
-                       session_id( MWCryptRand::generateHex( 32 ) );
-                       session_start();
+                       session_destroy();
+                       wfSetupSession( MWCryptRand::generateHex( 32 ) );
                        $_SESSION = $tmp;
                }
        }
index d5ce78d..d933d34 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' ) );
@@ -45,10 +47,16 @@ class AssembleUploadChunks extends Maintenance {
                                throw new MWException( "No user with ID " . $this->getOption( 'userid' ) . "." );
                        }
 
+                       UploadBase::setSessionStatus(
+                               $this->getOption( 'filekey' ),
+                               array( 'result' => 'Poll', 'stage' => 'assembling', 'status' => Status::newGood() )
+                       );
+
                        $upload = new UploadFromChunks( $user );
                        $upload->continueChunks(
                                $this->getOption( 'filename' ),
                                $this->getOption( 'filekey' ),
+                               // @TODO: set User?
                                RequestContext::getMain()->getRequest() // dummy request
                        );
 
@@ -57,8 +65,9 @@ class AssembleUploadChunks extends Maintenance {
                        if ( !$status->isGood() ) {
                                UploadBase::setSessionStatus(
                                        $this->getOption( 'filekey' ),
-                                       array( 'result' => 'Failure', 'status' => $status )
+                                       array( 'result' => 'Failure', 'stage' => 'assembling', 'status' => $status )
                                );
+                               session_write_close();
                                $this->error( $status->getWikiText() . "\n", 1 ); // die
                        }
 
@@ -80,6 +89,7 @@ class AssembleUploadChunks extends Maintenance {
                                $this->getOption( 'filekey' ),
                                array(
                                        'result'    => 'Success',
+                                       'stage'     => 'assembling',
                                        'filekey'   => $newFileKey,
                                        'imageinfo' => $imageInfo,
                                        'status'    => Status::newGood()
@@ -90,12 +100,16 @@ class AssembleUploadChunks extends Maintenance {
                                $this->getOption( 'filekey' ),
                                array(
                                        'result' => 'Failure',
+                                       'stage'  => 'assembling',
                                        '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 02cf8fd..fdd5f65 100644 (file)
@@ -1519,6 +1519,10 @@ abstract class UploadBase {
         * @return void
         */
        public static function setSessionStatus( $statusKey, $value ) {
-               $_SESSION[self::SESSION_STATUS_KEY][$statusKey] = $value;
+               if ( $value === false ) {
+                       unset( $_SESSION[self::SESSION_STATUS_KEY][$statusKey] );
+               } else {
+                       $_SESSION[self::SESSION_STATUS_KEY][$statusKey] = $value;
+               }
        }
 }
index a72f98f..21ba0bd 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 );
@@ -2416,19 +2425,7 @@ class Language {
                if ( is_array( $s ) ) {
                        wfDebugDieBacktrace( 'Given array to checkTitleEncoding.' );
                }
-               # Check for non-UTF-8 URLs
-               $ishigh = preg_match( '/[\x80-\xff]/', $s );
-               if ( !$ishigh ) {
-                       return $s;
-               }
-
-               if ( function_exists( 'mb_check_encoding' ) ) {
-                       $isutf8 = mb_check_encoding( $s, 'UTF-8' );
-               } else {
-                       $isutf8 = preg_match( '/^(?>[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' .
-                                       '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s );
-               }
-               if ( $isutf8 ) {
+               if ( StringUtils::isUtf8( $s ) ) {
                        return $s;
                }
 
index 4ac06ab..37ca3bb 100644 (file)
@@ -865,8 +865,9 @@ As u per ongeluk hier uitgekom het, gebruik u blaaier se '''terug'''-knoppie.",
 U kan [[Special:Search/{{PAGENAME}}|vir die bladsytitel in ander bladsye soek]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]
 of [{{fullurl:{{FULLPAGENAME}}|action=edit}} hierdie bladsy wysig]</span>.',
-'noarticletext-nopermission' => 'Daar is tans geen teks in hierdie bladsy nie. U kan vir die bladsytitel [[Special:Search/{{PAGENAME}}|in ander bladsye soek]] of
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]</span>.',
+'noarticletext-nopermission' => 'Hierdie bladsy bevat geen teks nie.
+U kan vir die term [[Special:Search/{{PAGENAME}}|in ander bladsye soek]] of
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]</span>, maar u kan nie die bladsy skep nie.',
 'missing-revision' => 'Die weergawe #$1 van die bladsy "{{PAGENAME}} bestaan nie.
 
 Dit word meestal veroorsaak deur die volg van \'n verouderde verwysing na \'n bladsy wat verwyder is.
@@ -1562,7 +1563,7 @@ Die inligting is vir ander gebruikers sigbaar.',
 'rclinks' => 'Vertoon die laaste $1 wysigings in die afgelope $2 dae<br />$3',
 'diff' => 'verskil',
 'hist' => 'geskiedenis',
-'hide' => 'versteek',
+'hide' => 'Versteek',
 'show' => 'Wys',
 'minoreditletter' => 'k',
 'newpageletter' => 'N',
@@ -2004,6 +2005,7 @@ Elke ry bevat skakels na die eerste en die tweede aanstuur, asook die eerste re
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|greep|grepe}}',
 'ncategories' => '$1 {{PLURAL:$1|kategorie|kategorieë}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwikiskakel|interwikiskakels}}',
 'nlinks' => '$1 {{PLURAL:$1|skakel|skakels}}',
 'nmembers' => '$1 {{PLURAL:$1|lid|lede}}',
 'nrevisions' => '$1 {{PLURAL:$1|weergawe|weergawes}}',
@@ -2032,6 +2034,7 @@ Elke ry bevat skakels na die eerste en die tweede aanstuur, asook die eerste re
 'mostlinkedtemplates' => 'Sjablone met die meeste skakels daarheen',
 'mostcategories' => 'Artikels met die meeste kategorieë',
 'mostimages' => 'Beelde met meeste skakels daarheen',
+'mostinterwikis' => 'Artikels met die meeste interwikiskakels',
 'mostrevisions' => 'Artikels met meeste wysigings',
 'prefixindex' => 'Alle bladsye (voorvoegselindeks)',
 'prefixindex-namespace' => 'Alle bladsye met die voorvoegsel (naamruimte $1)',
@@ -2211,7 +2214,7 @@ Daar kan [[{{MediaWiki:Listgrouprights-helppage}}|extra inligting]] oor individu
 
 # Watchlist
 'watchlist' => 'My dophoulys',
-'mywatchlist' => 'My dophoulys',
+'mywatchlist' => 'Dophoulys',
 'watchlistfor2' => 'Vir $1 $2',
 'nowatchlist' => 'U het geen items in u dophoulys nie.',
 'watchlistanontext' => '$1 is noodsaaklik om u dophoulys te sien of te wysig.',
@@ -2468,9 +2471,9 @@ $1',
 'blanknamespace' => '(Hoof)',
 
 # Contributions
-'contributions' => 'Gebruikersbydraes',
+'contributions' => '{{GENDER:$1|Gebruikersbydraes}}',
 'contributions-title' => '$1 se bydraes',
-'mycontris' => 'My bydraes',
+'mycontris' => 'Bydraes',
 'contribsub2' => 'Vir $1 ($2)',
 'nocontribs' => 'Geen veranderinge wat by hierdie kriteria pas, is gevind nie.',
 'uctop' => ' (boontoe)',
@@ -2510,7 +2513,7 @@ Die laaste inskrywing uit die blokkeerlogboek word hier ter inligting weergegee:
 'whatlinkshere-hideredirs' => '$1 aansture',
 'whatlinkshere-hidetrans' => '$1 insluitings',
 'whatlinkshere-hidelinks' => '$1 skakels',
-'whatlinkshere-hideimages' => '$1 beeldskakels',
+'whatlinkshere-hideimages' => 'Lêerskakels $1',
 'whatlinkshere-filters' => 'Filters',
 
 # Block/unblock
index 0d50758..fc0fd78 100644 (file)
@@ -517,7 +517,7 @@ $messages = array(
 
 'underline-always' => 'دائما',
 'underline-never' => 'أبدا',
-'underline-default' => 'تبعا لإعدادات المتصفح',
+'underline-default' => 'تبعا Ù\84إعدادات Ø§Ù\84Ù\88اجÙ\87Ø© Ø£Ù\88 Ø§Ù\84Ù\85تصÙ\81Ø­',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'نمط خط منطقة التحرير:',
@@ -603,7 +603,7 @@ $messages = array(
 'cancel' => 'إلغاء',
 'moredotdotdot' => 'المزيد...',
 'mypage' => 'صفحتي',
-'mytalk' => 'نقاشي',
+'mytalk' => 'نقاش',
 'anontalk' => 'النقاش لعنوان الأيبي هذا',
 'navigation' => 'إبحار',
 'and' => '&#32;و',
@@ -764,7 +764,7 @@ $1',
 'sort-ascending' => 'ترتيب تصاعدي',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'صفحة',
+'nstab-main' => 'اÙ\84صÙ\81حة',
 'nstab-user' => 'صفحة {{GENDER:{{BASEPAGENAME}}|مستخدم|مستخدمة}}',
 'nstab-media' => 'صفحة وسيط',
 'nstab-special' => 'صفحة خاصة',
@@ -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,9 @@ $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_body_intro_deleted' => 'إن صفحة {{SITENAME}} بعنوان $1 {{GENDER:$2|حذفها|حذفتها}} $2 في $PAGEEDITDATE. لمشاهدة النسخة الحالية راجع $3.',
 'enotif_lastvisited' => 'انظر $1 لكل التغييرات منذ زيارتك الأخيرة.',
 'enotif_lastdiff' => 'انظر $1 لرؤية هذا التغيير.',
 'enotif_anon_editor' => 'مستخدم مجهول $1',
@@ -3380,6 +3387,7 @@ $1',
 'markedaspatrollederror' => 'لا يمكن التعليم بالمراجعة',
 'markedaspatrollederrortext' => 'يجب عليك اختيار المراجعة التي تريد أن تشير أنها مراجعة',
 'markedaspatrollederror-noautopatrol' => 'لا يجوز لك تعليم تغييراتك الشخصية بعلامة المراجعة.',
+'markedaspatrollednotify' => 'هذا التغيير لـ $1  تم تعليمه كمراقب.',
 
 # Patrol log
 'patrol-log-page' => 'سجل الخفر',
@@ -3447,6 +3455,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 +4188,7 @@ $5
 'version-license' => 'الرخصة',
 'version-poweredby-credits' => "تدار هذه الويكي ب'''[//www.mediawiki.org/ ميدياويكي]''', حقوق النشر © 2001-$1 $2.",
 'version-poweredby-others' => 'آخرون',
+'version-credits-summary' => 'نود أن نعرف بالأشخاص التالية أسماؤهم لمساهمتهم في [[خاص:نسخة|ميدياويكي]].',
 'version-license-info' => "ميدياويكي برنامج حر، يحق لك توزيعه و/أو تعديله وفقاً لبنود رخصة غنو العمومية كما نشرتها مؤسسة البرمجيات الحرة، الإصدار الثاني أو (وفقا لاختيارك أنت) أي إصدار لاحق.
 
 هذا البرنامج يوزع على أمل أن يكون مفيداً، ولكن '''دون أية ضمانات'''، بما في ذلك ضمانات '''التسويق''' أو '''الملاءمة لغرض معين'''. انظر رخصة غنو العمومية لمزيد من التفاصيل.
@@ -4398,4 +4408,6 @@ $5
 'duration-centuries' => '{{PLURAL: $1||قرن واحد|قرنان|$1 قرون|$1 قرنًا|$1 قرن}}',
 'duration-millennia' => '{{PLURAL: $1||ألفية واحدة|ألفيتان|$1 ألفيات|$1 ألفية}}',
 
+# Unknown messages
+'svg-long-error' => 'ملف SVG غير صالح: $1',
 );
index d00466b..9e73891 100644 (file)
@@ -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' => 'ܫܚܠܦ ܪ̈ܗܝܬܐ ܦܛܝܪ̈ܬܐ',
@@ -1703,6 +1703,7 @@ $1',
 'specialpages-group-other' => 'ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ ܐܚܪ̈ܢܝܬܐ',
 'specialpages-group-login' => 'ܥܘܠ / ܒܪܝ ܚܘܫܒܢܐ',
 'specialpages-group-changes' => 'ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܘܣܓܠ̈ܐ',
+'specialpages-group-media' => 'ܬܫܪܪ̈ܐ ܕܡܝܕܝܐ ܘܐܣܩܬ̈ܐ',
 'specialpages-group-users' => 'ܡܦܠܚܢ̈ܐ ܘܙܕ̈ܩܐ',
 'specialpages-group-highuse' => 'ܦܐܬܬ̈ܐ ܕܡܬܚܫܚܢܘܬܐ ܥܠܝܬܐ',
 'specialpages-group-pages' => 'ܡܟܬܒܘܬ̈ܐ ܕܦܐܬܬ̈ܐ',
index cd09835..cfb4e28 100644 (file)
@@ -316,7 +316,7 @@ $messages = array(
 'cancel' => 'বাতিল কৰক',
 'moredotdotdot' => 'অধিক...',
 'mypage' => 'মোৰ পৃষ্ঠা',
-'mytalk' => 'মà§\8bৰ à¦\95থা-বতৰা',
+'mytalk' => 'কথা-বতৰা',
 'anontalk' => 'এই IP-ত যোগাযোগ কৰক',
 'navigation' => 'দিকদৰ্শন',
 'and' => '&#32;আৰু',
@@ -348,6 +348,7 @@ $messages = array(
 'namespaces' => 'নামস্থান',
 'variants' => 'বিকল্পসমূহ',
 
+'navigation-heading' => 'সা-সঁজুলি',
 'errorpagetitle' => 'ভুল',
 'returnto' => '$1লৈ ঘূৰি যাওক ।',
 'tagline' => '{{SITENAME}}ৰ পৰা',
@@ -555,7 +556,7 @@ $1',
 'actionthrottled' => 'কাৰ্য লেহেম কৰা হৈছে',
 'actionthrottledtext' => 'স্পাম ৰোধ কৰিবলৈ এই ক্ৰিয়াতো কম সময়ৰ ভিতৰত বহু বেছি বাৰ কৰাতো ৰোধ কৰা হৈছে, আৰু আপুনি ইতিমধ্যে সেই সীমা অতিক্ৰম কৰিলে।
 অনুগ্ৰহ কৰি কিছু সময় পাছত চেষ্টা কৰক।',
-'protectedpagetext' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\9fà§\8bৰ à¦¸à¦®à§\8dপাদনা à§°à§\8bধ à¦\95ৰিবলà§\88 সুৰক্ষিত কৰা হৈছে।',
+'protectedpagetext' => 'সমà§\8dপাদনা à§°à§\8bধ à¦\95ৰিবলà§\88 à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন সুৰক্ষিত কৰা হৈছে।',
 'viewsourcetext' => 'আপুনি এই পৃষ্ঠাটোৰ উৎস চাব আৰু নকল কৰিব পাৰে',
 'viewyourtext' => "আপুনি '''আপোনাৰ সম্পাদনাসমূহ'''ৰ উৎস চাব আৰু এই পৃষ্ঠালৈ নকল কৰিব পাৰে:",
 'protectedinterface' => 'এই পৃষ্ঠাই ৱিকি ছফ্টৱেৰৰ ইণ্টাৰফে’চ বাৰ্তা প্ৰদান কৰে আৰু ইয়াক সুৰক্ষিত কৰি ৰখা হৈছে।
@@ -960,6 +961,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 'edit-already-exists' => "নতুন পৃষ্ঠা সৃষ্টি কৰা নহ'ল ।
 পৃষ্ঠাখন ইতিমধ্যে আছেই ।",
 'defaultmessagetext' => 'সাধাৰণ বাৰ্তা পাঠ্য',
+'content-failed-to-parse' => '$1 মডেলৰ বাবে $2ৰ তথ্য নিকা কৰিব পৰা নগ’ল: $3',
 'invalid-content-data' => 'অবৈধ সমল তথ্য',
 'content-not-allowed-here' => '[[$2]] পৃষ্ঠাত "$1" সমল অনুমোদিত নহয়',
 
@@ -1181,6 +1183,11 @@ $1",
 'editundo' => 'পূৰ্ববত কৰক',
 'diff-multi' => '({{PLURAL:$2|এজন সদস্যৰ|$2জন সদস্যৰ}} দ্বাৰা {{PLURAL:$1|এটা মধ্যৱৰ্তী সংশোধন|$1-টা মধ্যৱৰ্তী সংশোধন}} দেখোৱা হোৱা নাই)',
 'diff-multi-manyusers' => '({{PLURAL:$2|এজনতকৈ|$2-জনতকৈ}} অধিক সদস্যৰ দ্বাৰা {{PLURAL:$1|এটা মধ্যৱৰ্তী সংশোধন|$1-টা মধ্যৱৰ্তী সংশোধন}} দেখুওৱা হোৱা নাই)',
+'difference-missing-revision' => '{{PLURAL:$2|এটা সংস্কৰণ|$2 সংস্কৰণসমূহৰ}} সংশোধনৰ পাৰ্থক্য  ($1) {{PLURAL:$2| পোৱা নগ’ল}}।
+
+
+সাধাৰণতে বিলোপ কৰা এখন পৃষ্ঠাৰ পুৰণা ইতিহাস লিংক অনুসৰণ কৰিলে এনে হয়।
+[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} বিলোপন অভিলেখ] চালে অধিক তথ্য পাব।',
 
 # Search results
 'searchresults' => 'অনুসন্ধানৰ ফলাফল',
@@ -1258,7 +1265,7 @@ $1",
 
 # Preferences page
 'preferences' => 'পছন্দসমূহ',
-'mypreferences' => 'মà§\8bৰ à¦ªà¦\9bনà§\8dদসমà§\82হ',
+'mypreferences' => 'পছন্দসমূহ',
 'prefs-edits' => 'সম্পাদনাৰ সংখ্যা:',
 'prefsnologin' => 'প্ৰৱেশ কৰা নাই',
 'prefsnologintext' => 'আপোনাৰ পছন্দ সলনি কৰিবলৈ হ’লে <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} প্ৰৱেশ]</span> কৰাতো আৱশ্যক।',
@@ -1279,7 +1286,7 @@ $1",
 'prefs-watchlist-edits-max' => 'সৰ্বোচ্চ নম্বৰ: ১০০০',
 'prefs-watchlist-token' => 'লক্ষ্যতালিকা টোকেন:',
 'prefs-misc' => 'অন্যান্য',
-'prefs-resetpass' => 'à¦\97à§\81পà§\8dতশবà§\8dদ à¦লনি কৰক',
+'prefs-resetpass' => 'à¦\97à§\81পà§\8dতশবà§\8dদ à¦¸লনি কৰক',
 'prefs-changeemail' => 'ই-মেইল ঠিকনা সলনি কৰক',
 'prefs-setemail' => 'এটা ই-মেইল ঠিকনা দিয়ক',
 'prefs-email' => 'ই-মেইল বিকল্প',
@@ -1333,9 +1340,9 @@ $1",
 'prefs-emailconfirm-label' => 'ইমেইল নিশ্চিতকৰণ:',
 'prefs-textboxsize' => 'সম্পাদনা ৱিণ্ড’ৰ আকাৰ',
 'youremail' => 'আপোনাৰ ই-মেইল *',
-'username' => 'সদস্যনাম:',
+'username' => '{{GENDER:$1|সদস্যনাম}}:',
 'uid' => 'সদস্য চিহ্ন:',
-'prefs-memberingroups' => 'এই {{PLURAL:$1|গোটৰ|গোটবোৰৰ}} সদস্য:',
+'prefs-memberingroups' => '{{PLURAL:$1|টা গোটৰ|টা গোটৰ}} সদস্য:',
 'prefs-registration' => 'পঞ্জীয়ন কৰাৰ সময়:',
 'yourrealname' => 'প্ৰকৃত নাম:',
 'yourlanguage' => 'ভাষা:',
@@ -1490,6 +1497,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ৰ পৰা  $2ৰ পৰা $3লৈ স্বয়ংক্ৰিয়ভাৱে পদোন্নীত হ’ল',
 'rightsnone' => '(নাই)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1727,6 +1737,7 @@ URL টোৰ বৈধতা বিচাৰ কৰি পুনৰ চেষ
 '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 লৈ প্ৰতিলিপি কৰিব পৰা নগ’ল',
@@ -2116,9 +2127,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'linksearch-pat' => 'অনুসন্ধান আৰ্হি:',
 'linksearch-ns' => 'নামস্থান:',
 'linksearch-ok' => 'অনুসন্ধান',
-'linksearch-text' => 'ৱাইল্ডকাৰ্ডসমূহ যেনে "*.wikipedia.org" ব্যৱহাৰ কৰিব পাৰি।
-অন্তত এটা উচ্চ-স্তৰৰ ডমেইনৰ প্ৰয়োজন, উদাহৰণস্বৰূপ "*.org"। <br />
-সমৰ্থিত প্ৰটোকলসমূহ: <code>$1</code> (ইয়াৰ এটাকো নিজৰ সন্ধান যোগ নকৰিব)।',
+'linksearch-text' => "ৱাইল্ডকাৰ্ডসমূহ যেনে \"*.wikipedia.org\" ব্যৱহাৰ কৰিব পাৰি।
+অন্তত এটা উচ্চ-স্তৰৰ ডমেইনৰ প্ৰয়োজন, উদাহৰণস্বৰূপ \"*.org\"। <br />
+সমৰ্থিত প্ৰ'ট'ক'লসমূহ: <code>\$1</code> (কোনো প্ৰ'ট'ক'ল নিৰ্দিষ্ট নকৰিলে http:// সূচাব)।",
 'linksearch-line' => '$2 পৰা $1 সংযোগ কৰা হৈছে',
 'linksearch-error' => "ৱাইল্ডকাৰ্ড কেৱল হ'ষ্টনামৰ আৰম্ভণিতহে দেখা যাব ।",
 
@@ -2167,7 +2178,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'emailuser-title-target' => '{{GENDER:$1|সদস্যজনক}} ইমেইল পঠিয়াওক',
 'emailuser-title-notarget' => 'ব্যৱহাৰকাৰী ই-পত্ৰ প্ৰেৰণ কৰক',
 'emailpage' => 'ই-পত্ৰ ব্যৱহাৰকাৰী',
-'emailpagetext' => 'তলৰ প্ৰপত্ৰখন ব্যৱহাৰ কৰি আপুনি এই সদস্যজনলৈ ই-মেইল পঠাব পাৰে ।
+'emailpagetext' => 'তলৰ প্ৰপত্ৰখন ব্যৱহাৰ কৰি আপুনি এই {{GENDER:$1|সদস্যজনলৈ}} ই-মেইল পঠাব পাৰে ।
 আপুনি [[Special:Preferences|আপোনাৰ সদস্য পছন্দসমূহ]]ত প্ৰৱেশ কৰা ই-মেইল ঠিকনাটো প্ৰেৰকৰ ঠিকনা হিছাপে দেখা যাব, যাতে মেইলৰ প্ৰাপকে আপোনাক উত্তৰ দিব পাৰে ।',
 'usermailererror' => 'মেইল বিষয়বস্তুৰ ত্ৰুটি:',
 'defemailsubject' => '"$1" সদস্যৰ পৰা {{SITENAME}} ই-মেইল',
@@ -2199,7 +2210,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 
 # Watchlist
 'watchlist' => 'মোৰ লক্ষ্য-তালিকা',
-'mywatchlist' => 'মà§\8bৰ à¦²à¦\95à§\8dষà§\8dয-তালিà¦\95া',
+'mywatchlist' => 'লক্ষ্য-তালিকা',
 'watchlistfor2' => '$1 ৰ কাৰণে($2)',
 'nowatchlist' => 'আপোনাৰ নিৰীক্ষণ তালিকাত একো নাই ।',
 'watchlistanontext' => 'আপোনাৰ লক্ষ্য তালিকাত থকা বস্তুবোৰ চাবলৈ বা সম্পাদনা কৰিবলৈ অনুগ্ৰহ কৰি $1 কৰক।',
@@ -2236,6 +2247,16 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 '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, $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',
@@ -2458,9 +2479,9 @@ $1',
 'blanknamespace' => '(মুখ্য)',
 
 # Contributions
-'contributions' => 'সদস্যৰ বৰঙণিসমূহ',
+'contributions' => '{{GENDER:$1|সদস্যৰ}} বৰঙণিসমূহ',
 'contributions-title' => '$1ৰ বৰঙণিসমূহ',
-'mycontris' => 'মà§\8bৰ à¦¬à§°à¦\99ণিসমà§\82হ',
+'mycontris' => 'বৰঙণিসমূহ',
 'contribsub2' => '$1 ৰ কাৰণে ($2)',
 'nocontribs' => 'এই গুণসমূহৰ লগত মিল থকা কোনো সালসলনি পোৱা নগ’ল ।',
 'uctop' => '(ওপৰত)',
@@ -2501,7 +2522,7 @@ $1',
 'whatlinkshere-hideredirs' => '$1 পুননিৰ্দেশনাসমূহ',
 'whatlinkshere-hidetrans' => '$1 ট্ৰেন্সক্লুস্বনসমূহ',
 'whatlinkshere-hidelinks' => '$1 টা সংযোগ',
-'whatlinkshere-hideimages' => '$1 à¦\9aিতà§\8dৰ সংযোগসমূহ',
+'whatlinkshere-hideimages' => '$1 à¦«à¦¾à¦\87ল সংযোগসমূহ',
 'whatlinkshere-filters' => 'ছেকনী',
 
 # Block/unblock
@@ -2736,6 +2757,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'immobile-target-namespace-iw' => 'পৃষ্ঠা স্থানান্তৰৰ বাবে আন্তঃৱিকি সংযোগ বৈধ গন্তব্যস্থল নহয় ।',
 'immobile-source-page' => 'এই পৃষ্ঠাখন স্থানান্তৰ কৰিব নোৱাৰি ।',
 'immobile-target-page' => 'গন্তব্য শিৰোনামালৈ স্থানান্তৰ কৰিব পৰা নাযাব ।',
+'bad-target-model' => 'কাংক্ষিত লক্ষ্যস্থানৰ সমলৰ মডেলৰ সতে মিলা নাই।   $1ৰ পৰা $2লৈ সলনি কৰিব পৰা নগ’ল।',
 'imagenocrossnamespace' => 'অনা-ফাইল নামস্থানলৈ ফাইল স্থানান্তৰ কৰিব নোৱাৰি',
 'nonfile-cannot-move-to-file' => 'ফাইল নামস্থানলৈ অনা-ফাইল স্থানান্তৰ কৰিব নোৱাৰি',
 'imagetypemismatch' => 'নতুন ফাইলৰ এক্সটেনছনটো ইয়াৰ প্ৰকাৰৰ লগত মিলা নাই',
@@ -2971,7 +2993,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 
 # Info page
 'pageinfo-title' => '"$1" ৰ তথ্য',
-'pageinfo-not-current' => "কেৱল সাম্প্ৰতিক সংশোধনৰ বাবে তথ্য দৃশ্যমান হ'ব পাৰে।",
+'pageinfo-not-current' => 'ক্ষমা কৰিব, পুৰণা সংশোধনৰ বাবে এই তথ্য মুকলি কৰাটো সম্ভৱ নহয়।',
 'pageinfo-header-basic' => 'প্ৰাথমিক তথ্য',
 'pageinfo-header-edits' => 'ইতিহাস সম্পাদনা কৰক',
 'pageinfo-header-restrictions' => 'পৃষ্ঠা সুৰক্ষা',
@@ -2980,6 +3002,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'pageinfo-default-sort' => 'ডিফল্ট চৰ্ট কী',
 'pageinfo-length' => 'পৃষ্ঠাৰ দৈৰ্ঘ্য (বাইটত)',
 'pageinfo-article-id' => 'পৃষ্ঠা ID',
+'pageinfo-language' => 'পৃষ্ঠাত সন্নিবিষ্ট ভাষা',
 'pageinfo-robot-policy' => 'সন্ধান ইঞ্জিনৰ স্থিতি',
 'pageinfo-robot-index' => 'ইনডেক্স উপযোগী',
 'pageinfo-robot-noindex' => 'ইনডেক্সৰ অনুপযোগী',
@@ -3018,6 +3041,8 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'markedaspatrollederror' => 'নিৰীক্ষিত বুলি চিহ্নিত কৰিব নোৱাৰি',
 'markedaspatrollederrortext' => 'নিৰীক্ষণ কৰা বুলি চিহ্নিত কৰিবলৈ আপুনি এটা পুনৰীক্ষণ ধাৰ্য্য কৰিব লাগিব।',
 'markedaspatrollederror-noautopatrol' => 'আপোনাক নিজৰ পৰিৱৰ্তনসমূহ নিৰিক্ষিত বুলি চিহ্নিত কৰাৰ অনুমতি নাই।',
+'markedaspatrollednotify' => '$1ৰ এই সম্পাদনা নিৰীক্ষিতৰূপে চিহ্নিত কৰা হ’ল।',
+'markedaspatrollederrornotify' => 'নিৰীক্ষণবিহীন ৰূপে চিহ্নিত কৰা হ’ল',
 
 # Patrol log
 'patrol-log-page' => 'নিৰীক্ষণ অভিলেখ',
@@ -3695,6 +3720,7 @@ $5
 'version-license' => 'অনুজ্ঞাপত্ৰ',
 'version-poweredby-credits' => "এই ৱিকি '''[//www.mediawiki.org/ মিডিয়াৱিকিৰ]''' দ্বাৰা প্ৰচলিত , কপিৰাইট © ২০০১-$1 $2.",
 'version-poweredby-others' => 'অন্য',
+'version-credits-summary' => 'আমি নিম্নোক্ত ব্যক্তিসকলক তেওঁলোকে [[Special:Version|মিডিয়াৱিকি]]লৈ দিয়া দিয়া বৰঙনিৰ বাবে চিনাকী  কৰিব বিচাৰিছো।',
 'version-license-info' => "মিডিয়াৱিকি এটা বিনামূলীয়া চফ্টৱেৰ; আপুনি Free Software Foundation -ৰ দ্বাৰা প্ৰকাশিত GNU General Public License -ৰ চুক্তিসমূহৰ অন্তৰ্গত ইয়াক পুনৰ বিতৰণ কৰিব পাৰিব অথবা সলনি কৰিব পাৰিব; হয়তো অনুজ্ঞাপত্ৰৰ সংস্কৰণ ২ 
 অথবা (আপোনাৰ বিকল্পত) যিকোনো পৰৱৰ্তী সংস্কৰণ।
 
@@ -3837,9 +3863,9 @@ $5
 'logentry-move-move_redir-noredirect' => 'পুনৰ্নিৰ্দেশ নেৰাকৈ এটা পুনৰ্নিৰ্দেশৰ ওপৰেৰে পৃষ্ঠা $3 -ৰ পৰা $4 $1 স্থানান্তৰ কৰা হল',
 'logentry-patrol-patrol' => "পৃষ্ঠা $3 -ৰ $1 চিহ্নিত সংশোধন $4 নিৰীক্ষণ কৰা হ'ল",
 'logentry-patrol-patrol-auto' => "পৃষ্ঠা $3 -ৰ $1 চিহ্নিত সংশোধন $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' => "$1ৰ দ্বাৰা এটা ব্যৱহাৰকাৰী একাউণ্ট $3 সৃষ্টি কৰা হ'ল",
 'logentry-newusers-autocreate' => '$1’ৰ একাউণ্ট স্বয়ংক্ৰিয়ভাৱে সৃষ্টি কৰা হৈছিল',
 'newuserlog-byemail' => 'গুপ্তশব্দ ই-মেইল কৰি পঠোৱা হৈছে',
 
@@ -3915,4 +3941,6 @@ $5
 'duration-centuries' => '$1 {{PLURAL:$1|শতাব্দী|শতাব্দী}}',
 'duration-millennia' => '$1 {{PLURAL:$1|সহস্ৰাব্দ|সহস্ৰাব্দ}}',
 
+# Unknown messages
+'svg-long-error' => 'অবৈধ SVG ফাইল: $1',
 );
index d9d6b2d..681ce57 100644 (file)
@@ -475,7 +475,7 @@ Ten en cuenta que dalgunes páxines puen siguir apaeciendo como si tovía tuvier
 'welcomecreation-msg' => "Creóse la to cuenta.
 Nun t'escaezas d'escoyer les tos [[Special:Preferences|preferencies de {{SITENAME}}]].",
 'yourname' => "Nome d'usuariu:",
-'yourpassword' => 'Clave:',
+'yourpassword' => 'Contraseña:',
 'yourpasswordagain' => 'Escribi otra vuelta la clave:',
 'remembermypassword' => "Recordar la mio identificación nesti restolador (un máximu {{PLURAL:$1|d'un día|de $1 díes}})",
 'securelogin-stick-https' => "Siguir coneutáu al HTTPS dempués d'identificase",
@@ -1231,9 +1231,9 @@ Esto nun se pue desfacer.',
 'prefs-emailconfirm-label' => 'Confirmación del corréu:',
 'prefs-textboxsize' => "Tamañu de la ventana d'edición",
 'youremail' => 'Corréu electrónicu:',
-'username' => "Nome d'usuariu:",
-'uid' => "Númberu d'usuariu:",
-'prefs-memberingroups' => 'Miembru {{PLURAL:$1|del grupu|de los grupos}}:',
+'username' => "Nome d'{{GENDER:$1|usuariu|usuaria}}:",
+'uid' => 'ID {{GENDER:$1|del usuariu|de la usuaria}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Miembru}} {{PLURAL:$1|del grupu|de los grupos}}:',
 'prefs-registration' => 'Hora del rexistru:',
 'yourrealname' => 'Nome real:',
 'yourlanguage' => 'Llingua:',
index e76aa3d..d786cf9 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' => 'قایناقا باخ',
+'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' => "'''دیقت:''' سیز سیستئمه گیرمه‌میسینیز. سیزین آی‌پی آدرسینیز بو صفحه‌نین دییشیک تاریخچه‌سین‌ده یازیلاجاق‌دیر.",
@@ -792,8 +793,8 @@ $2
 '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' => 'سی‌اس‌اس',
 
@@ -826,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",
@@ -848,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' => '[ایستیفاده‌چی آدی و يا ای-پی اونوانی سیلیندی - ديَیشیکلیک چالیشمالاردان چیخاریلدی]',
@@ -894,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' => 'بو عملیاتی دؤوره‌يه سوخماق اوچون بیر قئيد تیپی ایفاده ائتمه‌دینیز.',
@@ -912,7 +913,7 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'revdelete-suppress-text' => "ساخلاما 'یالنیز آشاغی‌داکی حال‌لار اوچون ایستیفاده ائدیلمه‌لی‌دیر:
 * اویگون‌سوز فردی معلومات
 *:' ائو اونوان‌لاری و تئلئفون نؤمره‌لری، سوسیال تهلوکه‌سیزلیک نؤمره‌لری، و س.'",
-'revdelete-legend' => 'محدودیتلری موعيينلشدیر:',
+'revdelete-legend' => 'گؤرونوش محدودیتلری قوی:',
 'revdelete-hide-text' => 'صحیفه‌‌نین بو وئرسیياسی‌نین متنینی گیزله',
 'revdelete-hide-image' => 'فایلین ایچینده‌کیلرینی گیزلت',
 'revdelete-hide-name' => 'حرکتی و مقصدی گیزله‌مک',
@@ -924,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",
@@ -932,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-ده‌کی آیتئمی گیزلدمک خطاسی: بو ایندیکی نوسخه‌دیر و گیزلدیلنمز.',
@@ -950,7 +951,7 @@ $1",
 ** اویغون‌سوز ایستیفاده‌چی آدی
 ** ایفتیرا احتیمالی اولان بیلگیلر',
 'revdelete-otherreason' => 'آیری/آرتیق دلیل:',
-'revdelete-reasonotherlist' => 'آیری فیکیرلر',
+'revdelete-reasonotherlist' => 'آیری دلیل‌لر',
 'revdelete-edit-reasonlist' => 'سیلمک دلیل‌لرینی دَییشدیر',
 'revdelete-offender' => 'نوسخه یازاری:',
 
@@ -991,7 +992,7 @@ $1",
 'mergelogpagetext' => 'آشاغدی‌دا، ان سون صحیفه بیرلشدیریلمه‌لری گؤستریلیر.',
 
 # Diffs
-'history-title' => '"$1" صحیفه‌سی‌نین کئچمیشی',
+'history-title' => '«$1»-ین گئچمیشی',
 'difference-title' => '«$1» نوسخه‌لرینین آراسینداکی فرقلری',
 'difference-title-multipage' => '«$1» و «$2» صحیفه‌لرین آراسینداکی فرقلر',
 'difference-multipage' => '(صحیفه‌لر آراسینداکی فرقلر)',
@@ -1017,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' => 'مقاله‌لر',
@@ -1033,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 سؤزجوک}})',
@@ -1057,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' => 'یوللاندیرمالاری لیست ائت',
@@ -1110,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' => 'سوتونلار',
@@ -1157,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' => 'دیل:',
@@ -1324,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' => 'بو دَییشیکلیگی، کیچیک اولاراق نیشانلا',
@@ -1360,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' => 'گئچمیش',
@@ -1681,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 صحیفه باغلانتیسینی گؤستریر.
@@ -1840,6 +1841,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'wantedpages' => 'ایسته نن صحیفه‌لر',
 'wantedpages-badtitle' => 'مراجعت زامانتی يانلیش باشلیق: $1',
 'wantedfiles' => 'ایسته نن فایللار',
+'wantedfiletext-cat' => 'آشاغیداکی فایل‌لار ایشله‌نیبلر اما یوخدورلار. ائشیک آنباردا اولان فایل‌لار دا اولدوقلارینا باخمایاراق، لیست‌ده گلیبلر. ائله یانلیش باخیشلار <del>خطلنه‌جکلر</del>. هم‌ده، اولمایان فایل‌لاری ایشلدن صحیفه‌لر ده [[:$1]]-ده لیست اولونوبلار.',
 'wantedfiletext-nocat' => 'اشاغی داکی فایل لار ایستفاده اولور سانکی یوخدولار.حتی مومکین دیر خارجی حویض مخزن لریندن اولماق  ایله بو ردا فهرست اولا . وهر مثب رتبه سی یانلیش <del> خط یئمیش اولاجاق.</del>',
 'wantedtemplates' => 'ایسته نن شابلونلار',
 'mostlinked' => 'ان چوخ کئچیدلنن صحیفه‌‌لر',
@@ -1905,12 +1907,12 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 
 # Special:AllPages
 'allpages' => 'بوتون صحیفه‌لر',
-'alphaindexline' => '$1 مقاله‌سیندن $2 مقاله‌سینه کیمی',
+'alphaindexline' => '$1-دن $2-یه',
 'nextpage' => 'سونراکی صحیفه‌‌ ($1)',
 'prevpage' => 'اولکی صحیفه ($1)',
 'allpagesfrom' => 'بو حرفله باشلایان صحیفه‌لری گؤستر:',
 'allpagesto' => 'بو حرفله باشلایان صحیفه لری گؤستر:',
-'allarticles' => 'بوتون یارپاقلار',
+'allarticles' => 'بوتون صحیفه‌لر',
 'allinnamespace' => 'بوتون صحیفه‌لر ($1 صحیفه‌لری)',
 'allnotinnamespace' => 'بوتون صحیفه‌لر ( $1 ساحه‌سینده اولمایان‌لار)',
 'allpagesprev' => 'اونجه‌کی',
@@ -1923,6 +1925,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 
 # SpecialCachedPage
 'cachedspecial-viewing-cached-ttl' => 'سیز بو صفحه نین بیر نوسخه نی گورورسیز کی اورتا توتان یئرلشیب دیر و مومکین دیر $1 اوچون قاباقدان اولا.',
+'cachedspecial-viewing-cached-ts' => 'سیز ایندی بیر کَش اولونموش صحیفه‌یه باخیرسینیز؛ بو صحیفه‌ده ایندی‌کی ایله فرق‌لی اولا بیلر.',
 'cachedspecial-refresh-now' => 'ان سونراکی گورونوش',
 
 # Special:Categories
@@ -2063,9 +2066,16 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 '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',
@@ -2311,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 شکیل اوچون کئچیدلر',
@@ -2398,7 +2408,7 @@ $1',
 'blocklist-nousertalk' => 'دانیشیق صحیفه‌‌سینی دَییشدیره بیلمزسیز.',
 'ipblocklist-empty' => 'بلوک سیياهیسی بوشدور.',
 'ipblocklist-no-results' => 'طلب اولونان ای‌پی اونوانی و يا ایستیفاده‌چی بلوکلانمادی.',
-'blocklink' => 'بلوکلا',
+'blocklink' => 'باغلا',
 'unblocklink' => 'بلوکلامانی قالدیر',
 'change-blocklink' => 'بلوکلامانی ديَیشدیر',
 'contribslink' => 'چالیشمالار',
@@ -2533,7 +2543,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'movesubpagetext' => 'بو صحیفه‌نین آشاغیدا گؤستریلن $1 {{PLURAL: $1 | آلت صحیفه سی | آلت صحیفه اسی}} وار.',
 'movenosubpage' => 'بو صحیفه‌نین آلت صحیفه‌سی یوخ‌دور.',
 'movereason' => 'ندن:',
-'revertmove' => 'گئری آل',
+'revertmove' => 'گئریآل',
 'delete_and_move' => 'سیل و آپار',
 'delete_and_move_text' => '==هازیرکی مقاله‌نین سیلینمه‌سی لازیم‌دیر==
 
@@ -2592,7 +2602,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'allmessages-filter-legend' => 'فیلتر',
 'allmessages-filter' => 'خصوصی ائتمک وضعیتینه گؤره فیلترلی:',
 'allmessages-filter-unmodified' => 'دییشدیریلممیش',
-'allmessages-filter-all' => 'هامیسی',
+'allmessages-filter-all' => 'بوتون',
 'allmessages-filter-modified' => 'دییشدیریلمیش',
 'allmessages-prefix' => 'اؤنک ایله فیلترلی:',
 'allmessages-language' => 'دیل',
@@ -2684,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' => 'بو صحیفه‌‌نی سیل',
@@ -2708,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' => 'یارپاغا بو وئرسیياسینا دایمی کئچید',
@@ -2730,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' => 'یاردیم صحیفه‌‌سی',
@@ -2860,7 +2870,7 @@ $1',
 'file-nohires' => 'یوخاری کیفیت الده یوخدور.',
 'svg-long-desc' => 'SVG فایلی، $1 × $2 پیکسئل، فایلین اؤلچوسو: $3',
 'svg-long-desc-animated' => 'فایل اس‌وی‌جی حرکت ائدن، ابعادی <span dir="ltr">$1 × $2</span> پیکسل، فایل اولچوسو: $3',
-'show-big-image' => 'یوکسک کیفیتلی',
+'show-big-image' => 'یوکسک کیفیتلی',
 'show-big-image-preview' => 'سیناق گؤستریشی اؤلچوسو: $1.',
 'show-big-image-other' => 'دیگر {{PLURAL:$2|نتیج|نتیجه‌لر}}: $1.',
 'show-big-image-size' => '$1 × $2 پیکسئل',
index a58369c..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' => 'Теркәлеү ваҡыты:',
@@ -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 9cbdc14..8c242b2 100644 (file)
@@ -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',
@@ -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.",
@@ -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",
 
@@ -1273,10 +1274,10 @@ Da aktuöje Text voh da gléschden Seiten is netter fyr Administraatorn zuagäng
 'whatlinkshere-next' => '{{PLURAL:$1|naxde|naxdn $1}}',
 'whatlinkshere-links' => '← Vaweise',
 'whatlinkshere-hideredirs' => 'Weidaloatunga $1',
-'whatlinkshere-hidetrans' => 'Vurlongeihbindung $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',
@@ -1442,7 +1443,7 @@ Bsuach bittschee de Saiten [//www.mediawiki.org/wiki/Localisation MediaWiki-Loka
 'tooltip-ca-watch' => 'De Seitn zua Beobochtungslistn dazua doa',
 '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 5412d13..0d75dbe 100644 (file)
@@ -1250,8 +1250,8 @@ Ini dae tabi matitingkog.',
 'prefs-emailconfirm-label' => 'Kumpirmasyon sa E-koreo',
 'prefs-textboxsize' => 'Sukol kan bintana sa pagliliwat',
 'youremail' => 'E-koreo:',
-'username' => 'Pangaran kan parágamit:',
-'uid' => 'ID kan parágamit:',
+'username' => 'Pangaran kan paragamit:',
+'uid' => 'ID kan paragamit:',
 'prefs-memberingroups' => 'Miembro kan {{PLURAL:$1|grupo|grupos}}:',
 'prefs-registration' => 'Rehistrasyong oras:',
 'yourrealname' => 'Totoong pangaran:',
@@ -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.',
index 5a9b652..e86020f 100644 (file)
@@ -1402,9 +1402,9 @@ $1",
 'prefs-emailconfirm-label' => 'Пацьверджаньне адрасу электроннай пошты:',
 'prefs-textboxsize' => 'Памеры акна рэдагаваньня',
 'youremail' => 'Адрас электроннай пошты:',
-'username' => 'Імя ўдзельніка/ўдзельніцы:',
-'uid' => 'ID удзельніка/ўдзельніцы:',
-'prefs-memberingroups' => 'Удзельнік {{PLURAL:$1|групы|групаў}}:',
+'username' => 'Імя {{GENDER:$1|ўдзельніка|ўдзельніцы}}:',
+'uid' => 'ID {{GENDER:$1|удзельніка|удзельніцы}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Удзельнік|Удзельніца}} {{PLURAL:$1|групы|групаў}}:',
 'prefs-registration' => 'Час рэгістрацыі:',
 'yourrealname' => 'Сапраўднае імя:',
 'yourlanguage' => 'Мова інтэрфэйсу:',
@@ -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..f47394b 100644 (file)
@@ -1326,9 +1326,9 @@ No es podrà desfer el canvi.',
 'prefs-emailconfirm-label' => 'Confirmació de correu electrònic:',
 'prefs-textboxsize' => "Mida de la caixa d'edició",
 'youremail' => 'Correu electrònic:',
-'username' => "Nom d'usuari:",
-'uid' => "Identificador d'usuari:",
-'prefs-memberingroups' => 'Membre dels {{PLURAL:$1|grup|grups}}:',
+'username' => "{{GENDER:$1|Nom d'usuari}}:",
+'uid' => "{{GENDER:$1|Usuari}} Identificador d'usuari:",
+'prefs-memberingroups' => '{{GENDER:$2|Membre}} {{PLURAL:$1|del grup|dels grups}}:',
 'prefs-registration' => 'Hora de registre:',
 'yourrealname' => 'Nom real *',
 'yourlanguage' => 'Idioma:',
@@ -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
@@ -2424,7 +2432,7 @@ $1",
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => "{{GENDER:$1|Contribucions de l'usuari}}",
+'contributions' => "Contribucions de {{GENDER:$1|l'usuari|la usuària}}",
 'contributions-title' => "Contribucions de l'usuari $1",
 'mycontris' => 'Contribucions',
 'contribsub2' => 'Per $1 ($2)',
index 0e83ce7..9fc02fb 100644 (file)
@@ -194,7 +194,7 @@ $messages = array(
 'tog-norollbackdiff' => 'لە دوای گەڕاندنەوە جیاوازی نیشان مەدە',
 
 'underline-always' => 'ھەمیشە',
-'underline-never' => 'ھەرگیز',
+'underline-never' => 'قەت',
 'underline-default' => 'پێستە یان دیفاڵتی وێبگەڕەکە',
 
 # Font style option in Special:Preferences
@@ -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' => 'ئەم پەڕەیە دەقی ڕواڵەتی نەرمامێری ئەم ویکییە نیشان دەدات و بۆ بەرگری لە خراپکاری پارێزراوە.
@@ -553,6 +553,8 @@ $2',
 دەتوانی بە شێوەی بێناو درێژە بدەی بە بەرکارھێنانی {{SITENAME}}، یان دەتوانی <span class='plainlinks'>[$1 دیسانەوە بچیتەوە ژوورەوە]</span> ھەر بەو ناوە یان بە ناوی بەکارھێنەرییەکی جیاوازەوە.
 ئاگادار بە کە ھەتا کاتێک کە کەشی وێبگەڕەکەت دەسڕیتەوە، سەرەڕای چوونەدەرەوەی تۆ ھەندێک لە پەڕەکان ھەر بە شێوەیەک نیشان دەدرێن کە گوایە تۆ ھێشتا لە ژوورەوەیت.",
 'welcomeuser' => 'بەخێربێیت، $1!',
+'welcomecreation-msg' => 'ھەژمارەکەت دروست کرا.
+لە بیرت نەچێت [[Special:Preferences|ھەڵبژاردەکانی {{SITENAME}}]]ت بگۆڕی.',
 'yourname' => 'ناوی بەکارھێنەری:',
 'yourpassword' => 'تێپەڕوشە:',
 'yourpasswordagain' => 'دیسان تێپەڕوشەکە بنووسەوە:',
@@ -1262,9 +1264,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-registration' => 'کاتی خۆتۆمارکردن:',
 'yourrealname' => 'ناوی ڕاستی:',
 'yourlanguage' => 'زمان',
@@ -1700,6 +1702,7 @@ $1',
 هەروا [[Special:WhatLinksHere/$2|لیستی تەواو]] ئامادەی کەڵک وەرگرتنە.',
 'nolinkstoimage' => '‌لاپەڕەیەک نەدۆزرایەوە کە بەستەری هەبێ بۆ ئەم پەڕگە.',
 'morelinkstoimage' => '[[Special:WhatLinksHere/$1|بەستەری زیاتر]] ببینە بۆ ئەم پەڕگە.',
+'linkstoimage-redirect' => '$1 (ڕەوانەکەری پەڕگە) $2',
 'duplicatesoffile' => 'ئەم {{PLURAL:$1|پەڕگە دووبارەکرنەوەیەکی|پەڕگانە دووبارەکردنەوەی}} ئەم پەڕگەن ([[Special:FileDuplicateSearch/$2|وردەکاری زیاتر]]):',
 'sharedupload' => 'ئەم پەڕگە لە $1ەوەیە و لەوە دەچێ لە پرۆژەکانی دیکەش بەکار ببرێت.',
 'sharedupload-desc-there' => 'ئەم پەڕگە لە $1ەوەیە و لەوە دەچێ لە پرۆژەکانی دیکەش بەکار ببرێت.
@@ -2055,36 +2058,44 @@ $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 لە $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',
 'enotif_body' => '‫$WATCHINGUSERNAMEی بەڕێز،
-پەڕەی «$PAGETITLE»ی {{SITENAME}} لە ڕێکەوتی $PAGEEDITDATE بەدەستی $PAGEEDITOR $CHANGEDORCREATED، بۆ بینینی پیاچوونەوەی ئێستای، $PAGETITLE_URL ببینە.
 
-$NEWPAGE
+$PAGEINTRO $NEWPAG
 
-پوختەی دەستکارییەکەی: $PAGESUMMARY $PAGEMINOREDIT
+کورتەی دەستکارییەکەی: $PAGESUMMARY $PAGEMINOREDIT
 
 پەیوەندی لەگەڵ دەستکاریکەر:
 نامە: $PAGEEDITOR_EMAIL
 ویکی: $PAGEEDITOR_WIKI
 
-تا سەردانی ئەم پەڕە نەکەیت، گۆڕانکارییەکی دیکەی پەڕەکەت پێ ڕاناگەیەندرێت.
-هەروەھا دەتوانی نیشانەکانی ڕاگەیاندن بۆ هەموو پەڕەکانی لیستی چاودێریت لەسەرەتاوە ڕێکبخەیتەوە.
+تا سەردانی ئەم پەڕەیە نەکەیت، گۆڕانکارییەکانی داھاتووی پەڕەکەت پێ ڕاناگەیێندرێت. هەروەھا دەتوانی ئاڵاکانی ڕاگەیاندن لە پەڕەی چاودێرییەکەتدا لە سەرەتاوە ڕێک بخەیتەوە.
 
-بÛ\95 Ø³Ù\88پاسÛ\95Ù\88Û\95Ø\8c Ø³Û\8cستÛ\95Ù\85Û\8c Ú\95اگÛ\95Û\8cاÙ\86دÙ\86Û\8c {{SITENAME}}
+بە سپاسەوە، سیستەمی ڕاگەیاندنی {{SITENAME}}
 
 --
-بÛ\86 Ú¯Û\86Ú\95Û\8cÙ\86Û\8c Ø±Û\8eکخستÙ\86Û\95کاÙ\86Û\8c Ú\95اگÛ\95Û\8cاÙ\86دÙ\86 Ø¨Û\95 Ø¦Û\8cÙ\85Û\95Û\8cÙ\84Ø\8c Ø³Û\95ربدÛ\95 Ù\84ە
+بÛ\86 Ú¯Û\86Ú\95Û\8cÙ\86Û\8c Ø±Û\8eکخستÙ\86Û\95کاÙ\86Û\8c Ú\95اگÛ\95Û\8cاÙ\86دÙ\86 Ø¨Û\95 Ø¦Û\8cÙ\85Û\95Û\8cÙ\84Ø\8c Ø¨Ú\95Ù\88اÙ\86ە
 {{canonicalurl:{{#special:Preferences}}}}
 
-بÛ\86 Ú¯Û\86Ú\95Û\8cÙ\86Û\8c Ú\95Û\8eکخستÙ\86Û\95کاÙ\86Û\8c Ù\84Û\8cستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\8cÛ\95Ú©Û\95تØ\8c Ø³Û\95ربدÛ\95 Ù\84ە
+بÛ\86 Ú¯Û\86Ú\95Û\8cÙ\86Û\8c Ú\95Û\8eکخستÙ\86Û\95کاÙ\86Û\8c Ù¾Û\8eرستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\8cÛ\95Ú©Û\95تØ\8c Ø¨Ú\95Ù\88اÙ\86ە
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
-بÛ\86 Ø³Ú\95Û\8cÙ\86Û\95Ù\88Û\95Û\8c Ù¾Û\95Ú\95Û\95Ú©Û\95 Ù\84Û\95 Ù\84Û\8cستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\8cÛ\95Ú©Û\95تØ\8c Ø³Û\95ربدÛ\95 Ù\84ە
+بÛ\86 Ø³Ú\95Û\8cÙ\86Û\95Ù\88Û\95Û\8c Ù¾Û\95Ú\95Û\95Ú©Û\95 Ù\84Û\95 Ù¾Û\8eرستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\8cÛ\95Ú©Û\95تØ\8c Ø¨Ú\95Ù\88اÙ\86ە
 $UNWATCHURL
 
-رێنوێنیی زۆرتر و دەربڕینی بیروڕا:
+کاردانەوە و یارمەتیی زۆرتر:
 {{canonicalurl:{{MediaWiki:Helppage}}}}',
 
 # Delete
@@ -2135,6 +2146,7 @@ $UNWATCHURL
 دوایین دەستکاری ئەم لاپەڕە [[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]] گەڕێنراوە.',
 'rollback-success' => 'دەستکارییەکانی $1 وەرگێرایەوە؛<br />
 گۆڕدرا بۆ دوایین دەستکاریی $2.',
 
@@ -2145,13 +2157,14 @@ $UNWATCHURL
 
 # Protect
 'protectlogpage' => 'لۆگی پاراستن',
-'protectlogtext' => 'لەخوارەوە لیستێک لە لاپەڕە داخراوەکان و کراوەکان دەبینی.
-بۆ دیتنی لیستی ئەو لاپەرانەی ئێستە پاراستنیان لە ئارادایە [[Special:ProtectedPages|لیستی لاپەڕە پارێزراوەکان ]] ببینە.',
+'protectlogtext' => 'لە ژێرەوە پێرستێک لە گۆڕانکارییەکانی پەڕە پارێزراوەکان دەبینی.
+بۆ پێرستی ئەو پەڕانەی ئێستا پاراستنیان لە ئارادایە بڕوانە [[Special:ProtectedPages|پێرستی پەڕە پارێزراوەکان]].',
 'protectedarticle' => '«[[$1]]»ی پاراست',
 'modifiedarticleprotection' => 'ئاستی پاراستنی «[[$1]]»ی گۆڕا',
 'unprotectedarticle' => 'پاراستنی لەسەر «[[$1]]» لابرد',
 'movedarticleprotection' => 'ڕێککارییەکانی پاراستن لە  «[[$2]]» گوازرایەوە بۆ «[[$1]]»',
 'protect-title' => 'گۆڕینی ئاستی پاراستنی "$1"',
+'protect-title-notallowed' => 'دیتنی ئاستی پاراستنی «$1»',
 'prot_1movedto2' => '[[$1]] گوازرایەوە بۆ [[$2]]',
 'protect-legend' => 'پاراستن تەیید بکە',
 'protectcomment' => 'ھۆکار:',
@@ -2263,7 +2276,7 @@ $1',
 'blanknamespace' => '(سەرەکی)',
 
 # Contributions
-'contributions' => 'بەشدارییەکانی بەکارھێنەر',
+'contributions' => 'بەشدارییەکانی {{GENDER:$1|بەکارھێنەر}}',
 'contributions-title' => 'بەشدارییەکانی بەکارھێنەر $1',
 'mycontris' => 'بەشدارییەکان',
 'contribsub2' => 'بۆ $1 ($2)',
@@ -2836,6 +2849,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 کاتژمێر|$1 کاتژمێر}}',
 'days' => '{{PLURAL:$1|$1 ڕۆژ|$1 ڕۆژ}}',
 'ago' => '$1 پێش',
+'just-now' => 'ھەرئێستا',
 
 # Bad image list
 'bad_image_list' => 'فۆرمات بەم شێوەی خوارەوەیە:
@@ -2872,11 +2886,13 @@ $1',
 # EXIF tags
 'exif-imagewidth' => 'پانی',
 'exif-imagelength' => 'بەرزی',
+'exif-ycbcrpositioning' => 'شوێنی Y و C',
 'exif-datetime' => 'ڕێکەوتی و کاتی گۆڕانی پەڕگە',
 'exif-imagedescription' => 'ناونیشانی وێنە',
 'exif-model' => 'جۆری کامێرا',
 'exif-software' => 'نەرمەواڵەی بەکارهاتوو',
 'exif-artist' => 'نووسەر',
+'exif-exifversion' => 'وەشانی exif',
 'exif-colorspace' => 'بۆشایی ره‌نگ',
 'exif-pixelydimension' => 'پانی وێنە',
 'exif-pixelxdimension' => 'بەرزی وێنە',
@@ -2886,6 +2902,7 @@ $1',
 'exif-fnumber' => 'ڕێژەی ئێف',
 'exif-lightsource' => 'سەرچاوەی ڕووناکی',
 'exif-flash' => 'فلاش',
+'exif-subjectlocation' => 'شوێنی ناسکار',
 'exif-filesource' => 'سەرچاوەی پەڕگە',
 'exif-saturation' => 'تێربوون',
 'exif-gpslatitude' => 'پانی',
@@ -3423,9 +3440,9 @@ $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-newusers' => 'ھەژماری بەکارھێنەریی $1 دروست کرا',
+'logentry-newusers-create' => 'ھەژماری بەکارھێنەریی $1 دروست کرا',
+'logentry-newusers-create2' => 'ھەژماری بەکارھێنەریی $3 لە لایەن $1 دروست کرا',
 'logentry-newusers-autocreate' => 'ھەژماری $1 بە شێوەی خۆگەڕ دروستکرا',
 'newuserlog-byemail' => 'تێپەڕوشە بە ئیمەیل نێردرا.',
 
@@ -3462,4 +3479,6 @@ $5
 'duration-centuries' => '$1 {{PLURAL:$1|سەدە|سەدە}}',
 'duration-millennia' => '$1 {{PLURAL:$1|ھەزارە|ھەزارە}}',
 
+# Unknown messages
+'svg-long-error' => 'پەڕگەی SVGی نادروست: $1',
 );
index b9a5d0e..ada255e 100644 (file)
@@ -1493,9 +1493,9 @@ Tuto operaci nelze vrátit zpět.',
 'prefs-emailconfirm-label' => 'Ověření e-mailu:',
 'prefs-textboxsize' => 'Velikost editačního okna',
 'youremail' => 'Vaše e-mailová adresa:',
-'username' => 'Uživatelské jméno:',
-'uid' => 'Uživatelské ID:',
-'prefs-memberingroups' => 'Člen {{PLURAL:$1|skupiny|skupin}}:',
+'username' => '{{GENDER:$1|Uživatelské jméno}}:',
+'uid' => '{{GENDER:$1|Uživatelské}} ID:',
+'prefs-memberingroups' => '{{GENDER:$2|Člen|Členka}} {{PLURAL:$1|skupiny|skupin}}:',
 'prefs-registration' => 'Čas registrace:',
 'yourrealname' => 'Vaše skutečné jméno:',
 'yourlanguage' => 'Jazyk rozhraní:',
@@ -1647,9 +1647,9 @@ Tuto operaci nelze vrátit zpět.',
 'rightslogtext' => 'Toto je záznam změn uživatelských práv.',
 'rightslogentry' => 'změnil pro $1 zařazení ve skupinách z $2 na $3',
 'rightslogentry-autopromote' => 'byl automaticky povýšen z $2 na $3',
-'logentry-rights-rights' => '$1 {{GENDER:$2|změnil|změnila}} členství $3 ve skupinách z $4 na $5',
-'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|změnil|změnila}} členství $3 ve skupinách',
-'logentry-rights-autopromote' => '$1 {{GENDER:$2|byl automaticky povýšen|byla automaticky povýšena}} z $4 na $5',
+'logentry-rights-rights' => '$1 {{GENDER:$1|změnil|změnila}} členství $3 ve skupinách z $4 na $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|změnil|změnila}} členství $3 ve skupinách',
+'logentry-rights-autopromote' => '$1 {{GENDER:$1|byl automaticky povýšen|byla automaticky povýšena}} z $4 na $5',
 'rightsnone' => '(žádné)',
 
 # Associated actions - in the sentence "You do not have permission to X"
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 af548fe..afedb8f 100644 (file)
@@ -1266,9 +1266,9 @@ Móžoš toś ten bok wužywaś, aby slědk stajił swóje nastajenja na standar
 'prefs-emailconfirm-label' => 'E-mailowe wobkšuśenje:',
 'prefs-textboxsize' => 'Wjelikosć wobźěłowańskego wokna',
 'youremail' => 'E-mail:',
-'username' => 'Wužywarske mě:',
-'uid' => 'ID wužywarja:',
-'prefs-memberingroups' => 'Cłonk {{PLURAL:$1|wužywarskeje skupiny|wužywarskeju kupkowu|wužywarskich kupkow|wužiwarskich kupkow}}:',
+'username' => 'Mě {{GENDER:$1|wužywarja|wužywarki}}:',
+'uid' => 'ID {{GENDER:$1|wužywarja|wužywarki}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Cłon|Cłonka}} {{PLURAL:$1|wužywarskeje kupki|wužiwarskeju kupkowu|wužywarskich kupkow}}:',
 'prefs-registration' => 'Cas registracije:',
 'yourrealname' => 'Realne mě *:',
 'yourlanguage' => 'Rěc:',
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..f5ea8bf 100644 (file)
@@ -291,6 +291,7 @@ $messages = array(
 'namespaces' => 'Izen-tarteak',
 'variants' => 'Aldaerak',
 
+'navigation-heading' => 'Nabigazio menua',
 'errorpagetitle' => 'Errorea',
 'returnto' => '$1(e)ra itzuli.',
 'tagline' => '{{SITENAME}}(e)tik',
@@ -478,7 +479,7 @@ Mesedez, bidali gertakar hau administradore bati, URLaren izena jarriz.',
 'unexpected' => 'Espero ez zen balioa: "$1"="$2".',
 'formerror' => 'Errorea: ezin izan da formularioa bidali',
 'badarticleerror' => 'Ezin da ekintza hau orrialde honetan burutu.',
-'cannotdelete' => 'Ezin izan da "$1" orrialde edo fitxategia ezabatu.
+'cannotdelete' => 'Ezin izan da «$1» orria edo fitxategia ezabatu.
 Baliteke beste norbaitek ezabatu izana.',
 'cannotdelete-title' => 'Ezin da "$1" orrialdea ezabatu',
 'badtitle' => 'Izenburu ezegokia',
@@ -521,6 +522,7 @@ Emandako arrazoia ''$2'' izan zen.",
 
 Erabiltzaile anonimo bezala jarrai dezakezu {{SITENAME}} erabiltzen, edo <span class='plainlinks'>[$1 saioa has dezakezu berriz]</span> erabiltzaile berdinarekin edo ezberdin batekin.
 Kontuan izan orrialde batzuk saioa hasita bazenu bezala ikus ditzakezula nabigatzailearen katxea garbitu arte.",
+'welcomeuser' => 'Ongi etorri, $1!',
 'yourname' => 'Erabiltzaile izena',
 'yourpassword' => 'Pasahitza:',
 'yourpasswordagain' => 'Pasahitza berriz',
@@ -1103,7 +1105,7 @@ Saia zaitez zure eskeraren aurretik ''all:'' jartzen eduki guztien artean bilatz
 'powersearch-field' => 'Bilatu',
 'powersearch-togglelabel' => 'Egiaztatu:',
 'powersearch-toggleall' => 'Guztiak',
-'powersearch-togglenone' => 'Bat ere',
+'powersearch-togglenone' => 'Bat ere ez',
 'search-external' => 'Kanpo bilaketa',
 'searchdisabled' => '{{SITENAME}}(e)n ezgaituta dago bilaketa. Dena dela, Google erabiliz ere egin dezakezu bilaketa. Kontuan izan bertan dituzten {{SITENAME}}(e)ko emaitzak zaharkituta egon daitezkeela.',
 
@@ -2023,9 +2025,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 {{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;
@@ -3321,10 +3324,12 @@ Irudiak bereizmen handienean daude, bestelako fitxategi motak beraiei esleitutak
 'htmlform-selectorother-other' => 'Beste bat',
 
 # New logging system
+'logentry-delete-delete' => '$1 wikilariak $3 orria ezabatu du',
 'revdelete-restricted' => 'administratzaileentzako mugak ezarri dira',
 'revdelete-unrestricted' => 'administratzaileentzako mugak kendu dira',
 'logentry-move-move' => '$1 wikilariak «$3» orria «$4» izenera aldatu du',
 'logentry-move-move-noredirect' => '$1 wikilariak «$3» orria «$4» izenera aldatu du, birzuzenketarik utzi gabe',
+'logentry-move-move_redir' => '$1 wikilariak «$3» orria «$4» izenera aldatu du, birzuzenketaren gainetik',
 'logentry-move-move_redir-noredirect' => '$1 wikilariak «$3» orria «$4» izenera aldatu du, birzuzenketa bat gainidatzita, birzuzenketarik utzi gabe',
 'logentry-newusers-newusers' => '$1 wikilariak erabiltzaile kontu bat sortu du',
 'logentry-newusers-create' => '$1 wikilariak erabiltzaile kontu bat sortu du',
index e39c909..1fbbfa0 100644 (file)
@@ -845,6 +845,8 @@ $2',
 شما می‌توانید به استفادهٔ گمنام از {{SITENAME}} ادامه دهید، یا با همین حساب کاربری یا حسابی دیگر <span class='plainlinks'>[$1 به سامانه وارد شوید]</span>.
 توجه کنید که تا زمانی که میانگیر مرورگرتان را پاک نکنید، بعضی صفحه‌ها ممکن است به گونه‌ای نمایش یابند که گویی هنوز از سامانه خارج نشده‌اید.",
 'welcomeuser' => 'خوشامدید، $1!',
+'welcomecreation-msg' => 'حساب کاربری شما ایجاد شده است.
+فراموش نکنید که [[Special:Preferences|ترجیحات {{SITENAME}}]] خود را تغییر دهید.',
 'yourname' => 'نام کاربری:',
 'yourpassword' => 'گذرواژه:',
 'yourpasswordagain' => 'تکرار گذرواژه:',
@@ -994,7 +996,7 @@ $2
 شما باید هم‌اکنون وارد شده و یک گذرواژهٔ جدید برگزینید. اگر شخص دیگری این درخواست را داده است، یا اگر گذرواژهٔ اصلی‌تان را به خاطر آوردید، و دیگر نمی‌خواهید که آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.',
 'passwordreset-emailelement' => 'نام کاربری: $1
 گذرواژهٔ موقت: $2',
-'passwordreset-emailsent' => 'یک نامهٔ یادآور فرستاده شده است.',
+'passwordreset-emailsent' => 'یک نامهٔ یادآور فرستاده شد.',
 'passwordreset-emailsent-capture' => 'رایانامهٔ یادآور فرستاده شد، که به شرح زیر است.',
 'passwordreset-emailerror-capture' => 'رایانامهٔ یادآور همانطور که در زیر مشاهده می‌فرمایید ایجاد شد ولی ارسال آن به کاربر موفقیت‌آمیز نبود: $1',
 
@@ -1594,9 +1596,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-registration' => 'زمان ثبت‌نام:',
 'yourrealname' => 'نام واقعی:',
 'yourlanguage' => 'زبان:',
@@ -2504,14 +2506,23 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 '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 در تاریخ $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',
 'enotif_body' => '$WATCHINGUSERNAME گرامی،
 
-صفحهٔ «$PAGETITLE» در {{SITENAME}} در $PAGEEDITDATE به‌دست $PAGEEDITOR $CHANGEDORCREATED است. برای دیدن نسخهٔ کنونی $PAGETITLE_URL را ببینید.
+$PAGEINTRO $NEWPAGE
 
-$NEWPAGE
 
 توضیح ویراستار: $PAGESUMMARY $PAGEMINOREDIT
 
@@ -2520,7 +2531,7 @@ $NEWPAGE
 ویکی: $PAGEEDITOR_WIKI
 
 تا هنگامی که به صفحه سر نزده‌اید، در صورت رخ‌دادنِ احتمالیِ تغییراتِ بیشتر، اعلانیه‌ای برای شما فرستاده نخواهد شد.
-شما همچنین می‌توانید در صفحهٔ پی‌گیری‌های خود پرچم‌های مربوط به آگاهی‌رسانی را صفر کنید.
+شما همچنین می‌توانید در صفحهٔ پی‌گیری‌های خود پرچم‌های مربوط به آگاهی‌رسانی را صفر کنید همچنین می‌توانید پرچم‌های آگاهی‌سازی را بازنشانی کنید.
 
 دوستدار شما، سامانهٔ آگاهی‌رسانی {{SITENAME}}
 
@@ -2725,7 +2736,7 @@ $1',
 'blanknamespace' => '(اصلی)',
 
 # Contributions
-'contributions' => 'مشارکت‌های کاربری',
+'contributions' => 'مشارکت‌های {{GENDER:$1|کاربر}}',
 'contributions-title' => 'مشارکت‌های کاربری $1',
 'mycontris' => 'مشارکت‌ها',
 'contribsub2' => 'برای $1 ($2)',
@@ -4256,4 +4267,6 @@ $5
 'duration-centuries' => '$1 قرن',
 'duration-millennia' => '{{PLURAL:$1|هزار سال |$1 هزار سال}}',
 
+# Unknown messages
+'svg-long-error' => 'پرونده SVG غیرمجاز: $1',
 );
index 9df40ce..93cbb2b 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.''",
@@ -1415,9 +1415,9 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'prefs-emailconfirm-label' => 'Sähköpostin varmistus',
 'prefs-textboxsize' => 'Muokkauskentän koko',
 'youremail' => 'Sähköpostiosoite',
-'username' => 'Käyttäjätunnus',
-'uid' => 'Tunniste',
-'prefs-memberingroups' => 'Jäsenenä {{PLURAL:$1|ryhmässä|ryhmissä}}',
+'username' => '{{GENDER:$1|Käyttäjätunnus}}',
+'uid' => '{{GENDER:$1|Tunniste}}',
+'prefs-memberingroups' => '{{GENDER:$2|Jäsenenä}} {{PLURAL:$1|ryhmässä|ryhmissä}}',
 'prefs-registration' => 'Rekisteröintiaika',
 'yourrealname' => 'Oikea nimi',
 'yourlanguage' => 'Käyttöliittymän kieli',
@@ -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',
@@ -3085,6 +3085,8 @@ Tallenna tiedot koneellesi ja tuo ne tällä sivulla.',
 'markedaspatrollederror' => 'Muutoksen merkitseminen tarkastetuksi epäonnistui.',
 'markedaspatrollederrortext' => 'Tarkastetuksi merkittävää versiota ei ole määritelty.',
 'markedaspatrollederror-noautopatrol' => 'Et voi merkitä omia muutoksiasi tarkastetuiksi.',
+'markedaspatrollednotify' => 'Tämä muutos sivuun $1 on merkitty tarkastetuksi.',
+'markedaspatrollederrornotify' => 'Tarkastetuksi merkitseminen epäonnistui.',
 
 # Patrol log
 'patrol-log-page' => 'Muutostentarkastusloki',
index 7063d66..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 :',
@@ -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 d0a51dc..f2cb422 100644 (file)
@@ -227,7 +227,7 @@ $messages = array(
 'cancel' => 'Cealaigh',
 'moredotdotdot' => 'Tuilleadh...',
 'mypage' => 'Mo leathanach',
-'mytalk' => 'Mo chuid phlé',
+'mytalk' => 'Plé',
 'anontalk' => 'Plé don seoladh IP seo',
 'navigation' => 'Nascleanúint',
 'and' => '&#32;agus',
@@ -785,7 +785,7 @@ Treoir: (rth) = difríocht ón leagan reatha, (rmh) = difríocht ón leagan roim
 'searchmenu-legend' => 'Sainroghanna cuardaithe',
 'searchmenu-new' => "'''Cruthaigh an leathanach \"[[:\$1]]\" ar an vicí seo!'''",
 'searchhelp-url' => 'Help:Clár_ábhair',
-'searchprofile-project' => 'Leathanaigh thionscadail',
+'searchprofile-project' => 'Leathanaigh thionscadail agus cabhair',
 'searchprofile-images' => 'Ilmheáin',
 'searchprofile-everything' => 'Gach rud',
 'searchprofile-articles-tooltip' => 'Cuardaigh i $1',
@@ -826,7 +826,7 @@ Bain triail as ''all:'' a chur roimh d'iarratas chun an t-inneachar ar fad (leat
 
 # Preferences page
 'preferences' => 'Sainroghanna',
-'mypreferences' => 'Mo shainroghanna',
+'mypreferences' => 'Sainroghanna',
 'prefsnologin' => 'Níl tú logáilte isteach',
 'prefsnologintext' => 'Ní mór duit <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} logáil isteach]</span> chun do chuid sainroghanna phearsanta a shocrú.',
 'changepassword' => "Athraigh d'fhocal faire",
@@ -1075,7 +1075,7 @@ Má theastáilann uait do chomhad a uaslódáil fós, téigh ar ais agus úsáid
 'filehist-dimensions' => 'Toisí',
 'filehist-filesize' => 'Méid an comhad',
 'filehist-comment' => 'Nóta tráchta',
-'imagelinks' => 'Naisc comhaid',
+'imagelinks' => 'Úsáid comhaid',
 'linkstoimage' => 'Tá nasc chuig an gcomhad seo ar {{PLURAL:$1|na leathanaigh|$1 an leathanach}} seo a leanas:',
 'nolinkstoimage' => 'Níl nasc ó aon leathanach eile don íomhá seo.',
 'sharedupload' => 'Is uaslodáil roinnte atá ann sa comhad seo, as $1, agus is féidir le tionscadail eile é a úsáid.',
@@ -1270,7 +1270,7 @@ Beidh do seoladh ríomhphoist a d\'iontráil tú i [[Special:Preferences|do chui
 
 # Watchlist
 'watchlist' => 'Mo liosta faire',
-'mywatchlist' => 'Mo liosta faire',
+'mywatchlist' => 'Liosta faire',
 'nowatchlist' => 'Níl aon rud ar do liosta faire.',
 'watchlistanontext' => "$1, le d'thoil, chun míreanna ar do liosta faire a fheiceáil ná a athrú.",
 'watchnologin' => 'Níl tú logáilte isteach',
@@ -1451,7 +1451,7 @@ Is an téacs as na leagan scriosta seo ar fáil do riarthóirí amháin.',
 # Contributions
 'contributions' => 'Dréachtaí úsáideora',
 'contributions-title' => 'Dréachtaí úsáideora do $1',
-'mycontris' => 'Mo chuid dréachtaí',
+'mycontris' => 'Dréachtaí',
 'contribsub2' => 'Do $1 ($2)',
 'nocontribs' => 'Ní bhfuarthas aon athrú a bhí cosúil le na crítéir seo.',
 'uctop' => ' (barr)',
@@ -1478,14 +1478,14 @@ Is an téacs as na leagan scriosta seo ar fáil do riarthóirí amháin.',
 'nolinkshere-ns' => "Níl leathanach ar bith ann san ainmspás roghnaithe a bhfuil nasc chuig '''[[:$1]]''' air.",
 'isredirect' => 'Leathanach athsheolaidh',
 'istemplate' => 'iniamh',
-'isimage' => 'nasc íomhá',
+'isimage' => 'nasc comhad',
 'whatlinkshere-prev' => '{{PLURAL:$1|roimhe|$1 roimhe}}',
 'whatlinkshere-next' => '{{PLURAL:$1|ar aghaidh|$1 ar aghaidh}}',
 'whatlinkshere-links' => '← naisc',
 'whatlinkshere-hideredirs' => '$1 athsheolaidh',
 'whatlinkshere-hidetrans' => '$1 trasiamh',
 'whatlinkshere-hidelinks' => '$1 nasc',
-'whatlinkshere-hideimages' => '$1 nasc íomhá',
+'whatlinkshere-hideimages' => '$1 naisc comhad',
 'whatlinkshere-filters' => 'Scagairí',
 
 # Block/unblock
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..58491b2 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' => 'שפת הממשק:',
@@ -3272,7 +3272,7 @@ $1',
 'widthheightpage' => '<span dir="ltr">$1 × $2</span>, {{PLURAL:$3|דף אחד|$3 דפים}}',
 'file-info' => 'גודל הקובץ: $1, סוג MIME‏: $2',
 'file-info-size' => '<span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3, סוג MIME‏: $4',
-'file-info-size-pages' => '<span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3, סוג MIME‏: $4, {{PLURAL:$5|דף אחד|$5 דפים}}',
+'file-info-size-pages' => '<span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3, סוג MIME‏: $4, {{PLURAL:$5|דף אחד|$5 דפים}}',
 'file-nohires' => 'אין גרסה ברזולוציה גבוהה יותר.',
 'svg-long-desc' => 'קובץ SVG, הגודל המקורי: <span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3',
 'svg-long-desc-animated' => 'קובץ SVG מונפש, הגודל המקורי: <span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3',
index 4183c53..ec45ad3 100644 (file)
@@ -313,7 +313,7 @@ $messages = array(
 'cancel' => 'रद्द करें',
 'moredotdotdot' => 'और...',
 'mypage' => 'मेरा पृष्ठ',
-'mytalk' => 'मà¥\87रà¥\80 à¤¸à¤¦à¤¸à¥\8dय à¤µà¤¾à¤°à¥\8dता',
+'mytalk' => 'वार्ता',
 'anontalk' => 'इस आइ॰पी के लिये वार्ता',
 'navigation' => 'भ्रमण',
 'and' => '&#32;और',
@@ -341,7 +341,7 @@ $messages = array(
 'vector-view-history' => 'इतिहास देखें',
 'vector-view-view' => 'पढ़ें',
 'vector-view-viewsource' => 'स्रोत देखें',
-'actions' => 'à¤\95à¥\8dरियाà¤\8fà¤\82',
+'actions' => 'à¤\95à¥\8dरियाà¤\8fà¤\81',
 'namespaces' => 'नामस्थान',
 'variants' => 'संस्करण',
 
@@ -375,7 +375,7 @@ $messages = array(
 'unprotectthispage' => 'इस पृष्ठ को सुरक्षित करै',
 'newpage' => 'नया पृष्ठ',
 'talkpage' => 'इस पृष्ठ के बारे में चर्चा करें',
-'talkpagelinktext' => 'वारà¥\8dता',
+'talkpagelinktext' => 'à¤\9aरà¥\8dà¤\9aा',
 'specialpage' => 'विशेष पृष्ठ',
 'personaltools' => 'वैयक्तिक औज़ार',
 'postcomment' => 'नया अनुभाग',
@@ -1232,7 +1232,7 @@ $1",
 
 # Preferences page
 'preferences' => 'मेरी वरीयताएँ',
-'mypreferences' => 'मà¥\87रà¥\80 à¤ªà¤¸à¤\82द',
+'mypreferences' => 'पसंद',
 'prefs-edits' => 'संपादन संख्या:',
 'prefsnologin' => 'लॉग इन नहीं किया है',
 'prefsnologintext' => 'वरीयताएँ बदलने के लिए आपको <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} सत्रारंभ]</span> करना होगा।',
@@ -1524,7 +1524,7 @@ HTML टैग की जाँच करें।',
 'rcshowhidepatr' => 'जाँचे हुए सम्पादन $1',
 'rcshowhidemine' => 'मेरे बदलाव $1',
 'rclinks' => 'पिछले $2 दिनों में हुए $1 बदलाव दिखाएँ<br />$3',
-'diff' => 'à¤\85à¤\82तर',
+'diff' => 'फ़रà¥\8dà¤\95',
 'hist' => 'इतिहास',
 'hide' => 'छिपाएँ',
 'show' => 'दिखाएँ',
@@ -1909,7 +1909,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'unusedtemplateswlh' => 'अन्य कड़ियाँ',
 
 # Random page
-'randompage' => 'à¤\95िसà¥\80 à¤\8fà¤\95 à¤²à¥\87à¤\96 à¤ªà¤° à¤\9cाà¤\8fà¤\81',
+'randompage' => 'यादà¥\83à¤\9aà¥\8dà¤\9bिà¤\95 à¤ªà¥\83षà¥\8dठ',
 'randompage-nopages' => 'कोई भी पृष्ठ {{PLURAL:$2|इस नामस्थान|इन नामस्थानों}} में नहीं हैं: $1।',
 
 # Random redirect
@@ -2173,7 +2173,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 
 # Watchlist
 'watchlist' => 'मेरी ध्यानसूची',
-'mywatchlist' => 'मà¥\87रà¥\80 à¤§à¥\8dयानसà¥\82à¤\9aà¥\80',
+'mywatchlist' => 'ध्यानसूची',
 'watchlistfor2' => '$1 $2 के लिए',
 'nowatchlist' => 'आपकी ध्यानसूची में कोई भी पृष्ठ नहीं हैं।',
 'watchlistanontext' => 'अपनी ध्यानसूची में मौजूद पृष्ठ देखने या फिर संपादित करने के लिये कॄपया $1 करें।',
@@ -2434,16 +2434,16 @@ $1',
 'blanknamespace' => '(मुख्य)',
 
 # Contributions
-'contributions' => 'सदस्य योगदान',
+'contributions' => '{{GENDER:$1|सदस्य}} योगदान',
 'contributions-title' => '$1 के योगदान',
-'mycontris' => 'मà¥\87रा à¤¯à¥\8bà¤\97दान',
+'mycontris' => 'योगदान',
 'contribsub2' => '$1 के लिये ($2)',
 'nocontribs' => 'इन कसौटियों से मिलनेवाले बदलाव मिले नहीं।',
 'uctop' => '(उपर)',
 'month' => 'इस महिनेसे (और पुरानें):',
 'year' => 'इस सालसे (और पुराने):',
 
-'sp-contributions-newbies' => 'सिर्फ नये सदस्योंका योगदान दर्शायें',
+'sp-contributions-newbies' => 'सिर्फ नये सदस्योंका योगदान दर्शायें',
 'sp-contributions-newbies-sub' => 'नये सदस्योंके लिये',
 'sp-contributions-newbies-title' => 'नए सदस्यों द्वारा योगदान',
 'sp-contributions-blocklog' => 'ब्लॉक सूची',
@@ -2476,7 +2476,7 @@ $1',
 'whatlinkshere-hideredirs' => '$1 पुनर्निर्देश',
 'whatlinkshere-hidetrans' => '$1 ट्रान्स्क्ल्युजन्स',
 'whatlinkshere-hidelinks' => '$1 कड़ियाँ',
-'whatlinkshere-hideimages' => '$1 à¤\9aितà¥\8dर à¤\95ड़ियाà¤\81',
+'whatlinkshere-hideimages' => '$1 à¤«à¤¼à¤¾à¤\87ल à¤²à¤¿à¤\82à¤\95',
 'whatlinkshere-filters' => 'छन्ने',
 
 # Block/unblock
@@ -2868,13 +2868,13 @@ $1 को बाध्य करने का कारण है: "$2"',
 'tooltip-n-randompage' => 'किसी एक लेख पर जाएँ',
 'tooltip-n-help' => 'पता लगाने का स्थान',
 'tooltip-t-whatlinkshere' => 'यहाँ का हवाला देने वाले सभी विकि पन्नों की सूची',
-'tooltip-t-recentchangeslinked' => 'यहाà¤\82 जुडे हुए सभी पन्नोंमें हुए हाल के बदलाव',
+'tooltip-t-recentchangeslinked' => 'यहाà¤\81 जुडे हुए सभी पन्नोंमें हुए हाल के बदलाव',
 'tooltip-feed-rss' => 'इस पृष्ठ की आरएसएस फ़ीड',
 'tooltip-feed-atom' => 'इस पृष्ठ की अणु फ़ीड',
 'tooltip-t-contributions' => 'इस सदस्यके योगदानकी सूची देखियें',
 'tooltip-t-emailuser' => 'इस सदस्य को इमेल भेजें',
 'tooltip-t-upload' => 'संचिका चढ़ाएँ',
-'tooltip-t-specialpages' => 'सभी खास पन्नोंकी सूची',
+'tooltip-t-specialpages' => 'सभी खास पन्नों की सूची',
 'tooltip-t-print' => 'इस पृष्ठका छपानेलायक अवतरण',
 'tooltip-t-permalink' => 'पृष्ठ के इस संस्करण की स्थायी कड़ी',
 'tooltip-ca-nstab-main' => 'सामग्री वाला पृष्ठ देखें',
@@ -3022,7 +3022,7 @@ $1',
 
 # Metadata
 'metadata' => 'मेटाडाटा',
-'metadata-help' => 'à¤\87स à¤«à¤¼à¤¾à¤\88लमà¥\87à¤\82 à¤¬à¤¢à¤¼à¤¾à¤\88 à¤¹à¥\81à¤\88 à¤\9cानà¤\95ारà¥\80 à¤¹à¥\88à¤\82, à¤¹à¥\8b à¤¸à¤\95ता à¤¹à¥\88 à¤\95ि à¤¯à¤¹ à¤«à¤¼à¤¾à¤\88ल à¤¬à¤¨à¤¾à¤¨à¥\87मà¥\87à¤\82 à¤\87सà¥\8dतà¥\87माल à¤\95ियà¥\87 à¤\97à¤\8f à¤¸à¥\8dà¤\95à¥\88नर à¤\85थवा à¤\95à¥\88मà¥\87रा à¤¸à¥\87 à¤¯à¤¹ à¤ªà¥\8dरापà¥\8dत à¤¹à¥\81à¤\88 à¤¹à¥\88à¤\82 à¥¤ à¤\85à¤\97र à¤¯à¤¹ à¤«à¤¼à¤¾à¤\88ल बदलदी गई हैं तो यह जानकारी नई फ़ाईलसे मेल नहीं खाने की आशंका हैं ।',
+'metadata-help' => 'à¤\87स à¤«à¤¼à¤¾à¤\87ल à¤®à¥\87à¤\82 à¤¬à¤¢à¤¼à¤¾à¤\88 à¤¹à¥\81à¤\88 à¤\9cानà¤\95ारà¥\80 à¤¹à¥\88à¤\82, à¤¹à¥\8b à¤¸à¤\95ता à¤¹à¥\88 à¤\95ि à¤¯à¤¹ à¤«à¤¼à¤¾à¤\87ल à¤¬à¤¨à¤¾à¤¨à¥\87 à¤®à¥\87à¤\82 à¤\87सà¥\8dतà¥\87माल à¤\95ियà¥\87 à¤\97à¤\8f à¤¸à¥\8dà¤\95à¥\88नर à¤\85थवा à¤\95à¥\88मà¥\87रा à¤¸à¥\87 à¤¯à¤¹ à¤ªà¥\8dरापà¥\8dत à¤¹à¥\81à¤\88 à¤¹à¥\88à¤\82। à¤\85à¤\97र à¤¯à¤¹ à¤«à¤¼à¤¾à¤\87ल बदलदी गई हैं तो यह जानकारी नई फ़ाईलसे मेल नहीं खाने की आशंका हैं ।',
 'metadata-expand' => 'विस्तृत जानकारियां दिखाएं',
 'metadata-collapse' => 'विस्तृत जानकारियां छिपाएं',
 'metadata-fields' => 'जब मेटाडाटा तालिका को लघुरूप किया जाएगा तो इस सन्देश में सूचीबद्ध इएक्सआयएफ मेटाडाटा जानकारियां छवि प्रदर्शित होते समय सम्मिलित की जाएंगी।
@@ -3701,14 +3701,14 @@ $5
 'intentionallyblankpage' => 'यह पृष्ठ जानबूझ कर खाली छोड़ा गया है।',
 
 # External image whitelist
-'external_image_whitelist' => ' #এই লাইনটি ঠিক যেমন আছে তেমনি  রাখুন কারন এটি <pre>
-#রেগুলার এক্সপ্রেশনর টুকরো নীচে (শুধুমাত্র  // মধ্যে যে অংশ যায়) বসান
-# এই এক্সটার্নাল (hotlinked) ইমেজ URL-এর সাথে হবে মিলেছে
-# যে মেলার চিত্র হিসাবে প্রদর্শিত হবে, অন্যথায় শুধুমাত্র ইমেজ লিঙ্ক প্রদর্শিত হবে
-# প্রারম্ভে লাইনস মন্তব্যসমূহ হিসাবে ব্যবহার করা হয়
-# এই কেস অসংবেদী
-
-# এই রেখার উপরের regex টুকরা বসান. এই লাইন ছেড়ে ঠিক হয় </pre>',
+'external_image_whitelist' => 'इस लाइन बिल्कुल के रूप में यह #Leave है<pre>
+ #Put नियमित अभिव्यक्ति टुकड़े (बस हिस्सा है कि के बीच चला जाता है / /) के नीचे
+ # ये बाहरी (hotlinked) छवियों के यूआरएल के साथ मिलान किया जाएगा
+ # कि मैच उन छवियों के रूप में प्रदर्शित किया जाएगा, अन्यथा केवल छवि के लिए एक कड़ी दिखाया जाएगा
+ #Lines # साथ शुरुआत टिप्पणी के रूप में इलाज कर रहे हैं
+ # इस केस-असंवेदी है
+
+ #Put सब regex टुकड़े इस रेखा से ऊपर। वास्तव में यह है के रूप में इस लाइन छोड़ दो</pre>',
 
 # Special:Tags
 'tags' => 'वैध बदलाव चिप्पियाँ',
index 995e5a8..44f726a 100644 (file)
@@ -446,7 +446,7 @@ $messages = array(
 'newwindow' => '(otvara se u novom prozoru)',
 'cancel' => 'Odustani',
 'moredotdotdot' => 'Više...',
-'mypage' => 'Moja stranica',
+'mypage' => 'Stranica',
 'mytalk' => 'Moj razgovor',
 'anontalk' => 'Razgovor za ovu IP adresu',
 'navigation' => 'Orijentacija',
@@ -469,7 +469,7 @@ $messages = array(
 'vector-action-protect' => 'Zaštiti',
 'vector-action-undelete' => 'Vrati',
 'vector-action-unprotect' => 'Promijeni zaštitu',
-'vector-simplesearch-preference' => 'Omogući poboljšane prijedloge za pretraživanje (samo izgled Vector)',
+'vector-simplesearch-preference' => 'Omogući traku za pretraživanje (samo izgled Vector)',
 'vector-view-create' => 'Započni',
 'vector-view-edit' => 'Uredi',
 'vector-view-history' => 'Vidi stare izmjene',
@@ -675,8 +675,8 @@ Moguće je da ju je netko drugi već obrisao.',
 Nema obrazloženja ili poruke o pogrješci.',
 'badtitle' => 'Loš naslov',
 'badtitletext' => 'Navedeni naslov stranice nepravilan ili loše formirana interwiki poveznica.',
-'perfcached' => 'Sljedeći podaci su iz međuspremnika i možda nisu najsvježiji. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'Sljedeći podaci su iz međuspremnika i zadnji puta su ažurirani u $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'Sljedeći podaci su iz međuspremnika i možda nisu najsvježiji. Međuspremnik sadrži $1 {{PLURAL:$1|rezultat|rezultata}} pretraživanja.',
+'perfcachedts' => 'Sljedeći podaci su iz međuspremnika i zadnji puta su ažurirani u $1. Međuspremnik sadrži $4 {{PLURAL:$4|rezultat|rezultata}} pretraživanja.',
 'querypage-no-updates' => 'Osvježavanje ove stranice je trenutačno onemogućeno. Nove promjene neće biti vidljive.',
 'wrong_wfQuery_params' => 'Neispravni parametri poslani u wfQuery()<br />
 Funkcija: $1<br />
@@ -688,8 +688,9 @@ Upit: $2',
 'protectedpagetext' => 'Ova stranica je zaključana da bi se onemogućile izmjene.',
 'viewsourcetext' => 'Možete pogledati i kopirati izvorni sadržaj ove stranice:',
 'viewyourtext' => "Možete vidjeti i kopirati tekst '''vaših uređivanja''' na ovoj stranici:",
-'protectedinterface' => 'Ova stranica je zaštićena od izmjena jer sadrži tekst MediaWiki softvera.',
-'editinginterface' => "'''Upozorenje:''' Uređujete stranicu koja se rabi za prikaz teksta u sučelju softvera. Promjene učinjene na ovoj stranici će se odraziti na izgled korisničkog sučelja kod drugih suradnika. Za prijevod, razmotrite korištenje [//translatewiki.net/wiki/Main_Page?setlang=hr translatewiki.net], projekta lokalizacije MedijeWiki.",
+'protectedinterface' => 'Ova stranica je zaštićena od izmjena jer sadrži tekst MediaWiki softvera.
+AKo želite prevesti neprevedenu poruku ili popraviti prijevod neke druge poruke za sve MediaWiki wikije, posjetite [//translatewiki.net/  translatewiki.net], projekt za lokalizaciju MediaWiki softvera.',
+'editinginterface' => "'''Upozorenje:''' Uređujete stranicu koja se rabi za prikaz teksta u sučelju softvera. Promjene učinjene na ovoj stranici će se odraziti na izgled korisničkog sučelja kod drugih suradnika. Za prijevod, razmotrite uporabu [//translatewiki.net/wiki/Main_Page?setlang=hr translatewiki.net], projekta lokalizacije MedijeWiki.",
 'sqlhidden' => '(SQL upit sakriven)',
 'cascadeprotected' => 'Ova je stranica zaključana za uređivanja jer je uključena u {{PLURAL:$1|slijedeću stranicu|slijedeće stranice}}, koje su zaštićene "prenosivom zaštitom":
 $2',
@@ -957,7 +958,8 @@ Ako ste ovamo dospjeli slučajno, kliknite gumb '''natrag''' (back) u svom pregl
 Možete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane evidencije]
 ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.',
-'noarticletext-nopermission' => 'Možete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim stranicama ili <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane evidencije]</span>.',
+'noarticletext-nopermission' => 'Ova stranica nema sadržaja.
+Možete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim stranicama ili <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane evidencije]</span>, ali ne možete stvoriti ovu stranicu.',
 'userpage-userdoesnotexist' => 'Suradničko ime "<nowiki>$1</nowiki>" nije prijavljeno. Jeste li sigurni da želite stvoriti/uređivati ovu stranicu?',
 'userpage-userdoesnotexist-view' => 'Suradnički račun "$1" nije registriran.',
 'blocked-notice-logextract' => 'Ovaj suradnik je trenutačno blokiran.
@@ -1210,7 +1212,8 @@ Provjerite evidencije.',
 'revdelete-only-restricted' => 'Pogrješka pri skrivanju stavke od dana $2, $1: ne možete ukloniti stavke od pregledavanja administratora bez da odaberete neku od drugih mogućnosti vidljivosti.',
 'revdelete-reason-dropdown' => '*Uobičajeni razlozi brisanja
 ** Kršenje autorskih prava
-** Neprimjereni osobni podaci',
+** Neprimjereni osobni podaci
+** Neprikladno suradničko ime',
 'revdelete-otherreason' => 'Drugi/dodatni razlog:',
 'revdelete-reasonotherlist' => 'Drugi razlog',
 'revdelete-edit-reasonlist' => 'Uredi razloge za brisanje',
@@ -1351,7 +1354,7 @@ Primijetite da uporaba navigacijskih poveznica resetira Vaše izbore u stupcu.',
 'prefs-rc' => 'Nedavne promjene i kratki članci',
 'prefs-watchlist' => 'Praćene stranice',
 'prefs-watchlist-days' => 'Broj dana koji će se prikazati na popisu praćenja:',
-'prefs-watchlist-days-max' => 'Maximum $1 {{PLURAL:$1|day|days}}',
+'prefs-watchlist-days-max' => 'Najviše $1 {{PLURAL:$1|dan|dana}}',
 'prefs-watchlist-edits' => 'Broj uređivanja koji će se prikazati na proširenom popisu praćenja:',
 'prefs-watchlist-edits-max' => 'Maksimalni broj: 1000',
 'prefs-watchlist-token' => 'Token popisa praćenja:',
@@ -1631,9 +1634,11 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|suradnik|suradnika|suradnika}} prati ovu stranicu]',
 'rc_categories' => 'Ograniči na kategorije (odvojene znakom  "|")',
 'rc_categories_any' => 'Sve',
+'rc-change-size-new' => '$1 {{PLURAL:$1|bajt|bajta|bajtova}} poslije uređivanja',
 'newsectionsummary' => '/* $1 */ Novi odlomak',
 'rc-enhanced-expand' => 'Pokaži detalje (potreban JavaScript)',
 'rc-enhanced-hide' => 'Sakrij detalje',
+'rc-old-title' => 'izvorno ime bilo je "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Povezane stranice',
@@ -1782,9 +1787,17 @@ Ako se problem ponovi, javite to [[Special:ListUsers/sysop|administratoru]].',
 'backend-fail-notsame' => 'Na lokaciji $1 već postoji datoteka koja se razlikuje.',
 'backend-fail-invalidpath' => "$1 nije valjana pričuvna putanja (''path'').",
 'backend-fail-delete' => 'Ne mogu obrisati datoteku $1.',
+'backend-fail-alreadyexists' => 'Datoteka $1 već postoji.',
+'backend-fail-store' => 'Nije uspjelo spremanje datoteke $1 na $2.',
+'backend-fail-copy' => 'Nije uspjelo kopiranje datoteke "$1" u "$2".',
+'backend-fail-move' => 'Nije uspjelo premještanje datoteke $1 u $2.',
 'backend-fail-opentemp' => 'Ne mogu otvoriti privremenu datoteku.',
 'backend-fail-writetemp' => 'Ne mogu pisati u privremenu datoteku.',
 'backend-fail-closetemp' => 'Ne mogu zatvoriti privremenu datoteku.',
+'backend-fail-read' => 'Datoteka "$1" je nečitljiva.',
+'backend-fail-create' => 'Ne mogu stvoriti ili pisati u datoteku $1.',
+'backend-fail-readonly' => 'Baza ili datotečni sustav "$1" trenutačno nije dostupan za pisanje. Razlog je: "\'\'$2\'\'"',
+'backend-fail-synced' => 'Datoteka "$1" nije identična inačici u internom skladištu',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'Došlo je do pogreške pri otvaranju datoteke za ZIP provjeru.',
@@ -2249,27 +2262,32 @@ Promjene na toj stranici i njenoj stranici za razgovor bit će prikazane na popi
 'enotif_mailer' => '{{SITENAME}} - izvješća o promjenama',
 'enotif_reset' => 'Označi sve stranice kao već posjećene',
 'enotif_impersonal_salutation' => '{{SITENAME}} suradnik',
+'enotif_subject_deleted' => '{{gender:$2|Suradnik|Suradnica}} $2 {{gender:$2|je obrisao|je obrisala}} stranicu $1 projekta {{SITENAME}}',
+'enotif_subject_created' => '{{gender:$2|Suradnik|Suradnica}} $2 {{gender:$2|je stvorio|je stvorila}} stranicu $1 projekta {{SITENAME}}',
+'enotif_subject_moved' => '{{gender:$2|Suradnik|Suradnica}} $2 {{gender:$2|je premjestio|je premjestila}} stranicu $1 projekta {{SITENAME}}',
+'enotif_subject_restored' => '{{gender:$2|Suradnik|Suradnica}} $2 {{gender:$2|je vratio|je vratila}} stranicu $1 projekta {{SITENAME}}',
+'enotif_subject_changed' => '{{gender:$2|Suradnik|Suradnica}} $2 {{gender:$2|je uredio|je uredila}} stranicu $1 projekta {{SITENAME}}',
 'enotif_lastvisited' => 'Pogledaj $1 za promjene od zadnjeg posjeta.',
 'enotif_lastdiff' => 'Pogledajte $1 kako biste mogli vidjeti tu izmjenu.',
 'enotif_anon_editor' => 'neprijavljeni suradnik $1',
 'enotif_body' => 'Poštovani $WATCHINGUSERNAME,
 
-stranica na projektu {{SITENAME}} s naslovom $PAGETITLE je dana $PAGEEDITDATE $CHANGEDORCREATED suradnik $PAGEEDITOR, pogledajte $PAGETITLE_URL za trenutačnu inačicu.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
 
 Sažetak urednika: $PAGESUMMARY $PAGEMINOREDIT
 
-Možete se javiti uredniku:
+Možete kontaktirati suradnika koji je zadnji uređivao stranicu:
 mail: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-Do Vašeg ponovnog posjeta stranici nećete dobivati nove obavijesti.
-Postavke za izvješćivanje možete resetirati za sve praćene stranice svog popisa praćenja.
+Do Vašeg ponovnog posjeta stranici nećete dobivati nove obavijesti. Postavke za izvješćivanje možete resetirati za sve praćene stranice svog popisa praćenja.
 
-            Vaš sustav izvješćivanja {{SITENAME}}.
+Vaš sustav izvješćivanja {{SITENAME}}.
 
 --
+Za promjene postavki izvješćivanja putem e-pošte, posjetite
+{{canonicalurl:{{#special:Preferences}}}}
+
 Za promjene svog popisa praćenja, posjetite
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
@@ -2458,7 +2476,7 @@ $1',
 'blanknamespace' => '(Glavni)',
 
 # Contributions
-'contributions' => 'Doprinosi suradnika',
+'contributions' => 'Doprinosi {{GENDER:$1|suradnika|suradnice}}',
 'contributions-title' => 'Suradnički doprinosi za $1',
 'mycontris' => 'Moji doprinosi',
 'contribsub2' => 'Za $1 ($2)',
index 614d08a..4f04300 100644 (file)
@@ -1266,9 +1266,9 @@ Móžeš tutu stronu wužiwać, zo by swoje nastajenja na standardne hódnoty sy
 'prefs-emailconfirm-label' => 'E-mejlowe wobkrućenje:',
 'prefs-textboxsize' => 'Wulkosć wobdźěłowanskeho wokna',
 'youremail' => 'E-mejl:',
-'username' => 'Wužiwarske mjeno:',
-'uid' => 'ID wužiwarja:',
-'prefs-memberingroups' => 'Čłon {{PLURAL:$1|wužiwarskeje skupiny|wužiwarskeju skupinow|wužiwarskich skupinow|wužiwarskich skupinow}}:',
+'username' => 'Mjeno {{GENDER:$1|wužiwarja|wužiwarki}}:',
+'uid' => 'ID {{GENDER:$1|wužiwarja|wužiwarki}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Čłon|Čłonka}} {{PLURAL:$1|wužiwarskeje skupiny|wužiwarskeju skupinow|wužiwarskich skupinow}}:',
 'prefs-registration' => 'Čas registracije:',
 'yourrealname' => 'Woprawdźite mjeno:',
 'yourlanguage' => 'Rěč:',
index 7a3eb38..0612036 100644 (file)
@@ -1425,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:',
@@ -3082,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 37ed9de..0f5a65f 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' => '(էլի)',
@@ -1399,7 +1399,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'filename' => 'Նիշքի անվանում',
 'filedesc' => 'Ամփոփում',
 'fileuploadsummary' => 'Նկարագրություն՝',
-'filereuploadsummary' => 'Ֆայլի Փոփոխություները:',
+'filereuploadsummary' => 'Ֆայլի փոփոխություները:',
 'filestatus' => 'Հեղինակային իրավունքի կարգավիճակ.',
 'filesource' => 'Աղբյուր՝',
 'uploadedfiles' => 'Բեռնված նիշքեր',
@@ -1428,7 +1428,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'fileexists-forbidden' => 'Այսպիսի անվանմամբ նիշք արդեն գոյություն ունի։ Խնդրում ենք հետ վերադառնալ և բեռնել նիշքը նոր անվանմամբ։ [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Այսպիսի անվանմամբ նիշք արդեն գոյություն ունի նիշքերի ընդհանուր զետեղարանում։ Խնդրում ենք հետ վերադառնալ և բեռնել նիշքը նոր անվանմամբ։ [[File:$1|thumb|center|$1]]',
 'uploadwarning' => 'Զգուշացում',
-'savefile' => 'Հիշել Ֆայլը',
+'savefile' => 'Հիշել ֆայլը',
 'uploadedimage' => 'բեռնվեց «[[$1]]»',
 'overwroteimage' => 'բեռնվեց «[[$1]]» նիշքի նոր տարբերակ',
 'uploaddisabled' => 'Բեռնումները արգելված են',
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 73ecf00..80a2d33 100644 (file)
@@ -698,7 +698,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'notloggedin' => 'Accesso non effettuato',
 'nologin' => "Non hai ancora un accesso? '''$1'''.",
 'nologinlink' => 'Registrati',
-'createaccount' => 'Crea un accesso',
+'createaccount' => "Crea un'utenza",
 'gotaccount' => "Hai già un accesso? '''$1'''.",
 'gotaccountlink' => 'Entra',
 'userlogin-resetlink' => 'Hai dimenticato i tuoi dati di accesso?',
@@ -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:",
index 76ed42d..879e2e5 100644 (file)
@@ -1042,7 +1042,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 この新アカウントのパスワードは、ログインした際に''[[Special:ChangePassword|パスワード変更]]''ページで変更できます。",
 'newarticle' => '(新)',
 'newarticletext' => "まだ存在しないページへのリンクをたどりました。
-このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[[{{MediaWiki:Helppage}}|ヘルプ ページ]]を参照してください)。
+このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[[{{MediaWiki:Helppage}}|ヘルプページ]]を参照してください)。
 誤ってこのページにたどり着いた場合には、ブラウザーの'''戻る'''ボタンで前のページに戻ってください。",
 'anontalkpagetext' => "----''このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。
 匿名利用者を識別するために、利用者名の代わりにIPアドレスが使用されています。
@@ -1068,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を試験/プレビューしています。'''
@@ -1078,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での攻撃を予防するためにプレビューを表示していません。''
 
@@ -1123,7 +1123,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'copyrightwarning2' => "{{SITENAME}}へのすべての投稿は、他の利用者が編集、変更、除去する可能性があります。
 あなたの投稿を、他人が遠慮なく編集するのを望まない場合は、ここには投稿しないでください。<br />
 また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は$1を参照)。
-'''著作権保護されている作品を、許諾なしに投稿してはいけません'''",
+'''著作権保護されている作品を、許諾なしに投稿してはいけません!'''",
 'longpageerror' => "'''エラー:投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。'''
 この編集は保存できません。",
 'readonlywarning' => "'''警告:データベースがメンテナンスのためロックされており、現在は編集を保存できません。'''
@@ -1146,7 +1146,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'edittools' => '<!-- ここに書いたテキストは編集及びアップロードのフォームの下に表示されます。 -->',
 'nocreatetitle' => 'ページの作成が制限されています',
 'nocreatetext' => '{{SITENAME}}ではページの新規作成を制限しています。
-元のページに戻って既存のページを編集するか、[[Special:UserLogin|ログインまたはアカウント作成]]をしてください。',
+元のページに戻って既存のページを編集するか、[[Special:UserLogin|ログインまたはアカウント作成]]をしてください。',
 'nocreate-loggedin' => '新しいページを作成する権限がありません。',
 'sectioneditnotsupported-title' => '節単位編集はサポートされていません',
 'sectioneditnotsupported-text' => 'このページでは節単位編集はサポートされません。',
@@ -1328,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の項目の変更に失敗しました:あなたが変更しようとしている間に、他の誰かが変更したようです。
 記録を確認してください。',
@@ -1547,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',
@@ -2715,7 +2715,7 @@ $1',
 'blanknamespace' => '(標準)',
 
 # Contributions
-'contributions' => '利用者の投稿記録',
+'contributions' => '{{GENDER:$1|利用者}}の投稿記録',
 'contributions-title' => '$1の投稿記録',
 'mycontris' => '投稿記録',
 'contribsub2' => '利用者: $1 ($2)',
index 6678bb9..9d359f3 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' => 'სექცია არ არსებობს',
@@ -917,10 +917,10 @@ $2
 *თქვენ აგრეთვე პირობას დებთ, რომ თქვენს მიერ განთავსებული ტექსტი თქვენი დაწერილია, ან გადმოწერილია საზოგადოებრივი დომენიდან ან მსგავსი თავისუფალი წყაროდან. (იხ. $1 დეტალებისთვის).
 *'''ნუ შემოიტანთ საავტორო უფლებებით დაცულ ნაშრომს ავტორის ნებართვის გარეშე!'''",
 'longpageerror' => "'''შეცდომა: თქვენს მიერ აკრეფილი ტექსტის ზომა {{PLURAL:$1|$1 კილობაიტია}}, რაც აღემატება, დადგენილ {{PLURAL:$2|$2 კილობაიტიან}} ზღვარს. გვერდის შენახვა შეუძლებელია.'''",
-'readonlywarning' => "'''გაფრთხილება''': მონაცემთა ბაზა დახურულია პერიოდული შემოწმებისთვის, შესაბამისად თქვენ ვერ შეძლებთ რედაქტირებას ამ მომენტში.
+'readonlywarning' => "'''გაფრთხილება: მონაცემთა ბაზა დახურულია პერიოდული შემოწმებისთვის, შესაბამისად თქვენ ვერ შეძლებთ რედაქტირებას ამ მომენტში.'''
 სასურველია ტექსტის ასლი შეინახოთ ტექსტურ რედაქტორში და მოგვიანებით შემოიტანოთ.
 
\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\97á\83\90 á\83\91á\83\90á\83\96á\83\98á\83\96 á\83\93á\83\90á\83\9bá\83\91á\83\9aá\83\9dá\83\99á\83\95á\83\94á\83\9aá\83\9bá\83\90 á\83\90á\83\93á\83\9bá\83\98á\83\9cá\83\98á\83¡á\83¢á\83 á\83\90á\83¢á\83\9dá\83 á\83\9bá\83\90 á\83¨á\83\94á\83\9bá\83\93á\83\94á\83\92á\83\98 á\83\9bá\83\98á\83\96á\83\94á\83\96ი დატოვა: $1",
\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\97á\83\90 á\83\91á\83\90á\83\96á\83\98á\83¡ á\83\93á\83\90á\83\9bá\83\91á\83\9aá\83\9dá\83\99á\83\95á\83\94á\83\9aá\83\9bá\83\90 á\83\90á\83\93á\83\9bá\83\98á\83\9cá\83\98á\83¡á\83¢á\83 á\83\90á\83¢á\83\9dá\83 á\83\9bá\83\90 á\83¨á\83\94á\83\9bá\83\93á\83\94á\83\92á\83\98 á\83\99á\83\9dá\83\9bá\83\94á\83\9cá\83¢á\83\90á\83 ი დატოვა: $1",
 'protectedpagewarning' => "'''ყურადღება:  ეს გვერდი დაბლოკილია და მისი რედაქტირება შეუძლიათ მხოლოდ მომხმარებლებს ადმინისტრატორის უფლებებით'''
 იხილეთ დაცვის ჟურნალის ჩანაწერი",
 'semiprotectedpagewarning' => "'''ყურადღება:''' ეს გვერდი დაბლოკილია და მისი რედაქტირება მხოლოდ რეგისტრირებულ მომხმარებლებს შეუძლიათ.
@@ -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..ec85ae0 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' => '언어 변환 규칙을 수동으로 지정하는 도중 오류',
@@ -1513,9 +1513,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-registration' => '등록 일시:',
 'yourrealname' => '실명:',
 'yourlanguage' => '언어:',
@@ -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' => '실험할 스킨을 선택하세요:',
@@ -3140,7 +3140,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'tooltip-ca-nstab-help' => '도움말 문서 내용을 봅니다.',
 'tooltip-ca-nstab-category' => '분류 문서 내용을 봅니다.',
 'tooltip-minoredit' => '사소한 편집으로 표시하기',
-'tooltip-save' => '편집 내용을 저장하기',
+'tooltip-save' => '바뀜 저장하기',
 'tooltip-preview' => '편집 미리 보기. 저장하기 전에 꼭 미리 보기를 해 주세요!',
 'tooltip-diff' => '자신이 바꾼 것 보기',
 'tooltip-compareselectedversions' => '이 문서에서 선택한 두 판간의 차이를 비교',
@@ -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 301704a..09efdd4 100644 (file)
@@ -349,8 +349,8 @@ $messages = array(
 'youhavenewmessages' => '$1 yên te hene ($2).',
 'newmessageslink' => 'Peyamên nû',
 'newmessagesdifflink' => 'cudayî ji guhertoya berê',
-'youhavenewmessagesfromusers' => 'Ji {{PLURAL:$3|bikarhênerekê/î|$3 bikarhêneran}}, ji bo te {{PLURAL:$1|peyameke nû heye|peyamên nû hene}} ($2).',
-'newmessageslinkplural' => '{{PLURAL:$1|peyameke nû|peyamên nû}}',
+'youhavenewmessagesfromusers' => 'Ji {{PLURAL:$3|bikarhênerekê/î|$3 bikarhêneran}}, ji bo te $1 ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|peyameke nû heye|peyamên nû hene}}',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|guherandin|guherandinên dawî}}',
 'youhavenewmessagesmulti' => 'Peyamên nû li $1 ji te re hene.',
 'editsection' => 'biguherîne',
index 5ee9fd2..49e5d42 100644 (file)
@@ -986,6 +986,8 @@ Yma'n descrifans war y [$2 folen dhescrifans] disqwedhys a-woles.",
 
 # Delete
 'deletepage' => 'Dilea an folen',
+'confirm' => 'Afydhya',
+'excontent' => 'yth esa ynny: "$1"',
 'delete-confirm' => 'Dilea "$1"',
 'delete-legend' => 'Dilea',
 'actioncomplete' => 'Cowlwres yw an gwrians',
@@ -993,6 +995,7 @@ Yma'n descrifans war y [$2 folen dhescrifans] disqwedhys a-woles.",
 'deletedtext' => '"$1" yw dileys.
 Gwelowgh $2 rag covadh a dhileansow a-dhiwedhes.',
 'dellogpage' => 'Covnoten dhilea',
+'deletionlog' => 'covnoten dhilea',
 'deletecomment' => 'Acheson:',
 'deleteotherreason' => 'Acheson aral/keworansel:',
 'deletereasonotherlist' => 'Acheson aral',
@@ -1003,6 +1006,7 @@ Gwelowgh $2 rag covadh a dhileansow a-dhiwedhes.',
 # Protect
 'protectlogpage' => 'Covnoten dhifres',
 'protectedarticle' => 'a dhifresas "[[$1]]"',
+'prot_1movedto2' => '[[$1]] gwayys dhe [[$2]]',
 'protectcomment' => 'Acheson:',
 'protectexpiry' => 'Ow tiwedha:',
 'protect_expiry_invalid' => 'Drog yw an termyn diwedha.',
@@ -1096,8 +1100,8 @@ Gwelowgh $2 rag covadh a dhileansow a-dhiwedhes.',
 'move-watch' => 'Golya an folen-ma',
 'movepagebtn' => 'Gwaya an folen',
 'pagemovedsub' => 'An gwarnyans a sowenas',
-'movepage-moved' => '\'\'\'Gwayes yw "$1" war-tu "$2"\'\'\'',
-'movedto' => 'gwayes war-tu',
+'movepage-moved' => '\'\'\'Gwayys re beu "$1" dhe "$2"\'\'\'',
+'movedto' => 'gwayys dhe',
 'movelogpage' => 'Covnoten waya',
 'movereason' => 'Acheson:',
 'revertmove' => 'trebuchya',
@@ -1314,6 +1318,9 @@ Yma caletter teknogel dhe'n wiasva-ma.",
 'dberr-info' => '(Ny yllir kestava orth servyer an database: $1)',
 'dberr-usegoogle' => 'Why a yll assaya whilas dre Google.',
 
+# New logging system
+'logentry-delete-delete' => '$1 a dhileas an folen $3',
+
 # Search suggestions
 'searchsuggest-search' => 'Whilas',
 'searchsuggest-containing' => 'ynno...',
index 5e166c3..1f377fd 100644 (file)
@@ -418,7 +418,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'note' => "'''Эскертүү:'''",
 'previewnote' => "'''Бул алдын ала көрүнүшү гана болгонун эсиңизге алыңыз.'''
 Өзгөртүүлөрүңүз сактала элек!",
-'continue-editing' => 'Редакторлоону улантуу',
+'continue-editing' => 'Өзгөртүүүлөрдү улантабыз',
 'session_fail_preview' => 'Кечиресиз, байланыш үзүлгөндүктөн сиздин өзгөртүүлөр сакталган жок. Дагы бир жолу аракет кылып көрүңүз. Болбосо, [[Special:UserLogout|logging out]] аткарып, кайра кирип көрүңүз.',
 'editing' => 'Оңдоо $1',
 'creating' => '$1 түзүлүүдө',
@@ -578,13 +578,13 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-resetpass' => 'Сырсөздү өзгөртүү',
 'prefs-email' => 'Электрондук почтанын параметрлери',
 'saveprefs' => 'Сактоо',
-'prefs-editing' => 'РедакÑ\82оÑ\80лоо',
+'prefs-editing' => 'Ð\9eңдоо',
 'rows' => 'Сап:',
 'columns' => 'Тилке:',
 'searchresultshead' => 'Издөө',
 'stub-threshold-disabled' => 'Өчүрүлгөн',
 'timezonelegend' => 'Сааттык алкак:',
-'localtime' => 'Ð\96еÑ\80дик Ñ\83бакÑ\8bÑ\82:',
+'localtime' => 'Ð\96еÑ\80гиликÑ\82Ò¯Ò¯ Ñ\83бакÑ\8bÑ\82',
 'timezoneoffset' => 'Жылыш¹:',
 'servertime' => 'Сервер убагы:',
 'timezoneregion-africa' => 'Африка',
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..6c1683e 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' => 'Немате овластување',
@@ -1516,9 +1516,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-registration' => 'Време на регистрација:',
 'yourrealname' => 'Вистинско име:',
 'yourlanguage' => 'Јазик:',
index ab1d33b..0567894 100644 (file)
@@ -1453,9 +1453,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-registration' => 'അംഗത്വം എടുത്തത്:',
 'yourrealname' => 'യഥാർത്ഥ പേര്‌:',
 'yourlanguage' => 'ഭാഷ:',
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 9d0fb26..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',
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 ee7ee60..813d72d 100644 (file)
@@ -2794,7 +2794,7 @@ Merk at sider '''ikke''' blir flyttet om det allerede finnes en side med den tit
 Dette betyr at du kan endre tittelen til en tittel siden hadde tidligere, og at du ikke kan skrive over en eksisterende side.
 
 '''Advarsel!'''
-Dette kan være en drastisk og uventen endring for en populær side;
+Dette kan være en drastisk og uventet endring for en populær side;
 vær sikker på at du forstår konsekvensene av dette før du fortsetter.",
 'movepagetalktext' => "Den tilhørende diskusjonssiden vil automatisk bli flyttet sammen med siden '''med mindre:'''
 *Det allerede finnes en diskusjonsside som ikke er tom under det nye navnet, eller
index 67700c4..323c35f 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:',
@@ -3166,7 +3166,7 @@ U kunt wel de broncode bekijken.',
 'tooltip-ca-nstab-help' => 'Hulppagina bekijken',
 'tooltip-ca-nstab-category' => 'Categoriepagina bekijken',
 'tooltip-minoredit' => 'Deze wijziging als een kleine wijziging markeren',
-'tooltip-save' => 'Uw wijzigingen opslaan',
+'tooltip-save' => 'Wijzigingen opslaan',
 'tooltip-preview' => 'Een voorvertoning maken. Gebruik dit voordat u opslaat!',
 'tooltip-diff' => 'Gemaakte wijzigingen bekijken (zoals het in de geschiedenis zal te zien zijn)',
 'tooltip-compareselectedversions' => 'De verschillen tussen de geselecteerde versies van deze pagina bekijken.',
@@ -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 fc0b028..28ed2bc 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' => 'ਮਈ',
@@ -229,7 +230,7 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'june-gen' => 'ਜੂਨ',
 'july-gen' => 'ਜੁਲਾਈ',
 'august-gen' => 'ਅਗਸਤ',
-'september-gen' => 'ਸਿਤੰਬਰ',
+'september-gen' => 'ਸਤੰਬਰ',
 'october-gen' => 'ਅਕਤੂਬਰ',
 'november-gen' => 'ਨਵੰਬਰ',
 'december-gen' => 'ਦਿਸੰਬਰ',
@@ -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' => 'à¨\97ੱਲ-ਬਾਤ',
+'mytalk' => 'à¨\9aਰà¨\9aਾ',
 'anontalk' => 'ਇਸ IP ਲਈ ਗੱਲ-ਬਾਤ',
 'navigation' => 'ਰਹਿਨੁਮਾਈ',
 'and' => '&#32;ਅਤੇ',
@@ -282,28 +283,28 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'qbedit' => 'ਸੋਧ',
 'qbpageoptions' => 'ਇਹ ਪੰਨਾ',
 'qbmyoptions' => 'ਮੇਰੇ ਪੰਨੇ',
-'qbspecialpages' => 'à¨\96਼ਾਸ à¨ªà©°à¨¨à©\87',
-'faq' => 'à¨\85à¨\95ਸਰ à¨ªà©\81ੱà¨\9bà©\87 à¨\9cਾਣ à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨µà¨¾à¨²',
+'qbspecialpages' => 'ਖਾਸ ਪੰਨੇ',
+'faq' => 'ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲੇ ਸਵਾਲ',
 'faqpage' => 'Project:ਸਵਾਲ-ਜਵਾਬ',
 
 # Vector skin
-'vector-action-addsection' => 'ਮà¨\9c਼ਮà©\82ਨ ਜੋੜੋ',
-'vector-action-delete' => 'ਮਿਟਾਓ',
-'vector-action-move' => 'ਭà©\87à¨\9cੋ',
+'vector-action-addsection' => 'ਵਿਸ਼ਾ ਜੋੜੋ',
+'vector-action-delete' => 'ਹਟਾਓ',
+'vector-action-move' => 'ਸਥਾਨਾà¨\82ਤਰਣ à¨\95ਰੋ',
 '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' => 'ਬਦਲà©\8b',
+'edit' => 'ਸੰਪਾਦਨ',
 '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' => 'à¨\97ੱਲ-ਬਾਤ',
+'talkpagelinktext' => 'à¨\9aਰà¨\9aਾ',
 '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' => 'ਸà©\8bਧà©\8b',
-'editold' => 'ਸà©\8bਧà©\8b',
+'editsection' => 'ਸੰਪਾਦਨ',
+'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-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 à¨\9fà©\88à¨\82ਪਲà©\87à¨\9f à¨¬à¨¹à¨¿à¨¸ à¨¹à©\88 à¨\9cਿਸ à¨¦à¨¾ à¨\85à¨\95ਾਰ à¨¬à¨¹à©\81ਤ à¨µà©±à¨¡à¨¾ à¨¹à©\88। à¨\90ਸੀਆਂ ਬਹਿਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
-'post-expand-template-argument-category' => 'à¨\90ਸà©\87 à¨¸à¨«à¨¼à©\87 à¨\9cਿਨà©\8dਹਾà¨\82 à¨µà¨¿à¨\9a à¨«à¨¼à¨°à¨®ੇ ਦੇ ਸਁਘਟਕ ਛੁੱਟ ਗਏ ਹਨ ।',
+à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¤à©\87 à¨\98ੱà¨\9fà©\8b à¨\98ੱà¨\9f à¨\87ੱà¨\95 à¨\90ਸà©\80 à¨¸à¨¾à¨\82à¨\9aਾ à¨¬à¨¹à¨¿à¨¸ à¨¹à©\88 à¨\9cਿਸ à¨¦à¨¾ à¨\85à¨\95ਾਰ à¨¬à¨¹à©\81ਤ à¨µà©±à¨¡à¨¾ à¨¹à©\88। à¨\85à¨\9cਿਹੀਆਂ ਬਹਿਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
+'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' => 'ਦਿਸਣਯà©\8bà¨\97 à¨°à©\80ਵà©\80à¨\9cਨ',
 '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' => 'ਮੁੱਢਲੀ ਜਾਣਕਾਰੀ',
@@ -1122,10 +1123,10 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'group-bot' => 'ਬੋਟ',
 'group-all' => '(ਸਭ)',
 
-'group-user-member' => '{{GENDER:$1|ਵਰਤà©\8bà¨\82à¨\95ਾਰ}}',
+'group-user-member' => '{{GENDER:$1|ਮà©\88à¨\82ਬਰ}}',
 'group-bot-member' => 'ਬੋਟ',
 
-'grouppage-user' => '{{ns:project}}:ਵਰਤà©\8bà¨\82à¨\95ਾਰ',
+'grouppage-user' => '{{ns:project}}:ਮà©\88à¨\82ਬਰ',
 
 # Rights
 'right-read' => 'ਸਫ਼ੇ ਪੜ੍ਹਨਾ',
@@ -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-bot' => 'à¨\87ਹ à¨¸à©\8bਧ ਬੋਟ ਵਲੋਂ ਕੀਤੀ ਗਈ ਹੈ',
+'recentchanges-label-newpage' => 'à¨\87ਹ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨¨à©\87 à¨¨à¨µà¨¾à¨\82 à¨ªà©°à¨¨ਾ ਬਣਾਇਆ ਹੈ',
+'recentchanges-label-minor' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fਾ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ ਹੈ',
+'recentchanges-label-bot' => 'à¨\87ਹ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ ਬੋਟ ਵਲੋਂ ਕੀਤੀ ਗਈ ਹੈ',
 '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à¨\88à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\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' => 'ਲਾਗਇਨ ਨਹੀਂ ਹੋ',
@@ -1292,7 +1293,7 @@ to upload files.',
 'upload-curl-error28' => 'ਅੱਪਲੋਡ ਟਾਈਮ-ਆਉਟ',
 
 'license' => 'ਲਾਈਸੈਂਸਿੰਗ:',
-'license-header' => 'ਲਾà¨\88ਸà©\88à¨\82ਸ',
+'license-header' => 'ਲਸੰਸ',
 'nolicense' => 'ਕੁਝ ਵੀ ਚੁਣਿਆ',
 'license-nopreview' => '(ਝਲਕ ਉਪਲੱਬਧ ਨਹੀਂ)',
 'upload_source_file' => ' (ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ ਇੱਕ ਫਾਇਲ)',
@@ -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-ਸੂਚੀ',
+'watchlist' => 'ਮà©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80',
+'mywatchlist' => 'ਧਿà¨\86ਨਸੂਚੀ',
 '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 à¨¦à©\87 à¨\87à¨\96਼ਤਿਆਰ',
+'wlshowlast' => 'ਆਖਰੀ $1 ਦਿਨ $2 ਘੰਟੇ $3 ਵਖਾਓ',
+'watchlist-options' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨¦à©\87 à¨\87à¨\96ਤਿਆਰ',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'ਨਿਗ੍ਹਾ (ਵਾਚ) ਰੱਖੀ ਜਾ ਰਹੀ ਹੈ...',
@@ -1700,7 +1701,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'blanknamespace' => '(ਮੁੱਖ)',
 
 # Contributions
-'contributions' => 'ਵਰਤੋਂਕਾਰ ਯੋਗਦਾਨ',
+'contributions' => '{{GENDER:$1|ਮੈਂਬਰ}} ਯੋਗਦਾਨ',
 'contributions-title' => '$1 ਦੇ ਯੋਗਦਾਨ',
 'mycontris' => 'ਯੋਗਦਾਨ',
 'contribsub2' => '$1 ($2) ਲਈ',
@@ -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' => 'à¨\96਼ਾਸ à¨ªà©°à¨¨à©\87',
+'specialpages' => 'ਖਾਸ ਪੰਨੇ',
 'specialpages-group-login' => 'ਲਾਗਇਨ / ਖਾਤਾ ਬਣਾਓ',
 
 # Special:BlankPage
@@ -2107,7 +2108,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 # External image whitelist
 'external_image_whitelist' => " #ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ <pre>
 #ਹੇਠਾਂ ਓਹੀ ਐਕਸਪ੍ਰੈਸ਼ਨ ਪਾਓ (ਜਿਹੜਾ ਹਿੱਸਾ // ਦੇ ਵਿਚਾਲੇ ਹੈ)
-#ਇਹ ਬਾਹਰੀ ਤਸਵੀਰਾਂ ਦੇ URLs (ਹੌਟਲਿੰਕਡ) ਨਾਲ ਮਿਲਣਗੀਆਂ
+#ਇਹ ਬਾਹਰੀ ਤਸਵੀਰਾਂ ਦੇ URLs (ਹੌਟਲਿੰਕਡ) ਨਾਲ ਮਿਲਣਗੀਆਂ
 #ਜਿਹੜੀਆਂ ਮਿਲਣਗੀਆਂ ਓਹ ਬਤੌਰ ਤਸਵੀਰਾਂ ਦਿੱਸਣਗੀਆਂ ਨਹੀਂ ਤਾਂ ਤਸਵੀਰ ਦਾ ਸਿਰਫ਼ ਲਿੰਕ ਨਜ਼ਰ ਆਵੇਗਾ
 #'#' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੀਆਂ ਲਾਈਨਾਂ ਟਿੱਪਣੀਆਂ ਵਾਂਗ ਲਈਆਂ ਜਾਂਦੀਆਂ ਹਨ
 #ਇਹ ਕੇਸ-ਇਨਸੈਂਸਟਿਵ ਹੈ
index c97a0cc..0a073c9 100644 (file)
@@ -969,6 +969,9 @@ Os pouvez vir l'source",
 'tooltip-preferences-save' => 'Warder chés préférinches.',
 'tooltip-summary' => 'Intrer un tiot résumè',
 
+# Info page
+'pageinfo-toolboxlink' => "Informacions édseur l'page",
+
 # Browsing diffs
 'previousdiff' => '← Pu vieille édition',
 'nextdiff' => 'Nouvèle édichon →',
@@ -1044,8 +1047,20 @@ Chés eutes cans is s'ront muchés pèr défeut.
 
 # Special:SpecialPages
 'specialpages' => 'Paches éspéchiales',
+'specialpages-note' => '----
+* Paches éspéchiales conformes.
+* <span class="mw-specialpagerestricted">Paches éspéchiales réstrintes.</span>
+* <span class="mw-specialpagecached">Paches éspéchiales seulemint in muche (pétète des viuseries).</span>',
+'specialpages-group-maintenance' => "Rapports d'maintenanche",
+'specialpages-group-other' => 'Eutes paches éspéchiales',
+'specialpages-group-changes' => 'Darins canjemints pi gazètes',
+'specialpages-group-media' => "Rapports pi imports d'chés fichiés médias",
 'specialpages-group-users' => 'Uzeus pi leus droués',
+'specialpages-group-highuse' => 'Paches bougrémint implouéyées',
 'specialpages-group-pages' => "Lisses d'chés paches",
+'specialpages-group-pagetools' => 'Otis pour chés paches',
+'specialpages-group-wiki' => 'Donnèes pi otis dech Wiki',
+'specialpages-group-redirects' => 'Paches éspéchiales ardirigées',
 
 # Special:BlankPage
 'blankpage' => 'Blanke pache',
index f408505..0d3d28a 100644 (file)
@@ -81,7 +81,7 @@ $messages = array(
 'category_header' => 'Saide in de Kadegorie „$1“',
 'subcategories' => 'Unnerkadegorie',
 'category-media-header' => 'Medie in de Kadegorie „$1“',
-'hidden-categories' => '{{PLURAL:$1|Versteckelte Kadegorie|Versteckelte Kadegorie}}',
+'hidden-categories' => '{{PLURAL:$1|Verschdegelde Kadegorie|Verschdegelde Kadegorije}}',
 'category-subcat-count' => '{{PLURAL:$2|Die Kategorie hot die Unnerkategorie:|{{PLURAL:$1|Die Unnerkategori isch eni vun insgsamt $2 Unnerkategorie in derre Kategorie:|S werre $1 vun insgsamt $2 Unnerkategorie in derre Kategorie aagezeicht:}}}}',
 'category-article-count' => "{{PLURAL:$2|In derre Kadegorie hot's numme die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gebbt's in derre Kadegorie, vun insgsamt $2.}}",
 'listingcontinuesabbrev' => '(Forts.)',
@@ -153,12 +153,13 @@ $messages = array(
 'currentevents-url' => 'Project: Leschdi Eraigniss',
 'disclaimers' => 'Hafdungsausschluß',
 'disclaimerpage' => 'Project:Impressum',
-'edithelp' => 'Hilf fer s Bearwaide',
+'edithelp' => 'Hilf fers Bearwaide',
 'edithelppage' => 'Help:Ännere',
-'helppage' => 'Help:Inhalt',
+'helppage' => 'Help:Inhald',
 'mainpage' => 'Hääptsaid',
 'mainpage-description' => 'Startseid',
-'portal' => '{{SITENAME}}-Pordal',
+'portal' => '{{SITENAME}}-Bordal',
+'portal-url' => 'Project:Gmoinschafdsbordal',
 'privacy' => 'Dadeschuds',
 'privacypage' => 'Project:Daadeschutz',
 
@@ -187,7 +188,7 @@ $messages = array(
 'nstab-user' => 'Benutzersaid',
 'nstab-media' => 'Media',
 'nstab-special' => 'Spezialsaid',
-'nstab-project' => 'Pordal',
+'nstab-project' => 'Bordal',
 'nstab-image' => 'Datei',
 'nstab-mediawiki' => 'Mitdeelung',
 'nstab-template' => 'Vorlaach',
@@ -291,6 +292,9 @@ Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 'histfirst' => 'Ältschte',
 'histlast' => 'Naischte',
 
+# Revision feed
+'history-feed-item-nocomment' => '$1 om $2',
+
 # Revision deletion
 'rev-delundel' => 'zaich/versteckel',
 'revdelete-show-file-submit' => 'Ja',
@@ -422,10 +426,10 @@ Saide uff [[Special:Watchlist|Dainer Beowachdungslischt]] sin '''fett'''.",
 
 # File description page
 'file-anchor-link' => 'Datei',
-'filehist' => 'Dateigschicht',
+'filehist' => 'Dateigschischd',
 'filehist-help' => 'Drick uff e Zaidpunkt zum aazääche, wie s dort ausgsähne hot.',
 'filehist-revert' => 'zuriggsedze',
-'filehist-current' => 'aktuell',
+'filehist-current' => 'akduell',
 'filehist-datetime' => 'Zaidpungd',
 'filehist-thumb' => 'Vorschaubild',
 'filehist-thumbtext' => 'Vorschaubild fer Version vum $1',
@@ -485,7 +489,7 @@ Saide uff [[Special:Watchlist|Dainer Beowachdungslischt]] sin '''fett'''.",
 'newuserlogpage' => 'Naiaameldungs-Logbuch',
 
 # Special:ListGroupRights
-'listgrouprights-members' => '(Mitgliederlischt)',
+'listgrouprights-members' => '(Mitgliederlischd)',
 
 # E-mail user
 'emailuser' => 'E-Mail on den Benutzer',
@@ -569,11 +573,11 @@ Der Schutzstatus vun derre Said kannscht ännere, awwer des hot kää Aifluss uf
 'blanknamespace' => '(Haaptsaid)',
 
 # Contributions
-'contributions' => 'Was der gemacht hot',
+'contributions' => '{{GENDER:$1|Wasa gemachd hod}}',
 'contributions-title' => 'Benutzerbaidräch vun $1',
 'mycontris' => 'Baidräsch',
 'contribsub2' => 'Fer $1 ($2)',
-'uctop' => '(aktuell)',
+'uctop' => '(akduell)',
 'month' => 'un Monet (un frieher):',
 'year' => 'Ab em Johr (un frieher):',
 
@@ -658,7 +662,7 @@ Bitte duu se vun Hand zammefiehre.'''",
 'delete_and_move_confirm' => 'Ja, Said lesche',
 
 # Export
-'export' => 'Saide exportiere',
+'export' => 'Saide expordiere',
 'export-submit' => 'Seide exbordiere',
 
 # Thumbnails
@@ -672,7 +676,7 @@ Bitte duu se vun Hand zammefiehre.'''",
 'tooltip-pt-mytalk' => 'Dai Dischbedier-Said',
 'tooltip-pt-preferences' => 'Dai Aistellunge',
 'tooltip-pt-watchlist' => 'D Lischt vun Saide, die wu du beowachde dusch',
-'tooltip-pt-mycontris' => 'Lischt vun Daine Baidräch',
+'tooltip-pt-mycontris' => 'Lischd vun Daine Baidräch',
 'tooltip-pt-login' => 'Du kannscht Dich aamelde, awwer du muscht s nit',
 'tooltip-pt-logout' => 'Abmelde',
 'tooltip-ca-talk' => 'Iwwer d Inhaltssaid dischbediere',
@@ -706,7 +710,7 @@ Du kannscht awwer de Quelltext aagucke',
 'tooltip-t-emailuser' => 'Dem Benutzer e E-Mail schicke',
 'tooltip-t-upload' => 'Dateije nufflade',
 'tooltip-t-specialpages' => 'Lischd vun alle Schbezialsaide',
-'tooltip-t-print' => 'Druckversion vun derre Said',
+'tooltip-t-print' => 'Druggversion vun derre Said',
 'tooltip-t-permalink' => 'E dauerhafte Link zu derre Version vun de Said',
 'tooltip-ca-nstab-main' => 'D Inhaldssaid aagucke',
 'tooltip-ca-nstab-user' => 'D Benutzersaid aagucke',
@@ -721,9 +725,9 @@ Du kannscht awwer de Quelltext aagucke',
 'tooltip-diff' => 'Guck, welle Ännerunge Du im Text gmacht hoscht',
 'tooltip-compareselectedversions' => 'D Unnerschied zwische denne zwai ausgwehlte Versione aagucke',
 'tooltip-watch' => 'Die Said zu Dainer Beowachdunglischd zufieche',
-'tooltip-rollback' => '„Zericksetze“ machd alle Bearwaidunge vum letschte Bearwaider rickgängich',
+'tooltip-rollback' => '„Zericksetze“ machd alle Bearwaidunge vum ledschde Bearwaider rickgängich',
 'tooltip-undo' => '„Zerick“ macht numme die Ännerung rickgängich un zaicht d Vorschau aa.
-Du kannscht e Grund in dr Zammfassung aagewwe',
+Du kannschd e Grund in dr Zammfassung aagewwe',
 
 # Browsing diffs
 'previousdiff' => '← Ältere Bearwaidung',
index 0df47ff..7c1644b 100644 (file)
@@ -33,6 +33,7 @@
  * @author Mikołka
  * @author Nux
  * @author Odder
+ * @author Odie2
  * @author Olgak85
  * @author Przemub
  * @author Reedy
@@ -729,7 +730,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.
@@ -1447,9 +1448,9 @@ Tej operacji nie można później cofnąć.',
 'prefs-emailconfirm-label' => 'Potwierdzenie adresu e‐mail',
 'prefs-textboxsize' => 'Rozmiar okna edycji',
 'youremail' => 'Twój adres e‐mail',
-'username' => 'Nazwa użytkownika',
-'uid' => 'ID użytkownika',
-'prefs-memberingroups' => 'Należy do {{PLURAL:$1|grupy|grup}}',
+'username' => '{{GENDER:$1|Nazwa użytkownika}}:',
+'uid' => '{{GENDER:$1|Identyfikator użytkownika}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Członek}} {{PLURAL:$1|grupy|grup}}:',
 'prefs-registration' => 'Data rejestracji',
 'yourrealname' => 'Imię i nazwisko',
 'yourlanguage' => 'Język interfejsu',
@@ -2358,6 +2359,16 @@ Każda zmiana treści tej strony lub związanej z nią strony dyskusji zostanie
 'enotif_mailer' => 'Powiadomienie z {{GRAMMAR:D.lp|{{SITENAME}}}}',
 'enotif_reset' => 'Zaznacz wszystkie strony jako odwiedzone',
 'enotif_impersonal_salutation' => 'użytkownik {{GRAMMAR:D.lp|{{SITENAME}}}}',
+'enotif_subject_deleted' => 'Strona projektu {{SITENAME}} o nazwie $1 została usunięta przez {{gender:$2|$2}}',
+'enotif_subject_created' => 'Strona projektu {{SITENAME}} o nazwie $1 została stworzona przez {{gender:$2|$2}}',
+'enotif_subject_moved' => 'Strona projektu {{SITENAME}} o nazwie $1 została przeniesiona przez {{gender:$2|$2}}',
+'enotif_subject_restored' => 'Strona projektu {{SITENAME}} o nazwie $1 została przywrócona przez {{gender:$2|$2}}',
+'enotif_subject_changed' => 'Strona projektu {{SITENAME}} o nazwie $1 została zmieniona przez {{gender:$2|$2}}',
+'enotif_body_intro_deleted' => 'Strona projektu {{SITENAME}} o nazwie $1 została usunięta $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
+'enotif_body_intro_created' => 'Strona projektu {{SITENAME}} o nazwie $1 została stworzona $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
+'enotif_body_intro_moved' => 'Strona projektu {{SITENAME}} o nazwie $1 została przeniesiona $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
+'enotif_body_intro_restored' => 'Strona projektu {{SITENAME}} o nazwie $1 została przywrócona $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
+'enotif_body_intro_changed' => 'Strona projektu {{SITENAME}} o nazwie $1 została zmieniona $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
 'enotif_lastvisited' => 'Zobacz na stronie $1 wszystkie zmiany od Twojej ostatniej wizyty.',
 'enotif_lastdiff' => 'Zobacz na stronie $1 tę zmianę.',
 'enotif_anon_editor' => 'użytkownik anonimowy $1',
@@ -2425,7 +2436,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.
 
@@ -2570,7 +2581,7 @@ $1',
 'blanknamespace' => '(Główna)',
 
 # Contributions
-'contributions' => 'Wkład użytkownika',
+'contributions' => 'Wkład {{GENDER:$1|użytkownika|użytkowniczki}}',
 'contributions-title' => 'Wkład {{GENDER:$1|użytkownika|użytkowniczki}} $1',
 'mycontris' => 'Edycje',
 'contribsub2' => 'Dla użytkownika $1 ($2)',
@@ -3668,7 +3679,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 +3702,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
@@ -3982,8 +3993,8 @@ Grafiki są pokazywane w pełnej rozdzielczości. Inne typy plików są otwieran
 'compare-rev2' => 'Wersja 2',
 'compare-submit' => 'Porównaj',
 'compare-invalid-title' => 'Tytuł jest nieprawidłowy.',
-'compare-title-not-exists' => 'Tytuł, który podałeś nie istnieje.',
-'compare-revision-not-exists' => 'Zmiana, którą wybrałeś nie istnieje.',
+'compare-title-not-exists' => 'Podany tytuł nie istnieje.',
+'compare-revision-not-exists' => 'Wybrana wersja nie istnieje.',
 
 # Database error messages
 'dberr-header' => 'Ta wiki nie działa poprawnie',
@@ -4114,4 +4125,6 @@ W przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zosta
 'duration-centuries' => '$1 {{PLURAL:$1|stulecie|stulecia|stuleci}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tysiąclecie|tysiąclecia|tysiącleci}}',
 
+# Unknown messages
+'svg-long-error' => 'Nieprawidłowy plik SVG:$1',
 );
index 0358958..b237fb8 100644 (file)
@@ -3670,16 +3670,17 @@ 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-again' => 'Preuva a speté cheich minute e a torna carié.',
-'dberr-info' => '(As peul pa contaté ël database server: $1)',
+'dberr-problems' => "An dëspias!
+Ës sit a l'ha dle dificoltà técniche.",
+'dberr-again' => "Ch'a speta chèiche minute e ch'a preuva torna a carié.",
+'dberr-info' => '(Conession al servent ëd base ëd dàit impossìbil: $1)',
 'dberr-usegoogle' => 'It peule prové a serché con Google ant ël mentre.',
 'dberr-outofdate' => 'Nòta che la soa indicisassion dij nòst contnù a podrìa nen esse agiornà.',
 'dberr-cachederror' => 'Sta sì a l\'ìé na còpia an "cache" ëd la pàgina ciamà, e a peul esse pa agiornà.',
index 61e5569..f08cac1 100644 (file)
@@ -719,6 +719,9 @@ 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:',
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 38e1356..c8428d6 100644 (file)
@@ -59,6 +59,7 @@
  * @author Kizito
  * @author Klenje
  * @author Klutzy
+ * @author Krenair
  * @author Krinkle
  * @author Ktkaushik
  * @author Kwj2772
@@ -1576,9 +1577,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
@@ -1662,7 +1667,7 @@ Used in [[Special:Preferences]], tab "Watchlist". The display options refer to:
 Parameters:
 * $1 - the number of items in the list following the message, for PLURAL.
 * $2 - the user name, for GENDER.',
-'userrights-groupsmember-auto' => 'Used when editing user groups in [[Special:Userrights]]. The messsage is followed by a list of group names.
+'userrights-groupsmember-auto' => 'Used when editing user groups in [[Special:Userrights]]. The message is followed by a list of group names.
 "Implicit" is for groups that the user was automatically added to (such as "autoconfirmed"); cf. {{msg-mw|userrights-groupsmember}}
 
 Parameters
@@ -1682,11 +1687,11 @@ Parameters:
 See http://meta.wikimedia.org/w/index.php?title=Special%3ALog&type=rights for a usage of local databases: username@barwiki',
 'userrights-nologin' => "Error displayed on [[Special:UserRights]] when you aren't logged in. If you are logged in, but don't have the correct permission, you see {{msg|userrights-notallowed|pl=yes}}.",
 'userrights-notallowed' => "Error displayed on [[Special:UserRights]] when you don't have the permission.",
-'userrights-changeable-col' => 'Used when editing user groups in [[Special:Userrights]]. The messsage is the head of a column of group assignements.
+'userrights-changeable-col' => 'Used when editing user groups in [[Special:Userrights]]. The message is the head of a column of group assignements.
 
 Parameters:
 * $1 - optional, for PLURAL use, the number of items in the column following the message. Avoid PLURAL, if your language can do without.',
-'userrights-unchangeable-col' => 'Used when editing user groups in [[Special:Userrights]]. The messsage is the head of a column of group assignements.
+'userrights-unchangeable-col' => 'Used when editing user groups in [[Special:Userrights]]. The message is the head of a column of group assignements.
 
 Parameters:
 * $1 - optional, for PLURAL use, the number of items in the column following the message. Avoid PLURAL, if your language allows that.',
@@ -2802,10 +2807,12 @@ Similar to {{msg-mw|rcnote}} which is used on [[Special:RecentChanges]].
 **{{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
-**{{msg-mw|enotif lastdiff}}
-**a newline
-**{{msg-mw|enotif lastvisited}}
+*$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:
@@ -3010,7 +3017,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 63e61e1..03d4d70 100644 (file)
@@ -1557,9 +1557,9 @@ $1",
 'prefs-emailconfirm-label' => 'Подтверждение электронной почты:',
 'prefs-textboxsize' => 'Размер окна редактирования',
 'youremail' => 'Электронная почта:',
-'username' => 'Имя учётной записи:',
-'uid' => 'Ð\98денÑ\82иÑ\84икаÑ\82оÑ\80 Ñ\83Ñ\87аÑ\81Ñ\82ника:',
-'prefs-memberingroups' => 'Член {{PLURAL:$1|группы|групп}}:',
+'username' => '{{GENDER:$1|Имя участника|Имя участницы}}:',
+'uid' => 'Ð\9aод {{GENDER:$1|Ñ\83Ñ\87аÑ\81Ñ\82ника|Ñ\83Ñ\87аÑ\81Ñ\82ниÑ\86Ñ\8b}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Член|Член}} {{PLURAL:$1|группы|групп}}:',
 'prefs-registration' => 'Время регистрации:',
 'yourrealname' => 'Настоящее имя:',
 'yourlanguage' => 'Язык интерфейса:',
index fb40c51..32ccd50 100644 (file)
@@ -1246,9 +1246,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-registration' => 'Час реґістрації:',
 'yourrealname' => 'Правдиве імя:',
 'yourlanguage' => 'Язык:',
@@ -2143,30 +2143,28 @@ $1',
 'enotif_lastvisited' => 'Видьте $1 про список вшыткых змін од минулой навщівы.',
 'enotif_lastdiff' => 'Тоту зміну видьте на $1',
 'enotif_anon_editor' => 'анонімный хоснователь $1',
-'enotif_body' => 'Ð\94оÑ\80огый хоснователю $WATCHINGUSERNAME,
+'enotif_body' => 'ЧеÑ\81Ñ\82ованый хоснователю $WATCHINGUSERNAME,
 
-У $PAGEEDITDATE была хоснователём $PAGEEDITOR $CHANGEDORCREATED сторінка $PAGETITLE, смотьте актуалну верзію на $PAGETITLE_URL .
+$PAGEINTRO $NEWPAGE
 
-$NEWPAGE
-Куртый опис змін: $PAGESUMMARY $PAGEMINOREDIT
+Згорнутя едітованя: $PAGESUMMARY $PAGEMINOREDIT
 
-Хоснователя, котрый учінив зміну, можете контактовати:
+Хоснователя, котрый зміну учінив, можете контактовати:
 імейлом: $PAGEEDITOR_EMAIL
 на вікі: $PAGEEDITOR_WIKI
 
-Покы сторінку не навщівите, не будуть вам посыланы далшы повідомлїя о змінах той сторінкы.
-Припадно собі можете вынуловати флачы у своїм списку слїдованых сторінок.
+Покы сторінку не навщівите, не будуть вам заганяны далшы повідомлїня о змінах той сторінкы. Тыж собі можете вынуловати признакы у своїм списку слїдованых сторінок.
 
-       Ð\9fоздÑ\80авÑ\83Ñ\94 Ð²Ð°Ñ\88 Ð¿Ð¾Ñ\81Ñ\8bлаÑ\87 Ð¿Ð¾Ð²Ñ\96домлÑ\97нÑ\8c {{grammar:2sg|{{SITENAME}}}}
+       Ð\9fоздÑ\80авÑ\83Ñ\94 Ð²Ð°Ñ\81 Ð²Ð°Ñ\88 Ð¿Ð¾Ñ\81Ñ\8bлаÑ\87 Ð³Ð¾Ð»Ð¾Ñ\88Ñ\96нÑ\8f {{grammar:2sg|{{SITENAME}}}}
 
 --
\97мÑ\96ниÑ\82и Ð½Ð°Ñ\81Ñ\82авлÑ\97ня імейловых повідомлїнь можете на
\97мÑ\96ниÑ\82и Ð½Ð°Ñ\88Ñ\82елÑ\91ваня імейловых повідомлїнь можете на
 {{canonicalurl:{{#special:Preferences}}}}
 
\9dаÑ\81Ñ\82авлÑ\97ня слїдованых сторінок можете змінити на
\9dаÑ\88Ñ\82елÑ\91ваня слїдованых сторінок можете змінити на
 {{canonicalurl:Special:Watchlist/edit}}
 
-Сторінку можете із своїх слїдованых вылучіти на
+Сторінку можете зо своїх слїдованых вышмарити на
 $UNWATCHURL
 
 Порада і контакт:
@@ -2873,10 +2871,15 @@ $1',
 'pageinfo-recent-authors' => 'Кількость авторів за остатнїй час',
 'pageinfo-magic-words' => '{{PLURAL:$1|Маґічне слово|Маґічны слова}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрыта катеґорія|Скрыты катеґорії}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$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' => 'Означіти як перевірене',
@@ -2888,6 +2891,8 @@ $1',
 'markedaspatrollederror' => 'Не дасть ся означіти як перевірене',
 'markedaspatrollederrortext' => 'Мусите зволити ревізію, котра має быти означена як перевірена.',
 'markedaspatrollederror-noautopatrol' => 'Не маєте дозволене означовати властны едітованя як перевірены.',
+'markedaspatrollednotify' => 'Гевся зміна сторінкы $1 была означена як одпратролована.',
+'markedaspatrollederrornotify' => 'Не вдало ся поставити позначку про патролёваня',
 
 # Patrol log
 'patrol-log-page' => 'Книга перевіреных едітовань',
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 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 6ddfc00..879e877 100644 (file)
@@ -1462,9 +1462,9 @@ Detta kan inte återställas.',
 'prefs-emailconfirm-label' => 'E-postbekräftelse:',
 'prefs-textboxsize' => 'Storlek på redigeringsrutan',
 'youremail' => 'E-post:',
-'username' => 'Användarnamn:',
-'uid' => 'Användar-ID:',
-'prefs-memberingroups' => 'Medlem av {{PLURAL:$1|gruppen|grupperna}}:',
+'username' => '{{GENDER:$1|Användarnamn}}:',
+'uid' => '{{GENDER:$1|Användar}}-ID:',
+'prefs-memberingroups' => '{{GENDER:$2|Medlem}} av {{PLURAL:$1|gruppen|grupperna}}:',
 'prefs-registration' => 'Registreringstid:',
 'yourrealname' => 'Riktigt namn:',
 'yourlanguage' => 'Språk:',
index c56158e..9e522c2 100644 (file)
@@ -813,7 +813,7 @@ $messages = array(
 'blanknamespace' => '(Әсос)',
 
 # Contributions
-'contributions' => 'Иштирокәкә гәнҹ',
+'contributions' => '{{GENDER:$1|Иштирокәкә}} гәнҹ',
 'contributions-title' => 'Иштирокәкә гәнҹ $1',
 'mycontris' => 'Гәнҹ',
 'contribsub2' => 'Гәнҹ $1 ($2)',
index 25bdf15..e86304f 100644 (file)
@@ -1513,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',
index cd0dc6c..fcf652e 100644 (file)
@@ -283,7 +283,7 @@ $messages = array(
 'cancel' => 'Lassa star',
 'moredotdotdot' => 'Altro...',
 'mypage' => 'La me pagina',
-'mytalk' => 'le me discussion',
+'mytalk' => 'Discussion',
 'anontalk' => 'Discusion par sto IP',
 'navigation' => 'Navigasion',
 'and' => '&#32;e',
@@ -315,6 +315,7 @@ $messages = array(
 'namespaces' => 'Namespace',
 'variants' => 'Varianse',
 
+'navigation-heading' => 'Menù de navigassion',
 'errorpagetitle' => 'Erore',
 'returnto' => 'Torna a $1.',
 'tagline' => 'Da {{SITENAME}}',
@@ -411,6 +412,10 @@ $1',
 'youhavenewmessages' => 'Te ghè $1 ($2).',
 'newmessageslink' => 'dei mesagi novi',
 'newmessagesdifflink' => 'ultimo canbiamento',
+'youhavenewmessagesfromusers' => "Te ghè $1 da {{PLURAL:$3|n'altro utente|$3 utenti}} ($2).",
+'youhavenewmessagesmanyusers' => 'Te ghè $1 da vari utenti ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|un messagio novo|dei messagi novi}}',
+'newmessagesdifflinkplural' => '$1 {{PLURAL:$1|ultimo canbiamento|ultimi canbiamenti}}',
 'youhavenewmessagesmulti' => 'Te ghè messagi novi su $1',
 'editsection' => 'canbia',
 'editold' => 'canbia',
@@ -537,6 +542,7 @@ $2',
 L\'aministradore che ło ga blocà ga fornìo sta spiegasion: "$3".',
 'invalidtitle-knownnamespace' => 'Titoło no vałido co namespace "$2" e testo "$3"',
 'invalidtitle-unknownnamespace' => 'Titoło no vałido co namespace sconosùo "$1" e testo "$2"',
+'exception-nologin' => 'Acesso mia efetuà',
 
 # Virus scanner
 'virus-badscanner' => 'Erore de configurasion: antivirus sconossuo: "$1"',
@@ -548,6 +554,7 @@ L\'aministradore che ło ga blocà ga fornìo sta spiegasion: "$3".',
 
 Te poli 'ndar vanti doparando {{SITENAME}} come utente anonimo o se nò <span class='plainlinks'>[$1 entrar da novo]</span>, col stesso nome utente o uno difarente.
 Ocio che serte pagine podarìa èssar che ti 'e vedi come se te fussi 'ncora drento col to nome de prima, fin che no te neti la ''cache'' del to browser.",
+'welcomeuser' => 'Benvegnù, $1!',
 'yourname' => 'Nome utente:',
 'yourpassword' => 'Password:',
 'yourpasswordagain' => 'De novo la password:',
@@ -791,8 +798,8 @@ Se te sì un utente anonimo e te ghè ricevù dei messagi che te secondo ti i ge
 Te pol [[Special:Search/{{PAGENAME}}|sercar el titolo de sta pagina]] in altre pagine,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sercar in tei registri ligà a sta pagina] o se nò [{{fullurl:{{FULLPAGENAME}}|action=edit}} canbiar la pagina]</span>.',
 'noarticletext-nopermission' => 'In sto momento no ghe xe nissun testo su sta pagina.
-Te pol [[Special:Search/{{PAGENAME}}|sercar el titolo de sta pagina]] in altre pagine,
-o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sercar in tei registri ligà a sta pagina]</span>.',
+Te pol [[Special:Search/{{PAGENAME}}|sercar sto titolo de pagina]] in altre pagine,
+o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sercar in tei registri ligà a sta pagina]</span>, ma no te ghè el parmesso de crear sta pagina.',
 'userpage-userdoesnotexist' => 'L\'account "<nowiki>$1</nowiki>" no\'l corisponde mìa a un utente registrà. Verifica se te voli dal bon crear o modificar sta pagina.',
 'userpage-userdoesnotexist-view' => 'L\'utensa "$1" no la xe gnancora registrà.',
 'blocked-notice-logextract' => "Sto utente xè atualmente blocà.
@@ -890,6 +897,12 @@ Pararìa che la sìpia stà scancelà.',
 La esiste de zà.',
 'defaultmessagetext' => 'Testo predefinìo',
 
+# Content models
+'content-model-wikitext' => 'wikitesto',
+'content-model-text' => 'testo normal',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
+
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Ocio: Sta pagina la contien dele chiamate de funzion al parser massa onerose.
 
@@ -1166,7 +1179,7 @@ Prova a métarghe \"all:\" davanti al testo che te serchi par vardar in tuti i n
 
 # Preferences page
 'preferences' => 'Prefarense',
-'mypreferences' => 'prefarense',
+'mypreferences' => 'Prefarense',
 'prefs-edits' => 'Nùmaro de modifiche:',
 'prefsnologin' => 'No te ghè eseguìo el login',
 'prefsnologintext' => 'Te ghè da aver eseguìo el <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} login]</span> par poder personalixare le to preferense.',
@@ -1922,6 +1935,10 @@ Te podi restrénzar i criteri de riçerca selezionando el tipo de registro, el n
 'allpagesprefix' => 'Mostra le pagine che taca con:',
 'allpagesbadtitle' => "El titolo indicà par la pagina no'l xe mìa valido o el contien prefissi interlengua o interwiki. El podarìa inoltre contegner uno o più caràteri che no se pole doparar nei titoli.",
 'allpages-bad-ns' => 'El namespace "$1" no l\'esiste mìa su {{SITENAME}}.',
+'allpages-hide-redirects' => 'Scondi rimandi',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => "Varda l'ultima.",
 
 # Special:Categories
 'categories' => 'Categorie',
@@ -1990,6 +2007,8 @@ Se pol consultar anca dele altre [[{{MediaWiki:Listgrouprights-helppage}}|inform
 'mailnologin' => 'Nissun indirizo a cui mandarghe el messagio',
 'mailnologintext' => 'Par inviare messagi e-mail ad altri utenti bisogna [[Special:UserLogin|acedere al sito]] e aver registrà un indirisso vałido ne łe proprie [[Special:Preferences|preferense]].',
 'emailuser' => 'Scrìveghe a sto utente',
+'emailuser-title-target' => 'Scrivi na e-mail a {{GENDER:$1|sto|sta}} utente',
+'emailuser-title-notarget' => "Scrivi na e-mail a l'utente",
 'emailpage' => "Scrivi na e-mail a l'utente",
 'emailpagetext' => 'Te podi usar el modulo chi soto par mandare na e-mail a sto utente.
 La e-mail che te ghè indicà ne le [[Special:Preferences|to preferense]] la vegnarà fora nel canpo "Da" de la mail, così che el destinatario el possa rispóndarte a ti diretamente.',
@@ -2001,6 +2020,8 @@ La e-mail che te ghè indicà ne le [[Special:Preferences|to preferense]] la veg
 'noemailtext' => "Sto utente no'l gà indicà nissuna casela e-mail valida.",
 'nowikiemailtitle' => 'Posta elétronega mia parmessa',
 'nowikiemailtext' => 'Sto utente el ga sielto de no ricévar e-mail da i altri utenti.',
+'emailusername' => 'Nome utente:',
+'emailusernamesubmit' => 'Manda',
 'email-legend' => "Màndeghe na e-mail a n'altro utente de {{SITENAME}}",
 'emailfrom' => 'Da:',
 'emailto' => 'A:',
@@ -2019,12 +2040,13 @@ La e-mail che te ghè indicà ne le [[Special:Preferences|to preferense]] la veg
 
 # Watchlist
 'watchlist' => "Pagine tegnùe d'ocio",
-'mywatchlist' => "pagine tegnùe d'ocio",
+'mywatchlist' => "Pagine tegnùe d'ocio",
 'watchlistfor2' => 'De $1 $2',
 'nowatchlist' => "No te ghè indicà pagine da tegner d'ocio.",
 'watchlistanontext' => "Per vardar e modifegar l'ełenco de i osservati speciałi bisogna $1.",
 'watchnologin' => 'Acesso mia efetuà',
 'watchnologintext' => 'Te ghè prima da far el [[Special:UserLogin|login]] par modificar la to lista de osservati speciali.',
+'addwatch' => "Tien d'ocio",
 'addedwatchtext' => "La pagina \"[[:\$1]]\" la xe stà zontà a la to [[Special:Watchlist|lista de pagine da tegner d'ocio]].
 I futuri canbiamenti a sta pagina e a la so pagina de discussion i se vedarà fora qua, e la pagina la se vedarà in '''grosso''' sui [[Special:RecentChanges|ultimi canbiamenti]] par tegnerla d'ocio mejo.",
 'removedwatchtext' => 'La pagina "[[:$1]]" la xe stà cavà da le to [[Special:Watchlist|pagine tegnùe de ocio]].',
@@ -2247,9 +2269,9 @@ $1',
 'blanknamespace' => '(Prinsipale)',
 
 # Contributions
-'contributions' => 'Contributi utente',
+'contributions' => 'Contributi {{GENDER:$1|utente}}',
 'contributions-title' => 'Contributi de $1',
-'mycontris' => 'i me contributi',
+'mycontris' => 'Contributi',
 'contribsub2' => 'Par $1 ($2)',
 'nocontribs' => 'No xe stà catà nissuna modifica che vaga ben par sti critèri.',
 'uctop' => '(ultima)',
@@ -2288,7 +2310,7 @@ $1',
 'whatlinkshere-hideredirs' => '$1 i rimandi',
 'whatlinkshere-hidetrans' => '$1 inclusion',
 'whatlinkshere-hidelinks' => '$1 colegamenti',
-'whatlinkshere-hideimages' => '$1 colegamenti a file',
+'whatlinkshere-hideimages' => '$1 colegamenti da file',
 'whatlinkshere-filters' => 'Filtri',
 
 # Block/unblock
@@ -2359,6 +2381,7 @@ Varda [[Special:BlockList|lista IP blocadi]] par vedare tuti i blochi.',
 'unblocklink' => 'sbloca',
 'change-blocklink' => 'canbia bloco',
 'contribslink' => 'contributi',
+'emaillink' => 'mandar email',
 'autoblocker' => 'Bloccà automaticamente parché el to indirisso IP el xè stà doparà de recente da "[[User:$1|$1]]". La motivassion del bloco de $1 la xe: "$2"',
 'blocklogpage' => 'Blochi',
 'blocklog-showlog' => 'Sto utente el xe stà zà blocà tenpo fa.
@@ -2697,7 +2720,42 @@ Questo xe probabilmente dovùo a la presenza de un colegamento a un sito foresto
 
 # Info page
 'pageinfo-title' => 'Informasion par "$1"',
-'pageinfo-header-edits' => 'Modìfeghe',
+'pageinfo-header-basic' => 'Informassion de base',
+'pageinfo-header-edits' => 'Storia dei canbiamenti',
+'pageinfo-header-restrictions' => 'Protession de la pagina',
+'pageinfo-header-properties' => 'Proprietà de la pagina',
+'pageinfo-display-title' => 'Titolo mostrà',
+'pageinfo-default-sort' => 'Ciave de ordinamento predefinìo',
+'pageinfo-length' => 'Longhessa de la pagina (in byte)',
+'pageinfo-article-id' => 'ID de la pagina',
+'pageinfo-language' => 'Lengua del contenuto de la pagina',
+'pageinfo-robot-policy' => 'Stato par i motori de riserca',
+'pageinfo-robot-index' => 'Indicizabile',
+'pageinfo-robot-noindex' => 'Mia indicizabile',
+'pageinfo-views' => 'Nùmaro de visite',
+'pageinfo-watchers' => "Nùmaro de utenti che tien d'ocio sta pagina",
+'pageinfo-redirects-name' => 'Rimandi verso sta pagina',
+'pageinfo-subpages-name' => 'Sotopagine de sta pagina',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|rimandi}}; $3 {{PLURAL:$3|no rimandi}})',
+'pageinfo-firstuser' => 'Creador de sta pagina',
+'pageinfo-firsttime' => 'Data de creassion de la pagina',
+'pageinfo-lastuser' => 'Ultimo contribudor',
+'pageinfo-lasttime' => 'Data de ultima modifica',
+'pageinfo-edits' => 'Nùmaro totale de canbiamenti',
+'pageinfo-authors' => 'Nùmaro totale de autori difarenti',
+'pageinfo-recent-edits' => 'Nùmaro de canbiamenti recenti (in tei ultimi $1)',
+'pageinfo-recent-authors' => 'Nùmaro de autori difarenti recenti',
+'pageinfo-magic-words' => '{{PLURAL:$1|Parola magica|Parole magiche}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria sconta|Categorie sconte}} ($1)',
+'pageinfo-templates' => 'Template {{PLURAL:$1|incluso|inclusi}}  ($1)',
+'pageinfo-toolboxlink' => 'Informassion su sta pagina',
+'pageinfo-redirectsto' => 'La rimanda a',
+'pageinfo-redirectsto-info' => 'info',
+'pageinfo-contentpage' => 'Contà come na pagina de contenuto',
+'pageinfo-contentpage-yes' => 'Sì',
+'pageinfo-protect-cascading' => 'Protession ricorsiva da qua',
+'pageinfo-protect-cascading-yes' => 'Sì',
+'pageinfo-protect-cascading-from' => 'Protession ricorsiva eredità da',
 
 # Patrolling
 'markaspatrolleddiff' => 'Segna la modifica come verificà',
@@ -2741,6 +2799,7 @@ La so esecuzion la podarìa danegiar el to computer.",
 'file-nohires' => 'No ghe xe version a risolussion pì granda.',
 'svg-long-desc' => 'file en formato SVG, dimension nominałi $1 × $2 pixel, dimension del file: $3',
 'show-big-image' => 'Version ad alta risołusion',
+'show-big-image-size' => '$1 × $2 pixel',
 'file-info-gif-looped' => 'ripetù',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|frame|frame}}',
 'file-info-png-looped' => 'ripetù',
@@ -2759,6 +2818,14 @@ La so esecuzion la podarìa danegiar el to computer.",
 'bydate' => 'data',
 'sp-newimages-showfrom' => 'Mostra i file piassè novi a partire da le ore $2 del $1',
 
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|un secondo|$1 secondi}}',
+'minutes' => '{{PLURAL:$1|un minuto|$1 minuti}}',
+'hours' => "{{PLURAL:$1|un'ora|$1 ore}}",
+'days' => '{{PLURAL:$1|un zorno|$1 zorni}}',
+'ago' => '$1 fa',
+'just-now' => 'giusto desso',
+
 # Bad image list
 'bad_image_list' => 'El formato xe sto qua:
 
@@ -3140,6 +3207,10 @@ Par piaser, conferma che te vołi dal bon ricrear sta voxe.",
 'confirm-purge-top' => 'Vóto scancełar ła cache in sta pàxena?',
 'confirm-purge-bottom' => 'Netar la cache de na pàxena parmete de far védar la so version piassè ajornà.',
 
+# action=watch/unwatch
+'confirm-watch-button' => 'Va ben',
+'confirm-unwatch-button' => 'Va ben',
+
 # Multipage image navigation
 'imgmultipageprev' => '← la pagina prima',
 'imgmultipagenext' => 'la pagina dopo →',
@@ -3237,6 +3308,7 @@ Insieme co sto programa te dovaressi 'ver ricevùo na copia de la Licensa Public
 'version-software' => 'Software instalà',
 'version-software-product' => 'Prodoto',
 'version-software-version' => 'Version',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Percorso de un file',
@@ -3366,8 +3438,25 @@ Le imagini le vien mostrà a la risoluzion pi granda che se pol, par i altri tip
 'logentry-newusers-autocreate' => "L'utensa $1 xè stà creà automategamente",
 'newuserlog-byemail' => 'password spedìa par e-mail',
 
+# Feedback
+'feedback-subject' => 'Ogeto:',
+'feedback-message' => 'Messajo:',
+'feedback-cancel' => 'Anuła',
+'feedback-close' => 'Fato',
+
 # Search suggestions
 'searchsuggest-search' => 'Serca',
 'searchsuggest-containing' => 'che contien...',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|secondo|secondi}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuto|minuti}}',
+'duration-hours' => '($1 {{PLURAL:$1|ora|ore}})',
+'duration-days' => '($1 {{PLURAL:$1|zorno|zorni}})',
+'duration-weeks' => '$1 {{PLURAL:$1|stimana|stimane}}',
+'duration-years' => '$1 {{PLURAL:$1|ano|ani}}',
+'duration-decades' => '$1 {{PLURAL:$1|decenio|deceni}}',
+'duration-centuries' => '$1 {{PLURAL:$1|secolo|secoli}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milenio|mileni}}',
+
 );
index a6b9a44..d6f36c7 100644 (file)
@@ -631,7 +631,7 @@ Cơ sở dữ liệu báo lỗi “$3: $4”',
 'enterlockreason' => 'Nêu lý do khóa, cùng với thời hạn khóa',
 'readonlytext' => 'Cơ sở dữ liệu hiện đã bị khóa không nhận trang mới và các điều chỉnh khác, có lẽ để bảo trì cơ sở dữ liệu định kỳ, một thời gian ngắn nữa nó sẽ trở lại bình thường.
 
-Bảo quản viên khóa nó đã đưa ra lời giải thích sau: $1',
+Quản lý viên khóa nó đã đưa ra lời giải thích sau: $1',
 'missing-article' => 'Cơ sở dữ liệu không tìm thấy văn bản của trang lẽ ra phải có, trang      Normal   0               false   false   false      EN-US   X-NONE   X-NONE                                                     MicrosoftInternetExplorer4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     “$1” $2.
 
 Điều này thường xảy ra do nhấn vào liên kết khác biệt phiên bản đã quá lâu hoặc liên kết lịch sử của một trang đã bị xóa.
@@ -1017,7 +1017,7 @@ Bạn phải đảm bảo với chúng tôi rằng chính bạn là người vi
 Không thể lưu trang.",
 'readonlywarning' => "'''CẢNH BÁO: Cơ sở dữ liệu đã bị khóa để bảo dưỡng, do đó bạn không thể lưu các sửa đổi của mình. Bạn nên cắt-dán đoạn bạn vừa sửa vào một tập tin và lưu nó lại để sửa đổi sau này.'''
 
-Bảo quản viên khi khóa dữ liệu đã đưa ra lý do: $1",
+Quản lý viên khi khóa dữ liệu đã đưa ra lý do: $1",
 'protectedpagewarning' => "'''Cảnh báo: Trang này đã bị khóa và chỉ có các thành viên có quyền quản lý mới có thể sửa được.'''
 Thông tin mới nhất trong nhật trình được ghi dưới đây để tiện theo dõi:",
 'semiprotectedpagewarning' => "'''Lưu ý:''' Trang này đã bị khóa nên chỉ có các thành viên có tài khoản mới có thể sửa đổi được.
@@ -1430,9 +1430,9 @@ Không có thể lùi lại tác động này.',
 'prefs-emailconfirm-label' => 'Xác nhận thư điện tử:',
 'prefs-textboxsize' => 'Kích cỡ hộp sửa đổi',
 'youremail' => 'Thư điện tử:',
-'username' => 'Tên người dùng:',
-'uid' => 'Số thứ tự thành viên:',
-'prefs-memberingroups' => 'Thành viên của {{PLURAL:$1|nhóm|nhóm}}:',
+'username' => '{{GENDER:$1}}Tên người dùng:',
+'uid' => '{{GENDER:$1}}Số thứ tự thành viên:',
+'prefs-memberingroups' => '{{GENDER:$2}}Thành viên của {{PLURAL:$1|nhóm|các nhóm}}:',
 'prefs-registration' => 'Lúc mở tài khoản:',
 'yourrealname' => 'Tên thật:',
 'yourlanguage' => 'Ngôn ngữ:',
@@ -3069,12 +3069,12 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 # Attribution
 'anonymous' => '{{PLURAL:$1|Người dùng|Người dùng}} vô danh của {{SITENAME}}',
 'siteuser' => 'thành viên $1 của {{SITENAME}}',
-'anonuser' => 'người vô danh $1 tại {{SITENAME}}',
+'anonuser' => 'người dùng vô danh $1 tại {{SITENAME}}',
 'lastmodifiedatby' => 'Trang này được $3 cập nhật lần cuối lúc $2 $1.',
 'othercontribs' => 'Dựa trên công trình của $1.',
 'others' => 'những người khác',
 'siteusers' => '{{PLURAL:$2|Thành viên|Các thành viên}} $1 của {{SITENAME}}',
-'anonusers' => '{{plural:$2|người|những người}} vô danh $1 tại {{SITENAME}}',
+'anonusers' => '{{PLURAL:$2|người dùng|những người dùng}} vô danh $1 tại {{SITENAME}}',
 'creditspage' => 'Trang ghi nhận đóng góp',
 'nocredits' => 'Không có thông tin ghi nhận đóng góp cho trang này.',
 
index 0e509a9..1219ee7 100644 (file)
@@ -2880,6 +2880,7 @@ $1',
 'spamprotectiontitle' => 'ספעם באשיצונג פילטער',
 'spambot_username' => 'מעדיעוויקי ספאם פוצן',
 'spam_reverting' => 'צוריקגעשטעלט צו דער לעצטער ווערסיע אן לינקען צו $1',
+'spam_deleting' => 'אלע רעוויזיעס האבן לינקען צו $1, אויסמעקן',
 
 # Info page
 'pageinfo-title' => 'אינפֿאָרמאַציע פֿאַר "$1"',
index b3fee05..804fe44 100644 (file)
@@ -1419,8 +1419,8 @@ $1",
 'prefs-emailconfirm-label' => '电子邮件确认:',
 'prefs-textboxsize' => '编辑框大小',
 'youremail' => '电子邮件:',
-'username' => '用户名:',
-'uid' => '用户ID:',
+'username' => '{{GENDER:$1|用户名}}:',
+'uid' => '{{GENDER:$1|用户}}ID:',
 'prefs-memberingroups' => '{{PLURAL:$1|用户组}}:',
 'prefs-registration' => '注册时间:',
 'yourrealname' => '真实姓名:',
@@ -2115,7 +2115,7 @@ $1',
 # Book sources
 'booksources' => '网络书源',
 'booksources-search-legend' => '搜索网络书源',
-'booksources-isbn' => '国际标准书号:',
+'booksources-isbn' => 'ISBN:',
 'booksources-go' => '提交',
 'booksources-text' => '以下是一些网络书店的链接列表,其中可能有您要找的书籍的更多信息:',
 'booksources-invalid-isbn' => '提供的ISBN号码并不正确,请检查原始复制来源号码是否有误。',
@@ -3785,6 +3785,8 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'version-entrypoints' => '接入点URL',
 'version-entrypoints-header-entrypoint' => '接入点',
 'version-entrypoints-header-url' => 'URL',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath 条目路径]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath 脚本路径]',
 
 # Special:FilePath
 'filepath' => '文件路径',
index 2faea22..3a18b4a 100644 (file)
@@ -1321,9 +1321,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|群組}}{{GENDER:$2|成員}}:',
 'prefs-registration' => '註冊時間:',
 'yourrealname' => '真實姓名:',
 'yourlanguage' => '語言:',
@@ -2724,7 +2724,7 @@ $1被封禁的理由是“$2”',
 
 此外{{GENDER:|你|妳|你}}還可以利用連結匯出檔案,例如{{GENDER:|你|妳|你}}可以使用[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]匯出「[[{{MediaWiki:Mainpage}}]]」頁面。',
 'exportall' => '導出所有頁面',
-'exportcuronly' => 'å\83\85å\8c\85å\90«ç\9b®å\89\8dç\9a\84ä¿®è¨\82ï¼\8cè\80\8cä¸\8dæ\98¯å\85¨é\83¨ç\9a\84æ­·å\8f²ã\80\82',
+'exportcuronly' => 'å\8fªå°\8eå\87ºç\95¶å\89\8dç\89\88æ\9c¬ï¼\8cä¸\8då\90«å®\8cæ\95´æ­·å\8f²ç\89\88æ\9c¬',
 'exportnohistory' => "----
 '''注意:''' 由於性能原因,從此表單匯出頁面的全部歷史已被停用。",
 'exportlistauthors' => '為每個頁面包含貢獻者的完整列表',
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 aac3428..75953f4 100644 (file)
 /**
- * jQuery JSON Plugin
- * version: 2.3 (2011-09-17)
+ * jQuery JSON plugin 2.4.0
  *
- * This document is licensed as free software under the terms of the
- * MIT License: http://www.opensource.org/licenses/mit-license.php
- *
- * Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
- * website's http://www.json.org/json2.js, which proclaims:
- * "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
- * I uphold.
- *
- * It is also influenced heavily by MochiKit's serializeJSON, which is
- * copyrighted 2005 by Bob Ippolito.
+ * @author Brantley Harris, 2009-2011
+ * @author Timo Tijhof, 2011-2012
+ * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
+ *         copyrighted 2005 by Bob Ippolito.
+ * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
+ *         website's http://www.json.org/json2.js, which proclaims:
+ *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
+ *         I uphold.
+ * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
  */
+(function ($) {
+       'use strict';
 
-(function( $ ) {
-
-       var     escapeable = /["\\\x00-\x1f\x7f-\x9f]/g,
-                       meta = {
-                               '\b': '\\b',
-                               '\t': '\\t',
-                               '\n': '\\n',
-                               '\f': '\\f',
-                               '\r': '\\r',
-                               '"' : '\\"',
-                               '\\': '\\\\'
-                       };
+       var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
+               meta = {
+                       '\b': '\\b',
+                       '\t': '\\t',
+                       '\n': '\\n',
+                       '\f': '\\f',
+                       '\r': '\\r',
+                       '"' : '\\"',
+                       '\\': '\\\\'
+               },
+               hasOwn = Object.prototype.hasOwnProperty;
 
        /**
         * jQuery.toJSON
-        * Converts the given argument into a JSON respresentation.
+        * Converts the given argument into a JSON representation.
         *
-        * @param o {Mixed} The json-serializble *thing* to be converted
+        * @param o {Mixed} The json-serializable *thing* to be converted
         *
         * If an object has a toJSON prototype, that will be used to get the representation.
         * Non-integer/string keys are skipped in the object, as are keys that point to a
         * function.
         *
         */
-       $.toJSON = typeof JSON === 'object' && JSON.stringify
-                       ? JSON.stringify
-                       : function( o ) {
-
-               if ( o === null ) {
+       $.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
+               if (o === null) {
                        return 'null';
                }
 
-               var type = typeof o;
+               var pairs, k, name, val,
+                       type = $.type(o);
 
-               if ( type === 'undefined' ) {
+               if (type === 'undefined') {
                        return undefined;
                }
-               if ( type === 'number' || type === 'boolean' ) {
-                       return '' + o;
+
+               // Also covers instantiated Number and Boolean objects,
+               // which are typeof 'object' but thanks to $.type, we
+               // catch them here. I don't know whether it is right
+               // or wrong that instantiated primitives are not
+               // exported to JSON as an {"object":..}.
+               // We choose this path because that's what the browsers did.
+               if (type === 'number' || type === 'boolean') {
+                       return String(o);
                }
-               if ( type === 'string') {
-                       return $.quoteString( o );
+               if (type === 'string') {
+                       return $.quoteString(o);
                }
-               if ( type === 'object' ) {
-                       if ( typeof o.toJSON === 'function' ) {
-                               return $.toJSON( o.toJSON() );
-                       }
-                       if ( o.constructor === Date ) {
-                               var     month = o.getUTCMonth() + 1,
-                                               day = o.getUTCDate(),
-                                               year = o.getUTCFullYear(),
-                                               hours = o.getUTCHours(),
-                                               minutes = o.getUTCMinutes(),
-                                               seconds = o.getUTCSeconds(),
-                                               milli = o.getUTCMilliseconds();
+               if (typeof o.toJSON === 'function') {
+                       return $.toJSON(o.toJSON());
+               }
+               if (type === 'date') {
+                       var month = o.getUTCMonth() + 1,
+                               day = o.getUTCDate(),
+                               year = o.getUTCFullYear(),
+                               hours = o.getUTCHours(),
+                               minutes = o.getUTCMinutes(),
+                               seconds = o.getUTCSeconds(),
+                               milli = o.getUTCMilliseconds();
 
-                               if ( month < 10 ) {
-                                       month = '0' + month;
-                               }
-                               if ( day < 10 ) {
-                                       day = '0' + day;
-                               }
-                               if ( hours < 10 ) {
-                                       hours = '0' + hours;
-                               }
-                               if ( minutes < 10 ) {
-                                       minutes = '0' + minutes;
-                               }
-                               if ( seconds < 10 ) {
-                                       seconds = '0' + seconds;
-                               }
-                               if ( milli < 100 ) {
-                                       milli = '0' + milli;
-                               }
-                               if ( milli < 10 ) {
-                                       milli = '0' + milli;
-                               }
-                               return '"' + year + '-' + month + '-' + day + 'T' +
-                                               hours + ':' + minutes + ':' + seconds +
-                                               '.' + milli + 'Z"';
+                       if (month < 10) {
+                               month = '0' + month;
                        }
-                       if ( o.constructor === Array ) {
-                               var ret = [];
-                               for ( var i = 0; i < o.length; i++ ) {
-                                       ret.push( $.toJSON( o[i] ) || 'null' );
-                               }
-                               return '[' + ret.join(',') + ']';
+                       if (day < 10) {
+                               day = '0' + day;
+                       }
+                       if (hours < 10) {
+                               hours = '0' + hours;
+                       }
+                       if (minutes < 10) {
+                               minutes = '0' + minutes;
+                       }
+                       if (seconds < 10) {
+                               seconds = '0' + seconds;
+                       }
+                       if (milli < 100) {
+                               milli = '0' + milli;
+                       }
+                       if (milli < 10) {
+                               milli = '0' + milli;
+                       }
+                       return '"' + year + '-' + month + '-' + day + 'T' +
+                               hours + ':' + minutes + ':' + seconds +
+                               '.' + milli + 'Z"';
+               }
+
+               pairs = [];
+
+               if ($.isArray(o)) {
+                       for (k = 0; k < o.length; k++) {
+                               pairs.push($.toJSON(o[k]) || 'null');
                        }
-                       var     name,
-                                       val,
-                                       pairs = [];
-                       for ( var k in o ) {
-                               type = typeof k;
-                               if ( type === 'number' ) {
-                                       name = '"' + k + '"';
-                               } else if (type === 'string') {
-                                       name = $.quoteString(k);
-                               } else {
+                       return '[' + pairs.join(',') + ']';
+               }
+
+               // Any other object (plain object, RegExp, ..)
+               // Need to do typeof instead of $.type, because we also
+               // want to catch non-plain objects.
+               if (typeof o === 'object') {
+                       for (k in o) {
+                               // Only include own properties,
+                               // Filter out inherited prototypes
+                               if (hasOwn.call(o, k)) {
                                        // Keys must be numerical or string. Skip others
-                                       continue;
-                               }
-                               type = typeof o[k];
+                                       type = typeof k;
+                                       if (type === 'number') {
+                                               name = '"' + k + '"';
+                                       } else if (type === 'string') {
+                                               name = $.quoteString(k);
+                                       } else {
+                                               continue;
+                                       }
+                                       type = typeof o[k];
 
-                               if ( type === 'function' || type === 'undefined' ) {
                                        // Invalid values like these return undefined
                                        // from toJSON, however those object members
                                        // shouldn't be included in the JSON string at all.
-                                       continue;
+                                       if (type !== 'function' && type !== 'undefined') {
+                                               val = $.toJSON(o[k]);
+                                               pairs.push(name + ':' + val);
+                                       }
                                }
-                               val = $.toJSON( o[k] );
-                               pairs.push( name + ':' + val );
                        }
-                       return '{' + pairs.join( ',' ) + '}';
+                       return '{' + pairs.join(',') + '}';
                }
        };
 
        /**
         * jQuery.evalJSON
-        * Evaluates a given piece of json source.
+        * Evaluates a given json string.
         *
-        * @param src {String}
+        * @param str {String}
         */
-       $.evalJSON = typeof JSON === 'object' && JSON.parse
-                       ? JSON.parse
-                       : function( src ) {
-               return eval('(' + src + ')');
+       $.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
+               /*jshint evil: true */
+               return eval('(' + str + ')');
        };
 
        /**
         * jQuery.secureEvalJSON
         * Evals JSON in a way that is *more* secure.
         *
-        * @param src {String}
+        * @param str {String}
         */
-       $.secureEvalJSON = typeof JSON === 'object' && JSON.parse
-                       ? JSON.parse
-                       : function( src ) {
-
+       $.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
                var filtered =
-                               src
-                                               .replace( /\\["\\\/bfnrtu]/g, '@' )
-                                               .replace( /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
-                                               .replace( /(?:^|:|,)(?:\s*\[)+/g, '');
+                       str
+                       .replace(/\\["\\\/bfnrtu]/g, '@')
+                       .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
+                       .replace(/(?:^|:|,)(?:\s*\[)+/g, '');
 
-               if ( /^[\],:{}\s]*$/.test( filtered ) ) {
-                       return eval( '(' + src + ')' );
-               } else {
-                       throw new SyntaxError( 'Error parsing JSON, source is not valid.' );
+               if (/^[\],:{}\s]*$/.test(filtered)) {
+                       /*jshint evil: true */
+                       return eval('(' + str + ')');
                }
+               throw new SyntaxError('Error parsing JSON, source is not valid.');
        };
 
        /**
         * >>> jQuery.quoteString('"Where are we going?", she asked.')
         * "\"Where are we going?\", she asked."
         */
-       $.quoteString = function( string ) {
-               if ( string.match( escapeable ) ) {
-                       return '"' + string.replace( escapeable, function( a ) {
+       $.quoteString = function (str) {
+               if (str.match(escape)) {
+                       return '"' + str.replace(escape, function (a) {
                                var c = meta[a];
-                               if ( typeof c === 'string' ) {
+                               if (typeof c === 'string') {
                                        return c;
                                }
                                c = a.charCodeAt();
                                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
                        }) + '"';
                }
-               return '"' + string + '"';
+               return '"' + str + '"';
        };
 
-})( jQuery );
+}(jQuery));
index 3957493..f945fa9 100644 (file)
                                                        title: cleanTitle
                                                }, cleanTitle
                                        );
-                                       msg = mw.messsage( 'watcherrortext', link );
+                                       msg = mw.message( 'watcherrortext', link );
 
                                        // Report to user about the error
                                        mw.notify( msg, { tag: 'watch-self' } );
index 652fa43..6025ce1 100644 (file)
@@ -3125,6 +3125,29 @@ disabled
 
 !! end
 
+!! test
+Wikitext table with a lot of comments
+!! input
+{|
+<!-- c0 -->
+| foo
+<!-- c1 -->
+|- <!-- c2 -->
+<!-- c3 -->
+|<!-- c4 -->
+<!-- c5 -->
+|}
+!! result
+<table>
+<tr>
+<td> foo
+</td></tr>
+<tr>
+<td>
+</td></tr></table>
+
+!! end
+
 ###
 ### Internal links
 ###
@@ -5694,7 +5717,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 +5749,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 +7528,10 @@ Namespaced link must have a title (bad fragment version)
 !!end
 
 
+###
+### HTML tags and HTML attributes
+###
+
 !! test
 div with no attributes
 !! input
@@ -7563,6 +7590,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 +12995,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 2745c6a..b675000 100644 (file)
@@ -9,6 +9,7 @@ class MediaWikiPHPUnitCommand extends PHPUnit_TextUI_Command {
                'keep-uploads' => false,
                'use-normal-tables' => false,
                'reuse-db' => false,
+               'wiki=' => false,
        );
 
        public function __construct() {
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 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 />' ),
diff --git a/tests/phpunit/includes/StringUtilsTest.php b/tests/phpunit/includes/StringUtilsTest.php
new file mode 100644 (file)
index 0000000..401b322
--- /dev/null
@@ -0,0 +1,142 @@
+<?php
+
+class StringUtilsTest extends MediaWikiTestCase {
+
+       /**
+        * This test StringUtils::isUtf8 whenever we have mbstring extension
+        * loaded.
+        *
+        * @cover StringUtils::isUtf8
+        * @dataProvider provideStringsForIsUtf8Check
+        */
+       function testIsUtf8WithMbstring($expected, $string ) {
+               if( !function_exists( 'mb_check_encoding' ) ) {
+                       $this->markTestSkipped( 'Test requires the mbstring PHP extension' );
+               }
+               $this->assertEquals( $expected,
+                       StringUtils::isUtf8( $string ),
+                       'Testing string "' . $this->escaped( $string ) . '" with mb_check_encoding'
+               );
+       }
+
+       /**
+        * This test StringUtils::isUtf8 making sure we use the pure PHP
+        * implementation used as a fallback when mb_check_encoding() is
+        * not available.
+        *
+        * @cover StringUtils::isUtf8
+        * @dataProvider provideStringsForIsUtf8Check
+        */
+       function testIsUtf8WithPhpFallbackImplementation($expected, $string ) {
+               $this->assertEquals( $expected,
+                       StringUtils::isUtf8( $string, /** disable mbstring: */ true ),
+                       'Testing string "' . $this->escaped( $string ) . '" with pure PHP implementation'
+               );
+       }
+
+       /**
+        * Print high range characters as an hexadecimal
+        */
+       function escaped( $string ) {
+               $escaped = '';
+               for($i=0; $i<strlen($string);$i++) {
+                       $char = $string[$i];
+                       $val = ord($char);
+                       if( $val > 127 ) {
+                               $escaped .='\x' . dechex($val);
+                       } else {
+                               $escaped .= $char;
+                       }
+               }
+               return $escaped;
+       }
+
+       /**
+        * See also "UTF-8 decoder capability and stress test" by
+        * Markus Kuhn:
+        * http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
+        */
+       function provideStringsForIsUtf8Check() {
+               // Expected return values for StringUtils::isUtf8()
+               $PASS = true;
+               $FAIL = false;
+
+               return array(
+                       array( $PASS, 'Some ASCII' ),
+                       array( $PASS, "Euro sign €" ),
+
+                       # First possible sequences
+                       array( $PASS, "\x00" ),
+                       array( $PASS, "\xc2\x80" ),
+                       array( $PASS, "\xe0\xa0\x80" ),
+                       array( $PASS, "\xf0\x90\x80\x80" ),
+                       array( $PASS, "\xf8\x88\x80\x80\x80" ),
+                       array( $PASS, "\xfc\x84\x80\x80\x80\x80" ),
+
+                       # Last possible sequence
+                       array( $PASS, "\x7f" ),
+                       array( $PASS, "\xdf\xbf" ),
+                       array( $PASS, "\xef\xbf\xbf" ),
+                       array( $PASS, "\xf7\xbf\xbf\xbf" ),
+                       array( $PASS, "\xfb\xbf\xbf\xbf\xbf" ),
+                       array( $FAIL, "\xfd\xbf\xbf\xbf\xbf\xbf" ),
+
+                       # boundaries:
+                       array( $PASS, "\xed\x9f\xbf" ),
+                       array( $PASS, "\xee\x80\x80" ),
+                       array( $PASS, "\xef\xbf\xbd" ),
+                       array( $PASS, "\xf4\x8f\xbf\xbf" ),
+                       array( $PASS, "\xf4\x90\x80\x80" ),
+
+                       # Malformed
+                       array( $FAIL, "\x80" ),
+                       array( $FAIL, "\xBF" ),
+                       array( $FAIL, "\x80\xbf" ),
+                       array( $FAIL, "\x80\xbf\x80" ),
+                       array( $FAIL, "\x80\xbf\x80\xbf" ),
+                       array( $FAIL, "\x80\xbf\x80\xbf\x80" ),
+                       array( $FAIL, "\x80\xbf\x80\xbf\x80\xbf" ),
+                       array( $FAIL, "\x80\xbf\x80\xbf\x80\xbf\x80" ),
+
+                       # last byte missing
+                       array( $FAIL, "\xc0" ),
+                       array( $FAIL, "\xe0\x80" ),
+                       array( $FAIL, "\xf0\x80\x80" ),
+                       array( $FAIL, "\xf8\x80\x80\x80" ),
+                       array( $FAIL, "\xfc\x80\x80\x80\x80" ),
+                       array( $FAIL, "\xdf" ),
+                       array( $FAIL, "\xef\xbf" ),
+                       array( $FAIL, "\xf7\xbf\xbf" ),
+                       array( $FAIL, "\xfb\xbf\xbf\xbf" ),
+                       array( $FAIL, "\xfd\xbf\xbf\xbf\xbf" ),
+
+                       # impossible bytes
+                       array( $FAIL, "\xfe" ),
+                       array( $FAIL, "\xff" ),
+                       array( $FAIL, "\xfe\xfe\xff\xff" ),
+
+                       /**
+                       # The PHP implementation does not handle characters
+                       # being represented in a form which is too long :(
+
+                       # overlong sequences
+                       array( $FAIL, "\xc0\xaf" ),
+                       array( $FAIL, "\xe0\x80\xaf" ),
+                       array( $FAIL, "\xf0\x80\x80\xaf" ),
+                       array( $FAIL, "\xf8\x80\x80\x80\xaf" ),
+                       array( $FAIL, "\xfc\x80\x80\x80\x80\xaf" ),
+
+                       # Maximum overlong sequences
+                       array( $FAIL, "\xc1\xbf" ),
+                       array( $FAIL, "\xe0\x9f\xbf" ),
+                       array( $FAIL, "\xf0\x8F\xbf\xbf" ),
+                       array( $FAIL, "\xf8\x87\xbf\xbf" ),
+                       array( $FAIL, "\xfc\x83\xbf\xbf\xbf\xbf" ),
+                       **/
+
+                       # non characters
+                       array( $PASS, "\xef\xbf\xbe" ),
+                       array( $PASS, "\xef\xbf\xbf" ),
+               );
+       }
+}
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] );
index 398ad2d..c0f8a96 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{
@@ -242,4 +241,24 @@ abstract class GenericArrayObjectTest extends MediaWikiTestCase {
                } );
        }
 
+       /**
+        * @dataProvider instanceProvider
+        *
+        * @since 1.21
+        *
+        * @param GenericArrayObject $list
+        */
+       public function testSerialization( GenericArrayObject $list ) {
+               $serialization = serialize( $list );
+               $copy = unserialize( $serialization );
+
+               $this->assertEquals( $serialization, serialize( $copy ) );
+               $this->assertEquals( count( $list ), count( $copy ) );
+
+               $list = $list->getArrayCopy();
+               $copy = $copy->getArrayCopy();
+
+               $this->assertArrayEquals( $list, $copy, true, true );
+       }
+
 }
diff --git a/tests/phpunit/includes/logging/LogFormatterTest.php b/tests/phpunit/includes/logging/LogFormatterTest.php
new file mode 100755 (executable)
index 0000000..d6cbbee
--- /dev/null
@@ -0,0 +1,200 @@
+<?php
+/**
+ * @group Database
+ */
+class LogFormatterTest extends MediaWikiLangTestCase {
+
+       /**
+        * @var User
+        */
+       protected $user;
+
+       /**
+        * @var Title
+        */
+       protected $title;
+
+       /**
+        * @var RequestContext
+        */
+       protected $context;
+
+       protected function setUp() {
+               parent::setUp();
+
+               global $wgLang;
+
+               $this->setMwGlobals( array(
+                       'wgLogTypes' => array( 'phpunit' ),
+                       'wgLogActionsHandlers' => array( 'phpunit/test' => 'LogFormatter',
+                               'phpunit/param' => 'LogFormatter' ),
+                       'wgUser' => User::newFromName( 'Testuser' ),
+                       'wgExtensionMessagesFiles' => array( 'LogTests' => __DIR__.'/LogTests.i18n.php' ),
+               ) );
+
+               $wgLang->getLocalisationCache()->recache( $wgLang->getCode() );
+
+               $this->user = User::newFromName( 'Testuser' );
+               $this->title = Title::newMainPage();
+
+               $this->context = new RequestContext();
+               $this->context->setUser( $this->user );
+               $this->context->setTitle( $this->title );
+               $this->context->setLanguage( $wgLang );
+       }
+
+       public function newLogEntry( $action, $params ) {
+               $logEntry = new ManualLogEntry( 'phpunit', $action );
+               $logEntry->setPerformer( $this->user );
+               $logEntry->setTarget( $this->title );
+               $logEntry->setComment( 'A very good reason' );
+
+               $logEntry->setParameters( $params );
+
+               return $logEntry;
+       }
+
+       public function testNormalLogParams() {
+               $entry = $this->newLogEntry( 'test', array() );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $formatter->setShowUserToolLinks( false );
+               $paramsWithoutTools = $formatter->getMessageParametersForTesting();
+               unset( $formatter->parsedParameters );
+
+               $formatter->setShowUserToolLinks( true );
+               $paramsWithTools = $formatter->getMessageParametersForTesting();
+
+               $userLink = Linker::userLink(
+                       $this->user->getId(),
+                       $this->user->getName()
+               );
+
+               $userTools = Linker::userToolLinksRedContribs(
+                       $this->user->getId(),
+                       $this->user->getName(),
+                       $this->user->getEditCount()
+               );
+
+               $titleLink = Linker::link( $this->title, null, array(), array() );
+
+               // $paramsWithoutTools and $paramsWithTools should be only different
+               // in index 0
+               $this->assertEquals( $paramsWithoutTools[1], $paramsWithTools[1] );
+               $this->assertEquals( $paramsWithoutTools[2], $paramsWithTools[2] );
+
+               $this->assertEquals( $userLink, $paramsWithoutTools[0]['raw'] );
+               $this->assertEquals( $userLink . $userTools, $paramsWithTools[0]['raw'] );
+
+               $this->assertEquals( $this->user->getName(), $paramsWithoutTools[1] );
+
+               $this->assertEquals( $titleLink, $paramsWithoutTools[2]['raw'] );
+       }
+
+       public function testLogParamsTypeRaw() {
+               $params = array( '4:raw:raw' => Linker::link( $this->title, null, array(), array() ) );
+               $expected = Linker::link( $this->title, null, array(), array() );
+
+               $entry = $this->newLogEntry( 'param', $params );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $logParam = $formatter->getActionText();
+
+               $this->assertEquals( $expected, $logParam );
+       }
+
+       public function testLogParamsTypeMsg() {
+               $params = array( '4:msg:msg' => 'log-description-phpunit' );
+               $expected = wfMessage( 'log-description-phpunit' )->text();
+
+               $entry = $this->newLogEntry( 'param', $params );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $logParam = $formatter->getActionText();
+
+               $this->assertEquals( $expected, $logParam );
+       }
+
+       public function testLogParamsTypeMsgContent() {
+               $params = array( '4:msg-content:msgContent' => 'log-description-phpunit' );
+               $expected = wfMessage( 'log-description-phpunit' )->inContentLanguage()->text();
+
+               $entry = $this->newLogEntry( 'param', $params );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $logParam = $formatter->getActionText();
+
+               $this->assertEquals( $expected, $logParam );
+       }
+
+       public function testLogParamsTypeNumber() {
+               global $wgLang;
+
+               $params = array( '4:number:number' => 123456789 );
+               $expected = $wgLang->formatNum( 123456789 );
+
+               $entry = $this->newLogEntry( 'param', $params );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $logParam = $formatter->getActionText();
+
+               $this->assertEquals( $expected, $logParam );
+       }
+
+       public function testLogParamsTypeUserLink() {
+               $params = array( '4:user-link:userLink' => $this->user->getName() );
+               $expected = Linker::userLink(
+                       $this->user->getId(),
+                       $this->user->getName()
+               );
+
+               $entry = $this->newLogEntry( 'param', $params );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $logParam = $formatter->getActionText();
+
+               $this->assertEquals( $expected, $logParam );
+       }
+
+       public function testLogParamsTypeTitleLink() {
+               $params = array( '4:title-link:titleLink' => $this->title->getText() );
+               $expected = Linker::link( $this->title, null, array(), array() );
+
+               $entry = $this->newLogEntry( 'param', $params );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $logParam = $formatter->getActionText();
+
+               $this->assertEquals( $expected, $logParam );
+       }
+
+       public function testLogParamsTypePlain() {
+               $params = array( '4:plain:plain' => 'Some plain text' );
+               $expected = 'Some plain text';
+
+               $entry = $this->newLogEntry( 'param', $params );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $logParam = $formatter->getActionText();
+
+               $this->assertEquals( $expected, $logParam );
+       }
+
+       public function testLogComment() {
+               $entry = $this->newLogEntry( 'test', array() );
+               $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->context );
+
+               $comment = ltrim( Linker::commentBlock( $entry->getComment() ) );
+
+               $this->assertEquals( $comment, $formatter->getComment() );
+       }
+}
diff --git a/tests/phpunit/includes/logging/LogTests.i18n.php b/tests/phpunit/includes/logging/LogTests.i18n.php
new file mode 100755 (executable)
index 0000000..8a0a421
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Internationalisation file for log tests.
+ *
+ * @file
+ */
+
+$messages = array();
+
+$messages['en'] = array(
+       'log-name-phpunit'        => 'PHPUnit-log',
+       'log-description-phpunit' => 'Log for PHPUnit-tests',
+       'logentry-phpunit-test'   => '$1 {{GENDER:$2|tests}} with page $3',
+       'logentry-phpunit-param'  => '$4',
+);
\ No newline at end of file
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 021691a..613f63f 100644 (file)
@@ -65,4 +65,28 @@ class SiteArrayTest extends GenericArrayObjectTest {
                return 'SiteArray';
        }
 
+       /**
+        * @dataProvider instanceProvider
+        *
+        * @since 1.21
+        *
+        * @param SiteArray $list
+        */
+       public function testSerializationMore( SiteArray $list ) {
+               $serialization = serialize( $list );
+               /**
+                * @var SiteArray $copy
+                */
+               $copy = unserialize( $serialization );
+
+               $this->assertArrayEquals( $list->getGlobalIdentifiers(), $copy->getGlobalIdentifiers() );
+
+               /**
+                * @var Site $site
+                */
+               foreach ( $list as $site ) {
+                       $this->assertTrue( $copy->hasInternalId( $site->getInternalId() ) );
+               }
+       }
+
 }
\ No newline at end of file
index 307810d..a693cdb 100644 (file)
@@ -3,6 +3,7 @@
 /**
  * @group Broken
  * @group Upload
+ * @group Database
  */
 class UploadFromUrlTest extends ApiTestCase {
 
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 ) );