Merge "ParserOutput::addLanguageLink needs a string"
authorIAlex <ialex.wiki@gmail.com>
Sun, 9 Dec 2012 09:52:05 +0000 (09:52 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 9 Dec 2012 09:52:05 +0000 (09:52 +0000)
90 files changed:
RELEASE-NOTES-1.21
includes/Action.php
includes/ChangesList.php
includes/ConfEditor.php
includes/GlobalFunctions.php
includes/Hooks.php
includes/Html.php
includes/ImagePage.php
includes/LinksUpdate.php
includes/LocalisationCache.php
includes/OutputPage.php
includes/Preferences.php
includes/ProtectionForm.php
includes/QueryPage.php
includes/SpecialPage.php
includes/Timestamp.php
includes/Title.php
includes/User.php
includes/UserMailer.php
includes/WebRequest.php
includes/WikiPage.php
includes/api/ApiQueryUsers.php
includes/cache/MessageCache.php
includes/content/ContentHandler.php
includes/db/Database.php
includes/db/IORMTable.php
includes/db/LoadBalancer.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/lockmanager/MemcLockManager.php
includes/filerepo/file/File.php
includes/installer/DatabaseUpdater.php
includes/installer/Installer.i18n.php
includes/installer/MysqlUpdater.php
includes/installer/WebInstallerPage.php
includes/job/JobQueue.php
includes/job/JobQueueDB.php
includes/job/JobQueueGroup.php
includes/job/jobs/DoubleRedirectJob.php
includes/job/jobs/NullJob.php
includes/media/DjVuImage.php
includes/objectcache/SqlBagOStuff.php
includes/parser/LinkHolderArray.php
includes/site/SiteObject.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialUndelete.php
includes/upload/UploadFromStash.php
includes/upload/UploadFromUrl.php
languages/LanguageConverter.php
languages/messages/MessagesArc.php
languages/messages/MessagesAst.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBar.php
languages/messages/MessagesBcl.php
languages/messages/MessagesFr.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKy.php
languages/messages/MessagesMt.php
languages/messages/MessagesPa.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRue.php
languages/messages/MessagesSi.php
languages/messages/MessagesSo.php
languages/messages/MessagesTe.php
languages/messages/MessagesTr.php
languages/messages/MessagesUk.php
languages/messages/MessagesZh_hans.php
maintenance/fixDoubleRedirects.php
maintenance/mwdocgen.php
profileinfo.php
tests/phpunit/includes/ArticleTest.php
tests/phpunit/includes/DiffHistoryBlobTest.php
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/PreferencesTest.php
tests/phpunit/includes/SampleTest.php
tests/phpunit/includes/TitleMethodsTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/libs/GenericArrayObjectTest.php
tests/phpunit/includes/parser/MediaWikiParserTest.php
tests/phpunit/includes/parser/PreprocessorTest.php
tests/phpunit/includes/upload/UploadFromUrlTest.php
tests/phpunit/maintenance/MaintenanceTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.Uri.test.js

index 220089d..87a0058 100644 (file)
@@ -57,6 +57,9 @@ production.
   debug mode: wfMsg, wfMsgNoTrans, wfMsgForContent, wfMsgForContentNoTrans,
   wfMsgReal, wfMsgGetKey, wfMsgHtml, wfMsgWikiHtml, wfMsgExt, wfEmptyMsg. Use
   the Message class, or the global method wfMessage.
+* Debug message emitted by wfDebugLog() will now be prefixed with the group
+  name when its logged to the default log file. That is the case whenever the
+  group has no key in wgDebugLogGroups, that will help triage the default log.
 
 === Bug fixes in 1.21 ===
 * (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
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 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 6d86a50..7833a71 100644 (file)
@@ -1037,7 +1037,7 @@ function wfDebugLog( $logGroup, $text, $public = true ) {
                        wfErrorLog( "$time $host $wiki: $text", $wgDebugLogGroups[$logGroup] );
                }
        } elseif ( $public === true ) {
-               wfDebug( $text, true );
+               wfDebug( "[$logGroup] $text", true );
        }
 }
 
index c9c0679..9e201a2 100644 (file)
@@ -138,6 +138,8 @@ class Hooks {
         * @param $event String: event name
         * @param $args  Array: parameters passed to hook functions
         *
+        * @throws MWException
+        * @throws FatalError
         * @return Boolean True if no handler aborted the hook
         */
        public static function run( $event, $args = array() ) {
index 2ab6069..14456e4 100644 (file)
@@ -476,7 +476,13 @@ class Html {
                        // server-side validation.  Opera is the only other implementation at
                        // this time, and has ugly UI, so just kill the feature entirely until
                        // we have at least one good implementation.
-                       if ( in_array( $key, array( 'max', 'min', 'pattern', 'required', 'step' ) ) ) {
+
+                       // As the default value of "1" for "step" rejects decimal
+                       // numbers to be entered in 'type="number"' fields, allow
+                       // the special case 'step="any"'.
+
+                       if ( in_array( $key, array( 'max', 'min', 'pattern', 'required' ) ) ||
+                                $key === 'step' && $value !== 'any' ) {
                                continue;
                        }
 
index 316e1c9..ecf4f89 100644 (file)
@@ -340,13 +340,13 @@ class ImagePage extends Article {
                                if ( $width > $maxWidth || $height > $maxHeight ) {
                                        # Calculate the thumbnail size.
                                        # First case, the limiting factor is the width, not the height.
-                                       if ( $width / $height >= $maxWidth / $maxHeight ) {
-                                               $height = round( $height * $maxWidth / $width );
+                                       if ( $width / $height >= $maxWidth / $maxHeight ) { // FIXME: Possible divison by 0. bug 36911
+                                               $height = round( $height * $maxWidth / $width ); // FIXME: Possible divison by 0. bug 36911
                                                $width = $maxWidth;
                                                # Note that $height <= $maxHeight now.
                                        } else {
-                                               $newwidth = floor( $width * $maxHeight / $height );
-                                               $height = round( $height * $newwidth / $width );
+                                               $newwidth = floor( $width * $maxHeight / $height ); // FIXME: Possible divison by 0. bug 36911
+                                               $height = round( $height * $newwidth / $width ); // FIXME: Possible divison by 0. bug 36911
                                                $width = $newwidth;
                                                # Note that $height <= $maxHeight now, but might not be identical
                                                # because of rounding.
index a7a903e..7ddf863 100644 (file)
@@ -819,6 +819,7 @@ class LinksDeletionUpdate extends SqlDataUpdate {
         * Constructor
         *
         * @param $page WikiPage Page we are updating
+        * @throws MWException
         */
        function __construct( WikiPage $page ) {
                parent::__construct( false ); // no implicit transaction
index 94e823e..f6f5a76 100644 (file)
@@ -1160,7 +1160,7 @@ class LCStore_CDB implements LCStore {
        }
 
        protected function getFileName( $code ) {
-               if ( !$code || strpos( $code, '/' ) !== false ) {
+               if ( strval( $code ) === '' || strpos( $code, '/' ) !== false ) {
                        throw new MWException( __METHOD__ . ": Invalid language \"$code\"" );
                }
                return "{$this->directory}/l10n_cache-$code.cdb";
index 7649b23..868c786 100644 (file)
@@ -777,6 +777,7 @@ class OutputPage extends ContextSource {
                if ( isset( $this->mPageTitleActionText ) ) {
                        return $this->mPageTitleActionText;
                }
+               return '';
        }
 
        /**
index a3c684b..a79f98f 100644 (file)
@@ -252,7 +252,7 @@ class Preferences {
                if ( $wgAuth->allowPasswordChange() ) {
                        $link = Linker::link( SpecialPage::getTitleFor( 'ChangePassword' ),
                                $context->msg( 'prefs-resetpass' )->escaped(), array(),
-                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' ) ) );
+                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' )->getPrefixedText() ) );
 
                        $defaultPreferences['password'] = array(
                                'type' => 'info',
@@ -367,7 +367,7 @@ class Preferences {
                                SpecialPage::getTitleFor( 'ChangeEmail' ),
                                $context->msg( $user->getEmail() ? 'prefs-changeemail' : 'prefs-setemail' )->escaped(),
                                array(),
-                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' ) ) );
+                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' )->getPrefixedText() ) );
 
                        $emailAddress = $user->getEmail() ? htmlspecialchars( $user->getEmail() ) : '';
                        if ( $wgAuth->allowPropChange( 'emailaddress' ) ) {
index 9643ba7..e844a1e 100644 (file)
@@ -501,7 +501,7 @@ class ProtectionForm {
                                        <td class='mw-input'>" .
                                                Xml::checkLabel( wfMessage( 'watchthis' )->text(),
                                                        'mwProtectWatch', 'mwProtectWatch',
-                                                       $this->mTitle->userIsWatching() || $wgUser->getOption( 'watchdefault' ) ) .
+                                                       $wgUser->isWatched( $this->mTitle ) || $wgUser->getOption( 'watchdefault' ) ) .
                                        "</td>
                                </tr>";
                        }
index 1f21584..31df316 100644 (file)
@@ -652,7 +652,7 @@ abstract class QueryPage extends SpecialPage {
 
                if ( !$wgFeed ) {
                        $this->getOutput()->addWikiMsg( 'feed-unavailable' );
-                       return;
+                       return false;
                }
 
                global $wgFeedLimit;
index 67aa2b3..e844d93 100644 (file)
@@ -254,13 +254,14 @@ class SpecialPage {
         *
         * @param $name String
         * @param $subpage String|Bool subpage string, or false to not use a subpage
+        * @param $fragment String the link fragment (after the "#")
         * @throws MWException
         * @return Title object
         */
-       public static function getTitleFor( $name, $subpage = false ) {
+       public static function getTitleFor( $name, $subpage = false, $fragment = '' ) {
                $name = SpecialPageFactory::getLocalNameFor( $name, $subpage );
                if ( $name ) {
-                       return Title::makeTitle( NS_SPECIAL, $name );
+                       return Title::makeTitle( NS_SPECIAL, $name, $fragment );
                } else {
                        throw new MWException( "Invalid special page name \"$name\"" );
                }
index 56ce46c..3b7b801 100644 (file)
@@ -216,7 +216,7 @@ class MWTimestamp {
 
                if( $message ) {
                        $initial = call_user_func_array( 'wfMessage', $message );
-                       return wfMessage( 'ago', $initial );
+                       return wfMessage( 'ago', $initial->parse() );
                } else {
                        return wfMessage( 'just-now' );
                }
index 6cd8ee5..896218b 100644 (file)
@@ -675,6 +675,7 @@ class Title {
        /**
         * Get the page's content model id, see the CONTENT_MODEL_XXX constants.
         *
+        * @throws MWException
         * @return String: Content model id
         */
        public function getContentModel() {
@@ -2972,6 +2973,7 @@ class Title {
         * What is the page_latest field for this page?
         *
         * @param $flags Int a bit field; may be Title::GAID_FOR_UPDATE to select for update
+        * @throws MWException
         * @return Int or 0 if the page doesn't exist
         */
        public function getLatestRevID( $flags = 0 ) {
@@ -3695,8 +3697,8 @@ class Title {
                }
 
                # Update watchlists
-               $oldnamespace = $this->getNamespace() & ~1;
-               $newnamespace = $nt->getNamespace() & ~1;
+               $oldnamespace = MWNamespace::getSubject( $this->getNamespace() );
+               $newnamespace = MWNamespace::getSubject( $nt->getNamespace() );
                $oldtitle = $this->getDBkey();
                $newtitle = $nt->getDBkey();
 
index 507b254..28ff630 100644 (file)
@@ -3034,6 +3034,7 @@ class User {
         * so it is still advisable to make the call conditional on isLoggedIn(),
         * and to commit the transaction after calling.
         *
+        * @throws MWException
         * @return Status
         */
        public function addToDatabase() {
index daf7435..66c70b3 100644 (file)
@@ -498,7 +498,7 @@ class EmailNotification {
                                'pageStatus' => $pageStatus
                        );
                        $job = new EnotifNotifyJob( $title, $params );
-                       $job->insert();
+                       JobQueueGroup::singleton()->push( $job );
                } else {
                        $this->actuallyNotifyOnPageChange( $editor, $title, $timestamp, $summary, $minorEdit, $oldid, $watchers, $pageStatus );
                }
@@ -517,6 +517,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 +782,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 591ace9..edcbc1a 100644 (file)
@@ -250,7 +250,7 @@ class ApiQueryUsers extends ApiQueryBase {
                        }
                        $done[] = $u;
                }
-               return $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), 'user' );
+               $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), 'user' );
        }
 
        /**
index f5feaf9..d567035 100644 (file)
@@ -257,7 +257,8 @@ class MessageCache {
         * or false if populating empty cache fails. Also returns true if MessageCache
         * is disabled.
         *
-        * @param $code String: language to which load messages
+        * @param bool|String $code String: language to which load messages
+        * @throws MWException
         * @return bool
         */
        function load( $code = false ) {
index 7d1be2b..282a7ba 100644 (file)
@@ -131,6 +131,7 @@ abstract class ContentHandler {
         * @param $format null|string the format to use for deserialization. If not
         *    given, the model's default format is used.
         *
+        * @throws MWException
         * @return Content a Content object representing $text
         *
         * @throw MWException if $model or $format is not supported or if $text can
index a638540..ffc4de0 100644 (file)
@@ -780,6 +780,7 @@ abstract class DatabaseBase implements DatabaseType {
         * Closes a database connection.
         * if it is open : commits any open transactions
         *
+        * @throws MWException
         * @return Bool operation success. true if already closed.
         */
        public function close() {
@@ -3280,6 +3281,7 @@ abstract class DatabaseBase implements DatabaseType {
         *      generated dynamically using $filename
         * @param bool|callable $inputCallback Callback: Optional function called for each complete line sent
         * @throws MWException
+        * @throws Exception|MWException
         * @return bool|string
         */
        public function sourceFile(
index dfc5916..67dbdfe 100644 (file)
@@ -455,15 +455,6 @@ interface IORMTable {
         */
        public function unprefixFieldName( $fieldName );
 
-       /**
-        * Get an instance of this class.
-        *
-        * @since 1.20
-        *
-        * @return IORMTable
-        */
-       public static function singleton();
-
        /**
         * Get an array with fields from a database result,
         * that can be fed directly to the constructor or
index 7e5feea..8ba5f4f 100644 (file)
@@ -954,10 +954,11 @@ class LoadBalancer {
         * @return bool
         */
        function allowLagged( $mode = null ) {
-               if ( $mode === null) {
+               if ( $mode === null ) {
                        return $this->mAllowLagged;
                }
                $this->mAllowLagged = $mode;
+               return $this->mAllowLagged;
        }
 
        /**
index e9d27f7..f4457de 100644 (file)
@@ -1318,8 +1318,9 @@ class SwiftFileBackend extends FileBackendStore {
        /**
         * Get an authenticated connection handle to the Swift proxy
         *
-        * @return CF_Connection|bool False on failure
         * @throws CloudFilesException
+        * @throws CloudFilesException|Exception
+        * @return CF_Connection|bool False on failure
         */
        protected function getConnection() {
                if ( $this->connException instanceof CloudFilesException ) {
index 26a5e2d..b8e25e7 100644 (file)
@@ -111,7 +111,7 @@ class MemcLockManager extends QuorumLockManager {
                        foreach ( $paths as $path ) {
                                $status->fatal( 'lockmanager-fail-acquirelock', $path );
                        }
-                       return;
+                       return; // FIXME: Should return a Status object
                }
 
                // Fetch all the existing lock records...
index c1abe61..9adcc99 100644 (file)
@@ -1800,7 +1800,7 @@ abstract class File {
        }
 
        /**
-        * @return Title
+        * @return Title|null
         */
        function getRedirectedTitle() {
                if ( $this->redirected ) {
@@ -1809,6 +1809,7 @@ abstract class File {
                        }
                        return $this->redirectTitle;
                }
+               return null;
        }
 
        /**
index b200dcf..dde2193 100644 (file)
@@ -721,8 +721,8 @@ abstract class DatabaseUpdater {
                } elseif( $this->updateRowExists( $updateKey ) ) {
                        $this->output( "...$field in table $table already modified by patch $patch.\n" );
                } else {
-                       return $this->applyPatch( $patch, $fullpath, "Modifying $field field of table $table" );
                        $this->insertUpdateRow( $updateKey );
+                       return $this->applyPatch( $patch, $fullpath, "Modifying $field field of table $table" );
                }
                return true;
        }
@@ -817,7 +817,7 @@ abstract class DatabaseUpdater {
        protected function doUpdateTranscacheField() {
                if ( $this->updateRowExists( 'convert transcache field' ) ) {
                        $this->output( "...transcache tc_time already converted.\n" );
-                       return;
+                       return true;
                }
 
                return $this->applyPatch( 'patch-tc-timestamp.sql', false,
index ea31b0a..59beb7c 100644 (file)
@@ -9942,7 +9942,7 @@ $1
 アスキー英字(a-z, A-Z)、数字(0-9)、下線(_)、ハイフン(-)のみを使用してください。',
        'config-connection-error' => '$1。
 
-以下のホスト名、ユーザ名、パスワードをチェックして、再度試してみてください。',
+以下のホスト名、ユーザ名、パスワードを確認してから再度試してください。',
        'config-invalid-schema' => '「$1」は MediaWiki のスキーマとして無効です。
 ASCII の英数字 (a-z、A-Z、0-9)、下線 (_) のみを使用してください。',
        'config-postgres-old' => 'PostgreSQL $1 以降が必要です。ご使用中の PostgreSQL は $2 です。',
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..19cecb7 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 ) {
@@ -165,6 +166,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 +211,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 2f483ed..9b4e500 100644 (file)
@@ -54,10 +54,14 @@ class JobQueueDB extends JobQueue {
                );
 
                $wgMemc->add( $key, $found ? 'false' : 'true', self::CACHE_TTL );
+               return (bool)$found;
        }
 
        /**
         * @see JobQueue::doBatchPush()
+        * @param array $jobs
+        * @param $flags
+        * @throws DBError|Exception
         * @return bool
         */
        protected function doBatchPush( array $jobs, $flags ) {
@@ -366,6 +370,8 @@ class JobQueueDB extends JobQueue {
 
        /**
         * @see JobQueue::doAck()
+        * @param Job $job
+        * @throws MWException
         * @return Job|bool
         */
        protected function doAck( Job $job ) {
@@ -377,13 +383,16 @@ class JobQueueDB extends JobQueue {
                $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
 
                // Delete a row with a single DELETE without holding row locks over RTTs...
-               $dbw->delete( 'job', array( 'job_cmd' => $this->type, 'job_id' => $job->getId() ) );
+               $dbw->delete( 'job',
+                       array( 'job_cmd' => $this->type, 'job_id' => $job->getId() ), __METHOD__ );
 
                return true;
        }
 
        /**
         * @see JobQueue::doDeduplicateRootJob()
+        * @param Job $job
+        * @throws MWException
         * @return bool
         */
        protected function doDeduplicateRootJob( Job $job ) {
index 97e0598..10fe51c 100644 (file)
@@ -76,6 +76,7 @@ class JobQueueGroup {
         * Insert jobs into the respective queues of with the belong
         *
         * @param $jobs Job|array A single Job or a list of Jobs
+        * @throws MWException
         * @return bool
         */
        public function push( $jobs ) {
index ddd4fcc..fb73bf1 100644 (file)
@@ -66,11 +66,11 @@ class DoubleRedirectJob extends Job {
                                'redirTitle' => $redirTitle->getPrefixedDBkey() ) );
                        # Avoid excessive memory usage
                        if ( count( $jobs ) > 10000 ) {
-                               Job::batchInsert( $jobs );
+                               JobQueueGroup::singleton()->push( $jobs );
                                $jobs = array();
                        }
                }
-               Job::batchInsert( $jobs );
+               JobQueueGroup::singleton()->push( $jobs );
        }
 
        function __construct( $title, $params = false, $id = 0 ) {
index 99a8429..4996984 100644 (file)
@@ -52,7 +52,7 @@ class NullJob extends Job {
                        $params = $this->params;
                        $params['lives']--;
                        $job = new self( $this->title, $params );
-                       $job->insert();
+                       JobQueueGroup::singleton()->push( $job );
                }
                return true;
        }
index bdedbd1..cad9c1b 100644 (file)
  * @ingroup Media
  */
 class DjVuImage {
+       /**
+        * Constructor
+        *
+        * @param string $filename The DjVu file name.
+        */
        function __construct( $filename ) {
                $this->mFilename = $filename;
        }
 
+        /**
+         * @const DJVUTXT_MEMORY_LIMIT Memory limit for the DjVu description software
+         */
+       const DJVUTXT_MEMORY_LIMIT = 300000;
+
        /**
         * Check if the given file is indeed a valid DjVu image file
         * @return bool
@@ -252,7 +262,7 @@ class DjVuImage {
                        $cmd = wfEscapeShellArg( $wgDjvuTxt ) . ' --detail=page ' . wfEscapeShellArg( $this->mFilename ) ;
                        wfDebug( __METHOD__.": $cmd\n" );
                        $retval = '';
-                       $txt = wfShellExec( $cmd, $retval, array(), array( 'memory' => 300000 ) );
+                       $txt = wfShellExec( $cmd, $retval, array(), array( 'memory' => self::DJVUTXT_MEMORY_LIMIT ) );
                        wfProfileOut( 'djvutxt' );
                        if( $retval == 0) {
                                # Strip some control characters
index 54051dc..222d475 100644 (file)
@@ -86,6 +86,7 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
+        * @throws
         * @return DatabaseBase
         */
        protected function getDB() {
index 9f1fff2..e1fdbc3 100644 (file)
@@ -254,12 +254,12 @@ class LinkHolderArray {
         * @todo FIXME: Update documentation. makeLinkObj() is deprecated.
         * Replace <!--LINK--> link placeholders with actual links, in the buffer
         * Placeholders created in Skin::makeLinkObj()
-        * Returns an array of link CSS classes, indexed by PDBK.
+        * @return array of link CSS classes, indexed by PDBK.
         */
        function replace( &$text ) {
                wfProfileIn( __METHOD__ );
 
-               $colours = $this->replaceInternal( $text );
+               $colours = $this->replaceInternal( $text ); // FIXME: replaceInternal doesn't return a value
                $this->replaceInterwiki( $text );
 
                wfProfileOut( __METHOD__ );
index 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 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 55209d4..c857f25 100644 (file)
@@ -141,12 +141,13 @@ class UploadFromStash extends UploadBase {
        /**
         * Stash the file.
         *
+        * @param $user User
         * @return UploadStashFile
         */
-       public function stashFile() {
+       public function stashFile( User $user = null ) {
                // replace mLocalFile with an instance of UploadStashFile, which adds some methods
                // that are useful for stashed files.
-               $this->mLocalFile = parent::stashFile();
+               $this->mLocalFile = parent::stashFile( $user );
                return $this->mLocalFile;
        }
 
index 7f430c5..70b6903 100644 (file)
@@ -332,7 +332,7 @@ class UploadFromUrl extends UploadBase {
                        'sessionKey' => $sessionKey,
                ) );
                $job->initializeSessionData();
-               $job->insert();
+               JobQueueGroup::singleton()->push( $job );
                return $sessionKey;
        }
 
index 79783cc..fed8835 100644 (file)
@@ -618,6 +618,8 @@ class LanguageConverter {
                if ( $wgDisableLangConversion ) {
                        return $text;
                }
+               // Reset converter state for a new converter run.
+               $this->mConvRuleTitle = false;
                return $this->recursiveConvertTopLevel( $text, $variant );
        }
 
index 29bc99d..d00466b 100644 (file)
@@ -221,7 +221,7 @@ $messages = array(
 'hidden-category-category' => 'ܣܕܪ̈ܐ ܛܘܫܝ̈ܐ',
 'category-subcat-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܗܢܐ ܣܕܪܐ ܦܪܥܝܐ ܕܐܬܐ ܒܠܚܘܕ.|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ {{PLURAL:$1|ܣܕܪܐ ܦܪܥܝܐ ܕܐܬܐ|$1 ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ ܕܐܬܝܢ}}، ܡܢ ܣܘܝܟܐ ܕ $2.}}',
 'category-subcat-count-limited' => 'ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ {{PLURAL:$1|ܣܕܪܐ ܦܪܥܝܐ ܗܢܐ|$1 ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ ܗܠܝܢ}}.',
-'category-article-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ {{PLURAL:$1|ܠܝܬ ܒܗ ܦܐܬܐ|ܐܝܬ ܒܗ ܦܐܬܐ ܗܕܐ|ܐܝܬ ܒܗ ܗܠܝܢ $1 ܦܐܬܬ̈ܐ}} ܡܢ ܣܘܝܟܐ ܕ$2.}}',
+'category-article-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܠܝܬ ܒܗ ܦܐܬܐ.|{{PLURAL:$1||ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܦܐܬܐ ܗܕܐ ܒܠܚܘܕ|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܗܠܝܢ $1 ܦܐܬܬ̈ܐ}} ܡܢ ܣܘܝܟܐ ܕ $2.}}',
 'category-article-count-limited' => '{{PLURAL:$1|ܦܐܬܐ ܗܕܐ|$1 ܦܐܬܬ̈ܐ ܗܠܝܢ}} ܒܣܕܪܐ ܗܢܐ.',
 'category-file-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܠܦܦܐ ܕܐܬܐ ܒܠܚܘܕ.|{{PLURAL:$1|ܠܦܦܐ ܕܐܬܐ ܐܝܬܘܗܝ|$1 ܠܦܦ̈ܐ ܕܐܬܝܢ ܐܝܬܝܗܘܢ}} ܒܣܕܪܐ ܗܢܐ، ܡܢ ܣܘܝܟܐ ܕ $2.}}',
 'category-file-count-limited' => 'ܐܝܬ {{PLURAL:$1|ܠܦܦܐ ܕܐܬܐ|$1 ܠܦܦ̈ܐ ܕܐܬܝܢ}} ܒܣܕܪܐ ܗܫܝܐ.',
index e856159..d9d6b2d 100644 (file)
@@ -2372,7 +2372,7 @@ $1",
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => 'Collaboraciones del usuariu',
+'contributions' => 'Collaboraciones {{GENDER:$1|del usuariu|de la usuaria}}',
 'contributions-title' => "Contribuciones d'usuariu pa $1",
 'mycontris' => 'Collaboraciones',
 'contribsub2' => 'De $1 ($2)',
index b720c81..e76aa3d 100644 (file)
@@ -293,7 +293,7 @@ $1',
 'editold' => 'دَییش',
 'viewsourceold' => 'قایناقا باخ',
 'editlink' => 'دَییشدیر',
-'viewsourcelink' => 'قایناغا باخ',
+'viewsourcelink' => 'قایناقا باخ',
 'editsectionhint' => 'بؤلومو دَییشدیر: $1',
 'toc' => 'ایچینده‌کی‌لر',
 'showtoc' => 'گؤستر',
@@ -787,6 +787,7 @@ $2
 'edit-already-exists' => 'یئنی صحیفنی یاراتماق مومکون دئییل.
 بئله کی، بو آددا صحیفه آرتیق مؤوجوددور.',
 'defaultmessagetext' => 'دفالت دانیشیق متنی',
+'content-failed-to-parse' => 'تجزیه محتوای $2  مدل اوچون $1: $3 موفقیت اله گلمه دی',
 'invalid-content-data' => 'اعتبارسیز مضمون معلوماتی',
 'content-not-allowed-here' => '"$1" مقاله‌سینه، [[$2]] صحیفه‌سینده ایجازه وئریلممیش دیر.',
 
@@ -815,6 +816,8 @@ $2
 'expansion-depth-exceeded-category' => 'گئنیشلمه درین‌لیگی آشیلان صحیفه‌لر',
 'expansion-depth-exceeded-warning' => 'صحیفه گئنیشلنمه درین‌لیگی آشیلدی',
 'parser-unstrip-loop-warning' => 'تکرارلاما دونمه سی قبول ائدیلدی',
+'parser-unstrip-recursion-limit' => 'حداکثر ارجاع دستور دا unstrip تجاوز گئچیب دیر ($1)',
+'converter-manual-rule-error' => 'خطا ال مبدیلی قانون لاریندا',
 
 # "Undo" feature
 'undo-success' => 'بو دَییشیک‌لیک گئری آلینا بیلر. لطفاً آشاغی‌داکی موقاییسه ائتمیی نظارت ائدین، حقیقتن بو دییشیک‌لیگی ائتمک ایستدیگینیزدن امین اولون و صحیفنی یازا‌راق بیر اوولکی دییشیک‌لیگی گئرییه آلین.',
@@ -1488,14 +1491,22 @@ $1",
 فايلینیزی يئنه ده يوکله‌مک ایسته‌يیرسینیزسه، خاهیش ائدیریک گئری گئدیب يئنی بیر آد ایستیفاده ائدین. 
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'بو فایل آشاغی‌داکی {{PLURAL: $1 | فایلین | فایل‌لارین}} تکراری سی‌دیر:',
+'file-deleted-duplicate' => 'بو فایلین عینی اولان باشقا بیر فایل([[:$1]])داها اول‌دن سیلیندی. بو فای‌لی یئنی‌دن یوکلمه‌دن اول دیگر فایلین سیلینمه‌سی قئیدلرینی ایداره ائتملیسینیز.',
 'uploadwarning' => 'يوکله‌مه خبردارلیغی',
+'uploadwarning-text' => 'خاهیش ائدیریک آشاغی‌داکی فایل شرحینی دییش‌دیرین و یئنی‌دن جهد ائدین.',
 'savefile' => 'فايلی قئيد ائت',
 'uploadedimage' => '"[[$1]]" یوکلندی',
+'overwroteimage' => '"[[$1]]"-این یئنی نوسخه سی یوکلندی',
 'uploaddisabled' => 'يوکله‌مه باش توتمادی',
+'copyuploaddisabled' => 'اینترنت آدرسی ایله یوکلمه باش توتمادی.',
 'uploadfromurl-queued' => 'يوکله‌مه‌نیز نؤوبه گؤزله‌يیر',
 'uploaddisabledtext' => 'فايل يوکلنمه‌سی باش توتمادی.',
+'php-uploaddisabledtext' => 'پی اچ پی فایل یوکلملری دؤوره خاریجی‌دیر. خاهیش ائدیریک file_uploads تنظیم لرین یئنی دن بیر باخین.',
+'uploadscripted' => 'بو فایل بیر اینتئرنئت آختاریش برنامه سی طرفین‌دن سهو چئوریلبیلجک بیر HTML و یا ایسکریپت کودو عبارت‌دیر.',
 'uploadvirus' => 'فايلدا ویروس وار!  
 دئتاللار: $1',
+'uploadjava' => 'فایل، بیر جاوا. نوع ‎‎class ائهتیوا ائدن بیر زیپ فایلی‌دیر.
+جاوا فایل‌لارینین یوکلنمه‌سینه ایجازه وئریلمیر، چونکی تهلوکه‌سیزلیک محدودلاشدیرما‌لارینین آتلانماسینا سبب اولا بیلمکده‌دیرلر.',
 'upload-source' => 'قایناق فايلی',
 'sourcefilename' => 'فايل آدی منبع‌لری',
 'sourceurl' => 'قایناق آدرسی',
@@ -1504,7 +1515,14 @@ $1",
 'upload-description' => 'فایل ایضاهی',
 'upload-options' => 'یوکلمه سئچینیکلر',
 'watchthisupload' => 'بو فايلی ایزله',
+'filewasdeleted' => 'بو آددا بیر فایل یاخین زاماندا یوکلندی و سونرا ایداره‌چی‌لر طرفین‌دن سیلیندی. فای‌لی یوکلئمئدئن اول، $1 صحیفه‌سینه بیر گؤز آتین.',
+'filename-bad-prefix' => 'یوکلمکده اولدوغونوز فایلین آدی، عمومی اولا‌راق رقمسال کامئرا‌لار طرفین‌دن آوتوماتیک اولا‌راق ائکئلئنئن و آچیقلاییجی اولمایان \'"$1"\' ایله باشلاییر.
+خاهیش ائدیریک فایلینیز اوچون داها آچیقلاییجی بیر آد سئچین.
+
+یوکلمکده اولدوغونوز فایلین آدی، عمومی اولا‌راق رقمسال کامئرا‌لار طرفین‌دن آوتوماتیک اولا‌راق باغلانان و آچیقلاییجی اولمایان \'"$1"\' ایله باشلاییر.
+خاهیش ائدیریک فایلینیز اوچون داها آچیقلاییجی بیر آد سئچین.',
 'upload-success-subj' => 'یوکلمه گوتولدو',
+'upload-success-msg' => '[$2] یوکلمه‌نیز موفقیت‌لی اولدو. یوکلمه‌نیز بورادا مؤوجود: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'یوکلمه پروبلئمی',
 'upload-failure-msg' => '[$2]-دن یوکله‌دیگینیزده بیر ایشکال قاباغا گلدی:
 
@@ -1515,16 +1533,28 @@ $1',
 'upload-proto-error' => 'یانلیش پروتوکول',
 'upload-proto-error-text' => 'اوزاقدان یوکلمه، <code>http://</code> یوخسا <code>ftp://</code> ایله باشلانان آدرس ایسته‌ییر.',
 'upload-file-error' => 'ایچ خطاسی',
+'upload-file-error-text' => 'سئروئرده مووققتی فایل میدانا گتیرمه جهدی زامانی بیر داخیلی خطا میدانا گلدی.
+خاهیش ائدیریک بیر [[Special:ListUsers/sysop|administrator]] یله علاقه ساخلایین.',
 'upload-misc-error' => 'بیلین‌مه‌ین یوکلمه خطاسی',
+'upload-misc-error-text' => 'یوکلمه اسناسیندا بیلینمه‌ین بیر خطا میدانا گلدی.
+خاهیش ائدیریک علاقه‌نین اعتبارلی و چاتیلا بیلر اولدوغونو تصدیق و یئنی‌دن جهد ائدین.
+اگر پروبلئم تکرارلانسا، بیر [[Special:ListUsers/sysop|administrator]] ایله علاقه ساخلایین',
 'upload-too-many-redirects' => 'آدرس ده چوخ یؤنلندیرمه وار',
 'upload-unknown-size' => 'بیلین‌مه‌ين هجم',
+'upload-http-error' => 'اچ تی تی پی ختاسی وار : $1',
+'upload-copy-upload-invalid-domain' => 'فایل یوکلنمه سی بو بازه ده امکانی یوخدور',
 
 # File backend
 'backend-fail-stream' => '$1 فای‌لی یولانمامادی.',
+'backend-fail-backup' => 'بو فایل $1 اوچون نوسخه پشتیان یارتماق اولماز',
 'backend-fail-notexists' => '"$1" فای‌لی مؤوجود دئییل',
+'backend-fail-hashes' => 'هش‌لری آلماق پرونده مقایسه اوچون یانلیشی دیر.',
+'backend-fail-notsame' => 'بیر اولمایان فایل $1 دا واردیر.',
 'backend-fail-invalidpath' => '"$1" اعتبارلی بیر ییغما یولو دئییل.',
 'backend-fail-delete' => '"$1" فایلن سیله بیلمه سینیز.',
+'backend-fail-describe' => 'مئتاداتا "$1" فایل دییشیک‌لیک وئرمک اولماز.',
 'backend-fail-alreadyexists' => '"$1" فای‌لی اونسوز دا مؤوجوددور.',
+'backend-fail-store' => 'فایلین $1 $2 ساخلایا ائتمک اولا بیلمز.',
 'backend-fail-copy' => '"$1" فايلی "$2" فايلینا کوپي‌لانمیر.',
 'backend-fail-move' => '"$1" فای‌لی، "$2" فایلینا تاشینامادی.',
 'backend-fail-opentemp' => 'مووققتی فایل آچیلا بیلمه‌دی.',
@@ -1532,6 +1562,30 @@ $1',
 'backend-fail-closetemp' => 'مووققتی فایل باغلاندی.',
 'backend-fail-read' => '"$1" فایلی اوخونمادی.',
 'backend-fail-create' => '"$1" فایلی یارانمادی.',
+'backend-fail-maxsize' => 'ائدیر: فایل داها چوخ $1 {{PLURAL:$2|بیر بایتی|$2 بایتی}} $2 {جمع} چونکی داتا یازا بیلمز.',
+'backend-fail-readonly' => 'پشتیبان "$1" حال حاضیر دا فقط اوخوماق وضعیتینده دیر. وئریلمیش سببی: "$2"',
+'backend-fail-synced' => 'فایل «$1» پشتیبان لاری اوچوجو داخی‌لی وضعیت ساخلانیلیر',
+'backend-fail-connect' => 'ارتیباط ذخیره پشتیبانی «$1» ایله قورولمادی',
+'backend-fail-internal' => 'بیلنمه ین خطا ذخیره پشتیبانین دا «$1» اوز وئردی.',
+'backend-fail-contenttype' => 'فایلین ایچینده کی نوعون ساخلاماق اوچون «$1» یئرده  تعیین اولماسی موفقیت سیزی دیر.',
+'backend-fail-batchsize' => 'دسته لر واردیر $1 {{PLURAL:$1|ایش آپاریلماسی |ایش آپاریلماسی}} فایل ذخیره پشتیبانینا ذخیره وئریلدی؛ چوخلوسی، ایجازه وار $2 {{PLURAL:$2|ایش آپاریلماسی |ایش آپاریلماسی}} دیر.',
+'backend-fail-usable' => '$1فایل اوچون اوخوماق و یازماق ایمکانی یوخدور نیه کی  دسرسی سطحی کیفایت ائتمیر یا دا نظرده آلینان شاخه/محفظهٔ یوخدور.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'وصل اولماق ایمکانی دفترخانا داده پایگاهینا پشتیبانلیق ائتمک اوچون   "$1" ساخلاماقی یوخدور.',
+'filejournal-fail-dbquery' => 'دفترخانا داده پایگاهین یئنی لمک پشتیبان ساخلاماق اوچون«$1» امکان یوخدور.',
+
+# Lock manager
+'lockmanager-notlocked' => 'کلید «$1» آچماق اولمور؛ نیه کی بالانمییب.',
+'lockmanager-fail-closelock' => 'موحافیظه اولونموش فایل "$1" اوچون باقلاماق اولا بیلمز .',
+'lockmanager-fail-deletelock' => 'موحافیظه اولونموش فایل "$1" اوچون سیلمه اولا بیلمز .',
+'lockmanager-fail-acquirelock' => 'موحافیظه «$1» اوچون اولا بیلمز',
+'lockmanager-fail-openlock' => 'موحافیظه اولونموش فایل "$1" اوچون آچمااولا بیلمز .',
+'lockmanager-fail-releaselock' => 'موحافیظه «$1» اوچون آچیلا بیلمز',
+'lockmanager-fail-db-bucket' => 'ارتباط ایمکانی داده پایگاهین تعداد کافی  کیلد لر $1 محفظه سینده یوخدور.',
+'lockmanager-fail-db-release' => 'داده پایاگاهین $1 کیلید لرین آچماقی مومکین دییل.',
+'lockmanager-fail-svr-acquire' => 'سئرور کیلید لرین $1 اچماق مومکین دییل.',
+'lockmanager-fail-svr-release' => 'سئرور کیلید لرین $1 آچماق امکانی یوخدور.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'فايل زیپ يوخلامالاری اوچون آچیلارکن بیر خطاایله قارشیلاشیلدی.',
@@ -1640,11 +1694,16 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'sharedupload-desc-there' => 'بو فایل $1 آنبارین‌دان و دیگر پروژئجتس. داها چوخ معلومات اوچون لطفاً [$2 فایل شرح صحیفه‌سینه] باخین.',
 'sharedupload-desc-here' => 'بو فایل $1-دن‌دیر و آیری پروژه‌ده ایستیفاده اولماق امکانی وار.
 اونون باره‌سینده اولان شرح [$2 فایلین شرح صحیفه‌سی] آشاغیدا گوستریلیب.',
+'sharedupload-desc-edit' => 'بو فایل $1 دن دیر و ائلیه بیلر اوبیری پروژه لرده ایستفاده اولا.
+ایر ایستیرسینیز ائلیه بیلرسینیز پرونده نین شرحلرین [$2 شرحلر صحیفه سیندن]دییشدیرسینیز.',
+'sharedupload-desc-create' => 'بو فایل $1 دن دیر و ائلیه بیلر اوبیری پروژه لرده ایستفاده اولا.
+ایر ایستیرسینیز ائلیه بیلرسینیز پرونده نین شرحلرین[$2 شرحلر صحیفه سیندن]دییشدیرسینیز.',
 'filepage-nofile' => 'بو آدلا فایل یوخدور',
 'filepage-nofile-link' => 'بو آددا بیر فایل یوخ، اما سیز [$1 یوکله‌یه بیلرسینیز].',
 'uploadnewversion-linktext' => 'بو فايلین يئنی سین يوکله',
 'shared-repo-from' => '$1-دن',
 'shared-repo' => 'عومومی آمبار',
+'upload-disallowed-here' => 'تاسف لر سیز ائلیه بیلمه سیز بو فایلی تزدن یازاسیز.',
 
 # File reversion
 'filerevert' => '$1فایلی اولکی حالینا قایتار',
@@ -1666,6 +1725,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'filedelete-success' => "'$1 سیلینمیش‌دیر.",
 'filedelete-success-old' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'-nin  $3 və $2 نوسخه لری سیلینمیش‌دیر.</span>',
 'filedelete-nofile' => "'$1 مؤوجود دئییل.",
+'filedelete-nofile-old' => "'''$1 اوچون نظرده توتولان خصوصیتده آرشیولئنمیش بیر نوسخه یوخ.",
 'filedelete-otherreason' => 'باشقا/آرتیق دلیل:',
 'filedelete-reason-otherlist' => 'باشقا سبب',
 'filedelete-reason-dropdown' => '*اساس سیلمه سببی
@@ -1736,6 +1796,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 بیر صحیفه، بلیرلندیرمه صحیفه‌سی کیمی اولار، اگر [[MediaWiki:Disambiguationspage]] صحیفه‌سینه باغلانمیش بیر شابلون‌دان ایستیفاده ائتسه.",
 
 'doubleredirects' => 'ایکی‌قات یول‌لاندیرمالار',
+'doubleredirectstext' => 'بو صحیفه دیگر ایستیقامتلندیرمه صحیفه‌لرینه ایستیقامتلندیرمه ائدن صحیفه‌لری سیاهی‌لار.
+هر سطرین ائهتیوا ائتدیگی کئچیدلر؛ بیرینجی و ایکینجی ایستیقامتلندیرمه، هم‌چی‌نین ایکینجی ایستیقامتلن‌دیرمک هدفی، کی بو عمومیتله بیرینجی ایستیقامتلن‌دیرمک گؤسترمه‌سی لازیم اولان "گئرچک" هدف صحیفه‌سی‌دیر.
+<del> اوستو خط لنیب </del> دوزلمیش دیر.',
 'double-redirect-fixed-move' => '[[$1]] دییشدیریلیب.
 حاضردا [[$2]]-یه ایستیقامتلنیب.',
 'double-redirect-fixed-maintenance' => '[[$1]]-دن [[$2]]-یه ایکی‌قات ایستیقامتلنمه دوزلدیلیر.',
@@ -1765,6 +1828,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'ntransclusions' => '$1 ده{{PLURAL:$1|صحیفه‌ده}}ایستیفاده اولونور',
 'specialpage-empty' => 'بو صحیفه بوشدور',
 'lonelypages' => 'يئتیم صحیفه‌‌لر',
+'lonelypagestext' => 'آشاغی‌داکی صحیفه‌لره {{SITENAME}} سایتین‌داکی دیگر صحیفه‌لردن علاقه وئریلممیش یا دا چارپاز داخیل ائدیلممیش.',
 'uncategorizedpages' => 'بؤلمه‌سیز صحیفه‌لر',
 'uncategorizedcategories' => 'بؤلمه‌سیز بؤلمه‌لر',
 'uncategorizedimages' => 'بؤلمه‌سیز شکیل‌لر',
@@ -1776,6 +1840,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'wantedpages' => 'ایسته نن صحیفه‌لر',
 'wantedpages-badtitle' => 'مراجعت زامانتی يانلیش باشلیق: $1',
 'wantedfiles' => 'ایسته نن فایللار',
+'wantedfiletext-nocat' => 'اشاغی داکی فایل لار ایستفاده اولور سانکی یوخدولار.حتی مومکین دیر خارجی حویض مخزن لریندن اولماق  ایله بو ردا فهرست اولا . وهر مثب رتبه سی یانلیش <del> خط یئمیش اولاجاق.</del>',
 'wantedtemplates' => 'ایسته نن شابلونلار',
 'mostlinked' => 'ان چوخ کئچیدلنن صحیفه‌‌لر',
 'mostlinkedcategories' => 'ان چوخ مقاله‌سی اولان بولمه لر',
@@ -1785,6 +1850,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'mostinterwikis' => 'اینتر ویکی‌سی ان چوخ اولان صحیفه‌لر',
 'mostrevisions' => 'ان چوخ نظردن کئچیریلمیش (وئرسیا‌لی) مقاله‌لر',
 'prefixindex' => 'پرئفیکس ایندئکسلی بوتون یارپاقلار',
+'prefixindex-namespace' => 'بوتون صفحه لر (آد فضاسی$1) قاباق دان یاپیشیقی وار',
 'shortpages' => 'قیسا صحیفه‌‌لر',
 'longpages' => 'اوزون صحیفه‌‌لر',
 'deadendpages' => 'کئچید وئرمه‌ين صحیفه‌‌لر',
@@ -1795,6 +1861,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'protectedpagestext' => 'آشاغی‌داکی صحیفه‌لر آد دییشیمینه و دَییشدیرمه‌یه باغلی‌دیر',
 'protectedpagesempty' => 'حال-حاضردا بو پارامئتره اویغون هئچ بیر محافظه‌لی صحیفه یوخ‌دور',
 'protectedtitles' => 'محافظه‌لی باش‌لیق‌لار',
+'protectedtitlestext' => 'آشاغی‌داکی باش‌لیق‌لار یارادیلماغا قارشی قوروما‌لی‌دیر',
+'protectedtitlesempty' => 'حال-حاضردا، بو پارامئترلری قورونان هئچ بیر موضوع یوخ‌دور.',
 'listusers' => 'ایستیفاده‌چی سیياهیسی',
 'listusers-editsonly' => 'يالنیز دَییشدیرمه ائدن ایستیفاده‌چیلری گؤستر',
 'listusers-creationsort' => 'يارانما تاریخینه گؤره سیرالا',
@@ -1805,8 +1873,13 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'ancientpages' => 'ان اسکی صحیفه‌لر',
 'move' => 'آدینی دَییشدیر',
 'movethispage' => 'بو صحیفه‌‌نین آدینی ديَیشدیر',
+'unusedimagestext' => 'آشاغی‌داکی فایل‌لار وار آنجاق هر هانسی بیر صحیفه‌ده باسدیریلمیش دئییل.
+خاهیش ائدیریک اونوتمایین کی، دیگر web سایت‌لاری بیر فایلا بیرباشا بیر اورل ایله علاقه وئره بیلر، و بونا گؤره ائففئکتیو ایستیفاده‌ده اولماسا بئله هله بورادا لیستنبیلیر.',
+'unusedcategoriestext' => 'آشاغیدا اولان بولمه لر مؤوجود اولدوغو حالدا، هئچ بیر مادده یا دا بولمه لر طرفین‌دن ایستیفاده ائدیلمیر.',
 'notargettitle' => 'وئریلمه‌يیب',
+'notargettext' => 'بو صحیفه یا یا کاربر حیاتا کئچیرمک اوچون بیر هدف صحیفه‌سی یا دا ایستیفاده‌چی‌سی بئلیرتمئدینیز.',
 'nopagetitle' => 'بئله هدف صحیفه‌سی یوخ‌دور',
+'nopagetext' => 'ایفاده ائتدیگینیز هدف صحیفه‌سی مؤوجود دئییل.',
 'pager-newer-n' => '{{PLURAL:$1|بیر داها یئنی|$1 داها یئنی}}',
 'pager-older-n' => '{{PLURAL:$1|بیر داها کؤهنه|$1 داها کؤهنه}}',
 'suppress' => 'باخان',
@@ -1817,6 +1890,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'booksources-search-legend' => 'کیتاب قایناقلارین آختار',
 'booksources-go' => 'گئت',
 'booksources-text' => 'آشاغیدا یئنی و ایشلنمیش کیتاب‌لار ساتان خاریجی کئچیدلرده سیز آختاردیغینیز کیتاب حاقیندا علاوه معلومات آلا بیلرسیز:',
+'booksources-invalid-isbn' => 'وئریلن ISBN اعتبارسیز کیمی گؤرونور؛ اورجینال قایناق‌دان کوپیالاما اشکالار اوچون نظارت ائدین.',
 
 # Special:Log
 'specialloguserlabel' => 'ایجراچی',
@@ -1827,6 +1901,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 قئید نؤوو، ایستیفاده‌چی آدی و یا تأثیر ائدیلمیش صحیفنی سئچمکله داها ایسپئسیفیک اولا بیلرسینیز.',
 'logempty' => 'ژورنالدا اويغون قئيد تاپیلمادی.',
 'log-title-wildcard' => 'بو متنله باشلایان باش‌لیق‌لاری آختار',
+'showhideselectedlogentries' => 'گؤستریش/گیزلمه سییاهه ده سئچیلمیش‌لر اوچون',
 
 # Special:AllPages
 'allpages' => 'بوتون صحیفه‌لر',
@@ -1842,9 +1917,12 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'allpagesnext' => 'سونراکی',
 'allpagessubmit' => 'گئت',
 'allpagesprefix' => 'بورا یازدیغینیز حرف‌لرله باشلایان صحیفه‌لری سیاهی‌سینی:',
+'allpagesbadtitle' => 'گیریلن صحیفه آدی دیل‌لر آراسی علاقه و یا wiki آراسی علاقه ائهتیوا ائتدیگین‌دن اعتبارلی دئییل. باش‌لیق‌لاردا ایستیفاده ائدیلمه‌سی قاداغان اولان بیر یا دا داها چوخ کاراکتئر ائهتیوا ائدیر اولا بیلر.',
+'allpages-bad-ns' => '{{SITENAME}} سایتیندا "$1" آد ساحه‌سی یوخ.',
 'allpages-hide-redirects' => 'یؤنلندیرمه‌لری گیزلت',
 
 # SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'سیز بو صفحه نین بیر نوسخه نی گورورسیز کی اورتا توتان یئرلشیب دیر و مومکین دیر $1 اوچون قاباقدان اولا.',
 'cachedspecial-refresh-now' => 'ان سونراکی گورونوش',
 
 # Special:Categories
@@ -1852,6 +1930,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'categoriespagetext' => 'آشاغی‌داکی {{PLURAL:$1|بولمه لردهٔ|بولمه لرده}}  صحیفه‌لر، یاخود مئدیا-فایل‌لار وار.
 [[Special:UnusedCategories|ایستفاده اولمایان بولمه لر]] بورادا گؤستریلمه‌ییب.
 هم‌چی‌نین، [[Special:WantedCategories|لازیم اولان بولمه لره]] باخین.',
+'categoriesfrom' => 'شونونلا باشلایان بولمه لر باخ:',
 'special-categories-sort-count' => 'میقدارا گؤره تنزیمله',
 'special-categories-sort-abc' => 'الیفبا سیراسی ایله دوز',
 
@@ -1979,10 +2058,14 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'ایزله‌نیلیر...',
 'unwatching' => 'ایزله‌مه...',
+'watcherrortext' => 'ایزلئمئ سیاهی‌سی ترجیحلرینیزی "$1" اوچون دییشدیررکن بیر خطا میدانا گلدی.',
 
 'enotif_mailer' => '{{SITENAME}} بیلدیریش خیدمتی',
 'enotif_reset' => 'باخیلمیش بوتون صحیفه‌لری ایشاره‌له.',
 'enotif_impersonal_salutation' => '{{SITENAME}} ایستیفاده‌چی‌سی',
+'enotif_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_lastvisited' => 'سونونجو زیارتینیزدن ایندیدک اولان بوتون دییشیک‌لیک‌لری گؤرمک اوچون باخین: $1.',
 'enotif_lastdiff' => 'بو دییشیک‌لیگی گؤرمک اوچون $1 صحیفه‌سینه باخین.',
 'enotif_anon_editor' => 'قئیدیات‌سیز ایستیفاده‌چی $1',
@@ -2036,13 +2119,24 @@ $نئwپاگئ
 ** یازانلار حقوق پوزونتوسو
 ** واندالیزم',
 'delete-edit-reasonlist' => 'سیلمک دلیل‌لرینی دَییشدیر',
+'delete-toobig' => 'بو صحیفه، $1 {{PLURAL: $1 | دنه دییشیک‌لیک | دنه دییشیک‌لیک}} ایله چوخ اوزون بیر کئچمیشه مالیک‌دیر.
+بئله صحیفه‌لرین سیلینمه‌سی، {{SITENAME}} سایتینی پوزماماق اوچون مهدودلاشدیریلماقدا‌دیر.',
+'delete-warning-toobig' => 'بو صحیفه‌‌نین بؤيوک بیر ديَیشیکلیک کئچمیشی وار، $1 {{PLURAL:$1|نسخه| نسخه}} اوزرینده. 
+بونو سیلمک {{SITENAME}} عملیاتلارینی مخدل‌ائده‌بیلیر؛ 
+دیقتله داوام ائدین.',
 
 # Rollback
 'rollback' => 'اوولکی نوسخه لر',
 'rollback_short' => 'اوولکی حالینا قایتار',
 'rollbacklink' => 'گئری‌دؤندر',
+'rollbacklinkcount' => 'گیتیرلمه $1  {{PLURAL:$1|دییشمک |دییشمک}} دییشدیرمه',
+'rollbacklinkcount-morethan' => 'گیتیرلمه آرتیق $1 {{PLURAL:$1|دییشمک |دییشمک}} دییشدیرمه',
 'rollbackfailed' => 'گئری قایتارما اوغورسوزدور',
 'cantrollback' => 'دییشدیر گئری قایتاریلا بیلمز؛ آخیرینجی دییشدیر صحیفه‌ده اولان یئگانه فالیت‌دیر.',
+'alreadyrolled' => '[[User:$2|$2]] ([[User talk:$2|موزاکیره]] {{int:pipe-separator}} [[Special:Contributions/$2| {{int:contribslink}}]]) طرفین‌دن [[:$1]] صحیفه‌سینده ائدیلمیش سون دییشیک‌لیک گئرییه آلینا بیلمیر؛
+باشقا بیری صحیفه‌ده دییشیک‌لیک ائتدی یا دا صحیفنی گئرییه آلدی.
+
+سون دییشیک‌لیگی ائدن: [[User:$3|$3]] ([[User talk:$3|تالک]] {{int:pipe-separator}} [[Special:Contributions/$3| {{int:contribslink}}]] ).',
 'editcomment' => "دییشیک‌لیک خلاصه‌سی: ''\" \$1''\" ایدی.",
 'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|دانیشیق]]) طرفین‌دن ائدیلمیش دییشیک‌لیک‌لر [[User:$1|$1]] طرفین‌دن ائدیلمیش دییشیک‌لیک‌لره قایتاریلدی.',
 'revertpage-nouser' => '(ایستیفاده‌چی آدی چیخاریلمیش) طرفین‌دن ائدیلن دییشیک‌لیک‌لر [[User:$1|$1]] طرفین‌دن ائدیلن سون دییشیک‌لییه گئری آلیندی',
@@ -2056,12 +2150,16 @@ $نئwپاگئ
 
 # Protect
 'protectlogpage' => 'قوروما قئیدلری',
+'protectlogtext' => 'آشاغی‌داکی، صحیفه قوروما‌لارینا دییشیک‌لیک‌لرین بیر سیاهی‌سی‌دیر.
+حال-حاضردا تطبیق اولونان صحیفه قوروما‌لاری اوچون [[Special:ProtectedPages| قوروما آلتینا آلینمیش صحیفه‌لر سیاهی‌سینا]] باخا بیلرسینیز.',
 'protectedarticle' => '"[[$1]]" قورولدو',
 'modifiedarticleprotection' => '"[[$1]]" صحیفه‌سی اوچون محافظه سویه‌سی دییشیلدی',
 'unprotectedarticle' => 'محافظه کنارلاشدیریلدی "[[$1]]"',
+'movedarticleprotection' => 'قوروما نیزام‌لاری "[[$2]]" صحیفه‌سین‌دن "[[$1]]" صحیفه‌سی داشیندی',
 'protect-title' => '"$1" اوچون محافظه سویه‌سی‌نین دییشدیریلمه‌سی',
 'protect-title-notallowed' => '"$1"اوچون محافظه سویه‌سی‌نین گؤسترین',
 'prot_1movedto2' => '[[$1]] آدی دییشیلدی. یئنی آدی: [[$2]]',
+'protect-badnamespace-title' => 'آد سیز حفظ اولموش فضا',
 'protect-badnamespace-text' => 'بو آد ساحه‌سین‌دکی صحیفه‌لر قورونا.',
 'protect-legend' => 'قورومایی تصدیق ائت',
 'protectcomment' => 'ندن:',
@@ -2121,10 +2219,19 @@ $نئwپاگئ
 'undeletepage' => 'سیلینمیش صحیفه‌لری گؤستر و یا برپا ائت',
 'undeletepagetitle' => "'اشاغی‌داکی، [[:$1|$1]] صحیفه‌سی‌نین سیلینمیش دییشیک‌لیک‌لرین‌دن ایبارتدیر.",
 'viewdeletedpage' => 'سیلینمیش صحیفه‌لری گؤستر',
+'undeletepagetext' => 'آشاغی‌داکی {{PLURAL:$1|صحیفه|$1 صحیفه}} سیلینمیش‌دیر اما هله آرشیودئ‌دیر و گئری گتیریله بیلر.
+آرخیو نیزام‌لی اولا‌راق تمیزلمک اولار.',
 'undelete-fieldset-title' => 'دییشیک‌لیک‌لری گئری یوکله',
+'undeleteextrahelp' => "سایفا‌لارلا بیرلیکده کئچمیشی گئری گتیرمک اوچون تصدیق قوتولارینا توخونمادان 'گئری گتیر!' دویمه‌سینه باسین. صحیفه‌نین کئچمیشینی آیری-آیری گتیرمک اوچون گئری گتیرمک ایستدیگینیز دییشیک‌لیک‌لرین تصدیق قوتولارینی سئچیب 'گئری گتیر!' دویمه‌سینه باسین. سئچیلن تسدیق قوتولارینی و سبب ساحه‌سینی یئنی‌دن قورماق اوچون 'وازگئچ دویمه‌سینه باسین.",
+'undeleterevisions' => '$1 {{PLURAL:$1 | اولوب دیر | اولدولار}} آرشیولئندی',
 'undeletehistory' => 'اگر صحیفه‌‌نی گئری گتیرسه‌نیز، بوتون رئویزيونلار کئچمیشه گئری گتیریله‌جک. 
 سیلیندیکدن سونرا عینی آدلا يئنی بیر صحیفه‌‌ يارانمیشسا، گئری گلن رئویزيونلار مؤوجود اولان صحیفه‌‌نین کئچمیشینده گؤرونه‌جک.',
+'undeleterevdel' => 'اگر اوست صحیفه‌ده سونو چلاناجاقسا یا دا فایل رئویزیونو قیسمن سیلینمیش ایسه، سیلمیی گئری آلما تطبیق اولونا بیلمز.
+بئله حال‌لاردا، ان یئنی سیلینن رئویزیونو سئچمملی یا دا گیزلمه سینی قالدیرما‌لی‌دیر.',
+'undeletehistorynoadmin' => 'بو مادده سیلینمیش‌دیر. سیلینمه سببی و سیلینمه اولینده ماددنی تشکیل ائدن ایستیفاده‌چی‌لرین دئتال‌لاری آشاغی‌داکی ایستفادچی موشخصاتی وئریلمیش‌دیر. بو سیلینمیش‌دیر دییشیک لیک متن‌لری ایسه یالنیز ایداره‌چی‌لر طرفین‌دن گؤروله بیلر.',
 'undelete-revision' => '$3 طرفین‌دن $1 صحیفه‌سی‌نین سیلینمیش دییشدیر ‌سین ($4 تاریخیندئن بری، $5 ساعتدا):',
+'undeleterevision-missing' => 'اعتبارسیز و یا ایتکین نوسخه.
+نوسخه تمیر و یا آرخیو‌دن سیلینمیش اولا بیلر یا دا صاحب اولدوغونوز علاقه اشتباه دیر.',
 'undelete-nodiff' => 'اولکی دَییشمه تاپیلمادی.',
 'undeletebtn' => 'برپا ائت',
 'undeletelink' => 'باخ/قایتار',
@@ -2162,7 +2269,9 @@ $1',
 # Namespace form on various pages
 'namespace' => 'آد فضاسی:',
 'invert' => 'سئچیلنی دؤندر',
+'tooltip-invert' => 'بو قوتونی علامتله یین تا انتخاب اولان آد فضا سینین ایچری صحیفه لری دییشیک لیک لری(و اوبیری علامتلنمیش فضالار) گیزله نه آدی',
 'namespace_association' => 'علاقه‌لی آد ساحه‌سی',
+'tooltip-namespace_association' => 'بو قوتونو علامت له ین یالنیز آد بحث فضاسی یا مرتبط اولان آد فضاسی ایله انتخاب اولا',
 'blanknamespace' => '(آنا)',
 
 # Contributions
@@ -2322,11 +2431,19 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'ipb-otherblocks-header' => 'آیری {{PLURAL:$1|باغلانماا|باغلاما‌لار}}',
 'unblock-hideuser' => 'ایستیفاده‌چی آدی گیزلی اولدوغو اوچون، بی باغلامانی گؤتوره بیلمزسینیز.',
 'ipb_cant_unblock' => 'ختا: باغلاما آی دی سی $1 تاپیلمادی. باغلامانین گؤتورولمه‌سی مومکون‌دور.',
+'ipb_blocked_as_range' => 'خطا: $1 ای پی عنوانی بیرباشا مانعه و مانعه تؤرتمه آزالدیلماسینا یول وئریلمیر.
+آنجاق، بو عنوان $2 آرا‌لیغینین پارچاسی اولا‌راق مانعه تؤردیلمیش، دئکابر مانعه تؤرتمه‌سینی قال‌دیرا.',
 'ip_range_invalid' => 'یانلیش ای پی',
+'ip_range_toolarge' => '/ $1 بلوک‌دان داها بؤیوک بازه باغلانمالارینا ایجازه وئریلمیر.',
 'blockme' => 'منی باغلا',
 'proxyblocker' => 'پروکسی باغلییان',
 'proxyblocker-disabled' => 'بو ایش باغلانیب دیر.',
+'proxyblockreason' => 'ای پی آدرئسینیز آچیق بیر پروکسی اولدوغو اوچون مانعه تؤردیلدی.
+خاهیش ائدیریک اینتئرنئت سئویش تعمین ایله یا دا تئکنیکی دستک ایله علاقه قورون و بو جدی تهلوکه‌سیزلیک پروبلئمین‌دن خبردار ائدین.',
 'proxyblocksuccess' => 'اولدو.',
+'sorbsreason' => 'ای پی عنوانینیز، {{SITENAME}} سایتی طرفین‌دن ایستیفاده ائدیلن DNSBL آچیق پروکسی اولا‌راق اولونموش.',
+'sorbs_create_account_reason' => 'ایپ اونوانینیز {{SITENAME}} سایتی طرفین‌دن ایستیفاده ائدیلن DNSBL آچیق پروکسی اولا‌راق اولونموش.
+حساب میدانا گتیره بیلمز',
 'cant-block-while-blocked' => 'سیز ائنگئللیيکئن باشقا ایستیفاده‌چیلری مانعه تؤره‌ده بیلمزسینیز.',
 'cant-see-hidden-user' => 'قارشیسینی آلماق ایسته‌دیگینیز ایستیفاده‌چی اونسوز دا مانعه تؤره‌دیلمیش و گیزلنمیش. کوللانیجیگیزلئ ایجازه‌نیز اولمادیغی اوچون، ایستیفاده‌چی‌نین قارشیسی‌نین آلینماسینی گؤره بیلمز يا دا ديَیشدیره.',
 'ipbblocked' => 'دیگر ایستیفاده‌چیلری مانعه تؤره‌ده بیلمز يا دا مانعه تؤرتمه‌سینی قالدیرا بیلمز، چونکی اؤزونوز ائنگئللئنمیشسیز',
@@ -2343,9 +2460,14 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'unlockconfirm' => 'بلی، من حقیقتن وئریلن‌لر بازاسینین باغلانمانی آچماق ایستییرم.',
 'lockbtn' => 'وئریلن‌لر بازاسینی باغلا',
 'unlockbtn' => 'وئریلن‌لر بازاسین‌دان باغلانتی سین گؤتور',
+'locknoconfirm' => 'تصدیق قوتوسونو سئچمئدینیز.',
 'lockdbsuccesssub' => 'وئریلن‌لر بازاسی باغلانیب',
 'unlockdbsuccesssub' => 'باغلانما وئریلن‌لر بازاسی گوتورلنیب',
+'lockdbsuccesstext' => 'وئریلن‌لر بازاسی کیلیدلندی. <br />
+باخیمین ایشلرینیز بیتدیگینده وئریلن‌لر بازاسینین [[Special:UnlockDB| کیلیدینی آچماغی]] اونوتمایین.',
 'unlockdbsuccesstext' => 'وئریلن‌لر بازاسی باغلانمیش آولا بیلر.',
+'lockfilenotwritable' => 'وئریلن‌لر بازاسی کیلیدلمه فایلی یازیلا دئییل.
+بو، وئریلن‌لر بازاسینی کیلیدله‌ییب آچا بیلمک اوچون، وئب سئروئری طرفین‌دن یازیلا اولما‌لی‌دیر.',
 'databasenotlocked' => 'وئریلن‌لر بازاسی باغلانماییب.',
 'lockedbyandtime' => '({{Gender: $1 | $1}} طرفین‌دن  $2 $3 اعتبار ایله)',
 
@@ -2362,13 +2484,26 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 
 'خبردارلیق!'
 بو یئردییشمه پوپولیار صحیفه اوچون اساس‌لی و گؤزلنیلمز اولا بیلر، اونا گؤره ده بو دییشیک‌لیگی یئرینه یئتیرمزدن اول، بونون مومکون نتیجه‌لرینی باشا دوشدوگونوزدن عمین اولون.",
+'movepagetext-noredirectfixer' => "آشاغی‌داکی فورمو دول‌دورماق بیر صحیفنی یئنی‌دن آدلاندیریر، بوتون کئچمیشینی یئنی آدا داشیییر.
+کؤهنه مؤوزو یئنی باشلیغا بیر ایستیقامتلندیرمه صحیفه‌سی اولار.
+[[Special:DoubleRedirects|جوت]] یا دا [[Special:BrokenRedirects|نوزوک ایستیقامتلندیرمه‌لر]] صحیفه‌لرینی ایداره ائدین.
+علاقه‌لرین گئتمه‌لری لازیم اولان یئرلره گئتدیک‌لرینی عمین اولماق سیزین سوروملولوغونوزدا‌دیر.
+
+یئنی باش‌لیقدا مؤوجود بیر صحیفه وارسا، بوش یا دا بیر ایستیقامتلندیرمه اولمادیقجا و دییشیک‌لیک کئچمیشی اولمادیغی تق‌دیرده، سهیف 'تاشینمایاجاکتیر.
+بو بو معنانی وئرر، بیر صحیفنی اشتباه ائتسه‌نیز صحیفنی کؤهنه آدییلا یئنی‌دن آدلان‌دیرا بیلریک، بو مؤوجود صحیفه‌نین اوزرینه یازماز.
+
+' 'خبردارلیق!'
+بو مشهور بیر صحیفه اوچون تأثیرلی و گؤزلنیلمز بیر دییشیک‌لیک اولا بیلر؛
+خاهیش ائدیریک راتیفیکاسیا ائتمه‌دن اول بونون نتیجه‌لرینی آنلادیغینیزدان امین اولون.",
 'movepagetalktext' => "اویغون دانیشیق صحیفه‌سی آوتوماتیک حرکت ائده‌جک 'گر:'
 * بوش اولمایان دانیشیق صحیفه‌سی یئنی آدلا آرتیق مؤوجوددورسا، و یا
 * سیز بایراغی آشاغی‌دان گؤتورسه‌نیز.
 
 همین حال‌لاردا ، احتیاج یارانارسا سیز صحیفه‌لری الله بیرلش‌دیرمک مجبوریتینده قالاجاقسینیز",
 'movearticle' => 'صحیفه‌نین آدینی دییش‌دیر',
+'moveuserpage-warning' => "' 'خبردارلیق:' بیر ایستیفاده‌چی صحیفه‌سینی داشیماق اوزرسینیز. خاهیش ائدیریک یالنیز صحیفه‌نین تاشیناجاغینا، آنجاق ایستیفاده‌چی‌نین یئنی‌دن آدلاندیریلمایاجاغینا دقت ائدین.",
 'movenologin' => 'سیستئمده دئییلسینیز',
+'movenologintext' => 'صحیفه‌نین آدینی دییشیک‌لیک اوچون قئیدیات‌لی و [[Special:UserLogin|سیستئمه]] داخیل اولمانیز لازیم‌دیر.',
 'movenotallowed' => 'سیز صحیفه‌لرین آدینی دییشه بیلمزسینیز.',
 'movenotallowedfile' => 'سیز فایل‌لارین آدینی دییشه بیلمزسینیز.',
 'cant-move-user-page' => 'ایستیفاده‌چی صحیفه‌لری‌نین آدینی دییشه بیلمزسینیز (باش‌لیق‌لاردان باشقا).',
@@ -2382,15 +2517,20 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'movepage-moved-noredirect' => 'یؤنلندیرمه‌نین یارادیلماسینین قارشییس آلیندی.',
 'articleexists' => 'بو آددا صحیفه آرتیق مؤوجوددور و یا سیزین سئچدیگینیز آد اویغون دئییل.
 زحمت اولماسا باشقا آد سئچین.',
+'cantmove-titleprotected' => 'بیر صحیفنی بو مؤوقئیه داشییا بیلمز، چونکی یئنی موضونون یارادیلماسی قورونور',
 'talkexists' => "'صحیفه‌نین آدی دییشدی، لاکین دانیشیق صحیفه‌سی یئنی آدلا اولدوغو اوچون دییشه بیلمیر. زحمت اولماسا، اونون آدینی اؤزونوز دییشین.'",
 'movedto' => 'داشیندی :',
 'movetalk' => 'بو صحیفه‌نین دانیشیق صحیفه‌سی‌نین ده آدینی دییش‌دیر.',
 'move-subpages' => 'یاریم صحیفه‌لری کؤچور ($1-ا قدر)',
 'move-talk-subpages' => 'دانیشیق صحیفه‌لری‌نین آلت صحیفه‌لرینی کؤچور ($1-ا قدر)',
+'movepage-page-exists' => '$1 مادده‌سی اونسوز دا وار اولماقدا‌دیر، و آوتوماتیک اولا‌راق یئنی‌دن یازیلا بیلمز.',
 'movepage-page-moved' => '$1 صحیفه‌سی $2 صحیفه‌سینه کؤچورولوب.',
 'movepage-page-unmoved' => '$1 صحیفه‌سی $2 صحیفه‌سینه کؤچوروله بیلینمیر.',
+'movepage-max-pages' => 'ان چوخ $1 {{PLURAL:$1|صحیفه |صحیفه}} داشیندی و داها چوخو آوتوماتیک اولا‌راق تاشیناماز.',
 'movelogpage' => 'يئرديیشمه سییاهه',
+'movelogpagetext' => 'آشاغیدا اولان سیاهی آدی دییشدیریلمیش صحیفه‌لری گؤستریر.',
 'movesubpage' => '{{PLURAL:$1|آلتینداکی صحیفه}}',
+'movesubpagetext' => 'بو صحیفه‌نین آشاغیدا گؤستریلن $1 {{PLURAL: $1 | آلت صحیفه سی | آلت صحیفه اسی}} وار.',
 'movenosubpage' => 'بو صحیفه‌نین آلت صحیفه‌سی یوخ‌دور.',
 'movereason' => 'ندن:',
 'revertmove' => 'گئری آل',
@@ -2406,14 +2546,33 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'immobile-target-namespace-iw' => 'ویکیلر اراسی علاقه، صحیفه داشیماسی اوچون اعتبارلی بیر هدف دئییل.',
 'immobile-source-page' => 'بو صحیفه‌نین آدی دییش‌دیریله بیلمز.',
 'immobile-target-page' => 'بو هدف باش‌لیغینا داشینمیر.',
+'bad-target-model' => 'هدف فرق‌لی بیر مزمون مودئل ایستیفاده ائدیر. $1 $2 مومکون دئییل.',
+'imagenocrossnamespace' => 'قئيری-فايل آد ایماگئ کؤچورمه يوخدور',
+'nonfile-cannot-move-to-file' => 'فایل اولمایان‌لار، فایل آد ساحه‌سینه تاشیناماز',
+'imagetypemismatch' => 'یئنی فایل علاوه‌سی تیپیله بیربیر لر ایله دوز دئمیر',
 'imageinvalidfilename' => 'سئچیلمیش فایل آدی کئچرسیزدیر.',
+'fix-double-redirects' => 'اوریژینال باشلیغا ایشاره ائدن گیزلت یوکله',
+'move-leave-redirect' => 'آرخادا بیر ایستیقامتلندیرمه بوراخ',
 'protectedpagemovewarning' => "'''خبردارلیق:''' بو صحیفه محافظه ائدیلدیگی اوچون اونون آدینی یالنیز ایداره‌چی‌لر دییشه بیلرلر.",
+'semiprotectedpagemovewarning' => "'''قئید:' بو صحیفه کیلیدلنمیش، یالنیز قئیدیات‌لی ایستیفاده‌چی‌لر داشییا بیلر.
+سون گونده‌لیک گیردی‌سی ایستیناد مقصدلی آشاغیدا وئریلمیش‌دیر:",
+'move-over-sharedrepo' => '== فایل مؤوجود ==
+[[:$1]] پایلاشیلمیش هوووزدا مؤوجود. بیر فایلی بو باشلیغا داشیماق پایلاشیلمیش فایلین اوستونه گله‌جک.',
+'file-exists-sharedrepo' => 'سئچیلن آد پایلاشیلمیش بیر هوووزدا اونسوز دا مؤوجود.
+خاهیش ائدیریک باشقا بیر آد سئچین.',
 
 # Export
 'export' => 'صحیفه‌‌لری ایخراج ائت',
+'exporttext' => 'مویین بیر صحیفه و یا صحیفه کومانداسینین متنی و دییشدیرمه کئچمیشینی خمل ایله ساری‌لی اولا‌راق خاریجه کؤچوره بیلرسینیز.
+بو، مئدیاویکی ایستیفاده باشقا بیر ویکی [[Special:Import|ایچه کؤچورمه صحیفه‌سی]] ایله ایچه کؤچوروله بیلر.
+
+صحیفه‌لری خاریجه کؤچورمک اوچون، باش‌لیق‌لاری آشاغی‌داکی متن قوتوسونا داخیل ائدین، هر سطره بیر دنه، و کؤهنه سوروملئرلئ بیرلیکده ایندیکی وئرسیاسی، صحیفه کئچمیشی سطرلرینی، یا دا سون دییشیک‌لیک ملوماتییلا بیرلیکده آکتوال وئرسیاسی ایسته‌ییب ایستمدیگینیزی قئید ائدین.
+
+سونونجو حالدا، بیر لینک ده ایستیفاده ائده بیلرسینیز، هؤر: "[[{{MediaWiki:Mainpage}}]]" صحیفه‌سی اوچون [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].',
 'exportall' => 'بوتون صحیفه‌لری خاریجه کؤچور',
 'exportcuronly' => 'بوتون تاریخچنی دئییل، یالنیز حال-هازیرکی نوسخه نی داخیل ائت',
 'exportnohistory' => 'هدف‌لنن قایناق صحیفه‌سی (ایسته‌یه باغ‌لی):',
+'exportlistauthors' => 'هر صحیفه‌‌ اوچون دَییشدیرمه ائدن سیياهیسینی اؤزونده ساخلايین',
 'export-submit' => 'ایخراج',
 'export-addcattext' => 'صحیفه‌لری بو بولمه دن علاوه ائت:',
 'export-addcat' => 'علاوه ائت',
@@ -2429,10 +2588,13 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'allmessagesdefault' => 'دفالت دانیشیق متنی',
 'allmessagescurrent' => 'ایندیکی متن',
 'allmessagestext' => 'بو مئدیا ویکی-ده اولان سیستئم مئساژلارینین سیاهی‌سی‌دیر. اگر مئدیا ویکی-نی لوکاللاش‌دیرماق ایشینده کؤمک ائتمک ایسییرسینیزسه، لطفاً [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] و [//translatewiki.net translatewiki.net]-ا باش چکین.',
+'allmessagesnotsupportedDB' => "'''\$ wgUseDatabaseMessages''' باغ‌لی اولدوغو اوچون '{{ns:special}}: Allmessages ایستیفاده‌یه آچیق دئییل.",
 'allmessages-filter-legend' => 'فیلتر',
+'allmessages-filter' => 'خصوصی ائتمک وضعیتینه گؤره فیلترلی:',
 'allmessages-filter-unmodified' => 'دییشدیریلممیش',
 'allmessages-filter-all' => 'هامیسی',
 'allmessages-filter-modified' => 'دییشدیریلمیش',
+'allmessages-prefix' => 'اؤنک ایله فیلترلی:',
 'allmessages-language' => 'دیل',
 'allmessages-filter-submit' => 'گئت',
 
@@ -2442,6 +2604,10 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'thumbnail_error' => 'کیچیک شکیل یاراتما خطاسی: $1',
 'djvu_page_error' => 'DjVu صحیفه‌سی الچاتمازدیر',
 'djvu_no_xml' => 'DjVu اوچون XML فایلی آلماق مومکون دئییل.',
+'thumbnail-temp-create' => 'ائلمک اولماز بارماق اولچوسوجه موقت فایل دوزتمک اولا',
+'thumbnail-dest-create' => 'باجاریقسیز تعییناتا باش بارماغین دیرناغینی خلاص ائتمک اوچون',
+'thumbnail_invalid_params' => 'اعتبارسیز کیچیک شکیل پارامئترلری',
+'thumbnail_dest_directory' => 'هدف قورو‌لوغو یارادیلا بیلمیر',
 'thumbnail_image-type' => 'گؤرونوش نؤع دستکله‌نیلمیر',
 'thumbnail_gd-library' => "' 'قئید:' صحیفه‌لرین بوتون کئچمیشینی بو فورملا خاریجه اؤتورولمه‌سی، پئرفورمانس سبب‌لرین‌دن اؤتری دؤوره خاریجی بوراخیلمیش‌دیر.$1",
 'thumbnail_image-missing' => 'بئله گؤرونور کی، $1 فایلی یوخ‌دور',
@@ -2449,6 +2615,9 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 # Special:Import
 'import' => 'صحیفه‌لری ایدخال ائت',
 'importinterwiki' => 'ویکیلر اراسی چیخارما',
+'import-interwiki-text' => 'ایچه کؤچورمک اوچون بیر wiki و صحیفه باش‌لیغی سئچین.
+رئویزیون تاریخ‌لری و یازارلارین آدلاری قورونا‌جاق.
+بوتون ویکیلئراراسی ایچه کؤچورمه حرکت‌لری [[Special:Log/import|ایچه کؤچورمه گوندلیگینده]] یازیلماقدا‌دیر.',
 'import-interwiki-source' => 'قایناق ویکی/صحیفه:',
 'import-interwiki-history' => 'صحیفه‌نین دییشمه تاریخچه‌لری‌نین هامی‌سینی کؤچور',
 'import-interwiki-templates' => 'بوتون شابلون‌لارلا بیرلیکده',
@@ -2462,6 +2631,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'importstart' => 'صحیفه‌لری ایچری توکمه حالیندا...',
 'import-revision-count' => '$1 {{PLURAL:$1|دییشدیر|دییشدیرین}}',
 'importnopages' => 'ایچری توکمه صحیفه یوخ‌دور.',
+'imported-log-entries' => '$1{{PLURAL:$1|گونده‌لیک گیردی‌سی |گونده‌لیک گیردی‌سی}}ایچه کؤچوردو.',
 'importfailed' => 'اوغورسوز چیخاریش: <nowiki>$1</nowiki>',
 'importunknownsource' => 'بیلینمه‌ین ایچری کؤچورمه قایناق نؤوو',
 'importcantopen' => 'ایچری توکمه فایل پرونده لری آچیلمادی',
@@ -2470,13 +2640,28 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'importsuccess' => 'ایچری توکمه باشا چاتدی!',
 'importhistoryconflict' => 'اوست-اوسته دوشمه‌ین کئچمیش رئویزیونو مؤوجود (بو صحیفه داها اول‌دن ایچه کؤچورولموش اولا بیلر)',
 'importnosources' => 'هئچ ویکیلئراراسی ایچه کؤچورمه قایناغی تعیین و بیرباشا کئچمیش یوکلملری دؤوره خاریجی.',
+'importnofile' => 'بیر کؤچورمه فایلی یوکلنمدی.',
+'importuploaderrorsize' => 'ایچه کؤچورولموش فایلین یوکلنمه‌سی اوغورسوز اولدو.
+فایل، ایجازه وئریلن یوکلمه اؤلچوسون‌دن بؤیوک.',
+'importuploaderrorpartial' => 'ایچه کؤچورولموش فایلین یوکلنمه‌سی اوغورسوز اولدو.
+فایلین یالنیز بیر قیسیمی یوکلندی.',
+'importuploaderrortemp' => 'ایچه کؤچورولن فایلین یوکلنمه‌سی اوغورسوز اولدو.
+مووققتی فایل ایتکین.',
+'import-parse-failure' => 'اکس ام ال ایچری کؤچورمه ییغماسی موفقیت‌سیز',
 'import-noarticle' => 'یوکلمگه صحیفه یوخدور!',
+'import-nonewrevisions' => 'بوتون نوسخه لر اول‌دن ایچه کؤچورولموش.',
 'xml-error-string' => '$1 $2 سترینده، $3 سوتونوندا ($4 بایت): $5',
 'import-upload' => 'XML-وئریلنی یوکله',
 'import-token-mismatch' => 'سئانس معلومات‌لارینین ایتیریلمه‌سی. لطفاً، یئنی‌دن جهد ائدین.',
 'import-invalid-interwiki' => 'گؤستریلن ویکی‌دن کؤچورمک مومکون دئییل',
 'import-error-edit' => '"$1" صحیفه‌سی ایدخال ائدیله بیلینمیر، چونکی اونو دییشمک سلاهیتینیز یوخ‌دور.',
 'import-error-create' => '"$1" صحیفه‌سی آچیلمیر، چونکی اونو یاراتماق سلاهیتینیز یوخ‌دور.',
+'import-error-interwiki' => 'صحیفه "$1" داخیل ائدیلممیش‌دیر. چونکی اونون خاریجی باغلانتی سی (interwiki) یئری توتولوب و رئزرو اولوب.',
+'import-error-special' => 'صحیفه «$1» ایچری توکمه اولنمادی، نیه کی بیر اجازه سیز آد ین فضاسینا تعلوقو وار.',
+'import-error-invalid' => 'صحیفه "$1" اعتبار سیز اولماق دلیل اوچون آدی داخیل اولنمور.',
+'import-options-wrong' => '{{PLURAL:$2|جزئیات| جزئیات}} یانلیش: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'وئریلن کؤک صحیفه‌‌سی اعتبارسیز آددیر.',
+'import-rootpage-nosubpage' => 'آد فضا سی  "$1" آنا باسئ ٔآلت صحیفه اوچون اجازه وئرمیر.',
 
 # Import log
 'importlogpage' => 'چیخاریلما گونده‌لیگی',
@@ -2601,6 +2786,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'pageinfo-default-sort' => 'فرض ائدیلن سیرالاما آچاری',
 'pageinfo-length' => 'صحیفه‌‌ اوزونلوغو (بايت)',
 'pageinfo-article-id' => 'صحیفه اید-سی',
+'pageinfo-language' => 'صحیفه مضمونونون دیلی',
 'pageinfo-robot-policy' => 'آختاریش سیستمین دورومو',
 'pageinfo-robot-index' => 'سییاهه آلینیشی',
 'pageinfo-robot-noindex' => 'ایندِکسله‌نه بیلمز',
@@ -2620,9 +2806,14 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'pageinfo-magic-words' => 'سیحیرلی {{PLURAL:$1|بیر|$1}} سؤزجوک ($1)',
 'pageinfo-hidden-categories' => 'گیزلی {{PLURAL:$1|بؤلمه|بؤلمه‌لر}} ($1)',
 'pageinfo-templates' => 'ایشله‌دیلمیش {{PLURAL:$1|بیر|$1}} شابلون ($1)',
+'pageinfo-toolboxlink' => 'صحیفه بیلگی سی',
+'pageinfo-redirectsto' => 'ایستیقامتلن‌دیریلن',
 'pageinfo-redirectsto-info' => 'بیلگی',
+'pageinfo-contentpage' => 'بیر مزمون صحیفه‌سی ساییلیر',
 'pageinfo-contentpage-yes' => 'بلی',
+'pageinfo-protect-cascading' => 'مدافعه‌‌لر بورادان شراره کیمی تؤکولور',
 'pageinfo-protect-cascading-yes' => 'بلی',
+'pageinfo-protect-cascading-from' => 'شراره مدافعه‌‌لر بورادان',
 
 # Patrolling
 'markaspatrolleddiff' => 'ایداره ائدیلمیش اولا‌راق ایشاره‌له',
@@ -2632,7 +2823,10 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'rcpatroldisabled' => 'سون دییشیک‌لیک‌لرین پاتروللانماسی قاداغان‌دیر',
 'rcpatroldisabledtext' => 'سون دییشیک‌لیک‌لرین یوخلانیلماسی حال-حاضردا مومکون دئییل.',
 'markedaspatrollederror' => 'یوخلانمادی',
+'markedaspatrollederrortext' => 'موشاهیده کیمی ایشاره‌لمک اوچون بیر رئویزیون ائتملیسینیز.',
 'markedaspatrollederror-noautopatrol' => 'اؤز دییشیک‌لیک‌لرینیزی یوخلاییب ایشاره‌له‌یه بیلمزسینیز.',
+'markedaspatrollednotify' => '$1-اوستونده ديَیشیکلیک قئيد ائدیلمیشدیر، نئجه کی پاترول کئشیگی چکدی.',
+'markedaspatrollederrornotify' => 'دولانماق برچسبی مووفقیت سیز اولدو',
 
 # Patrol log
 'patrol-log-page' => 'پاترول گونده‌لیگی',
@@ -2646,6 +2840,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 
 $1',
 'filedelete-missing' => '"$1" فایلی مؤوجود اولمادیغین‌دان سیلینه بیلینمیر.',
+'filedelete-old-unregistered' => 'گؤستریلن فایل نوسخه سی "$1" وئریلن‌لر بازاسیندا یوخ‌دور.',
 'filedelete-current-unregistered' => 'گؤستریلن "$1" فایلی وئریلن‌لر بازاسیندا یوخ‌دور.',
 'filedelete-archive-read-only' => '"$1" کاتالوقونون آرشیوی وئب-سئروئر یازی‌لاری اوچون باغلی‌دیر.',
 
@@ -2654,13 +2849,17 @@ $1',
 'nextdiff' => 'یئنی دَییشدیرمه',
 
 # Media information
+'mediawarning' => "'''خبردارلیق: بو ​​فایل نوعو پیس نیت‌لی کودلار اولا بیلر.
+بونو ایشلتمک، سیستئمینیزی تهلوکه‌یه آتا بیلر.",
 'imagemaxsize' => "شکیلین ماکسیمال توتومو:<br />(فایلین تصویری صحیفه‌لری اوچون)'",
 'thumbsize' => 'کیچیک اؤلچو:',
 'widthheightpage' => '$1 × $2، $3 {{PLURAL:$3|صحیف|صحیفه‌لر}}',
 'file-info' => 'فایلین اؤلچوسو: $1، MIME تیپی: $2',
 'file-info-size' => '$1 × $2 پیکسل, فایل اؤلچوسو: $3, MIME نوعو: $4',
+'file-info-size-pages' => '$1 × $2 پیکسئل، فایلین اؤلچوسو: $3، میمئ نؤوو: $4، $5 {{PLURAL:$5|صحیفه| صحیفه}}',
 'file-nohires' => 'یوخاری کیفیت الده یوخدور.',
 'svg-long-desc' => 'SVG فایلی، $1 × $2 پیکسئل، فایلین اؤلچوسو: $3',
+'svg-long-desc-animated' => 'فایل اس‌وی‌جی حرکت ائدن، ابعادی <span dir="ltr">$1 × $2</span> پیکسل، فایل اولچوسو: $3',
 'show-big-image' => 'یوکسک کیفیت‌لی',
 'show-big-image-preview' => 'سیناق گؤستریشی اؤلچوسو: $1.',
 'show-big-image-other' => 'دیگر {{PLURAL:$2|نتیج|نتیجه‌لر}}: $1.',
@@ -2668,16 +2867,22 @@ $1',
 'file-info-gif-looped' => 'ایلملنیب',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|فرامئ|چرچیوه}}',
 'file-info-png-looped' => 'ایلملنیب',
+'file-info-png-repeat' => '$1 {{PLURAL: $ 1|دفعه| دفعه}} اویناتیلدی',
 'file-info-png-frames' => '$1 {{PLURAL:$1|فرامئ|چرچیوه}}',
+'file-no-thumb-animation' => "'''قئید:تئکنیکی مسئله‌لر سببیندن قاباق دان گورسنمه فایل متحرک شکیلی گؤرستمیر .",
+'file-no-thumb-animation-gif' => "'''قئید:فنی مسائیله گوره GIF  فایلارین و اونا تای اولانان لار  قالباق دان گورستمه پروقرمی متحرک حالیندا گورسدیلمیجک.'''",
 
 # Special:NewFiles
 'newimages' => 'یئنی فایل‌لارین سیاهی‌سی',
+'imagelisttext' => "آشاغی‌داکی سیاهی '$2 گؤره دوزولموش {{PLURAL:$1|ادد فایلی| ادد فای‌لی}} گؤستریر.",
+'newimages-summary' => 'بو خصوصی صحیفه، ان سون یوک‌لنن فایل‌لاری گؤستریر.',
 'newimages-legend' => 'فیلتر',
 'newimages-label' => 'فایلین (و یا اونون بیر حیسه‌سی‌نین) آدی:',
 'showhidebots' => '($1 روبات دییشدیر)',
 'noimages' => 'هئچ نیی گؤرممک.',
 'ilsubmit' => 'آختار',
 'bydate' => 'تاریخین اوستوندن',
+'sp-newimages-showfrom' => '$1، $2 تاریخی اعتباری ایله یئنی فایل‌لاری گؤستر',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 'seconds' => '{{PLURAL:$1|$1 ثانی|$1 ثانییه}}',
@@ -2744,10 +2949,14 @@ $1',
 'exif-artist' => 'یازار',
 'exif-copyright' => 'یازانلار حقوقو صاحبی',
 'exif-exifversion' => 'exif نوسخه سی',
+'exif-flashpixversion' => 'دستک‌لنن Flashpix نوسخه سی',
 'exif-colorspace' => 'رنگ ساحه‌سی',
+'exif-componentsconfiguration' => 'هر بیلشنین معناسی',
+'exif-compressedbitsperpixel' => 'شکیل سیخیشدیرما فورماتی',
 'exif-pixelydimension' => 'شکیلین انی',
 'exif-pixelxdimension' => 'شکیلین اوزوناسی',
 'exif-usercomment' => 'استفادچی شرحی',
+'exif-relatedsoundfile' => 'حاقیندا سس لی فایل',
 'exif-datetimeoriginal' => 'اورژینال یاراتما زامانی',
 'exif-datetimedigitized' => 'دیجیتالی‌ اولان تاریخ و زمانی',
 'exif-subsectime' => 'آلت-ایکینجی واخت',
@@ -2773,18 +2982,64 @@ $1',
 'exif-flashenergy' => 'فلاش ائنئرژی‌سی',
 'exif-focalplanexresolution' => 'صفحهٔ کانونی سویه X هللولما دقیق‌لیگی',
 'exif-focalplaneyresolution' => 'صفحهٔ کانونی ده تفکیک‌پذیری Y',
+'exif-focalplaneresolutionunit' => 'کانونی صحیفه نین بیربیرندن سئچمه واحدی',
+'exif-subjectlocation' => 'سوژه یئری',
+'exif-exposureindex' => 'ایشیق شاخیصی',
+'exif-sensingmethod' => 'قبول ائتمه مئتودو',
+'exif-filesource' => 'فایل قایناقی',
+'exif-scenetype' => 'صحنه تیپی',
+'exif-customrendered' => 'شخصی شکیل عملیاتی',
+'exif-exposuremode' => 'ایشیق وئرمه حالتی',
+'exif-whitebalance' => 'آغ بالانسی',
+'exif-digitalzoomratio' => 'یاخینلاشدیرما نیسبتی (زوم)',
+'exif-focallengthin35mmfilm' => '35 میلی متر-لیک فیلمده مرکز اوزاق‌لیغی',
+'exif-scenecapturetype' => 'سهنه توتما تیپی',
+'exif-gaincontrol' => 'سهنه ایداره‌سی',
+'exif-contrast' => 'کونتراست',
+'exif-saturation' => 'دویموشلوق',
+'exif-sharpness' => 'کسکین‌لیک',
+'exif-devicesettingdescription' => 'دسگاهین تنظیم لر تعریف‌لری',
+'exif-subjectdistancerange' => 'سوژه نین مسافه محدوده سی',
+'exif-imageuniqueid' => 'شکیل خصوصی شخصیتی',
+'exif-gpsversionid' => 'جی پی اس ائتیکئت نوسخه سی',
+'exif-gpslatituderef' => 'شیمال و یا جنوب جغرافیایی ائنی',
+'exif-gpslatitude' => 'جغرافیایی ائنی',
+'exif-gpslongituderef' => 'جغرافیایی شرق و یا قرب اوزونلوقو',
+'exif-gpslongitude' => 'جغرافیایی اوزوناسی',
+'exif-gpsaltituderef' => 'اوجالیق یئری',
 'exif-gpsaltitude' => 'يوکسکلیک',
+'exif-gpstimestamp' => 'جی پی اس واختی (آتوم ساعتی)',
+'exif-gpssatellites' => 'اؤلچمک اوچون ایستیفاده ائتدیگی پئیک‌لر',
+'exif-gpsstatus' => 'ایستاتوسو قبول ائدن',
+'exif-gpsmeasuremode' => 'اؤلچمه اوصولو',
 'exif-gpsdop' => 'اؤلچونون دقیقلیگی',
 'exif-gpsspeedref' => 'سرعت اونیتی',
+'exif-gpsspeed' => 'چی پی اس قبولئدیجی‌نین سرعتی',
+'exif-gpstrackref' => 'جهت حرکتی اوچون قایناق',
 'exif-gpstrack' => 'ایدارئتمه مئخانیزمی',
+'exif-gpsimgdirectionref' => 'شکیل جهتی اوچون قایناق',
 'exif-gpsimgdirection' => 'شکلین ایستیقامتی',
+'exif-gpsmapdatum' => 'نقشه‌گوتورمک اطلاعاتی ژئودزیک',
+'exif-gpsdestlatituderef' => 'جغرافیایی ائنی مقصد اوچون قایناق',
 'exif-gpsdestlatitude' => 'ائن دایره‌سی‌نین تعیین اولونماسی',
+'exif-gpsdestlongituderef' => 'جغرافیایی اوزوناسی مقصد اوچون قایناق',
 'exif-gpsdestlongitude' => 'اوزونلوق دایره‌سی‌نین تعیین اولونماسی',
+'exif-gpsdestbearingref' => 'مقصد جهتی اوچون قایناق',
 'exif-gpsdestbearing' => 'اوبيئکتین پئلئنقی',
+'exif-gpsdestdistanceref' => 'قایناق فاصله مقصد چان',
 'exif-gpsdestdistance' => 'مسافه',
+'exif-gpsprocessingmethod' => 'چی پی اس پردازیشینین آدی',
+'exif-gpsareainformation' => 'چی پی اس ساحه‌نین آدی',
+'exif-gpsdatestamp' => 'چی پی اس زامانی',
+'exif-gpsdifferential' => 'چی پی اس ین جزئی اصلاحی',
+'exif-jpegfilecomment' => 'JPEG شکیل شرحی',
 'exif-keywords' => 'آچار سؤزلر',
 'exif-worldregioncreated' => 'شکلین چکیلدیگی دونيا یئرلری',
 'exif-countrycreated' => 'شکلین چکیلدیگی اؤلکه',
+'exif-countrycodecreated' => 'شکلین چکیلدیگی اؤلکه‌نین کودو',
+'exif-provinceorstatecreated' => 'شکلین چکیلدیگی ایالت،آدی',
+'exif-citycreated' => 'شکلین چکیلدیگی شهر',
+'exif-sublocationcreated' => 'شکلین چکیلدیگی شهرین بخش آدی',
 'exif-worldregiondest' => 'تصویر ائدیلمیش دونیا بؤلگه‌سی',
 'exif-countrydest' => 'تصویر اولونموش اؤلکه',
 'exif-countrycodedest' => 'تصویر ائدیلمیش اؤلکه‌نین کودو',
@@ -2810,18 +3065,25 @@ $1',
 'exif-iimsupplementalcategory' => 'علاوه بولمه لر',
 'exif-datetimeexpires' => 'سونرا ایشلتمه',
 'exif-datetimereleased' => 'چیخیش تاریخی',
+'exif-originaltransmissionref' => 'اصلی تاشیماق یئر کودو',
 'exif-identifier' => 'تانیملاییجی',
 'exif-lens' => 'ایستیفاده اولونموش لنز',
 'exif-serialnumber' => 'کامئرانین سئریال نؤمره‌سی',
 'exif-cameraownername' => 'کامئرانین صاحبی',
 'exif-label' => 'نیشان',
+'exif-datetimemetadata' => 'سون دَییشیکلر تاریخی',
 'exif-nickname' => 'شکلین قئيری-رسمی آدی',
 'exif-rating' => 'قیيمت (5 اوزرینده)',
+'exif-rightscertificate' => 'ایداره‌چی گوواهی حاقی',
 'exif-copyrighted' => 'ستاتوسون یازانلار حقوقو',
 'exif-copyrightowner' => 'یازانلار حقوقو صاحبی',
 'exif-usageterms' => 'ایستیفاده قايداسی',
 'exif-webstatement' => 'اینتئرنئتده مؤلف‌لیک حقوق‌لاری قایدا‌لاری',
+'exif-originaldocumentid' => 'تانیشچی تکجه سند',
+'exif-licenseurl' => 'مؤلف حقوقو اینترنت آدرسی تکثیر حقی اوچون',
 'exif-morepermissionsurl' => 'آلتئرناتیو لیسئنزیيا بیلگی‌لری',
+'exif-attributionurl' => 'بو ایشی یئنی‌دن ایستیفاده لطفاً علاقه وئرین',
+'exif-preferredattributionname' => 'ایستیفاده ائدیلنده لطفاً علاقه وئرین',
 'exif-pngfilecomment' => 'PNG شکیل شرحی',
 'exif-disclaimer' => 'مسئولیتدن ایمتیناع',
 'exif-contentwarning' => 'متن خبردارلیغی',
@@ -2832,9 +3094,14 @@ $1',
 'exif-event' => 'تصویر ائدیلمیش حادثه‌‌',
 'exif-organisationinimage' => 'تصویر ائدیلمیش قوروملار',
 'exif-personinimage' => 'تصویر ائدیلمیش شخص',
+'exif-originalimageheight' => 'شکیلین کسیلمه دن اوولکی اوجالیقی',
+'exif-originalimagewidth' => 'شکیلین کسیلمه دن اوولکی گئنیش‌لیگی',
 
 # EXIF attributes
 'exif-compression-1' => 'سیخیلمامیش',
+'exif-compression-2' => 'پسوورد قویماق سی‌سی‌آی‌تی‌تی ۳  گروه دا بیر بعدی هافمن روشی ایله اوزوناسی اوستونده دییشیلیب',
+'exif-compression-3' => 'رمز قرار وئرمک سی‌سی‌آی‌تی‌تی گروپ ۳',
+'exif-compression-4' => 'رمز قرار وئرمک سی‌سی‌آی‌تی‌تی گروپ 4',
 
 'exif-copyrighted-true' => 'مؤلف‌لیک حقوقو ایله قورونور',
 'exif-copyrighted-false' => 'عمومی دامنه',
@@ -3053,15 +3320,81 @@ $1',
 
 # E-mail address confirmation
 'confirmemail' => 'ایمیل-پوست اونوانینی تصدیق ائت',
+'confirmemail_noemail' => '[[Special:Preferences|ایستیفاده‌چی ترجیه لرینی]] تعیین اولونموش اویغون بیر ایمیل عنوانینیز یوخ.',
+'confirmemail_text' => 'ویکینین ایمیل اعتباری کوللانمابیلمئک اوچون، اول ایمیل عنوانینیزین تصدیقلنمه‌سی لازیم‌دیر.
+اونوانینیزا تسدیق ائ-پوچت گؤندرمک اوچون آشاغی‌داکی بوتونو تیکلایین.
+گؤندریله‌جک ایسماریج‌لار اونوانینیزی تسدیقلمک اوچون براوزئری ایله سیز گیریش ایمکانینیز، تسدیق کودو ائهتیوا ائدن بیر علاقه اولا‌جاق؛
+لینکی تاراییجینیدا آچین و ایمیل عنوانینیزین اعتبارلی‌لیغینی یوخلایین.',
+'confirmemail_pending' => 'بیر تسدیقلمه کودو سیزه اونسوز دا ایمیلندی؛
+اگر حسابینیزی یئنی آچ بیلسنیز، یئنی بیر کود ایستمه‌یه ایشدن اول گلمه‌سینی بیر آز گؤزلمیی ایسته‌یه بیلرسینیز.',
 'confirmemail_send' => 'تسدیق کودو گؤندر',
+'confirmemail_sent' => 'تصدیق ایمیل مکتوبو گؤندریلدی.',
+'confirmemail_oncreate' => 'بیر تصدیقله‌مه کودو ائ-پوست اونوانینیزا گؤندریلدی. 
+گیریش ائتمک اوچون بو کود لازیملی دئيیل، آنجاق بو ویکیدئکی هر هانسی بیر ائ-پوست اساسلی خصوصیتی دؤوره‌يه سوخماق اوچون بونو تعمین ائتمک مجبوریتینده‌سینیز.',
+'confirmemail_sendfailed' => '{{SITENAME}} تسدیق مای‌لی گؤندره. اعتبارسیز کاراکتئرلر اولا بیلر اونوانی نظارت ائدین
+
+مایل پروقرامی قایتاردی: $1',
+'confirmemail_invalid' => 'خطاتسدیقله‌مه کودو. کودون واختی کئچمیش اولا بیلر.',
+'confirmemail_needlogin' => 'ائ-پوست اونوانینیزین تسدیق‌لنمه‌سی اوچون $1 لازیمدیر.',
+'confirmemail_success' => 'ایمیل اونوانینیز ایندی تسدیق ائدیلدی.
+سیز ایندی [[Special:UserLogin|حئساب آچاراق]] ویکیدن لذت آپارین.',
+'confirmemail_loggedin' => 'ایمیل‌نیز ایندی تسدیق ائدیلدی.',
+'confirmemail_error' => 'قئید بیلینمه‌ين بیر خطا اوچون قئید اولونمادی.',
+'confirmemail_subject' => '{{SITENAME}} ایمیل تسدیق ائتمه',
+'confirmemail_body' => 'بیری، احتیماللا سیز، $1 ایپ اونوانیندان، 
+{{SITENAME}} سايتیندا بو ائ-پوچت اونوانی ایله $2 حسابینی آچدی. 
+
+بو حسابین حقیقتن سیزه عاید اولدوغونو تسدیق و {{SITENAME}} سايتینداکی 
+ائ-پوست فونکسیيالارینی آکتیو حالا گتیرمک اوچون آشاغیداکی علاقه‌‌نی تارايیجینیزدا آچین. 
+
+$3 
+
+اگر حسابی سیز * آچمادیيسانیز *، ائ-پوچت اونوانی دوغرولاماسینی 
+لغو ائتمک اوچون آشاغیداکی علاقه‌‌نی تعقیب ائدین: 
+
+$5 
+
+بو تسدیق کودو $4 تاریخینه قدر اعتبارلی اولاجاق.',
+'confirmemail_body_changed' => 'بیری، ائحتیماللا سیز، $1 ایپ اونوانین‌دان،
+{{SITENAME}} سایتیندا "$2" حسابی اوچون ایمیل اونوانینی دییشدیردی.
+
+بو حسابین حقیقتن سیزه عاید اولدوغونو تسدیق و {{SITENAME}} سایتین‌داکی
+ایمیل فونکسیا‌لارینی تکرار آکتیو حالا گتیرمک اوچون آشاغی‌داکی علاقنی تاراییجینیزدا آچین.:
+
+$3
+
+اگر حساب سیزه عاید * دئییلسه *، ائ-پوچت اونوانی دوغرولاماسینی
+لغو ائتمک اوچون آشاغی‌داکی علاقنی تعقیب ائدین:
+
+$5
+
+بو تسدیق کودو $4 تاریخینه قدر اعتبارلی اولا‌جاق.',
+'confirmemail_body_set' => 'بیری $1 ای‌پی آدرئسیيلئ{{SITENAME}} سايتیندا "$2" ایستیفاده‌چی حسابی ایمیل اونوانی اولاراق بو ایمیل  اونوانینی ایفاده ائتدی. 
+
+اگر بو عملیاتی ائدن سیزسینیزسه و {{SITENAME}} سايتینداکی ایمیل  فونکسیيالارینی تکرار آکتیو ائتمک ایسته‌يیرسینیزسه آشاغیداکی علاقه‌‌نی تارايیجینیزدا آچمانیز لازیمدیر: 
+
+$3 
+
+اگر بو عملیاتی ائدن سیز دئيیلسینیزسه و بئله بیر عضولويونوز يوخسا ایمیل  تسدیق عملیاتینی لغو ائتمک اوچون آشاغیداکی علاقه‌‌نی تارايیجینیزدا آچمانیز لازیمدیر: 
+
+$5 
+
+بو تسدیق کودو $4 تاریخینه قدر اعتبارلیدیر.',
 'confirmemail_invalidated' => 'ایمیل تصدیقلنمه‌سی دایاندیریلدی',
 'invalidateemail' => 'ایمیل تصدیقلنمه‌سین‌دن ایمتینا',
 
 # Scary transclusion
 'scarytranscludedisabled' => '[«Interwiki transcluding»دن چیخیلمیش‌دیر]',
 'scarytranscludefailed' => '[$1اوچون شابلون آلیشی موفقیت‌سیز اولدو]',
+'scarytranscludefailed-httpstatus' => '[چاغریش $1 شابلون اوچون اولا بیلمه دی: اچ‌تی‌تی‌پی خطاسی $2]',
+'scarytranscludetoolong' => '[آدرس(URL)اوزوندور]',
 
 # Delete conflict
+'deletedwhileediting' => "'''دیققت!''' بو صحیفه‌‌ سیز دَییشدیرمه‌ائتمه‌يه باشلادیقدان سونرا سیلینمیشدیر!",
+'confirmrecreate' => "بو صحیفنی [[User:$1|$1]] ([[User talk:$1|مئساژ]]) ایستیفاده‌چی‌سی سیز صحیفه‌ده دییشیک‌لیک ائدرکن سیلمیشتیر، سببی:
+:' $2
+صحیفنی باش‌دان آچماق ایسیتیورسانیز، لطفاً تسدیق ائدین.",
+'confirmrecreate-noreason' => '[[User:$1|$1]] ([[User talk:$1|دانیشیق]]) آدلی ایستیفاده‌چی، سیز ديَیشیکلیک ائتمه‌يه باشلادیقدان سونرا بو صحیفه‌‌نی سیلدی. خاهیش ائدیریک بو صحیفه‌‌نی حقیقتن يئنیدن ياراتماق ایسته‌دیگینیزی تسدیق ائدین.',
 'recreate' => 'يئنیله‌مک',
 
 # action=purge
@@ -3102,15 +3435,29 @@ $1',
 # Live preview
 'livepreview-loading' => 'یوکلنیر...',
 'livepreview-ready' => 'گؤزله... حاضردیر!',
+'livepreview-failed' => 'جانلی اؤنیزلئمئ موفقیتسیز! نورمال سینیق گوستریشی کولانین.',
+'livepreview-error' => 'علاقه‌‌ موفقیتسیز:$1 "$2". 
+نورمال سینیق گوستریشی کولانین.',
+
+# Friendlier slave lag warnings
+'lag-warn-normal' => '$1 {{PLURAL: $1 | سانیيه‌دن | سانیيه‌ده}} يئنی ديَیشیکلیکلر بو سیياهیدا گؤرولمه‌يه.',
+'lag-warn-high' => 'وئریلنلر بازاسی سونوجوسونداکی هددیندن آرتیق گئجیکمه‌دن گؤره، $1 {{PLURAL:$1 | سانیيه‌دن | سانیيه‌دن}} يئنی ديَیشیکلیکلر بو سیياهیدا گؤرونمئيئبیلیر.',
 
 # Watchlist editor
+'watchlistedit-numitems' => 'ایزلئمئ صحیفه‌‌نیزده {{PLURAL:$1|1 باشلیق|$1 باشلیق}} وار، دانیشیق صحیفه‌‌لری چیخماق شرطیله.',
 'watchlistedit-noitems' => 'ایزله‌مه سیياهینیز بوشدور.',
 'watchlistedit-normal-title' => 'ایزله‌دیگیم صحیفه‌‌لری دَییشدیر',
 'watchlistedit-normal-legend' => 'ایزله‌مه سیياهیسیندان باشلیقلارین سیلینمه‌سی',
+'watchlistedit-normal-explain' => 'ایزله‌مه سیياهینیزدا باشلیقلار آشاغیدا گؤستریلمیشدیر. 
+بیر باشلیغی چیخارماق اوچون، يانینداکی قوتوجوغو ایشارله‌يین و «{{int:Watchlistedit-normal-submit}}» دويمه‌سینی باسین. 
+[[Special:EditWatchlist/raw|سطرلر سیياهیسینی]] ده تشکیل ائده بیلرسینیز',
 'watchlistedit-normal-submit' => 'باشلیقین سیلینمه‌سی',
 'watchlistedit-normal-done' => '{{PLURAL:$1|$1 صحیفه‌‌}} ایزله‌مه صحیفه‌‌لرینیزدن سیلیندی:',
 'watchlistedit-raw-title' => 'چی متن کیمی دییشدیر',
 'watchlistedit-raw-legend' => 'چی متن کیمی دییشدیر',
+'watchlistedit-raw-explain' => 'ایزله‌مه سیياهینیزدا باشلیقلار آشاغیدا گؤستریلیر. هر سطرده بیر باشلیق اولماق عذره، باشلیقلاری علاوه‌‌ ائده‌رک يا دا سیله‌رک سیياهینی تشکیل ائده بیلرسینیز. 
+بیتدیگینده «{{int:Watchlistedit-raw-submit}}» يئ تیکلايینیز. 
+آيریجا [[Special:EditWatchlist|استاندارت تنزیمله‌مه صحیفه‌‌سینی]] دا ایستیفاده ائده بیلرسینیز.',
 'watchlistedit-raw-titles' => 'باشلیقلار:',
 'watchlistedit-raw-submit' => 'ایزلدیگیم صحیفه‌لرین سیاهی‌سینین یئنی‌لنمه‌سی',
 'watchlistedit-raw-done' => 'ایزله‌دیکلرینیز گونجل‌لندی.',
@@ -3149,6 +3496,7 @@ $1',
 'version-license' => 'لیسانس',
 'version-poweredby-credits' => "بو wیکی ' ''[//www.mediawiki.org/ مئدیاwیکی]'ع' پروقرامی ایستیفاده ائدیله‌رک يارادیلمیشدیر، یاازارلار © 2001-$1 $2.",
 'version-poweredby-others' => 'آیریلار',
+'version-credits-summary' => 'بو ایستفاده چیلر دییشدیر لرینه گوره [[Special:Version|مئدیاویکی]] تانیش ائدیرم.',
 'version-license-info' => 'مئدیاویکی بیر اؤزگور یازیلیم‌دیر؛ سیز اونو، اؤزگور یازیلیم قورولوشو یایان GNU گنل عمومی لیسانسی اساسی‌له یئنی‌دن داغیدیب یوخسا دَییشه بیلرسینیز؛ یا لیسانسین ۲-نجی نوسخه‌سی، یا دا (اؤز سئچدیگینیزله) هر هانکی سونراکی نوسخه‌سی.
 
 مئدیاویکی، فایدالی اولماق اومودویله داغینیب‌دیر، اما هئچ قارانتی‌سی یوخدور؛ حتی تیجارت یا بیر ایشه اویغون اولماق قارانتی‌سی ده یوخدور.باشقا بیلگیلر اوچون GNU گنل عمومی لیسانسینا باخین.
@@ -3366,4 +3714,6 @@ $1',
 'duration-centuries' => '{{PLURAL:$1|بیر|$1}} یوز-ایل',
 'duration-millennia' => '{{PLURAL:$1|بیر|$1}} مین‌ایل',
 
+# Unknown messages
+'svg-long-error' => 'اعتبارسیز سوگ فایل: $1',
 );
index eaf2af2..a58369c 100644 (file)
@@ -1466,7 +1466,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|үҙгәртеү|үҙгәртеү}}',
 'recentchanges' => 'Һуңғы үҙгәртеүҙәр',
 'recentchanges-legend' => 'Һуңғы үҙгәртеүҙәр көйләүҙәре',
-'recentchanges-summary' => '{{grammar:genitive|{{SITENAME}}}}. биттәрендә индерелгән һуңғы үҙгәртеүҙәр исемлеге',
+'recentchanges-summary' => 'Төрлө биттәрҙә эшләнгән һуңғы үҙгәртеүҙәр исемлеге',
 'recentchanges-feed-description' => 'Был таҫмалағы һуңғы үҙгәртеүҙәрҙе күҙәтеп барырға',
 'recentchanges-label-newpage' => 'Был үҙгәртеү яңы бит яһаны',
 'recentchanges-label-minor' => 'Был әҙ үҙгәреш',
index d78fbee..9cbdc14 100644 (file)
@@ -81,13 +81,13 @@ $messages = array(
 'editfont-serif' => 'Schrift mid Serifen',
 
 # Dates
-'sunday' => 'Sunndog',
+'sunday' => 'Sundog',
 'monday' => 'Mondog',
 'tuesday' => 'Deansdog',
 'wednesday' => 'Midwoch',
-'thursday' => 'Dunnersdog',
+'thursday' => 'Dunasdog',
 'friday' => 'Freidog',
-'saturday' => 'Såmsdog',
+'saturday' => 'Samsdog',
 'sun' => 'Su',
 'mon' => 'Mo',
 'tue' => 'De',
@@ -173,9 +173,9 @@ $messages = array(
 'faqpage' => 'Project:FAQ',
 
 # Vector skin
-'vector-action-addsection' => 'Obschnit dazuafyng',
+'vector-action-addsection' => 'An Obschnitt dazua doa',
 'vector-action-delete' => 'Leschn',
-'vector-action-move' => 'Vaschiam',
+'vector-action-move' => 'Vaschiabm',
 'vector-action-protect' => 'Schitzn',
 'vector-action-undelete' => 'Wiederherstön',
 'vector-action-unprotect' => 'freigeem',
@@ -648,7 +648,7 @@ Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}}
 # Diffs
 'history-title' => 'Gschicht vo „$1“ oschaugn',
 'lineno' => 'Zein $1:',
-'compareselectedversions' => 'Gwöde Versionen vagleichen',
+'compareselectedversions' => 'Ausgwejde Versiona vagleicha',
 'editundo' => 'zruck doa',
 'diff-multi' => '({{PLURAL:$1|A dazwischnliegade Version|$1 dazwiscenliegade Versiona}} {{PLURAL:$2|vonam Nutza|vo $2 Nutzan}} {{PLURAL:$1|wead|wean}} ned ozoagt)',
 
@@ -1262,8 +1262,8 @@ Da aktuöje Text voh da gléschden Seiten is netter fyr Administraatorn zuagäng
 
 # What links here
 'whatlinkshere' => 'Links af de Seitn',
-'whatlinkshere-title' => 'Seiten, dé noch „$1“ valinken',
-'whatlinkshere-page' => 'Seiten:',
+'whatlinkshere-title' => 'Seitn, wo af „$1“ valinka',
+'whatlinkshere-page' => 'Seitn:',
 'linkshere' => "De foigandn Seitn valinka af '''„[[:$1]]“''':",
 'nolinkshere' => "Koa Seitn valinkt af '''„[[:$1]]“'''.",
 'isredirect' => 'Weidaloatungsseitn',
@@ -1272,7 +1272,7 @@ Da aktuöje Text voh da gléschden Seiten is netter fyr Administraatorn zuagäng
 'whatlinkshere-prev' => '{{PLURAL:$1|vorige|vorign $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|naxde|naxdn $1}}',
 'whatlinkshere-links' => '← Vaweise',
-'whatlinkshere-hideredirs' => 'Weidaleitungen $1',
+'whatlinkshere-hideredirs' => 'Weidaloatunga $1',
 'whatlinkshere-hidetrans' => 'Vurlongeihbindung $1',
 'whatlinkshere-hidelinks' => 'Links $1',
 'whatlinkshere-hideimages' => '$1 Dateilinks',
@@ -1440,7 +1440,7 @@ Bsuach bittschee de Saiten [//www.mediawiki.org/wiki/Localisation MediaWiki-Loka
 'tooltip-ca-undelete' => 'Eihträg wiederherstön, bevur dé Seiten gléscht worn is.',
 'tooltip-ca-move' => 'De Seitn vaschiabm',
 'tooltip-ca-watch' => 'De Seitn zua Beobochtungslistn dazua doa',
-'tooltip-ca-unwatch' => 'Dé Seiten voh da persénlichen Beówochtungslisten entferner',
+'tooltip-ca-unwatch' => 'De Seitn vom "Beobochta" wegga doa',
 'tooltip-search' => '{{SITENAME}} duachsuacha',
 'tooltip-search-go' => 'Gee direkt zua derer Seiten, dé exakd am eihgeewernen Nåm entspricht.',
 'tooltip-search-fulltext' => 'Suach noch Seitn, wo den Text enthoiden',
index 71be8f1..5412d13 100644 (file)
@@ -3822,6 +3822,14 @@ Kun bako man, ika makakagamit nin sayon na porma sa ibaba. An saimong komento id
 
 # Durations
 'duration-seconds' => '$1 {{PLURAL:$1|segundo|mga segundo}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuto|minutos}}',
+'duration-hours' => '$1 {{PLURAL:$1|oras|mga oras}}',
+'duration-days' => '$1 {{PLURAL:$1|aldaw|mga aldaw}}',
+'duration-weeks' => '$1 {{PLURAL:$1|semana|mga semana}}',
+'duration-years' => '$1 {{PLURAL:$1|taon|mga taon}}',
+'duration-decades' => '$1 {{PLURAL:$1|dekada|mga dekada}}',
+'duration-centuries' => '$1 {{PLURAL:$1|siglo|mga siglo}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milenyo|mga millenyo}}',
 
 # Unknown messages
 'svg-long-error' => 'Imbalidong SVG na sagunson: $1',
index 71c72a5..7063d66 100644 (file)
@@ -3235,7 +3235,7 @@ Permet de rétablir la version précédente et d'ajouter un motif dans la boîte
 'markedaspatrollederror' => 'Ne peut être marquée comme relue',
 'markedaspatrollederrortext' => 'Vous devez sélectionner une version pour pouvoir la marquer comme relue.',
 'markedaspatrollederror-noautopatrol' => "Vous n'avez pas le droit de marquer vos propres modifications comme relues.",
-'markedaspatrollednotify' => 'Cette modification de $1 a été marquée comme contrôlée.',
+'markedaspatrollednotify' => 'Cette modification de $1 a été marquée comme relue.',
 'markedaspatrollederrornotify' => 'Échec du marquage comme contrôlé.',
 
 # Patrol log
index 985a67f..7a3eb38 100644 (file)
@@ -717,6 +717,7 @@ A lezárást végrehajtó rendszergazda az alábbi indoklást adta meg: "$3".',
 
 Folytathatod névtelenül  a(z) {{SITENAME}} használatát, vagy <span class='plainlinks'>[$1 ismét bejelentkezhetsz]</span> ugyanezzel, vagy egy másik névvel.
 Lehetséges, hogy néhány oldalon továbbra is azt látod, be vagy jelentkezve, mindaddig, amíg nem üríted a böngésződ gyorsítótárát.",
+'welcomeuser' => 'Üdvözlünk, $1!',
 'yourname' => 'Szerkesztőneved:',
 'yourpassword' => 'Jelszavad:',
 'yourpasswordagain' => 'Jelszavad ismét:',
index 4982e77..37ed9de 100644 (file)
@@ -2372,11 +2372,12 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'pageinfo-magic-words' => 'Մոգական {{PLURAL:$1|բառ|բառեր}} ($1)',
 'pageinfo-hidden-categories' => 'Թաքնված {{PLURAL:$1|կաղապար|կաղապարներ}} ($1)',
 'pageinfo-templates' => 'Օգտագործված {{PLURAL:$1|կաղապար|կաղապարներ}} ($1)',
-'pageinfo-toolboxlink' => 'Ô·Õ»Õ« Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80',
+'pageinfo-toolboxlink' => 'Ô·Õ»Õ« Õ¾Õ«Õ³Õ¡Õ¯Õ¡Õ£Ö\80Õ¸Ö\82Õ©ÕµÕ¸Ö\82Õ¶',
 'pageinfo-redirectsto' => 'Վերահղում է դեպի',
 'pageinfo-redirectsto-info' => 'տվյալներ',
 'pageinfo-contentpage' => 'Հաշվառված որպես բովանդակային էջ',
 'pageinfo-contentpage-yes' => 'Այո',
+'pageinfo-protect-cascading-yes' => 'Այո',
 
 # Skin names
 'skinname-standard' => 'Դասական',
@@ -2397,6 +2398,8 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'markedaspatrollederror' => 'Չհաջողվեց նշել որպես ստուգված',
 'markedaspatrollederrortext' => 'Անհրաժեշտ է ընտրել տարբերակ՝ որպես ստուգված նշելու համար։',
 'markedaspatrollederror-noautopatrol' => 'Ձեզ չի թույլատրվում ձեր կատարած փոփոխությունները նշել որպես ստուգված։',
+'markedaspatrollednotify' => 'Այս փոփոխությունը $1 էջում նշվել է ստուգված',
+'markedaspatrollederrornotify' => 'Ստուգված նշել չհաջողվեց։',
 
 # Patrol log
 'patrol-log-page' => 'Պարեկման տեղեկամատյան',
@@ -2430,6 +2433,7 @@ $1',
 # Special:NewFiles
 'newimages' => 'Նոր նիշքերի սրահ',
 'imagelisttext' => "Ստորև բերված է '''$1''' {{PLURAL:$1|նիշքի}} ցանկ՝ դասավորված ըստ $2։",
+'newimages-legend' => 'Ֆիլտր',
 'showhidebots' => '($1 բոտերին)',
 'noimages' => 'Տեսնելու բան չկա։',
 'ilsubmit' => 'Որոնել',
index a6d23be..73ecf00 100644 (file)
@@ -2288,25 +2288,25 @@ il titolo della pagina apparirà in '''grassetto''' nella pagina delle [[Special
 'enotif_body_intro_moved' => 'La pagina $1 di {{SITENAME}} è stata spostata da {{gender:$2|$2}} il $PAGEEDITDATE, vedi $3 per la versione attuale.',
 'enotif_body_intro_restored' => 'La pagina $1 di {{SITENAME}} è stata ripristinata da {{gender:$2|$2}} il $PAGEEDITDATE, vedi $3 per la versione attuale.',
 'enotif_body_intro_changed' => 'La pagina $1 di {{SITENAME}} è stata modificata da {{gender:$2|$2}} il $PAGEEDITDATE, vedi $3 per la versione attuale.',
-'enotif_lastvisited' => "Consultare $1 per vedere tutte le modifiche dall'ultima visita.",
-'enotif_lastdiff' => 'Vedere $1 per visualizzare la modifica.',
+'enotif_lastvisited' => "Visita $1 per vedere tutte le modifiche dall'ultima visita.",
+'enotif_lastdiff' => 'Visita $1 per vedere la modifica.',
 'enotif_anon_editor' => 'utente anonimo $1',
 'enotif_body' => 'Gentile $WATCHINGUSERNAME,
 
 $PAGEINTRO $NEWPAGE
 
-Oggetto della modifica, inserito dall\'autore: $PAGESUMMARY $PAGEMINOREDIT
+Oggetto dell\'intervento, inserito dall\'autore: $PAGESUMMARY $PAGEMINOREDIT
 
-Contatta l\'autore della modifica:
-via e-mail: $PAGEEDITOR_EMAIL
+Contatta l\'autore:
+via posta elettronica: $PAGEEDITOR_EMAIL
 sul sito: $PAGEEDITOR_WIKI
 
-Non verranno inviate altre notifiche in caso di ulteriori cambiamenti, a meno che tu non visiti la pagina. Inoltre, è possibile reimpostare l\'avviso di notifica per tutte le pagine nella lista degli osservati speciali.
+Non verranno inviate altre notifiche in caso di ulteriori attività, se non visiti la pagina. Inoltre, è possibile modificare le impostazioni di notifica per tutte le pagine nella lista degli osservati speciali.
 
              Il sistema di notifica di {{SITENAME}}, al tuo servizio
 
 --
-Per modificare le impostazioni delle notifiche via email, visita 
+Per modificare le impostazioni delle notifiche via posta elettronica, visita 
 {{canonicalurl:{{#special:Preferences}}}}
 
 Per modificare la lista degli osservati speciali, visita 
index f31f75f..76ed42d 100644 (file)
@@ -43,6 +43,7 @@
  * @author Muttley
  * @author Mzm5zbC3
  * @author Ohgi
+ * @author Ort43v
  * @author Penn Station
  * @author Reedy
  * @author Schu
@@ -876,7 +877,7 @@ Cookieを有効にしていることを確認して、このページを再読
 このアカウントが何かの手違いで作成された場合は、このメッセージを無視してください。',
 'usernamehasherror' => '利用者名には番号記号を含めることができません',
 'login-throttled' => 'ログインの失敗が制限回数を超えました。
-しばらく時間をおいてから再度お試しください。',
+しばらく時間をおいてから再度試してください。',
 'login-abort-generic' => 'ログインに失敗しました - 中止',
 'loginlanguagelabel' => '言語: $1',
 'suspicious-userlogout' => '壊れたブラウザーまたはキャッシュプロキシによって送信された可能性があるため、ログアウト要求は拒否されました。',
@@ -2014,7 +2015,7 @@ $1',
 'uploadstash-summary' => 'このページでは、アップロードされた、もしくはアップロード中の、ウィキ上でまだ公開されていないファイルを表示します。これらのファイルは、アップロードした利用者以外閲覧できません。',
 'uploadstash-clear' => '未公開ファイルを消去',
 'uploadstash-nofiles' => '未公開ファイルはありません。',
-'uploadstash-badtoken' => '操作を実行できませんでした。編集するための認証の期限切れが原因である可能性があります。再度お試しください。',
+'uploadstash-badtoken' => '操作を実行できませんでした。編集するための認証の期限切れが原因である可能性があります。再度試してください。',
 'uploadstash-errclear' => 'ファイルの消去に失敗しました。',
 'uploadstash-refresh' => 'ファイルの一覧を更新',
 'invalid-chunk-offset' => '無効なチャンクオフセット',
@@ -2480,15 +2481,17 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 
 'enotif_mailer' => '{{SITENAME}} 通知メール',
 'enotif_reset' => 'すべてのページを訪問済みにする',
-'enotif_impersonal_salutation' => '{{SITENAME}} 利用者',
+'enotif_impersonal_salutation' => '{{SITENAME}}利用者',
 'enotif_subject_deleted' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が削除しました',
 'enotif_subject_created' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が作成しました',
 'enotif_subject_moved' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が移動しました',
 'enotif_subject_restored' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が復元しました',
 'enotif_subject_changed' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が変更しました',
-'enotif_body_intro_deleted' => '{{SITENAME}} のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって削除されました。現在の版は$3で閲覧できます。',
-'enotif_body_intro_created' => '{{SITENAME}} のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって作成されました。現在の版は$3で閲覧できます。',
-'enotif_body_intro_changed' => '{{SITENAME}} のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって変更されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_deleted' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって削除されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_created' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって作成されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_moved' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって移動されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_restored' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって復元されました。現在の版は$3で閲覧できます。',
+'enotif_body_intro_changed' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって変更されました。現在の版は$3で閲覧できます。',
 'enotif_lastvisited' => '最終訪問以降のすべての変更は $1 をご覧ください。',
 'enotif_lastdiff' => 'この変更内容を表示するには $1 をご覧ください。',
 'enotif_anon_editor' => '匿名利用者「$1」',
@@ -3391,6 +3394,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 時間}}',
 'days' => '{{PLURAL:$1|$1 日}}',
 'ago' => '$1前',
+'just-now' => 'ちょうど今',
 
 # Bad image list
 'bad_image_list' => '書式は以下の通りです:
index 2dc8f29..5e166c3 100644 (file)
@@ -41,6 +41,7 @@ $messages = array(
 'tog-editondblclick' => 'Эки басып баракты оңдоо (JavaScript талап кылынат)',
 'tog-editsection' => 'Ар бир секция үчүн «оңдоо» шилтемеси',
 'tog-oldsig' => 'Кезектеги кол:',
+'tog-showhiddencats' => 'Жашырылган категорияларды көрсөтүү',
 
 'underline-always' => 'Дайыма',
 'underline-never' => 'Эч качан',
@@ -248,6 +249,9 @@ $messages = array(
 'toc' => 'Мазмун',
 'showtoc' => 'көрсөтүү',
 'hidetoc' => 'Жашыруу',
+'collapsible-collapse' => 'Түрүү',
+'collapsible-expand' => 'Жаюу',
+'viewdeleted' => 'Көрүү $1?',
 'site-rss-feed' => '$1 RSS тилкеси',
 'site-atom-feed' => '$1 Atom агымы',
 'page-atom-feed' => '"$1" Atom агымы',
@@ -291,11 +295,15 @@ $messages = array(
 'badtitletext' => 'Талап кылынган барак аталышы туура эмес, бош, же тилдер-аралык же уики-аралык аталышы туура эмес шилтемеленген.
 Балким аталышта колдонулбай турган бир же андан көп белги камтылган.',
 'viewsource' => 'Кароо',
+'viewsource-title' => '$1 барагынын баштапкы кодун көрүү',
+'ns-specialprotected' => 'Атайын барактарды оңдоого мүмкүн эмес.',
 
 # Virus scanner
+'virus-scanfailed' => 'скандоо катасы (код $1)',
 'virus-unknownscanner' => 'белгисиз антивирус:',
 
 # Login and logout pages
+'welcomeuser' => 'Кош келиңиз, $1!',
 'yourname' => 'Колдонуучу аты',
 'yourpassword' => 'Сырсөз',
 'yourpasswordagain' => 'Сырсөздү кайра жазыңыз',
@@ -389,6 +397,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'blockedtitle' => 'Катышуучу тосмолонгон',
 'blockedtext' => 'Сиздин колдонуучу атыңыз же IP дарегиңиз тосмолонгон',
 'blockednoreason' => 'себеби көрсөтүлгөн жок',
+'nosuchsectiontitle' => 'Бөлүктүү табууга мүмкүн эмес',
 'loginreqtitle' => 'Колдонуучунун аты талап кылынат',
 'loginreqlink' => 'Кирүү',
 'accmailtitle' => 'Сырсөз жөнөтүлдү.',
@@ -406,9 +415,10 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 же <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тийиштүү жазууларды таба аласыз]</span>.',
 'userpage-userdoesnotexist' => '"$1" Мындай колдонуучу катталган эмес. Ушул баракты түзүүнү же оңдогонду каалганыңыз анык болсун',
 'updated' => '(Жаңыртылды)',
+'note' => "'''Эскертүү:'''",
 'previewnote' => "'''Бул алдын ала көрүнүшү гана болгонун эсиңизге алыңыз.'''
 Өзгөртүүлөрүңүз сактала элек!",
-'continue-editing' => 'Өзгөртүүүлөрдү улантабыз',
+'continue-editing' => 'Редакторлоону улантуу',
 'session_fail_preview' => 'Кечиресиз, байланыш үзүлгөндүктөн сиздин өзгөртүүлөр сакталган жок. Дагы бир жолу аракет кылып көрүңүз. Болбосо, [[Special:UserLogout|logging out]] аткарып, кайра кирип көрүңүз.',
 'editing' => 'Оңдоо $1',
 'creating' => '$1 түзүлүүдө',
@@ -420,6 +430,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'template-protected' => '(корголгон)',
 'template-semiprotected' => '(жарым-жартылай корголгон)',
 'hiddencategories' => 'Бул барак {{PLURAL:$1|1 жашыруун категориянын|$1 жашыруун категориялардын}} мүчөсү:',
+'nocreatetitle' => 'Барактарды жаратуу чектелген',
 'permissionserrorstext-withaction' => 'Сизге $2, төмөнкү {{PLURAL:$1|себеп|себеп}} менен уруксат жок:',
 'recreate-moveddeleted-warn' => "'''Эскертүү: Сиз мурун өчүрүлгөн баракты кайра баштап жатасыз.'''
 
@@ -431,6 +442,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'edit-already-exists' => 'Жаңы барак түзүү мүмкүн эмес. Мындай барак бар',
 
 # Content models
+'content-model-wikitext' => 'уики-текст',
+'content-model-text' => 'жөнөкөй текст',
 'content-model-javascript' => 'JavaScript',
 'content-model-css' => 'CSS',
 
@@ -473,18 +486,29 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Revision deletion
 'rev-delundel' => 'көрсөтүү/жашыруу',
 'rev-showdeleted' => 'көрсөтүү',
+'revdelete-show-file-submit' => 'Ооба',
+'revdelete-hide-image' => 'Файл мазмунун жашыруу',
+'revdelete-radio-same' => '(өзгөртпөө)',
+'revdelete-radio-set' => 'Ооба',
+'revdelete-radio-unset' => 'Жок',
+'revdelete-log' => 'Себеп:',
 'revdel-restore' => 'көрүнүшүн өзгөртүү',
 'revdel-restore-deleted' => 'өчүрүлгөн версиялар',
 'revdel-restore-visible' => 'көрүнүүчү версиялары',
+'pagehist' => 'Барактын тарыхы',
+'deletedhist' => 'Өчүрүүлөрдүн тарыхы',
 'revdelete-reasonotherlist' => 'Башка себеп',
+'revdelete-edit-reasonlist' => 'Өчүрүү себептерин оңдоо',
 'revdelete-offender' => 'Барак версиясынын автору:',
 
 # History merging
+'mergehistory' => 'Барактардын тарыхын бириктирүү',
 'mergehistory-from' => 'Баштапкы барак:',
 'mergehistory-submit' => 'Версияларды бириктирүү',
 'mergehistory-reason' => 'Себеп',
 
 # Merge log
+'mergelog' => 'Бириктирүүлөрдүн журналы',
 'revertmerge' => 'Бөлүү',
 
 # Diffs
@@ -522,14 +546,19 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'search-redirect' => '($1 кайра багыттоо)',
 'search-section' => '($1 бөлүмү)',
 'search-suggest' => 'Ушуну кааладыңызбы: $1',
+'search-interwiki-caption' => 'Тектеш долбоорлор',
+'search-interwiki-default' => '$1 жыйын.:',
+'search-interwiki-more' => '(көбүрөөк)',
 'searchrelated' => 'байланыштуу',
 'searchall' => 'баары',
 'showingresultsheader' => "'''$4''' үчүн {{PLURAL:$5|'''$3''' жыйынтыктан '''$1'''-и|'''$1 - $2''' -дан '''$3''' жыйынтык}}",
 'search-nonefound' => 'Талапка төп маалымат табылган жок.',
 'powersearch' => 'Кеңейтилген издөө',
 'powersearch-legend' => 'Кеңейтилген издөө',
+'powersearch-field' => 'Издөө',
 'powersearch-toggleall' => 'Баары',
 'powersearch-togglenone' => 'Эчтеке',
+'search-external' => 'Тышкы издөө',
 
 # Quickbar
 'qbsettings' => 'Навигация панели',
@@ -541,15 +570,22 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-edits' => 'Өзгөртүүлөрдүн саны',
 'changepassword' => 'Сырсөздү өзгөртүү',
 'skin-preview' => 'Алдын ала көрүү',
+'prefs-beta' => 'Бета-мүмкүнчүлүктөр',
 'prefs-datetime' => 'Дата жана убакыт',
 'prefs-user-pages' => 'Катышуучунун барактары',
 'prefs-rc' => 'Соңку өзгөрүүлөр',
 'prefs-watchlist' => 'Байкоо тизмеси',
 'prefs-resetpass' => 'Сырсөздү өзгөртүү',
+'prefs-email' => 'Электрондук почтанын параметрлери',
 'saveprefs' => 'Сактоо',
 'prefs-editing' => 'Редакторлоо',
+'rows' => 'Сап:',
+'columns' => 'Тилке:',
 'searchresultshead' => 'Издөө',
-'localtime' => 'Жергиликтүү убакыт',
+'stub-threshold-disabled' => 'Өчүрүлгөн',
+'timezonelegend' => 'Сааттык алкак:',
+'localtime' => 'Жердик убакыт:',
+'timezoneoffset' => 'Жылыш¹:',
 'servertime' => 'Сервер убагы:',
 'timezoneregion-africa' => 'Африка',
 'timezoneregion-america' => 'Америка',
@@ -569,7 +605,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'uid' => 'Колдонуучунун ID си:',
 'yourrealname' => 'Анык атыңыз:',
 'yourlanguage' => 'Тил:',
-'yourvariant' => 'Ð\92аÑ\80ианÑ\82:',
+'yourvariant' => 'Ð\9cазмÑ\83ндÑ\83н Ñ\82ил Ð²Ð°Ñ\80ианÑ\82Ñ\8b:',
 'yournick' => 'Жаңы колуңуз:',
 'yourgender' => 'Жыныс:',
 'gender-male' => 'Эркек',
@@ -579,6 +615,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-help-email-others' => 'Ошондой эле башкалар сиз менен колдонуучу же талкуу барактарыңыздагы шилтеме аркылуу байланыш түзүүгө уруксат берүүнү тандай аласыз.
 Электрондук дарегиңиз башка кодонуучуларга байланыш түзгөндө көрүнбөйт.',
 'prefs-info' => 'Негизги маалыматтары',
+'prefs-i18n' => 'Интернационализация',
+'prefs-signature' => 'Кол тамга',
 'prefs-dateformat' => 'Дата форматы',
 'prefs-advancedediting' => 'Кеңейтилген ырастоолор',
 'prefs-advancedrc' => 'Кеңейтилген ырастоолор',
@@ -586,6 +624,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-advancedsearchoptions' => 'Кеңейтилген ырастоолор',
 'prefs-advancedwatchlist' => 'Кеңейтилген ырастоолор',
 'prefs-displayrc' => 'Көрсөтүүнүн ырастоолору',
+'prefs-displaysearchoptions' => 'Көрсөтүүнүн ырастоолору',
+'prefs-displaywatchlist' => 'Көрсөтүүнүн ырастоолору',
 
 # User rights
 'userrights-reason' => 'Себеп:',
@@ -593,14 +633,29 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Groups
 'group' => 'Топ:',
 'group-user' => 'Катышуучулар',
+'group-bot' => 'Боттор',
 'group-sysop' => 'Администраторлор',
 'group-bureaucrat' => 'Бюрократтар',
+'group-all' => '(баары)',
 
-'group-bureaucrat-member' => 'Бюрократ',
+'group-user-member' => '{{GENDER:$1|катышуучу}}',
+'group-bot-member' => '{{GENDER:$1|бот}}',
+'group-sysop-member' => '{{GENDER:$1|администратор}}',
+'group-bureaucrat-member' => '{{GENDER:$1|бюрократ}}',
+
+'grouppage-user' => '{{ns:project}}:Катышуучулар',
+'grouppage-bot' => '{{ns:project}}:Боттор',
+'grouppage-sysop' => '{{ns:project}}:Администраторлор',
 
 # Rights
+'right-edit' => 'Барактарды оңдоо',
+'right-move' => 'Барактарды ташуу',
+'right-movefile' => 'Файлдарды ташуу',
 'right-upload' => 'Файлдарды жүктөө',
 'right-delete' => 'Барактарды өчүрүү',
+'right-browsearchive' => 'Өчүрүлгөн барактарды издөө',
+'right-suppressionlog' => 'Жеке журналдарды көрүү',
+'right-userrights' => 'Бүт катышуучулардын укуктарын оңдоо',
 
 # User rights log
 'rightsnone' => '(жок)',
@@ -609,7 +664,13 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'action-read' => 'бул баракты окуу',
 'action-edit' => 'бул баракты оңдоо',
 'action-createpage' => 'барактарды жаратуу',
+'action-createtalk' => 'талкуулоо барагын жаратуу',
+'action-createaccount' => 'бул эсеп жазуусун жаратуу',
+'action-upload' => 'бул файлды жүктөө',
 'action-delete' => 'бул баракты өчүрүү',
+'action-suppressionlog' => 'бул жеке журналды көрүү',
+'action-userrights' => 'бүт катышуучулардын укуктарын оңдоо',
+'action-sendemail' => 'электрондук каттарды жөнөтүү',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|өзгөрүү|өзгөрүү}}',
@@ -638,6 +699,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'minoreditletter' => 'м',
 'newpageletter' => 'Ж',
 'boteditletter' => 'б',
+'rc_categories_any' => 'Каалаган',
 'rc-enhanced-expand' => 'Кошумча маалыматтарды көрсөтүү (JavaScript талап кылынат)',
 'rc-enhanced-hide' => 'Кошумча маалыматтарды жашыруу',
 
@@ -658,15 +720,22 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'uploaderror' => 'Жүктөө катасы',
 'uploadlog' => 'жүктөө журналы',
 'uploadlogpage' => 'Жүктөөлөрдүн тизмеси',
+'filename' => 'Файл аты',
 'filedesc' => 'Кыска түшүндүрмө',
 'fileuploadsummary' => 'Кыскача баяндама:',
+'filereuploadsummary' => 'Файлдагы өзгөрүүлөр:',
+'filesource' => 'Булак:',
 'uploadedfiles' => 'Жүктөлгөн файлдар',
 'savefile' => 'Файлды сактоо',
 'uploadedimage' => '"[[$1]]" жүктөлдү',
 'upload-source' => 'Баштапкы файл',
+'sourcefilename' => 'Булактын файл аты:',
+'sourceurl' => 'Булактын URL-дареги:',
 'upload-description' => 'Файл баяндамасы',
 'upload-success-subj' => 'Ийгиликтүү жүктөлдү',
+'upload-failure-subj' => 'Жүктөө көйгөйү',
 
+'upload-proto-error' => 'Туура эмес протокол',
 'upload-file-error' => 'Ички ката',
 'upload-unknown-size' => 'Белгисиз өлчөм',
 
@@ -682,6 +751,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Special:ListFiles
 'imgfile' => 'файл',
 'listfiles' => 'Файлдар тизмеси',
+'listfiles_thumb' => 'Миниатюра',
 'listfiles_date' => 'Дата',
 'listfiles_name' => 'Ат',
 'listfiles_user' => 'Катышуучу',
@@ -700,6 +770,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'filehist-datetime' => 'Дата/Убакыт',
 'filehist-thumb' => 'Миниатюра',
 'filehist-thumbtext' => '$1 -дагы версиясы үчүн кичирейтилген сүрөтү',
+'filehist-nothumb' => 'Миниатюра жок',
 'filehist-user' => 'Катышуучу',
 'filehist-dimensions' => 'Өлчөмдөр',
 'filehist-filesize' => 'Файл өлчөмү',
@@ -1077,17 +1148,57 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'exif-source' => 'Булак',
 'exif-languagecode' => 'Тил',
 
+'exif-subjectdistance-value' => '$1 метр',
+
 'exif-meteringmode-0' => 'Белгисиз',
 'exif-meteringmode-255' => 'Башка',
 
+'exif-lightsource-0' => 'Белгисиз',
+'exif-lightsource-4' => 'Жарк',
+'exif-lightsource-11' => 'Көлөкө',
+
+# Flash modes
+'exif-flash-mode-3' => 'автоматтык режим',
+
 'exif-focalplaneresolutionunit-2' => 'дюйм',
 
+'exif-scenecapturetype-0' => 'Стандарттуу',
+'exif-scenecapturetype-1' => 'Ландшафт',
+'exif-scenecapturetype-2' => 'Портрет',
+'exif-scenecapturetype-3' => 'Түнкү тартуу',
+
 'exif-gaincontrol-0' => 'Жок',
 
+'exif-subjectdistancerange-0' => 'Белгисиз',
+'exif-subjectdistancerange-1' => 'Макротартуу',
+
 # Pseudotags used for GPSDestDistanceRef
 'exif-gpsdestdistance-k' => 'Километр',
-
-'exif-dc-rights' => 'Укутар',
+'exif-gpsdestdistance-m' => 'Миля',
+
+'exif-gpsdop-excellent' => 'Мыкты ($1)',
+'exif-gpsdop-good' => 'Жакшы ($1)',
+'exif-gpsdop-moderate' => 'Орточо ($1)',
+'exif-gpsdop-poor' => 'Начар ($1)',
+
+'exif-dc-contributor' => 'Авторлоштор',
+'exif-dc-date' => 'Дата(лар)',
+'exif-dc-publisher' => 'Бастыруучу',
+'exif-dc-rights' => 'Укуктар',
+'exif-dc-source' => 'Баштапкы медиа',
+'exif-dc-type' => 'Медианын түрү',
+
+'exif-iimcategory-fin' => 'Экономика жана бизнес',
+'exif-iimcategory-edu' => 'Билим',
+'exif-iimcategory-evn' => 'Айлана чөйрө',
+'exif-iimcategory-hth' => 'Ден соолук',
+'exif-iimcategory-lab' => 'Эмгек',
+'exif-iimcategory-pol' => 'Саясат',
+'exif-iimcategory-rel' => 'Дин жана ишеним',
+'exif-iimcategory-sci' => 'Илим жана техника',
+'exif-iimcategory-soi' => 'Социалдык маселелер',
+'exif-iimcategory-spo' => 'Спорт',
+'exif-iimcategory-wea' => 'Аба ырайы',
 
 # External editor support
 'edit-externally' => 'Бул файлды сырткы программа колдонуу аркылуу оңдоо',
@@ -1113,6 +1224,18 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'confirm-watch-button' => 'ОК',
 'confirm-unwatch-button' => 'ОК',
 
+# Multipage image navigation
+'imgmultipageprev' => '← мурунку барак',
+'imgmultipagenext' => 'кийинки барак →',
+'imgmultigo' => 'Өтүү!',
+
+# Table pager
+'table_pager_next' => 'Кийинки барак',
+'table_pager_prev' => 'Мурунку барак',
+'table_pager_first' => 'Биринчи барак',
+'table_pager_last' => 'Акыркы барак',
+'table_pager_limit_submit' => 'Аткаруу',
+
 # Live preview
 'livepreview-loading' => 'Жүктөө...',
 
@@ -1126,7 +1249,9 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 
 # Special:Version
 'version' => 'Версия',
+'version-variables' => 'Өзгөрмөлөр',
 'version-other' => 'Башка',
+'version-version' => '(Версия $1)',
 'version-license' => 'Лицензия',
 'version-software' => 'Орнотулган программалык камсыздоо',
 'version-software-product' => 'Продукт',
@@ -1136,6 +1261,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Special:FilePath
 'filepath' => 'Файл жолу',
 'filepath-page' => 'Файл:',
+'filepath-submit' => 'Өтүү',
 
 # Special:SpecialPages
 'specialpages' => 'Атайын барактар',
index 6955572..9d0fb26 100644 (file)
@@ -2907,11 +2907,41 @@ Kull azzjonijiet ta' importazzjoni tal-transwiki jiġu reġistrati fil-[[Special
 
 # Info page
 'pageinfo-title' => 'Informazzjoni għal "$1"',
-'pageinfo-header-edits' => 'Modifiki',
+'pageinfo-not-current' => 'Jiddispjaċina, imma huwa impossibbli li tingħata informazzjoni fuq reviżjonijiet qodma.',
+'pageinfo-header-basic' => 'Informazzjoni bażika',
+'pageinfo-header-edits' => 'Kronoloġija tal-modifiki',
+'pageinfo-header-restrictions' => 'Protezzjoni tal-paġna',
+'pageinfo-display-title' => 'Titlu muri',
+'pageinfo-length' => "Daqs tal-paġna (f'bytes)",
+'pageinfo-article-id' => 'ID tal-paġna',
+'pageinfo-language' => 'Lingwa tal-kontenut tal-paġna',
+'pageinfo-robot-policy' => 'Stat għall-muturi tat-tfittxija',
+'pageinfo-robot-index' => 'Indiċjabbli',
+'pageinfo-robot-noindex' => 'Mhux indiċjabbli',
 'pageinfo-views' => "Numru ta' viżti",
-'pageinfo-watchers' => "Numru ta' osservaturi",
-'pageinfo-edits' => "Numru ta' modifiki",
-'pageinfo-authors' => "Numru ta' awturi distinti",
+'pageinfo-watchers' => "Numru ta' osservaturi tal-paġna",
+'pageinfo-redirects-name' => 'Rindirizzi lejn din il-paġna',
+'pageinfo-subpages-name' => "Sottopaġni ta' din il-paġna",
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|rindirizz|rindirizzi}}; $3 {{PLURAL:$3|mhumiex rindirizzi}})',
+'pageinfo-firstuser' => 'Kreatur tal-paġna',
+'pageinfo-firsttime' => 'Data tal-ħolqien tal-paġna',
+'pageinfo-lastuser' => 'L-aħħar editur',
+'pageinfo-lasttime' => 'Data tal-aħħar modifika',
+'pageinfo-edits' => "Numru totali ta' modifiki",
+'pageinfo-authors' => "Numru totali ta' awturi distinti",
+'pageinfo-recent-edits' => "Numru ta' modifiki riċenti (f'dawn l-aħħar $1)",
+'pageinfo-recent-authors' => "Numru riċenti ta' awturi distinti",
+'pageinfo-magic-words' => '{{PLURAL:$1|Kelma maġika|Kliem maġiku}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Kategorija|Kategoriji}} moħbija ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Mudell inkluż|Mudelli inklużi}} ($1)',
+'pageinfo-toolboxlink' => 'Informazzjoni fuq il-paġna',
+'pageinfo-redirectsto' => 'Tirrindirizza lejn',
+'pageinfo-redirectsto-info' => 'info',
+'pageinfo-contentpage' => "Magħduda bħala paġna ta' kontenut",
+'pageinfo-contentpage-yes' => 'Iva',
+'pageinfo-protect-cascading' => 'Protezzjoni li tintiret minn hawnhekk',
+'pageinfo-protect-cascading-yes' => 'Iva',
+'pageinfo-protect-cascading-from' => 'Protezzjoni li tintiret minn',
 
 # Skin names
 'skinname-standard' => 'Classic',
@@ -2933,6 +2963,8 @@ Kull azzjonijiet ta' importazzjoni tal-transwiki jiġu reġistrati fil-[[Special
 'markedaspatrollederror' => 'Ma jistax jiġi markat bħalha verifikat',
 'markedaspatrollederrortext' => 'Int trid tispeċifika r-reviżjoni li trida tkun verifikata.',
 'markedaspatrollederror-noautopatrol' => "Int m'għandhekx id-drittijiet neċessarji biex timmarka l-modifiki tiegħek bħala verifikati.",
+'markedaspatrollednotify' => 'Din il-bidla fuq $1 ġiet immarkata bħala verifikata.',
+'markedaspatrollederrornotify' => 'L-ivverifikar tal-modifika falla.',
 
 # Patrol log
 'patrol-log-page' => 'Modifiki verifikati',
index 750bc43..fc0b028 100644 (file)
@@ -271,7 +271,7 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'cancel' => 'ਰੱਦ ਕਰੋ',
 'moredotdotdot' => 'ਹੋਰ...',
 'mypage' => 'ਪੰਨਾ',
-'mytalk' => 'ਮà©\87ਰà©\80 à¨\9aਰà¨\9aਾ',
+'mytalk' => 'à¨\97ੱਲ-ਬਾਤ',
 'anontalk' => 'ਇਸ IP ਲਈ ਗੱਲ-ਬਾਤ',
 'navigation' => 'ਰਹਿਨੁਮਾਈ',
 'and' => '&#32;ਅਤੇ',
@@ -282,7 +282,7 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'qbedit' => 'ਸੋਧ',
 'qbpageoptions' => 'ਇਹ ਪੰਨਾ',
 'qbmyoptions' => 'ਮੇਰੇ ਪੰਨੇ',
-'qbspecialpages' => 'ਖਾਸ ਪੰਨੇ',
+'qbspecialpages' => 'à¨\96਼ਾਸ à¨ªà©°à¨¨à©\87',
 'faq' => 'ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲ਼ੇ ਸਵਾਲ',
 'faqpage' => 'Project:ਸਵਾਲ-ਜਵਾਬ',
 
@@ -333,7 +333,7 @@ Manual:External_editors ਹੋਰ ਜਾਣਕਾਰੀ।])',
 'unprotectthispage' => 'ਇਹ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'newpage' => 'ਨਵਾਂ ਸਫ਼ਾ',
 'talkpage' => 'ਇਸ ਸਫ਼ੇ ਬਾਰੇ ਚਰਚਾ ਕਰੋ',
-'talkpagelinktext' => 'à¨\9aਰà¨\9aਾ',
+'talkpagelinktext' => 'à¨\97ੱਲ-ਬਾਤ',
 'specialpage' => 'ਖ਼ਾਸ ਸਫ਼ਾ',
 'personaltools' => 'ਨਿੱਜੀ ਸੰਦ',
 'postcomment' => 'ਨਵਾਂ ਸੈਕਸ਼ਨ',
@@ -1122,10 +1122,10 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'group-bot' => 'ਬੋਟ',
 'group-all' => '(ਸਭ)',
 
-'group-user-member' => '{{GENDER:$1|ਮà©\88à¨\82ਬਰ}}',
+'group-user-member' => '{{GENDER:$1|ਵਰਤà©\8bà¨\82à¨\95ਾਰ}}',
 'group-bot-member' => 'ਬੋਟ',
 
-'grouppage-user' => '{{ns:project}}:ਮà©\88à¨\82ਬਰ',
+'grouppage-user' => '{{ns:project}}:ਵਰਤà©\8bà¨\82à¨\95ਾਰ',
 
 # Rights
 'right-read' => 'ਸਫ਼ੇ ਪੜ੍ਹਨਾ',
@@ -1563,7 +1563,7 @@ to upload files.',
 
 # Watchlist
 'watchlist' => 'ਮੇਰੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ',
-'mywatchlist' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f',
+'mywatchlist' => 'ਨਿà¨\97ਰਾਨà©\80-ਸà©\82à¨\9aà©\80',
 'watchlistfor2' => '$1 $2 ਲਈ',
 'nowatchlist' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ।',
 'watchlistanontext' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ ਵੇਖਣ ਜਾਂ ਸੋਧਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ $1।',
@@ -1700,7 +1700,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'blanknamespace' => '(ਮੁੱਖ)',
 
 # Contributions
-'contributions' => 'ਮà©\88à¨\82ਬਰ ਯੋਗਦਾਨ',
+'contributions' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਯੋਗਦਾਨ',
 'contributions-title' => '$1 ਦੇ ਯੋਗਦਾਨ',
 'mycontris' => 'ਯੋਗਦਾਨ',
 'contribsub2' => '$1 ($2) ਲਈ',
@@ -2098,7 +2098,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'version' => 'ਵਰਜਨ',
 
 # Special:SpecialPages
-'specialpages' => 'ਖਾਸ ਪੰਨੇ',
+'specialpages' => 'à¨\96਼ਾਸ à¨ªà©°à¨¨à©\87',
 'specialpages-group-login' => 'ਲਾਗਇਨ / ਖਾਤਾ ਬਣਾਓ',
 
 # Special:BlankPage
index 81a9988..0358958 100644 (file)
@@ -3659,8 +3659,8 @@ Le figure a së smon-o a amzura pijn-a, j'àotre sòrt d'archivi a ven-o fàite
 'tags-tag' => 'Nòm ëd la tichëtta',
 'tags-display-header' => 'Aparensa ant la lista dle modìfiche',
 'tags-description-header' => 'Descrission completa dël significà',
-'tags-hitcount-header' => 'Modìfiche con tag',
-'tags-edit' => 'modìfica',
+'tags-hitcount-header' => 'Modìfiche con tichëtta',
+'tags-edit' => 'modifiché',
 'tags-hitcount' => '$1 {{PLURAL:$1|cambiament|cambiament}}',
 
 # Special:ComparePages
index 672a8a5..61e5569 100644 (file)
@@ -357,7 +357,7 @@ $messages = array(
 
 'underline-always' => 'Sempre',
 'underline-never' => 'Nunca',
-'underline-default' => 'Usar a configuração do browser',
+'underline-default' => 'Aspeto ou padrão do browser',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Fonte de edição:',
@@ -475,6 +475,7 @@ $messages = array(
 'namespaces' => 'Espaços nominais',
 'variants' => 'Variantes',
 
+'navigation-heading' => 'Menu de navegação',
 'errorpagetitle' => 'Erro',
 'returnto' => 'Voltar para $1.',
 'tagline' => 'Da {{SITENAME}}',
@@ -628,11 +629,11 @@ Encontra uma lista das páginas especiais válidas em [[Special:SpecialPages|{{i
 'error' => 'Erro',
 'databaseerror' => 'Erro na base de dados',
 'dberrortext' => 'Ocorreu um erro sintáctico na pesquisa à base de dados.
-Isto pode indicar um defeito neste programa.
-A última tentativa de consulta à base de dados foi:
-<blockquote><tt>$1</tt></blockquote>
-na função "<tt>$2</tt>".
-A base de dados devolveu o erro "<tt>$3: $4</tt>".',
+Isto poderá indicar um defeito no software.
+A última pesquisa executada na base de dados foi:
+<blockquote><code>$1</code></blockquote>
+na função "<code>$2</code>".
+A base de dados devolveu o erro "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Ocorreu um erro sintáctico na pesquisa à base de dados.
 A última tentativa de consulta à base de dados foi:
 "$1"
@@ -685,7 +686,7 @@ Consulta: $2',
 'viewsource-title' => 'Mostrar código-fonte de $1',
 'actionthrottled' => 'Operação limitada',
 'actionthrottledtext' => 'Como medida anti-spam, está impedido de realizar esta operação demasiadas vezes num espaço de tempo curto e já excedeu esse limite. Tente de novo dentro de alguns minutos, por favor.',
-'protectedpagetext' => 'Esta página foi protegida contra novas edições.',
+'protectedpagetext' => 'Esta página foi protegida para prevenir a sua edição.',
 'viewsourcetext' => 'Pode ver e copiar o conteúdo desta página:',
 'viewyourtext' => "Pode ver e copiar o código-fonte das '''suas edições''' desta página:",
 'protectedinterface' => 'Esta página fornece o texto da interface ao software, e está protegida para prevenir abusos.',
@@ -717,6 +718,7 @@ 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!',
 'yourname' => 'Nome de utilizador:',
 'yourpassword' => 'Palavra-chave:',
 'yourpasswordagain' => 'Repita a palavra-chave:',
@@ -1088,6 +1090,7 @@ Ela já existia.',
 'defaultmessagetext' => 'Texto da mensagem padrão',
 
 # Content models
+'content-model-text' => 'texto simples',
 'content-model-javascript' => 'JavaScript',
 'content-model-css' => 'CSS',
 
@@ -2018,7 +2021,7 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 'uploadnewversion-linktext' => 'Carregar uma nova versão deste ficheiro',
 'shared-repo-from' => 'de $1',
 'shared-repo' => 'um repositório partilhado',
-'upload-disallowed-here' => 'Infelizmente você não pode substituir essa imagem.',
+'upload-disallowed-here' => 'Você não pode substituir este ficheiro.',
 
 # File reversion
 'filerevert' => 'Reverter $1',
@@ -2304,8 +2307,8 @@ Encontram-se disponíveis [[{{MediaWiki:Listgrouprights-helppage}}|informações
 'emailuser' => 'Enviar correio electrónico a este utilizador',
 'emailuser-title-target' => 'Enviar correio eletrónico a {{GENDER:$1|este utilizador|esta utilizadora}}',
 'emailpage' => 'Enviar correio electrónico ao utilizador',
-'emailpagetext' => 'Pode usar o formulário abaixo para enviar uma mensagem por correio electrónico para este utilizador.
-O endereço de correio que introduziu nas suas [[Special:Preferences|preferências]] irá aparecer no campo do remetente da mensagem "De:", para que o destinatário lhe possa responder directamente.',
+'emailpagetext' => 'Pode usar o formulário abaixo para enviar uma mensagem por correio eletrónico para {{GENDER:$1|este utilizador|esta utilizadora}}.
+O endereço de correio que introduziu nas [[Special:Preferences|suas preferências]] irá aparecer no campo do remetente da mensagem "De:", para que o destinatário lhe possa responder diretamente.',
 'usermailererror' => 'O sistema de correio devolveu o erro:',
 'defemailsubject' => 'Correio electrónico da {{SITENAME}}, do utilizador "$1"',
 'usermaildisabled' => 'Correio electrónico do utilizador foi desactivado',
@@ -3120,6 +3123,7 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 
 # Info page
 'pageinfo-title' => 'Informações sobre "$1"',
+'pageinfo-not-current' => 'Desculpe, é impossível fornecer esta informação para revisõe antigas.',
 'pageinfo-header-basic' => 'Informação básica',
 'pageinfo-header-edits' => 'Histórico de edições',
 'pageinfo-header-restrictions' => 'Proteção da página',
@@ -3146,6 +3150,9 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 'pageinfo-magic-words' => '{{PLURAL:$1|Palavra mágica|Palavras mágicas}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria oculta|Categorias ocultas}} ($1)',
 'pageinfo-toolboxlink' => 'Informações da página',
+'pageinfo-redirectsto' => 'Redireciona para',
+'pageinfo-redirectsto-info' => 'informação',
+'pageinfo-contentpage' => 'Contada como página de conteúdo',
 'pageinfo-contentpage-yes' => 'Sim',
 'pageinfo-protect-cascading-yes' => 'Sim',
 
@@ -3202,6 +3209,7 @@ Executá-lo poderá comprometer a segurança do seu sistema.",
 'file-info-size-pages' => '$1 × $2 pixels, tamanho do ficheiro: $3, tipo MIME: $4, $5 {{PLURAL:$5|página|páginas}}',
 'file-nohires' => 'Sem resolução maior disponível.',
 'svg-long-desc' => 'ficheiro SVG, de $1 × $2 pixels, tamanho: $3',
+'svg-long-desc-animated' => 'ficheiro SVG animado, de $1 × $2 pixels, tamanho: $3',
 'show-big-image' => 'Resolução completa',
 'show-big-image-preview' => 'Tamanho desta antevisão: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Outra resolução|Outras resoluções}}: $1.',
@@ -3211,6 +3219,8 @@ Executá-lo poderá comprometer a segurança do seu sistema.",
 'file-info-png-looped' => 'ciclo infinito',
 'file-info-png-repeat' => 'reproduzido $1 {{PLURAL:$1|vez|vezes}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|fotograma|fotogramas}}',
+'file-no-thumb-animation' => "'''Nota: Devido a limitações técnicas, miniaturas deste ficheiro não serão animadas.'''",
+'file-no-thumb-animation-gif' => "'''Nota: Devido a limitações técnicas, miniaturas de imagens GIF de alta resolução tais como esta não serão animadas.'''",
 
 # Special:NewFiles
 'newimages' => 'Galeria de novos ficheiros',
@@ -3230,6 +3240,7 @@ Executá-lo poderá comprometer a segurança do seu sistema.",
 'hours' => '{{PLURAL:$1|uma hora|$1 horas}}',
 'days' => '{{PLURAL:$1|um dia|$1 dias}}',
 'ago' => '$1 atrás',
+'just-now' => 'agora mesmo',
 
 # Bad image list
 'bad_image_list' => 'O formato é o seguinte:
@@ -3983,9 +3994,9 @@ Imagens serão apresentadas pelo browser na resolução máxima; ficheiros de ou
 'logentry-move-move_redir-noredirect' => '$1 moveu a página $3 para $4 sem um redireccionamento',
 'logentry-patrol-patrol' => '$1 marcou a revisão $4 da página $3 como patrulhada',
 'logentry-patrol-patrol-auto' => '$1 marcou automaticamente a revisão $4 da página $3 como patrulhada',
-'logentry-newusers-newusers' => '$1 criou uma conta de utilizador',
-'logentry-newusers-create' => '$1 criou uma conta de utilizador',
-'logentry-newusers-create2' => '$1 criou uma conta de utilizador $3',
+'logentry-newusers-newusers' => 'A conta de utilizador $1 foi criada',
+'logentry-newusers-create' => 'A conta de utilizador $1 foi criada',
+'logentry-newusers-create2' => 'A conta de utilizador $3 foi criada por $1',
 'logentry-newusers-autocreate' => 'A conta $1 foi criada automaticamente',
 'newuserlog-byemail' => 'palavra-chave enviada por correio-electrónico',
 
@@ -4061,4 +4072,6 @@ Caso contrário, pode facilmente usar o formulário abaixo. O seu comentário se
 'duration-centuries' => '$1 {{PLURAL:$1|século|séculos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milénio|milénios}}',
 
+# Unknown messages
+'svg-long-error' => 'Ficheiro SVG inválido: $1',
 );
index 9dfe974..38e1356 100644 (file)
@@ -2777,6 +2777,7 @@ Similar to {{msg-mw|rcnote}} which is used on [[Special:RecentChanges]].
 'watcherrortext' => 'When a user clicked the watch/unwatch tab and the action did not succeed, this message is displayed. See also {{msg|addedwatchtext}}. and {{msg|addedwatchtext}}. This message is used raw and should not contain wikitext.',
 
 'enotif_reset' => "This should be translated as \"Mark all pages '''as''' visited\".",
+'enotif_impersonal_salutation' => 'Used for impersonal e-mail notifications, suitable for bulk mailing.',
 'enotif_subject_deleted' => 'Email notification subject for deleted pages, $1 is page title, $2 is page editor.',
 'enotif_subject_created' => 'Email notification subject for new pages, $1 is page title, $2 is page editor.',
 'enotif_subject_moved' => 'Email notification subject for pages that get moved, $1 is page title, $2 is page editor.',
@@ -2794,7 +2795,25 @@ Similar to {{msg-mw|rcnote}} which is used on [[Special:RecentChanges]].
 * $1 is the anonymous user name (i.e. an IP address).',
 'enotif_body' => 'Text of a notification e-mail sent when a watched page has been edited or deleted.[[File:Screenshot_MediaWiki_e-mail_notifier.PNG|150px|right]]
 
-* <tt>$CHANGEDORCREATED</tt> can be one of {{msg-mw|changed}}, {{msg-mw|created}}, or {{msg-mw|deleted}}. Can also be {{msg-mw|blog-added}} or {{msg-mw|blog-edited}} from Wikia.',
+*$WATCHINGUSERNAME is the username of the user receiving the notification.
+*$PAGEINTRO is the first line of the message, saying what happened. It currently can be either of:
+**{{msg-mw|enotif body intro deleted}}
+**{{msg-mw|enotif body intro created}}
+**{{msg-mw|enotif body intro moved}}
+**{{msg-mw|enotif body intro restored}} 
+**{{msg-mw|enotif body intro changed}} (for all the other cases).
+*$NEWPAGE consists of
+**{{msg-mw|enotif lastdiff}}
+**a newline
+**{{msg-mw|enotif lastvisited}}
+*$PAGEEDITOR_EMAIL and $PAGEEDITOR_WIKI are links respectively to the e-mail user special page and user page for the user who performed the action.
+
+The subject of the e-mail is one of the following messages:
+*{{msg-mw|enotif subject deleted}}
+*{{msg-mw|enotif subject created}}
+*{{msg-mw|enotif subject moved}}
+*{{msg-mw|enotif subject restored}}
+*{{msg-mw|enotif subject changed}}',
 
 # Delete
 'confirm' => 'Submit button text for protection confirmation
index 9808e95..fb40c51 100644 (file)
@@ -2061,8 +2061,8 @@ $1',
 'emailuser-title-target' => 'Загнати імейл {{GENDER:$1|тому хоснователёви|тій хосновательцї}}',
 'emailuser-title-notarget' => 'Загнати імейл хоснователёви',
 'emailpage' => 'Пошлийте е-пошту',
-'emailpagetext' => 'Ð\9fомоÑ\87ов Ð½Ð¸Ð¶Ðµ Ð·Ð¾Ð±Ñ\80аженого Ñ\84оÑ\80мÑ\83лаÑ\80Ñ\8f Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\82омÑ\83 Ñ\85оÑ\81новаÑ\82елÑ\91ви Ð¿Ð¾Ñ\81лати повідомлїня ел. поштов.
\90дÑ\80еÑ\81а ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, ÐºÐ¾Ñ\82Ñ\80Ñ\83 Ð¼Ð°Ñ\82е Ð·Ð°Ð·Ð½Ð°Ñ\87енÑ\83 Ð² [[Special:Preferences|наÑ\81Ñ\82авлÑ\97нÑ\8f]],Ñ\81Ñ\8f Ð¾Ð±Ñ\8fвиÑ\82Ñ\8c Ñ\8fк Ð°Ð´Ñ\80еÑ\81а Ð¾Ð´Ð¾Ñ\81Ñ\8bлаÑ\82елÑ\8f Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, Ð¶ÐµÐ±Ñ\8b Ð²Ð°Ð¼ Ð°Ð´Ñ\80еÑ\81аÑ\82 Ð¼Ñ\96г Ð¾Ð´Ð¿Ð¾Ð²Ñ\96Ñ\81Ñ\82и Ð¿Ñ\80Ñ\8fмо.',
+'emailpagetext' => 'Ð\97 Ð½Ð¸Ð¶Ðµ Ð·Ð¾Ð±Ñ\80аженÑ\8bм Ñ\84оÑ\80мÑ\83лаÑ\80Ñ\91м Ð³Ð¾Ð´Ð½Ð¾ {{GENDER:$1|Ñ\82омÑ\83 Ñ\85оÑ\81новаÑ\82елÑ\91ви|Ñ\82Ñ\96й Ñ\85оÑ\81новаÑ\82елÑ\8cÑ\86Ñ\97}} Ð·Ð°Ð³Ð½ати повідомлїня ел. поштов.
\90дÑ\80еÑ\81а ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, ÐºÐ¾Ñ\82Ñ\80Ñ\83 Ð¼Ð°Ñ\82е Ð·Ð°Ð·Ð½Ð°Ñ\87енÑ\83 Ð² [[Special:Preferences|наÑ\81Ñ\82авлÑ\97нÑ\8f]],Ñ\81Ñ\8f Ð¾Ð±Ñ\8fвиÑ\82Ñ\8c Ñ\8fк Ð°Ð´Ñ\80еÑ\81а Ð¾Ð´Ð¾Ñ\81Ñ\8bлаÑ\82елÑ\8f Ð¿Ð¾Ñ\88Ñ\82Ñ\8b, Ð¶ÐµÐ±Ñ\8b Ð²Ð°Ð¼ Ð°Ð´Ñ\80еÑ\81аÑ\82 Ð¼Ñ\96г Ð±ÐµÑ\81поÑ\81еÑ\80еднÑ\91 Ð¾Ð´Ð¿Ð¾Ð²Ñ\96Ñ\81Ñ\82и.',
 'usermailererror' => 'Хыба поштового проґраму:',
 'defemailsubject' => '{{SITENAME}}: лист од "$1"',
 'usermaildisabled' => 'Посыланя ел. пошты є выпнуте',
@@ -2130,6 +2130,16 @@ $1',
 'enotif_mailer' => 'Засылач нотіфікацій {{grammar:2sg|{{SITENAME}}}}',
 'enotif_reset' => 'Означіти вшытко як навщівене',
 'enotif_impersonal_salutation' => 'Хоснователь {{grammar:genitive|{{SITENAME}}}}',
+'enotif_subject_deleted' => '$2 {{gender:$2|змазав|змазала}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_created' => '$2 {{gender:$2|створив|створила}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_moved' => '$2 {{gender:$2|переменовав|переменовала}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_restored' => '$2 {{gender:$2|обновив|обновила}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_subject_changed' => '$2 {{gender:$2|змінив|змінила}} сторінку $1 на {{grammar:6sg|{{SITENAME}}}}',
+'enotif_body_intro_deleted' => 'В $PAGEEDITDATE {{gender:$2|змазав|змазала}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_created' => 'В $PAGEEDITDATE {{gender:$2|створив|створила}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_moved' => 'В $PAGEEDITDATE {{gender:$2|переменовав|переменовала}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_restored' => 'В $PAGEEDITDATE {{gender:$2|обновив|обновила}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
+'enotif_body_intro_changed' => 'В $PAGEEDITDATE {{gender:$2|змінив|змінила}} $2 на {{grammar:6sg|{{SITENAME}}}} сторінку $1, посмотьте актуалну верзію на $3 .',
 'enotif_lastvisited' => 'Видьте $1 про список вшыткых змін од минулой навщівы.',
 'enotif_lastdiff' => 'Тоту зміну видьте на $1',
 'enotif_anon_editor' => 'анонімный хоснователь $1',
@@ -2306,7 +2316,8 @@ $UNWATCHURL
 'undeletedrevisions' => '{{PLURAL:$1|Обновлена $1 верзія|Обновлены $1 верзії|Обновленых $1 верзій}}',
 'undeletedrevisions-files' => '{{PLURAL:$1|Обновлена єдна верзія|Обновлены $1 верзії|Обновленых $1 верзій}} і $2 {{PLURAL:$2|файл|файлы|файлів}}.',
 'undeletedfiles' => '{{PLURAL:$1|обновленый $1 файл|обновлены $1 файлы|обновленых $1 файлів}}',
-'cannotundelete' => 'Обновлїня ся не вдало; правдоподобно  дахто другый обновив сторінку скоре як вы.',
+'cannotundelete' => 'Обновлїня ся не вдало:
+$1',
 'undeletedpage' => "'''$1 была обновлена'''
 
 Запис о послїднїх мазанях і обновлїнях найдете в  [[Special:Log/delete|книзї змазаных сторінок]].",
@@ -2337,7 +2348,7 @@ $1',
 'blanknamespace' => '(Основный)',
 
 # Contributions
-'contributions' => 'Ð\9fÑ\80иÑ\81пÑ\96вок Ñ\85оÑ\81новаÑ\82елÑ\8f',
+'contributions' => 'Ð\9fÑ\80иÑ\81пÑ\96вкÑ\8b {{GENDER:$1|Ñ\85оÑ\81новаÑ\82елÑ\8f\85оÑ\81новаÑ\82елÑ\8cкÑ\8b}}',
 'contributions-title' => 'Приспівок хоснователя $1',
 'mycontris' => 'Приспівкы',
 'contribsub2' => 'Приспівок $1 ($2)',
@@ -2607,6 +2618,7 @@ $1',
 'immobile-target-namespace-iw' => 'Міджіязыковый одказ не є валідный ціль про переменованя сторінкы.',
 'immobile-source-page' => 'Тота сторінка ся не дасть переменовати.',
 'immobile-target-page' => 'Сторінка ся не дасть переменовати на дану назву.',
+'bad-target-model' => 'Желаный цїль хоснує другый модел обсягу. Не годен перевести $1 на $2.',
 'imagenocrossnamespace' => 'Не дасть ся переменовати файл мімо простор назв файлів',
 'nonfile-cannot-move-to-file' => 'До простору назв  {{ns:file}} ся не дають переменовати сторінкы неналежачі ку файлу',
 'imagetypemismatch' => 'Нове росшырїня файлу не одповідать ёго тіпу',
@@ -2683,6 +2695,7 @@ $1',
 'import-interwiki-templates' => 'Загорнути вшыткы шаблоны',
 'import-interwiki-submit' => 'Імпортовати',
 'import-interwiki-namespace' => 'Цілёвый простор назв:',
+'import-interwiki-rootpage' => 'Цїлёва корїнёва сторінка (необовязково):',
 'import-upload-filename' => 'Назва файлу:',
 'import-comment' => 'Коментарь:',
 'importtext' => 'Просиме Вас, експортуйте сторінку з іншой вікі помочов [[Special:Export|інштрументу на експорт]], уложте файл на ваш діск а потім го заладуйте гев.',
@@ -2714,6 +2727,9 @@ $1',
 'import-error-interwiki' => 'Сторінка „$1“ ся не імпортує, бо єй назва є зарезервована про вонкашнї лінкы (interwiki).',
 'import-error-special' => 'Сторінка „$1“ ся не імпортує, бо належыть до шпеціалного простору назв, до котрого сторінкы не належать.',
 'import-error-invalid' => 'Сторінка „$1“ ся не імпортує, бо єй назва неприпустна.',
+'import-options-wrong' => '{{PLURAL:$2|Неправильна опція|Неправильны опції}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Вказана некоректна назва корїнёвой сторінкы',
+'import-rootpage-nosubpage' => 'В просторї назв вказаной корїнёвой сторінкы «$1» не дозволены підсторінкы',
 
 # Import log
 'importlogpage' => 'Книга імпортів',
@@ -2829,18 +2845,38 @@ $1',
 
 # Info page
 'pageinfo-title' => 'Інформація про "$1"',
+'pageinfo-not-current' => 'Перебачте, інформації не годно вказати про старшы ревізії.',
 'pageinfo-header-basic' => 'Основны інформації',
 'pageinfo-header-edits' => 'Історія едітовань',
 'pageinfo-header-restrictions' => 'Замок сторінкы',
 'pageinfo-header-properties' => 'Властности сторінкы',
 'pageinfo-display-title' => 'Вказована назва',
+'pageinfo-default-sort' => 'Основный ключ сортованя',
+'pageinfo-length' => 'Довжына сторінкы (в байтах)',
+'pageinfo-article-id' => 'ID сторінкы',
+'pageinfo-language' => 'Язык обсягу сторінкы',
+'pageinfo-robot-policy' => 'Наштелёваня про выглядавачі сістемы',
+'pageinfo-robot-index' => 'Індексує ся',
+'pageinfo-robot-noindex' => 'Не індексує ся',
 'pageinfo-views' => 'Чісло переглядів',
 'pageinfo-watchers' => 'Кількость слїдуючіх сторінку',
 'pageinfo-redirects-name' => 'Напрямлїня на гевсю сторінку',
 'pageinfo-subpages-name' => 'Підсторінкы гевсёй сторінкы',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|напрямлїня}}; $3 {{PLURAL:$3|ненапрямлїня}})',
 'pageinfo-firstuser' => 'Заснователь сторінкы',
+'pageinfo-firsttime' => 'Дата створїня сторінкы',
+'pageinfo-lastuser' => 'Остатнїй редактор',
+'pageinfo-lasttime' => 'Дата остатнёго едітованя',
 'pageinfo-edits' => 'Кількость вшыткого едітованя',
 'pageinfo-authors' => 'Вшытка кількость унікатных авторів',
+'pageinfo-recent-edits' => 'Кількость недавных ($1) едітовань',
+'pageinfo-recent-authors' => 'Кількость авторів за остатнїй час',
+'pageinfo-magic-words' => '{{PLURAL:$1|Маґічне слово|Маґічны слова}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрыта катеґорія|Скрыты катеґорії}} ($1)',
+'pageinfo-redirectsto-info' => 'інформація',
+'pageinfo-contentpage' => 'Рахує ся як статя',
+'pageinfo-contentpage-yes' => 'Гей',
+'pageinfo-protect-cascading-yes' => 'Гей',
 
 # Patrolling
 'markaspatrolleddiff' => 'Означіти як перевірене',
@@ -2913,6 +2949,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 година|$1 годины|$1 годин}}',
 'days' => '{{PLURAL:$1|$1 день|$1 днї|$1 днїв}}',
 'ago' => '$1 тому',
+'just-now' => 'акурат теперь',
 
 # Bad image list
 'bad_image_list' => 'Формат має быти наступным:
@@ -3652,9 +3689,9 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'logentry-move-move_redir-noredirect' => '$1 переменовав сторінку $3 на $4 місце напрямлїня без створїня напрямлїня',
 'logentry-patrol-patrol' => '$1 означів ревізію $4 сторінкы $3 як перевірену',
 'logentry-patrol-patrol-auto' => '$1 автоматічно означів ревізію $4 сторінкы $3 як перевірену',
-'logentry-newusers-newusers' => '$1 створив конто хоснователя',
-'logentry-newusers-create' => '$1 створив конто хоснователя',
-'logentry-newusers-create2' => '$1 створив конто хоснователя $3',
+'logentry-newusers-newusers' => 'Створене хосновательске конто $1',
+'logentry-newusers-create' => 'Створене было хосновательске конто $1',
+'logentry-newusers-create2' => '$1 створив хосновательске конто $3',
 'logentry-newusers-autocreate' => 'Автоматічно было створене конто $1',
 'newuserlog-byemail' => 'гело послане електронічнов поштов',
 
index f07257d..bbba547 100644 (file)
@@ -361,6 +361,7 @@ $messages = array(
 'namespaces' => 'නාමඅවකාශයන්',
 'variants' => 'ප්‍රභේද',
 
+'navigation-heading' => 'සංචාලන මෙනුව',
 'errorpagetitle' => 'දෝෂය',
 'returnto' => '$1 වෙත නැවත යන්න.',
 'tagline' => '{{SITENAME}} වෙතින්',
@@ -603,6 +604,9 @@ $2',
 
 ඔබට නිර්නාමිකව {{SITENAME}} කටයුතු කරගෙන යාහැක, නැතහොත් පෙර පරිශීලක ලෙස හෝ වෙනත් පරිශීලකයෙකු ලෙස <span class='plainlinks'>[$1 නැවත ගිණුමක‍ට පිවිසිය හැක]</span>.
 ඔබගේ බ්‍රවුසරයෙහි පූර්වාපේක්‍ෂී සංචිතය (කෑෂය) පිරිසිදුකරන තෙක්, සමහරක් පිටු විසින් ඔබ තවදුරටත් පිවිසී ඇති බවක් දිගටම පෙන්නුම් කිරීමට ඉඩ ඇත.",
+'welcomeuser' => 'ආයුබෝවන්, $1!',
+'welcomecreation-msg' => 'ඔබගේ ගිණුම තනා ඇත.
+ඔබගේ [[Special:Preferences|{{SITENAME}} අභිරුචීන්]] නෙස් කිරීමට අමතක නොකරන්න.',
 'yourname' => 'පරිශීලක නාමය:',
 'yourpassword' => 'මුරපදය:',
 'yourpasswordagain' => 'මුරපදය යළි ඇතුළු කරන්න:',
index adf1658..3f46114 100644 (file)
@@ -138,6 +138,7 @@ $messages = array(
 'listingcontinuesabbrev' => 'kont',
 'index-category' => 'Maqaalada indeksed',
 'noindex-category' => 'Maqaalada noindeksed',
+'broken-file-category' => 'Bog ka samaysan file aan jirin.',
 
 'about' => 'Ku saabsan',
 'article' => 'Qoraalka bogga oo kooban',
@@ -175,7 +176,9 @@ $messages = array(
 'vector-view-viewsource' => 'Itusi xogta',
 'actions' => 'Waxa dhacaayo',
 'namespaces' => 'Xarun magaceedyada',
+'variants' => 'Isbedelada',
 
+'navigation-heading' => 'Liiska laga galo',
 'errorpagetitle' => 'Qalad',
 'returnto' => 'Ku noqo $1.',
 'tagline' => 'Ka {{SITENAME}}',
@@ -273,6 +276,9 @@ fiiri [[Special:Version|nooca bogga]].',
 'youhavenewmessages' => 'Waxaa heysataa $1 ($2).',
 'newmessageslink' => 'Fariimaha cusub',
 'newmessagesdifflink' => 'bedelkii ugu dambeeyay',
+'youhavenewmessagesfromusers' => 'Waxay $1 kaaga timid {{PLURAL:$3|adeegsade kale|$3 adeegsade}} ($2).',
+'youhavenewmessagesmanyusers' => 'Waxay ka $1 timid adeegsade yaal farabadan ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|Waa fariin cusub|fariin cusub}}',
 'youhavenewmessagesmulti' => '$1 waxaa kuu yaalo fariimo cusub',
 'editsection' => 'Wax ka bedel',
 'editold' => 'Wax ka bedel',
@@ -289,11 +295,15 @@ fiiri [[Special:Version|nooca bogga]].',
 'viewdeleted' => 'Fiiri $1?',
 'restorelink' => '{{PLURAL:$1|halxabo oo bedelkii la tirtiray|$1 bedelyadii la tirtiray}}',
 'feedlinks' => 'Quudinta wararka:',
+'feed-invalid' => 'Habka aad uga soo qayb gashay masaxna.',
+'feed-unavailable' => 'Faallo diyaar maaha.',
 'site-rss-feed' => '$1 RSS quudiye',
 'site-atom-feed' => '$1 Atom quudiye',
 'page-rss-feed' => '"$1" RSS quudiye',
 'page-atom-feed' => '"$1" Atom quudiye',
 'red-link-title' => '$1 (Bogga ma jiro)',
+'sort-descending' => 'Habka hoos udhaca.',
+'sort-ascending' => 'Habka kor u kaca.',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Bog',
@@ -301,7 +311,7 @@ fiiri [[Special:Version|nooca bogga]].',
 'nstab-media' => 'Bogga wararka',
 'nstab-special' => 'Bogga khaaska ah',
 'nstab-project' => 'Bogga mashruuca',
-'nstab-image' => 'Fayl',
+'nstab-image' => 'Gal',
 'nstab-mediawiki' => 'Fariin',
 'nstab-template' => 'Tusmo',
 'nstab-help' => 'Bogga caawinaada',
@@ -309,6 +319,9 @@ fiiri [[Special:Version|nooca bogga]].',
 
 # Main script and global functions
 'nosuchaction' => 'Wax shaqo oo saas ah kama jiro',
+'nosuchactiontext' => 'Waxaad soo raacday URL aan sax ahayn.
+waxaa laga yaabaa URL inaad u qortay hab aan sax ahayn, ama aad soo raacday mid aan jirin.
+waxaa laga yaabaa inuu kani tilmaamayo cilad jirta  {{SITENAME}}.',
 'nosuchspecialpage' => 'Wax bog oo sidaas khaas u ah ma jirto.',
 'nospecialpagetext' => '<strong>Waxaana weydiisay bog khaas ah oosan jirin.</strong>
 
@@ -374,6 +387,7 @@ Waad sii isticmaali kartaa {{SITENAME}} adoona lagu aqoon, ama <span class='plai
 'yourpasswordagain' => 'Markale qor ereysirka:',
 'remembermypassword' => 'Kumbuyuutarkaan ku xasuusnaaw magaceyga gudagalka (ilaa  $1 {{PLURAL:$1|maalin|maalmood}})',
 'yourdomainname' => 'Magacaga shabakada',
+'password-change-forbidden' => 'Ma badali kartid Eraysir ee wiki.',
 'login' => 'Gudaha gal',
 'nav-login-createaccount' => 'Gudaha gal / sameyso akoon',
 'loginprompt' => "Waa in aad shidaa cookies'ka hadii aad rabto in aad soo gasho {{SITENAME}}.",
index fbb6c94..65fbe47 100644 (file)
@@ -544,6 +544,13 @@ $2',
 
 మీరు {{SITENAME}}ని అజ్ఞాతంగా వాడుతూండొచ్చు, లేదా ఇదే వాడుకరిగా కానీ లేదా వేరే వాడుకరిగా కానీ <span class='plainlinks'>[$1 మళ్ళీ ప్రవేశించవచ్చు]</span>.
 అయితే, మీ విహారిణిలోని కోశాన్ని శుభ్రపరిచే వరకు కొన్ని పేజీలు మీరింకా ప్రవేశించి ఉన్నట్లుగానే చూపించవచ్చని గమనించండి.",
+'welcomeuser' => 'స్వాగతం, $1!',
+'welcomecreation-msg' => 'మీ ఖాతాని సృష్టించాం.
+మీ [[Special:Preferences|{{SITENAME}} అభిరుచులను]] మార్చుకోవడం మరువకండి.
+తెలుగు వికీపీడియాలో తెలుగులోనే రాయాలి. వికీలో రచనలు చేసే ముందు, కింది సూచనలను గమనించండి.
+తెలుగు {{SITENAME}}లో తెలుగులోనే రాయాలి. వికీలో రచనలు చేసే ముందు, కింది సూచనలను గమనించండి.
+*వికీని త్వరగా అర్థం చేసుకునేందుకు [[వికీపీడియా:5 నిమిషాల్లో వికీ|5 నిమిషాల్లో వికీ]] పేజీని చూడండి.
+*తెలుగులో రాసేందుకు ఇంగ్లీషు అక్షరాల ఉచ్ఛారణతో తెలుగు టైపు చేసే [[వికీపీడియా:టైపింగు సహాయం| టైపింగ్  సహాయం]] వాడవచ్చు. మరిన్ని ఉపకరణాల కొరకు [[కీ బోర్డు]] మరియు   తెరపై తెలుగు సరిగా లేకపోతే[[వికీపీడియా:Setting up your browser for Indic scripts|ఈ పేజీ]]  చూడండి.',
 'yourname' => 'వాడుకరి పేరు:',
 'yourpassword' => 'సంకేతపదం:',
 'yourpasswordagain' => 'సంకేతపదాన్ని మళ్ళీ ఇవ్వండి:',
index 18801e4..69405ee 100644 (file)
@@ -723,7 +723,7 @@ Sorgu: $2',
 'actionthrottled' => 'Eylem kısılmışdır',
 'actionthrottledtext' => 'Anti-spam önlemleri nedeniyle, bir eylemi kısa bir zaman aralığında çok defa yapmanız kısıtlandı, ve siz sınırı aşmış bulunmaktasınız.
 Lütfen birkaç dakika sonra yeniden deneyin.',
-'protectedpagetext' => 'Bu sayfa değişiklik yapılmaması için koruma altına alınmıştır.',
+'protectedpagetext' => 'Bu sayfa değişiklik ya da diğer eylemlerin yapılmasını engellemek için koruma altına alınmıştır.',
 'viewsourcetext' => 'Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz:',
 'viewyourtext' => "Bu sayfaya '''yaptığınız değişikliklerin''' kaynağını görünteleyip kopyalayabilirsiniz:",
 'protectedinterface' => "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır. Eklemek ya da bütün vikilerdeki çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesi [//translatewiki.net/ translatewiki.net]'i kullanın.",
@@ -1272,7 +1272,7 @@ Lütfen günlükleri kontrol edin.',
 # Suppression log
 'suppressionlog' => 'Gizleme kayıtları',
 'suppressionlogtext' => 'Aşağıdaki, hizmetlilerden gizlenen içerik içeren silinmelerin ve engellemelerin listesidir.
-Şu anda işlevsel olan yasak ve engellemelerin listesi için [[Special:BlockList|IP engelleme listesine]] bakın.',
+Şu anda işlevsel olan yasak ve engellemelerin listesi için [[Special:BlockList|engelleme listesine]] bakın.',
 
 # History merging
 'mergehistory' => 'Sayfa geçmişlerini takas et.',
@@ -1888,7 +1888,7 @@ Güvenlik denetimi uygun bir şekilde gerçekleştirilemiyor.',
 'img-auth-accessdenied' => 'Erişim engellendi',
 'img-auth-nopathinfo' => 'Eksik PATH_INFO.
 Sunucunuz bu bilgiyi geçirmek için ayarlanmamış.
-CGI-tabanlı olabilir ve img_auth desteklenmiyor olabilir.
+CGI-tabanlı ve img_auth desteklenmiyor olabilir.
 https://www.mediawiki.org/wiki/Manual:Image_Authorization sayfasına bakın.',
 'img-auth-notindir' => 'İstenen yol yapılandırılmış yükleme dizininde değil.',
 'img-auth-badtitle' => '"$1" ile geçerli bir başlık yapılamıyor.',
@@ -2082,6 +2082,7 @@ Her satırın içerdiği bağlantılar; birinci ve ikinci yönlendirme, ayrıca
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bayt|bayt}}',
 'ncategories' => '{{PLURAL:$1|kategori|kategoriler}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interviki|interviki}}',
 'nlinks' => '$1 {{PLURAL:$1|bağlantı|bağlantılar}}',
 'nmembers' => '{{PLURAL:$1|üye|üye}}',
 'nrevisions' => '{{PLURAL:$1|değişiklik|değişiklikler}}',
@@ -3029,6 +3030,7 @@ Geçici dosya kayıp.',
 'pageinfo-default-sort' => 'Varsayılan sıralama anahtarı',
 'pageinfo-length' => 'Sayfa uzunluğu (bayt cinsinden)',
 'pageinfo-article-id' => 'Sayfa ID',
+'pageinfo-language' => 'Sayfa içeriğinin dili',
 'pageinfo-robot-policy' => 'Arama motoru durumu',
 'pageinfo-robot-index' => 'İndekslenebilir',
 'pageinfo-robot-noindex' => 'İndekslenemez',
index 0bccb10..25bdf15 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author A1
  * @author AS
+ * @author Aced
  * @author Ahonc
  * @author Aleksandrit
  * @author Alex Khimich
@@ -2870,12 +2871,12 @@ $1',
 Ви відповідаєте за те, щоб посилання і далі вказували туди, куди треба.
 
 Зверніть увагу, що сторінка '''не буде''' перейменована, якщо сторінка з новою назвою вже існує, крім випадків, коли вона є перенаправленням або порожня та не має історії редагувань.
-Це означає, що Ви можете перейменувати сторінку назад, якщо Ви допустилися помилки, і при цьому не зможете випадково перезаписати існуючу сторінку.
+Це означає, що Ви можете перейменувати сторінку назад, якщо Ви допустилися помилки, і при цьому не зможете випадково перезаписати наявну сторінку.
 
 '''Попередження!'''
 Перейменування може призвести до масштабних і несподіваних змін для ''популярних'' сторінок.
-Тому перед перейменуванням упевніться, що Ви розумієте оцінили можливі наслідки.",
-'movepagetalktext' => "Приєднана сторінка обговорення також буде автоматично перейменована, '''окрім наступних випадків:'''
+Тому перед перейменуванням упевніться, що Виоцінили можливі наслідки.",
+'movepagetalktext' => "Приєднана сторінка обговорення також буде автоматично перейменована, '''окрім таких випадків:'''
 * Непорожня сторінка обговорення з такою назвою вже існує або
 * Ви не поставили галочку в полі нижче.
 
index adfd565..b3fee05 100644 (file)
@@ -487,7 +487,7 @@ $messages = array(
 'qbbrowse' => '浏览',
 'qbedit' => '编辑',
 'qbpageoptions' => '页面选项',
-'qbmyoptions' => 'æ\88\91ç\9a\84é\80\89项',
+'qbmyoptions' => 'æ\88\91ç\9a\84页é\9d¢',
 'qbspecialpages' => '特殊页面',
 'faq' => '常见问题',
 'faqpage' => 'Project:常见问题',
@@ -562,7 +562,7 @@ $messages = array(
 'lastmodifiedat' => '本页面最后修改于$1 $2。',
 'viewcount' => '此页面已被浏览过$1次。',
 'protectedpage' => '受保护页面',
-'jumpto' => '跳转:',
+'jumpto' => '跳转:',
 'jumptonavigation' => '导航',
 'jumptosearch' => '搜索',
 'view-pool-error' => '抱歉,服务器超负荷运转。
@@ -1795,6 +1795,7 @@ $1',
 'backend-fail-notsame' => '$1已存在不同的文件。',
 'backend-fail-invalidpath' => '$1不是有效的存储路径。',
 'backend-fail-delete' => '无法删除文件“$1”。',
+'backend-fail-describe' => '无法修改文件“$1”的元数据。',
 'backend-fail-alreadyexists' => '“$1”页面已存在',
 'backend-fail-store' => '无法在$2存储文件$1。',
 'backend-fail-copy' => '无法复制文件$1到$2。',
@@ -2288,6 +2289,11 @@ $1',
 'enotif_mailer' => '{{SITENAME}}通知发送器',
 'enotif_reset' => '标记所有页面为已访问',
 'enotif_impersonal_salutation' => '{{SITENAME}}用户',
+'enotif_subject_deleted' => '{{SITENAME}}的$1页面被$2删除',
+'enotif_subject_created' => '{{SITENAME}}的$1页面被$2创建',
+'enotif_subject_moved' => '{{SITENAME}}的$1页面被$2移动',
+'enotif_subject_restored' => '{{SITENAME}}的$1页面被$2恢复',
+'enotif_subject_changed' => '{{SITENAME}}的$1页面被$2修改',
 'enotif_lastvisited' => '请浏览 $1 查看你上次访问后的所有更改。',
 'enotif_lastdiff' => '请浏览 $1 查看该更改。',
 'enotif_anon_editor' => '匿名用户$1',
@@ -3134,6 +3140,7 @@ $1',
 'hours' => '$1小时',
 'days' => '$1天',
 'ago' => '$1前',
+'just-now' => '刚刚',
 
 # Bad image list
 'bad_image_list' => '请按照下列格式编写:
@@ -3905,9 +3912,9 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'logentry-move-move_redir-noredirect' => '$1通过重定向移动$3页面至$4,不留重定向',
 'logentry-patrol-patrol' => '$1标记页面$3的版本$4为已巡查',
 'logentry-patrol-patrol-auto' => '$1自动标记页面$3的版本$4为已巡查',
-'logentry-newusers-newusers' => '$1创建用户账户',
-'logentry-newusers-create' => '$1创建用户账户',
-'logentry-newusers-create2' => '$1创建用户账户$3',
+'logentry-newusers-newusers' => '已创建用户帐户 $1',
+'logentry-newusers-create' => '创建用户帐户$1',
+'logentry-newusers-create2' => '创建用户帐户 $3 由 $1',
 'logentry-newusers-autocreate' => '账户$1被自动创建',
 'newuserlog-byemail' => '密码已用电子邮件发送',
 
index d808500..19b9777 100644 (file)
@@ -129,7 +129,7 @@ class FixDoubleRedirects extends Maintenance {
 
        protected function queueJobs( $jobs, $dryrun = false ) {
                $this->output( "Queuing batch of " . count( $jobs ) . " double redirects.\n" );
-               Job::batchInsert( $dryrun ? array() : $jobs );
+               JobQueueGroup::singleton()->push( $dryrun ? array() : $jobs );
        }
 }
 
index e36674e..6e01291 100644 (file)
@@ -114,8 +114,7 @@ function readaline( $prompt = '' ) {
  * @param $doxyGenerateMan Boolean
  * @return string
  */
-function generateConfigFile( $doxygenTemplate, $outputDirectory, $stripFromPath, $currentVersion, $input, $exclude, $excludePatterns, $doxyGenerateMan ) {
-       global $doxygenInputFilter;
+function generateConfigFile( $doxygenTemplate, $outputDirectory, $stripFromPath, $currentVersion, $input, $exclude, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter ) {
 
        $template = file_get_contents( $doxygenTemplate );
        // Replace template placeholders by correct values.
@@ -242,7 +241,7 @@ $version = 'master';
 $excludedPaths = $mwPath . join( " $mwPath", $mwExcludePaths );
 print "EXCLUDE: $excludedPaths\n\n";
 
-$generatedConf = generateConfigFile( $doxygenTemplate, $doxyOutput, $mwPath, $version, $input, $excludedPaths, $excludePatterns, $doxyGenerateMan );
+$generatedConf = generateConfigFile( $doxygenTemplate, $doxyOutput, $mwPath, $version, $input, $excludedPaths, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter );
 $command = $doxygenBin . ' ' . $generatedConf;
 
 echo <<<TEXT
index 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 20952b1..82b947b 100644 (file)
@@ -62,6 +62,7 @@ class ArticleTest extends MediaWikiTestCase {
        function testStaticFunctions() {
                $this->hideDeprecated( 'Article::getAutosummary' );
                $this->hideDeprecated( 'WikiPage::getAutosummary' );
+               $this->hideDeprecated( 'CategoryPage::getAutosummary' ); // Inherited from Article
 
                $this->assertEquals( WikiPage::selectFields(), Article::selectFields(),
                        "Article static functions" );
index d46e683..361b412 100644 (file)
@@ -14,6 +14,7 @@ class DiffHistoryBlobTest extends MediaWikiTestCase {
                        $this->markTestSkipped( 'Neither the hash nor mhash extension is available' );
                        return;
                }
+               parent::setUp();
        }
 
        /**
index 65dd924..47fa5f4 100644 (file)
@@ -605,4 +605,16 @@ class HtmlTest extends MediaWikiTestCase {
                return $ret;
        }
 
+       public function testFormValidationBlacklist() {
+               $this->assertEmpty(
+                       Html::expandAttributes( array( 'min' => 1, 'max' => 100, 'pattern' => 'abc', 'required' => true, 'step' => 2 ) ),
+                       'Blacklist form validation attributes.'
+               );
+               $this->assertEquals(
+                       ' step=any',
+                       Html::expandAttributes( array( 'min' => 1, 'max' => 100, 'pattern' => 'abc', 'required' => true, 'step' => 'any' ) ),
+                       'Allow special case "step=any".'
+               );
+       }
+
 }
index 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 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 398ad2d..7be4043 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 );
        }
 
        /**
index 6a6fded..b15365c 100644 (file)
@@ -22,15 +22,13 @@ class MediaWikiParserTest {
                         * and then was ucfirst( basename( $filename, '.txt' )
                         * but that didn't work with names like foo.tests.txt
                         */
-                       $className = str_replace( '.', '_',  ucfirst( basename( $filename, '.txt' ) ) );
-                       
+                       $className = str_replace( '.', '_',  ucfirst( $testsName ) );
+
                        eval( "/** @group Database\n@group Parser\n*/ class $className extends NewParserTest { protected \$file = '" . strtr( $filename, array( "'" => "\\'", '\\' => '\\\\' ) ) . "'; } " );
 
                        $parserTester = new $className( $testsName );
                        $suite->addTestSuite( new ReflectionClass ( $parserTester ) );
                }
-               
-
                return $suite;
        }
 }
index 362d9f7..8b83b67 100644 (file)
@@ -119,7 +119,7 @@ class PreprocessorTest extends MediaWikiTestCase {
                if ( method_exists( $this->mPreprocessor, 'preprocessToXml' ) ) {
                        return $this->normalizeXml( $this->mPreprocessor->preprocessToXml( $wikiText ) );
                }
-               
+
                $dom = $this->mPreprocessor->preprocessToObj( $wikiText );
                if ( is_callable( array( $dom, 'saveXML' ) ) ) {
                        return $dom->saveXML();
@@ -136,11 +136,6 @@ class PreprocessorTest extends MediaWikiTestCase {
         */
        function normalizeXml( $xml ) {
                return preg_replace( '!<([a-z]+)/>!', '<$1></$1>', str_replace( ' />', '/>', $xml ) );
-               
-               $dom = new DOMDocument();
-               // 1 << 19 == XML_PARSE_HUGE, needed so newer versions of libxml2 don't barf when the XML is >256 levels deep
-               $dom->loadXML( $xml, 1 << 19 );
-               return $dom->saveXML();
        }
 
        /**
index 59663ba..a693cdb 100644 (file)
@@ -3,6 +3,7 @@
 /**
  * @group Broken
  * @group Upload
+ * @group Database
  */
 class UploadFromUrlTest extends ApiTestCase {
 
@@ -36,9 +37,9 @@ class UploadFromUrlTest extends ApiTestCase {
         * Ensure that the job queue is empty before continuing
         */
        public function testClearQueue() {
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                while ( $job ) {
-                       $job = Job::pop();
+                       $job = JobQueueGroup::singleton()->pop();
                }
                $this->assertFalse( $job );
        }
@@ -141,7 +142,7 @@ class UploadFromUrlTest extends ApiTestCase {
 
                $this->assertEquals( $data[0]['upload']['result'], 'Queued', 'Queued upload' );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertThat( $job, $this->isInstanceOf( 'UploadFromUrlJob' ), 'Queued upload inserted' );
        }
 
@@ -202,7 +203,7 @@ class UploadFromUrlTest extends ApiTestCase {
        public function testSyncDownload( $data ) {
                $token = $this->user->getEditToken();
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertFalse( $job, 'Starting with an empty jobqueue' );
 
                $this->user->addGroup( 'users' );
@@ -214,7 +215,7 @@ class UploadFromUrlTest extends ApiTestCase {
                        'token' => $token,
                ), $data );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertFalse( $job );
 
                $this->assertEquals( 'Success', $data[0]['upload']['result'] );
@@ -244,7 +245,7 @@ class UploadFromUrlTest extends ApiTestCase {
                        'ignorewarnings' => 1,
                ) );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertEquals( 'UploadFromUrlJob', get_class( $job ) );
                $job->run();
 
@@ -272,7 +273,7 @@ class UploadFromUrlTest extends ApiTestCase {
                }
                $this->assertTrue( $exception );
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertFalse( $job );
 
                return;
@@ -314,7 +315,7 @@ class UploadFromUrlTest extends ApiTestCase {
                $this->assertTrue( isset( $data[0]['upload']['statuskey'] ) );
                $statusKey = $data[0]['upload']['statuskey'];
 
-               $job = Job::pop();
+               $job = JobQueueGroup::singleton()->pop();
                $this->assertEquals( 'UploadFromUrlJob', get_class( $job ) );
 
                $status = $job->run();
index 4a6f08f..a0ed745 100644 (file)
@@ -88,15 +88,16 @@ class MaintenanceFixup extends Maintenance {
         * Safety net around register_shutdown_function of Maintenance.php
         */
        public function __destruct() {
-               if ( ( ! $this->shutdownSimulated ) && ( ! $this->testCase->hasFailed() ) ) {
+               if ( ! $this->shutdownSimulated ) {
                        // Someone generated a MaintenanceFixup instance without calling
                        // simulateShutdown. We'd have to raise a PHPUnit exception to correctly
                        // flag this illegal usage. However, we are already in a destruktor, which
                        // would trigger undefined behaviour. Hence, we can only report to the
                        // error output :( Hopefully people read the PHPUnit output.
-                       fwrite( STDERR, "ERROR! Instance of " . __CLASS__ . " destructed without "
-                               . "calling simulateShutdown method. Call simulateShutdown on the "
-                               . "instance before it gets destructed." );
+                       $name = $this->testCase->getName();
+                       fwrite( STDERR, "ERROR! Instance of " . __CLASS__ . " for test $name "
+                               . "destructed without calling simulateShutdown method. Call "
+                               . "simulateShutdown on the instance before it gets destructed." );
                }
 
                // The following guard is required, as PHP does not offer default destructors :(
@@ -148,6 +149,14 @@ class MaintenanceTest extends MediaWikiTestCase {
                $this->m = new MaintenanceFixup( $this );
        }
 
+       protected function tearDown() {
+               if ( $this->m ) {
+                       $this->m->simulateShutdown();
+                       $this->m = null;
+               }
+               parent::tearDown();
+       }
+
 
        /**
         * asserts the output before and after simulating shutdown
@@ -167,6 +176,7 @@ class MaintenanceTest extends MediaWikiTestCase {
                                "Output before shutdown simulation" );
 
                $this->m->simulateShutdown();
+               $this->m = null;
 
                $postShutdownOutput = $preShutdownOutput . ( $expectNLAppending ? "\n" : "" );
                $this->expectOutputString( $postShutdownOutput );
@@ -809,4 +819,4 @@ class MaintenanceTest extends MediaWikiTestCase {
        }
 
 
-}
\ No newline at end of file
+}
index 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 ) );