Merge "Add a Uri class."
authorAaron Schulz <aschulz@wikimedia.org>
Tue, 7 Aug 2012 03:37:30 +0000 (03:37 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 7 Aug 2012 03:37:30 +0000 (03:37 +0000)
142 files changed:
RELEASE-NOTES-1.20
docs/hooks.txt
includes/Article.php
includes/AutoLoader.php
includes/ChangesList.php
includes/DefaultSettings.php
includes/EditPage.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/Linker.php
includes/Message.php
includes/RecentChange.php
includes/WebRequest.php
includes/api/ApiBase.php
includes/api/ApiFileRevert.php
includes/api/ApiMain.php
includes/api/ApiOptions.php
includes/api/ApiParse.php
includes/api/ApiPurge.php
includes/api/ApiQuery.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiSetNotificationTimestamp.php [new file with mode: 0644]
includes/diff/DifferenceEngine.php
includes/filerepo/backend/FileBackendMultiWrite.php
includes/filerepo/backend/SwiftFileBackend.php
includes/job/Job.php
includes/job/RefreshLinksJob.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/MemcachedClient.php
includes/parser/CacheTime.php [new file with mode: 0644]
includes/parser/Parser.php
includes/parser/ParserOutput.php
includes/parser/Preprocessor_Hash.php
includes/parser/Preprocessor_HipHop.hphp
includes/specials/SpecialBlock.php
includes/specials/SpecialCachedPage.php
includes/specials/SpecialImport.php
includes/specials/SpecialMostlinkedcategories.php
includes/specials/SpecialMostlinkedtemplates.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialWithoutinterwiki.php
languages/LanguageConverter.php
languages/messages/MessagesAr.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAz.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesCa.php
languages/messages/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEn.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesGl.php
languages/messages/MessagesHe.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHil.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesIa.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKa.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKm.php
languages/messages/MessagesKo.php
languages/messages/MessagesLa.php
languages/messages/MessagesLad.php
languages/messages/MessagesLb.php
languages/messages/MessagesLi.php
languages/messages/MessagesMhr.php
languages/messages/MessagesMk.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesNb.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOr.php
languages/messages/MessagesPa.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRo.php
languages/messages/MessagesRu.php
languages/messages/MessagesSa.php
languages/messages/MessagesSah.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSv.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTk.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesTr.php
languages/messages/MessagesUk.php
languages/messages/MessagesVi.php
languages/messages/MessagesYi.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
languages/messages/MessagesZh_tw.php
maintenance/deleteArchivedFiles.inc
maintenance/dev/includes/php.sh
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/mwdoc-filter.php
maintenance/parse.php
maintenance/patchSql.php
maintenance/populateCategory.php
maintenance/populateImageSha1.php
maintenance/populateLogSearch.php
maintenance/populateLogUsertext.php
maintenance/populateParentId.php
maintenance/populateRevisionLength.php
maintenance/populateRevisionSha1.php
maintenance/preprocessDump.php
maintenance/protect.php
maintenance/pruneFileCache.php
maintenance/purgeDeletedFiles.php
maintenance/purgeList.php
maintenance/purgeOldText.php
maintenance/purgeParserCache.php
maintenance/rebuildLocalisationCache.php
maintenance/runJobs.php
resources/jquery/jquery.tablesorter.js
tests/parser/parserTests.txt
tests/qunit/suites/resources/jquery/jquery.localize.test.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js

index 1b1cd97..5a76c84 100644 (file)
@@ -34,6 +34,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * Added SpecialPageAfterExecute hook which gets called after SpecialPage::execute.
 * Added ORMTable, ORMRow and ORMResult classes for additional abstraction of
   database interaction.
+* Added CacheHelper and associated SpecialCachedPage and CachedAction helper classes.
 * (bug 32341) Add upload by URL domain limitation.
 * &useskin=default will now always display the default skin. Useful for users with a
   preference for the non-default skin to look at something using the default skin.
@@ -110,6 +111,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * Implemented mw.user.getGroups for getting and caching user groups.
 * (bug 37830) Added $wgRequirePasswordforEmailChange to control whether password
   confirmation is required for changing an email address or not.
+* HTMLForm mutators can now be chained (they return $this)
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -186,6 +188,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 36073) Avoid duplicate element IDs on File pages
 * (bug 25095) Special:Categories should also include the first relevant item
   when "from" is filled.
+* (bug 35526) jquery.tablesorter now uses a stable sort.
+* (bug 38953) --memory-limit switch not working for runJobs.php.
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
@@ -217,6 +221,10 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 38190) Add "required" flag to some token params for hint in api docs.
 * (bug 27567) Add file repo support to prop=duplicatefiles.
 * (bug 27610) Add archivename for non-latest image version to list=filearchive
+* (bug 38231) Add xml parse tree to action=parse.
+* Watchlist notification timestamp may be queried by page and may be updated via the API.
+* (bug 38904) prop=revisions&rvstart=... no longer blows up when continuing.
+* (bug 39032) ApiQuery generates help in constructor.
 
 === Languages updated in 1.20 ===
 
index e844e89..eefb46c 100644 (file)
@@ -1051,9 +1051,9 @@ $result: User permissions error to add. If none, return true.
 &$title: Title object of the image
 &$file: File object, or false if it doesn't exist
 &$frameParams: Various parameters with special meanings; see documentation in
-       includes/Linker.php for Linker::makeImageLink2
+       includes/Linker.php for Linker::makeImageLink
 &$handlerParams: Various parameters with special meanings; see documentation in
-       includes/Linker.php for Linker::makeImageLink2
+       includes/Linker.php for Linker::makeImageLink
 &$time: Timestamp of file in 'YYYYMMDDHHIISS' string form, or false for current
 &$res: Final HTML output, used if you return false
 
index 6fc0acd..0e6a5cf 100644 (file)
@@ -350,9 +350,7 @@ class Article extends Page {
 
                # Pre-fill content with error message so that if something
                # fails we'll have something telling us what we intended.
-               $t = $this->getTitle()->getPrefixedText();
-               $d = $oldid ? wfMsgExt( 'missingarticle-rev', array( 'escape' ), $oldid ) : '';
-               $this->mContent = wfMsgNoTrans( 'missing-article', $t, $d ) ;
+               $this->mContent = wfMsgNoTrans( 'missing-revision', $oldid );
 
                if ( $oldid ) {
                        # $this->mRevision might already be fetched by getOldIDFromRequest()
@@ -1043,9 +1041,7 @@ class Article extends Page {
                # Show error message
                $oldid = $this->getOldID();
                if ( $oldid ) {
-                       $text = wfMsgNoTrans( 'missing-article',
-                               $this->getTitle()->getPrefixedText(),
-                               wfMsgNoTrans( 'missingarticle-rev', $oldid ) );
+                       $text = wfMsgNoTrans( 'missing-revision', $oldid );
                } elseif ( $this->getTitle()->getNamespace() === NS_MEDIAWIKI ) {
                        // Use the default message text
                        $text = $this->getTitle()->getDefaultMessageText();
index a59b9d1..e9e0440 100644 (file)
@@ -398,6 +398,7 @@ $wgAutoloadLocalClasses = array(
        'ApiResult' => 'includes/api/ApiResult.php',
        'ApiRollback' => 'includes/api/ApiRollback.php',
        'ApiRsd' => 'includes/api/ApiRsd.php',
+       'ApiSetNotificationTimestamp' => 'includes/api/ApiSetNotificationTimestamp.php',
        'ApiTokens' => 'includes/api/ApiTokens.php',
        'ApiUnblock' => 'includes/api/ApiUnblock.php',
        'ApiUndelete' => 'includes/api/ApiUndelete.php',
@@ -735,7 +736,7 @@ $wgAutoloadLocalClasses = array(
        'XCacheBagOStuff' => 'includes/objectcache/XCacheBagOStuff.php',
 
        # includes/parser
-       'CacheTime' => 'includes/parser/ParserOutput.php',
+       'CacheTime' => 'includes/parser/CacheTime.php',
        'CoreLinkFunctions' => 'includes/parser/CoreLinkFunctions.php',
        'CoreParserFunctions' => 'includes/parser/CoreParserFunctions.php',
        'CoreTagHooks' => 'includes/parser/CoreTagHooks.php',
index 96a11e1..9daf3a9 100644 (file)
@@ -507,7 +507,7 @@ class ChangesList extends ContextSource {
         * @param $rc RecentChange
         */
        public function insertRollback( &$s, &$rc ) {
-               if( !$rc->mAttribs['rc_new'] && $rc->mAttribs['rc_this_oldid'] && $rc->mAttribs['rc_cur_id'] ) {
+               if( $rc->mAttribs['rc_type'] != RC_NEW && $rc->mAttribs['rc_this_oldid'] && $rc->mAttribs['rc_cur_id'] ) {
                        $page = $rc->getTitle();
                        /** Check for rollback and edit permissions, disallow special pages, and only
                          * show a link on the top-most revision */
@@ -548,7 +548,7 @@ class ChangesList extends ContextSource {
                if ( !$rc->mAttribs['rc_patrolled'] ) {
                        if ( $this->getUser()->useRCPatrol() ) {
                                $unpatrolled = true;
-                       } elseif ( $this->getUser()->useNPPatrol() && $rc->mAttribs['rc_new'] ) {
+                       } elseif ( $this->getUser()->useNPPatrol() && $rc->mAttribs['rc_type'] == RC_NEW ) {
                                $unpatrolled = true;
                        }
                }
@@ -613,7 +613,7 @@ class OldChangesList extends ChangesList {
                        # M, N, b and ! (minor, new, bot and unpatrolled)
                        $s .= $this->recentChangesFlags(
                                array(
-                                       'newpage' => $rc->mAttribs['rc_new'],
+                                       'newpage' => $rc->mAttribs['rc_type'] == RC_NEW,
                                        'minor' => $rc->mAttribs['rc_minor'],
                                        'unpatrolled' => $unpatrolled,
                                        'bot' => $rc->mAttribs['rc_bot']
@@ -868,7 +868,7 @@ class EnhancedChangesList extends ChangesList {
                $allLogs = true;
                foreach( $block as $rcObj ) {
                        $oldid = $rcObj->mAttribs['rc_last_oldid'];
-                       if( $rcObj->mAttribs['rc_new'] ) {
+                       if( $rcObj->mAttribs['rc_type'] == RC_NEW ) {
                                $isnew = true;
                        }
                        // If all log actions to this page were hidden, then don't
@@ -1028,7 +1028,7 @@ class EnhancedChangesList extends ChangesList {
 
                        $r .= '<tr><td></td><td class="mw-enhanced-rc">';
                        $r .= $this->recentChangesFlags( array(
-                               'newpage' => $rcObj->mAttribs['rc_new'],
+                               'newpage' => $type == RC_NEW,
                                'minor' => $rcObj->mAttribs['rc_minor'],
                                'unpatrolled' => $rcObj->unpatrolled,
                                'bot' => $rcObj->mAttribs['rc_bot'],
index 69b632c..ffe22ca 100644 (file)
@@ -1743,7 +1743,7 @@ $wgMemCachedPersistent = false;
 /**
  * Read/write timeout for MemCached server communication, in microseconds.
  */
-$wgMemCachedTimeout = 100000;
+$wgMemCachedTimeout = 500000;
 
 /**
  * Set this to true to make a local copy of the message cache, for use in
index f8be535..90135df 100644 (file)
@@ -877,7 +877,7 @@ class EditPage {
         *
         * This difers from Article::getContent() that when a missing revision is
         * encountered the result will be an empty string and not the
-        * 'missing-article' message.
+        * 'missing-revision' message.
         *
         * @since 1.19
         * @return string
@@ -2020,8 +2020,7 @@ class EditPage {
                                        // Something went wrong
 
                                        $wgOut->wrapWikiMsg( "<div class='errorbox'>\n$1\n</div>\n",
-                                               array( 'missing-article', $this->mTitle->getPrefixedText(),
-                                               wfMsgNoTrans( 'missingarticle-rev', $this->oldid ) ) );
+                                               array( 'missing-revision', $this->oldid ) );
                                }
                        }
                }
index 983bb72..e25ce26 100644 (file)
@@ -1373,6 +1373,8 @@ function wfMessageFallback( /*...*/ ) {
  * Use wfMsgForContent() instead if the message should NOT
  * change depending on the user preferences.
  *
+ * @deprecated since 1.18
+ *
  * @param $key String: lookup key for the message, usually
  *    defined in languages/Language.php
  *
@@ -1393,6 +1395,8 @@ function wfMsg( $key ) {
 /**
  * Same as above except doesn't transform the message
  *
+ * @deprecated since 1.18
+ *
  * @param $key String
  * @return String
  */
@@ -1421,6 +1425,8 @@ function wfMsgNoTrans( $key ) {
  * customize potentially hundreds of messages in
  * order to, e.g., fix a link in every possible language.
  *
+ * @deprecated since 1.18
+ *
  * @param $key String: lookup key for the message, usually
  *     defined in languages/Language.php
  * @return String
@@ -1441,6 +1447,8 @@ function wfMsgForContent( $key ) {
 /**
  * Same as above except doesn't transform the message
  *
+ * @deprecated since 1.18
+ *
  * @param $key String
  * @return String
  */
@@ -1460,6 +1468,8 @@ function wfMsgForContentNoTrans( $key ) {
 /**
  * Really get a message
  *
+ * @deprecated since 1.18
+ *
  * @param $key String: key to get.
  * @param $args
  * @param $useDB Boolean
@@ -1478,6 +1488,8 @@ function wfMsgReal( $key, $args, $useDB = true, $forContent = false, $transform
 /**
  * Fetch a message string value, but don't replace any keys yet.
  *
+ * @deprecated since 1.18
+ *
  * @param $key String
  * @param $useDB Bool
  * @param $langCode String: Code of the language to get the message for, or
@@ -1501,6 +1513,8 @@ function wfMsgGetKey( $key, $useDB = true, $langCode = false, $transform = true
 /**
  * Replace message parameter keys on the given formatted output.
  *
+ * @deprecated since 1.18
+ *
  * @param $message String
  * @param $args Array
  * @return string
@@ -1533,6 +1547,8 @@ function wfMsgReplaceArgs( $message, $args ) {
  * to pre-escape them if you really do want plaintext, or just wrap
  * the whole thing in htmlspecialchars().
  *
+ * @deprecated since 1.18
+ *
  * @param $key String
  * @param string ... parameters
  * @return string
@@ -1550,6 +1566,8 @@ function wfMsgHtml( $key ) {
  * to pre-escape them if you really do want plaintext, or just wrap
  * the whole thing in htmlspecialchars().
  *
+ * @deprecated since 1.18
+ *
  * @param $key String
  * @param string ... parameters
  * @return string
@@ -1565,6 +1583,9 @@ function wfMsgWikiHtml( $key ) {
 
 /**
  * Returns message in the requested format
+ *
+ * @deprecated since 1.18
+ *
  * @param $key String: key of the message
  * @param $options Array: processing rules. Can take the following options:
  *   <i>parse</i>: parses wikitext to HTML
@@ -1657,6 +1678,8 @@ function wfMsgExt( $key, $options ) {
  * looked up didn't exist but a XHTML string, this function checks for the
  * nonexistance of messages by checking the MessageCache::get() result directly.
  *
+ * @deprecated since 1.18
+ *
  * @param $key      String: the message key looked up
  * @return Boolean True if the message *doesn't* exist.
  */
index 38b15b9..ce9c377 100644 (file)
  * object, and typically implement at least getInputHTML, which generates
  * the HTML for the input field to be placed in the table.
  *
+ * You can find extensive documentation on the www.mediawiki.org wiki:
+ *  - http://www.mediawiki.org/wiki/HTMLForm
+ *  - http://www.mediawiki.org/wiki/HTMLForm/tutorial
+ *
  * The constructor input is an associative array of $fieldname => $info,
  * where $info is an Associative Array with any of the following:
  *
  *                              (eg one without the "wp" prefix), specify it here and
  *                              it will be used without modification.
  *
+ * Since 1.20, you can chain mutators to ease the form generation:
+ * @par Example:
+ * @code
+ * $form = new HTMLForm( $someFields );
+ * $form->setMethod( 'get' )
+ *      ->setWrapperLegendMsg( 'message-key' )
+ *      ->suppressReset()
+ *      ->prepareForm()
+ *      ->displayForm();
+ * @endcode
+ * Note that you will have prepareForm and displayForm at the end. Other
+ * methods call done after that would simply not be part of the form :(
+ *
  * TODO: Document 'section' / 'subsection' stuff
  */
 class HTMLForm extends ContextSource {
@@ -232,12 +249,14 @@ class HTMLForm extends ContextSource {
         * @param $format String the name of the format to use, must be one of
         *        $this->availableDisplayFormats
         * @since 1.20
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setDisplayFormat( $format ) {
                if ( !in_array( $format, $this->availableDisplayFormats ) ) {
                        throw new MWException ( 'Display format must be one of ' . print_r( $this->availableDisplayFormats, true ) );
                }
                $this->displayFormat = $format;
+               return $this;
        }
 
        /**
@@ -288,7 +307,12 @@ class HTMLForm extends ContextSource {
        }
 
        /**
-        * Prepare form for submission
+        * Prepare form for submission.
+        *
+        * @attention When doing method chaining, that should be the very last
+        * method call before displayForm().
+        *
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function prepareForm() {
                # Check if we have the info we need
@@ -298,6 +322,7 @@ class HTMLForm extends ContextSource {
 
                # Load data from the request.
                $this->loadData();
+               return $this;
        }
 
        /**
@@ -390,45 +415,60 @@ class HTMLForm extends ContextSource {
         *       the output from HTMLForm::filterDataForSubmit, and must
         *       return Bool true on success, Bool false if no submission
         *       was attempted, or String HTML output to display on error.
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setSubmitCallback( $cb ) {
                $this->mSubmitCallback = $cb;
+               return $this;
        }
 
        /**
         * Set a message to display on a validation error.
         * @param $msg Mixed String or Array of valid inputs to wfMsgExt()
         *       (so each entry can be either a String or Array)
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setValidationErrorMessage( $msg ) {
                $this->mValidationErrorMessage = $msg;
+               return $this;
        }
 
        /**
         * Set the introductory message, overwriting any existing message.
         * @param $msg String complete text of message to display
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setIntro( $msg ) {
                $this->setPreText( $msg );
+               return $this;
        }
 
        /**
         * Set the introductory message, overwriting any existing message.
         * @since 1.19
         * @param $msg String complete text of message to display
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
-       function setPreText( $msg ) { $this->mPre = $msg; }
+       function setPreText( $msg ) {
+               $this->mPre = $msg;
+               return $this;
+       }
 
        /**
         * Add introductory text.
         * @param $msg String complete text of message to display
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
-       function addPreText( $msg ) { $this->mPre .= $msg; }
+       function addPreText( $msg ) {
+               $this->mPre .= $msg;
+               return $this;
+       }
 
        /**
         * Add header text, inside the form.
         * @param $msg String complete text of message to display
         * @param $section string The section to add the header to
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function addHeaderText( $msg, $section = null ) {
                if ( is_null( $section ) ) {
@@ -439,6 +479,7 @@ class HTMLForm extends ContextSource {
                        }
                        $this->mSectionHeaders[$section] .= $msg;
                }
+               return $this;
        }
 
        /**
@@ -446,6 +487,7 @@ class HTMLForm extends ContextSource {
         * @since 1.19
         * @param $msg String complete text of message to display
         * @param $section The section to add the header to
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setHeaderText( $msg, $section = null ) {
                if ( is_null( $section ) ) {
@@ -453,12 +495,14 @@ class HTMLForm extends ContextSource {
                } else {
                        $this->mSectionHeaders[$section] = $msg;
                }
+               return $this;
        }
 
        /**
         * Add footer text, inside the form.
         * @param $msg String complete text of message to display
         * @param $section string The section to add the footer text to
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function addFooterText( $msg, $section = null ) {
                if ( is_null( $section ) ) {
@@ -469,6 +513,7 @@ class HTMLForm extends ContextSource {
                        }
                        $this->mSectionFooters[$section] .= $msg;
                }
+               return $this;
        }
 
        /**
@@ -476,6 +521,7 @@ class HTMLForm extends ContextSource {
         * @since 1.19
         * @param $msg String complete text of message to display
         * @param $section string The section to add the footer text to
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setFooterText( $msg, $section = null ) {
                if ( is_null( $section ) ) {
@@ -483,39 +529,65 @@ class HTMLForm extends ContextSource {
                } else {
                        $this->mSectionFooters[$section] = $msg;
                }
+               return $this;
        }
 
        /**
         * Add text to the end of the display.
         * @param $msg String complete text of message to display
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
-       function addPostText( $msg ) { $this->mPost .= $msg; }
+       function addPostText( $msg ) {
+               $this->mPost .= $msg;
+               return $this;
+       }
 
        /**
         * Set text at the end of the display.
         * @param $msg String complete text of message to display
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
-       function setPostText( $msg ) { $this->mPost = $msg; }
+       function setPostText( $msg ) {
+               $this->mPost = $msg;
+               return $this;
+       }
 
        /**
         * Add a hidden field to the output
         * @param $name String field name.  This will be used exactly as entered
         * @param $value String field value
         * @param $attribs Array
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function addHiddenField( $name, $value, $attribs = array() ) {
                $attribs += array( 'name' => $name );
                $this->mHiddenFields[] = array( $value, $attribs );
+               return $this;
        }
 
+       /**
+        * Add a button to the form
+        * @param $name String field name.
+        * @param $value String field value
+        * @param $id String DOM id for the button (default: null)
+        * @param $attribs Array
+        * @return HTMLForm $this for chaining calls (since 1.20)
+        */
        public function addButton( $name, $value, $id = null, $attribs = null ) {
                $this->mButtons[] = compact( 'name', 'value', 'id', 'attribs' );
+               return $this;
        }
 
        /**
         * Display the form (sending to $wgOut), with an appropriate error
         * message or stack of messages, and any validation errors, etc.
+        *
+        * @attention You should call prepareForm() before calling this function.
+        * Moreover, when doing method chaining this should be the very last method
+        * call just after prepareForm().
+        *
         * @param $submitResult Mixed output from HTMLForm::trySubmit()
+        * @return Nothing, should be last call
         */
        function displayForm( $submitResult ) {
                $this->getOutput()->addHTML( $this->getHTML( $submitResult ) );
@@ -716,18 +788,22 @@ class HTMLForm extends ContextSource {
        /**
         * Set the text for the submit button
         * @param $t String plaintext.
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setSubmitText( $t ) {
                $this->mSubmitText = $t;
+               return $this;
        }
 
        /**
         * Set the text for the submit button to a message
         * @since 1.19
         * @param $msg String message key
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setSubmitTextMsg( $msg ) {
                $this->setSubmitText( $this->msg( $msg )->text() );
+               return $this;
        }
 
        /**
@@ -740,42 +816,65 @@ class HTMLForm extends ContextSource {
                        : wfMsg( 'htmlform-submit' );
        }
 
+       /**
+        * @param $name String Submit button name
+        * @return HTMLForm $this for chaining calls (since 1.20)
+        */
        public function setSubmitName( $name ) {
                $this->mSubmitName = $name;
+               return $this;
        }
 
+       /**
+        * @param $name String Tooltip for the submit button
+        * @return HTMLForm $this for chaining calls (since 1.20)
+        */
        public function setSubmitTooltip( $name ) {
                $this->mSubmitTooltip = $name;
+               return $this;
        }
 
        /**
         * Set the id for the submit button.
         * @param $t String.
         * @todo FIXME: Integrity of $t is *not* validated
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setSubmitID( $t ) {
                $this->mSubmitID = $t;
+               return $this;
        }
 
+       /**
+        * @param $id String DOM id for the form
+        * @return HTMLForm $this for chaining calls (since 1.20)
+        */
        public function setId( $id ) {
                $this->mId = $id;
+               return $this;
        }
        /**
         * Prompt the whole form to be wrapped in a "<fieldset>", with
         * this text as its "<legend>" element.
         * @param $legend String HTML to go inside the "<legend>" element.
         *       Will be escaped
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
-       public function setWrapperLegend( $legend ) { $this->mWrapperLegend = $legend; }
+       public function setWrapperLegend( $legend ) {
+               $this->mWrapperLegend = $legend;
+               return $this;
+       }
 
        /**
         * Prompt the whole form to be wrapped in a "<fieldset>", with
         * this message as its "<legend>" element.
         * @since 1.19
         * @param $msg String message key
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setWrapperLegendMsg( $msg ) {
                $this->setWrapperLegend( $this->msg( $msg )->escaped() );
+               return $this;
        }
 
        /**
@@ -783,17 +882,21 @@ class HTMLForm extends ContextSource {
         * @todo currently only used for the "<fieldset>" legend on forms
         * with multiple sections; should be used elsewhre?
         * @param $p String
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setMessagePrefix( $p ) {
                $this->mMessagePrefix = $p;
+               return $this;
        }
 
        /**
         * Set the title for form submission
         * @param $t Title of page the form is on/should be posted to
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function setTitle( $t ) {
                $this->mTitle = $t;
+               return $this;
        }
 
        /**
@@ -809,9 +912,11 @@ class HTMLForm extends ContextSource {
        /**
         * Set the method used to submit the form
         * @param $method String
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setMethod( $method = 'post' ) {
                $this->mMethod = $method;
+               return $this;
        }
 
        public function getMethod() {
@@ -921,9 +1026,11 @@ class HTMLForm extends ContextSource {
         * Stop a reset button being shown for this form
         * @param $suppressReset Bool set to false to re-enable the
         *       button again
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        function suppressReset( $suppressReset = true ) {
                $this->mShowReset = !$suppressReset;
+               return $this;
        }
 
        /**
@@ -954,9 +1061,11 @@ class HTMLForm extends ContextSource {
         * @since 1.19
         *
         * @param string|bool $action
+        * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setAction( $action ) {
                $this->mAction = $action;
+               return $this;
        }
 
 }
index ae334c6..db144f7 100644 (file)
@@ -513,7 +513,8 @@ class Linker {
         * Given parameters derived from [[Image:Foo|options...]], generate the
         * HTML that that syntax inserts in the page.
         *
-        * @param $title Title object
+        * @param $parser Parser object
+        * @param $title Title object of the file (not the currently viewed page)
         * @param $file File object, or false if it doesn't exist
         * @param $frameParams Array: associative array of parameters external to the media handler.
         *     Boolean parameters are indicated by presence or absence, the value is arbitrary and
@@ -540,9 +541,10 @@ class Linker {
         * @param $time String: timestamp of the file, set as false for current
         * @param $query String: query params for desc url
         * @param $widthOption: Used by the parser to remember the user preference thumbnailsize
+        * @since 1.20
         * @return String: HTML for an image, with links, wrappers, etc.
         */
-       public static function makeImageLink2( Title $title, $file, $frameParams = array(),
+       public static function makeImageLink( /*Parser*/ $parser, Title $title, $file, $frameParams = array(),
                $handlerParams = array(), $time = false, $query = "", $widthOption = null )
        {
                $res = null;
@@ -615,16 +617,20 @@ class Linker {
                }
 
                if ( isset( $fp['thumbnail'] ) || isset( $fp['manualthumb'] ) || isset( $fp['framed'] ) ) {
-                       global $wgContLang;
-                       # Create a thumbnail. Alignment depends on language
-                       # writing direction, # right aligned for left-to-right-
-                       # languages ("Western languages"), left-aligned
-                       # for right-to-left-languages ("Semitic languages")
+                       # Create a thumbnail. Alignment depends on the writing direction of
+                       # the page content language (right-aligned for LTR languages,
+                       # left-aligned for RTL languages)
                        #
-                       # If  thumbnail width has not been provided, it is set
+                       # If a thumbnail width has not been provided, it is set
                        # to the default user option as specified in Language*.php
                        if ( $fp['align'] == '' ) {
-                               $fp['align'] = $wgContLang->alignEnd();
+                               if( $parser instanceof Parser ) {
+                                       $fp['align'] = $parser->getTargetLanguage()->alignEnd();
+                               } else {
+                                       # backwards compatibility, remove with makeImageLink2()
+                                       global $wgContLang;
+                                       $fp['align'] = $wgContLang->alignEnd();
+                               }
                        }
                        return $prefix . self::makeThumbLink2( $title, $file, $fp, $hp, $time, $query ) . $postfix;
                }
@@ -663,6 +669,17 @@ class Linker {
                return str_replace( "\n", ' ', $prefix . $s . $postfix );
        }
 
+       /**
+        * See makeImageLink()
+        * When this function is removed, remove if( $parser instanceof Parser ) check there too
+        * @deprecated since 1.20
+        */
+       public static function makeImageLink2( Title $title, $file, $frameParams = array(),
+               $handlerParams = array(), $time = false, $query = "", $widthOption = null ) {
+               return self::makeImageLink( null, $title, $file, $frameParams,
+                       $handlerParams, $time, $query, $widthOption );
+       }
+
        /**
         * Get the link parameters for MediaTransformOutput::toHtml() from given
         * frame parameters supplied by the Parser.
@@ -1673,7 +1690,10 @@ class Linker {
         * @return String: HTML fragment
         */
        public static function buildRollbackLink( $rev, IContextSource $context = null ) {
-               global $wgShowRollbackEditCount;
+               global $wgShowRollbackEditCount, $wgMiserMode;
+               
+               // To config which pages are effected by miser mode
+               $disableRollbackEditCountSpecialPage = array( 'Recentchanges', 'Watchlist' );
 
                if ( $context === null ) {
                        $context = RequestContext::getMain();
@@ -1690,13 +1710,24 @@ class Linker {
                        $query['hidediff'] = '1'; // bug 15999
                }
 
-               if( is_int( $wgShowRollbackEditCount ) && $wgShowRollbackEditCount > 0 ) {
+               $disableRollbackEditCount = false;
+               if( $wgMiserMode ) {
+                       foreach( $disableRollbackEditCountSpecialPage as $specialPage ) {
+                               if( $context->getTitle()->isSpecial( $specialPage ) ) {
+                                       $disableRollbackEditCount = true;
+                                       break;
+                               }
+                       }
+               }
+
+               if( !$disableRollbackEditCount && is_int( $wgShowRollbackEditCount ) && $wgShowRollbackEditCount > 0 ) {
                        $dbr = wfGetDB( DB_SLAVE );
 
                        // Up to the value of $wgShowRollbackEditCount revisions are counted
                        $res = $dbr->select( 'revision',
                                array( 'rev_id', 'rev_user_text' ),
-                               array( 'rev_page' => $rev->getPage() ),
+                               // $rev->getPage() returns null sometimes
+                               array( 'rev_page' => $rev->getTitle()->getArticleID() ),
                                __METHOD__,
                                array(  'USE INDEX' => 'page_timestamp',
                                        'ORDER BY' => 'rev_timestamp DESC',
index 3a87a00..78b9ec2 100644 (file)
@@ -28,7 +28,7 @@
  *
  * First implemented with MediaWiki 1.17, the Message class is intented to
  * replace the old wfMsg* functions that over time grew unusable.
- * @see https://www.mediawiki.org/wiki/New_messages_API for equivalences
+ * @see https://www.mediawiki.org/wiki/Manual:Messages_API for equivalences
  * between old and new functions.
  *
  * You should use the wfMessage() global function which acts as a wrapper for
index 4a7bafd..288dd3e 100644 (file)
@@ -734,10 +734,10 @@ class RecentChange {
                } else {
                        $comment = self::cleanupForIRC( $this->mAttribs['rc_comment'] );
                        $flag = '';
-                       if ( !$this->mAttribs['rc_patrolled'] && ( $wgUseRCPatrol || $this->mAttribs['rc_new'] && $wgUseNPPatrol ) ) {
+                       if ( !$this->mAttribs['rc_patrolled'] && ( $wgUseRCPatrol || $this->mAttribs['rc_type'] == RC_NEW && $wgUseNPPatrol ) ) {
                                $flag .= '!';
                        }
-                       $flag .= ( $this->mAttribs['rc_new'] ? "N" : "" ) . ( $this->mAttribs['rc_minor'] ? "M" : "" ) . ( $this->mAttribs['rc_bot'] ? "B" : "" );
+                       $flag .= ( $this->mAttribs['rc_type'] == RC_NEW ? "N" : "" ) . ( $this->mAttribs['rc_minor'] ? "M" : "" ) . ( $this->mAttribs['rc_bot'] ? "B" : "" );
                }
 
                if ( $wgRC2UDPInterwikiPrefix === true && $wgLocalInterwiki !== false ) {
index 91bd923..26b943c 100644 (file)
@@ -498,8 +498,7 @@ class WebRequest {
        public function getCheck( $name ) {
                # Checkboxes and buttons are only present when clicked
                # Presence connotes truth, abscense false
-               $val = $this->getVal( $name, null );
-               return isset( $val );
+               return $this->getVal( $name, null ) !== null;
        }
 
        /**
index 77e1356..59a4ef9 100644 (file)
@@ -1318,6 +1318,7 @@ abstract class ApiBase extends ContextSource {
                'nodeleteablefile' => array( 'code' => 'nodeleteablefile', 'info' => 'No such old version of the file' ),
                'fileexists-forbidden' => array( 'code' => 'fileexists-forbidden', 'info' => 'A file with name "$1" already exists, and cannot be overwritten.' ),
                'fileexists-shared-forbidden' => array( 'code' => 'fileexists-shared-forbidden', 'info' => 'A file with name "$1" already exists in the shared file repository, and cannot be overwritten.' ),
+               'filerevert-badversion' => array( 'code' => 'filerevert-badversion', 'info' => 'There is no previous local version of this file with the provided timestamp.' ),
 
                // ApiEditPage messages
                'noimageredirect-anon' => array( 'code' => 'noimageredirect-anon', 'info' => "Anonymous users can't create image redirects" ),
@@ -1342,7 +1343,7 @@ abstract class ApiBase extends ContextSource {
                'edit-already-exists' => array( 'code' => 'edit-already-exists', 'info' => "It seems the page you tried to create already exist" ),
 
                // uploadMsgs
-               'invalid-session-key' => array( 'code' => 'invalid-session-key', 'info' => 'Not a valid session key' ),
+               'invalid-file-key' => array( 'code' => 'invalid-file-key', 'info' => 'Not a valid file key' ),
                'nouploadmodule' => array( 'code' => 'nouploadmodule', 'info' => 'No upload module set' ),
                'uploaddisabled' => array( 'code' => 'uploaddisabled', 'info' => 'Uploads are not enabled.  Make sure $wgEnableUploads is set to true in LocalSettings.php and the PHP ini setting file_uploads is true' ),
                'copyuploaddisabled' => array( 'code' => 'copyuploaddisabled', 'info' => 'Uploads by URL is not enabled.  Make sure $wgAllowCopyUploads is set to true in LocalSettings.php.' ),
index 08a9c8e..83d078d 100644 (file)
@@ -71,9 +71,10 @@ class ApiFileRevert extends ApiBase {
         * @param $user User The user to check.
         */
        protected function checkPermissions( $user ) {
+               $title = $this->file->getTitle();
                $permissionErrors = array_merge(
-                       $this->file->getTitle()->getUserPermissionsErrors( 'edit' , $user ),
-                       $this->file->getTitle()->getUserPermissionsErrors( 'upload' , $user )
+                       $title->getUserPermissionsErrors( 'edit' , $user ),
+                       $title->getUserPermissionsErrors( 'upload' , $user )
                );
 
                if ( $permissionErrors ) {
@@ -91,15 +92,17 @@ class ApiFileRevert extends ApiBase {
                if ( is_null( $title ) ) {
                        $this->dieUsageMsg( array( 'invalidtitle', $this->params['filename'] ) );
                }
+               $localRepo = RepoGroup::singleton()->getLocalRepo();
+
                // Check if the file really exists
-               $this->file = wfLocalFile( $title );
+               $this->file = $localRepo->newFile( $title );
                if ( !$this->file->exists() ) {
                        $this->dieUsageMsg( 'notanarticle' );
                }
 
                // Check if the archivename is valid for this file
                $this->archiveName = $this->params['archivename'];
-               $oldFile = RepoGroup::singleton()->getLocalRepo()->newFromArchiveName( $title, $this->archiveName );
+               $oldFile = $localRepo->newFromArchiveName( $title, $this->archiveName );
                if ( !$oldFile->exists() ) {
                        $this->dieUsageMsg( 'filerevert-badversion' );
                }
index 05f6652..5e97293 100644 (file)
@@ -65,6 +65,7 @@ class ApiMain extends ApiBase {
 
                // Write modules
                'purge' => 'ApiPurge',
+               'setnotificationtimestamp' => 'ApiSetNotificationTimestamp',
                'rollback' => 'ApiRollback',
                'delete' => 'ApiDelete',
                'undelete' => 'ApiUndelete',
@@ -422,15 +423,22 @@ class ApiMain extends ApiBase {
         */
        protected function handleCORS() {
                global $wgCrossSiteAJAXdomains, $wgCrossSiteAJAXdomainExceptions;
-               $response = $this->getRequest()->response();
+
                $originParam = $this->getParameter( 'origin' ); // defaults to null
                if ( $originParam === null ) {
                        // No origin parameter, nothing to do
                        return true;
                }
+
+               $request = $this->getRequest();
+               $response = $request->response();
                // Origin: header is a space-separated list of origins, check all of them
-               $originHeader = isset( $_SERVER['HTTP_ORIGIN'] ) ? $_SERVER['HTTP_ORIGIN'] : '';
-               $origins = explode( ' ', $originHeader );
+               $originHeader = $request->getHeader( 'Origin' );
+               if ( $originHeader === false ) {
+                       $origins = array();
+               } else {
+                       $origins = explode( ' ', $originHeader );
+               }
                if ( !in_array( $originParam, $origins ) ) {
                        // origin parameter set but incorrect
                        // Send a 403 response
index d3847a0..4398eb0 100644 (file)
@@ -135,8 +135,8 @@ class ApiOptions extends ApiBase {
 
        public function getPossibleErrors() {
                return array_merge( parent::getPossibleErrors(), array(
-                       array( 'notloggedin' ),
-                       array( 'nochanges' ),
+                       array( 'code' => 'notloggedin', 'info' => 'Anonymous users cannot change preferences' ),
+                       array( 'code' => 'nochanges', 'info' => 'No changes were requested' ),
                ) );
        }
 
index 875684e..f64b3e5 100644 (file)
@@ -289,6 +289,18 @@ class ApiParse extends ApiBase {
                        $result_array['properties'] = $this->formatProperties( $p_result->getProperties() );
                }
 
+               if ( $params['generatexml'] ) {
+                       $wgParser->startExternalParse( $titleObj, $popts, OT_PREPROCESS );
+                       $dom = $wgParser->preprocessToDom( $this->text );
+                       if ( is_callable( array( $dom, 'saveXML' ) ) ) {
+                               $xml = $dom->saveXML();
+                       } else {
+                               $xml = $dom->__toString();
+                       }
+                       $result_array['parsetree'] = array();
+                       $result->setContent( $result_array['parsetree'], $xml );
+               }
+
                $result_mapping = array(
                        'redirects' => 'r',
                        'langlinks' => 'll',
@@ -541,6 +553,7 @@ class ApiParse extends ApiBase {
                        'uselang' => null,
                        'section' => null,
                        'disablepp' => false,
+                       'generatexml' => false,
                );
        }
 
@@ -585,6 +598,7 @@ class ApiParse extends ApiBase {
                        'uselang' => 'Which language to parse the request in',
                        'section' => 'Only retrieve the content of this section number',
                        'disablepp' => 'Disable the PP Report from the parser output',
+                       'generatexml' => 'Generate XML parse tree',
                );
        }
 
index d9acba4..9fedaf1 100644 (file)
@@ -172,7 +172,6 @@ class ApiPurge extends ApiBase {
                $psModule = new ApiPageSet( $this );
                return array_merge(
                        parent::getPossibleErrors(),
-                       array( array( 'cantpurge' ), ),
                        $psModule->getPossibleErrors()
                );
        }
index d7c341d..e22ef27 100644 (file)
@@ -119,9 +119,6 @@ class ApiQuery extends ApiBase {
                $this->mPropModuleNames = array_keys( $this->mQueryPropModules );
                $this->mListModuleNames = array_keys( $this->mQueryListModules );
                $this->mMetaModuleNames = array_keys( $this->mQueryMetaModules );
-
-               $this->makeHelpMsgHelper( $this->mQueryPropModules, 'prop' );
-               $this->makeHelpMsgHelper( $this->mQueryListModules, 'list' );
        }
 
        /**
index d88e4da..96b8696 100644 (file)
@@ -383,13 +383,15 @@ class ApiQueryBlocks extends ApiQueryBase {
        }
 
        public function getPossibleErrors() {
-               return array_merge( parent::getPossibleErrors(), array(
+               return array_merge( parent::getPossibleErrors(),
                        $this->getRequireOnlyOneParameterErrorMessages( array( 'users', 'ip' ) ),
-                       array( 'code' => 'cidrtoobroad', 'info' => 'CIDR ranges broader than /16 are not accepted' ),
-                       array( 'code' => 'param_user', 'info' => 'User parameter may not be empty' ),
-                       array( 'code' => 'param_user', 'info' => 'User name user is not valid' ),
-                       array( 'show' ),
-               ) );
+                       array(
+                               array( 'code' => 'cidrtoobroad', 'info' => 'CIDR ranges broader than /16 are not accepted' ),
+                               array( 'code' => 'param_user', 'info' => 'User parameter may not be empty' ),
+                               array( 'code' => 'param_user', 'info' => 'User name user is not valid' ),
+                               array( 'show' ),
+                       )
+               );
        }
 
        public function getExamples() {
index 4a85b0b..5d4f034 100644 (file)
@@ -33,7 +33,7 @@ class ApiQueryInfo extends ApiQueryBase {
 
        private $fld_protection = false, $fld_talkid = false,
                $fld_subjectid = false, $fld_url = false,
-               $fld_readable = false, $fld_watched = false,
+               $fld_readable = false, $fld_watched = false, $fld_notificationtimestamp = false,
                $fld_preload = false, $fld_displaytitle = false;
 
        private $params, $titles, $missing, $everything, $pageCounter;
@@ -41,7 +41,7 @@ class ApiQueryInfo extends ApiQueryBase {
        private $pageRestrictions, $pageIsRedir, $pageIsNew, $pageTouched,
                $pageLatest, $pageLength;
 
-       private $protections, $watched, $talkids, $subjectids, $displaytitles;
+       private $protections, $watched, $notificationtimestamps, $talkids, $subjectids, $displaytitles;
 
        private $tokenFunctions;
 
@@ -248,6 +248,7 @@ class ApiQueryInfo extends ApiQueryBase {
                        $prop = array_flip( $this->params['prop'] );
                        $this->fld_protection = isset( $prop['protection'] );
                        $this->fld_watched = isset( $prop['watched'] );
+                       $this->fld_notificationtimestamp = isset( $prop['notificationtimestamp'] );
                        $this->fld_talkid = isset( $prop['talkid'] );
                        $this->fld_subjectid = isset( $prop['subjectid'] );
                        $this->fld_url = isset( $prop['url'] );
@@ -303,7 +304,7 @@ class ApiQueryInfo extends ApiQueryBase {
                        $this->getProtectionInfo();
                }
 
-               if ( $this->fld_watched ) {
+               if ( $this->fld_watched || $this->fld_notificationtimestamp ) {
                        $this->getWatchedInfo();
                }
 
@@ -386,6 +387,13 @@ class ApiQueryInfo extends ApiQueryBase {
                        $pageInfo['watched'] = '';
                }
 
+               if ( $this->fld_notificationtimestamp ) {
+                       $pageInfo['notificationtimestamp'] = '';
+                       if ( isset( $this->notificationtimestamps[$ns][$dbkey] ) ) {
+                               $pageInfo['notificationtimestamp'] = wfTimestamp( TS_ISO_8601, $this->notificationtimestamps[$ns][$dbkey] );
+                       }
+               }
+
                if ( $this->fld_talkid && isset( $this->talkids[$ns][$dbkey] ) )        {
                        $pageInfo['talkid'] = $this->talkids[$ns][$dbkey];
                }
@@ -634,6 +642,7 @@ class ApiQueryInfo extends ApiQueryBase {
 
        /**
         * Get information about watched status and put it in $this->watched
+        * and $this->notificationtimestamps
         */
        private function getWatchedInfo() {
                $user = $this->getUser();
@@ -643,6 +652,7 @@ class ApiQueryInfo extends ApiQueryBase {
                }
 
                $this->watched = array();
+               $this->notificationtimestamps = array();
                $db = $this->getDB();
 
                $lb = new LinkBatch( $this->everything );
@@ -650,6 +660,7 @@ class ApiQueryInfo extends ApiQueryBase {
                $this->resetQueryParams();
                $this->addTables( array( 'watchlist' ) );
                $this->addFields( array( 'wl_title', 'wl_namespace' ) );
+               $this->addFieldsIf( 'wl_notificationtimestamp', $this->fld_notificationtimestamp );
                $this->addWhere( array(
                        $lb->constructSet( 'wl', $db ),
                        'wl_user' => $user->getID()
@@ -658,7 +669,12 @@ class ApiQueryInfo extends ApiQueryBase {
                $res = $this->select( __METHOD__ );
 
                foreach ( $res as $row ) {
-                       $this->watched[$row->wl_namespace][$row->wl_title] = true;
+                       if ( $this->fld_watched ) {
+                               $this->watched[$row->wl_namespace][$row->wl_title] = true;
+                       }
+                       if ( $this->fld_notificationtimestamp ) {
+                               $this->notificationtimestamps[$row->wl_namespace][$row->wl_title] = $row->wl_notificationtimestamp;
+                       }
                }
        }
 
@@ -693,6 +709,7 @@ class ApiQueryInfo extends ApiQueryBase {
                                        'protection',
                                        'talkid',
                                        'watched', # private
+                                       'notificationtimestamp', # private
                                        'subjectid',
                                        'url',
                                        'readable', # private
@@ -714,14 +731,15 @@ class ApiQueryInfo extends ApiQueryBase {
                return array(
                        'prop' => array(
                                'Which additional properties to get:',
-                               ' protection   - List the protection level of each page',
-                               ' talkid       - The page ID of the talk page for each non-talk page',
-                               ' watched      - List the watched status of each page',
-                               ' subjectid    - The page ID of the parent page for each talk page',
-                               ' url          - Gives a full URL to the page, and also an edit URL',
-                               ' readable     - Whether the user can read this page',
-                               ' preload      - Gives the text returned by EditFormPreloadText',
-                               ' displaytitle - Gives the way the page title is actually displayed',
+                               ' protection            - List the protection level of each page',
+                               ' talkid                - The page ID of the talk page for each non-talk page',
+                               ' watched               - List the watched status of each page',
+                               ' notificationtimestamp - The watchlist notification timestamp of each page',
+                               ' subjectid             - The page ID of the parent page for each talk page',
+                               ' url                   - Gives a full URL to the page, and also an edit URL',
+                               ' readable              - Whether the user can read this page',
+                               ' preload               - Gives the text returned by EditFormPreloadText',
+                               ' displaytitle          - Gives the way the page title is actually displayed',
                        ),
                        'token' => 'Request a token to perform a data-modifying action on a page',
                        'continue' => 'When more results are available, use this to continue',
@@ -749,6 +767,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        'watched' => array(
                                'watched' => 'boolean'
                        ),
+                       'notificationtimestamp' => array(
+                               'notificationtimestamp' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
                        'talkid' => array(
                                'talkid' => array(
                                        ApiBase::PROP_TYPE => 'integer',
index 91d371b..7bb6bc5 100644 (file)
@@ -236,7 +236,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        $this->addFieldsIf( 'rc_comment', $this->fld_comment || $this->fld_parsedcomment );
                        $this->addFieldsIf( 'rc_user', $this->fld_user );
                        $this->addFieldsIf( 'rc_user_text', $this->fld_user || $this->fld_userid );
-                       $this->addFieldsIf( array( 'rc_minor', 'rc_new', 'rc_bot' ) , $this->fld_flags );
+                       $this->addFieldsIf( array( 'rc_minor', 'rc_type', 'rc_bot' ) , $this->fld_flags );
                        $this->addFieldsIf( array( 'rc_old_len', 'rc_new_len' ), $this->fld_sizes );
                        $this->addFieldsIf( 'rc_patrolled', $this->fld_patrolled );
                        $this->addFieldsIf( array( 'rc_logid', 'rc_log_type', 'rc_log_action', 'rc_params' ), $this->fld_loginfo );
@@ -393,7 +393,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        if ( $row->rc_bot ) {
                                $vals['bot'] = '';
                        }
-                       if ( $row->rc_new ) {
+                       if ( $row->rc_type == RC_NEW ) {
                                $vals['new'] = '';
                        }
                        if ( $row->rc_minor ) {
index 7ef90fb..18a6cd4 100644 (file)
@@ -248,6 +248,16 @@ class ApiQueryRevisions extends ApiQueryBase {
                                $this->dieUsage( 'user and excludeuser cannot be used together', 'badparams' );
                        }
 
+                       // Continuing effectively uses startid. But we can't use rvstartid
+                       // directly, because there is no way to tell the client to ''not''
+                       // send rvstart if it sent it in the original query. So instead we
+                       // send the continuation startid as rvcontinue, and ignore both
+                       // rvstart and rvstartid when that is supplied.
+                       if ( !is_null( $params['continue'] ) ) {
+                               $params['startid'] = $params['continue'];
+                               unset( $params['start'] );
+                       }
+
                        // This code makes an assumption that sorting by rev_id and rev_timestamp produces
                        // the same result. This way users may request revisions starting at a given time,
                        // but to page through results use the rev_id returned after each page.
@@ -357,14 +367,14 @@ class ApiQueryRevisions extends ApiQueryBase {
                                if ( !$enumRevMode ) {
                                        ApiBase::dieDebug( __METHOD__, 'Got more rows then expected' ); // bug report
                                }
-                               $this->setContinueEnumParameter( 'startid', intval( $row->rev_id ) );
+                               $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                break;
                        }
 
                        $fit = $this->addPageSubItem( $row->rev_page, $this->extractRowInfo( $row ), 'rev' );
                        if ( !$fit ) {
                                if ( $enumRevMode ) {
-                                       $this->setContinueEnumParameter( 'startid', intval( $row->rev_id ) );
+                                       $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                } elseif ( $revCount > 0 ) {
                                        $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                } else {
index acc846b..855e270 100644 (file)
@@ -253,14 +253,16 @@ class ApiQueryUsers extends ApiQueryBase {
        * @return array
        */
        public static function getAutoGroups( $user ) {
+               // FIXME this logic is duplicated from User::getEffectiveGroups(), centralize this
                $groups = array();
                $groups[] = '*';
 
                if ( !$user->isAnon() ) {
                        $groups[] = 'user';
+                       $groups = array_merge( $groups, Autopromote::getAutopromoteGroups( $user ) );
                }
 
-               return array_merge( $groups, Autopromote::getAutopromoteGroups( $user ) );
+               return $groups;
        }
 
        public function getCacheMode( $params ) {
index 36644a4..a1a3372 100644 (file)
@@ -96,7 +96,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                                'rc_last_oldid',
                        ) );
 
-                       $this->addFieldsIf( array( 'rc_new', 'rc_minor', 'rc_bot' ), $this->fld_flags );
+                       $this->addFieldsIf( array( 'rc_type', 'rc_minor', 'rc_bot' ), $this->fld_flags );
                        $this->addFieldsIf( 'rc_user', $this->fld_user || $this->fld_userid );
                        $this->addFieldsIf( 'rc_user_text', $this->fld_user );
                        $this->addFieldsIf( 'rc_comment', $this->fld_comment || $this->fld_parsedcomment );
@@ -254,7 +254,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                }
 
                if ( $this->fld_flags ) {
-                       if ( $row->rc_new ) {
+                       if ( $row->rc_type == RC_NEW ) {
                                $vals['new'] = '';
                        }
                        if ( $row->rc_minor ) {
diff --git a/includes/api/ApiSetNotificationTimestamp.php b/includes/api/ApiSetNotificationTimestamp.php
new file mode 100644 (file)
index 0000000..f9ecfec
--- /dev/null
@@ -0,0 +1,287 @@
+<?php
+
+/**
+ * API for MediaWiki 1.14+
+ *
+ * Created on Jun 18, 2012
+ *
+ * Copyright © 2012 Brad Jorsch
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * API interface for setting the wl_notificationtimestamp field
+ * @ingroup API
+ */
+class ApiSetNotificationTimestamp extends ApiBase {
+
+       public function __construct( $main, $action ) {
+               parent::__construct( $main, $action );
+       }
+
+       public function execute() {
+               $user = $this->getUser();
+
+               if ( $user->isAnon() ) {
+                       $this->dieUsage( 'Anonymous users cannot use watchlist change notifications', 'notloggedin' );
+               }
+
+               $params = $this->extractRequestParams();
+               $this->requireMaxOneParameter( $params, 'timestamp', 'torevid', 'newerthanrevid' );
+
+               $pageSet = new ApiPageSet( $this );
+               $args = array_merge( array( $params, 'entirewatchlist' ), array_keys( $pageSet->getAllowedParams() ) );
+               call_user_func_array( array( $this, 'requireOnlyOneParameter' ), $args );
+
+               $db = $this->getDB();
+               $dbw = $this->getDB( DB_MASTER );
+
+               $timestamp = null;
+               if ( isset( $params['timestamp'] ) ) {
+                       $timestamp = $dbw->timestamp( $params['timestamp'] );
+               }
+
+               if ( !$params['entirewatchlist'] ) {
+                       $pageSet->execute();
+               }
+
+               if ( isset( $params['torevid'] ) ) {
+                       if ( $params['entirewatchlist'] || $pageSet->getGoodTitleCount() > 1 ) {
+                               $this->dieUsage( 'torevid may only be used with a single page', 'multpages' );
+                       }
+                       $title = reset( $pageSet->getGoodTitles() );
+                       $timestamp = Revision::getTimestampFromId( $title, $params['torevid'] );
+                       if ( $timestamp ) {
+                               $timestamp = $dbw->timestamp( $timestamp );
+                       } else {
+                               $timestamp = null;
+                       }
+               } elseif ( isset( $params['newerthanrevid'] ) ) {
+                       if ( $params['entirewatchlist'] || $pageSet->getGoodTitleCount() > 1 ) {
+                               $this->dieUsage( 'newerthanrevid may only be used with a single page', 'multpages' );
+                       }
+                       $title = reset( $pageSet->getGoodTitles() );
+                       $revid = $title->getNextRevisionID( $params['newerthanrevid'] );
+                       if ( $revid ) {
+                               $timestamp = $dbw->timestamp( Revision::getTimestampFromId( $title, $revid ) );
+                       } else {
+                               $timestamp = null;
+                       }
+               }
+
+               $apiResult = $this->getResult();
+               $result = array();
+               if ( $params['entirewatchlist'] ) {
+                       // Entire watchlist mode: Just update the thing and return a success indicator
+                       $dbw->update( 'watchlist', array( 'wl_notificationtimestamp' => $timestamp ),
+                               array( 'wl_user' => $user->getID() ),
+                               __METHOD__
+                       );
+
+                       $result['notificationtimestamp'] = ( is_null( $timestamp ) ? '' : wfTimestamp( TS_ISO_8601, $timestamp ) );
+               } else {
+                       // First, log the invalid titles
+                       foreach( $pageSet->getInvalidTitles() as $title ) {
+                               $r = array();
+                               $r['title'] = $title;
+                               $r['invalid'] = '';
+                               $result[] = $r;
+                       }
+                       foreach( $pageSet->getMissingPageIDs() as $p ) {
+                               $page = array();
+                               $page['pageid'] = $p;
+                               $page['missing'] = '';
+                               $page['notwatched'] = '';
+                               $result[] = $page;
+                       }
+                       foreach( $pageSet->getMissingRevisionIDs() as $r ) {
+                               $rev = array();
+                               $rev['revid'] = $r;
+                               $rev['missing'] = '';
+                               $rev['notwatched'] = '';
+                               $result[] = $rev;
+                       }
+
+                       // Now process the valid titles
+                       $lb = new LinkBatch( $pageSet->getTitles() );
+                       $dbw->update( 'watchlist', array( 'wl_notificationtimestamp' => $timestamp ),
+                               array( 'wl_user' => $user->getID(), $lb->constructSet( 'wl', $dbw ) ),
+                               __METHOD__
+                       );
+
+                       // Query the results of our update
+                       $timestamps = array();
+                       $res = $dbw->select( 'watchlist', array( 'wl_namespace', 'wl_title', 'wl_notificationtimestamp' ),
+                               array( 'wl_user' => $user->getID(), $lb->constructSet( 'wl', $dbw ) ),
+                               __METHOD__
+                       );
+                       foreach ( $res as $row ) {
+                               $timestamps[$row->wl_namespace][$row->wl_title] = $row->wl_notificationtimestamp;
+                       }
+
+                       // Now, put the valid titles into the result
+                       $pages = array();
+                       foreach ( $pageSet->getTitles() as $title ) {
+                               $ns = $title->getNamespace();
+                               $dbkey = $title->getDBkey();
+                               $r = array(
+                                       'ns' => intval( $ns ),
+                                       'title' => $title->getPrefixedText(),
+                               );
+                               if ( !$title->exists() ) {
+                                       $r['missing'] = '';
+                               }
+                               if ( isset( $timestamps[$ns] ) && array_key_exists( $dbkey, $timestamps[$ns] ) ) {
+                                       $r['notificationtimestamp'] = '';
+                                       if ( $timestamps[$ns][$dbkey] !== null ) {
+                                               $r['notificationtimestamp'] = wfTimestamp( TS_ISO_8601, $timestamps[$ns][$dbkey] );
+                                       }
+                               } else {
+                                       $r['notwatched'] = '';
+                               }
+                               $result[] = $r;
+                       }
+
+                       $apiResult->setIndexedTagName( $result, 'page' );
+               }
+               $apiResult->addValue( null, $this->getModuleName(), $result );
+       }
+
+       public function mustBePosted() {
+               return true;
+       }
+
+       public function isWriteMode() {
+               return true;
+       }
+
+       public function needsToken() {
+               return true;
+       }
+
+       public function getTokenSalt() {
+               return '';
+       }
+
+       public function getAllowedParams() {
+               $psModule = new ApiPageSet( $this );
+               return $psModule->getAllowedParams() + array(
+                       'entirewatchlist' => array(
+                               ApiBase::PARAM_TYPE => 'boolean'
+                       ),
+                       'token' => null,
+                       'timestamp' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp'
+                       ),
+                       'torevid' => array(
+                               ApiBase::PARAM_TYPE => 'integer'
+                       ),
+                       'newerthanrevid' => array(
+                               ApiBase::PARAM_TYPE => 'integer'
+                       ),
+               );
+       }
+
+       public function getParamDescription() {
+               $psModule = new ApiPageSet( $this );
+               return $psModule->getParamDescription() + array(
+                       'entirewatchlist' => 'Work on all watched pages',
+                       'timestamp' => 'Timestamp to which to set the notification timestamp',
+                       'torevid' => 'Revision to set the notification timestamp to (one page only)',
+                       'newerthanrevid' => 'Revision to set the notification timestamp newer than (one page only)',
+                       'token' => 'A token previously acquired via prop=info',
+               );
+       }
+
+       public function getResultProperties() {
+               return array(
+                       ApiBase::PROP_LIST => true,
+                       ApiBase::PROP_ROOT => array(
+                               'notificationtimestamp' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       '' => array(
+                               'ns' => array(
+                                       ApiBase::PROP_TYPE => 'namespace',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'title' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'pageid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'revid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'invalid' => 'boolean',
+                               'missing' => 'boolean',
+                               'notwatched' => 'boolean',
+                               'notificationtimestamp' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
+       public function getDescription() {
+               return array( 'Update the notification timestamp for watched pages.',
+                       'This affects the highlighting of changed pages in the watchlist and history,',
+                       'and the sending of email when the "E-mail me when a page on my watchlist is',
+                       'changed" preference is enabled.'
+               );
+       }
+
+       public function getPossibleErrors() {
+               $psModule = new ApiPageSet( $this );
+               return array_merge(
+                       parent::getPossibleErrors(),
+                       $psModule->getPossibleErrors(),
+                       $this->getRequireMaxOneParameterErrorMessages( array( 'timestamp', 'torevid', 'newerthanrevid' ) ),
+                       $this->getRequireOnlyOneParameterErrorMessages( array_merge( array( 'entirewatchlist' ), array_keys( $psModule->getAllowedParams() ) ) ),
+                       array(
+                               array( 'code' => 'notloggedin', 'info' => 'Anonymous users cannot use watchlist change notifications' ),
+                               array( 'code' => 'multpages', 'info' => 'torevid may only be used with a single page' ),
+                               array( 'code' => 'multpages', 'info' => 'newerthanrevid may only be used with a single page' ),
+                       )
+               );
+       }
+
+       public function getExamples() {
+               return array(
+                       'api.php?action=setnotificationtimestamp&entirewatchlist=&token=ABC123' => 'Reset the notification status for the entire watchlist',
+                       'api.php?action=setnotificationtimestamp&titles=Main_page&token=ABC123' => 'Reset the notification status for "Main page"',
+                       'api.php?action=setnotificationtimestamp&titles=Main_page&timestamp=2012-01-01T00:00:00Z&token=ABC123' => 'Set the notification timestamp for "Main page" so all edits since 1 January 2012 are unviewed',
+               );
+       }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:SetNotificationTimestamp';
+       }
+
+       public function getVersion() {
+               return __CLASS__ . ': $Id$';
+       }
+}
index db3c37c..0dbbdd4 100644 (file)
@@ -179,6 +179,22 @@ class DifferenceEngine extends ContextSource {
                }
        }
 
+       private function showMissingRevision() {
+               $out = $this->getOutput();
+
+               $missing = array();
+               if ( $this->mOldRev === null ) {
+                       $missing[] = $this->deletedIdMarker( $this->mOldid );
+               }
+               if ( $this->mNewRev === null ) {
+                       $missing[] = $this->deletedIdMarker( $this->mNewid );
+               }
+
+               $out->setPageTitle( $this->msg( 'errorpagetitle' ) );
+               $out->addWikiMsg( 'difference-missing-revision',
+                       $this->getLanguage()->listToText( $missing ), count( $missing ) );
+       }
+
        function showDiffPage( $diffOnly = false ) {
                wfProfileIn( __METHOD__ );
 
@@ -188,13 +204,7 @@ class DifferenceEngine extends ContextSource {
                $out->setRobotPolicy( 'noindex,nofollow' );
 
                if ( !$this->loadRevisionData() ) {
-                       // Sounds like a deleted revision... Let's see what we can do.
-                       $t = $this->getTitle()->getPrefixedText();
-                       $d = $this->msg( 'missingarticle-diff',
-                               $this->deletedIdMarker( $this->mOldid ),
-                               $this->deletedIdMarker( $this->mNewid ) )->escaped();
-                       $out->setPageTitle( $this->msg( 'errorpagetitle' ) );
-                       $out->addWikiMsg( 'missing-article', "<nowiki>$t</nowiki>", "<span class='plainlinks'>$d</span>" );
+                       $this->showMissingRevision();
                        wfProfileOut( __METHOD__ );
                        return;
                }
@@ -557,7 +567,7 @@ class DifferenceEngine extends ContextSource {
        function showDiff( $otitle, $ntitle, $notice = '' ) {
                $diff = $this->getDiff( $otitle, $ntitle, $notice );
                if ( $diff === false ) {
-                       $this->getOutput()->addWikiMsg( 'missing-article', "<nowiki>(fixme, bug)</nowiki>", '' );
+                       $this->showMissingRevision();
                        return false;
                } else {
                        $this->showDiffStyle();
index e0873d2..e9136d5 100644 (file)
@@ -140,7 +140,7 @@ class FileBackendMultiWrite extends FileBackend {
                // Clear any cache entries (after locks acquired)
                $this->clearCache();
                // Do a consistency check to see if the backends agree
-               $status->merge( $this->consistencyCheck( array_merge( $paths['sh'], $paths['ex'] ) ) );
+               $status->merge( $this->consistencyCheck( $this->fileStoragePathsForOps( $ops ) ) );
                if ( !$status->isOK() ) {
                        return $status; // abort
                }
@@ -234,6 +234,28 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
+       /**
+        * Get a list of file storage paths to read or write for a list of operations
+        *
+        * @param $ops Array Same format as doOperations()
+        * @return Array List of storage paths to files (does not include directories)
+        */
+       protected function fileStoragePathsForOps( array $ops ) {
+               $paths = array();
+               foreach ( $ops as $op ) {
+                       if ( isset( $op['src'] ) ) {
+                               $paths[] = $op['src'];
+                       }
+                       if ( isset( $op['srcs'] ) ) {
+                               $paths = array_merge( $paths, $op['srcs'] );
+                       }
+                       if ( isset( $op['dst'] ) ) {
+                               $paths[] = $op['dst'];
+                       }
+               }
+               return array_unique( $paths );
+       }
+
        /**
         * Substitute the backend name in storage path parameters
         * for a set of operations with that of a given internal backend.
index 3063440..5be86e6 100644 (file)
@@ -1087,7 +1087,7 @@ class SwiftFileBackend extends FileBackendStore {
                $url = $creds['storage_url'] . '/' . rawurlencode( $contObj->name );
 
                // Note: 10 second timeout consistent with php-cloudfiles
-               $req = new CurlHttpRequest( $url, array( 'method' => 'POST', 'timeout' => 10 ) );
+               $req = MWHttpRequest::factory( $url, array( 'method' => 'POST', 'timeout' => 10 ) );
                $req->setHeader( 'X-Auth-Token', $creds['auth_token'] );
                $req->setHeader( 'X-Container-Read', implode( ',', $readGrps ) );
                $req->setHeader( 'X-Container-Write', implode( ',', $writeGrps ) );
index 7b7ec0c..fcf5ca8 100644 (file)
@@ -213,8 +213,9 @@ abstract class Job {
         *
         * @param $command String: Job command
         * @param $title Title: Associated title
-        * @param $params Array: Job parameters
+        * @param $params Array|bool: Job parameters
         * @param $id Int: Job identifier
+        * @throws MWException
         * @return Job
         */
        static function factory( $command, Title $title, $params = false, $id = 0 ) {
@@ -343,8 +344,8 @@ abstract class Job {
        /**
         * @param $command
         * @param $title
-        * @param $params array
-        * @param int $id
+        * @param $params array|bool
+        * @param $id int
         */
        function __construct( $command, $title, $params = false, $id = 0 ) {
                $this->command = $command;
index 7ccf00d..2eac326 100644 (file)
@@ -37,7 +37,6 @@ class RefreshLinksJob extends Job {
         * @return boolean success
         */
        function run() {
-               global $wgParser, $wgContLang;
                wfProfileIn( __METHOD__ );
 
                $linkCache = LinkCache::singleton();
@@ -49,26 +48,41 @@ class RefreshLinksJob extends Job {
                        return false;
                }
 
-               $revision = Revision::newFromTitle( $this->title );
+               # Wait for the DB of the current/next slave DB handle to catch up to the master.
+               # This way, we get the correct page_latest for templates or files that just changed
+               # milliseconds ago, having triggered this job to begin with.
+               if ( isset( $this->params['masterPos'] ) ) {
+                       wfGetLB()->waitFor( $this->params['masterPos'] );
+               }
+
+               $revision = Revision::newFromTitle( $this->title, 0, Revision::AVOID_MASTER );
                if ( !$revision ) {
-                       $this->error = 'refreshLinks: Article not found "' . $this->title->getPrefixedDBkey() . '"';
+                       $this->error = 'refreshLinks: Article not found "' .
+                               $this->title->getPrefixedDBkey() . '"';
                        wfProfileOut( __METHOD__ );
-                       return false;
+                       return false; // XXX: what if it was just deleted?
                }
 
-               wfProfileIn( __METHOD__.'-parse' );
-               $options = ParserOptions::newFromUserAndLang( new User, $wgContLang );
-               $parserOutput = $wgParser->parse( $revision->getText(), $this->title, $options, true, true, $revision->getId() );
-               wfProfileOut( __METHOD__.'-parse' );
-               wfProfileIn( __METHOD__.'-update' );
+               self::runForTitleInternal( $this->title, $revision, __METHOD__ );
 
-               $updates = $parserOutput->getSecondaryDataUpdates( $this->title, false );
-               DataUpdate::runUpdates( $updates );
-
-               wfProfileOut( __METHOD__.'-update' );
                wfProfileOut( __METHOD__ );
                return true;
        }
+
+       public static function runForTitleInternal( Title $title, Revision $revision, $fname ) {
+               global $wgParser, $wgContLang;
+
+               wfProfileIn( $fname . '-parse' );
+               $options = ParserOptions::newFromUserAndLang( new User, $wgContLang );
+               $parserOutput = $wgParser->parse(
+                       $revision->getText(), $title, $options, true, true, $revision->getId() );
+               wfProfileOut( $fname . '-parse' );
+
+               wfProfileIn( $fname . '-update' );
+               $updates = $parserOutput->getSecondaryDataUpdates( $title, false );
+               DataUpdate::runUpdates( $updates );
+               wfProfileOut( $fname . '-update' );
+       }
 }
 
 /**
@@ -78,6 +92,7 @@ class RefreshLinksJob extends Job {
  * @ingroup JobQueue
  */
 class RefreshLinksJob2 extends Job {
+       const MAX_TITLES_RUN = 10;
 
        function __construct( $title, $params, $id = 0 ) {
                parent::__construct( 'refreshLinks2', $title, $params, $id );
@@ -88,62 +103,100 @@ class RefreshLinksJob2 extends Job {
         * @return boolean success
         */
        function run() {
-               global $wgParser, $wgContLang;
-
                wfProfileIn( __METHOD__ );
 
                $linkCache = LinkCache::singleton();
                $linkCache->clear();
 
-               if( is_null( $this->title ) ) {
+               if ( is_null( $this->title ) ) {
                        $this->error = "refreshLinks2: Invalid title";
                        wfProfileOut( __METHOD__ );
                        return false;
-               }
-               if( !isset($this->params['start']) || !isset($this->params['end']) ) {
+               } elseif ( !isset( $this->params['start'] ) || !isset( $this->params['end'] ) ) {
                        $this->error = "refreshLinks2: Invalid params";
                        wfProfileOut( __METHOD__ );
                        return false;
                }
+
                // Back compat for pre-r94435 jobs
                $table = isset( $this->params['table'] ) ? $this->params['table'] : 'templatelinks';
-               $titles = $this->title->getBacklinkCache()->getLinks( 
-                       $table, $this->params['start'], $this->params['end']);
-               
-               # Not suitable for page load triggered job running!
-               # Gracefully switch to refreshLinks jobs if this happens.
-               if( php_sapi_name() != 'cli' ) {
+
+               // Avoid slave lag when fetching templates
+               if ( isset( $this->params['masterPos'] ) ) {
+                       $masterPos = $this->params['masterPos'];
+               } elseif ( wfGetLB()->getServerCount() > 1  ) {
+                       $masterPos = wfGetLB()->getMasterPos();
+               } else {
+                       $masterPos = false;
+               }
+
+               $titles = $this->title->getBacklinkCache()->getLinks(
+                       $table, $this->params['start'], $this->params['end'] );
+
+               if ( $titles->count() > self::MAX_TITLES_RUN ) {
+                       # We don't want to parse too many pages per job as it can starve other jobs.
+                       # If there are too many pages to parse, break this up into smaller jobs. By passing
+                       # in the master position here we can cut down on the time spent waiting for slaves to
+                       # catch up by the runners handling these jobs since time will have passed between now
+                       # and when they pop these jobs off the queue.
+                       $start = 0; // batch start
+                       $end   = 0; // batch end
+                       $bsize = 0; // batch size
+                       $first = true; // first of batch
+                       $jobs  = array();
+                       foreach ( $titles as $title ) {
+                               $start = $first ? $title->getArticleId() : $start;
+                               $end   = $title->getArticleId();
+                               $first = false;
+                               if ( ++$bsize >= self::MAX_TITLES_RUN ) {
+                                       $jobs[] = new RefreshLinksJob2( $this->title, array(
+                                               'table'     => $table,
+                                               'start'     => $start,
+                                               'end'       => $end,
+                                               'masterPos' => $masterPos
+                                       ) );
+                                       $first = true;
+                                       $start = $end = $bsize = 0;
+                               }
+                       }
+                       if ( $bsize > 0 ) { // group remaining pages into a job
+                               $jobs[] = new RefreshLinksJob2( $this->title, array(
+                                       'table'     => $table,
+                                       'start'     => $start,
+                                       'end'       => $end,
+                                       'masterPos' => $masterPos
+                               ) );
+                       }
+                       Job::batchInsert( $jobs );
+               } elseif ( php_sapi_name() != 'cli' ) {
+                       # Not suitable for page load triggered job running!
+                       # Gracefully switch to refreshLinks jobs if this happens.
                        $jobs = array();
                        foreach ( $titles as $title ) {
-                               $jobs[] = new RefreshLinksJob( $title, '' );
+                               $jobs[] = new RefreshLinksJob( $title, array( 'masterPos' => $masterPos ) );
                        }
                        Job::batchInsert( $jobs );
-
-                       wfProfileOut( __METHOD__ );
-                       return true;
-               }
-               $options = ParserOptions::newFromUserAndLang( new User, $wgContLang );
-               # Re-parse each page that transcludes this page and update their tracking links...
-               foreach ( $titles as $title ) {
-                       $revision = Revision::newFromTitle( $title );
-                       if ( !$revision ) {
-                               $this->error = 'refreshLinks: Article not found "' . $title->getPrefixedDBkey() . '"';
-                               wfProfileOut( __METHOD__ );
-                               return false;
+               } else {
+                       # Wait for the DB of the current/next slave DB handle to catch up to the master.
+                       # This way, we get the correct page_latest for templates or files that just changed
+                       # milliseconds ago, having triggered this job to begin with.
+                       if ( $masterPos ) {
+                               wfGetLB()->waitFor( $masterPos );
+                       }
+                       # Re-parse each page that transcludes this page and update their tracking links...
+                       foreach ( $titles as $title ) {
+                               $revision = Revision::newFromTitle( $title, 0, Revision::AVOID_MASTER );
+                               if ( !$revision ) {
+                                       $this->error = 'refreshLinks: Article not found "' .
+                                               $title->getPrefixedDBkey() . '"';
+                                       continue; // skip this page
+                               }
+                               RefreshLinksJob::runForTitleInternal( $title, $revision, __METHOD__ );
+                               wfWaitForSlaves();
                        }
-                       wfProfileIn( __METHOD__.'-parse' );
-                       $parserOutput = $wgParser->parse( $revision->getText(), $title, $options, true, true, $revision->getId() );
-                       wfProfileOut( __METHOD__.'-parse' );
-                       wfProfileIn( __METHOD__.'-update' );
-
-                       $updates = $parserOutput->getSecondaryDataUpdates( $title, false );
-                       DataUpdate::runUpdates( $updates );
-
-                       wfProfileOut( __METHOD__.'-update' );
-                       wfWaitForSlaves();
                }
-               wfProfileOut( __METHOD__ );
 
+               wfProfileOut( __METHOD__ );
                return true;
        }
 }
index 464e507..813c272 100644 (file)
@@ -50,7 +50,7 @@ class MemcachedBagOStuff extends BagOStuff {
                        $params['timeout'] = $GLOBALS['wgMemCachedTimeout'];
                }
                if ( !isset( $params['connect_timeout'] ) ) {
-                       $params['connect_timeout'] = 0.1;
+                       $params['connect_timeout'] = 0.5;
                }
                return $params;
        }
index 63778b7..536ba6e 100644 (file)
@@ -259,7 +259,7 @@ class MWMemcached {
                $this->_host_dead = array();
 
                $this->_timeout_seconds = 0;
-               $this->_timeout_microseconds = isset( $args['timeout'] ) ? $args['timeout'] : 100000;
+               $this->_timeout_microseconds = isset( $args['timeout'] ) ? $args['timeout'] : 500000;
 
                $this->_connect_timeout = isset( $args['connect_timeout'] ) ? $args['connect_timeout'] : 0.1;
                $this->_connect_attempts = 2;
@@ -330,11 +330,10 @@ class MWMemcached {
                        $this->stats['delete'] = 1;
                }
                $cmd = "delete $key $time\r\n";
-               if( !$this->_safe_fwrite( $sock, $cmd, strlen( $cmd ) ) ) {
-                       $this->_dead_sock( $sock );
+               if( !$this->_fwrite( $sock, $cmd ) ) {
                        return false;
                }
-               $res = trim( fgets( $sock ) );
+               $res = $this->_fgets( $sock );
 
                if ( $this->_debug ) {
                        $this->_debugprint( sprintf( "MemCache: delete %s (%s)\n", $key, $res ) );
@@ -439,8 +438,7 @@ class MWMemcached {
                }
 
                $cmd = "get $key\r\n";
-               if ( !$this->_safe_fwrite( $sock, $cmd, strlen( $cmd ) ) ) {
-                       $this->_dead_sock( $sock );
+               if ( !$this->_fwrite( $sock, $cmd ) ) {
                        wfProfileOut( __METHOD__ );
                        return false;
                }
@@ -491,25 +489,23 @@ class MWMemcached {
                        }
                        $key = is_array( $key ) ? $key[1] : $key;
                        if ( !isset( $sock_keys[$sock] ) ) {
-                               $sock_keys[$sock] = array();
+                               $sock_keys[ intval( $sock ) ] = array();
                                $socks[] = $sock;
                        }
-                       $sock_keys[$sock][] = $key;
+                       $sock_keys[ intval( $sock ) ][] = $key;
                }
 
                $gather = array();
                // Send out the requests
                foreach ( $socks as $sock ) {
                        $cmd = 'get';
-                       foreach ( $sock_keys[$sock] as $key ) {
+                       foreach ( $sock_keys[ intval( $sock ) ] as $key ) {
                                $cmd .= ' ' . $key;
                        }
                        $cmd .= "\r\n";
 
-                       if ( $this->_safe_fwrite( $sock, $cmd, strlen( $cmd ) ) ) {
+                       if ( $this->_fwrite( $sock, $cmd ) ) {
                                $gather[] = $sock;
-                       } else {
-                               $this->_dead_sock( $sock );
                        }
                }
 
@@ -572,12 +568,6 @@ class MWMemcached {
         * Passes through $cmd to the memcache server connected by $sock; returns
         * output as an array (null array if no output)
         *
-        * NOTE: due to a possible bug in how PHP reads while using fgets(), each
-        *       line may not be terminated by a "\r\n".  More specifically, my testing
-        *       has shown that, on FreeBSD at least, each line is terminated only
-        *       with a "\n".  This is with the PHP flag auto_detect_line_endings set
-        *       to false (the default).
-        *
         * @param $sock Resource: socket to send command on
         * @param $cmd String: command to run
         *
@@ -588,13 +578,13 @@ class MWMemcached {
                        return array();
                }
 
-               if ( !$this->_safe_fwrite( $sock, $cmd, strlen( $cmd ) ) ) {
+               if ( !$this->_fwrite( $sock, $cmd ) ) {
                        return array();
                }
 
                $ret = array();
                while ( true ) {
-                       $res = fgets( $sock );
+                       $res = $this->_fgets( $sock );
                        $ret[] = $res;
                        if ( preg_match( '/^END/', $res ) ) {
                                break;
@@ -731,15 +721,19 @@ class MWMemcached {
                        wfRestoreWarnings();
                }
                if ( !$sock ) {
-                       if ( $this->_debug ) {
-                               $this->_debugprint( "Error connecting to $host: $errstr\n" );
-                       }
+                       $this->_error_log( "Error connecting to $host: $errstr\n" );
+                       $this->_dead_host( $host );
                        return false;
                }
 
                // Initialise timeout
                stream_set_timeout( $sock, $this->_timeout_seconds, $this->_timeout_microseconds );
 
+               // If the connection was persistent, flush the read buffer in case there
+               // was a previous incomplete request on this connection
+               if ( $this->_persistent ) {
+                       $this->_flush_read_buffer( $sock );
+               }
                return true;
        }
 
@@ -786,7 +780,6 @@ class MWMemcached {
                }
 
                if ( $this->_single_sock !== null ) {
-                       $this->_flush_read_buffer( $this->_single_sock );
                        return $this->sock_to_host( $this->_single_sock );
                }
 
@@ -811,7 +804,6 @@ class MWMemcached {
                        $host = $this->_buckets[$hv % $this->_bucketcount];
                        $sock = $this->sock_to_host( $host );
                        if ( is_resource( $sock ) ) {
-                               $this->_flush_read_buffer( $sock );
                                return $sock;
                        }
                        $hv = $this->_hashfunc( $hv . $realkey );
@@ -867,12 +859,11 @@ class MWMemcached {
                } else {
                        $this->stats[$cmd] = 1;
                }
-               if ( !$this->_safe_fwrite( $sock, "$cmd $key $amt\r\n" ) ) {
-                       $this->_dead_sock( $sock );
+               if ( !$this->_fwrite( $sock, "$cmd $key $amt\r\n" ) ) {
                        return null;
                }
 
-               $line = fgets( $sock );
+               $line = $this->_fgets( $sock );
                $match = array();
                if ( !preg_match( '/^(\d+)/', $line, $match ) ) {
                        return null;
@@ -888,63 +879,42 @@ class MWMemcached {
         *
         * @param $sock Resource: socket to read from
         * @param $ret Array: returned values
+        * @return boolean True for success, false for failure
         *
-        * @return bool|int
         * @access private
         */
        function _load_items( $sock, &$ret ) {
                while ( 1 ) {
-                       $decl = fgets( $sock );
+                       $decl = $this->_fgets( $sock );
                        if( $decl === false ) {
-                               $this->_debugprint( "Error reading socket for a memcached response\n" );
-                               return 0;
-                       } elseif ( $decl == "END\r\n" ) {
+                               return false;
+                       } elseif ( $decl == "END" ) {
                                return true;
-                       } elseif ( preg_match( '/^VALUE (\S+) (\d+) (\d+)\r\n$/', $decl, $match ) ) {
+                       } elseif ( preg_match( '/^VALUE (\S+) (\d+) (\d+)$/', $decl, $match ) ) {
                                list( $rkey, $flags, $len ) = array( $match[1], $match[2], $match[3] );
-                               $bneed = $len + 2;
-                               $offset = 0;
-
-                               while ( $bneed > 0 ) {
-                                       $data = fread( $sock, $bneed );
-                                       $n = strlen( $data );
-                                       if ( $n == 0 ) {
-                                               break;
-                                       }
-                                       $offset += $n;
-                                       $bneed -= $n;
-                                       if ( isset( $ret[$rkey] ) ) {
-                                               $ret[$rkey] .= $data;
-                                       } else {
-                                               $ret[$rkey] = $data;
-                                       }
+                               $data = $this->_fread( $sock, $len + 2 );
+                               if ( $data === false ) {
+                                       return false;
                                }
-
-                               if ( $offset != $len + 2 ) {
-                                       // Something is borked!
-                                       if ( $this->_debug ) {
-                                               $this->_debugprint( sprintf( "Something is borked!  key %s expecting %d got %d length\n", $rkey, $len + 2, $offset ) );
-                                       }
-
-                                       unset( $ret[$rkey] );
-                                       $this->_close_sock( $sock );
+                               if ( substr( $data, -2 ) !== "\r\n" ) {
+                                       $this->_handle_error( $sock, 
+                                               'line ending missing from data block from $1' );
                                        return false;
                                }
+                               $data = substr( $data, 0, -2 );
+                               $ret[$rkey] = $data;
 
                                if ( $this->_have_zlib && $flags & self::COMPRESSED ) {
                                        $ret[$rkey] = gzuncompress( $ret[$rkey] );
                                }
 
-                               $ret[$rkey] = rtrim( $ret[$rkey] );
-
                                if ( $flags & self::SERIALIZED ) {
                                        $ret[$rkey] = unserialize( $ret[$rkey] );
                                }
 
                        } else {
-                               $peer = stream_socket_get_name( $sock, true /** remote **/ );
-                               $this->_debugprint( "Error parsing memcached response from [{$peer}]\n" );
-                               return 0;
+                               $this->_handle_error( $sock, 'Error parsing response from $1' );
+                               return false;
                        }
                }
        }
@@ -1010,12 +980,11 @@ class MWMemcached {
                                $flags |= self::COMPRESSED;
                        }
                }
-               if ( !$this->_safe_fwrite( $sock, "$cmd $key $flags $exp $len\r\n$val\r\n" ) ) {
-                       $this->_dead_sock( $sock );
+               if ( !$this->_fwrite( $sock, "$cmd $key $flags $exp $len\r\n$val\r\n" ) ) {
                        return false;
                }
 
-               $line = trim( fgets( $sock ) );
+               $line = $this->_fgets( $sock );
 
                if ( $this->_debug ) {
                        $this->_debugprint( sprintf( "%s %s (%s)\n", $cmd, $key, $line ) );
@@ -1052,7 +1021,6 @@ class MWMemcached {
                }
 
                if ( !$this->_connect_sock( $sock, $host ) ) {
-                       $this->_dead_host( $host );
                        return null;
                }
 
@@ -1065,51 +1033,130 @@ class MWMemcached {
        }
 
        /**
-        * @param $str string
+        * @param $text string
+        */
+       function _debugprint( $text ) {
+               global $wgDebugLogGroups;
+               if( !isset( $wgDebugLogGroups['memcached'] ) ) {
+                       # Prefix message since it will end up in main debug log file
+                       $text = "memcached: $text";
+               }
+               wfDebugLog( 'memcached', $text );
+       }
+
+       /**
+        * @param $text string
         */
-       function _debugprint( $str ) {
-               print( $str );
+       function _error_log( $text ) {
+               wfDebugLog( 'memcached-serious', "Memcached error: $text" );
        }
 
        /**
-        * Write to a stream, timing out after the correct amount of time
+        * Write to a stream. If there is an error, mark the socket dead.
         *
-        * @return Boolean: false on failure, true on success
+        * @param $sock The socket
+        * @param $buf The string to write
+        * @return bool True on success, false on failure
         */
-       /*
-       function _safe_fwrite( $f, $buf, $len = false ) {
-               stream_set_blocking( $f, 0 );
+       function _fwrite( $sock, $buf ) {
+               $bytesWritten = 0;
+               $bufSize = strlen( $buf );
+               while ( $bytesWritten < $bufSize  ) {
+                       $result = fwrite( $sock, $buf );
+                       $data = stream_get_meta_data( $sock );
+                       if ( $data['timed_out'] ) {
+                               $this->_handle_error( $sock, 'timeout writing to $1' );
+                               return false;
+                       }
+                       // Contrary to the documentation, fwrite() returns zero on error in PHP 5.3.
+                       if ( $result === false || $result === 0 ) {
+                               $this->_handle_error( $sock, 'error writing to $1' );
+                               return false;
+                       }
+                       $bytesWritten += $result;
+               }
 
-               if ( $len === false ) {
-                       wfDebug( "Writing " . strlen( $buf ) . " bytes\n" );
-                       $bytesWritten = fwrite( $f, $buf );
-               } else {
-                       wfDebug( "Writing $len bytes\n" );
-                       $bytesWritten = fwrite( $f, $buf, $len );
+               return true;
+       }
+
+       /**
+        * Handle an I/O error. Mark the socket dead and log an error.
+        */
+       function _handle_error( $sock, $msg ) {
+               $peer = stream_socket_get_name( $sock, true /** remote **/ );
+               if ( strval( $peer ) === '' ) {
+                       $peer = array_search( $sock, $this->_cache_sock );
+                       if ( $peer === false ) {
+                               $peer = '[unknown host]';
+                       }
                }
-               $n = stream_select( $r = null, $w = array( $f ), $e = null, 10, 0 );
-               #   $this->_timeout_seconds, $this->_timeout_microseconds );
+               $msg = str_replace( '$1', $peer, $msg );
+               $this->_error_log( "$msg\n" );
+               $this->_dead_sock( $sock );
+       }
 
-               wfDebug( "stream_select returned $n\n" );
-               stream_set_blocking( $f, 1 );
-               return $n == 1;
-               return $bytesWritten;
-       }*/
+       /**
+        * Read the specified number of bytes from a stream. If there is an error, 
+        * mark the socket dead.
+        *
+        * @param $sock The socket
+        * @param $len The number of bytes to read
+        * @return The string on success, false on failure.
+        */
+       function _fread( $sock, $len ) {
+               $buf = '';
+               while ( $len > 0 ) {
+                       $result = fread( $sock, $len );
+                       $data = stream_get_meta_data( $sock );
+                       if ( $data['timed_out'] ) {
+                               $this->_handle_error( $sock, 'timeout reading from $1' );
+                               return false;
+                       }
+                       if ( $result === false ) {
+                               $this->_handle_error( $sock, 'error reading buffer from $1' );
+                               return false;
+                       }
+                       if ( $result === '' ) {
+                               // This will happen if the remote end of the socket is shut down
+                               $this->_handle_error( $sock, 'unexpected end of file reading from $1' );
+                               return false;
+                       }
+                       $len -= strlen( $result );
+                       $buf .= $result;
+               }
+               return $buf;
+       }
 
        /**
-        * Original behaviour
-        * @param $f
-        * @param $buf
-        * @param $len bool
-        * @return int
+        * Read a line from a stream. If there is an error, mark the socket dead.
+        * The \r\n line ending is stripped from the response.
+        *
+        * @param $sock The socket
+        * @return The string on success, false on failure
         */
-       function _safe_fwrite( $f, $buf, $len = false ) {
-               if ( $len === false ) {
-                       $bytesWritten = fwrite( $f, $buf );
+       function _fgets( $sock ) {
+               $result = fgets( $sock );
+               // fgets() may return a partial line if there is a select timeout after
+               // a successful recv(), so we have to check for a timeout even if we 
+               // got a string response.
+               $data = stream_get_meta_data( $sock );
+               if ( $data['timed_out'] ) {
+                       $this->_handle_error( $sock, 'timeout reading line from $1' );
+                       return false;
+               }
+               if ( $result === false ) {
+                       $this->_handle_error( $sock, 'error reading line from $1' );
+                       return false;
+               }
+               if ( substr( $result, -2 ) === "\r\n" ) {
+                       $result = substr( $result, 0, -2 );
+               } elseif ( substr( $result, -1 ) === "\n" ) {
+                       $result = substr( $result, 0, -1 );
                } else {
-                       $bytesWritten = fwrite( $f, $buf, $len );
+                       $this->_handle_error( $sock, 'line ending missing in response from $1' );
+                       return false;
                }
-               return $bytesWritten;
+               return $result;
        }
 
        /**
@@ -1132,18 +1179,8 @@ class MWMemcached {
        // }}}
 }
 
-// vim: sts=3 sw=3 et
 
 // }}}
 
 class MemCachedClientforWiki extends MWMemcached {
-
-       function _debugprint( $text ) {
-               global $wgDebugLogGroups;
-               if( !isset( $wgDebugLogGroups['memcached'] ) ) {
-                       # Prefix message since it will end up in main debug log file
-                       $text = "memcached: $text";
-               }
-               wfDebugLog( 'memcached', $text );
-       }
 }
diff --git a/includes/parser/CacheTime.php b/includes/parser/CacheTime.php
new file mode 100644 (file)
index 0000000..e42c464
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+
+/**
+ * @todo document
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Parser
+ */
+class CacheTime {
+
+       var     $mVersion = Parser::VERSION,  # Compatibility check
+               $mCacheTime = '',             # Time when this object was generated, or -1 for uncacheable. Used in ParserCache.
+               $mCacheExpiry = null,         # Seconds after which the object should expire, use 0 for uncachable. Used in ParserCache.
+               $mContainsOldMagic;           # Boolean variable indicating if the input contained variables like {{CURRENTDAY}}
+
+       function getCacheTime()              { return $this->mCacheTime; }
+
+       function containsOldMagic()          { return $this->mContainsOldMagic; }
+       function setContainsOldMagic( $com ) { return wfSetVar( $this->mContainsOldMagic, $com ); }
+
+       /**
+        * setCacheTime() sets the timestamp expressing when the page has been rendered.
+        * This doesn not control expiry, see updateCacheExpiry() for that!
+        * @param $t string
+        * @return string
+        */
+       function setCacheTime( $t )          { return wfSetVar( $this->mCacheTime, $t ); }
+
+       /**
+        * Sets the number of seconds after which this object should expire.
+        * This value is used with the ParserCache.
+        * If called with a value greater than the value provided at any previous call,
+        * the new call has no effect. The value returned by getCacheExpiry is smaller
+        * or equal to the smallest number that was provided as an argument to
+        * updateCacheExpiry().
+        *
+        * @param $seconds number
+        */
+       function updateCacheExpiry( $seconds ) {
+               $seconds = (int)$seconds;
+
+               if ( $this->mCacheExpiry === null || $this->mCacheExpiry > $seconds ) {
+                       $this->mCacheExpiry = $seconds;
+               }
+
+               // hack: set old-style marker for uncacheable entries.
+               if ( $this->mCacheExpiry !== null && $this->mCacheExpiry <= 0 ) {
+                       $this->mCacheTime = -1;
+               }
+       }
+
+       /**
+        * Returns the number of seconds after which this object should expire.
+        * This method is used by ParserCache to determine how long the ParserOutput can be cached.
+        * The timestamp of expiry can be calculated by adding getCacheExpiry() to getCacheTime().
+        * The value returned by getCacheExpiry is smaller or equal to the smallest number
+        * that was provided to a call of updateCacheExpiry(), and smaller or equal to the
+        * value of $wgParserCacheExpireTime.
+        * @return int|mixed|null
+        */
+       function getCacheExpiry() {
+               global $wgParserCacheExpireTime;
+
+               if ( $this->mCacheTime < 0 ) {
+                       return 0;
+               } // old-style marker for "not cachable"
+
+               $expire = $this->mCacheExpiry;
+
+               if ( $expire === null ) {
+                       $expire = $wgParserCacheExpireTime;
+               } else {
+                       $expire = min( $expire, $wgParserCacheExpireTime );
+               }
+
+               if( $this->containsOldMagic() ) { //compatibility hack
+                       $expire = min( $expire, 3600 ); # 1 hour
+               }
+
+               if ( $expire <= 0 ) {
+                       return 0; // not cachable
+               } else {
+                       return $expire;
+               }
+       }
+
+       /**
+        * @return bool
+        */
+       function isCacheable() {
+               return $this->getCacheExpiry() > 0;
+       }
+
+       /**
+        * Return true if this cached output object predates the global or
+        * per-article cache invalidation timestamps, or if it comes from
+        * an incompatible older version.
+        *
+        * @param $touched String: the affected article's last touched timestamp
+        * @return Boolean
+        */
+       public function expired( $touched ) {
+               global $wgCacheEpoch;
+               return !$this->isCacheable() || // parser says it's uncacheable
+                       $this->getCacheTime() < $touched ||
+                       $this->getCacheTime() <= $wgCacheEpoch ||
+                       $this->getCacheTime() < wfTimestamp( TS_MW, time() - $this->getCacheExpiry() ) || // expiry period has passed
+                       !isset( $this->mVersion ) ||
+                       version_compare( $this->mVersion, Parser::VERSION, "lt" );
+       }
+
+}
\ No newline at end of file
index 291db7a..28957df 100644 (file)
@@ -3552,7 +3552,7 @@ class Parser {
                        # Get the revision
                        $rev = $id
                                ? Revision::newFromId( $id )
-                               : Revision::newFromTitle( $title );
+                               : Revision::newFromTitle( $title, 0, Revision::AVOID_MASTER );
                        $rev_id = $rev ? $rev->getId() : 0;
                        # If there is no current revision, there is no page
                        if ( $id === false && !$rev ) {
@@ -5174,7 +5174,7 @@ class Parser {
 
                # Linker does the rest
                $time = isset( $options['time'] ) ? $options['time'] : false;
-               $ret = Linker::makeImageLink2( $title, $file, $params['frame'], $params['handler'],
+               $ret = Linker::makeImageLink( $this, $title, $file, $params['frame'], $params['handler'],
                        $time, $descQuery, $this->mOptions->getThumbSize() );
 
                # Give the handler a chance to modify the parser object
index 62d3bfd..a017a54 100644 (file)
@@ -1,6 +1,7 @@
 <?php
+
 /**
- * Output of the PHP parser
+ * Output of the PHP parser.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * @file
  * @ingroup Parser
  */
-
-/**
- * @todo document
- * @ingroup Parser
- */
-class CacheTime {
-       var     $mVersion = Parser::VERSION,  # Compatibility check
-               $mCacheTime = '',             # Time when this object was generated, or -1 for uncacheable. Used in ParserCache.
-               $mCacheExpiry = null,         # Seconds after which the object should expire, use 0 for uncachable. Used in ParserCache.
-               $mContainsOldMagic;           # Boolean variable indicating if the input contained variables like {{CURRENTDAY}}
-
-       function getCacheTime()              { return $this->mCacheTime; }
-
-       function containsOldMagic()          { return $this->mContainsOldMagic; }
-       function setContainsOldMagic( $com ) { return wfSetVar( $this->mContainsOldMagic, $com ); }
-
-       /**
-        * setCacheTime() sets the timestamp expressing when the page has been rendered.
-        * This doesn not control expiry, see updateCacheExpiry() for that!
-        * @param $t string
-        * @return string
-        */
-       function setCacheTime( $t )          { return wfSetVar( $this->mCacheTime, $t ); }
-
-       /**
-        * Sets the number of seconds after which this object should expire.
-        * This value is used with the ParserCache.
-        * If called with a value greater than the value provided at any previous call,
-        * the new call has no effect. The value returned by getCacheExpiry is smaller
-        * or equal to the smallest number that was provided as an argument to
-        * updateCacheExpiry().
-        *
-        * @param $seconds number
-        */
-       function updateCacheExpiry( $seconds ) {
-               $seconds = (int)$seconds;
-
-               if ( $this->mCacheExpiry === null || $this->mCacheExpiry > $seconds ) {
-                       $this->mCacheExpiry = $seconds;
-               }
-
-               // hack: set old-style marker for uncacheable entries.
-               if ( $this->mCacheExpiry !== null && $this->mCacheExpiry <= 0 ) {
-                       $this->mCacheTime = -1;
-               }
-       }
-
-       /**
-        * Returns the number of seconds after which this object should expire.
-        * This method is used by ParserCache to determine how long the ParserOutput can be cached.
-        * The timestamp of expiry can be calculated by adding getCacheExpiry() to getCacheTime().
-        * The value returned by getCacheExpiry is smaller or equal to the smallest number
-        * that was provided to a call of updateCacheExpiry(), and smaller or equal to the
-        * value of $wgParserCacheExpireTime.
-        * @return int|mixed|null
-        */
-       function getCacheExpiry() {
-               global $wgParserCacheExpireTime;
-
-               if ( $this->mCacheTime < 0 ) {
-                       return 0;
-               } // old-style marker for "not cachable"
-
-               $expire = $this->mCacheExpiry;
-
-               if ( $expire === null ) {
-                       $expire = $wgParserCacheExpireTime;
-               } else {
-                       $expire = min( $expire, $wgParserCacheExpireTime );
-               }
-
-               if( $this->containsOldMagic() ) { //compatibility hack
-                       $expire = min( $expire, 3600 ); # 1 hour
-               }
-
-               if ( $expire <= 0 ) {
-                       return 0; // not cachable
-               } else {
-                       return $expire;
-               }
-       }
-
-       /**
-        * @return bool
-        */
-       function isCacheable() {
-               return $this->getCacheExpiry() > 0;
-       }
-
-       /**
-        * Return true if this cached output object predates the global or
-        * per-article cache invalidation timestamps, or if it comes from
-        * an incompatible older version.
-        *
-        * @param $touched String: the affected article's last touched timestamp
-        * @return Boolean
-        */
-       public function expired( $touched ) {
-               global $wgCacheEpoch;
-               return !$this->isCacheable() || // parser says it's uncacheable
-                          $this->getCacheTime() < $touched ||
-                          $this->getCacheTime() <= $wgCacheEpoch ||
-                          $this->getCacheTime() < wfTimestamp( TS_MW, time() - $this->getCacheExpiry() ) || // expiry period has passed
-                          !isset( $this->mVersion ) ||
-                          version_compare( $this->mVersion, Parser::VERSION, "lt" );
-       }
-}
-
 class ParserOutput extends CacheTime {
        var $mText,                       # The output text
                $mLanguageLinks,              # List of the full text of language links, in the order they appear
index 0e202fd..9296e3f 100644 (file)
@@ -1574,7 +1574,7 @@ class PPNode_Hash_Tree implements PPNode {
                $children = array();
                for ( $child = $this->firstChild; $child; $child = $child->nextSibling ) {
                        if ( isset( $child->name ) && $child->name === $name ) {
-                               $children[] = $name;
+                               $children[] = $child;
                        }
                }
                return $children;
index d7b0716..4ef5ca9 100644 (file)
@@ -1758,7 +1758,7 @@ class PPNode_HipHop_Tree implements PPNode {
                $children = array();
                for ( $child = $this->firstChild; $child; $child = $child->nextSibling ) {
                        if ( isset( $child->name ) && $child->name === $name ) {
-                               $children[] = $name;
+                               $children[] = $child;
                        }
                }
                return $children;
index cd467a8..b6484ce 100644 (file)
@@ -144,6 +144,7 @@ class SpecialBlock extends FormSpecialPage {
                                'tabindex' => '2',
                                'options' => self::getSuggestedDurations(),
                                'other' => $this->msg( 'ipbother' )->text(),
+                               'default' => $this->msg( 'ipb-default-expiry' )->inContentLanguage()->text(),
                        ),
                        'Reason' => array(
                                'type' => 'selectandother',
@@ -271,7 +272,7 @@ class SpecialBlock extends FormSpecialPage {
                        }
 
                        if( $block->mExpiry == 'infinity' ) {
-                               $fields['Expiry']['default'] = 'indefinite';
+                               $fields['Expiry']['default'] = 'infinite';
                        } else {
                                $fields['Expiry']['default'] = wfTimestamp( TS_RFC2822, $block->mExpiry );
                        }
index 32eb2e7..f5e1134 100644 (file)
@@ -56,6 +56,19 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         */
        protected $cacheEnabled = true;
 
+       /**
+        * Gets called after @see SpecialPage::execute.
+        *
+        * @since 1.20
+        *
+        * @param $subPage string|null
+        */
+       protected function afterExecute( $subPage ) {
+               $this->saveCache();
+
+               parent::afterExecute( $subPage );
+       }
+
        /**
         * Sets if the cache should be enabled or not.
         *
@@ -76,21 +89,23 @@ abstract class SpecialCachedPage extends SpecialPage implements ICacheHelper {
         * @param boolean|null $cacheEnabled Sets if the cache should be enabled or not.
         */
        public function startCache( $cacheExpiry = null, $cacheEnabled = null ) {
-               $this->cacheHelper = new CacheHelper();
+               if ( !isset( $this->cacheHelper ) ) {
+                       $this->cacheHelper = new CacheHelper();
 
-               $this->cacheHelper->setCacheEnabled( $this->cacheEnabled );
-               $this->cacheHelper->setOnInitializedHandler( array( $this, 'onCacheInitialized' ) );
+                       $this->cacheHelper->setCacheEnabled( $this->cacheEnabled );
+                       $this->cacheHelper->setOnInitializedHandler( array( $this, 'onCacheInitialized' ) );
 
-               $keyArgs = $this->getCacheKey();
+                       $keyArgs = $this->getCacheKey();
 
-               if ( array_key_exists( 'action', $keyArgs ) && $keyArgs['action'] === 'purge' ) {
-                       unset( $keyArgs['action'] );
-               }
+                       if ( array_key_exists( 'action', $keyArgs ) && $keyArgs['action'] === 'purge' ) {
+                               unset( $keyArgs['action'] );
+                       }
 
-               $this->cacheHelper->setCacheKey( $keyArgs );
+                       $this->cacheHelper->setCacheKey( $keyArgs );
 
-               if ( $this->getRequest()->getText( 'action' ) === 'purge' ) {
-                       $this->cacheHelper->rebuildOnDemand();
+                       if ( $this->getRequest()->getText( 'action' ) === 'purge' ) {
+                               $this->cacheHelper->rebuildOnDemand();
+                       }
                }
 
                $this->cacheHelper->startCache( $cacheExpiry, $cacheEnabled );
index 2ea030e..873c9c6 100644 (file)
@@ -177,11 +177,11 @@ class SpecialImport extends SpecialPage {
                $out = $this->getOutput();
 
                if( $user->isAllowed( 'importupload' ) ) {
-                       $out->addWikiMsg( "importtext" );
                        $out->addHTML(
                                Xml::fieldset( $this->msg( 'import-upload' )->text() ).
                                Xml::openElement( 'form', array( 'enctype' => 'multipart/form-data', 'method' => 'post',
                                        'action' => $action, 'id' => 'mw-import-upload-form' ) ) .
+                               $this->msg( 'importtext' )->parseAsBlock() .
                                Html::hidden( 'action', 'submit' ) .
                                Html::hidden( 'source', 'upload' ) .
                                Xml::openElement( 'table', array( 'id' => 'mw-import-table' ) ) .
index 7fb9dea..408d791 100644 (file)
@@ -55,6 +55,10 @@ class MostlinkedCategoriesPage extends QueryPage {
         * @param $res DatabaseResult
         */
        function preprocessResults( $db, $res ) {
+               if ( !$res->numRows() ) {
+                       return;
+               }
+
                $batch = new LinkBatch;
                foreach ( $res as $row ) {
                        $batch->add( NS_CATEGORY, $row->title );
@@ -62,10 +66,7 @@ class MostlinkedCategoriesPage extends QueryPage {
                $batch->execute();
 
                // Back to start for display
-               if ( $db->numRows( $res ) > 0 ) {
-                       // If there are no rows we get an error seeking.
-                       $db->dataSeek( $res, 0 );
-               }
+               $res->seek( 0 );
        }
 
        /**
@@ -76,7 +77,12 @@ class MostlinkedCategoriesPage extends QueryPage {
        function formatResult( $skin, $result ) {
                global $wgContLang;
 
-               $nt = Title::makeTitle( NS_CATEGORY, $result->title );
+               $nt = Title::makeTitleSafe( NS_CATEGORY, $result->title );
+               if ( !$nt ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), NS_CATEGORY, $result->title ) );
+               }
+
                $text = $wgContLang->convert( $nt->getText() );
 
                $plink = Linker::link( $nt, htmlspecialchars( $text ) );
index 370ba68..0b587dc 100644 (file)
@@ -79,13 +79,17 @@ class MostlinkedTemplatesPage extends QueryPage {
         * @param $res ResultWrapper
         */
        public function preprocessResults( $db, $res ) {
+               if ( !$res->numRows() ) {
+                       return;
+               }
+
                $batch = new LinkBatch();
                foreach ( $res as $row ) {
                        $batch->add( $row->namespace, $row->title );
                }
                $batch->execute();
-               if( $db->numRows( $res ) > 0 )
-                       $db->dataSeek( $res, 0 );
+
+               $res->seek( 0 );
        }
 
        /**
@@ -96,7 +100,11 @@ class MostlinkedTemplatesPage extends QueryPage {
         * @return String
         */
        public function formatResult( $skin, $result ) {
-               $title = Title::makeTitle( $result->namespace, $result->title );
+               $title = Title::makeTitleSafe( $result->namespace, $result->title );
+               if ( !$title ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
+               }
 
                return $this->getLanguage()->specialList(
                        Linker::link( $title ),
index 51520c8..efb5765 100644 (file)
@@ -238,7 +238,7 @@ class SpecialPasswordReset extends FormSpecialPage {
                        $user->setNewpassword( $password );
                        $user->saveSettings();
                        $passwords[] = $this->msg( 'passwordreset-emailelement', $user->getName(), $password
-                               )->inLanguage( $userLanguage )->plain(); // We'll escape the whole thing later
+                               )->inLanguage( $userLanguage )->text(); // We'll escape the whole thing later
                }
                $passwordBlock = implode( "\n\n", $passwords );
 
index accef8c..74eedc3 100644 (file)
@@ -41,10 +41,10 @@ class WithoutInterwikiPage extends PageQueryPage {
        }
 
        function getPageHeader() {
-               global $wgScript, $wgMiserMode;
+               global $wgScript;
 
-               # Do not show useless input form if wiki is running in misermode
-               if( $wgMiserMode ) {
+               # Do not show useless input form if special page is cached
+               if( $this->isCached() ) {
                        return '';
                }
 
index 455c64e..286a536 100644 (file)
@@ -43,6 +43,7 @@ class LanguageConverter {
                'shi',
                'sr',
                'tg',
+               'uz',
                'zh',
        );
 
index 96e90bf..38537b0 100644 (file)
@@ -473,7 +473,7 @@ $messages = array(
 'tog-editsection' => 'مكن تعديل الأقسام عن طريق وصلات [عدل]',
 'tog-editsectiononrightclick' => 'فعل تعديل الأقسام بواسطة كبسة الفأرة اليمين على عناوين الأقسام (جافاسكريبت)',
 'tog-showtoc' => 'اعرض فهرس المحتويات (للصفحات التي تحتوي على أكثر من 3 عناوين)',
-'tog-rememberpassword' => 'تذÙ\83ر Ø¯Ø®Ù\88Ù\84Ù\8a Ø¹Ù\84Ù\89 Ù\87ذا Ø§Ù\84Ù\85تصÙ\81Ø­ (Ø¥Ù\84Ù\89 {{PLURAL:$1||Ù\8aÙ\88Ù\85 Ù\88احد|Ù\8aÙ\88Ù\85Ù\8aÙ\86|$1 Ø£Ù\8aاÙ\85|$1 Ù\8aÙ\88Ù\85Ù\8bا|$1 Ù\8aÙ\88Ù\85}} Ù\83حد Ø£Ù\82صÙ\89)',
+'tog-rememberpassword' => 'تذÙ\83ر Ø¯Ø®Ù\88Ù\84Ù\8a Ø¨Ù\87ذا Ø§Ù\84Ù\85تصÙ\81Ø­ (Ù\84Ù\85دة Ø£Ù\82صاÙ\87ا {{PLURAL:$1||Ù\8aÙ\88Ù\85 Ù\88احد|Ù\8aÙ\88Ù\85اÙ\86|$1 Ø£Ù\8aاÙ\85|$1 Ù\8aÙ\88Ù\85ا|$1 Ù\8aÙ\88Ù\85}})',
 'tog-watchcreations' => 'أضف الصفحات التي أنشئها والملفات التي أرفعها إلى قائمة مراقبتي.',
 'tog-watchdefault' => '!!أضف الصفحات والملفات التي أعدلها إلى قائمة مراقبتي',
 'tog-watchmoves' => 'أضف الصفحات والملفات التي أنقلها إلى قائمة مراقبتي',
@@ -876,7 +876,7 @@ $2',
 'yourname' => 'اسم المستخدم:',
 'yourpassword' => 'كلمة السر:',
 'yourpasswordagain' => 'أعد كتابة كلمة السر:',
-'remembermypassword' => 'تذÙ\83ر Ø¯Ø®Ù\88Ù\84Ù\8a Ø¹Ù\84Ù\89 Ù\87ذا Ø§Ù\84حاسÙ\88ب (Ø¥Ù\84Ù\89 {{PLURAL:$1||Ù\8aÙ\88Ù\85 Ù\88احد|Ù\8aÙ\88Ù\85Ù\8aÙ\86|$1 Ø£Ù\8aاÙ\85|$1 Ù\8aÙ\88Ù\85Ù\8bا|$1 Ù\8aÙ\88Ù\85}} Ù\83حد Ø£Ù\82صÙ\89)',
+'remembermypassword' => 'تذÙ\83ر Ø¯Ø®Ù\88Ù\84Ù\8a Ø¨Ù\87ذا Ø§Ù\84Ù\85تصÙ\81Ø­ (Ù\84Ù\85دة Ø£Ù\82صاÙ\87ا {{PLURAL:$1||Ù\8aÙ\88Ù\85 Ù\88احد|Ù\8aÙ\88Ù\85اÙ\86|$1 Ø£Ù\8aاÙ\85|$1 Ù\8aÙ\88Ù\85ا|$1 Ù\8aÙ\88Ù\85}})',
 'securelogin-stick-https' => 'ابقَ في اتصال HTTPS بعد الدخول.',
 'yourdomainname' => 'نطاقك:',
 'externaldberror' => 'هناك إما خطأ في دخول قاعدة البيانات الخارجية أو أنه غير مسموح لك بتحديث حسابك الخارجي.',
@@ -888,12 +888,12 @@ $2',
 'logout' => 'اخرج',
 'userlogout' => 'اخرج',
 'notloggedin' => 'غير مسجل الدخول',
-'nologin' => "ألا تمتلك حسابا؟ '''$1'''.",
+'nologin' => "ليس لديك حساب؟ '''$1'''.",
 'nologinlink' => 'أنشئ حسابا',
 'createaccount' => 'أنشئ حسابا',
-'gotaccount' => "تمتلك حسابا بالفعل؟ '''$1'''.",
+'gotaccount' => "لديك حساب؟ '''$1'''.",
 'gotaccountlink' => 'لُج',
-'userlogin-resetlink' => 'أنسيت بيانات الولوج؟',
+'userlogin-resetlink' => 'نسيت تفاصيل الدخول؟',
 'createaccountmail' => 'بواسطة البريد الإلكتروني',
 'createaccountreason' => 'السبب:',
 'badretype' => 'كلمات السر التي أدخلتها لا تتطابق.',
index 483fc39..bffa749 100644 (file)
@@ -1359,6 +1359,7 @@ $1",
 'right-writeapi' => 'ৰাইট এ.পি.আই.ৰ ব্যৱহাৰ',
 'right-delete' => 'পৃষ্ঠাসমূহ বিলোপ কৰক',
 'right-bigdelete' => 'অতিৰিক্ত ইতিহাস থকা পৃষ্ঠাসমূহ বিলোপ কৰক',
+'right-deletelogentry' => "নিৰ্দিষ্ট ল'গ ভুক্তি বিলোপ কৰক বা ঘূৰাই অনক।",
 'right-deleterevision' => 'পৃষ্ঠাসমূহৰ নিৰ্দিষ্ট সংশোধনী বিলোপ আৰু পুনৰুদ্ধাৰ কৰক',
 'right-deletedhistory' => 'বিলোপ কৰা ইতিহাসৰ ভৰ্তি সংশ্লিষ্ট লেখা অবিহনে চাওক',
 'right-deletedtext' => 'বিলোপ কৰা লেখা আৰু বিলোপ কৰা সংশোধনসমূহৰ মাজত হোৱা সালসলনি চাওক',
@@ -3744,6 +3745,7 @@ $5
 'api-error-emptypage' => 'নতুন, খালী পৃষ্ঠা সৃষ্টি কৰিবলৈ অনুমতি নাই।',
 'api-error-fetchfileerror' => 'আভ্যন্তৰীণ ত্ৰুটি: ফাইলটো অনাত কিবা সমস্যা হৈছে।',
 'api-error-fileexists-forbidden' => '"$1" নামৰ এখন নথি আগৰ পৰাই উপলদ্ধ আৰু ইয়াৰ পুনৰ লিখন অসম্ভৱ ।',
+'api-error-fileexists-shared-forbidden' => 'উমৈহতীয়া ফাইল ভঁৰালত "$1" নামৰ ফাইল এটা আছেই, ইয়াৰ ওপৰত লিখিব নোৱাৰি।',
 'api-error-file-too-large' => 'আপুনি দাখিল কৰা ফাইলখন বৰ ডাঙৰ ।',
 'api-error-filename-tooshort' => 'ফাইলৰ নামটো অতি চুটি।',
 'api-error-filetype-banned' => 'এই ধৰণৰ ফাইল নিষিদ্ধ।',
index e4bc2a3..03c79c8 100644 (file)
@@ -476,6 +476,7 @@ Nun t'escaezas d'escoyer les tos [[Special:Preferences|preferencies de {{SITENAM
 'remembermypassword' => "Recordar la mio identificación nesti restolador (un máximu {{PLURAL:$1|d'un día|de $1 díes}})",
 'securelogin-stick-https' => "Siguir coneutáu al HTTPS dempués d'identificase",
 'yourdomainname' => 'El to dominiu:',
+'password-change-forbidden' => 'Nun se pueden camudar les contraseñes nesta wiki.',
 'externaldberror' => "O hebo un fallu d'autenticación de la base de datos o nun tienes permisu p'anovar la to cuenta esterna.",
 'login' => 'Identificase',
 'nav-login-createaccount' => 'Identificase / crear una cuenta',
@@ -2192,6 +2193,8 @@ obra con precaución.",
 'rollback' => 'Revertir ediciones',
 'rollback_short' => 'Revertir',
 'rollbacklink' => 'revertir',
+'rollbacklinkcount' => 'revertir $1 {{PLURAL:$1|edición|ediciones}}',
+'rollbacklinkcount-morethan' => 'revertir más de $1 {{PLURAL:$1|edición|ediciones}}',
 'rollbackfailed' => 'Falló la reversión',
 'cantrollback' => "Nun se pue revertir la edición; el postrer collaborador ye l'únicu autor d'esta páxina.",
 'alreadyrolled' => 'Nun se pue revertir la postrer edición de [[:$1]] fecha por [[User:$2|$2]] ([[User talk:$2|alderique]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
index cdc33c6..f40149e 100644 (file)
@@ -766,8 +766,11 @@ $3 tərəfindən verilən səbəb ''$2''",
 'last' => 'son',
 'page_first' => 'birinci',
 'page_last' => 'sonuncu',
-'histlegend' => "Fərqə bax: müqayisə etmək istədiyiniz versiyaların yanındakı dairələri işarələyin və \"Enter\"ə və ya \"müqayisə et\" düyməsinə basın.<br />
-Açıqlama: '''(hh)''' — hal-hazırkı versiya ilə aradakı fərq, '''(son)''' — əvvəlki versiya ilə aradakı fərq, '''k''' — kiçik redaktə.",
+'histlegend' => "<div id=\"histlegend\"><span style=\"white-space:nowrap;\">Aşağıda sadalanan hər hansı bir versiyası görmək üçün, tarixinin üzərinə tıklayın.</span> <span style=\"white-space:nowrap;\">Daha çox kömək üçün, [[Kömək:Səhifə keçmişi|səhifə keçmişi]] səhifəsinə baxın.</span><br /><span style=\"white-space:nowrap;\">Xarici vasitələr: <!-- [http://toolserver.org/~tparis/articleinfo/index.php?article={{FULLPAGENAMEE}}&lang=tr&wiki=wikipedia Təftiş keçmişinin statistikası] '''·'''</span> <span style=\"white-space:nowrap;\"> -->[http://wikipedia.ramselehof.de/wikiblame.php?lang=tr&article={{FULLPAGENAMEE}} Təftiş keçmişini axtarmaq] '''·'''</span> <span style=\"white-space:nowrap;\">[http://toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=tr&wikifam=.wikipedia.org&grouped=on&page={{FULLPAGENAMEE}} Töhfəsi olanlar] '''·'''</span> <span style=\"white-space:nowrap;\">[http://toolserver.org/~mzmcbride/cgi-bin/watcher.py?db=trwiki_p&titles={{FULLPAGENAMEE}} İzləyənlərin sayı] '''·'''</span> <span style=\"white-space:nowrap;\">[http://stats.grok.se/tr/latest/{{FULLPAGENAMEE}} Səhifəyə baxılma statistikası]</span></div>
+----
+Fərqləri seçmə və göstərmə: müqayisə etmək istədiyiniz versiyaların yanındakı radio qutularına işarə qoyun və daxil etmə düyməsinə (enter+a) və ya \"müqayisə et\" düyməsinə vurun.
+
+Açıqlama: '''(hh)''' = hal-hazırkı versiya ilə olan fərqlər, '''(son)''' = əvvəlki versiya ilə olan fərqlər, '''k''' = kiçik redaktələr.</span>",
 'history-fieldset-title' => 'Tarixçəni nəzərdən keçir',
 'history-show-deleted' => 'Yalnız silinənlər',
 'histfirst' => 'Ən əvvəlki',
@@ -1452,7 +1455,11 @@ $1',
 'filedelete-reason-otherlist' => 'Başqa səbəb',
 'filedelete-reason-dropdown' => '*Əsas silmə səbəbi
 ** Müəllif hüququ pozuntusu
-** Dublikat fayl',
+** Dublikat fayl
+** Keyfiyyətsiz şəkil
+** İstifadəsiz fayl
+** Qeyri-ensiklopedik şəxs
+** Lisenziyasız fayl',
 'filedelete-edit-reasonlist' => 'Silmə səbəblərini redaktə et',
 
 # MIME search
index ac31cef..ad4bf7b 100644 (file)
@@ -669,6 +669,7 @@ $2',
 'remembermypassword' => 'Запомніць мяне на гэтым кампутары (ня больш за $1 {{PLURAL:$1|дзень|дні|дзён}})',
 'securelogin-stick-https' => 'Утрымліваць злучэньне праз HTTPS пасьля ўваходу ў сыстэму',
 'yourdomainname' => 'Ваш дамэн:',
+'password-change-forbidden' => 'Вы ня можаце зьмяняць паролі ў гэтай вікі.',
 'externaldberror' => 'Адбылася памылка аўтэнтыфікацыі з дапамогай вонкавай базы зьвестак, ці Вам не дазволена абнаўляць свой рахунак.',
 'login' => 'Увайсьці',
 'nav-login-createaccount' => 'Уваход / стварэньне рахунку',
@@ -2338,6 +2339,8 @@ $UNWATCHURL
 'rollback' => 'Адкаціць рэдагаваньні',
 'rollback_short' => 'Адкат',
 'rollbacklink' => 'адкат',
+'rollbacklinkcount' => 'адкаціць $1 {{PLURAL:$1|рэдагаваньне|рэдагаваньні|рэдагаваньняў}}',
+'rollbacklinkcount-morethan' => 'адкаціць больш за $1 {{PLURAL:$1|рэдагаваньне|рэдагаваньні|рэдагаваньняў}}',
 'rollbackfailed' => 'Памылка адкату',
 'cantrollback' => 'Немагчыма адкаціць зьмену; апошні рэдактар — адзіны аўтар гэтай старонкі.',
 'alreadyrolled' => 'Немагчыма адкаціць апошнюю зьмену [[:$1]], якую {{GENDER:$2|зрабіў|зрабіла}} [[User:$2|$2]] ([[User talk:$2|гутаркі]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); нехта іншы ўжо зьмяніў старонку альбо адкаціў зьмены.
index e49fbbf..3ce48ff 100644 (file)
@@ -244,8 +244,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Скриване на патрулираните редакции от списъка с последните промени',
 'tog-newpageshidepatrolled' => 'Скриване на патрулираните редакции от списъка на новите страници',
 'tog-extendwatchlist' => 'Разширяване на списъка, така че да показва всички промени, не само най-скорошните',
-'tog-usenewrc' => 'Групиране по страници на последни промени и списък с наблюдение. 
-Подобряване на последните промени (изисква Джаваскрипт)',
+'tog-usenewrc' => 'Групиране на последните промени и списъка за наблюдение по страници (изисква Джаваскрипт)',
 'tog-numberheadings' => 'Номериране на заглавията',
 'tog-showtoolbar' => 'Помощна лента за редактиране (изисква Джаваскрипт)',
 'tog-editondblclick' => 'Редактиране при двойно щракване (изисква Джаваскрипт)',
@@ -254,7 +253,7 @@ $messages = array(
 'tog-showtoc' => 'Показване на съдържание (за страници с повече от три раздела)',
 'tog-rememberpassword' => 'Запомяне на паролата ми в този браузър (за не повече от $1 {{PLURAL:$1|ден|дни}})',
 'tog-watchcreations' => 'Добавяне на създадените от мен страници и качените от мен файлове към списъка ми за наблюдение',
-'tog-watchdefault' => 'Ð\94обавÑ\8fне Ð½Ð° Ñ\80едакÑ\82иÑ\80аниÑ\82е Ð¾Ñ\82 Ð¼ÐµÐ½ Ñ\81Ñ\82Ñ\80аниÑ\86и ÐºÑ\8aм списъка ми за наблюдение',
+'tog-watchdefault' => 'Ð\94обавÑ\8fне Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е, ÐºÐ¾Ð¸Ñ\82о Ñ\80едакÑ\82иÑ\80ам, Ð² списъка ми за наблюдение',
 'tog-watchmoves' => 'Добавяне на преместените от мен страници към списъка ми за наблюдение',
 'tog-watchdeletion' => 'Добавяне на изтритите от мен страници към списъка ми за наблюдение',
 'tog-minordefault' => 'Отбелязване на всички промени като малки по подразбиране',
@@ -1179,7 +1178,7 @@ $1",
 # Diffs
 'history-title' => 'Преглед на историята на „$1“',
 'difference-title' => 'Разлика между версии на „$1“',
-'difference-title-multipage' => 'Ð\9fоказване Ð½Ð° Ñ\80азликаÑ\82а Ð¼ÐµÐ¶Ð´Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е "$1" Ð¸ "$2"',
+'difference-title-multipage' => 'Разлики Ð¼ÐµÐ¶Ð´Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е â\80\9e$1â\80\9c Ð¸ â\80\9e$2â\80\9c',
 'difference-multipage' => '(Разлики между страниците)',
 'lineno' => 'Ред $1:',
 'compareselectedversions' => 'Сравнение на избраните версии',
@@ -2745,7 +2744,7 @@ $1',
 'import-logentry-interwiki-detail' => '{{PLURAL:$1|една версия|$1 версии}} на $2 бяха внесени',
 
 # JavaScriptTest
-'javascripttest-disabled' => 'Тази функция не е достъпна в това уики.',
+'javascripttest-disabled' => 'Тази функционалност не е активирана в това уики.',
 'javascripttest-pagetext-noframework' => 'Тази страница е запазена за изпълнение на Джаваскрипт тестове.',
 'javascripttest-qunit-intro' => 'Вижте [$1 тестовата документация] на mediawiki.org.',
 
index 59d85ce..0c7e8b2 100644 (file)
@@ -606,6 +606,7 @@ No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITEN
 'remembermypassword' => 'Recorda la contrasenya entre sessions (per un màxim de $1 {{PLURAL:$1|dia|dies}})',
 'securelogin-stick-https' => "Roman connectat via HTTPS desprès d'autenticar-se",
 'yourdomainname' => 'El vostre domini',
+'password-change-forbidden' => 'No podeu canviar les contrasenyes en aquest wiki.',
 'externaldberror' => "Hi ha hagut una fallida en el servidor d'autenticació externa de la base de dades i no teniu permís per a actualitzar el vostre compte d'accès extern.",
 'login' => 'Inici de sessió',
 'nav-login-createaccount' => 'Inicia una sessió / crea un compte',
@@ -2251,6 +2252,8 @@ Vegeu $2 per a un registre dels esborrats més recents.',
 'rollback' => 'Reverteix edicions',
 'rollback_short' => 'Revoca',
 'rollbacklink' => 'Reverteix',
+'rollbacklinkcount' => 'reverteix $1 {{PLURAL:$1|edició|edicions}}',
+'rollbacklinkcount-morethan' => 'reverteix més de $1 {{PLURAL:$1|edició|edicions}}',
 'rollbackfailed' => "No s'ha pogut revocar",
 'cantrollback' => "No s'ha pogut revertir les edicions; el darrer coŀlaborador és l'únic autor de la pàgina.",
 'alreadyrolled' => "No es pot revertir la darrera modificació de [[:$1]]
index a4fd73e..316a04b 100644 (file)
@@ -2420,6 +2420,8 @@ Rady a kontakt:
 'rollback' => 'Vrátit zpět editace',
 'rollback_short' => 'Vrátit zpět',
 'rollbacklink' => 'vrácení zpět',
+'rollbacklinkcount' => 'vrácení $1 {{PLURAL:$1|editace|editací}} zpět',
+'rollbacklinkcount-morethan' => 'vrácení více než $1 {{PLURAL:$1|editace|editací}} zpět',
 'rollbackfailed' => 'Nešlo vrátit zpět',
 'cantrollback' => 'Nelze vrátit zpět poslední editaci, neboť poslední přispěvatel je jediným autorem této stránky.',
 'alreadyrolled' => 'Nelze vrátit zpět poslední editaci [[:$1]] od uživatele [[User:$2|$2]] ([[User talk:$2|diskuse]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]), protože někdo jiný již stránku editoval nebo vrátil tuto změnu zpět.
index 8edcbe4..e17b152 100644 (file)
@@ -132,17 +132,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Galluogi golygu adran drwy dde-glicio ar bennawd yr adran (JavaScript)',
 'tog-showtoc' => 'Dangos y daflen gynnwys (ar gyfer tudalennau sydd â mwy na 3 pennawd)',
 'tog-rememberpassword' => "Y porwr hwn i gofio'r manylion mewngofnodi (hyd at $1 {{PLURAL:$1||diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}})",
-'tog-watchcreations' => 'Ychwanegu tudalennau at fy rhestr wylio wrth i mi eu creu',
-'tog-watchdefault' => 'Ychwanegu tudalennau at fy rhestr wylio wrth i mi eu golygu',
-'tog-watchmoves' => 'Ychwanegu tudalennau at fy rhestr wylio wrth i mi eu symud',
-'tog-watchdeletion' => 'Ychwanegu tudalennau at fy rhestr wylio wrth i mi eu dileu',
+'tog-watchcreations' => 'Ychwanegu tudalennau at fy rhestr wylio wrth i mi eu creu a ffeiliau wrth i mi eu huwchlwytho.',
+'tog-watchdefault' => 'Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu golygu',
+'tog-watchmoves' => 'Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu symud',
+'tog-watchdeletion' => 'Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu dileu',
 'tog-minordefault' => 'Marcio pob golygiad fel un bach yn ddiofyn',
 'tog-previewontop' => 'Dangos y rhagolwg cyn y blwch golygu',
 'tog-previewonfirst' => 'Dangos rhagolwg ar y golygiad cyntaf',
 'tog-nocache' => 'Analluogi storio tudalennau yng nghelc y porydd',
-'tog-enotifwatchlistpages' => 'Gyrru e-bost ataf pan fo newid i dudalen ar fy rhestr wylio',
+'tog-enotifwatchlistpages' => 'Gyrru e-bost ataf pan fo newid i dudalen neu ffeil ar fy rhestr wylio',
 'tog-enotifusertalkpages' => "Gyrru e-bost ataf fy hunan pan fo newid i'm tudalen sgwrs",
-'tog-enotifminoredits' => 'Gyrru e-bost ataf hefyd ar gyfer golygiadau bychain i dudalennau',
+'tog-enotifminoredits' => 'Gyrru e-bost ataf hefyd ar gyfer golygiadau bychain i dudalennau a ffeiliau',
 'tog-enotifrevealaddr' => 'Datguddio fy nghyfeiriad e-bost mewn e-byst hysbysu',
 'tog-shownumberswatching' => "Dangos y nifer o ddefnyddwyr sy'n gwylio",
 'tog-oldsig' => 'Llofnod cyfredol:',
@@ -473,6 +473,8 @@ A fyddech gystal â gwneud adroddiad ar hwn at [[Special:ListUsers/sysop|weinydd
 'cannotdelete' => "Mae'n amhosib dileu'r dudalen neu'r ddelwedd \"\$1\".
 Efallai fod rhywun arall eisoes wedi'i dileu.",
 'cannotdelete-title' => "Ni ellir dileu'r dudalen '$1'",
+'delete-hook-aborted' => 'Terfynwyd y dilead cyn pryd gan fachyn.
+Ni roddodd eglurhad.',
 'badtitle' => 'Teitl gwael',
 'badtitletext' => "Mae'r teitl a ofynnwyd amdano yn annilys, yn wag, neu cysylltu'n anghywir rhwng ieithoedd neu wicïau. Gall fod ynddo un nod neu ragor na ellir eu defnyddio mewn teitlau.",
 'perfcached' => "Mae'r wybodaeth ganlynol yn gopi cadw; mae'n bosib nad y fersiwn diweddaraf ydyw. Cedwir hyd at {{PLURAL:$1||un canlyniad yn unig|ddau ganlyniad|dri canlyniad|$1 chanlyniad|$1 canlyniad}} yn y copi cadw.",
@@ -1633,6 +1635,7 @@ Os yw'r broblem yn parhau, cysylltwch â [[Special:ListUsers/sysop|gweinyddwr]].
 'lockmanager-fail-releaselock' => 'Wedi methu agor y clo ar "$1".',
 'lockmanager-fail-db-bucket' => 'Methwyd cysylltu â digon o gronfeydd data cloi yn y bwced $1.',
 'lockmanager-fail-db-release' => 'Wedi methu agor y cloion ar y gronfa ddata $1.',
+'lockmanager-fail-svr-acquire' => 'Wedi methu sicrhau cloion ar y gweinydd $1.',
 'lockmanager-fail-svr-release' => 'Wedi methu agor y cloion ar y gweinydd $1.',
 
 # ZipDirectoryReader
@@ -3678,6 +3681,8 @@ Dangosir delweddau ar eu maint llawn, dechreuir ffeiliau o fathau eraill yn unio
 'api-error-empty-file' => "Mae'r ffeil a gyflwynwyd gennych yn wag.",
 'api-error-emptypage' => "Ni chaniateir dechrau tudalen newydd, a honno'n wag.",
 'api-error-fetchfileerror' => "Gwall mewnol: aeth rhywbeth o'i le tra'n cywain y ffeil.",
+'api-error-fileexists-forbidden' => 'Mae ffeil o\'r enw "$1" ar gael yn barod, ac ni ellir ei throsysgrifo.',
+'api-error-fileexists-shared-forbidden' => 'Mae ffeil o\'r enw "$1" eisoes ar gael yn y storfa ffeiliau gyfrannol, ac ni ellir ei throsysgrifo.',
 'api-error-file-too-large' => "Mae'r ffeil a gyflwynwyd gennych yn rhy fawr.",
 'api-error-filename-tooshort' => "Mae enw'r ffeil yn rhy fyr.",
 'api-error-filetype-banned' => "Mae'r math hwn o ffeil wedi ei wahardd.",
@@ -3716,6 +3721,4 @@ Dangosir delweddau ar eu maint llawn, dechreuir ffeiliau o fathau eraill yn unio
 'duration-centuries' => '$1 {{PLURAL:$1|canmlwydd|ganmlwydd|ganmlwydd|canmlwydd|chanmlwydd|canmlwydd}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milflwydd|filflwydd|filflwydd|milflwydd|milflwydd|milflwydd}}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Wedi methu sicrhau cloion ar y gweinydd $1.',
 );
index f4ae154..6b3d950 100644 (file)
@@ -814,6 +814,7 @@ Vergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] anzupass
 'remembermypassword' => 'Mit diesem Browser dauerhaft angemeldet bleiben (maximal $1 {{PLURAL:$1|Tag|Tage}})',
 'securelogin-stick-https' => 'Nach dem Anmelden mit HTTPS verbunden bleiben',
 'yourdomainname' => 'Deine Domain:',
+'password-change-forbidden' => 'Du kannst auf diesem Wiki keine Passwörter ändern.',
 'externaldberror' => 'Entweder es liegt ein Fehler bei der externen Authentifizierung vor oder du darfst dein externes Benutzerkonto nicht aktualisieren.',
 'login' => 'Anmelden',
 'nav-login-createaccount' => 'Anmelden / Benutzerkonto erstellen',
@@ -2132,10 +2133,9 @@ Vielleicht möchtest du die Beschreibung auf der dortigen [$2 Dateibeschreibungs
 
 'disambiguations' => 'Seiten die auf Begriffsklärungsseiten verlinken',
 'disambiguationspage' => 'Template:Begriffsklärung',
-'disambiguations-text' => 'Die folgenden Seiten verlinken auf eine Seite zur Begriffsklärung. Sie sollten statt dessen auf die eigentlich gemeinte Seite verlinken.
+'disambiguations-text' => "Die folgenden Seiten enthalten mindestens einen Link zur einer '''Begriffsklärungsseite'''. Sie sollten möglicherweise auf die eigentlich gemeinte Seite verlinken.
 
-Eine Seite gilt als Begriffsklärungsseite, wenn sie eine der in [[MediaWiki:Disambiguationspage]] aufgeführte(n) Vorlage(n) einbindet.<br />
-Links aus Namensräumen werden hier nicht aufgelistet.',
+Eine Seite gilt als Begriffsklärungsseite, wenn sie mindestens eine der auf [[MediaWiki:Disambiguationspage]] aufgeführten Vorlagen enthält.",
 
 'doubleredirects' => 'Doppelte Weiterleitungen',
 'doubleredirectstext' => 'Diese Liste enthält Weiterleitungen, die auf Weiterleitungen verlinken.
@@ -2469,6 +2469,8 @@ Rückmeldungen und weitere Hilfe: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'rollback' => 'Zurücksetzen der Änderungen',
 'rollback_short' => 'Zurücksetzen',
 'rollbacklink' => 'Zurücksetzen',
+'rollbacklinkcount' => '{{PLURAL:$1|Eine Version|$1 Versionen}} zurücksetzen',
+'rollbacklinkcount-morethan' => 'Mehr als {{PLURAL:$1|eine Version|$1 Versionen}} zurücksetzen',
 'rollbackfailed' => 'Zurücksetzen gescheitert',
 'cantrollback' => 'Die Änderung kann nicht zurückgesetzt werden, da es keine früheren Autoren gibt.',
 'alreadyrolled' => 'Das Zurücksetzen der Änderungen von [[User:$2|$2]] ([[User talk:$2|Diskussion]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) an [[:$1]] ist gescheitert, da in der Zwischenzeit ein anderer Benutzer die Seite geändert hat.
index ee4b08b..e1e0924 100644 (file)
@@ -405,7 +405,7 @@ $messages = array(
 
 'about' => 'Heqa',
 'article' => 'Wesiqe',
-'newwindow' => '(zerrey pençereyê dê newey de beno a)',
+'newwindow' => '(Teqa da newi de abêno)',
 'cancel' => 'Bıterkne',
 'moredotdotdot' => 'Vêşêri...',
 'mypage' => 'Pela mı',
@@ -508,7 +508,7 @@ $1',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'Heqa {{SITENAME}} de',
-'aboutpage' => 'Project:Heqa',
+'aboutpage' => 'Project:Heqdê cı',
 'copyright' => 'Zerrek bınê $1 dero.',
 'copyrightpage' => '{{ns:project}}:Heqa telifi',
 'currentevents' => 'Veng u vac',
@@ -558,7 +558,7 @@ $1',
 'thisisdeleted' => 'Bıvêne ya zi $1 peyser bia?',
 'viewdeleted' => '$1 bıvêne?',
 'restorelink' => '{{PLURAL:$1|yew vurnayışo esterıte|$1 vurnayışê esterıtey}}',
-'feedlinks' => 'Cı resne:',
+'feedlinks' => 'Warikerdış:',
 'feed-invalid' => 'Qeydey cıresnayışê  beğşi nêvêreno.',
 'feed-unavailable' => 'Cıresnayışê şebekey çıniyê',
 'site-rss-feed' => '$1 Cıresnayışê RSSi',
@@ -695,6 +695,7 @@ Hesabê şıma biyo a.
 'remembermypassword' => 'Parola mı nê cıgeyraoği de biya xo viri (heta $1 {{PLURAL:$1|roc|roci}}).',
 'securelogin-stick-https' => "Dekewtış kerdışi dıma HTTPS'i dı grêdaye bıman",
 'yourdomainname' => 'Nameyê şıma yo meydani',
+'password-change-forbidden' => 'Şıma na wiki de nêşenê parola bıvurnê.',
 'externaldberror' => 'Ya database de xeta esta ya zi heqê şıma çino şıma no hesab bıvurni.',
 'login' => 'Cı kewe',
 'nav-login-createaccount' => 'Dekew de / hesab vıraze',
@@ -863,13 +864,13 @@ Parola vêrdiye: $2',
 # Edit pages
 'summary' => 'Xulasa:',
 'subject' => 'Mewzu/serrêze:',
-'minoredit' => 'Vurnayışo qıckeko',
+'minoredit' => 'Vurnayışo werdı',
 'watchthis' => 'Ena pele seyr ke',
-'savearticle' => 'Ena pele qeyd ke',
+'savearticle' => 'Peler qeyd ke',
 'preview' => 'Verqayt',
-'showpreview' => 'Verqayti bımocne',
+'showpreview' => 'Verqayti bıvin',
 'showlivepreview' => 'Verqayto cıwın',
-'showdiff' => 'Vurnayışan bımocne',
+'showdiff' => 'Vurnayışa bıvin',
 'anoneditwarning' => 'Teme!: Şıma bı hesabê xo nıkewtê cı. Hurêndiya namey şıma dı IP-adresa şıma qeyd bena u asena.',
 'anonpreviewwarning' => "''Ti hama nicikewte. Qeyd kerdiş zerre tarixê pele de adresê IP yê tu keyd keno.''",
 'missingsummary' => "'''DİQET:''' Şıma kılmnuşte nıkerd.
@@ -1268,7 +1269,7 @@ no vurnayişo ke şıma keni kontrol bıkere yew pelo kehen nêbo.',
 'searchprofile-images-tooltip' => 'Dosya cı geyr',
 'searchprofile-everything-tooltip' => 'Tedeestey hemine cı geyre (pelanê mınaqeşey zi tey)',
 'searchprofile-advanced-tooltip' => 'qe cayê nimeyî bigêre',
-'search-result-size' => '$1 ({{PLURAL:$2|1 Ã\87ekuy|$2 çekuyê}})',
+'search-result-size' => '$1 ({{PLURAL:$2|1 Ã§ekuyo|$2 çekuyê}})',
 'search-result-category-size' => '{{PLURAL:$1|1 eza|$1 ezayan}} ({{PLURAL:$2|1 ketegoriyê bini|$2 kategiryanê binan}}, {{PLURAL:$3|1 dosya|$3 dosyayan}})',
 'search-result-score' => 'Eleqa: $1%',
 'search-redirect' => '(ber $1)',
@@ -1374,7 +1375,7 @@ Etıya şıma rê yew kılito raştameo ke şıma şenê bıgurenê/bıxebetnê:
 'timezoneregion-europe' => 'Ewrope',
 'timezoneregion-indian' => 'Okyanuso Hind',
 'timezoneregion-pacific' => 'Okyanuso Pasifik',
-'allowemail' => 'Karberanê binan ra e-mail qebul bıke',
+'allowemail' => 'Karberê bini wa bışê mı rê e-posta bırışê.',
 'prefs-searchoptions' => 'Tercihê cıgeyrayışi',
 'prefs-namespaces' => 'Caê namey',
 'defaultns' => 'Eke heni, enê cayanê namey de cı geyre (sae ke):',
@@ -1403,7 +1404,7 @@ Na game tepeya nêerziyena.',
 'badsig' => 'Îmzayê tu raşt niyo.
 Etiketê HTMLî kontrol bike.',
 'badsiglength' => 'İmzayê şıma zaf dergo.
-$1 gani bınê no {{PLURAL:$1|karakter|karakter}}de bıbo.',
+$1 gani bınê no {{PLURAL:$1|karakter|karakter}} de bıbo.',
 'yourgender' => 'Neri makey:',
 'gender-unknown' => 'Cınsiyet nêvato',
 'gender-male' => 'cıwamêrd',
@@ -1939,7 +1940,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 
 # File reversion
 'filerevert' => '$1 reyna biyere',
-'filerevert-legend' => 'Dosya reyna biyere',
+'filerevert-legend' => 'Dosya ber weziyet do verên',
 'filerevert-intro' => "Ti ho ena dosyayê '''[[Media:$1|$1]]'''î  [$4 versiyonê $3, $2] rê reyna anî.",
 'filerevert-comment' => 'Sebeb:',
 'filerevert-defaultcomment' => 'Versiyonê $2, $1 rê reyna ard',
@@ -2015,7 +2016,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 
 'disambiguations' => 'Pelayê ke maneyo bini rê gırey cı esto',
 'disambiguationspage' => 'Template:disambig',
-'disambiguations-text' => 'satıro ewwil de ke peli ca genî; gıreyê pelê ciya-manayi mocneni. İkinci sırada <br />tiya de [[MediaWiki:Disambiguationspage]] gani heme gıreyê şablonê ciya-manayan  re gıre bıdiyo',
+'disambiguations-text' => "Peleyê ke satır da sıteyên dı pelanê '''maneo bin'''i rê esteyina zeregri mocnenê. Nara satırda dıdın dı zi <br />tiya de [[MediaWiki:Disambiguationspage|Pelaya Maneo do bini ]] gani heme gıreyê şablonê ciya-manayan re gıre dayış icab keno.",
 
 'doubleredirects' => 'Hetenayışê dıletıni',
 'doubleredirectstext' => 'no pel pelê ray motışani liste keno.
@@ -2136,7 +2137,7 @@ tipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyn
 'allnotinnamespace' => 'Pelanê hemî ($1 cayênameyî de niyo)',
 'allpagesprev' => 'Verêni',
 'allpagesnext' => 'ver şo',
-'allpagessubmit' => 'Şo',
+'allpagessubmit' => 'Biya',
 'allpagesprefix' => 'herfê ke şıma tiya de nuşti, pê ney herfan pelê ke destpêkenê liste ker:',
 'allpagesbadtitle' => 'pel o ke şıma kewenî cı, nameyê no peli de gıreyê zıwanan u wikiyi re elaqa esto, ê ra cıkewtış qebul niyo. ya zi sernameyan de karakterê qedexeyi tede esto.',
 'allpages-bad-ns' => '{{SITENAME}} keyepel de wina "$1" yew nameyê cayi çino.',
@@ -2261,7 +2262,7 @@ Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni. Hem zi çı dem
 'removewatch' => 'Listedê mınê seyr kerdışi ra hewad',
 'removedwatchtext' => 'Ena pela "[[:$1]]" biya wedariya [[Special:Watchlist|listeyê seyr-kerdışi şıma]].',
 'watch' => 'bıgê seyr-kerdış',
-'watchthispage' => 'Ena pele seyr ke',
+'watchthispage' => 'Peler seyr ke',
 'unwatch' => 'Seyr meke',
 'unwatchthispage' => 'temaşa kerdışê peli vındarn.',
 'notanarticle' => 'mebhesê peli niyo',
@@ -2357,6 +2358,8 @@ bı diqqet dewam kerê.',
 'rollback' => 'vurnayişan tepiya bıger',
 'rollback_short' => 'Peyser bia',
 'rollbacklink' => 'peyser bia',
+'rollbacklinkcount' => '$1 {{PLURAL:$1|vurnayış|vurnayışi}} peyd gıroti',
+'rollbacklinkcount-morethan' => '$1 {{PLURAL:$1|vurnayış|vuranyışi}} tewr peyd gırot',
 'rollbackfailed' => 'Peyserardış nêbi',
 'cantrollback' => 'karbero peyin têna paşt dayo, no semedi ra vuriyayiş tepiya nêgeriyeni.',
 'alreadyrolled' => '[[User:$2|$2]] ([[User talk:$2|Talk]]{{int:pipe-separator}} hetê [[Special:Contributions/$2|{{int:contribslink}}]]) ra pelê ıney[[:$1]] de vurnayiş biyo u no vurnayiş tepiya nêgeriyeno;
@@ -2525,8 +2528,8 @@ qê referansi qeydê vernigrewtışi cêr de eşkera biyo:',
 'sp-contributions-blocked-notice-anon' => 'Eno adresê IPi bloke biyo.
 Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'sp-contributions-search' => 'Ser iştariqi bıgeyr',
-'sp-contributions-username' => 'Adresa IPy ya ki namey karberi:',
-'sp-contributions-toponly' => 'Teyna revizyonanê tewr peniyan bimocne',
+'sp-contributions-username' => 'Adresa IP yana namey karberi:',
+'sp-contributions-toponly' => 'Tenya rewizyonanê tewr peyniyan bimocne',
 'sp-contributions-submit' => 'Cı geyre',
 
 # What links here
@@ -2546,7 +2549,7 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'whatlinkshere-hidetrans' => 'Açarnayışê $1',
 'whatlinkshere-hidelinks' => '$1 greyan',
 'whatlinkshere-hideimages' => 'gireyê resimî $1',
-'whatlinkshere-filters' => 'Parzumi',
+'whatlinkshere-filters' => 'Avrêci',
 
 # Block/unblock
 'autoblockid' => 'Otomatik vındarnayış #$1',
@@ -2556,7 +2559,7 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'blockip-title' => 'Karberi kılit ke',
 'blockip-legend' => 'Karber blok bike',
 'blockiptext' => 'pê şuxulnayişê formê cêrıni, şıma eşkeni verniyê vurnayişkerdışê yew karberi ya zi yew IPyi bıgêrî. No têna qey verni-gırewtışê vandalizmiyo u gani şıma [[{{MediaWiki:Policy-url}}|qaydeyan]] re diqqet bıkeri. cêr de muheqqeq sebebê verni-grewtışi bınusi. (mesela: -nê- pelani de vandalizm kerdo).',
-'ipadressorusername' => 'Adresê IPî ya zi namayê karberî',
+'ipadressorusername' => 'Adresa IP yana namey karberi:',
 'ipbexpiry' => 'Qedyayış:',
 'ipbreason' => 'Sebeb:',
 'ipbreasonotherlist' => 'Sebebê bini',
@@ -2738,7 +2741,7 @@ Oturse, tı gani peleyê mınaqeşeyê manually beri.",
 'cant-move-user-page' => 'desturê şıma çino, şıma pelanê karberani bıkırışi (bê pelê cerıni).',
 'cant-move-to-user-page' => 'desturê şıma çino, şıma yew peli bıkırışi pelê yew karberi.',
 'newtitle' => 'Nameyê newi:',
-'move-watch' => 'Ena pele seyr ke',
+'move-watch' => 'Peler seyr ke',
 'movepagebtn' => 'Pele bere',
 'pagemovedsub' => 'Berdışi kerd temam',
 'movepage-moved' => '\'\'\'"$1" berd "$2"\'\'\'',
@@ -2819,7 +2822,7 @@ ma vaci: qey pelê "[[{{MediaWiki:Mainpage}}]]i " [[{{#Special:Export}}/{{MediaW
 'allmessagestext' => 'na liste, listeya mesajê cayê nameyê wikimedya yo.
 eke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê [//www.mediawiki.org/wiki/Localisation mahalli kerdışê wikimedyayi] u [//translatewiki.net translatewiki.net] ziyaret bıkerê.',
 'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages''' qefelnaye yo u ey ra '''{{ns:special}}:Allmessages''' karkerdışi re akerde niyo.",
-'allmessages-filter-legend' => 'Filitre',
+'allmessages-filter-legend' => 'Avrêc',
 'allmessages-filter' => 'goreyê xususi kerdışi re filtre bıker',
 'allmessages-filter-unmodified' => 'Nivurnaye',
 'allmessages-filter-all' => 'Pêro',
@@ -3085,7 +3088,7 @@ Gurênayışê nae de, beno ke sistemê şıma zerar bıvêno.",
 'newimages' => 'Galeriya dosyayan dê newan',
 'imagelisttext' => "Cêr de yew listeyê '''$1''' esto {{PLURAL:$1|dosya|dosyayi}} veçiniya $2.",
 'newimages-summary' => 'Ena pela xasi dosyayi ke peni de bar biyayeyi mocnane.',
-'newimages-legend' => 'Filtre',
+'newimages-legend' => 'Avrêc',
 'newimages-label' => 'Nameyê dosya ( ya zi parçe ey)',
 'showhidebots' => '(bota $1)',
 'noimages' => 'Çik çini yo.',
@@ -3586,7 +3589,7 @@ $8',
 'exif-dc-contributor' => 'İştırakdari',
 'exif-dc-coverage' => 'Heruna yana wextin grotışa medya',
 'exif-dc-date' => 'Tarix(i)',
-'exif-dc-publisher' => 'Wılakar',
+'exif-dc-publisher' => 'Hesrekar',
 'exif-dc-relation' => 'Medyay cı',
 'exif-dc-rights' => 'Heqi',
 'exif-dc-source' => 'Medyay çımi',
@@ -3972,7 +3975,7 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 # Special:Tags
 'tags' => 'Etiketê vurnayîşê raştî',
 'tag-filter' => '[[Special:Tags|Tag]] filitre:',
-'tag-filter-submit' => 'Filitre',
+'tag-filter-submit' => 'Avrêc',
 'tags-title' => 'Etiketan',
 'tags-intro' => 'Eno pel de listeyê eyiketî este ke belki software pê ey edit kenî.',
 'tags-tag' => 'Nameyê etiketi',
index 239eb80..8c98c1d 100644 (file)
@@ -568,6 +568,7 @@ Twójo konto jo se załožyło. Njezabydni změniś swóje [[Special:Preferences
 'remembermypassword' => 'Na toś tom licadle pśizjawjony wóstaś (za maksimalnje $1 {{PLURAL:$1|źeń|dnja|dny|dnjow}})',
 'securelogin-stick-https' => 'Pó pśizjawjenju z HTTPS zwězany wóstaś',
 'yourdomainname' => 'Twója domejna',
+'password-change-forbidden' => 'Njamóžoš gronidła w toś tom wikiju změniś.',
 'externaldberror' => 'Abo jo wustupiła eksterna zmólka awtentifikacije datoweje banki, abo njesmějoš swójo eksterne wužywarske konto aktualizěrowaś.',
 'login' => 'Pśizjawiś se',
 'nav-login-createaccount' => 'Pśizjawiś se/Konto załožyś',
@@ -1860,9 +1861,8 @@ Snaź coš wopisanje na jeje [$2 boku datajowego wopisanja] wobźěłaś.',
 
 'disambiguations' => 'Boki, kótarež wótkazuju na boki wěcejzmysłowosći',
 'disambiguationspage' => 'Template:Rozjasnjenje zapśimjeśow',
-'disambiguations-text' => 'Slědujuce boki wótkazuju na bok za rozjasnjenje zapśimjeśow.
-Wótkazujśo lubjej na pótrjefjony bok.<br />
-Bok wobjadnawa se ako bok wujasnjenja zapśimjeśa, gaž wótkazujo na nju [[MediaWiki:Disambiguationspage]].',
+'disambiguations-text' => 'Slědujuce boki wopśimuju nanejmjenjej jaden wótkaz k bokoju rozjasnjenja zapśimjeśow. Wóne by dejali město togo ku gódnjejšemu bokoju wótkazaś.<br />
+Maju bok za  bok rozjasnjenja zapśimjeśow, gaž wužywa pśedłogu, na kótaruž wótkazujo se wót [[MediaWiki:Disambiguationspage]].',
 
 'doubleredirects' => 'Dwójne dalejpósrědnjenja',
 'doubleredirectstext' => 'Toś ten bok nalicujo boki, kótarež dalej pósrědnjaju na druge dalejpósrědnjenja.
@@ -2198,6 +2198,8 @@ póstupujśo z glědanim.',
 'rollback' => 'Wobźěłanja slědk wześ',
 'rollback_short' => 'anulěrowaś',
 'rollbacklink' => 'anulěrowaś',
+'rollbacklinkcount' => '$1 {{PLURAL:$1|změnu|změnje|změny|změnow}} slědk wześ',
+'rollbacklinkcount-morethan' => 'wěcej ako $1 {{PLURAL:$1|změnu|změnje|změny|změnow}} slědk wześ',
 'rollbackfailed' => 'Slědkwześe njejo se raźiło.',
 'cantrollback' => 'Njejo móžno změnu slědk wześ, slědny pśinosowaŕ jo jadnučki awtor boka.',
 'alreadyrolled' => 'Njejo móžno slědnu změnu w nastawku [[:$1]] wót [[User:$2|$2]] ([[User talk:$2|diskusija]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) slědk wześ; drugi wužywaŕ jo mjaztym bok změnił abo južo slědk stajił .
index 590f6ac..bbec294 100644 (file)
@@ -1072,6 +1072,7 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'remembermypassword'         => 'Remember my login on this browser (for a maximum of $1 {{PLURAL:$1|day|days}})',
 'securelogin-stick-https'    => 'Stay connected to HTTPS after login',
 'yourdomainname'             => 'Your domain:',
+'password-change-forbidden'  => 'You cannot change passwords on this wiki.',
 'externaldberror'            => 'There was either an authentication database error or you are not allowed to update your external account.',
 'login'                      => 'Log in',
 'nav-login-createaccount'    => 'Log in / create account',
@@ -1359,6 +1360,10 @@ or [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page]</span>.',
 You can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,
 or <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>.',
 'noarticletextanon'                => '{{int:noarticletext}}', # do not translate or duplicate this message to other languages
+'missing-revision'                 => 'The revision #$1 of the page named "{{PAGENAME}}" does not exist.
+
+This is usually caused by following an outdated history link to a page that has been deleted.
+Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
 'userpage-userdoesnotexist'        => 'User account "$1" is not registered.
 Please check if you want to create/edit this page.',
 'userpage-userdoesnotexist-view'   => 'User account "$1" is not registered.',
@@ -1681,16 +1686,20 @@ Note that using the navigation links will reset this column.',
 'mergelogpagetext'   => 'Below is a list of the most recent merges of one page history into another.',
 
 # Diffs
-'history-title'              => 'Revision history of "$1"',
-'difference-title'           => 'Difference between revisions of "$1"',
-'difference-title-multipage' => 'Difference between pages "$1" and "$2"',
-'difference-multipage'       => '(Difference between pages)',
-'lineno'                     => 'Line $1:',
-'compareselectedversions'    => 'Compare selected revisions',
-'showhideselectedversions'   => 'Show/hide selected revisions',
-'editundo'                   => 'undo',
-'diff-multi'                 => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by {{PLURAL:$2|one user|$2 users}} not shown)',
-'diff-multi-manyusers'       => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by more than $2 {{PLURAL:$2|user|users}} not shown)',
+'history-title'               => 'Revision history of "$1"',
+'difference-title'            => 'Difference between revisions of "$1"',
+'difference-title-multipage'  => 'Difference between pages "$1" and "$2"',
+'difference-multipage'        => '(Difference between pages)',
+'lineno'                      => 'Line $1:',
+'compareselectedversions'     => 'Compare selected revisions',
+'showhideselectedversions'    => 'Show/hide selected revisions',
+'editundo'                    => 'undo',
+'diff-multi'                  => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by {{PLURAL:$2|one user|$2 users}} not shown)',
+'diff-multi-manyusers'        => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by more than $2 {{PLURAL:$2|user|users}} not shown)',
+'difference-missing-revision' => '{{PLURAL:$2|One revision|$2 revisions}} of this difference ($1) {{PLURAL:$2|was|were}} not found.
+
+This is usually caused by following an outdated diff link to a page that has been deleted.
+Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
 
 # Search results
 'search-summary'                   => '', # do not translate or duplicate this message to other languages
@@ -2283,30 +2292,30 @@ If the problem persists, contact an [[Special:ListUsers/sysop|administrator]].',
 'upload-copy-upload-invalid-domain' => 'Copy uploads are not available from this domain.',
 
 # File backend
-'backend-fail-stream'        => 'Could not stream file $1.',
-'backend-fail-backup'        => 'Could not backup file $1.',
+'backend-fail-stream'        => 'Could not stream file "$1".',
+'backend-fail-backup'        => 'Could not backup file "$1".',
 'backend-fail-notexists'     => 'The file $1 does not exist.',
 'backend-fail-hashes'        => 'Could not get file hashes for comparison.',
-'backend-fail-notsame'       => 'A non-identical file already exists at $1.',
-'backend-fail-invalidpath'   => '$1 is not a valid storage path.',
-'backend-fail-delete'        => 'Could not delete file $1.',
-'backend-fail-alreadyexists' => 'The file $1 already exists.',
-'backend-fail-store'         => 'Could not store file $1 at $2.',
-'backend-fail-copy'          => 'Could not copy file $1 to $2.',
-'backend-fail-move'          => 'Could not move file $1 to $2.',
+'backend-fail-notsame'       => 'A non-identical file already exists at "$1".',
+'backend-fail-invalidpath'   => '"$1" is not a valid storage path.',
+'backend-fail-delete'        => 'Could not delete file "$1".',
+'backend-fail-alreadyexists' => 'The file "$1" already exists.',
+'backend-fail-store'         => 'Could not store file "$1" at "$2".',
+'backend-fail-copy'          => 'Could not copy file "$1" to "$2".',
+'backend-fail-move'          => 'Could not move file "$1" to "$2".',
 'backend-fail-opentemp'      => 'Could not open temporary file.',
 'backend-fail-writetemp'     => 'Could not write to temporary file.',
 'backend-fail-closetemp'     => 'Could not close temporary file.',
-'backend-fail-read'          => 'Could not read file $1.',
-'backend-fail-create'        => 'Could not write file $1.',
-'backend-fail-maxsize'       => 'Could not write file $1 because it is larger than {{PLURAL:$2|one byte|$2 bytes}}.',
+'backend-fail-read'          => 'Could not read file "$1".',
+'backend-fail-create'        => 'Could not write file "$1".',
+'backend-fail-maxsize'       => 'Could not write file "$1" because it is larger than {{PLURAL:$2|one byte|$2 bytes}}.',
 'backend-fail-readonly'      => 'The storage backend "$1" is currently read-only. The reason given is: "\'\'$2\'\'"',
 'backend-fail-synced'        => 'The file "$1" is in an inconsistent state within the internal storage backends',
 'backend-fail-connect'       => 'Could not connect to storage backend "$1".',
 'backend-fail-internal'      => 'An unknown error occurred in storage backend "$1".',
 'backend-fail-contenttype'   => 'Could not determine the content type of the file to store at "$1".',
-'backend-fail-batchsize'     => 'Storage backend given a batch of $1 file {{PLURAL:$1|operation|operations}}; the limit is $2 {{PLURAL:$2|operation|operations}}.',
-'backend-fail-usable'        => 'Could not write file $1 due to insufficient permissions or missing directories/containers.',
+'backend-fail-batchsize'     => 'The storage backend was given a batch of $1 file {{PLURAL:$1|operation|operations}}; the limit is $2 {{PLURAL:$2|operation|operations}}.',
+'backend-fail-usable'        => 'Could not write file "$1" due to insufficient permissions or missing directories/containers.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Could not connect to the journal database for storage backend "$1".',
@@ -2533,8 +2542,8 @@ Remember to check for other links to the templates before deleting them.',
 'disambiguations'         => 'Pages linking to disambiguation pages',
 'disambiguations-summary' => '', # do not translate or duplicate this message to other languages
 'disambiguationspage'     => 'Template:disambig',
-'disambiguations-text'    => "The following pages link to a '''disambiguation page'''.
-They should link to the appropriate topic instead.<br />
+'disambiguations-text'    => "The following pages contain at least one link to a '''disambiguation page'''.
+They may have to link to a more appropriate page instead.<br />
 A page is treated as disambiguation page if it uses a template which is linked from [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects'                   => 'Double redirects',
@@ -2924,22 +2933,22 @@ Deleting it may disrupt database operations of {{SITENAME}};
 proceed with caution.',
 
 # Rollback
-'rollback'          => 'Roll back edits',
-'rollback_short'    => 'Rollback',
-'rollbacklink'      => 'rollback',
-'rollbacklinkcount' => 'rollback $1 {{PLURAL:$1|edit|edits}}',
+'rollback'                   => 'Roll back edits',
+'rollback_short'             => 'Rollback',
+'rollbacklink'               => 'rollback',
+'rollbacklinkcount'          => 'rollback $1 {{PLURAL:$1|edit|edits}}',
 'rollbacklinkcount-morethan' => 'rollback more than $1 {{PLURAL:$1|edit|edits}}',
-'rollbackfailed'    => 'Rollback failed',
-'cantrollback'      => 'Cannot revert edit;
+'rollbackfailed'             => 'Rollback failed',
+'cantrollback'               => 'Cannot revert edit;
 last contributor is only author of this page.',
-'alreadyrolled'     => 'Cannot rollback last edit of [[:$1]] by [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
+'alreadyrolled'              => 'Cannot rollback last edit of [[:$1]] by [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
 someone else has edited or rolled back the page already.
 
 The last edit to the page was by [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
-'editcomment'       => "The edit summary was: \"''\$1''\".",
-'revertpage'        => 'Reverted edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last revision by [[User:$1|$1]]',
-'revertpage-nouser' => 'Reverted edits by (username removed) to last revision by [[User:$1|$1]]',
-'rollback-success'  => 'Reverted edits by $1;
+'editcomment'                => "The edit summary was: \"''\$1''\".",
+'revertpage'                 => 'Reverted edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last revision by [[User:$1|$1]]',
+'revertpage-nouser'          => 'Reverted edits by (username removed) to last revision by [[User:$1|$1]]',
+'rollback-success'           => 'Reverted edits by $1;
 changed back to last revision by $2.',
 
 # Edit tokens
@@ -3266,6 +3275,7 @@ You cannot create an account',
 Since you do not have the hideuser right, you cannot see or edit the user's block.",
 'ipbblocked'                      => 'You cannot block or unblock other users, because you are yourself blocked',
 'ipbnounblockself'                => 'You are not allowed to unblock yourself',
+'ipb-default-expiry'              => '', # do not translate or duplicate this message to other languages
 
 # Developer tools
 'lockdb'              => 'Lock database',
index a41f196..d04e59b 100644 (file)
@@ -360,17 +360,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Habilitar la edición de secciones presionando el botón de la derecha en los títulos de secciones (requiere JavaScript)',
 'tog-showtoc' => 'Mostrar el índice (para páginas con más de 3 encabezados)',
 'tog-rememberpassword' => 'Recordar mi nombre de usuario y contraseña entre sesiones en este navegador (por un máximo de $1 {{PLURAL:$1|día|días}})',
-'tog-watchcreations' => 'Vigilar las páginas que yo cree',
-'tog-watchdefault' => 'Vigilar las páginas que yo modifique',
-'tog-watchmoves' => 'Vigilar las páginas que renombre',
-'tog-watchdeletion' => 'Vigilar las páginas que borre',
+'tog-watchcreations' => 'Añadir las páginas que cree y los archivos que cargue a mi lista de vigilancia',
+'tog-watchdefault' => 'Añadir la páginas y archivos que edite a mi lista de vigilancia',
+'tog-watchmoves' => 'Añadir las páginas y archivos que mueva a mi lista de vigilancia',
+'tog-watchdeletion' => 'Añadir la páginas y archivos que borre a mi lista de vigilancia',
 'tog-minordefault' => 'Marcar todas las ediciones como menores de manera predeterminada',
 'tog-previewontop' => 'Mostrar previsualización antes del cuadro de edición',
 'tog-previewonfirst' => 'Mostrar previsualización en la primera edición',
 'tog-nocache' => 'Desactivar la caché de páginas del navegador',
 'tog-enotifwatchlistpages' => 'Enviarme un correo electrónico cuando se modifique una página o un archivo de mi lista de seguimiento',
 'tog-enotifusertalkpages' => 'Enviarme un correo electrónico cuando se modifique mi página de discusión',
-'tog-enotifminoredits' => 'Notificarme también los cambios menores de páginas',
+'tog-enotifminoredits' => 'Notificarme también por correo electrónico los cambios menores de las páginas y archivos',
 'tog-enotifrevealaddr' => 'Revelar mi dirección de correo electrónico en los correos de notificación',
 'tog-shownumberswatching' => 'Mostrar el número de usuarios que la vigilan',
 'tog-oldsig' => 'Firma actual:',
@@ -1588,6 +1588,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'right-writeapi' => 'Hacer uso del API para escribir',
 'right-delete' => 'Borrar páginas',
 'right-bigdelete' => 'Borrar páginas con historiales grandes',
+'right-deletelogentry' => 'Borrar y recuperar entradas de registro específicas',
 'right-deleterevision' => 'Borrar y restaurar revisiones específicas de páginas',
 'right-deletedhistory' => 'Ver el historial de páginas borradas, sin el texto asociado',
 'right-deletedtext' => 'Ver texto borrado y cambios entre revisiones borradas',
@@ -1898,6 +1899,7 @@ $1',
 'lockmanager-fail-releaselock' => 'No se pudo liberar el bloqueo de "$1".',
 'lockmanager-fail-db-bucket' => 'No se pudo contactar con las suficientes bases de datos del conjunto $1.',
 'lockmanager-fail-db-release' => 'No se pudieron liberar los bloqueos registrados en la base de datos $1.',
+'lockmanager-fail-svr-acquire' => 'No se pudieron obtener bloqueos en el servidor $1.',
 'lockmanager-fail-svr-release' => 'No se pudieron liberar los bloqueos registrados en el servidor $1.',
 
 # ZipDirectoryReader
@@ -2437,6 +2439,8 @@ Véase $2 para un registro de los borrados recientes.',
 'rollback' => 'Revertir ediciones',
 'rollback_short' => 'Revertir',
 'rollbacklink' => 'revertir',
+'rollbacklinkcount' => 'revertir $1 {{PLURAL:$1|edición|ediciones}}',
+'rollbacklinkcount-morethan' => 'revertir más de $1 {{PLURAL:$1|edición|ediciones}}',
 'rollbackfailed' => 'No se pudo revertir',
 'cantrollback' => 'No se puede revertir la edición;
 el último colaborador es el único autor de esta página.',
@@ -4029,6 +4033,4 @@ En otro caso, puedes usar el siguiente formulario. Tu comentario será añadido
 'duration-centuries' => '$1 {{PLURAL:$1|siglo|siglos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenio|milenios}}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'No se pudieron obtener bloqueos en el servidor $1.',
 );
index e230c1b..16b3193 100644 (file)
@@ -547,7 +547,7 @@ Vaata [[Special:Version|versiooni lehekülge]].',
 
 'ok' => 'Sobib',
 'pagetitle' => '$1 – {{SITENAME}}',
-'retrievedfrom' => 'Välja otsitud andmebaasist "$1"',
+'retrievedfrom' => 'Pärit leheküljelt "$1"',
 'youhavenewmessages' => 'Teile on $1 ($2).',
 'newmessageslink' => 'uusi sõnumeid',
 'newmessagesdifflink' => 'viimane muudatus',
@@ -663,7 +663,7 @@ Palun proovi mõne minuti pärast uuesti.',
 'viewsourcetext' => 'Saad vaadata ja kopeerida lehekülje lähteteksti:',
 'viewyourtext' => "Saad vaadata ja kopeerida sellel leheküljel tehtud '''enda muudatuste '''lähteteksti:",
 'protectedinterface' => 'Sellel leheküljel on tarkvara kasutajaliidese tekst. Kuritahtliku muutmise vältimiseks on lehekülg lukustatud.',
-'editinginterface' => "'''Hoiatus:''' Te redigeerite tarkvara kasutajaliidese tekstiga lehekülge. Muudatused siin mõjutavad kõikide kasutajate kasutajaliidest. Tõlkijad, palun kaaluge MediaWiki tõlkimisprojekti – [//translatewiki.net/wiki/Main_Page?setlang=et translatewiki.net] kasutamist.",
+'editinginterface' => "'''Hoiatus:''' Redigeerid tarkvara kasutajaliidese tekstiga lehekülge. Muudatused siin mõjutavad kõikide kasutajate kasutajaliidest. Tõlkijad, palun kaaluge MediaWiki lokaliseerimisprojekti [//translatewiki.net/wiki/Main_Page?setlang=et translatewiki.net] kasutamist.",
 'sqlhidden' => '(SQL päring peidetud)',
 'cascadeprotected' => 'See lehekülg on muutmise eest kaitstud, sest see on osa {{PLURAL:$1|järgmisest leheküljest|järgmistest lehekülgedest}}, mis on kaskaadkaitse all:
 $2',
@@ -700,6 +700,7 @@ Sinu konto on loodud.
 'remembermypassword' => 'Jäta parool meelde (kuni $1 {{PLURAL:$1|päevaks|päevaks}})',
 'securelogin-stick-https' => 'Jätka pärast sisselogimist HTTPS-ühenduse kasutamist',
 'yourdomainname' => 'Sinu domeen:',
+'password-change-forbidden' => 'Selles vikis ei saa paroole muuta.',
 'externaldberror' => 'Esines autentimistõrge või sul pole õigust konto andmeid muuta.',
 'login' => 'Logi sisse',
 'nav-login-createaccount' => 'Logi sisse või registreeru kasutajaks',
@@ -991,12 +992,12 @@ Kui klõpsad nupule \"{{int:savearticle}}\", salvestub '''ainult''' ülemises to
 'storedversion' => 'Salvestatud redaktsioon',
 'nonunicodebrowser' => "'''HOIATUS: Sinu brauser ei toeta unikoodi.'''
 Probleemist möödahiilimiseks, selleks et saaksid lehekülgi turvaliselt redigeerida, näidatakse mitte-ASCII sümboleid toimetuskastis kuueteistkümnendsüsteemi koodidena.",
-'editingold' => "'''ETTEVAATUST! Te redigeerite praegu selle lehekülje vana redaktsiooni.
-Kui Te selle salvestate, siis lähevad kõik vahepealsed muudatused kaduma.'''",
+'editingold' => "'''Ettevaatust: Redigeerid praegu selle lehekülje vana redaktsiooni.'''
+Kui selle salvestad, lähevad kõik vahepealsed muudatused kaduma.",
 'yourdiff' => 'Erinevused',
-'copyrightwarning' => "Pidage silmas, et kogu teie kaastöö võrgukohale {{SITENAME}} loetakse avaldatuks litsentsi $2 all (vaata ka $1). Kui te ei soovi, et teie kirjutatut halastamatult redigeeritakse ja oma äranägemise järgi kasutatakse, siis ärge seda siia salvestage.<br />
-Te kinnitate ka, et kirjutasite selle ise või võtsite selle kopeerimiskitsenduseta allikast.<br />
-'''ÄRGE SAATKE AUTORIÕIGUSEGA KAITSTUD MATERJALI ILMA LOATA!'''",
+'copyrightwarning' => "Pea silmas, et kogu kaastöö võrgukohale {{SITENAME}} loetakse avaldatuks litsentsi $2 all (üksikasjad leheküljel $1). Kui sa ei soovi, et sinu kirjutatut halastamatult redigeeritakse ja oma äranägemise järgi kasutatakse, siis ära seda siia salvesta.<br />
+Kinnitad ka, et kirjutasid selle ise või võtsid selle allikast, mille materjale ei kaitsta autoriõigusega või muust sarnasest vabast allikast.<br />
+'''Ära salvesta autoriõigusega kaitstud materjali ilma loata!'''",
 'copyrightwarning2' => "Pea silmas, et teised kaastöölised võivad kogu {{GRAMMAR:inessive|{{SITENAME}}}} tehtud kaastööd muuta või eemaldada. Kui sa ei soovi, et su kirjutatut halastamatult redigeeritakse, siis ära seda siia salvesta.<br />
 Sa kinnitad ka, et kirjutasid selle ise või võtsid selle kopeerimiskitsenduseta allikast (vaata ka $1).
 '''Ära saada autoriõigusega kaitstud materjali loata!'''",
@@ -1699,9 +1700,9 @@ Eelistatud {{PLURAL:\$3|failitüüp on|failitüübid on}} \$2.",
 'tmp-write-error' => 'Viga ajutise faili kirjutamisel.',
 'large-file' => 'On soovitatav, et üleslaaditavad failid ei oleks suuremad kui $1. Selle faili suurus on $2.',
 'largefileserver' => 'Antud fail on suurem lubatud failisuurusest.',
-'emptyfile' => 'Fail, mille Te üles laadisite, paistab olevat tühi.
+'emptyfile' => 'Fail, mille üles laadisid, paistab olevat tühi.
 See võib olla tingitud vigasest failinimest.
-Palun kaalutlege, kas Te tõesti soovite seda faili üles laadida.',
+Palun veendu, et soovid tõesti seda faili üles laadida.',
 'windows-nonascii-filename' => 'Sellel vikil puudub erimärkidega failinimede tugi.',
 'fileexists' => "Sellise nimega fail on juba olemas. Palun vaata lehekülge '''<tt>[[:$1]]</tt>''', kui sa pole kindel, kas soovid seda muuta.
 [[$1|thumb]]",
@@ -1998,8 +1999,8 @@ Sisesta kujul tüüp/alamtüüp, näiteks <tt>image/jpeg</tt>.',
 
 'disambiguations' => 'Leheküljed, mis lingivad täpsustuslehekülgedele',
 'disambiguationspage' => 'Template:Täpsustuslehekülg',
-'disambiguations-text' => "Loetletud leheküljed viitavad '''täpsustusleheküljele'''.
-Selle asemel peaks nad olema lingitud sobivasse artiklisse.
+'disambiguations-text' => "Järgmised leheküljed sisaldavad vähemalt üht linki '''täpsustusleheküljele'''.
+Võimalik, et sellised lingid peaks viitama sobivamatele lehekülgedele.
 Lehekülg loetakse täpsustusleheküljeks, kui see kasutab malli, millele viitab sõnum [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Kahekordsed ümbersuunamised',
@@ -2344,6 +2345,8 @@ Ettevaatust, selle kustutamine võib esile kutsuda häireid {{GRAMMAR:genitive|{
 'rollback' => 'Tühista muudatused',
 'rollback_short' => 'Tühista',
 'rollbacklink' => 'tühista',
+'rollbacklinkcount' => 'tühista {{PLURAL:$1|üks muudatus|$1 muudatust}}',
+'rollbacklinkcount-morethan' => 'tühista üle {{PLURAL:$1|ühe muudatuse|10 muudatuse}}',
 'rollbackfailed' => 'Muudatuste tühistamine ebaõnnestus',
 'cantrollback' => 'Ei saa muudatusi eemaldada, sest viimane kaastööline on artikli ainus autor.',
 'alreadyrolled' => 'Muudatust, mille tegi lehele [[:$1]] kasutaja [[User:$2|$2]] ([[User talk:$2|arutelu]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]), ei saa tühistada, sest keegi teine on seda lehte vahepeal muutnud.
@@ -2942,7 +2945,7 @@ Saad vaadata selle lähteteksti.',
 'tooltip-ca-nstab-main' => 'Näita artiklit',
 'tooltip-ca-nstab-user' => 'Näita kasutaja lehte',
 'tooltip-ca-nstab-media' => 'Näita pildi lehte',
-'tooltip-ca-nstab-special' => 'See on erilehekülg, te ei saa seda redigeerida',
+'tooltip-ca-nstab-special' => 'See on erilehekülg, sa ei saa seda lehekülge ennast redigeerida.',
 'tooltip-ca-nstab-project' => 'Näita projekti lehte',
 'tooltip-ca-nstab-image' => 'Näita pildi lehte',
 'tooltip-ca-nstab-mediawiki' => 'Näita süsteemi sõnumit',
@@ -2980,9 +2983,9 @@ Samuti võimaldab see resümee reale põhjenduse lisamist.',
 'siteuser' => '{{GRAMMAR:genitive|{{SITENAME}}}} kasutaja $1',
 'anonuser' => '{{GRAMMAR:genitive|{{SITENAME}}}} anonüümne kasutaja $1',
 'lastmodifiedatby' => 'Viimati muutis lehekülge $3 $2 kell $1.',
-'othercontribs' => 'Põhineb kasutajate $1 tööl.',
+'othercontribs' => 'Põhineb järgmiste kasutajate kaastööl: $1.',
 'others' => 'teiste',
-'siteusers' => 'võrgukoha {{SITENAME}} {{PLURAL:$2|kasutaja|kasutajate}} $1',
+'siteusers' => '{{GRAMMAR:genitive|{{SITENAME}}}} {{PLURAL:$2|kasutaja|kasutajad}} $1',
 'anonusers' => '{{GRAMMAR:genitive|{{SITENAME}}}} {{PLURAL:$2|anonüümne kasutaja|anonüümsed kasutajad}} $1',
 'creditspage' => 'Lehekülje toimetajate loend',
 'nocredits' => 'Selle lehekülje toimetajate loend ei ole kättesaadav.',
index c4549f8..3225d74 100644 (file)
@@ -427,7 +427,7 @@ $messages = array(
 'pagecategories' => '{{PLURAL:$1|Luokka|Luokat}}',
 'category_header' => "Luokan ''$1'' sisältämät sivut",
 'subcategories' => 'Alaluokat',
-'category-media-header' => 'Luokan ”$1” sisältämät tiedostot',
+'category-media-header' => 'Tiedostot, jotka ovat luokassa $1',
 'category-empty' => "''Tässä luokassa ei ole sivuja eikä tiedostoja.''",
 'hidden-categories' => '{{PLURAL:$1|Piilotettu luokka|Piilotetut luokat}}',
 'hidden-category-category' => 'Piilotetut luokat',
index c9a40ac..6905d21 100644 (file)
@@ -779,6 +779,7 @@ N’oubliez pas de personnaliser vos [[Special:Preferences|préférences sur {{S
 'remembermypassword' => 'Me reconnecter automatiquement aux prochaines visites avec ce navigateur (au maximum $1 {{PLURAL:$1|jour|jours}})',
 'securelogin-stick-https' => 'Rester connecté en HTTPS après la connexion',
 'yourdomainname' => 'Votre domaine :',
+'password-change-forbidden' => 'Vous ne pouvez pas modifier les mots de passe sur ce wiki.',
 'externaldberror' => 'Une erreur s’est produite avec la base de données d’authentification externe, ou bien vous n’êtes pas autorisé{{GENDER:||e|(e)}} à mettre à jour votre compte externe.',
 'login' => 'Connexion',
 'nav-login-createaccount' => 'Créer un compte ou se connecter',
@@ -2102,9 +2103,9 @@ N’oubliez pas de vérifier s’il n’y a pas d’autres liens vers les modèl
 
 'disambiguations' => 'Pages ayant des liens vers des pages d’homonymie',
 'disambiguationspage' => 'Template:Homonymie',
-'disambiguations-text' => "Les pages suivantes comportent un lien vers une '''page d’homonymie'''.
-Ces liens ambigus devraient plutôt pointer vers le bon article.<br />
-Une page est considérée comme une page d’homonymie si elle inclut (directement ou récursivement) un des modèles listés sur [[MediaWiki:Disambiguationspage]].",
+'disambiguations-text' => "Les pages suivantes comportent au moins un lien vers une '''page d’homonymie'''.
+Elles devraient plutôt pointer vers le bon article.<br />
+Une page est considérée comme une page d’homonymie si elle utilise un modèle lié à [[MediaWiki:Disambiguationspage]]",
 
 'doubleredirects' => 'Doubles redirections',
 'doubleredirectstext' => 'Voici une liste des pages qui redirigent vers des pages qui sont elles-mêmes des pages de redirection.
@@ -2446,6 +2447,8 @@ veuiller ne procéder qu’avec prudence.',
 'rollback' => 'Révoquer les modifications',
 'rollback_short' => 'Révoquer',
 'rollbacklink' => 'révoquer',
+'rollbacklinkcount' => 'révoquer $1 {{PLURAL:$1|modification|modifications}}',
+'rollbacklinkcount-morethan' => 'révoquer plus de $1 {{PLURAL:$1|modification|modifications}}',
 'rollbackfailed' => 'La révocation a échoué',
 'cantrollback' => 'Impossible de révoquer la modification ;
 le dernier contributeur est le seul auteur de cette page.',
@@ -3096,7 +3099,10 @@ Permet de rétablir la version précédente et d’ajouter un motif dans la boî
 'simple.js' => '/* Tout JavaScript ici sera chargé avec les pages accédées par les utilisateurs de l’habillage Simple uniquement */',
 'modern.js' => '/* Tout JavaScript ici sera chargé avec les pages accédées par les utilisateurs de l’habillage Moderne uniquement */',
 'vector.js' => '/* Tout code JavaScript placé ici sera chargé pour les utilisateurs de l’habillage Vector */',
+'group-autoconfirmed.js' => '/* Le JavaScript inclus ici n’affectera que les utilisateurs auto-confirmés */',
+'group-bot.js' => '/* Le JavaScript inclus ici n’affectera que les robots */',
 'group-sysop.js' => '/* Le JavaScript inclus ici n’affectera que les administrateurs */',
+'group-bureaucrat.js' => '/* Le JavaScript inclus ici n’affectera que les bureaucrates */',
 
 # Metadata
 'notacceptable' => 'Ce serveur wiki ne peut pas fournir les données dans un format que votre client soit capable de lire.',
index e9bd5b5..3d98b4b 100644 (file)
@@ -329,7 +329,7 @@ $messages = array(
 'tog-watchmoves' => 'Apondre les pâges et los fichiérs que renomo a ma lista de survelyence',
 'tog-watchdeletion' => 'Apondre les pâges et los fichiérs que suprimo a ma lista de survelyence',
 'tog-minordefault' => 'Marcar per dèfôt tôs los changements coment petiôts',
-'tog-previewontop' => 'Fâre vêre la prèvisualisacion en-dessus de la zona de changement',
+'tog-previewontop' => 'Fâre vêre la prèvisualisacion d’amont la zona de changement',
 'tog-previewonfirst' => 'Fâre vêre la prèvisualisacion pendent lo premiér changement',
 'tog-nocache' => 'Dèsactivar lo cacho de les pâges per lo navigator',
 'tog-enotifwatchlistpages' => 'Mè mandar un mèssâjo quand na pâge ou ben un fichiér de ma lista de survelyence est changiê(ye)',
@@ -345,7 +345,7 @@ $messages = array(
 'tog-uselivepreview' => 'Empleyér l’apèrçu rapido (at fôta de JavaScript) (èxpèrimentâl)',
 'tog-forceeditsummary' => 'M’avèrtir quand j’é pas spècifiâ de rèsumâ de changement',
 'tog-watchlisthideown' => 'Cachiér mos prôpros changements dedens la lista de survelyence',
-'tog-watchlisthidebots' => 'Cachiér los changements fêts per des bots dedens la lista de survelyence',
+'tog-watchlisthidebots' => 'Cachiér los changements fêts per des robots dedens la lista de survelyence',
 'tog-watchlisthideminor' => 'Cachiér los petiôts changements dedens la lista de survelyence',
 'tog-watchlisthideliu' => 'Cachiér los changements fêts per des utilisators branchiês dedens la lista de survelyence',
 'tog-watchlisthideanons' => 'Cachiér los changements fêts per des utilisators anonimos dedens la lista de survelyence',
@@ -425,7 +425,7 @@ $messages = array(
 'category_header' => 'Pâges dedens la catègorie « $1 »',
 'subcategories' => 'Sot-catègories',
 'category-media-header' => 'Fichiérs mèdia dedens la catègorie « $1 »',
-'category-empty' => "''Ora, cela catègorie contint gins de pâge ou de fichiér mèdia.''",
+'category-empty' => "''Ora cela catègorie contint gins de pâge ou de fichiér mèdia.''",
 'hidden-categories' => '{{PLURAL:$1|Catègorie cachiêye|Catègories cachiêyes}}',
 'hidden-category-category' => 'Catègories cachiêyes',
 'category-subcat-count' => 'Cela catègorie-que at {{PLURAL:$2|ren que ceta sot-catègorie.|{{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}, sur na soma de $2.}}',
@@ -546,7 +546,7 @@ $1',
 'aboutsite' => 'A propôs de {{SITENAME}}',
 'aboutpage' => 'Project:A propôs',
 'copyright' => 'Lo contegnu est disponiblo desot licence $1.',
-'copyrightpage' => '{{ns:project}}:Drêts ôtor',
+'copyrightpage' => '{{ns:project}}:Drêts d’ôtor',
 'currentevents' => 'Novèles',
 'currentevents-url' => 'Project:Novèles',
 'disclaimers' => 'Avèrtissements',
@@ -564,7 +564,7 @@ $1',
 
 'badaccess' => 'Fôta de pèrmission',
 'badaccess-group0' => 'Vos avéd pas los drêts sufisents por rèalisar l’accion demandâye.',
-'badaccess-groups' => 'L’accion que vos tâchiéd de rèalisar est accèssibla ren qu’ux utilisators a {{PLURAL:$2|la tropa|les tropes}} : $1.',
+'badaccess-groups' => 'L’accion que vos tâchiéd de rèalisar est accèssibla ren qu’ux utilisators de {{PLURAL:$2|la tropa|les tropes}} : $1.',
 
 'versionrequired' => 'Vèrsion $1 de MediaWiki nècèssèra',
 'versionrequiredtext' => 'La vèrsion $1 de MediaWiki est nècèssèra por empleyér ceta pâge.
@@ -604,7 +604,7 @@ Vêde la [[Special:Version|pâge de les vèrsions]].',
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Pâge',
 'nstab-user' => 'Pâge utilisator',
-'nstab-media' => 'Pâge de mèdia',
+'nstab-media' => 'Fichiér mèdia',
 'nstab-special' => 'Pâge spèciâla',
 'nstab-project' => 'Pâge du projèt',
 'nstab-image' => 'Fichiér',
@@ -639,8 +639,8 @@ dês la fonccion « $2 ».
 La bâsa de donâs at retornâ la fôta « $3 : $4 ».',
 'laggedslavemode' => "'''Atencion :''' cela pâge pôt pas contegnir tôs los dèrriérs changements fêts.",
 'readonly' => 'Bâsa de donâs vèrrolyêye',
-'enterlockreason' => 'Balyéd la rêson du vèrroly et pués un’èstimacion de la sina durâ',
-'readonlytext' => 'Ora, la bâsa de donâs est vèrrolyêye por les entrâs novèles et los ôtros changements, probâblament por pèrmetre la sina mantegnence, dês cen tot tornerat en ôrdre.
+'enterlockreason' => 'Balyéd la rêson du vèrroly et pués n’èstimacion de la sina durâ',
+'readonlytext' => 'Ora la bâsa de donâs est vèrrolyêye por les entrâs novèles et los ôtros changements, probâblament por pèrmetre la sina mantegnence, dês cen tot tornerat en ôrdre.
 
 L’administrator que l’at vèrrolyê at balyê cet’èxplicacion : $1',
 'missing-article' => 'La bâsa de donâs at pas trovâ lo tèxto d’una pâge qu’el arêt diu trovar, avouéc lo titro « $1 » $2.
@@ -664,16 +664,16 @@ La volyéd signalar a un [[Special:ListUsers/sysop|administrator]] sen oubliar d
 'fileexistserror' => 'Empossiblo d’ècrire lo fichiér « $1 » : lo fichiér ègziste.',
 'unexpected' => 'Valor emprèvua : « $1 » = « $2 ».',
 'formerror' => 'Fôta : empossiblo de sometre lo formulèro.',
-'badarticleerror' => 'Celaccion pôt pas étre fêta sur ceta pâge.',
+'badarticleerror' => 'Celaccion pôt pas étre fêta sur ceta pâge.',
 'cannotdelete' => 'Empossiblo de suprimar la pâge ou ben lo fichiér « $1 ».
 Pôt-étre la suprèssion est ja étâye fêta per quârqu’un d’ôtro.',
 'cannotdelete-title' => 'Empossiblo de suprimar la pâge « $1 »',
 'badtitle' => 'Crouyo titro',
-'badtitletext' => 'Lo titro de la pâge demandâye est envalido, vouedo, ou ben o est un titro entèrlengoua ou entèrvouiqui mâl-liyê.
+'badtitletext' => 'Lo titro de la pâge demandâye est envalido, vouedo ou ben o est un titro entèrlengoua ou entèrvouiqui mâl-liyê.
 Contint sûrament yon ou ben un mouél de caractèros que pôvont pas étre empleyês dedens los titros.',
 'perfcached' => 'Cetes donâs sont en cacho et pôvont pas étre a jorn. Por lo més {{PLURAL:$1|yon rèsultat est disponiblo|$1 rèsultats sont disponiblos}} dedens lo cacho.',
 'perfcachedts' => 'Cetes donâs sont en cacho et sont étâyes betâyes a jorn por lo dèrriér côp a $1. Por lo més {{PLURAL:$1|yon rèsultat est disponiblo|$1 rèsultats sont disponiblos}} dedens lo cacho.',
-'querypage-no-updates' => 'Ora, les mises a jorn por ceta pâge sont dèsactivâyes.
+'querypage-no-updates' => 'Ora les mises a jorn por ceta pâge sont dèsactivâyes.
 Les donâs ce-desot sont pas betâyes a jorn.',
 'wrong_wfQuery_params' => 'Paramètros fôx dessus wfQuery()<br />
 Fonccion : $1<br />
@@ -681,24 +681,24 @@ Requéta : $2',
 'viewsource' => 'Vêre lo tèxto sôrsa',
 'viewsource-title' => 'Vêre lo tèxto sôrsa de $1',
 'actionthrottled' => 'Accion limitâye',
-'actionthrottledtext' => 'Por combatre lo spame, la frèquence d’ègzécucion de cela accion est limitâ dens un moment prod côrt, et vos éd dèpassâ ceta limita.
-Volyéd tornar èprovar dens doux-três menutes.',
-'protectedpagetext' => 'Ceta pâge at étâ protègiê por empachiér son changement.',
-'viewsourcetext' => 'Vos pouede vêre et copiyér lo tèxto sôrsa de la pâge :',
-'viewyourtext' => "Vos pouede vêre et copiyér lo contegnu de '''voutros changements''' a ceta pâge :",
-'protectedinterface' => 'Ceta pâge fât de tèxto d’entèrface por la programeria et est protègiê por èvitar los abus.',
-'editinginterface' => "'''Atencion :''' vos éte aprés changiér una pâge utilisâ por fâre lo tèxto d’entèrface por la programeria.
-Los changements sè cognetront, d’aprés lo contèxto, sur totes ou ben quârques pâges visibles per los ôtros usanciérs.
-Por les traduccions, nos vos envitens a utilisar lo seto [//translatewiki.net/wiki/Main_Page?setlang=frp translatewiki.net], lo projèt de localisacion de MediaWiki.",
-'sqlhidden' => '(Requéta SQL cachiê)',
-'cascadeprotected' => 'Ora, cela pâge est protègiê perce qu’el est encllua dens {{PLURAL:$1|ceta pâge|cetes pâges}}, {{PLURAL:$1|qu’at étâ protègiê|qu’ont étâ protègiês}} avouéc lo chouèx « protèccion en cascâda » activâ :
+'actionthrottledtext' => 'Por combatre lo spame, l’usâjo de cel’accion est limitâ a doux-três côps dens un moment prod côrt. S’acomplét que vos éd dèpassâ ceta limita.
+Volyéd tornar èprovar dens un tôrn.',
+'protectedpagetext' => 'Ceta pâge est étâye protègiêye por empachiér son changement.',
+'viewsourcetext' => 'Vos pouede vêre et pués copiyér lo tèxto sôrsa de ceta pâge :',
+'viewyourtext' => "Vos pouede vêre et pués copiyér lo tèxto sôrsa de '''voutros changements''' a ceta pâge :",
+'protectedinterface' => 'Ceta pâge balye de tèxto d’entèrface por la programeria et est vêr protègiêye por èvitar los abus.',
+'editinginterface' => "'''Atencion :''' vos éte aprés changiér na pâge empleyêye por fâre lo tèxto d’entèrface de la programeria.
+Los changements sè cognetront sur totes ou ben doux-três pâges visibles per los ôtros utilisators.
+Por les traduccions, nos vos envitens a empleyér [//translatewiki.net/wiki/Main_Page?setlang=frp translatewiki.net], lo projèt de localisacion de MediaWiki.",
+'sqlhidden' => '(Requéta SQL cachiêye)',
+'cascadeprotected' => 'Cela pâge-que est protègiêye perce qu’el est encllua dedens {{PLURAL:$1|ceta pâge, qu’est étâye protègiêye|cetes pâges, que sont étâyes protègiêyes}} avouéc lo chouèx « protèccion en cascâda » activâ :
 $2',
-'namespaceprotected' => "Vos avéd pas la pèrmission de changiér les pâges de l’èspâço de noms '''« $1 »'''.",
-'customcssprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge CSS, perce que contint les prèferences a un ôtro usanciér.',
-'customjsprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge JavaScript, perce que contint les prèferences a un ôtro usanciér.',
-'ns-specialprotected' => 'Les pâges dens l’èspâço de noms « {{ns:special}} » pôvont pas étre changiês.',
-'titleprotected' => "Cél titro at étâ protègiê a la crèacion per [[User:$1|$1]].
-La rêson balyê est « ''$2'' ».",
+'namespaceprotected' => "Vos avéd pas la pèrmission de changiér les pâges de l’èspâço de noms « '''$1''' ».",
+'customcssprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge CSS, perce que contint la configuracion a sè d’un ôtro utilisator.',
+'customjsprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge JavaScript, perce que contint la configuracion a sè d’un ôtro utilisator.',
+'ns-specialprotected' => 'Les pâges spèciâles pôvont pas étre changiêyes.',
+'titleprotected' => "Cél titro est étâ protègiê a la crèacion per [[User:$1|$1]].
+La rêson balyêye est « ''$2'' ».",
 'exception-nologin' => 'Pas branchiê',
 
 # Virus scanner
@@ -707,104 +707,104 @@ La rêson balyê est « ''$2'' ».",
 'virus-unknownscanner' => 'antivirus encognu :',
 
 # Login and logout pages
-'logouttext' => "'''Ora, vos éte dèbranchiê.'''
+'logouttext' => "'''Ora vos éte dèbranchiê{{GENDER:||ye|(ye)}}.'''
 
-Vos pouede continuar a utilisar {{SITENAME}} de façon anonima, ou ben [[Special:UserLogin|vos tornar branchiér]] desot lo mémo nom ou ben un ôtro.
-Notâd que quârques pâges pôvont étre adés montrâs coment se vos érâd tojorn branchiê, tant que vos èfaciéd lo cache de voutron navigator.",
+Vos pouede continuar a empleyér {{SITENAME}} de façon anonima ou ben [[Special:UserLogin|vos tornar branchiér]] desot lo mémo nom ou un ôtro.
+Notâd que doux-três pâges pôvont étre oncor montrâyes coment se vos érâd adés branchiê{{GENDER:||ye|(ye)}}, tant que vos èfaciéd lo cacho de voutron navigator.",
 'welcomecreation' => '== Benvegnua, $1 ! ==
-Voutron compto usanciér at étâ fêt.
+Voutron compto utilisator est étâ fêt.
 Oubliâd pas de pèrsonalisar voutres [[Special:Preferences|prèferences dessus {{SITENAME}}]].',
-'yourname' => 'Nom d’usanciér :',
+'yourname' => 'Nom d’utilisator :',
 'yourpassword' => 'Contresegno :',
 'yourpasswordagain' => 'Confirmâd lo contresegno :',
-'remembermypassword' => 'Sè rapelar de mon branchement sur ceti navigator (por $1 jorn{{PLURAL:$1||s}} u més)',
+'remembermypassword' => 'Sè rapelar de mon contresegno sur cél navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
 'securelogin-stick-https' => 'Réstar branchiê en HTTPS aprés lo branchement',
 'yourdomainname' => 'Voutron domêno :',
-'externaldberror' => 'Ou ben una èrror est arrevâ avouéc la bâsa de balyês d’ôtenticacion de defôr, ou ben vos éte pas ôtorisâ a betar a jorn voutron compto de defôr.',
+'externaldberror' => 'Ou ben na fôta est arrevâye avouéc la bâsa de donâs d’ôtentificacion de defôr ou ben vos éte pas ôtorisâ{{GENDER:||ye|(ye)}} a betar a jorn voutron compto de defôr.',
 'login' => 'Branchement',
-'nav-login-createaccount' => 'Fâre un compto ou sè branchiér',
+'nav-login-createaccount' => 'Sè branchiér / fâre un compto',
 'loginprompt' => "Vos dête activar los tèmouens (''cookies'') por vos branchiér a {{SITENAME}}.",
-'userlogin' => 'Fâre un compto ou sè branchiér',
+'userlogin' => 'Sè branchiér / fâre un compto',
 'userloginnocreate' => 'Sè branchiér',
 'logout' => 'Sè dèbranchiér',
 'userlogout' => 'Dèbranchement',
 'notloggedin' => 'Pas branchiê',
-'nologin' => "Vos avéd pas un compto ? '''$1'''.",
+'nologin' => "Vos avéd p’oncor un compto utilisator ? '''$1.'''",
 'nologinlink' => 'Féte un compto',
 'createaccount' => 'Fâre un compto',
-'gotaccount' => "Vos avéd ja un compto ? '''$1'''.",
+'gotaccount' => "Vos avéd ja un compto utilisator ? '''$1.'''",
 'gotaccountlink' => 'Branchiéd-vos',
 'userlogin-resetlink' => 'Vos éd oubliâ voutros dètalys de branchement ?',
 'createaccountmail' => 'per mèssageria èlèctronica',
 'createaccountreason' => 'Rêson :',
 'badretype' => 'Los contresegnos que vos éd buchiês sont pas pariérs.',
-'userexists' => 'Lo nom d’usanciér buchiê est ja utilisâ.
+'userexists' => 'Lo nom d’utilisator buchiê est ja empleyê.
 Nen volyéd chouèsir un ôtro.',
-'loginerror' => 'Èrror de branchement',
-'createaccounterror' => 'Empossiblo de fâre lo compto : $1',
-'nocookiesnew' => "Lo compto usanciér at étâ fêt, mas vos éte pas branchiê.
-{{SITENAME}} utilise des tèmouens (''cookies'') por lo branchement mas vos los éd dèsactivâs.
+'loginerror' => 'Fôta de branchement',
+'createaccounterror' => 'Empossiblo de fâre lo compto utilisator : $1',
+'nocookiesnew' => "Lo compto utilisator est étâ fêt, mas vos éte pas branchiê{{GENDER:||ye|(ye)}}.
+{{SITENAME}} empleye des tèmouens (''cookies'') por lo branchement mas vos los éd dèsactivâs.
 Los volyéd activar et pués vos tornar branchiér avouéc lo mémo nom et lo mémo contresegno.",
-'nocookieslogin' => "{{SITENAME}} utilise des tèmouens (''cookies'') por lo branchement mas vos los éd dèsactivâs.
-Los volyéd activar et pués vos tornar branchiér.",
-'nocookiesfornew' => "Lo compto usanciér at pas étâ fêt, perce que nos ens pas possu confirmar sa sôrsa.
+'nocookieslogin' => "{{SITENAME}} empleye des tèmouens (''cookies'') por lo branchement mas vos los éd dèsactivâs.
+Los volyéd activar et pués tornar èprovar.",
+'nocookiesfornew' => "Lo compto utilisator est pas étâ fêt, perce que nos ens pas possu confirmar la sina sôrsa.
 Controlâd que vos éd activâ los tèmouens (''cookies''), rechargiéd la pâge et pués tornâd èprovar.",
-'noname' => 'Vos éd pas buchiê un nom d’usanciér valido.',
-'loginsuccesstitle' => 'Branchement reussi.',
-'loginsuccess' => "'''Ora, vos éte branchiê a {{SITENAME}} coment « $1 ».'''",
-'nosuchuser' => 'L’usanciér « $1 » ègziste pas.
-Los noms d’usanciér sont sensiblos a la câssa.
-Controlâd l’ortografia, ou ben [[Special:UserLogin/signup|féte un compto novél]].',
-'nosuchusershort' => 'Y at gins de contributor avouéc lo nom « $1 ».
+'noname' => 'Vos éd pas buchiê un nom d’utilisator valido.',
+'loginsuccesstitle' => 'Branchement reussi',
+'loginsuccess' => "'''Ora vos éte branchiê{{GENDER:||ye|(ye)}} a {{SITENAME}} coment « $1 ».'''",
+'nosuchuser' => 'L’utilisator « $1 » ègziste pas.
+Los noms d’utilisator sont sensiblos a la câssa.
+Controlâd l’ortografia ou ben [[Special:UserLogin/signup|féte un compto novél]].',
+'nosuchusershort' => 'Y at gins d’utilisator avouéc lo nom « $1 ».
 Volyéd controlar l’ortografia.',
-'nouserspecified' => 'Vos dête buchiér un nom d’usanciér.',
-'login-userblocked' => 'Ceti usanciér est blocâ. Branchement pas ôtorisâ.',
+'nouserspecified' => 'Vos dête buchiér un nom d’utilisator.',
+'login-userblocked' => 'Cet’utilisator est blocâ. Branchement pas ôtorisâ.',
 'wrongpassword' => 'Lo contresegno est fôx.
 Volyéd tornar èprovar.',
 'wrongpasswordempty' => 'Vos éd pas buchiê de contresegno.
 Volyéd tornar èprovar.',
 'passwordtooshort' => 'Voutron contresegno dêt contegnir u muens $1 caractèro{{PLURAL:$1||s}}.',
-'password-name-match' => 'Voutron contresegno dêt étre difèrent de voutron nom d’usanciér.',
-'password-login-forbidden' => 'L’usâjo de cél nom d’usanciér et de cél contresegno at étâ dèfendu.',
+'password-name-match' => 'Voutron contresegno dêt étre difèrent de voutron nom d’utilisator.',
+'password-login-forbidden' => 'L’usâjo de cél nom d’utilisator et de cél contresegno est étâ dèfendu.',
 'mailmypassword' => 'Recêvre un contresegno novél per mèssageria èlèctronica',
 'passwordremindertitle' => 'Contresegno temporèro novél por {{SITENAME}}',
 'passwordremindertext' => 'Quârqu’un (probâblament vos, avouéc l’adrèce IP $1) at demandâ un contresegno
-novél por {{SITENAME}} ($4). Un contresegno temporèro at étâ fêt por
-l’usanciér « $2 » et est « $3 ». S’o ére voutra entencion, vos vos devréd
+novél por {{SITENAME}} ($4). Un contresegno temporèro est étâ fêt por
+l’utilisator « $2 » et est « $3 ». S’o ére voutra entencion, vos vos devréd
 branchiér et pués chouèsir un contresegno novél.
 Voutron contresegno temporèro èxpirerat dens $5 jorn{{PLURAL:$5||s}}.
 
-Se cela demanda vint pas de vos, ou ben se vos vos rapelâd ora
+Se cela demanda vint pas de vos ou ben se vos vos rapelâd ora
 de voutron contresegno et que vos souhètâd pas més nen changiér, vos
-pouede ignorar ceti mèssâjo et continuar a utilisar voutron viely contresegno.',
-'noemail' => 'Niona adrèce èlèctronica at étâ encartâ por l’usanciér « $1 ».',
-'noemailcreate' => 'Vos dête balyér una adrèce èlèctronica valida',
-'passwordsent' => 'Un contresegno novél at étâ mandâ a l’adrèce èlèctronica a l’usanciér « $1 ».
+pouede ignorar ceti mèssâjo et continuar a empleyér voutron viely contresegno.',
+'noemail' => 'Niona adrèce èlèctronica est étâye enregistrâye por l’utilisator « $1 ».',
+'noemailcreate' => 'Vos dête balyér n’adrèce èlèctronica valida',
+'passwordsent' => 'Un contresegno novél est étâ mandâ a l’adrèce èlèctronica de l’utilisator « $1 ».
 Vos volyéd tornar branchiér aprés l’avêr reçu.',
-'blocked-mailpassword' => 'Voutra adrèce IP est blocâ en ècritura, la fonccion de rapèl du contresegno est vêr dèsactivâ por èvitar los abus.',
-'eauthentsent' => 'Un mèssâjo de confirmacion at étâ mandâ a l’adrèce endicâ.
-Devant qu’un ôtro mèssâjo seye mandâ a ceti compto, vos devréd siuvre les enstruccions du mèssâjo et confirmar que lo compto est franc lo voutro.',
-'throttled-mailpassword' => 'Un mèssâjo de rapèl de voutron contresegno at ja étâ mandâ pendent {{PLURAL:$1|l’hora passâ|les $1 hores passâs}}.
+'blocked-mailpassword' => 'Voutron adrèce IP est blocâye en ècritura, la fonccion de rapèl du contresegno est vêr dèsactivâye por èvitar los abus.',
+'eauthentsent' => 'Un mèssâjo de confirmacion est étâ mandâ a l’adrèce endicâye.
+Devant qu’un ôtro mèssâjo seye mandâ a ceti compto, vos devréd siuvre les enstruccions du mèssâjo et pués confirmar que lo compto est franc lo voutro.',
+'throttled-mailpassword' => 'Un mèssâjo de rapèl de voutron contresegno est ja étâ mandâ pendent {{PLURAL:$1|l’hora passâye|les $1 hores passâyes}}.
 Por èvitar los abus, solament yon mèssâjo de rapèl serat mandâ per {{PLURAL:$1|hora|entèrvalo de $1 hores}}.',
-'mailerror' => 'Èrror pendent l’èxpèdicion du mèssâjo : $1',
-'acct_creation_throttle_hit' => 'Quârqu’un qu’utilise voutra adrèce IP at fêt {{PLURAL:$1|yon compto|$1 comptos}} pendent les 24 hores passâs, cen qu’est la limita ôtorisâ dens ceti temps.
-Du côp, la crèacion de compto at étâ dèsactivâ temporèrament por cela adrèce IP.',
-'emailauthenticated' => 'Voutra adrèce èlèctronica at étâ ôtenticâ lo $2 a $3.',
-'emailnotauthenticated' => 'Voutra adrèce èlèctronica est p’oncor ôtenticâ.
+'mailerror' => 'Fôta pendent l’èxpèdicion du mèssâjo : $1',
+'acct_creation_throttle_hit' => 'Quârqu’un qu’empleye voutron adrèce IP at fêt {{PLURAL:$1|yon compto|$1 comptos}} pendent les 24 hores passâyes, cen qu’est la limita ôtorisâye dens ceti temps.
+Du côp, la crèacion de compto est étâye dèsactivâye temporèrament por cel’adrèce IP.',
+'emailauthenticated' => 'Voutron adrèce èlèctronica est étâye ôtentifiâye lo $2 a $3.',
+'emailnotauthenticated' => 'Voutron adrèce èlèctronica est p’oncor ôtentifiâye.
 Nion mèssâjo serat mandâ por châcuna de cetes fonccions.',
-'noemailprefs' => 'Endicâd una adrèce èlèctronica dens voutres prèferences por utilisar cetes fonccions.',
-'emailconfirmlink' => 'Confirmâd voutra adrèce èlèctronica',
-'invalidemailaddress' => 'Ceta adrèce èlèctronica pôt pas étre accèptâ perce que semble avêr un format fôx.
-Volyéd buchiér una adrèce bien formatâ ou ben lèssiér cél champ vouedo.',
-'cannotchangeemail' => 'Les adrèces èlèctroniques des comptos pôvont pas étre changiês sur ceti vouiqui.',
+'noemailprefs' => 'Endicâd n’adrèce èlèctronica dens voutres prèferences por empleyér cetes fonccions.',
+'emailconfirmlink' => 'Confirmâd voutron adrèce èlèctronica',
+'invalidemailaddress' => 'Cet’adrèce èlèctronica pôt pas étre accèptâye perce que semble avêr un format fôx.
+Volyéd buchiér n’adrèce bien formatâye ou ben lèssiér cél champ vouedo.',
+'cannotchangeemail' => 'Les adrèces èlèctroniques des comptos pôvont pas étre changiêyes sur ceti vouiqui.',
 'emaildisabled' => 'Ceti seto pôt pas mandar des mèssâjos.',
-'accountcreated' => 'Compto fêt.',
-'accountcreatedtext' => 'Lo compto usanciér por $1 at étâ fêt.',
+'accountcreated' => 'Compto fêt',
+'accountcreatedtext' => 'Lo compto utilisator por $1 est étâ fêt.',
 'createaccount-title' => 'Crèacion d’un compto por {{SITENAME}}',
-'createaccount-text' => 'Quârqu’un at fêt un compto por voutra adrèce èlèctronica dessus {{SITENAME}} ($4) avouéc lo titro « $2 » et lo contresegno « $3 ».
+'createaccount-text' => 'Quârqu’un at fêt un compto utilisator por voutron adrèce èlèctronica dessus {{SITENAME}} ($4) avouéc lo titro « $2 » et lo contresegno « $3 ».
 Vos vos devriâd branchiér et pués changiér dês ora voutron contresegno.
 
-Ignorâd ceti mèssâjo se cél compto at étâ fêt per èrror.',
+Ignorâd ceti mèssâjo se cél compto utilisator est étâ fêt per fôta.',
 'usernamehasherror' => 'Lo nom d’usanciér pôt pas contegnir des caractèros de chaplâjo',
 'login-throttled' => 'Vos éd tentâ dèrriérement un trop grant nombro de branchements.
 Volyéd atendre devant que tornar èprovar.',
index 398dbf0..dbfda19 100644 (file)
@@ -639,6 +639,7 @@ Non esqueza personalizar as súas [[Special:Preferences|preferencias de {{SITENA
 'remembermypassword' => 'Lembrar o meu contrasinal neste ordenador (ata $1 {{PLURAL:$1|día|días}})',
 'securelogin-stick-https' => 'Permanecer conectado mediante as HTTPS despois de acceder',
 'yourdomainname' => 'O seu dominio:',
+'password-change-forbidden' => 'Non pode mudar os contrasinais neste wiki.',
 'externaldberror' => 'Ou ben se produciu un erro da base de datos na autenticación externa ou ben non se lle permite actualizar a súa conta externa.',
 'login' => 'Acceder ao sistema',
 'nav-login-createaccount' => 'Rexistro',
@@ -2348,6 +2349,8 @@ proceda con coidado.',
 'rollback' => 'Reverter as edicións',
 'rollback_short' => 'Reverter',
 'rollbacklink' => 'reverter',
+'rollbacklinkcount' => 'reverter $1 {{PLURAL:$1|edición|edicións}}',
+'rollbacklinkcount-morethan' => 'reverter máis de $1 {{PLURAL:$1|edición|edicións}}',
 'rollbackfailed' => 'Houbo un fallo ao reverter as edicións',
 'cantrollback' => 'Non se pode desfacer a edición; o último colaborador é o único autor desta páxina.',
 'alreadyrolled' => 'Non se pode desfacer a edición en "[[:$1]]" feita por [[User:$2|$2]] ([[User talk:$2|conversa]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); alguén máis editou ou desfixo os cambios desta páxina.
index 1ef04d8..0f96385 100644 (file)
@@ -770,6 +770,7 @@ $2',
 'remembermypassword' => 'שמירת הכניסה שלי בדפדפן הזה (ל{{PLURAL:$1|יום אחד|־$1 ימים|יומיים}} לכל היותר)',
 'securelogin-stick-https' => 'המשך שימוש ב־HTTPS אחרי הכניסה',
 'yourdomainname' => 'המתחם שלך:',
+'password-change-forbidden' => 'אינכם יכולים לשנות סיסמאות באתר זה.',
 'externaldberror' => 'הייתה שגיאה בבסיס הנתונים של ההזדהות, או שאינכם רשאים לעדכן את חשבונכם החיצוני.',
 'login' => 'כניסה לחשבון',
 'nav-login-createaccount' => 'כניסה לחשבון / הרשמה',
@@ -2118,9 +2119,9 @@ $1',
 
 'disambiguations' => 'דפים שמקשרים לדפי פירושונים',
 'disambiguationspage' => 'Template:פירושונים',
-'disambiguations-text' => "×\94×\93פ×\99×\9d ×\94×\91×\90×\99×\9d ×\9eקשר×\99×\9d ×\9c'''×\93פ×\99 פירושונים'''.
¢×\9c×\99×\94×\9d ×\9cקשר ×\9c×\93×£ ×\94× ×\95ש×\90 ×\94ר×\9c×\95×\95× ×\98×\99 ×\91×\9eק×\95×\9d ×\96×\90ת.<br />
\94×\93×£ × ×\97ש×\91 ×\9c×\93×£ ×¤×\99ר×\95ש×\95× ×\99×\9d ×\90×\9d ×\94×\95×\90 ×\9eשת×\9eש ×\91ת×\91× ×\99ת ×\94×\9eק×\95שרת ×\9e×\94×\93×£ [[MediaWiki:Disambiguationspage]].",
+'disambiguations-text' => "×\91×\93פ×\99×\9d ×\94×\91×\90×\99×\9d ×\99ש ×\9cפ×\97×\95ת ×§×\99ש×\95ר ×\90×\97×\93 ×\9c'''×\93×£ פירושונים'''.
\99×\99ת×\9b×\9f ×©×¢×\9c×\99×\94×\9d ×\9cקשר ×\91×\9eק×\95×\9d ×\96×\90ת ×\9c×\93×£ ×\9eת×\90×\99×\9d ×\99×\95תר.<br />
+דף נחשב לדף פירושונים אם הוא משתמש בתבנית המקושרת מהדף [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'הפניות כפולות',
 'doubleredirectstext' => 'בדף הזה מופיעה רשימת דפי הפניה שמפנים לדפי הפניה אחרים.
@@ -2463,6 +2464,8 @@ $UNWATCHURL
 'rollback' => 'שחזור עריכות',
 'rollback_short' => 'שחזור',
 'rollbacklink' => 'שחזור',
+'rollbacklinkcount' => 'שחזור {{PLURAL:$1|עריכה אחת|$1 עריכות}}',
+'rollbacklinkcount-morethan' => 'שחזור יותר מ{{PLURAL:$1|עריכה אחת|־$1 עריכות}}',
 'rollbackfailed' => 'השחזור נכשל',
 'cantrollback' => 'לא ניתן לשחזר את העריכה;
 התורם האחרון הוא היחיד שכתב בדף זה.',
index 56d624b..3182ca9 100644 (file)
@@ -10,6 +10,7 @@
  * @author Abdul Kadir
  * @author AndySingh
  * @author Bihari
+ * @author Brijlal
  * @author Girmitya
  * @author Kaganer
  * @author Malafaya
@@ -1563,6 +1564,7 @@ Agar jo problem fir nai khatam hoe tab [[Special:ListUsers/sysop|administrator]]
 'lockmanager-notlocked' => '"$1" ke  nai khole sakaa hae; ii lock nai hae.',
 'lockmanager-fail-closelock' => '"$1" ke khatir lock file ke nai band kare sakaa hae.',
 'lockmanager-fail-deletelock' => '"$1" ke khatir lock file ke nai mitae sakaa hae.',
+'lockmanager-fail-openlock' => '"$1" ke khatir lock file ke nai khola jaae sake hae',
 
 # Special:UploadStash
 'uploadstash' => 'Gupt file ke upload karo',
@@ -1869,6 +1871,7 @@ Ketna chij dekhae hae ke aap kamti kare saktaa hae sadasya ke naam (case-sensiti
 'allpagesbadtitle' => 'Dewa gias panna ke title kharaab rahaa nai to inter-language nai to inter-wiki ke prefix hai.
 Is me ek nai to jaada akchhar hai jiske title me nai kaam me lawa jaae sake hai.',
 'allpages-bad-ns' => '{{SITENAME}} me namespace "$1" nai hai.',
+'allpages-hide-redirects' => 'Redirects lukao',
 
 # Special:Categories
 'categories' => 'Vibhag',
@@ -2204,6 +2207,7 @@ saait aur koi panna ke pahile jaise kar diis hai.',
 
 Nawaa mitawa gais aur badlao ke ulta karaa gais panna ke dekhe ke khatir [[Special:Log/delete|deletion log]] ke dekho.",
 'undelete-header' => 'Nawaa mitawa gais panna ke dekhe ke khatir [[Special:Log/delete|the deletion log]] ke dekho.',
+'undelete-search-title' => 'Mitawa gais panna ke khojo',
 'undelete-search-box' => 'Mitawa gais panna ke khojo',
 'undelete-search-prefix' => 'Uu panna ke dekhao jon ki isse suruu hoe hai:',
 'undelete-search-submit' => 'Khojo',
@@ -2318,6 +2322,7 @@ Ii rukawat pe fir se bichar kare ke khatir [[Special:BlockList|IP block list]] k
 'ipusubmit' => 'Ii rukawat ke hatao',
 'unblocked' => '[[User:$1|$1]] ke rukawat ke khalaas kar dewa gais hai',
 'unblocked-id' => 'Roko $1 ke khalaas kar dewa gais hai',
+'blocklist' => 'Roka gais sadasya',
 'ipblocklist' => 'Roka gais sadasya',
 'ipblocklist-legend' => 'Ek roka gais sadasya ke khojo',
 'blocklist-userblocks' => 'Roka gais account ke lukao',
@@ -2339,6 +2344,7 @@ Ii rukawat pe fir se bichar kare ke khatir [[Special:BlockList|IP block list]] k
 'unblocklink' => 'rukawat khatam karo',
 'change-blocklink' => 'rukawat ke badlo',
 'contribslink' => 'yogdaan',
+'emaillink' => 'E-mail bhejo',
 'autoblocker' => 'Apne se rokaa gais hai kaahe ki aap ke IP address ke abhi haali "[[User:$1|$1]]" use karis hai.
 $1 ke roke ke kaaran hai: "$2"',
 'blocklogpage' => 'Suchi ke roko',
@@ -2421,6 +2427,17 @@ Aap ke jimewaari hai ki dekho ki links right jagah point kare hai.
 Khayal rakhna ki agar jo nawaa title ke naam ke ek panna hai tab panna move '''nai''' hae saki jab tak ki panna khali nahi hai yah to redirect hai yah to koi pahile ke edit itihaas nahi hai.
 Iske matlab ii hai ki aap ek panna ke naam badal ke wahi naam rakh de sakta hai jon naam pahile rahaa aur agar aap mistake karaa tab abhi ke panna ke overwrite nahi kare saktaa.
 
+'''CHETAWANI'''
+Ii ek lokpriye panna ke galti se badal de sake hai;
+meharbaani kar ke aap aapan karya ke natiija ke baare me socho aage kuch kare se pahile.",
+'movepagetext-noredirectfixer' => "Niche ke form kaam me laae se panna ke naam badal jaai aur iske itihass nawaa naam ke niche hoe jaai.
+Puraana title nawaa title pe redirect hoe jaai.
+Ii jaruri hae ki aap  [[Special:DoubleRedirects|double]] nai to [[Special:BrokenRedirects|broken redirects]] ke check karo.
+Aap ke jimewaari hai ki dekho ki links right jagah point kare hai.
+
+Khayal rakhna ki agar jo nawaa title ke naam ke ek panna hai tab panna move '''nai''' hae saki jab tak ki panna khali nahi hai yah to redirect hai yah to koi pahile ke edit itihaas nahi hai.
+Iske matlab ii hai ki aap ek panna ke naam badal ke wahi naam rakh de sakta hai jon naam pahile rahaa aur agar aap mistake karaa tab abhi ke panna ke overwrite nahi kare saktaa.
+
 '''CHETAWANI'''
 Ii ek lokpriye panna ke galti se badal de sake hai;
 meharbaani kar ke aap aapan karya ke natiija ke baare me socho aage kuch kare se pahile.",
@@ -2683,7 +2700,11 @@ Ii saait ii kaaran se hoi ki panna ke ek jorr koi blacklisted external site se h
 'spam_blanking' => 'Sab badlao jisme $1 se jorr hai, ke mitawa jaawe hai',
 
 # Info page
+'pageinfo-header-watchlist' => 'Dhyan suchi',
+'pageinfo-header-views' => 'Ketna angle se dekha jaae hae',
 'pageinfo-subjectpage' => 'Panna',
+'pageinfo-edits' => 'Etna badlao rahaa',
+'pageinfo-viewsperedit' => 'Har ek badlao ke ketna dafe dekha gais hae',
 
 # Patrolling
 'markaspatrolleddiff' => 'Mark karo ke pahraa dewa jaawe hai',
index 685779d..9da7764 100644 (file)
@@ -13,6 +13,7 @@
  * @author Kguirnela
  * @author Oxyzen
  * @author Tagimata
+ * @author Taylortheturtle
  */
 
 $messages = array(
@@ -1530,6 +1531,7 @@ Pwede mo matan-aw ang iya ginhalinan',
 'tooltip-rollback' => '"Panumbalik" ginabalik ang (mga) na-islan sa sini nga pahina sa pinaka ulihi nga kontributor sa isa lang ka klik',
 'tooltip-undo' => '"Indi pag-obrahon" ginabalik ang gin-islan kag gabukas sa isaln form sa may prebyu mode.
 Gapasugot sa pagdugang sang rason sa kabilugan.',
+'tooltip-summary' => 'Maghatag sing diutay nga eksplikasyon',
 
 # Browsing diffs
 'previousdiff' => '← Mas daan nga na-islan',
index 20a65da..dcc3748 100644 (file)
@@ -321,7 +321,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Sakrij pregledane izmjene u nedavnim promjenama',
 'tog-newpageshidepatrolled' => 'Sakrij pregledane stranice iz popisa novih stranica',
 'tog-extendwatchlist' => 'Proširi popis praćenih stranica tako da prikaže sve promjene, ne samo najnovije',
-'tog-usenewrc' => 'Koristi poboljšan izgled nedavnih promjena (zahtjeva JavaScripte)',
+'tog-usenewrc' => 'Rabi poboljšan izgled nedavnih promjena (zahtijeva JavaScript)',
 'tog-numberheadings' => 'Automatski označi naslove brojevima',
 'tog-showtoolbar' => 'Prikaži traku s alatima za uređivanje',
 'tog-editondblclick' => 'Dvoklik otvara uređivanje stranice (JavaScript)',
@@ -330,16 +330,16 @@ $messages = array(
 'tog-showtoc' => 'U člancima s više od tri odlomka prikaži tablicu sadržaja.',
 'tog-rememberpassword' => 'Zapamti moju lozinku u ovom pregledniku (najduže $1 {{PLURAL:$1|dan|dana|dana}})',
 'tog-watchcreations' => 'Dodaj članke koje kreiram na moj popis praćenja',
-'tog-watchdefault' => 'Dodaj sve nove i izmijenjene stranice u popis praćenja',
-'tog-watchmoves' => 'Dodaj sve stranice koje premjestim na popis praćenja',
-'tog-watchdeletion' => 'Dodaj sve stranice koje izbrišem na popis praćenja',
+'tog-watchdefault' => 'Dodaj svaku stranicu koju uredim na moj popis praćenja',
+'tog-watchmoves' => 'Dodaj stranice i datoteke koje premjestim na moj popis praćenja',
+'tog-watchdeletion' => 'Dodaj stranice i datoteke koje izbrišem na popis praćenja',
 'tog-minordefault' => 'Normalno označavaj sve moje izmjene kao manje',
 'tog-previewontop' => 'Prikaži kako će stranica izgledati iznad okvira za uređivanje',
 'tog-previewonfirst' => 'Prikaži kako će stranica izgledati čim otvorim uređivanje',
 'tog-nocache' => 'Isključi međuspremnik (cache) stranica u pregledniku',
 'tog-enotifwatchlistpages' => 'Pošalji mi e-mail kod izmjene stranice u popisu praćenja',
 'tog-enotifusertalkpages' => 'Pošalji mi e-mail kod izmjene moje stranice za razgovor',
-'tog-enotifminoredits' => 'Pošalji mi e-mail i kod manjih izmjena',
+'tog-enotifminoredits' => 'Pošalji mi e-mail i kod manjih izmjena stranice',
 'tog-enotifrevealaddr' => 'Prikaži moju e-mail adresu u obavijestima o izmjeni',
 'tog-shownumberswatching' => 'Prikaži broj suradnika koji prate stranicu (u nedavnim izmjenama, popisu praćenja i samim člancima)',
 'tog-oldsig' => 'Pregled postojećeg potpisa:',
@@ -977,7 +977,7 @@ Posljednja stavka evidencije blokiranja navedena je niže kao napomena:',
 'userinvalidcssjstitle' => "'''Upozorenje:''' Nema sučelja pod imenom \"\$1\". Ne zaboravite da imena stranica s .css and .js kodom počinju malim slovom, npr. {{ns:user}}:Mate/vector.css, a ne {{ns:user}}:Mate/Vector.css.",
 'updated' => '(Ažurirano)',
 'note' => "'''Napomena:'''",
-'previewnote' => "'''Ne zaboravite da je ovo samo pregled kako će stranica izgledati i da stranica još nije snimljena!'''",
+'previewnote' => "'''Ne zaboravite da je ovo samo pregled kako će stranica izgledati. Vaše uređivanje još nije snimljeno!'''",
 'continue-editing' => 'Nastavi uređivati',
 'previewconflict' => 'Ovaj pregled odražava stanje u gornjem polju za unos koje će biti sačuvano
 ako pritisnete "Sačuvaj stranicu".',
@@ -1209,7 +1209,7 @@ Provjerite evidencije.',
 # Suppression log
 'suppressionlog' => 'Evidencije sakrivanja',
 'suppressionlogtext' => 'Slijedi popis brisanja i blokiranja koji uključuje sadržaj skriven za administratore.
-Vidi [[Special:BlockList|Popis blokiranih IP adresa]] za popis trenutačno aktivnih blokiranih adresa.',
+Vidi [[Special:BlockList|Popis blokiranja]] za popis trenutačno aktivnih blokiranih adresa.',
 
 # History merging
 'mergehistory' => 'Spoji povijesti starih izmjena stranice',
@@ -2513,8 +2513,8 @@ vandalizirane).',
 'ipb-confirm' => 'Potvrdi blokiranje',
 'badipaddress' => 'Nevaljana IP adresa.',
 'blockipsuccesssub' => 'Uspješno blokirano',
-'blockipsuccesstext' => 'Suradnik [[Special:Contributions/$1|$1]] je blokiran.<br />
-Pogledaj [[Special:BlockList|popis blokiranih IP adresa]] za pregled.',
+'blockipsuccesstext' => '{{GENDER:$1|Suradnik|Suradnica}} [[Special:Contributions/$1|$1]] je {{GENDER:$1|blokiran|blokirana}}.<br />
+Pogledajte [[Special:BlockList|popis blokiranja]] za pregled blokiranih suradnika.',
 'ipb-blockingself' => 'Blokirat ćete se! Jeste li sigurni da to želite?',
 'ipb-confirmhideuser' => 'Upravo ćete blokirati suradnika koji ima mogućnost "sakrij suradnika" omogućenu. To će sakriti suradničko ime na svim popisima i evidencijama. Jeste li sigurni da želite to učiniti?',
 'ipb-edit-dropdown' => 'Uredi razloge blokiranja',
@@ -2566,7 +2566,9 @@ Evidencija blokiranja je prikazan ispod kao napomena:',
 Zapisnik skrivanja je prikazan ispod kao napomena:',
 'blocklogentry' => 'Blokiran je "[[$1]]" na rok $2 $3',
 'reblock-logentry' => 'promijenjene postavke blokiranja za [[$1]] na rok od $2 $3',
-'blocklogtext' => 'Ovo je evidencija blokiranja i deblokiranja. Na popisu nema automatski blokiranih IP adresa. Za popis trenutačnih zabrana i blokiranja vidi [[Special:BlockList|popis IP blokiranja]].',
+'blocklogtext' => 'Ovo je evidencija blokiranja i deblokiranja.
+Na popisu nema automatski blokiranih IP adresa.
+Za popis trenutačnih zabrana i blokiranja vidi [[Special:BlockList|popis blokiranja]].',
 'unblocklogentry' => 'Deblokiran "$1"',
 'block-log-flags-anononly' => 'samo za neprijavljene suradnike',
 'block-log-flags-nocreate' => 'otvaranje novih suradničkih imena nije moguće',
index 69d6704..065c69d 100644 (file)
@@ -564,6 +564,7 @@ Twoje konto bu wutworjene. Njezabudź swoje nastajenja za [[Special:Preferences|
 'remembermypassword' => 'Na tutym ličaku přizjewjeny wostać (za maksimalnje $1 {{PLURAL:$1|dźeń|dnjej|dny|dnjow}})',
 'securelogin-stick-https' => 'Po přizjewjenju z HTTPS zwjazany wostać',
 'yourdomainname' => 'Twoja domejna:',
+'password-change-forbidden' => 'Njemóžeš hesła na tutym wikiju změnić.',
 'externaldberror' => 'Běše pak eksterny zmylk awtentifikacije datoweje banki, pak njesměš swoje eksterne konto aktualizować.',
 'login' => 'Přizjewić',
 'nav-login-createaccount' => 'Konto wutworić abo so přizjewić',
@@ -1863,7 +1864,7 @@ Snano chceš wopisanje na jeje [$2 stronje datajoweho wopisanja] wobdźěłać.'
 
 'disambiguations' => 'Strony, kotrež na strony wjacezmyslnosće wotkazuja',
 'disambiguationspage' => 'Template:Wjacezmyslnosć',
-'disambiguations-text' => "Slědowace strony na '''rozjasnjenje wjacezmyslnosće''' wotkazuja. Měli město toho na poprawnu stronu wotkazać.<br />Strona so jako rozjasnjenje wjacezmyslnosće zarjaduje, jeli předłohu wužiwa, na kotruž so wot [[MediaWiki:Disambiguationspage]] wotkazuje.",
+'disambiguations-text' => "Slědowace strony wobsahuja znajmjeńša jedyn wotkaz k stronje '''rozjasnjenja wjacezmyslnosće'''. Měli město toho na poprawnu stronu wotkazać.<br />Maja stronu za stronu rozjasnjenja wjacezmyslnosće, jeli předłohu wužiwa, na kotruž so wot [[MediaWiki:Disambiguationspage]] wotkazuje.",
 
 'doubleredirects' => 'Dwójne daleposrědkowanja',
 'doubleredirectstext' => 'Tuta strona nalistuje strony, kotrež k druhim daleposrědkowanskim stronam dale posrědkuja.
@@ -2203,6 +2204,8 @@ Prošu potwjerdź, zo maš wotpohlad to činić, zo rozumiš sćěwki a zo to wo
 'rollback' => 'Změny cofnyć',
 'rollback_short' => 'Cofnyć',
 'rollbacklink' => 'Cofnyć',
+'rollbacklinkcount' => '$1 {{PLURAL:$1|změnu|změnje|změny|změnow}} cofnyć',
+'rollbacklinkcount-morethan' => 'přez $1 {{PLURAL:$1|změnu|změnje|změny|změnow}} cofnyć',
 'rollbackfailed' => 'Cofnjenje njeporadźiło',
 'cantrollback' => 'Njemóžno změnu cofnyć; strona nima druhich awtorow.',
 'alreadyrolled' => 'Njemóžno poslednu změnu [[:$1]] přez wužiwarja [[User:$2|$2]] ([[User talk:$2|Diskusija]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) cofnyć; něchtó druhi je stronu wobdźěłał abo změnu hižo cofnył.
index 92849e8..4491f56 100644 (file)
@@ -1073,6 +1073,7 @@ Néhány sablon nem fog megjelenni.',
 'parser-template-loop-warning' => 'Végtelen ciklus a következő sablonban: [[$1]]',
 'parser-template-recursion-depth-warning' => 'A sablon rekurzív beillesztésének mélysége átlépte a határérékét ($1)',
 'language-converter-depth-warning' => 'A nyelvátalakító rekurzióinak száma túllépve ($1)',
+'expansion-depth-exceeded-category' => 'Lapok, melyeken a sablonok kibontása meghaladja a megengedett szintet',
 
 # "Undo" feature
 'undo-success' => 'A szerkesztés visszavonható. Kérlek ellenőrizd alább a változásokat, hogy valóban ezt szeretnéd-e tenni, majd kattints a lap mentése gombra a visszavonás véglegesítéséhez.',
index 8fc05b0..1e0057d 100644 (file)
@@ -560,6 +560,7 @@ Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].
 'remembermypassword' => 'Memorar mi contrasigno in iste navigator (pro un maximo de $1 {{PLURAL:$1|die|dies}})',
 'securelogin-stick-https' => 'Remaner connectite via HTTPS post apertura de session',
 'yourdomainname' => 'Tu dominio:',
+'password-change-forbidden' => 'Non es possibile cambiar le contrasigno in iste wiki.',
 'externaldberror' => 'O il occurreva un error in le base de datos de authentication, o tu non ha le autorisation de actualisar tu conto externe.',
 'login' => 'Aperir session',
 'nav-login-createaccount' => 'Aperir session / crear conto',
@@ -1414,6 +1415,7 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'right-writeapi' => 'Uso del API pro modificar le wiki',
 'right-delete' => 'Deler paginas',
 'right-bigdelete' => 'Deler paginas con historias longe',
+'right-deletelogentry' => 'Deler e restaurar specific entratas del registro',
 'right-deleterevision' => 'Deler e restaurar versiones specific de paginas',
 'right-deletedhistory' => 'Vider entratas de historia delite, sin lor texto associate',
 'right-deletedtext' => 'Vider texto delite e differentias inter versiones delite',
@@ -1733,6 +1735,7 @@ Si le problema persiste, contacta un [[Special:ListUsers/sysop|administrator]].'
 'lockmanager-fail-releaselock' => 'Non poteva liberar le file de serratura pro "$1".',
 'lockmanager-fail-db-bucket' => 'Non poteva contactar sufficiente bases de datos de serratura in situla $1.',
 'lockmanager-fail-db-release' => 'Non poteva liberar le serraturas sur le base de datos $1.',
+'lockmanager-fail-svr-acquire' => 'Non poteva acquirer le serraturas sur le servitor $1.',
 'lockmanager-fail-svr-release' => 'Non poteva liberar le serraturas sur le servitor $1.',
 
 # ZipDirectoryReader
@@ -2287,6 +2290,8 @@ procede con caution.',
 'rollback' => 'Revocar modificationes',
 'rollback_short' => 'Revocar',
 'rollbacklink' => 'revocar',
+'rollbacklinkcount' => 'revocar $1 {{PLURAL:$1|modification|modificationes}}',
+'rollbacklinkcount-morethan' => 'revocar plus de $1 {{PLURAL:$1|modification|modificationes}}',
 'rollbackfailed' => 'Revocation fallite',
 'cantrollback' => 'Impossibile revocar le modification;
 le ultime contributor es le sol autor de iste pagina.',
@@ -2694,7 +2699,7 @@ Per favor selige un altere nomine.',
 'talkexists' => "'''Le pagina mesme ha essite renominate con successo, ma su pagina de discussion non poteva esser renominate proque il ja existe un con le nove titulo.
 Per favor fusiona los manualmente.'''",
 'movedto' => 'renominate a',
-'movetalk' => 'Renominar etiam su pagina de discussion',
+'movetalk' => 'Renominar le pagina de discussion associate',
 'move-subpages' => 'Renominar le subpaginas (usque a $1)',
 'move-talk-subpages' => 'Renominar le subpaginas del pagina de discussion (usque a $1)',
 'movepage-page-exists' => 'Le pagina $1 existe ja e non pote esser automaticamente superscribite.',
@@ -2825,8 +2830,8 @@ Salveguarda lo in tu computator e incarga lo hic.',
 'import-upload' => 'Incargar datos XML',
 'import-token-mismatch' => 'Perdita del datos del session. Per favor reprova.',
 'import-invalid-interwiki' => 'Non pote importar ab le wiki specificate.',
-'import-error-edit' => 'Le pagina "$1" non es importate proque tu non ha le permission de modificar lo.',
-'import-error-create' => 'Le pagina "$1" non es importate proque tu non ha le permission de crear lo.',
+'import-error-edit' => 'Le pagina "$1" non es importate perque tu non ha le permission de modificar lo.',
+'import-error-create' => 'Le pagina "$1" non es importate perque tu non ha le permission de crear lo.',
 'import-error-interwiki' => 'Le pagina "$1" non es importate perque su nomine es reservate pro ligation externe (interwiki).',
 'import-error-special' => 'Le pagina "$1" non es importate perque illo pertine a un spatio de nomines special que non permitte paginas.',
 'import-error-invalid' => 'Le pagina "$1" non es importate perque su nomine es invalide.',
@@ -3890,6 +3895,4 @@ Si non, tu pote usar le formulario facile hic infra. Tu commento essera addite a
 'duration-centuries' => '$1 {{PLURAL:$1|seculo|seculos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millennio|millennios}}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Non poteva acquirer le serraturas sur le servitor $1.',
 );
index 52c1808..718a2af 100644 (file)
@@ -244,15 +244,15 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Virkja hlutabreytingu með því að hægrismella á hlutafyrirsagnir (JavaScript)',
 'tog-showtoc' => 'Sýna efnisyfirlit (fyrir síður með meira en 3 fyrirsagnir)',
 'tog-rememberpassword' => 'Muna innskráninguna mína í þessum vafra (í allt að $1 {{PLURAL:$1|dag|daga}})',
-'tog-watchcreations' => 'Bæta síðum sem ég bý til á vaktlistann minn',
-'tog-watchdefault' => 'Bæta síðum sem ég breyti á vaktlistann minn',
-'tog-watchmoves' => 'Bæta síðum sem ég færi á vaktlistann minn',
-'tog-watchdeletion' => 'Bæta síðum sem ég eyði á vaktlistann minn',
+'tog-watchcreations' => 'Bæta síðum sem ég bý til og skrám sem ég hleð inn á vaktlistann minn',
+'tog-watchdefault' => 'Bæta síðum og skrám sem ég breyti á vaktlistann minn',
+'tog-watchmoves' => 'Bæta síðum og skrám sem ég færi á vaktlistann minn',
+'tog-watchdeletion' => 'Bæta síðum og skrám sem ég eyði á vaktlistann minn',
 'tog-minordefault' => 'Merkja allar breytingar sem minniháttar sjálfgefið',
 'tog-previewontop' => 'Sýna forskoðun á undan breytingarkassanum',
 'tog-previewonfirst' => 'Sýna forskoðun með fyrstu breytingu',
 'tog-nocache' => 'Slökkva á flýtiminni vafrans',
-'tog-enotifwatchlistpages' => 'Senda mér tölvupóst þegar síðu á vaktlistanum mínu er breytt',
+'tog-enotifwatchlistpages' => 'Senda mér tölvupóst þegar síðu eða skrá á vaktlistanum mínu er breytt',
 'tog-enotifusertalkpages' => 'Senda mér tölvupóst þegar notandaspjallinu mínu er breytt',
 'tog-enotifminoredits' => 'Senda mér einnig tölvupóst vegna minniháttar breytinga á síðum',
 'tog-enotifrevealaddr' => 'Gefa upp netfang mitt í tilkynningarpóstum',
@@ -617,6 +617,10 @@ $2',
 'filereadonlyerror' => 'Ekki var hægt að breyta skránni "$1" því skráin í skráarsafninu "$2" er engöngu hægt að lesa.
 
 Möppudýrið sem læsti skránni gaf þessa ástæðu: "\'\'$3\'\'".',
+'invalidtitle-knownnamespace' => 'Ógildur titill í nafnrými "$2" og með textann "$3"',
+'invalidtitle-unknownnamespace' => 'Ógildur titill með óþekkt nafnrými númer $1 og texta "$2"',
+'exception-nologin' => 'Óinnskráð(ur)',
+'exception-nologin-text' => 'Þessi síða eða aðgerð krefst þess að þú sért skráður inn á þessum wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Slæm stilling: óþekktur veiruskannari: ''$1''",
@@ -984,6 +988,7 @@ Svo virðist sem henni hafi verið eytt.',
 'edit-no-change' => 'Breyting þín var hunsuð, því engin breyting var á textanum.',
 'edit-already-exists' => 'Gat ekki skapað nýja síðu.
 Hún er nú þegar til.',
+'defaultmessagetext' => 'Sjálfgefinn skilaboða texti',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''Viðvörun:''' Þessi síða inniheldur of mörg vinnslufrek aðgerðar þáttunar köll.
@@ -1242,6 +1247,7 @@ Athugaðu að skrár þeirra yfir {{SITENAME}}-efni kunna að vera úreltar.',
 'prefs-beta' => 'Stillingar á prufustigi',
 'prefs-datetime' => 'Tímasnið og tímabelti',
 'prefs-labs' => 'Stillingar á tilraunastigi',
+'prefs-user-pages' => 'Notendasíður',
 'prefs-personal' => 'Notandaupplýsingar',
 'prefs-rc' => 'Nýlegar breytingar',
 'prefs-watchlist' => 'Vaktlistinn',
@@ -1420,6 +1426,7 @@ Tölvupóstfang þitt er ekki gefið upp þegar aðrir notendur hafa samband vi
 'right-writeapi' => 'Nota API skrifun',
 'right-delete' => 'Eyða síðum',
 'right-bigdelete' => 'Eyða síðum með stórum breytingaskrám',
+'right-deletelogentry' => 'Eyða og endurvekja sérstakar aðgerða færslur',
 'right-deleterevision' => 'Eyða og endurvekja sérstaka breytignar á síðum',
 'right-deletedhistory' => 'Skoða eyddar færslur úr breytingarskrá, án efnis þeirra',
 'right-deletedtext' => 'Sjá eyddan texta og breytingar á milli eyddra útgáfna',
@@ -1700,8 +1707,8 @@ Ef vandamálið lagast ekki, hafðu samband við [[Special:ListUsers/sysop|stjó
 'backend-fail-writetemp' => 'Gat ekki skrifað í tímabundna skrá.',
 'backend-fail-closetemp' => 'Mistókst að loka tímabundinni skrá.',
 'backend-fail-read' => 'Mistókst að lesa skrá $1.',
-'backend-fail-create' => 'Mistókst að búa til skrá $1.',
-'backend-fail-maxsize' => 'Mistókst að búa til skránna $1 því hún er stærri en {{PLURAL:$2|eitt bæti|$2 bæti}}.',
+'backend-fail-create' => 'Mistókst að skrifa skrá $1.',
+'backend-fail-maxsize' => 'Mistókst að skrifa skránna $1 því hún er stærri en {{PLURAL:$2|eitt bæti|$2 bæti}}.',
 'backend-fail-readonly' => 'Gagnabankann "$1" er engöngu hægt að lesa í augnablikinu. Ástæðan sem var gefin er: "\'\'$2\'\'"',
 'backend-fail-connect' => 'Mistókst að tengjast gagnabankanum "$1".',
 'backend-fail-internal' => 'Óþekkt villa átti sér stað í gagnabankanum "$1".',
@@ -2005,6 +2012,7 @@ Vinsamlegast athugið að aðrar vefsíður gætu tengt beint í skrár héðan,
 Þú getur takmarkað listann með því að velja tegund aðgerðaskráar, notandanafn, eða síðu.',
 'logempty' => 'Engin slík aðgerð fannst.',
 'log-title-wildcard' => 'Leita að titlum sem byrja á þessum texta',
+'showhideselectedlogentries' => 'Sýna/fela valdar aðgerða færslur',
 
 # Special:AllPages
 'allpages' => 'Allar síður',
@@ -2024,6 +2032,10 @@ Vinsamlegast athugið að aðrar vefsíður gætu tengt beint í skrár héðan,
 'allpages-bad-ns' => '{{SITENAME}} hefur ekki nafnrými „$1“.',
 'allpages-hide-redirects' => 'Fela tilvísanir',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Þú ert að skoða útgáfu síðunnar úr skyndiminni, sem getur verið allt að $1 gömul.',
+'cachedspecial-refresh-now' => 'Skoða síðustu',
+
 # Special:Categories
 'categories' => 'Flokkar',
 'categoriespagetext' => 'Eftirfarandi {{PLURAL:$1|flokkur inniheldur|flokkar innihalda}} síður eða skrár.
@@ -2031,7 +2043,7 @@ Vinsamlegast athugið að aðrar vefsíður gætu tengt beint í skrár héðan,
 Sjá einnig [[Special:WantedCategories|eftirsótta flokka]].',
 'categoriesfrom' => 'Sýna flokka frá:',
 'special-categories-sort-count' => 'raða eftir fjölda',
-'special-categories-sort-abc' => 'raða eftir stafrófinu',
+'special-categories-sort-abc' => 'raða í stafrófsröð',
 
 # Special:DeletedContributions
 'deletedcontributions' => 'Eyddar breytingar notanda',
@@ -2235,6 +2247,8 @@ Eyðing síðunnar gæti truflað vinnslu gangnasafns {{SITENAME}}; haltu áfram
 'rollback' => 'Taka aftur breytingar',
 'rollback_short' => 'Taka aftur',
 'rollbacklink' => 'taka aftur',
+'rollbacklinkcount' => 'taka aftur $1 {{PLURAL:$1|breytingu|breytingar}}',
+'rollbacklinkcount-morethan' => 'taka aftur fleiri en $1 {{PLURAL:$1|breytingu|breytingar}}',
 'rollbackfailed' => 'Mistókst að taka aftur',
 'cantrollback' => 'Ekki hægt að taka aftur breytingu, síðasti höfundur er eini höfundur þessarar síðu.',
 'alreadyrolled' => 'Ekki var hægt að taka síðustu breytingu [[:$1]] eftir [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) til baka;
@@ -2301,7 +2315,7 @@ Núverandi staða síðunnar er '''$1''':",
 ** Breytingarstríð
 ** Síða með margar heimsóknir',
 'protect-edit-reasonlist' => 'Breyta verndarástæðum',
-'protect-expiry-options' => '1 tím:1 hour,1 dag:1 day,1 viku:1 week,2 vikur:2 weeks,1 mánuð:1 month,3 mánuði:3 months,6 mánuði:6 months,1 ár:1 year,aldrei:infinite',
+'protect-expiry-options' => '1 tími:1 hour,1 dag:1 day,1 viku:1 week,2 vikur:2 weeks,1 mánuð:1 month,3 mánuði:3 months,6 mánuði:6 months,1 ár:1 year,aldrei:infinite',
 'restriction-type' => 'Réttindi:',
 'restriction-level' => 'Takmarkaði við:',
 'minimum-size' => 'Lágmarksstærð',
@@ -2466,7 +2480,7 @@ Gefðu nákvæma skýringu að neðan (til dæmis, með því að vísa í þær
 'badipaddress' => 'Ógilt vistfang',
 'blockipsuccesssub' => 'Bann tókst',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] hefur verið bannaður/bönnuð.<br />
-Sjá [[Special:BlockList|bannaðar notendur og vistföng]] fyrir yfirlit yfir núverandi bönn.',
+Sjá [[Special:BlockList|bannaðir notendur og vistföng]] fyrir yfirlit yfir núverandi bönn.',
 'ipb-blockingself' => 'Þú ert í þann mund að banna sjálfan þig! Ertu viss um að þú viljir gera það?',
 'ipb-confirmhideuser' => 'Þú ert í þann mund að banna notenda sem er falinn. Notendanafn hans mun ekki birtast í listum og aðgerðarskrám. Ertu viss um að þú viljir gera það?',
 'ipb-edit-dropdown' => 'Breyta ástæðu fyrir banni',
@@ -2684,7 +2698,7 @@ Ef síðari möguleikinn á við getur þú einnig notað tengil, til dæmis
 # Namespace 8 related
 'allmessages' => 'Meldingar',
 'allmessagesname' => 'Titill',
-'allmessagesdefault' => 'Sjálfgefinn texti',
+'allmessagesdefault' => 'Sjálfgefinn skilaboða texti',
 'allmessagescurrent' => 'Núverandi texti',
 'allmessagestext' => 'Þetta er listi yfir kerfismeldingar í Melding-nafnrýminu.
 Gjörðu svo vel og heimsæktu [//www.mediawiki.org/wiki/Localisation MediaWiki-staðfæringuna] og [//translatewiki.net translatewiki.net] ef þú vilt taka þátt í almennri MediaWiki-staðfæringu.',
@@ -2751,6 +2765,9 @@ Vinsamlegast reyndu aftur.',
 'import-invalid-interwiki' => 'Get ekki flutt inn frá þessum wiki.',
 'import-error-edit' => 'Síðan "$1" var ekki flutt inn því þú hefur ekki réttindi til að breyta henni.',
 'import-error-create' => 'Síðan "$1" var ekki flutt inn því þú hefur ekki réttindi til að stofna hana.',
+'import-error-interwiki' => 'Síðan "$1" var ekki flutt inn því nafn hennar er frátekið fyrir ytri tengla (tungumálatengla).',
+'import-error-special' => 'Síðan "$1" var ekki flutt inn því hún tilheyrir ákveðnu nafnrými sem leyfir ekki síður.',
+'import-error-invalid' => 'Síðan "$1" var ekki flutt inn því nafn hennar er ógilt.',
 
 # Import log
 'importlogpage' => 'Innflutningsskrá',
@@ -2761,6 +2778,8 @@ Vinsamlegast reyndu aftur.',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|breyting|breytingar}} frá $2',
 
 # JavaScriptTest
+'javascripttest' => 'JavaScript prófun',
+'javascripttest-disabled' => 'Þessi möguleiki hefur ekki verið virkjaður á þessum wiki.',
 'javascripttest-pagetext-skins' => 'Veldu þema sem á að keyra prófanirnar á:',
 
 # Tooltip help for the actions
@@ -3648,7 +3667,9 @@ Ef ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemd
 'api-error-duplicate-archive-popup-title' => 'Eins {{PLURAL:$1|skrá|skrár}} sem {{PLURAL:$1|hefur|hafa}} þegar verið eytt.',
 'api-error-duplicate-popup-title' => '{{PLURAL:$1|Afrituð skrá|Afritaðar skrár}}',
 'api-error-empty-file' => 'Skráin sem þú valdir er tóm.',
+'api-error-emptypage' => 'Stofnun nýrra, tómra síðna er óheimil.',
 'api-error-fetchfileerror' => 'Innri villa: Mistókst að sækja skránna.',
+'api-error-fileexists-forbidden' => 'Skrá með nafninu "$1" er þegar til og ekki er hægt að yfirskrifa hana.',
 'api-error-file-too-large' => 'Skráin sem þú valdir er of stór.',
 'api-error-filename-tooshort' => 'Skráarnafnið er of stutt',
 'api-error-filetype-banned' => 'Þessi gerð skráar er bönnuð.',
@@ -3672,6 +3693,7 @@ Ef ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemd
 'api-error-unknown-code' => 'Óþekkt villa: "$1"',
 'api-error-unknown-error' => 'Innri villa: Eitthvað fór úrskeiðis þegar að skráinni þinni var hlaðið inn.',
 'api-error-unknown-warning' => 'Óþekkt viðvörun: $1',
+'api-error-unknownerror' => 'Óþekkt villa: "$1".',
 'api-error-uploaddisabled' => 'Ekki er leyft að hlaða inn á þessum wiki.',
 'api-error-verification-error' => 'Þessi skrá gæti verið skemmd, eða með vitlausa skráarendingu.',
 
@@ -3684,5 +3706,6 @@ Ef ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemd
 'duration-years' => '$1 {{PLURAL:$1|ár|ár}}',
 'duration-decades' => '$1 {{PLURAL:$1|áratugur|áratugir}}',
 'duration-centuries' => '$1 {{PLURAL:$1|öld|aldir}}',
+'duration-millennia' => '$1 {{PLURAL:$1|árþúsund}}',
 
 );
index 0cd75bf..b07792d 100644 (file)
@@ -677,6 +677,7 @@ L'account è stato creato correttamente. Non dimenticare di personalizzare le [[
 'remembermypassword' => 'Ricorda la password su questo browser (per un massimo di $1 {{PLURAL:$1|giorno|giorni}})',
 'securelogin-stick-https' => 'Resta connesso attraverso HTTPS dopo il login',
 'yourdomainname' => 'Specificare il dominio',
+'password-change-forbidden' => 'Non è possibile modificare le password su questo wiki.',
 'externaldberror' => 'Si è verificato un errore con il server di autenticazione esterno, oppure non si dispone delle autorizzazioni necessarie per aggiornare il proprio accesso esterno.',
 'login' => 'Entra',
 'nav-login-createaccount' => 'Entra / registrati',
@@ -2309,6 +2310,8 @@ Consultare il log delle $2 per un elenco delle pagine cancellate di recente.',
 'rollback' => 'Annulla le modifiche',
 'rollback_short' => 'Rollback',
 'rollbacklink' => 'rollback',
+'rollbacklinkcount' => 'rollback di {{PLURAL:$1|una modifica|$1 modifiche}}',
+'rollbacklinkcount-morethan' => 'rollback di più di {{PLURAL:$1|una modifica|$1 modifiche}}',
 'rollbackfailed' => 'Rollback fallito',
 'cantrollback' => "Impossibile annullare le modifiche; l'utente che le ha effettuate è l'unico ad aver contribuito alla pagina.",
 'alreadyrolled' => 'Non è possibile annullare le modifiche apportate alla pagina [[:$1]] da parte di [[User:$2|$2]] ([[User talk:$2|discussione]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); un altro utente ha già modificato la pagina oppure ha effettuato il rollback.
@@ -3476,7 +3479,7 @@ I collegamenti successivi, sulla stessa riga, sono considerati come eccezioni (o
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'tutte',
-'namespacesall' => 'Tutti',
+'namespacesall' => 'tutti',
 'monthsall' => 'tutti',
 'limitall' => 'tutti',
 
index 8363296..a228007 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author 2nd-player
  * @author Akaniji
  * @author Alexsh
  * @author Ant176
@@ -755,6 +756,7 @@ $2',
 'filereadonlyerror' => 'ファイルリポジトリ「$2」が読み取り専用の状態にあるため、ファイル「$1」を変更できません。
 
 読み取り専用に設定した管理者からの説明:「$3」',
+'exception-nologin' => 'ログインしていません',
 
 # Virus scanner
 'virus-badscanner' => "環境設定が不適合です:不明なウイルス検知ソフトウェア:''$1''",
@@ -2159,9 +2161,9 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 
 'disambiguations' => '曖昧さ回避ページにリンクしているページ',
 'disambiguationspage' => 'Template:曖昧回避',
-'disambiguations-text' => "以ä¸\8bã\81®ã\83\9aã\83¼ã\82¸ã\81¯'''æ\9b\96æ\98§ã\81\95å\9b\9eé\81¿ã\83\9aã\83¼ã\82¸'''ã\81¸ã\83ªã\83³ã\82¯ã\81\97ã\81¦ã\81\84ます。
\81\93ã\82\8cã\82\89ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ã\80\81ã\82\88ã\82\8aé\81©ã\81\97ã\81\9f主é¡\8cã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\82\8bã\81¹ã\81\8dã\81§す。<br />
-[[MediaWiki:Disambiguationspage]]ã\81\8bã\82\89ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81\9fã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\81¯、曖昧さ回避ページと見なされます。",
+'disambiguations-text' => "以ä¸\8bã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81'''æ\9b\96æ\98§ã\81\95å\9b\9eé\81¿ã\83\9aã\83¼ã\82¸'''ã\81¸ã\81®ã\83ªã\83³ã\82¯ã\81\8c\80\8b以ä¸\8aã\81\82ã\82\8aます。
\81\9dã\81®ã\82\88ã\81\86ã\81ªã\83ªã\83³ã\82¯ã\81¯ã\80\81ã\82\88ã\82\8aé\81©å\88\87ã\81ªã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83ªã\83³ã\82¯ã\81«å¤\89æ\9b´ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾す。<br />
+[[MediaWiki:Disambiguationspage]]ã\81\8bã\82\89ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81\9fã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\81\8c、曖昧さ回避ページと見なされます。",
 
 'doubleredirects' => '二重転送',
 'doubleredirectstext' => 'これは他のリダイレクトページへのリダイレクトの一覧です。
@@ -2506,6 +2508,8 @@ $UNWATCHURL
 'rollback' => '編集を巻き戻し',
 'rollback_short' => '巻き戻し',
 'rollbacklink' => '巻き戻し',
+'rollbacklinkcount' => '$1個の{{PLURAL:$1|編集|編集}}を巻き戻し',
+'rollbacklinkcount-morethan' => '$1個以上の{{PLURAL:$1|編集|編集}}を巻き戻し',
 'rollbackfailed' => '巻き戻しに失敗しました',
 'cantrollback' => '編集を差し戻せません。
 最後の投稿者が、このページの唯一の作者です。',
index 8ba3f13..c5bd4a4 100644 (file)
@@ -1408,6 +1408,7 @@ $1",
 'right-writeapi' => 'API-ს გამოყენება ჩაწერისთვის',
 'right-delete' => 'გვერდების წაშლა',
 'right-bigdelete' => 'გრძელი ისტორიის გვერდების წაშლა',
+'right-deletelogentry' => 'ჟურნალის კონკრეტული ჩანაწერების წაშლა და აღდგენა',
 'right-deleterevision' => 'გვერდის კონკრეტული ვერსიების წაშლა და აღდგენა',
 'right-deletedhistory' => 'წაშლილი გვერდების ხილავა წაშლილ ტექსთან ურთიერთობის გარეშე',
 'right-deletedtext' => 'წაშლილი ტექსტის და განსხვავებების ხილვა.',
@@ -2258,6 +2259,8 @@ $UNWATCHURL
 'rollback' => 'რცვლილებების გაუქმება',
 'rollback_short' => 'სწრაფი გაუქმება',
 'rollbacklink' => 'სწრაფი გაუქმება',
+'rollbacklinkcount' => '$1 {{PLURAL:$1|ცვლილების|ცვლილების}} დაბრუნება',
+'rollbacklinkcount-morethan' => '$1-ზე მეტი {{PLURAL:$1|ცვლილების|ცვლილების}} დაბრუნება',
 'rollbackfailed' => 'შეცდომა გაუქმებისას',
 'cantrollback' => 'შეუძლებელია უწინდელი რედაქციის აღდგენა; ის, ვინც უკანასკნელი ცვლილებები შეიტანა, ამ სტატიის ერთადერთი ავტორია.',
 'alreadyrolled' => 'შეუძლებელია ბოლო ცვლილების გაუქმება [[:$1]], გაკეებული [[User:$2|$2]] ([[User talk:$2|განხილვა]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
index 774d391..28cdd6e 100644 (file)
@@ -560,7 +560,7 @@ Vurnayışê tu hama qeyd nıbiyo!",
 'yourtext' => 'Metnê to',
 'storedversion' => 'Metıno qeydkerde',
 'yourdiff' => 'Ferqi',
-'copyrightwarning' => "Diqet ke, iştırakê ke benê be pela {{SITENAME}}i, pêro bınê $2 de rakerde vêrenê (serba daêna melumati qaytê $1 ke).
+'copyrightwarning' => "Diqet ke, iştıraqê ke benê be pela {{SITENAME}}i, pêro bınê $2 de rakerde vêrenê (serba daêna melumati qaytê $1 ke).
 İştırakunê ho, eke nêwazena wa terefê binu ra bıvuriyê ya ki caunê binu ra vıla bê, o taw ita menuse.<br />
 Zobina ki ebe ita nustene ra sond wena ke nê iştıraki terefê to ra nuşiyê, ya çımê do rakerdey ra ya ki çımê do serbest ra kopya biyê.
 '''Gurêo ke ebe telifheqiye ra sevekiyo bê destur ita darde meke!'''",
@@ -1237,7 +1237,7 @@ Tı şikina sewiya sevekiyaena na pele bıvurnê, hema yê nae sevekiyaena qedem
 'sp-contributions-talk' => 'hurênais',
 'sp-contributions-search' => 'Ebe iştıraku cı feteliye',
 'sp-contributions-username' => 'IP ya ki karber:',
-'sp-contributions-toponly' => 'Teyna revizyonanê tewr peniyan bimocne',
+'sp-contributions-toponly' => 'Tenya rewizyonanê tewr peyniyan bimocne',
 'sp-contributions-submit' => 'Cı feteliye',
 
 # What links here
index e7f6e67..30efb61 100644 (file)
@@ -269,7 +269,7 @@ $messages = array(
 'tog-hidepatrolled' => 'លាក់​កំណែប្រែ​ដែល​បាន​ល្បាត នៅ​ក្នុង​បំលាស់ប្ដូរ​ថ្មីៗ',
 'tog-newpageshidepatrolled' => 'លាក់​ទំព័រ​ដែល​បាន​ល្បាត ពី​បញ្ជី​ទំព័រ​ថ្មី',
 'tog-extendwatchlist' => 'ពង្រីក​បញ្ជីតាមដាន​ដើម្បី​បង្ហាញ​គ្រប់​បំលាស់ប្ដូរ មិន​មែន​ត្រឹមតែ​បំលាស់ប្ដូរថ្មី​ៗ​នោះ​ទេ',
-'tog-usenewrc' => 'បង្ហាញបំលាស់ប្ដូរ​ថ្មីៗតាមរបៀបទំនើប (តម្រូវអោយ​មាន JavaScript)',
+'tog-usenewrc' => ' បំលាស់ប្ដូរជាក្រុមតាមទំព័រ ក្នុងបំលាស់ប្តូរថ្មីៗនិងបញ្ជីតាមដាន (តម្រូវឲ្យមាន JavaScript)',
 'tog-numberheadings' => 'បង្ហាញលេខ​ចំណងជើងរង​ដោយស្វ័យប្រវត្តិ',
 'tog-showtoolbar' => 'បង្ហាញ​របារឧបករណ៍កែប្រែ (តម្រូវអោយមាន JavaScript)',
 'tog-editondblclick' => 'កែប្រែទំព័រដោយចុចពីរដង​ជាប់គ្នា (តម្រូវអោយមាន JavaScript)',
@@ -277,10 +277,10 @@ $messages = array(
 'tog-editsectiononrightclick' => 'អនុញ្ញាត​កែប្រែ​​ផ្នែកណាមួយ ដោយ​ចុចស្តាំកណ្តុរ​លើ​ចំណងជើង​របស់វា (តម្រូវអោយមាន JavaScript)',
 'tog-showtoc' => 'បង្ហាញ​តារាងមាតិកា (ចំពោះទំព័រ​ដែលមាន​ចំណងជើងរង​លើសពី៣)',
 'tog-rememberpassword' => 'ចងចាំ​ការកត់ឈ្មោះចូលរបស់ខ្ញុំ​លើកុំព្យូទ័រនេះ (សំរាប់រយៈពេលយ៉ាងយូរ$1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}})',
-'tog-watchcreations' => 'បន្ថែម​ទំព័រ​ដែលខ្ញុំបង្កើត​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
-'tog-watchdefault' => 'បន្ថែម​ទំព័រ​ដែលខ្ញុំកែប្រែ​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
-'tog-watchmoves' => 'បន្ថែម​ទំព័រ​ដែលខ្ញុំប្តូរទីតាំង​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
-'tog-watchdeletion' => 'បន្ថែម​ទំព័រ​ដែលខ្ញុំលុបចោល​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
+'tog-watchcreations' => 'á\9e\94á\9e\93á\9f\92á\9e\90á\9f\82á\9e\98â\80\8bá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aâ\80\8bá\9e\91á\9e¶á\9f\86á\9e\84á\9e¡á\9e¶á\9e\99á\9e\8aá\9f\82á\9e\9bá\9e\81á\9f\92á\9e\89á\9e»á\9f\86á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fâ\80\8bá\9e\91á\9f\85â\80\8bá\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\8fá\9e¶á\9e\98á\9e\8aá\9e¶á\9e\93â\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e\81á\9f\92á\9e\89á\9e»á\9f\86',
+'tog-watchdefault' => 'បន្ថែម​ទំព័រទាំងឡាយ​ដែលខ្ញុំកែប្រែ​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
+'tog-watchmoves' => 'á\9e\94á\9e\93á\9f\92á\9e\90á\9f\82á\9e\98â\80\8bá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aâ\80\8bá\9e\91á\9e¶á\9f\86á\9e\84á\9e¡á\9e¶á\9e\99á\9e\8aá\9f\82á\9e\9bá\9e\81á\9f\92á\9e\89á\9e»á\9f\86á\9e\94á\9f\92á\9e\8fá\9e¼á\9e\9aá\9e\91á\9e¸á\9e\8fá\9e¶á\9f\86á\9e\84â\80\8bá\9e\91á\9f\85â\80\8bá\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\8fá\9e¶á\9e\98á\9e\8aá\9e¶á\9e\93â\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e\81á\9f\92á\9e\89á\9e»á\9f\86',
+'tog-watchdeletion' => 'បន្ថែម​ទំព័រទាំងឡាយ​ដែលខ្ញុំលុបចោល​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
 'tog-minordefault' => "ចំណាំ​គ្រប់កំណែប្រែ​របស់ខ្ញុំ​ថាជា​'កំណែប្រែតិចតួច'",
 'tog-previewontop' => 'បង្ហាញ​ការមើលមុន​ពីលើ​ប្រអប់​កែប្រែ',
 'tog-previewonfirst' => 'បង្ហាញ​ការមើលមុន​ចំពោះ​កំណែប្រែ​ដំបូង',
@@ -1111,6 +1111,13 @@ $2',
 'rev-deleted-unhide-diff' => "កំណែ​ប្រែ​មួយ​នៃភាព​ខុស​គ្នា​​នេះ​ត្រូវ​បាន'''​លុប'''​។
 ប្រហែល​ជា​មាន​ព័ត៌មាន​លម្អិត​នៅ​ក្នុង​[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} កំណត់​ហេតុ​នៃ​ការ​លុប​]។
 អ្នក​នៅ​តែ​អាច​[$1 មើលភាព​ខុស​គ្នា​​នេះ​]ប្រសិន​បើ​អ្នក​ចង់​។",
+'rev-suppressed-unhide-diff' => "កំណែ​ប្រែ​នៃ​ទំព័រ​នេះ​ត្រូវ​បាន'''ហាម​ឃាត់​'''​។
+ប្រហែល​ជា​មាន​ព័ត៌មាន​លម្អិត​នៅ​ក្នុង​[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} កំណត់​ហេតុ​នៃ​ការហាម​ឃាត់​​]។
+អ្នក​នៅ​តែ​អាច​[$1 មើល​កំណែ​នេះ​]ប្រសិន​បើ​អ្នក​ចង់​។",
+'rev-deleted-diff-view' => "កំណែ​ប្រែ​នៃ​ទំព័រ​នេះ​ត្រូវ​បាន'''​លុប'''​។ 
+អ្នក​អាច​មើល​កំណែប្រែ​​នេះ​បាន​។ ប្រហែល​ជា​មាន​ព័ត៌មាន​លម្អិត​នៅ​ក្នុង​[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} កំណត់​ហេតុ​នៃ​ការ​លុប​]។",
+'rev-suppressed-diff-view' => "កំណែ​ប្រែ​នៃ​ទំព័រ​នេះ​ត្រូវ​បាន'''ហាម​ឃាត់​'''​។
+អ្នក​​អាច​មើល​វា​បាន​។ ប្រហែល​ជា​មាន​ព័ត៌មាន​លម្អិត​នៅ​ក្នុង​[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} កំណត់​ហេតុ​នៃ​ការហាម​ឃាត់​​]។",
 'rev-delundel' => 'បង្ហាញ/លាក់',
 'rev-showdeleted' => 'បង្ហាញ',
 'revisiondelete' => 'លុបចេញ / លែងលុបចេញ កំណែនានា',
@@ -1212,6 +1219,7 @@ $1",
 'showhideselectedversions' => 'បង្ហាញ​/លាក់​កំណែប្រែ​ដែលបាន​ជ្រើសយក',
 'editundo' => 'មិនធ្វើវិញ',
 'diff-multi' => '({{PLURAL:$1|កំណែប្រែកម្រិតបង្គួរមួយ|កំណែប្រែកម្រិតបង្គួរចំនួន $1}}មិនត្រូវបានបង្ហាញ)',
+'diff-multi-manyusers' => '({{PLURAL:$1|កំណែប្រែកម្រិតបង្គួរមួយ|កំណែប្រែកម្រិតបង្គួរចំនួន $1}}មិនត្រូវបានបង្ហាញ)',
 
 # Search results
 'searchresults' => 'លទ្ធផលស្វែងរក',
index 7acd098..ac288ab 100644 (file)
@@ -754,6 +754,7 @@ $2',
 'remembermypassword' => '이 컴퓨터에서 로그인 상태를 저장하기 (최대 $1일)',
 'securelogin-stick-https' => '로그인 후에도 HTTPS 연결 상태를 유지합니다',
 'yourdomainname' => '도메인 이름:',
+'password-change-forbidden' => '이 위키에서 비밀번호를 바꿀 수 없습니다.',
 'externaldberror' => '외부 인증 데이터베이스에 오류가 있거나 외부 계정을 새로 고칠 권한이 없습니다.',
 'login' => '로그인',
 'nav-login-createaccount' => '로그인 / 계정 만들기',
@@ -881,7 +882,7 @@ $2',
 'passwordreset-capture' => '발송 결과 이메일을 보시겠습니까?',
 'passwordreset-capture-help' => '이 상자에 체크하면 이메일이 발송된 즉시 임시 비밀번호가 담긴 이메일을 볼 수 있습니다.',
 'passwordreset-email' => '이메일 주소:',
-'passwordreset-emailtitle' => '{{SITENAME}} ê³\84ì \95 ì\83\81ì\84¸ 정보',
+'passwordreset-emailtitle' => '{{SITENAME}} ê³\84ì \95 ì\9e\90ì\84¸í\95\9c 정보',
 'passwordreset-emailtext-ip' => 'IP 주소 $1을 사용하는 누군가(아마도 당신이), {{SITENAME}} ($4)의 비밀번호 찾기를 요청하였습니다.
 이 이메일 주소와 연관된 계정의 목록입니다:
 
@@ -1480,7 +1481,7 @@ $1",
 'prefs-files' => '파일',
 'prefs-custom-css' => '사용자 CSS',
 'prefs-custom-js' => '사용자 자바스크립트',
-'prefs-common-css-js' => '모든 스킨에 적용되는 공통 CSS/자바스크립트:',
+'prefs-common-css-js' => '모든 스킨에 대한 공통 CSS/JavaScript:',
 'prefs-reset-intro' => '이 사이트의 기본값으로 환경 설정을 되돌릴 수 있습니다.
 복구할 수 없습니다.',
 'prefs-emailconfirm-label' => '이메일 인증:',
@@ -2282,7 +2283,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'linksearch' => '외부 링크 찾기',
 'linksearch-pat' => '검색 패턴:',
 'linksearch-ns' => '이름공간:',
-'linksearch-ok' => '검색',
+'linksearch-ok' => '찾기',
 'linksearch-text' => '"*.wikipedia.org"와 같이 와일드카드를 사용할 수 있습니다.
 적어도 "*.org"와 같이 최상위 도메인을 입력해야 합니다.<br />
 지원하는 프로토콜 목록: <tt>$1</tt> (검색할 때 이것을 추가하지 마세요)',
@@ -2477,6 +2478,8 @@ $UNWATCHURL
 'rollback' => '편집 되돌리기',
 'rollback_short' => '되돌리기',
 'rollbacklink' => '되돌리기',
+'rollbacklinkcount' => '되돌리기 편집 $1회',
+'rollbacklinkcount-morethan' => '되돌리기 편집 $1회 이상',
 'rollbackfailed' => '되돌리기 실패',
 'cantrollback' => '편집을 되돌릴 수 없습니다.
 문서를 편집한 사용자가 한명뿐입니다.',
@@ -2595,7 +2598,7 @@ $UNWATCHURL
 'undeletedfiles' => '파일 $1개를 복구했습니다',
 'cannotundelete' => '복구에 실패했습니다.
 다른 사용자가 이미 복구했을 수도 있습니다.',
-'undeletedpage' => "'''$1 문서ê°\80 ë³µêµ¬ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.'''
+'undeletedpage' => "'''$1 문서를 ë³µêµ¬í\96\88ì\8aµë\8b\88ë\8b¤.'''
 
 [[Special:Log/delete|삭제 기록]]에서 최근의 삭제와 복구 기록을 볼 수 있습니다.",
 'undelete-header' => '최근에 삭제한 문서에 대한 기록은 [[Special:Log/delete|여기]]에서 볼 수 있습니다.',
index 9c49738..23449c3 100644 (file)
@@ -666,7 +666,7 @@ aut [{{fullurl:{{FULLPAGENAME}}|action=edit}} hanc paginam creare]</span>.',
 'userpage-userdoesnotexist' => 'Usor "<nowiki>$1</nowiki>" non est. Visne re vera hanc paginam creare vel recensere?',
 'updated' => '(Novata)',
 'note' => "'''Nota:'''",
-'previewnote' => "'''Memento hanc paginam solum praevisum esse, neque iam servatam!'''",
+'previewnote' => "'''Memento hanc paginam solum praevisam esse, neque iam servatam!'''",
 'editing' => 'Recensio paginae "$1"',
 'creating' => 'Creans $1',
 'editingsection' => 'Recensens $1 (partem)',
@@ -808,6 +808,7 @@ Titulus: '''({{int:cur}})''' = dissimilis ab emendatione novissima,
 'compareselectedversions' => 'Conferre emendationes selectas',
 'showhideselectedversions' => 'Monstrare/celare emendationes selectas',
 'editundo' => 'abrogare',
+'diff-multi' => '(Inter has {{PLURAL:$1|una emendatio|$1 emendationes}} ab {{PLURAL:$2|uno usore|$2 usoribus}} {{PLURAL:$1|facta|factae}} non {{PLURAL:$1|videtur|videntur}})',
 
 # Search results
 'searchresults' => 'Eventum investigationis',
@@ -1163,7 +1164,7 @@ Vide etiam [[Special:NewFiles|pinacothecam fasciculorum recentissimorum imposito
 'upload-unknown-size' => 'Magnitudo ignota',
 
 'license' => 'Typus permissionis:',
-'license-header' => 'Typus permissionis:',
+'license-header' => 'Potestas usoris',
 'nolicense' => 'Nulla selecta',
 'license-nopreview' => '(Praevisum monstrari non potest)',
 
index f74e628..34229ea 100644 (file)
@@ -475,6 +475,7 @@ Si puede ser mete un [[Special:ListUsers/sysop|administrador]] en corriente y ta
 'missingarticle-rev' => '(nº. de revisión: $1)',
 'missingarticle-diff' => '(Dif.: $1, $2)',
 'filecopyerror' => 'No se pudo copiar el arxiv "$1" a "$2".',
+'badtitle' => 'Titolo malo',
 'badtitletext' => 'El título de la hoja demandada está vazío, no es valible, o es un link interlingua o interwiki incorrecto.
 Puede ser que contiene uno o más caracteres que no se pueden usar en los títulos.',
 'viewsource' => 'Ver su manadero',
@@ -482,9 +483,11 @@ Puede ser que contiene uno o más caracteres que no se pueden usar en los títul
 # Login and logout pages
 'yourname' => 'Su nombre de usuario',
 'yourpassword' => 'Parola',
+'yourpasswordagain' => 'Entra de muevo la parola',
 'remembermypassword' => 'Acórdate de mi entrada de usador en este bilgisayar/orddênador (por un maksimum de {{PLURAL:$1|día|días}})',
 'login' => 'Entrar',
 'nav-login-createaccount' => 'Entrar / Crîar un cuento',
+'loginprompt' => 'Kale tener "cookies" aktivadas enel navegador para enrejistrarse en {{SITENAME}}',
 'userlogin' => 'Entrar / Registrarse',
 'logout' => 'Salir',
 'userlogout' => 'Salir',
@@ -493,6 +496,7 @@ Puede ser que contiene uno o más caracteres que no se pueden usar en los títul
 'createaccount' => 'Crea un nuevo cuento',
 'gotaccount' => "¿Ya tienes un cuento? '''$1'''.",
 'gotaccountlink' => 'Entrar',
+'userlogin-resetlink' => 'Olvidates tus detalyos de akseso?',
 'createaccountmail' => 'por una letra electrónica',
 'userexists' => 'El nombre que entrates ya se usa.
 Si puede ser, escoge un otro nombre.',
@@ -569,7 +573,8 @@ Puedes [[Special:Search/{{PAGENAME}}|buscar este títůlo de hoja]] en otras hoj
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los rejistros relasyonados]</span>.',
 'userpage-userdoesnotexist-view' => 'El cuento del usador $1 no está enrejistrado.',
 'note' => "'''Nota:'''",
-'previewnote' => "'¡Acórdate que esto es sólo una previsualización y daínda no se registró!'''",
+'previewnote' => "¡Akórdate ke esto es sólo una previsualizasion i aínda no se enrejistró!'''
+Los tus trokamientos no se tienen guadrados!",
 'editing' => 'Trocando $1',
 'editingsection' => 'Trocando $1 (sección)',
 'editingcomment' => 'Trocando $1 (kapítůlo)',
@@ -583,6 +588,8 @@ o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}
 'hiddencategories' => 'Esta hoja es un miembro de {{PLURAL:$1|1 kateggoría escondida|$1 kateggorías escondidas}}:',
 'nocreate-loggedin' => 'No tienes el permisso de creas hojas nuevas.',
 'permissionserrorstext-withaction' => 'No tienes el permiso para $2, por las {{PLURAL:$1|razón|razones}} venideras:',
+'moveddeleted-notice' => "Esta ója fue efassada.
+El ''log'' de efassado i taxireado de la ója es amostrado abasho para dar referensia.",
 
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Avizo:''' La contenencia de xablon está muy grande.
@@ -594,6 +601,7 @@ Algunos xablones no van á ser comprendidos.",
 'currentrev' => "Enderechamiento d'al cavo",
 'currentrev-asof' => 'Enderechamiento de alcavo á las $1',
 'revisionasof' => 'Enderechamiento á las $1',
+'revision-info' => 'Revision en data $1 por $2',
 'previousrevision' => '← Enderechamiento de antes',
 'nextrevision' => 'Rêvisión venidera →',
 'currentrevisionlink' => 'Revisión actual',
@@ -614,6 +622,7 @@ Leyenda: (act) = diferencias con la versión actual,
 
 # Revision feed
 'history-feed-title' => 'Îstoria de nderechamientos',
+'history-feed-item-nocomment' => '$1 en $2',
 
 # Revision deletion
 'rev-delundel' => 'mostra/esconde',
@@ -636,7 +645,7 @@ Leyenda: (act) = diferencias con la versión actual,
 'revertmerge' => 'Apartar',
 
 # Diffs
-'history-title' => 'Istoria de revisiones para «$1»',
+'history-title' => 'Istorya de trokamientos para «$1»',
 'lineno' => 'Shurá $1:',
 'compareselectedversions' => 'Comparar versiones escogidas',
 'editundo' => 'deshaze',
@@ -677,6 +686,7 @@ Leyenda: (act) = diferencias con la versión actual,
 'search-interwiki-more' => '(más)',
 'search-mwsuggest-enabled' => 'con consejos',
 'search-mwsuggest-disabled' => 'no ay consejos',
+'searchrelated' => 'lisionado',
 'searchall' => 'todos',
 'showingresultsheader' => "{{PLURAL:$5|Resultado '''$1''' de '''$3'''|Resultados '''$1-$2''' de '''$3'''}} para '''$4'''",
 'nonefound' => "'''Nota''': Por defecto sólo se busca en algunos espacios de nombre.
@@ -747,13 +757,17 @@ Las búsquedas producen más o munco a buscar biervos comunes como «la» o «de
 'recentchanges-legend' => 'Opciones encima de los trocamientos frescos',
 'recentchanges-summary' => 'Perseguid en esta hoja, los trocamientos de alcabo realizados en la Viki.',
 'recentchanges-feed-description' => 'Perseguir los trocamientos más nuevos en el viki en este feed.',
+'recentchanges-label-newpage' => 'Este trokamiento krio una mueva ója',
 'recentchanges-label-minor' => 'Esta es un trocamiento chiquitico',
+'recentchanges-label-bot' => 'Este trokamiento fue echo por un bot',
+'recentchanges-label-unpatrolled' => 'Estre trokamiento no esta akavidado',
 'rcnote' => "Debaxo {{PLURAL:$1|ay '''1''' trocamiento realizado|están los dal cabo '''$1''' trocamientos realizados}} en  {{PLURAL:$2|el dal cabo día|los dal cabo '''$2''' días}}, hasta el $4, $5.",
 'rclistfrom' => 'Mostra los trocamientos nuevos empeçando desde $1',
 'rcshowhideminor' => '$1 trocamientos chiquiticos',
 'rcshowhidebots' => '$1 bots',
 'rcshowhideliu' => '$1 empleadores enrējjistrados',
 'rcshowhideanons' => '$1 empleadores anonimes',
+'rcshowhidepatr' => '$1 trokamientos akavidados',
 'rcshowhidemine' => '$1 mis ediciones',
 'rclinks' => 'Ver los dal cabo $1 trocamientos en los dal cabo $2 días.<br />$3',
 'diff' => 'dif',
@@ -771,6 +785,7 @@ Las búsquedas producen más o munco a buscar biervos comunes como «la» o «de
 'recentchangeslinked-feed' => 'Trocamientos conectados',
 'recentchangeslinked-toolbox' => 'Trocamientos relatados',
 'recentchangeslinked-title' => 'Los trocamientos relacionados con "$1"',
+'recentchangeslinked-noresult' => 'Sin trokamientos en las ójas atadas en la data demandada',
 'recentchangeslinked-summary' => "Esto es la lista de los trocamientos de alcavo de las hojas que relatan á una hoja spēcifik (ou de los miembros de la katēggoría spēcifikada).
 Las hojas en tu [[Special:Watchlist|lista de akavidamiento]] son escritas '''con letras grexas'''.",
 'recentchangeslinked-page' => 'Nombre de la hoja',
@@ -782,6 +797,9 @@ Las hojas en tu [[Special:Watchlist|lista de akavidamiento]] son escritas '''con
 'filedesc' => 'Somario',
 'uploadedimage' => 'subió «[[$1]]»',
 
+'license' => 'Lesensia:',
+'license-header' => 'Lesensiamyénto',
+
 # Special:ListFiles
 'listfiles_name' => 'Nombre',
 'listfiles_user' => 'Usuario',
@@ -802,6 +820,7 @@ Las hojas en tu [[Special:Watchlist|lista de akavidamiento]] son escritas '''con
 'filehist-comment' => 'Comentario',
 'imagelinks' => 'El uso del dosya',
 'linkstoimage' => '{{PLURAL:$1|La hoja venidera da link|Las hojas venideras dan link}} a este arxivo:',
+'nolinkstoimage' => 'Dinguna ója tiene atamientos a esta imej',
 'sharedupload' => 'Este arxivo es de $1 i puede ser usado por otros proyectos.',
 'sharedupload-desc-here' => 'Esta hoja es de $1 y puede ser usado por otros projetos.
 La descripción en su [$2 hoja de descripción del arxivo] está amostrada debaxo.',
@@ -850,6 +869,7 @@ La descripción en su [$2 hoja de descripción del arxivo] está amostrada debax
 
 # Special:LinkSearch
 'linksearch' => 'Linkes eksternos',
+'linksearch-line' => 'Atamiento para $1 en la ója $2',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Registro de creación de usuarios',
@@ -863,6 +883,7 @@ La descripción en su [$2 hoja de descripción del arxivo] está amostrada debax
 # Watchlist
 'watchlist' => 'Mi lista de escogidas',
 'mywatchlist' => 'Mi lista de akavidamientos',
+'watchlistfor2' => 'Para $1 $2',
 'addedwatchtext' => "La hoja «[[:$1]]» fue ajustada a tu [[Special:Watchlist|lista de escogidas]]. Los trocamientos venideros en esta hoja i en tu hoja de diskussión associada se van indicar aí, i la hoja va aparecer '''gordo''' en la hoja de [[Special:RecentChanges|trocamientos freskos]] para hazerla más kolay de detektar.
 
 Cuando queres eliminar la hoja de tu lista de escogidas, piza «Dexar de cudiar» en el menú.",
@@ -885,6 +906,7 @@ en forma turable, ansí como todo su istoria.
 Si puede ser, confirma que de verdad queres hazer esto, que estás entendiendo las
 resultados, i que lo estás haziendo de acorddo con las [[{{MediaWiki:Policy-url}}|Políticas]].',
 'actioncomplete' => 'Aksion kompleta',
+'actionfailed' => 'Aksiyon sin reushitá',
 'deletedtext' => '"$1" fue efassado.
 Mira $2 para un registro de los efassados nuevos.',
 'dellogpage' => 'Registro de efassados',
@@ -943,9 +965,11 @@ A continuación se mostran las opciones actuales de la hoja '''$1''':",
 
 'sp-contributions-newbies' => 'Mostrar solo las ajustamientos de los usuarios nuevos',
 'sp-contributions-blocklog' => 'registro de bloqueos',
-'sp-contributions-talk' => 'Diścutir',
+'sp-contributions-uploads' => 'suvidas',
+'sp-contributions-talk' => 'Diskusyón',
 'sp-contributions-search' => 'Buscar ajustamientos',
 'sp-contributions-username' => 'Dirección IP o nombre de usuario:',
+'sp-contributions-toponly' => "Amostrar solo revisiones d'alkavo",
 'sp-contributions-submit' => 'Buscar',
 
 # What links here
@@ -953,15 +977,17 @@ A continuación se mostran las opciones actuales de la hoja '''$1''':",
 'whatlinkshere-title' => 'Hojas que dan link a "$1"',
 'whatlinkshere-page' => 'Hoja:',
 'linkshere' => "Las hojas venideras dan link a '''[[:$1]]''':",
+'nolinkshere' => "Dinguna ója tiene atamientos kon '''[[:$1]]'''",
 'isredirect' => 'Hoja redirigida',
 'istemplate' => 'inclusión',
-'isimage' => 'Link del image',
+'isimage' => 'Atamiento de la dossia',
 'whatlinkshere-prev' => '{{PLURAL:$1|de antes|de antes $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|venidera|venideras $1}}',
 'whatlinkshere-links' => '← linkes',
 'whatlinkshere-hideredirs' => '$1 redirecciones',
 'whatlinkshere-hidetrans' => '$1 inclusiones',
 'whatlinkshere-hidelinks' => '$1 linkes',
+'whatlinkshere-hideimages' => '$1 atamientos a imejes',
 'whatlinkshere-filters' => 'Filtres',
 
 # Block/unblock
@@ -1022,6 +1048,7 @@ Si puede ser, escoge otro nombre.',
 
 # Thumbnails
 'thumbnail-more' => 'Engrandece',
+'thumbnail_error' => 'Yerro kriando la imej chika: $1',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Tu hoja de usador',
index 1d64539..7b2c996 100644 (file)
@@ -586,6 +586,7 @@ Denkt drun, Är [[Special:Preferences|{{SITENAME}}-Astellungen]] unzepassen.',
 'remembermypassword' => 'Meng Umeldung op dësem Computer (fir maximal $1 {{PLURAL:$1|Dag|Deeg}}) verhalen',
 'securelogin-stick-https' => 'Nom Umelle mat HTTPS verbonn bleiwen',
 'yourdomainname' => 'Ären Domain',
+'password-change-forbidden' => 'Dir däerft op dëser Wiki Passwierder net änneren.',
 'externaldberror' => 'Entweder ass e Feeler bei der externer Authentifizéierung geschitt, oder Dir däerft Ären externe Benotzerkont net aktualiséieren.',
 'login' => 'Aloggen',
 'nav-login-createaccount' => 'Aloggen / Benotzerkont uleeën',
index f610349..444d6da 100644 (file)
@@ -163,7 +163,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Gemarkeerde wieziginge verberge in recente wieziginge',
 'tog-newpageshidepatrolled' => "Gemarkeerde pagina's verberge in de lies mit nuuj pagina's",
 'tog-extendwatchlist' => 'Oetgebreide volglies gebroeke óm alle verangeringe te zeen en neet allein de lèste',
-'tog-usenewrc' => 'Oetgebreide recènte verangeringe (Javascript nudig)',
+'tog-usenewrc' => 'Tuun verangeringe per pagina in recènte verangeringe en volglies (Javascript nudig)',
 'tog-numberheadings' => 'Köpkes automatisch nummere',
 'tog-showtoolbar' => 'Laot edit toolbar zeen',
 'tog-editondblclick' => "Bewirk pagina's bie 'ne dobbelklik (JavaScript)",
@@ -171,17 +171,17 @@ $messages = array(
 'tog-editsectiononrightclick' => "Secties bewirke mit 'ne rechtermoesklik op sectietitels (JavaScript nudig)",
 'tog-showtoc' => "Inhaudsopgaaf veur pagina's mit mie es 3 köpkes",
 'tog-rememberpassword' => 'Mien wachwaord onthouwe veur later sessies (hoegstens $1 {{PLURAL:$1|daag|daag}})',
-'tog-watchcreations' => "Pagina's die ich aanmaak automatisch volge",
-'tog-watchdefault' => "Voog pagina's die se bewirks toe aan dien volglies",
-'tog-watchmoves' => "Pagina's die ich verplaats automatisch volge",
-'tog-watchdeletion' => "Pagina's die ich ewegsjaf automatisch volge",
+'tog-watchcreations' => "Volg autematis pagina's die ich aanmaak en bestenj die ich upload",
+'tog-watchdefault' => "Voog pagina's em bestenj die se bewirks toe aan dien volglies",
+'tog-watchmoves' => "Volg autematis pagina's en bestenj die ich verplaats",
+'tog-watchdeletion' => "Volg autematis pagina's en bestenj die ich ewegsjaf",
 'tog-minordefault' => 'Markeer sjtanderd alle bewirkinge es klein',
 'tog-previewontop' => 'Veurvertuin baove bewèrkingsveld tuine',
 'tog-previewonfirst' => 'Preview laote zien bie de ierste bewirking',
 'tog-nocache' => 'Zèt de browserpaginacaching oet',
-'tog-enotifwatchlistpages' => "'ne E-mail nao mich versjikke bie bewirkinge van pagina's op mien volglies",
+'tog-enotifwatchlistpages' => "Versjik 'ne e-mail nao mich bie bewirkinge van pagina's en bestenj op mien volglies",
 'tog-enotifusertalkpages' => "'ne E-mail nao mich versjikke es emes mien euverlèkpagina verangert",
-'tog-enotifminoredits' => "'ne E-mail nao mich versjikke bie klein bewirkinge op pagina's op mien volglies",
+'tog-enotifminoredits' => "Versjik  mich 'ne e-mail bie klein bewirkinge op pagina's en bestenj op mien volglies",
 'tog-enotifrevealaddr' => 'Mien e-mailadres tuine in e-mailberichte',
 'tog-shownumberswatching' => "'t Aantal gebroekers tuine die dees pagina volg",
 'tog-oldsig' => 'Bestaonde ongerteikening:',
@@ -514,6 +514,8 @@ Maak hievan melding bie 'ne [[Special:ListUsers/sysop|systeembeheerder]] van {{S
 'cannotdelete' => 'Kós de pagina of \'t besjtand "$1" neet ewegsjaffe.
 Mesjiens haet emes angers det al gedaon.',
 'cannotdelete-title' => 'Pagina "$1" kin neet gewösj waere',
+'delete-hook-aborted' => "'t Wösje is aafgebroke door 'ne 'hook'.
+D'r is gein toelichting besjikbaar.",
 'badtitle' => 'Óngeljige paginatitel',
 'badtitletext' => 'De opgevraogde pagina is neet besjikbaar of laeg.',
 'perfcached' => "De gegaeves koume oet 'n cache en zeen mäögelik neet actueel. 't Geuf {{PLURAL:$1|maximaal ei rizzeltaot|maximaal $1 rizzeltaote}} inne cache.",
@@ -545,6 +547,8 @@ De gegaeve ree is ''$2''.",
 d\'n Opgegaeve raej vanne sloetendje admin waar "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Óngèljige titel mit naamruumdje "$2" en teks "$3"',
 'invalidtitle-unknownnamespace' => 'Óngèljige titel mit ónbekèndj naamruumdenómmer $1 en teks "$2"',
+'exception-nologin' => 'Neet aangemèld',
+'exception-nologin-text' => 'Óm dees pagina te betrachte of dees hanjeling te kinne doon mós se aangemèldj zeen bie deze wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Slechte configuratie: onbekenge virusscanner: ''$1''",
@@ -1372,6 +1376,7 @@ Deze informatie is zichbaar veur angere gebroekers.',
 'right-writeapi' => 'Bewèrke via de API',
 'right-delete' => "Pagina's verwijdere",
 'right-bigdelete' => "Pagina's mit 'n grote gesjiedenis verwijdere",
+'right-deletelogentry' => 'Wösj of plaats trögk specifieke logbookregels',
 'right-deleterevision' => "Versies van pagina's verberge",
 'right-deletedhistory' => 'Verwijderde versies bekieke, zonder te kinne zeen wat verwijderd is',
 'right-deletedtext' => 'Bekieke gewösjde teks en wieziginge tösse verwiedere versies',
@@ -1669,6 +1674,7 @@ Gank trök nao t [[Special:Upload/stash/$1|uploadformuleer]] om dit perbleem te
 'lockmanager-fail-releaselock' => 'Kós de vergrendeling veur "$1" neet opheffe.',
 'lockmanager-fail-db-bucket' => 'Kós neet in kontak kómme mit genóg vergrendelingsdatabases in de bucket $1.',
 'lockmanager-fail-db-release' => "'t Waar neet meugelik ómme vergrendeling veure database $1 óp tö höffe.",
+'lockmanager-fail-svr-acquire' => "'t Waar neet meugelik ómme vergrendeling oppe server $1 tö kriege.",
 'lockmanager-fail-svr-release' => "'t Waar neet meugelik ómme vergrendeling veure server $1 óp tö höffe.",
 
 # ZipDirectoryReader
@@ -2826,6 +2832,7 @@ Meistal wörd dit door 'ne zwarte externe link veroorzaak.",
 'spambot_username' => 'MediaWiki spam opruming',
 'spam_reverting' => 'Bezig mit trökdrèjje nao de letste versie die gein verwiezing haet nao $1',
 'spam_blanking' => "Alle wieziginge mit 'ne link nao $1 waere verwiederd",
+'spam_deleting' => 'Alle wieziginge hawwe links nao $1, wuuertj gewösj',
 
 # Info page
 'pageinfo-title' => 'Informatie euver "$1"',
@@ -3687,6 +3694,8 @@ Anges kin se-n ouch \'t einvawdig formeleer hieónger gebroeke. Dien commentaar
 'api-error-empty-file' => 't Bestandj det se perbeers te uploade had gein inhald.',
 'api-error-emptypage' => "Doe maags gein nuuj, laeg pagina's aanmake.",
 'api-error-fetchfileerror' => "Intern fout: d'r is get fout gegange bie 't óphaole van 't bestandj.",
+'api-error-fileexists-forbidden' => 'd\'r Besteit al e bestandj mitte naam "$1" det neet euversjreve kin waere.',
+'api-error-fileexists-shared-forbidden' => 'd\'r Besteit al e bestandj mitte naam "$1" inne gedeildje repositoir det neet euversjreve kin waere.',
 'api-error-file-too-large' => 't Bestandj det se perbeers te uploade waas te groet.',
 'api-error-filename-tooshort' => "t Bestandj det se perbeers te uploade had 'ne te kórte bestandjsnaam.",
 'api-error-filetype-banned' => 't Bestandj det se perbeers te uploade waas van e neet-toegelaote bestandjstype.',
index 43047f5..4c3a3f6 100644 (file)
@@ -258,6 +258,7 @@ $messages = array(
 'jumpto' => 'Куснаш:',
 'jumptonavigation' => 'навигацийыш',
 'jumptosearch' => 'кычалмашшке',
+'pool-errorunknown' => 'Палыдыме йоҥылыш',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => '{{SITENAME}} нерген',
@@ -328,6 +329,7 @@ $messages = array(
 'filecopyerror' => '«$1» гыч «$2» файлыш копийым ышташ лийдыме.',
 'fileexistserror' => '«$1» файлыш возыкым ышташ лийдыме: файл уло.',
 'unexpected' => 'Келшыдыме кугыт: «$1»=«$2».',
+'cannotdelete-title' => '"$1" лаштыкым шӧраш ок лий',
 'badtitle' => 'Сай огыл лӱм',
 'badtitletext' => 'Йодмо лаштыкын лӱмжӧ йоҥылыш, але яра, але йылме кокла але интер-вики лӱмжӧ йоҥылыш. Ала лӱмыштӧ кӱлдымӧ тамга улыт.',
 'viewsource' => 'Тӱҥалтыш текст',
index b67e097..fdb4f1e 100644 (file)
@@ -329,13 +329,13 @@ $separatorTransformTable = array( ',' => '.', '.' => ',' );
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Потцртување на врски:',
-'tog-justify' => 'Ð\94воÑ\81Ñ\82Ñ\80аниÑ\87но Ð¿Ð¾Ñ\80амнÑ\83ваÑ\9aе Ð½Ð° Ð¿Ð°Ñ\80агÑ\80аÑ\84иÑ\82е',
+'tog-justify' => 'Ð\9fоÑ\80амнÑ\83ваÑ\9aе Ð½Ð° Ð¿Ð°Ñ\81Ñ\83Ñ\81иÑ\82е Ð¿Ð¾ Ñ\88иÑ\80инаÑ\82а Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а',
 'tog-hideminor' => 'Скривај ги ситните уредувања во скорешните промени',
 'tog-hidepatrolled' => 'Скриј испатролирани уредувања во скорешните промени',
 'tog-newpageshidepatrolled' => 'Скриј испатролирани страници од списокот на нови страници',
 'tog-extendwatchlist' => 'Прошири го список на набљудувања за приказ на сите промени, не само скорешните',
 'tog-usenewrc' => 'Промени во групи по страници во списокот на скорешни промени (бара JavaScript)',
-'tog-numberheadings' => 'Ð\90вÑ\82о Ð½Ñ\83меÑ\80иÑ\80аÑ\9aе Ð½Ð° заглавијата',
+'tog-numberheadings' => 'Ð\9dÑ\83меÑ\80иÑ\80аÑ\98 Ð³Ð¸ заглавијата',
 'tog-showtoolbar' => 'Прикажи алатник за уредување (JavaScript)',
 'tog-editondblclick' => 'Уредување на страници при двојно кликнување (JavaScript)',
 'tog-editsection' => 'Овозможи уредување на заглавија преку врските [уреди]',
@@ -357,7 +357,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Прикажи го бројот на корисници кои набљудуваат',
 'tog-oldsig' => 'Постоечки потпис:',
 'tog-fancysig' => 'Сметај го потписот за викитекст (без автоматска врска)',
-'tog-externaleditor' => 'По основно користи надворешен уредник (само за стручњаци, потребно е посебно нагодување на сметачот. [//www.mediawiki.org/wiki/Manual:External_editors?uselang=mk Повеќе информации.])',
+'tog-externaleditor' => 'По основно користи надворешен уредувач (само за стручњаци, потребно е посебно нагодување на сметачот. [//www.mediawiki.org/wiki/Manual:External_editors?uselang=mk Повеќе информации.])',
 'tog-externaldiff' => 'По основно користи надворешен програм за споредување верзии (само за стручњаци, потребно е специјално нагодување на сметачот. [//www.mediawiki.org/wiki/Manual:External_editors?uselang=mk Повеќе информации.])',
 'tog-showjumplinks' => 'Овозможи врски на пристапност „скокни на“',
 'tog-uselivepreview' => 'Користи преглед во живо (JavaScript, експериментално)',
@@ -751,6 +751,7 @@ $2',
 'remembermypassword' => 'Запомни ме на овој сметач (највеќе $1 {{PLURAL:$1|ден|дена}})',
 'securelogin-stick-https' => 'Останете поврзани со HTTPS по одјавата',
 'yourdomainname' => 'Вашиот домен:',
+'password-change-forbidden' => 'Не можете да ја менувате лозинката на ова вики.',
 'externaldberror' => 'Настана грешка при надворешното најавување на базата или пак немате дозвола да ја подновите вашата надворешна сметка.',
 'login' => 'Најава',
 'nav-login-createaccount' => 'Најава / регистрација',
@@ -1592,6 +1593,7 @@ $1",
 'right-writeapi' => 'Можност за пишување на API',
 'right-delete' => 'Бришење страници',
 'right-bigdelete' => 'Бришење страници со долга историја',
+'right-deletelogentry' => 'Бришење и враќање на конкретни ставки во дневник',
 'right-deleterevision' => 'Бришење и враќање на конкретни ревизии на страници',
 'right-deletedhistory' => 'Прегледување на записи во историја на бришења, без придружниот текст',
 'right-deletedtext' => 'Прегледување на избришан текст и промени помеѓу избришани ревизии',
@@ -2114,9 +2116,9 @@ $1',
 
 'disambiguations' => 'Страници што водат до страници за појаснување',
 'disambiguationspage' => 'Template:Појаснување',
-'disambiguations-text' => "СледниÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸Ð¼Ð°Ð°Ñ\82 Ð²Ñ\80Ñ\81ки ÐºÐ¾Ð¸ Ð²Ð¾Ð´Ð°Ñ\82 до '''страница за појаснување'''.
-Наместо тоа тие треба да водат до соодветната тема.<br />
¡Ñ\82Ñ\80аниÑ\86а Ñ\81е Ñ\82Ñ\80еÑ\82иÑ\80а ÐºÐ°ÐºÐ¾ Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ð¿Ð¾Ñ\98аÑ\81нÑ\83ваÑ\9aе Ð°ÐºÐ¾ Ñ\82аа Ð³Ð¾ ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ñ\88аблоноÑ\82 ÐºÐ¾Ñ\98 Ðµ Ð½Ð°Ð²ÐµÐ´ÐµÐ½ [[MediaWiki:Disambiguationspage|Ñ\82Ñ\83ка]]",
+'disambiguations-text' => "СледниÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸Ð¼Ð°Ð°Ñ\82 Ð±Ð°Ñ\80ем Ð¿Ð¾ ÐµÐ´Ð½Ð° Ð²Ñ\80Ñ\81ка Ñ\88Ñ\82о Ð²Ð¾Ð´Ð¸ до '''страница за појаснување'''.
+Наместо тоа, може да имаат врска до посоодветната тема.<br />
\95дна Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81е Ñ\81меÑ\82а Ð·Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ð¿Ð¾Ñ\98аÑ\81нÑ\83ваÑ\9aе Ð°ÐºÐ¾ Ð³Ð¾ ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ñ\88аблоноÑ\82 Ñ\88Ñ\82о Ð²Ð¾Ð´Ð¸ Ð¾Ð´ [[MediaWiki:Disambiguationspage]]",
 
 'doubleredirects' => 'Двојни пренасочувања',
 'doubleredirectstext' => 'Оваа страница ги прикажува пренасочувачките страници до други пренасочувачки страници.
@@ -2462,6 +2464,8 @@ $UNWATCHURL
 'rollback' => 'Отповикај промени',
 'rollback_short' => 'Отповикај',
 'rollbacklink' => 'отповикај',
+'rollbacklinkcount' => 'отповикај $1 {{PLURAL:$1|уредување|уредувања}}',
+'rollbacklinkcount-morethan' => 'отповикај повеќе од $1 {{PLURAL:$1|уредување|уредувања}}',
 'rollbackfailed' => 'Отповикувањето не успеа',
 'cantrollback' => 'Уредувањето не може да се отповика.
 Последниот уредник е воедно и единствениот автор на страницата.',
@@ -2967,7 +2971,7 @@ $1',
 'import-interwiki-templates' => 'Вклучи ги сите шаблони',
 'import-interwiki-submit' => 'Увези',
 'import-interwiki-namespace' => 'Целен именски простор:',
-'import-upload-filename' => 'Ð\98ме Ð½Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82екаÑ\82а:',
+'import-upload-filename' => 'Ð\9fодаÑ\82оÑ\82ека:',
 'import-comment' => 'Коментар:',
 'importtext' => 'Извезете ја податотеката од изворното вики користејќи ја [[Special:Export|алатката за извоз]].
 Зачувајте ја на вашиот сметач и подигнете ја овде.',
@@ -3209,7 +3213,7 @@ $1',
 # Media information
 'mediawarning' => "'''Предупредување''': Оваа податотека може да содржи штетен код.
 Ако ја користите, ова може да му наштети на вашиот систем.",
-'imagemaxsize' => "Ограничување на големина на слика:<br />''(на нивните описни страници)''",
+'imagemaxsize' => "Ограничување на големината на сликите:<br />''(на нивните описни страници)''",
 'thumbsize' => 'Големина на минијатурата:',
 'widthheight' => '$1 × $2',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|страница|страници}}',
@@ -4036,7 +4040,7 @@ $5
 'fileduplicatesearch' => 'Барање на дуплирани податотеки',
 'fileduplicatesearch-summary' => 'Пребарување на дуплирани податотеки по тарабни вредности.',
 'fileduplicatesearch-legend' => 'Барање на дупликат',
-'fileduplicatesearch-filename' => 'Ð\98ме Ð½Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82екаÑ\82а:',
+'fileduplicatesearch-filename' => 'Ð\9fодаÑ\82оÑ\82ека:',
 'fileduplicatesearch-submit' => 'Барај',
 'fileduplicatesearch-info' => '$1 × $2 пиксели<br />Големина на податотеката: $3<br />MIME-тип: $4',
 'fileduplicatesearch-result-1' => 'Податотеката „$1“ нема истоветни дупликати.',
index 2d7ee74..adb28d1 100644 (file)
@@ -1779,6 +1779,7 @@ $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
@@ -3832,6 +3833,4 @@ $5
 'duration-decades' => '$1 {{PLURAL:$1|दशकापूर्वी|दशकांपूर्वी }}',
 'duration-centuries' => '$1 {{PLURAL:$1|शतकापूर्वी|शतकांपूर्वी }}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'सर्व्हर "$1" वरील कुलूप उघडू शकत नाही',
 );
index 3f0e6c4..9eecbf8 100644 (file)
@@ -206,17 +206,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Bolehkan penyuntingan bahagian dengan mengklik kanan pada tajuk bahagian (JavaScript)',
 'tog-showtoc' => 'Tunjukkan isi kandungan (bagi rencana yang melebihi 3 tajuk)',
 'tog-rememberpassword' => 'Ingat log masuk saya di pelayar ini (tidak melebihi $1 {{PLURAL:$1|hari|hari}})',
-'tog-watchcreations' => 'Tambahkan laman yang saya cipta ke dalam senarai pantau',
-'tog-watchdefault' => 'Tambahkan laman yang saya sunting ke dalam senarai pantau',
-'tog-watchmoves' => 'Tambahkan laman yang saya pindahkan ke dalam senarai pantau',
-'tog-watchdeletion' => 'Tambahkan laman yang saya hapuskan ke dalam senarai pantau',
+'tog-watchcreations' => 'Tambahkan halaman-halaman yang saya buat dan fail-fail yang saya muat naik ke dalam senarai pantau',
+'tog-watchdefault' => 'Tambahkan halaman-halaman dan fail-fail yang saya sunting ke dalam senarai pantau',
+'tog-watchmoves' => 'Tambahkan halaman-halaman dan fail-fail yang saya pindahkan ke dalam senarai pantau',
+'tog-watchdeletion' => 'Tambahkan halaman-halaman dan fail-fail yang saya hapuskan ke dalam senarai pantau',
 'tog-minordefault' => 'Tandakan semua suntingan sebagai kecil secara asali',
 'tog-previewontop' => 'Tunjukkan pralihat di atas kotak sunting',
 'tog-previewonfirst' => 'Tunjukkan pralihat pada suntingan pertama',
 'tog-nocache' => 'Lumpuhkan pengagregatan laman',
-'tog-enotifwatchlistpages' => 'E-melkan saya apabila berlaku perubahan pada laman yang dipantau',
+'tog-enotifwatchlistpages' => 'E-mel kepada saya tentang perubahan pada halaman-halaman dan fail-fail dalam senarai pantau saya',
 'tog-enotifusertalkpages' => 'E-melkan saya apabila berlaku perubahan pada laman perbincangan saya',
-'tog-enotifminoredits' => 'Juga e-melkan saya apabila berlaku penyuntingan kecil',
+'tog-enotifminoredits' => 'Juga e-mel kepada saya tentang suntingan kecil pada halaman-halaman dan fail-fail',
 'tog-enotifrevealaddr' => 'Serlahkan alamat e-mel saya dalam e-mel pemberitahuan',
 'tog-shownumberswatching' => 'Tunjukkan bilangan pemantau',
 'tog-oldsig' => 'Tanda tangan yang sedia ada:',
@@ -1421,6 +1421,7 @@ Tindakan ini tidak boleh dibatalkan.',
 'right-writeapi' => 'Menggunakan API tulis',
 'right-delete' => 'Menghapuskan laman',
 'right-bigdelete' => 'Menghapuskan laman bersejarah',
+'right-deletelogentry' => 'Memadamkan dan memulihkan entri log tertentu',
 'right-deleterevision' => 'Menghapuskan dan memulihkan semula mana-mana semakan bagi sesebuah laman',
 'right-deletedhistory' => 'Melihat senarai entri sejarah yang telah dihapuskan, tetapi tanpa teks yang berkaitan',
 'right-deletedtext' => 'Melihat teks yang telah dihapuskan dan perubahan antara semakan-semakan yang telah dihapuskan',
@@ -1728,6 +1729,7 @@ Sila hubungi [[Special:ListUsers/sysop|pentadbir sistem]].',
 'lockmanager-fail-releaselock' => 'Kunci untuk "$1" tidak dapat dikeluarkan.',
 'lockmanager-fail-db-bucket' => 'Di baldi $1 tidak dapat dihubungi pangkalan data selak yang secukupnya.',
 'lockmanager-fail-db-release' => 'Selak-selak tidak dapat dikeluarkan di pangkalan data $1.',
+'lockmanager-fail-svr-acquire' => 'Selak-selak tidak dapat diperoleh di pelayan $1.',
 'lockmanager-fail-svr-release' => 'Selak-selak tidak dapat dikeluarkan di pelayan $1.',
 
 # ZipDirectoryReader
@@ -2273,6 +2275,8 @@ Sila lihat $2 untuk rekod penghapusan terkini.',
 'rollback' => 'Undurkan suntingan.',
 'rollback_short' => 'Undur',
 'rollbacklink' => 'undur',
+'rollbacklinkcount' => 'mengundurkan $1 {{PLURAL:$1|suntingan}}',
+'rollbacklinkcount-morethan' => 'mengundurkan lebih daripada $1 {{PLURAL:$1|suntingan}}',
 'rollbackfailed' => 'Pengunduran gagal',
 'cantrollback' => 'Suntingan tersebut tidak dapat dibalikkan: penyumbang terakhir adalah satu-satunya pengarang bagi rencana ini.',
 'alreadyrolled' => 'Suntingan terakhir bagi [[:$1]] oleh [[User:$2|$2]] ([[User talk:$2|Perbualan]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tidak dapat dibalikkan; terdapat pengguna lain yang telah menyunting atau membalikkan laman itu.
@@ -3847,6 +3851,4 @@ Ataupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dic
 'duration-centuries' => '$1 abad',
 'duration-millennia' => '$1 alaf',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Selak-selak tidak dapat diperoleh di pelayan $1.',
 );
index 82f5f98..9b2faae 100644 (file)
@@ -333,7 +333,7 @@ $messages = array(
 'tog-watchmoves' => 'Legg til sider og filer jeg flytter til min overvåkingsliste',
 'tog-watchdeletion' => 'Legg til sider og filer jeg sletter i min overvåkingsliste',
 'tog-minordefault' => 'Merk i utgangspunktet alle redigeringer som mindre',
-'tog-previewontop' => 'Vis forhåndsvisningen ovenfor redigeringsboksen',
+'tog-previewontop' => 'Vis forhåndsvisningen over redigeringsboksen',
 'tog-previewonfirst' => 'Vis forhåndsvisning når du begynner å redigere',
 'tog-nocache' => 'Deaktiver nettlesermellomlagring av sider («caching»)',
 'tog-enotifwatchlistpages' => 'Send meg en e-post når sider og filer på overvåkningslisten min blir endret',
@@ -1049,7 +1049,7 @@ Systemadministratoren som låste databasen oppga følgende årsak: $1",
 Det siste loggelementet er oppgitt under som referanse:",
 'semiprotectedpagewarning' => "'''Merk:''' Denne siden har blitt låst slik at kun registrerte brukere kan endre den.
 Det siste loggelementet er oppgitt under som referanse:",
-'cascadeprotectedwarning' => "'''Advarsel:''' Denne siden har blitt låst slik at kun brukere med administratorrettigheter kan redigere den, fordi den inkluderes på følgende dypbeskyttede sider:<!--{{PLURAL:$1}}-->",
+'cascadeprotectedwarning' => "'''Advarsel:''' Denne siden har blitt låst slik at kun brukere med administratorrettigheter kan redigere den, fordi den inkluderes på følgende dypbeskyttede {{PLURAL:$1|sider}}:",
 'titleprotectedwarning' => "'''Advarsel: Denne siden har blitt låst slik at [[Special:ListGroupRights|spesielle rettigheter]] kreves for å opprette den.'''
 Det siste loggelementet er oppgitt under som referanse:",
 'templatesused' => '{{PLURAL:$1|Mal|Maler}} som brukes på denne siden:',
@@ -1224,9 +1224,9 @@ $1",
 'deletedhist' => 'Slettet historikk',
 'revdelete-hide-current' => 'Feil under skjuling av objektet datert $2, $1: dette er den gjeldende revisjonen.
 Den kan ikke skjules.',
-'revdelete-show-no-access' => 'Feil under visning av objekt datert $2, $1: dette objektet har blitt markert "begrenset".
+'revdelete-show-no-access' => 'Feil under visning av objekt datert $2, $1: dette objektet har blitt markert «begrenset».
 Du har ikke tilgang til det.',
-'revdelete-modify-no-access' => 'Feil under endring av objekt datert $2, $1: dette objektet har blitt markert "begrenset".
+'revdelete-modify-no-access' => 'Feil under endring av objekt datert $2, $1: dette objektet har blitt markert «begrenset».
 Du har ikke tilgang til det.',
 'revdelete-modify-missing' => 'Feil under endring av objekt ID $1: det mangler i databasen!',
 'revdelete-no-change' => "'''Advarsel:''' objektet datert $2 $1 hadde allerede synlighetsinnstillingene du forespurte.",
@@ -1284,13 +1284,13 @@ Forsikre deg om at denne endringen vil opprettholde historisk sidekontinuitet.',
 'lineno' => 'Linje $1:',
 'compareselectedversions' => 'Sammenlign valgte revisjoner',
 'showhideselectedversions' => 'Vis/skjul valgte versjoner',
-'editundo' => 'angre',
+'editundo' => 'fjern',
 'diff-multi' => '({{PLURAL:$1|Én mellomrevisjon|$1 mellomrevisjoner}} av {{PLURAL:$2|én bruker|$2 brukere}} vises ikke)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Én mellomrevisjon|$1 mellomrevisjoner}} av mer enn $2 {{PLURAL:$2|bruker|brukere}} vises ikke)',
 
 # Search results
-'searchresults' => 'Søkeresultat',
-'searchresults-title' => 'Søkeresultat for «$1»',
+'searchresults' => 'Søkeresultater',
+'searchresults-title' => 'Søkeresultater for «$1»',
 'searchresulttext' => 'For mer informasjon om søking i {{SITENAME}}, se [[{{MediaWiki:Helppage}}|{{int:help}}]].',
 'searchsubtitle' => "Du søkte etter '''[[:$1]]''' ([[Special:Prefixindex/$1|alle sider som begynner med «$1»]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|alle sider som lenker til «$1»]])",
 'searchsubtitleinvalid' => "Du søkte etter '''$1'''",
@@ -1326,8 +1326,8 @@ Forsikre deg om at denne endringen vil opprettholde historisk sidekontinuitet.',
 'search-redirect' => '(omdirigering $1)',
 'search-section' => '(avsnitt $1)',
 'search-suggest' => 'Mente du: $1',
-'search-interwiki-caption' => 'Søsterprosjekt',
-'search-interwiki-default' => '$1-resultat:',
+'search-interwiki-caption' => 'Søsterprosjekter',
+'search-interwiki-default' => '$1-resultater:',
 'search-interwiki-more' => '(mer)',
 'search-mwsuggest-enabled' => 'med forslag',
 'search-mwsuggest-disabled' => 'ingen forslag',
@@ -1341,7 +1341,7 @@ Forsikre deg om at denne endringen vil opprettholde historisk sidekontinuitet.',
 'showingresultsheader' => "{{PLURAL:$5|Resultat '''$1''' av '''$3'''|Resultat '''$1 - $2''' av '''$3'''}} for '''$4'''",
 'nonefound' => "'''Merk''': Som standard søkes det kun i enkelte navnerom.
 For å søke i alle, bruk prefikset ''all:'' (inkluderer diskusjonssider, maler, osv), eller bruk det ønskede navnerommet som prefiks.",
-'search-nonefound' => 'Det var ingen resultater som passet til søket.',
+'search-nonefound' => 'Ingen resultater passet til søket.',
 'powersearch' => 'Avansert søk',
 'powersearch-legend' => 'Avansert søk',
 'powersearch-ns' => 'Søk i navnerom:',
@@ -1382,7 +1382,7 @@ For å søke i alle, bruk prefikset ''all:'' (inkluderer diskusjonssider, maler,
 'prefs-watchlist-days' => 'Dager som skal vises i overvåkningslisten:',
 'prefs-watchlist-days-max' => 'Maksimalt $1 {{PLURAL:$1|dag|dager}}',
 'prefs-watchlist-edits' => 'Antall redigeringer som skal vises i utvidet overvåkningsliste:',
-'prefs-watchlist-edits-max' => 'Maksimum antall: 1000',
+'prefs-watchlist-edits-max' => 'Maksimalt antall: 1000',
 'prefs-watchlist-token' => 'Nøkkel for overvåkningsliste',
 'prefs-misc' => 'Diverse',
 'prefs-resetpass' => 'Endre passord',
@@ -1402,7 +1402,7 @@ For å søke i alle, bruk prefikset ''all:'' (inkluderer diskusjonssider, maler,
 'stub-threshold' => 'Grense for <span class="mw-stub-example">stubblenkeformatering</span>:',
 'stub-threshold-disabled' => 'Deaktivert',
 'recentchangesdays' => 'Antall dager som skal vises i siste endringer:',
-'recentchangesdays-max' => '(maksimum $1 {{PLURAL:$1|dag|dager}})',
+'recentchangesdays-max' => 'Maks $1 {{PLURAL:$1|dag|dager}}',
 'recentchangescount' => 'Antall redigeringer som skal vises som standard:',
 'prefs-help-recentchangescount' => 'Dette inkluderer nylige endringer, sidehistorikk og logger.',
 'prefs-help-watchlist-token' => 'Om du fyller ut dette feltet med et hemmelig tall, vil det lages en RSS-liste for overvåkningslisten din.
@@ -1423,8 +1423,8 @@ Her er et tilfeldig tall du kan bruke: $1',
 'timezoneregion-asia' => 'Asia',
 'timezoneregion-atlantic' => 'Atlanterhavet',
 'timezoneregion-australia' => 'Australia',
-'timezoneregion-europe' => 'Europe',
-'timezoneregion-indian' => 'Det indiske hav',
+'timezoneregion-europe' => 'Europa',
+'timezoneregion-indian' => 'Indiahavet',
 'timezoneregion-pacific' => 'Stillehavet',
 'allowemail' => 'Tillat andre å sende meg e-post',
 'prefs-searchoptions' => 'Søkealternativ',
@@ -1468,12 +1468,12 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'prefs-signature' => 'Signatur',
 'prefs-dateformat' => 'Datoformat',
 'prefs-timeoffset' => 'Tidsforskyvning',
-'prefs-advancedediting' => 'Avanserte alternativ',
+'prefs-advancedediting' => 'Avanserte alternativer',
 'prefs-advancedrc' => 'Avanserte alternativ',
-'prefs-advancedrendering' => 'Avanserte alternativ',
-'prefs-advancedsearchoptions' => 'Avanserte alternativ',
-'prefs-advancedwatchlist' => 'Avanserte alternativ',
-'prefs-displayrc' => 'Visningsalternativ',
+'prefs-advancedrendering' => 'Avanserte alternativer',
+'prefs-advancedsearchoptions' => 'Avanserte alternativer',
+'prefs-advancedwatchlist' => 'Avanserte alternativer',
+'prefs-displayrc' => 'Visningsalternativer',
 'prefs-displaysearchoptions' => 'Visningsalternativer',
 'prefs-displaywatchlist' => 'Visningsalternativer',
 'prefs-diffs' => 'Forskjeller',
@@ -1535,7 +1535,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'right-createpage' => 'Opprette sider (som ikke er diskusjonssider)',
 'right-createtalk' => 'Opprette diskusjonssider',
 'right-createaccount' => 'Opprette nye kontoer',
-'right-minoredit' => 'Marker endringer som mindre',
+'right-minoredit' => 'Markere endringer som mindre',
 'right-move' => 'Flytte sider',
 'right-move-subpages' => 'Flytte sider med undersider',
 'right-move-rootuserpages' => 'Flytte hovedbrukersider',
@@ -1557,7 +1557,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'right-deletelogentry' => 'Slett og gjenopprett spesifikke loggoppføringer',
 'right-deleterevision' => 'Slette og gjenopprette enkeltrevisjoner av sider',
 'right-deletedhistory' => 'Se slettet sidehistorikk uten tilhørende sidetekst',
-'right-deletedtext' => 'Vis slettet tekst og endringer mellom slettede versjoner',
+'right-deletedtext' => 'Vise slettet tekst og endringer mellom slettede versjoner',
 'right-browsearchive' => 'Søke i slettede sider',
 'right-undelete' => 'Gjenopprette sider',
 'right-suppressrevision' => 'Se og gjenopprette skjulte siderevisjoner',
@@ -1567,7 +1567,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'right-hideuser' => 'Blokkere et brukernavn og skjule det fra det offentlige',
 'right-ipblock-exempt' => 'Kan redigere fra blokkerte IP-adresser',
 'right-proxyunbannable' => 'Kan redigere fra blokkerte proxyer',
-'right-unblockself' => 'Fjern blokkering av seg selv',
+'right-unblockself' => 'Fjerne blokkering av seg selv',
 'right-protect' => 'Endre beskyttelsesnivåer',
 'right-editprotected' => 'Redigere beskyttede sider',
 'right-editinterface' => 'Redigere brukergrensesnittet',
@@ -1593,7 +1593,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 
 # User rights log
 'rightslog' => 'Brukerrettighetslogg',
-'rightslogtext' => 'Dette er en logg over forandringer i brukerrettigheter.',
+'rightslogtext' => 'Dette er en logg over endringer av brukerrettigheter.',
 'rightslogentry' => 'endret gruppe for $1 fra $2 til $3',
 'rightslogentry-autopromote' => 'ble automatisk forfremmet fra $2 til $3',
 'rightsnone' => '(ingen)',
@@ -1623,7 +1623,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'action-suppressionlog' => 'se denne private loggen',
 'action-block' => 'blokkere denne brukeren fra å redigere',
 'action-protect' => 'endre denne sidens beskyttelsesnivåer',
-'action-rollback' => 'tilbakestill raskt endringene til den siste brukeren som redigerte en bestemt side',
+'action-rollback' => 'raskt tilbakestille endringene til den siste brukeren som redigerte en bestemt side',
 'action-import' => 'importere denne siden fra en annen wiki',
 'action-importupload' => 'importere denne siden fra en opplastet fil',
 'action-patrol' => 'merke andre brukeres redigeringer som patruljert',
@@ -1633,12 +1633,12 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'action-userrights' => 'redigere alle brukerrettigheter',
 'action-userrights-interwiki' => 'endre brukerrettigheter for brukere på andre wikier',
 'action-siteadmin' => 'låse eller låse opp databasen',
-'action-sendemail' => 'send e-post',
+'action-sendemail' => 'sende e-poster',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|endring|endringer}}',
 'recentchanges' => 'Siste endringer',
-'recentchanges-legend' => 'Alternativ for siste endringer',
+'recentchanges-legend' => 'Alternativer for siste endringer',
 'recentchanges-summary' => 'På denne siden vises de siste endringene i wikien.',
 'recentchanges-feed-description' => 'Følg med på siste endringer i denne wikien med denne matingen.',
 'recentchanges-label-newpage' => 'Denne redigeringen opprettet en ny side',
@@ -1646,7 +1646,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'recentchanges-label-bot' => 'Denne redigeringen ble gjort av en bot',
 'recentchanges-label-unpatrolled' => 'Denne redigeringen har ikke blitt patruljert ennå',
 'rcnote' => "Nedenfor vises {{PLURAL:$1|'''1''' endring|de siste '''$1''' endringene}} fra {{PLURAL:$2|det siste døgnet|de siste '''$2''' døgnene}}, per $5 $4.",
-'rcnotefrom' => "Nedenfor er endringene fra '''$2''' (opp til '''$1''' vises).",
+'rcnotefrom' => "Nedenfor er endringene siden '''$2''' (opp til '''$1''' vises).",
 'rclistfrom' => 'Vis nye endringer med start fra $1',
 'rcshowhideminor' => '$1 mindre endringer',
 'rcshowhidebots' => '$1 roboter',
@@ -1665,7 +1665,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'number_of_watching_users_pageview' => '[$1 overvåkende {{PLURAL:$1|bruker|brukere}}]',
 'rc_categories' => 'Begrens til kategorier (skilletegn: «|»)',
 'rc_categories_any' => 'Alle',
-'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} etter endring',
+'rc-change-size-new' => '$1 {{PLURAL:$1|byte}} etter endring',
 'newsectionsummary' => '/* $1 */ ny seksjon',
 'rc-enhanced-expand' => 'Vis detaljer (krever JavaScript)',
 'rc-enhanced-hide' => 'Skjul detaljer',
@@ -2404,6 +2404,8 @@ Se $2 for en oversikt over de siste slettingene.',
 'rollback' => 'Fjern redigeringer',
 'rollback_short' => 'Tilbakestill',
 'rollbacklink' => 'tilbakestill',
+'rollbacklinkcount' => 'tilbakestill {{PLURAL:$1|én endring|$1 endringer}}',
+'rollbacklinkcount-morethan' => 'tilbakestill mer enn $1 {{PLURAL:$1|endring|endringer}}',
 'rollbackfailed' => 'Kunne ikke tilbakestille',
 'cantrollback' => 'Kan ikke fjerne redigering; den siste brukeren er den eneste forfatteren.',
 'alreadyrolled' => 'Kan ikke fjerne den siste redigeringen på [[$1]] av [[User:$2|$2]] ([[User talk:$2|diskusjon]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); en annen har allerede redigert siden eller fjernet redigeringen.
index 1bd7c73..a23386b 100644 (file)
@@ -361,17 +361,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Bewerken van deelpagina’s mogelijk maken met een rechtermuisklik op een tussenkop (vereist JavaScript)',
 'tog-showtoc' => 'Inhoudsopgave weergeven (voor pagina’s met minstens 3 tussenkoppen)',
 'tog-rememberpassword' => 'Aanmeldgegevens onthouden (maximaal $1 {{PLURAL:$1|dag|dagen}})',
-'tog-watchcreations' => 'Pagina’s die ik aanmaak automatisch volgen',
-'tog-watchdefault' => 'Pagina’s die ik bewerk automatisch volgen',
-'tog-watchmoves' => 'Pagina’s die ik hernoem automatisch volgen',
-'tog-watchdeletion' => 'Pagina’s die ik verwijder automatisch volgen',
+'tog-watchcreations' => "Pagina's die ik aanmaak en bestanden die ik upload automatisch volgen",
+'tog-watchdefault' => 'Pagina’s en bestanden die ik bewerk automatisch volgen',
+'tog-watchmoves' => 'Pagina’s en bestanden die ik hernoem automatisch volgen',
+'tog-watchdeletion' => 'Pagina’s en bestanden die ik verwijder automatisch volgen',
 'tog-minordefault' => 'Mijn bewerkingen als ‘klein’ markeren',
 'tog-previewontop' => 'Voorvertoning boven bewerkingsveld weergeven',
 'tog-previewonfirst' => 'Voorvertoning bij eerste bewerking weergeven',
 'tog-nocache' => "Cachen van pagina's door de browser uitschakelen",
-'tog-enotifwatchlistpages' => 'Mij e-mailen bij bewerkingen van pagina’s op mijn volglijst',
+'tog-enotifwatchlistpages' => 'Mij e-mailen bij bewerkingen van pagina’s of bestanden op mijn volglijst',
 'tog-enotifusertalkpages' => 'Mij e-mailen als iemand mijn overlegpagina wijzigt',
-'tog-enotifminoredits' => 'Mij e-mailen bij kleine bewerkingen van pagina’s op mijn volglijst',
+'tog-enotifminoredits' => 'Mij e-mailen bij kleine bewerkingen van pagina’s en bestanden op mijn volglijst',
 'tog-enotifrevealaddr' => 'Mijn e-mailadres weergeven in e-mailberichten',
 'tog-shownumberswatching' => 'Het aantal gebruikers weergeven dat deze pagina volgt',
 'tog-oldsig' => 'Bestaande ondertekening:',
@@ -508,7 +508,7 @@ $messages = array(
 'vector-simplesearch-preference' => 'Verbeterde zoeksuggesties inschakelen (alleen voor het uiterlijk Vector)',
 'vector-view-create' => 'Aanmaken',
 'vector-view-edit' => 'Bewerken',
-'vector-view-history' => 'Geschiedenis bekijken',
+'vector-view-history' => 'Geschiedenis weergeven',
 'vector-view-view' => 'Lezen',
 'vector-view-viewsource' => 'Brontekst bekijken',
 'actions' => 'Handelingen',
@@ -705,8 +705,8 @@ Maak hiervan melding bij een [[Special:ListUsers/sysop|beheerder]] van {{SITENAM
 'cannotdelete' => 'De pagina of het bestand "$1" kon niet verwijderd worden.
 Mogelijk is deze al door iemand anders verwijderd.',
 'cannotdelete-title' => 'Pagina "$1" kan niet verwijderd worden',
-'delete-hook-aborted' => 't Vortdoon is aofebreuken deur n haak.
-Der is gien informasie over beschikbaor.',
+'delete-hook-aborted' => 'Het verwijderen is afgebroken door een hook.
+Er is geen toelichting beschikbaar.',
 'badtitle' => 'Ongeldige paginanaam',
 'badtitletext' => 'De naam van de opgevraagde pagina was ongeldig, leeg of bevatte een verkeerde intertaal- of interwikinaamverwijzing.
 Wellicht bevat de paginanaam niet toegestane tekens.',
@@ -767,6 +767,7 @@ Vergeet niet uw [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te pass
 'remembermypassword' => 'Aanmeldgegevens onthouden (maximaal $1 {{PLURAL:$1|dag|dagen}})',
 'securelogin-stick-https' => 'Verbonden blijven via HTTPS na aanmelden',
 'yourdomainname' => 'Uw domein:',
+'password-change-forbidden' => 'U kunt uw wachtwoord niet wijzigen in deze wiki.',
 'externaldberror' => 'Er is een fout opgetreden bij het aanmelden bij de database of u hebt geen toestemming uw externe gebruiker bij te werken.',
 'login' => 'Aanmelden',
 'nav-login-createaccount' => 'Aanmelden / registreren',
@@ -1625,6 +1626,7 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'right-writeapi' => 'Bewerken via de API',
 'right-delete' => "Pagina's verwijderen",
 'right-bigdelete' => "Pagina's met een grote geschiedenis verwijderen",
+'right-deletelogentry' => 'Specifieke logboekregels verwijderen en terugplaatsen',
 'right-deleterevision' => "Versies van pagina's verbergen",
 'right-deletedhistory' => 'Verwijderde versies bekijken, zonder te kunnen zien wat verwijderd is',
 'right-deletedtext' => 'Verwijderde tekst en wijzigingen tussen verwijderde versies bekijken',
@@ -1950,6 +1952,7 @@ Als het probleem aanhoudt, neem dan contact op met een [[Special:ListUsers/sysop
 'lockmanager-fail-releaselock' => 'Het was niet mogelijk vergrendeling van "$1" op te heffen.',
 'lockmanager-fail-db-bucket' => 'Het was niet mogelijk om in contact te komen met voldoende vergrendelingsdatabases in de bucket $1.',
 'lockmanager-fail-db-release' => 'Het was niet mogelijk om de vergrendeling voor de database $1 op te heffen.',
+'lockmanager-fail-svr-acquire' => 'Het was niet mogelijk een vergrendeling te krijgen op server $1.',
 'lockmanager-fail-svr-release' => 'Het was niet mogelijk om de vergrendeling voor de server $1 op te heffen.',
 
 # ZipDirectoryReader
@@ -2152,8 +2155,8 @@ Vergeet niet de "Verwijzingen naar deze pagina" te controleren alvorens dit sjab
 
 'disambiguations' => "Pagina's die verwijzen naar doorverwijspagina's",
 'disambiguationspage' => 'Template:Doorverwijspagina',
-'disambiguations-text' => "Hieronder staan pagina's die verwijzen naar een '''doorverwijspagina'''.
-Deze horen waarschijnlijk direct naar het juiste onderwerp te verwijzen.<br />
+'disambiguations-text' => "Hieronder staan pagina's met tenminste één verwijzing naar een '''doorverwijspagina'''.
+Deze horen waarschijnlijk direct naar een meer toepasselijke pagina te verwijzen.<br />
 Een pagina wordt gezien als doorverwijspagina als er een sjabloon op staat dat opgenomen is op [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Dubbele doorverwijzingen',
@@ -2502,6 +2505,8 @@ Wees voorzichtig.',
 'rollback' => 'Wijzigingen ongedaan maken',
 'rollback_short' => 'Terugdraaien',
 'rollbacklink' => 'terugdraaien',
+'rollbacklinkcount' => '{{PLURAL:$1|één bewerking|$1 bewerkingen}} terugdraaien',
+'rollbacklinkcount-morethan' => 'Meer dan {{PLURAL:$1|één bewerking|$1 bewerkingen}} terugdraaien',
 'rollbackfailed' => 'Ongedaan maken van wijzigingen mislukt.',
 'cantrollback' => 'Ongedaan maken van wijzigingen onmogelijk: deze pagina heeft slechts 1 auteur.',
 'alreadyrolled' => 'Het is niet mogelijk om de bewerking van de pagina [[:$1]] door [[User:$2|$2]] ([[User talk:$2|overleg]]{{int:pipe-separator}}[[Special:Contributions/$2|bijdragen]]) ongedaan te maken.
@@ -4128,6 +4133,4 @@ Anders kunt u ook het eenvoudige formulier hieronder gebruiken. Uw reactie wordt
 'duration-centuries' => '$1 {{PLURAL:$1|eeuw|eeuwen}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millennium|millennia}}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Het was niet mogelijk een vergrendeling te krijgen op server $1.',
 );
index 478a843..b5466dc 100644 (file)
@@ -2579,7 +2579,7 @@ I desse falla lyt du flytte eller flette saman sida manuelt.",
 'move-subpages' => 'Flytt undersider (opp til $1)',
 'move-talk-subpages' => 'Flytt undersider av diskusjonssida (opp til $1)',
 'movepage-page-exists' => 'Sida $1 finst alt og kan ikkje skrivast over automatisk.',
-'movepage-page-moved' => 'Sida $1 har blitt flytta til $2.',
+'movepage-page-moved' => 'Sida $1 er flytt til $2.',
 'movepage-page-unmoved' => 'Sida $1 kunne ikkje flyttast til $2.',
 'movepage-max-pages' => 'Grensa på {{PLURAL:$1|éi side|$1 sider}} er nådd; ingen fleire sider kjem til å verte flytta automatisk.',
 'movelogpage' => 'Flyttelogg',
index 00e9b8b..a0a5165 100644 (file)
@@ -703,7 +703,7 @@ $2',
 'login-userblocked' => 'ଏହି ସଭ୍ୟଙ୍କୁ ଅଟକାଯାଇଛି । ଲଗ ଇନ କରିବାକୁ ଅନୁମତି ନାହିଁ ।',
 'wrongpassword' => 'ଦିଆଯାଇଥିବା ପାସବାର୍ଡ଼ଟି ଭୁଲ ଅଟେ  ।
 ଦୟାକରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।',
-'wrongpasswordempty' => 'ଦିଆଯାଇଥିବା ପାସବାର୍ଡ଼ଟି ଖାଲି ଛଡ଼ାଯାଇଛି ।</br>
+'wrongpasswordempty' => 'ଦିଆଯାଇଥିବା ପାସବାର୍ଡ଼ଟି ଖାଲି ଛଡ଼ାଯାଇଛି ।
 ଦୟାକରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।',
 'passwordtooshort' => 'ପାସବାର୍ଡ଼ଟି ଅତି କମରେ {{PLURAL:$1|ଗୋଟିଏ ଅକ୍ଷର|$1ଟି ଅକ୍ଷର}}ର ହୋଇଥିବା ଲୋଡ଼ା ।',
 'password-name-match' => 'ଆପଣଙ୍କ ପାସବାର୍ଡ଼ଟି ଆପଣଙ୍କ ଇଉଜର ନାମ ଠାରୁ ଅଲଗା ହେବା ଉଚିତ ।',
@@ -964,10 +964,10 @@ $1 ଦ୍ଵାରା ପ୍ରତିରୋଧ କରାଯାଇଛି
 'editingsection' => '$1 (ଭାଗ)କୁ ବଦଳାଇବେ',
 'editingcomment' => '$1 (ନୂଆ ଭାଗ)କୁ ବଦଳାଉଛୁ',
 'editconflict' => 'ବଦଳାଇବା ଦ୍ଵନ୍ଦ: $1',
-'explainconflict' => "ଆପଣ ବଦଳାଇବା ଆରମ୍ଭ କରିବା ଭିତରେ କେହିଜଣେ ଏହି ପୃଷ୍ଠାକୁ ବଦଳାଇଛନ୍ତି ।</br>
-ଉପର ଲେଖା ଜାଗାଟି ଏହା ଯେମିତି ଅଛି ସେମିତି ଥିବା ଲେଖାଟି ଦେଖାଉଛି ।</br>
-ତଳ ଜାଗାଟିରେ ଆପଣ କରିଥିବା ବଦଳ ଦେଖାଉଛି ।</br>
-ଏବେ ଥିବା ଲେଖାରେ ଆପଣଙ୍କୁ ନିଜ ବଦଳକୁ ମିଶାଇବାକୁ ହେବ ।</br>
+'explainconflict' => "ଆପଣ ବଦଳାଇବା ଆରମ୍ଭ କରିବା ଭିତରେ କେହିଜଣେ ଏହି ପୃଷ୍ଠାକୁ ବଦଳାଇଛନ୍ତି ।
+ଉପର ଲେଖା ଜାଗାଟି ଏହା ଯେମିତି ଅଛି ସେମିତି ଥିବା ଲେଖାଟି ଦେଖାଉଛି ।
+ତଳ ଜାଗାଟିରେ ଆପଣ କରିଥିବା ବଦଳ ଦେଖାଉଛି ।
+ଏବେ ଥିବା ଲେଖାରେ ଆପଣଙ୍କୁ ନିଜ ବଦଳକୁ ମିଶାଇବାକୁ ହେବ ।
 ଯଦି ଆପଣ \"{{int:savearticle}}\" ଦବାନ୍ତି ତେବେ '''କେବଳ''' ଉପର ଲେଖାଟି ସାଇତା ହୋଇଯିବ ।",
 'yourtext' => 'ଆପଣଙ୍କ ଲେଖା',
 'storedversion' => 'ସାଇତା ସଙ୍କଳନ',
@@ -1250,7 +1250,7 @@ $1",
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) ଟି ଦେଖିବେ',
 'searchmenu-legend' => 'ଖୋଜିବା ବିକଳ୍ପ',
 'searchmenu-exists' => "'''ଏହି ଉଇକିରେ \"[[:\$1]]\" ନାଆଁରେ ପୃଷ୍ଠାଟିଏ ଅଛି ।'''",
-'searchmenu-new' => "<big><big><big>'''ଏହି ପ୍ରସଙ୍ଗଟି ଆଗରୁ ନାହିଁ, ତେଣୁ <big>''[[:$1]]''</big> ନାମରେ ପ୍ରସଙ୍ଗଟିଏ ଏଠାରେ ଗଢ଼ନ୍ତୁ!'''</big></big></big>",
+'searchmenu-new' => "'''ଏହି ପ୍ରସଙ୍ଗଟି ଆଗରୁ ନାହିଁ, ତେଣୁ ''[[:$1]]'' ନାମରେ ପ୍ରସଙ୍ଗଟିଏ ଏଠାରେ ଗଢ଼ନ୍ତୁ!'''",
 'searchhelp-url' => 'Help:ସୂଚୀ',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ଏହି ନାମ ଆଗରୁ ଥିବା ପୃଷ୍ଠାସବୁ ଖୋଜିବେ]]',
 'searchprofile-articles' => 'ସୂଚୀ ପୃଷ୍ଠା',
@@ -2006,7 +2006,7 @@ A page is treated as disambiguation page if it uses a template which is linked f
 
 'brokenredirects' => 'ଭଙ୍ଗା ପୁନପ୍ରେରଣ',
 'brokenredirectstext' => 'ତଳଲିଖିତ ପୁନପ୍ରେରଣ ସବୁ ସ୍ଥିତିହିନ ପୃଷ୍ଠାମାନଙ୍କୁ ପୁନପ୍ରେରିତ ହୋଇଥାଏ :',
-'brokenredirects-edit' => 'ସମà­\8dପାଦନା',
+'brokenredirects-edit' => 'à¬\8fହାà¬\95à­\81 à¬¬à¬¦à¬³à¬¾à¬¨à­\8dତà­\81',
 'brokenredirects-delete' => 'ଲିଭାଇବେ',
 
 'withoutinterwiki' => 'ଭାଷାର ଲିଙ୍କ ନଥିବା ପୃଷ୍ଠାମାନ',
index f4a549e..b7f3623 100644 (file)
@@ -16,6 +16,7 @@
  * @author Kaganer
  * @author Sukh
  * @author Surinder.wadhawan
+ * @author TariButtar
  * @author Ævar Arnfjörð Bjarmason
  * @author לערי ריינהארט
  */
@@ -95,14 +96,14 @@ $messages = array(
 'wednesday' => 'ਬੁੱਧਵਾਰ',
 'thursday' => 'ਵੀਰਵਾਰ',
 'friday' => 'ਸ਼ੁੱਕਰਵਾਰ',
-'saturday' => 'ਸ਼ਨਿੱà¨\9aਰਵਾਰ',
+'saturday' => 'ਸ਼ਨà©\80ਵਾਰ',
 'sun' => 'ਐਤ',
 'mon' => 'ਸੋਮ',
 'tue' => 'ਮੰਗਲ',
 'wed' => 'ਬੁੱਧ',
 'thu' => 'ਵੀਰ',
 'fri' => 'ਸ਼ੁੱਕਰ',
-'sat' => 'ਸ਼ਨਿੱà¨\9aਰ',
+'sat' => 'ਸ਼ਨà©\80',
 'january' => 'ਜਨਵਰੀ',
 'february' => 'ਫ਼ਰਵਰੀ',
 'march' => 'ਮਾਰਚ',
@@ -111,10 +112,10 @@ $messages = array(
 'june' => 'ਜੂਨ',
 'july' => 'ਜੁਲਾਈ',
 'august' => 'ਅਗਸਤ',
-'september' => 'ਸਤੰਬਰ',
+'september' => 'ਸਿਤੰਬਰ',
 'october' => 'ਅਕਤੂਬਰ',
 'november' => 'ਨਵੰਬਰ',
-'december' => 'ਦਸੰਬਰ',
+'december' => 'ਦਿਸੰਬਰ',
 'january-gen' => 'ਜਨਵਰੀ',
 'february-gen' => 'ਫ਼ਰਵਰੀ',
 'march-gen' => 'ਮਾਰਚ',
@@ -123,22 +124,22 @@ $messages = array(
 'june-gen' => 'ਜੂਨ',
 'july-gen' => 'ਜੁਲਾਈ',
 'august-gen' => 'ਅਗਸਤ',
-'september-gen' => 'ਸਤੰਬਰ',
+'september-gen' => 'ਸਿਤੰਬਰ',
 'october-gen' => 'ਅਕਤੂਬਰ',
 'november-gen' => 'ਨਵੰਬਰ',
-'december-gen' => 'ਦਸੰਬਰ',
-'jan' => 'ਜਨ',
-'feb' => 'ਫ਼ਰ',
-'mar' => 'ਮਾਰ',
-'apr' => 'ਅਪ',
+'december-gen' => 'ਦਿਸੰਬਰ',
+'jan' => 'ਜਨਵਰੀ',
+'feb' => 'ਫ਼ਰਵਰੀ',
+'mar' => 'ਮਾਰ',
+'apr' => 'ਅਪਰੈਲ',
 'may' => 'ਮਈ',
 'jun' => 'ਜੂਨ',
 'jul' => 'ਜੁਲਾਈ',
-'aug' => 'ਅਗ',
-'sep' => 'ਸਤੰ',
-'oct' => 'ਅਕ',
-'nov' => 'ਨਵੰ',
-'dec' => 'ਦਸੰ',
+'aug' => 'ਅਗਸਤ',
+'sep' => 'ਸਿਤੰਬਰ',
+'oct' => 'ਅਕਤੂਬਰ',
+'nov' => 'ਨਵੰਬਰ',
+'dec' => 'ਦਿਸੰਬਰ',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|ਕੈਟਾਗਰੀ|ਕੈਟਾਗਰੀਆਂ}}',
@@ -146,21 +147,22 @@ $messages = array(
 'subcategories' => 'ਸਬ-ਕੈਟਾਗਰੀਆਂ',
 'category-media-header' => 'ਕੈਟਾਗਰੀ "$1" ਵਿੱਚ ਮੀਡਿਆ',
 'category-empty' => "''ਇਹ ਕੈਟਾਗਰੀ ਵਿੱਚ ਇਸ ਵੇਲੇ ਕੋਈ ਲੇਖ (ਆਰਟੀਕਲ) ਜਾਂ ਮੀਡਿਆ ਨਹੀਂ ਹੈ।''",
-'hidden-categories' => '{{PLURAL:$1|ਅਲੋਪ ਸ਼੍ਰੇਣੀ|ਅਲੋਪ ਸ਼੍ਰੇਣੀਆ}}',
-'category-subcat-count' => '{{ਕੁਲ   $2 ਸ਼੍ਰੇਣੀਆਂ ਵਿਚੌਂ , PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਹੇਠ ਲਿਖੀ ਸ਼੍ਰੇਣੀ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਨਿਮਿਨਲਿਖਿਤ {{PLURAL:$1|ਉਪ ਸ਼੍ਰੇਣੀ ਹੈ|$1ਉਪਸ਼੍ਰੇਣੀਆਂ ਹਨ}}  }}',
-'category-article-count' => '{{ ਕੁਲ $2 ਲੇਖਾਂ ਵਿਚੌਂ , PLURAL:$2| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼  ਨਿਮਨਲਿਖਿਤ  {{PLURAL:$1|ਲੇਖ ਹੈ|$1 ਲੇਖ ਹਨ}}, }}',
-'listingcontinuesabbrev' => 'ਅਗੇ.',
+'hidden-categories' => '{{PLURAL:$1|ਲੁਕੀਵੀਂ ਸ਼੍ਰੇਣੀ|ਲੁਕਵੀਂਆਂ ਸ਼੍ਰੇਣੀਆਂ}}',
+'category-subcat-count' => '{{ਕੁੱਲ $2 ਸ਼੍ਰੇਣੀਆਂ ਵਿਚੋਂ, PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਹੇਠ ਲਿਖੀ ਸ਼੍ਰੇਣੀ ਹੈ| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ {{PLURAL:$1|ਉਪ ਸ਼੍ਰੇਣੀ ਹੈ|$1 ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਹਨ}}}}',
+'category-article-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਇਹ ਸਫ਼ਾ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ, ਕੁੱਲ $2 ਵਿਚੋਂ, ਇਹ {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ}} ਹਨ}}',
+'category-file-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਇਹ ਫ਼ਾਈਲ ਹੈ।| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ।}}}}',
+'listingcontinuesabbrev' => 'ਜਾਰੀ',
 'noindex-category' => 'ਕ੍ਰਮਸੂਚੀ ਰਹਿਤ ਸਫ਼ੇ',
 
 'about' => 'ਇਸ ਬਾਰੇ',
 'article' => 'ਸਮੱਗਰੀ ਪੇਜ',
-'newwindow' => '(ਨਵà©\80à¨\82 à¨µà¨¿à©°à¨¡à©\8b à¨µà¨¿à©±à¨\9a à¨\96à©\8bਲà©\8dਹà©\8b)',
+'newwindow' => '(ਨਵà©\80à¨\82 à¨µà¨¿à©°à¨¡à©\8b à¨µà¨¿à©±à¨\9a à¨\96à©\81ੱਲà©\8dਹਦà©\80 à¨¹à©\88)',
 'cancel' => 'ਰੱਦ ਕਰੋ',
 'moredotdotdot' => 'ਹੋਰ...',
 'mypage' => 'ਮੇਰਾ ਪੇਜ',
 'mytalk' => 'ਮੇਰੀ ਗੱਲਬਾਤ',
 'anontalk' => 'ਇਹ IP ਲਈ ਗੱਲਬਾਤ',
-'navigation' => 'ਨà©\87ਵà©\80à¨\97à©\87ਸ਼ਨ',
+'navigation' => 'ਰਹਿਨà©\81ਮਾà¨\88',
 'and' => '&#32;ਅਤੇ',
 
 # Cologne Blue skin
@@ -171,7 +173,7 @@ $messages = array(
 'qbpageinfo' => 'ਭਾਗ',
 'qbmyoptions' => 'ਮੇਰੇ ਪੇਜ',
 'qbspecialpages' => 'ਖਾਸ ਪੇਜ',
-'faq' => 'ਸਵਾਲ-à¨\9cਵਾਬ',
+'faq' => 'à¨\85à¨\95ਸਰ à¨ªà©\81ੱà¨\9bà©\87 à¨\9cਾਣ à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨µà¨¾à¨²',
 'faqpage' => 'Project:ਸਵਾਲ-ਜਵਾਬ',
 
 # Vector skin
@@ -186,22 +188,22 @@ $messages = array(
 'vector-view-history' => 'ਅਤੀਤ ਵੇਖੋ',
 'vector-view-view' => 'ਪੜ੍ਹੋ',
 'vector-view-viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
-'actions' => 'ਕਾਰਵਾਈ',
-'namespaces' => 'ਨਾà¨\82-ਥਾà¨\82:',
+'actions' => 'ਕਾਰਵਾਈਆਂ',
+'namespaces' => 'ਨਾਮ-ਥਾà¨\82ਵਾà¨\82',
 'variants' => 'ਬਦਲ',
 
-'errorpagetitle' => 'ਗਲਤੀ',
+'errorpagetitle' => 'à¨\97਼ਲਤà©\80',
 'returnto' => '$1 ਤੇ ਵਾਪਸ ਜਾਓ',
 'tagline' => '{{SITENAME}} ਤੋਂ',
-'help' => 'ਮੱਦਦ',
-'search' => 'ਖੋਜ',
-'searchbutton' => 'ਖੋਜ',
+'help' => 'ਮਦਦ',
+'search' => 'ਖੋਜ',
+'searchbutton' => 'ਖੋਜ',
 'go' => 'ਜਾਓ',
 'searcharticle' => 'ਜਾਓ',
-'history' => 'ਸਫ਼ਾ ਅਤੀਤ',
+'history' => 'ਸਫ਼à©\87 à¨¦à¨¾ à¨\85ਤà©\80ਤ',
 'history_short' => 'ਅਤੀਤ',
 'updatedmarker' => 'ਮੇਰੇ ਆਖਰੀ ਖੋਲ੍ਹਣ ਬਾਦ ਅੱਪਡੇਟ',
-'printableversion' => 'ਪਰਿੰà¨\9fਯੋਗ ਵਰਜਨ',
+'printableversion' => 'à¨\9bਪਣਯੋਗ ਵਰਜਨ',
 'permalink' => 'ਪੱਕਾ ਲਿੰਕ',
 'print' => 'ਪਰਿੰਟ ਕਰੋ',
 'view' => 'ਵੇਖੋ',
@@ -209,24 +211,24 @@ $messages = array(
 'create' => 'ਬਣਾਓ',
 'editthispage' => 'ਇਹ ਪੇਜ ਸੋਧੋ',
 'create-this-page' => 'ਇਹ ਸਫ਼ਾ ਬਣਾਓ',
-'delete' => 'ਹਟਾਓ',
+'delete' => 'ਮਿਟਾਓ',
 'deletethispage' => 'ਇਹ ਪੇਜ ਹਟਾਓ',
 'undelete_short' => 'ਅਣ-ਹਟਾਓ {{PLURAL:$1|one edit|$1 edits}}',
 'protect' => 'ਸੁਰੱਖਿਆ',
-'protect_change' => 'ਬਦਲà©\8b',
+'protect_change' => 'ਤਬਦà©\80ਲà©\80',
 'protectthispage' => 'ਇਹ ਪੇਜ ਸੁਰੱਖਿਅਤ ਕਰੋ',
 'unprotect' => 'ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'unprotectthispage' => 'ਇਹ ਪੇਜ਼ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
-'newpage' => 'ਨਵਾà¨\82 à¨ªà©\87à¨\9c',
+'newpage' => 'ਨਵਾà¨\82 à¨¸à¨«à¨¼à¨¾',
 'talkpage' => 'ਇਸ ਪੇਜ ਬਾਰੇ ਚਰਚਾ',
 'talkpagelinktext' => 'ਗੱਲਬਾਤ',
 'specialpage' => 'ਖਾਸ ਪੇਜ',
-'personaltools' => 'ਨਿੱà¨\9cà©\80 à¨\9fà©\82ਲ',
+'personaltools' => 'ਨਿੱà¨\9cà©\80 à¨¸à©°à¨¦',
 'postcomment' => 'ਨਵਾਂ ਭਾਗ',
 'articlepage' => 'ਸਮੱਗਰੀ ਪੇਜ ਵੇਖੋ',
 'talk' => 'ਚਰਚਾ',
 'views' => 'ਵੇਖੋ',
-'toolbox' => 'à¨\9fà©\82ਲਬਾà¨\95ਸ',
+'toolbox' => 'ਸੰਦ à¨¬à¨\95ਸਾ',
 'userpage' => 'ਯੂਜ਼ਰ ਪੇਜ ਵੇਖੋ',
 'projectpage' => 'ਪਰੋਜੈਕਟ ਪੇਜ ਵੇਖੋ',
 'imagepage' => 'ਫਾਇਲ ਪੇਜ ਵੇਖੋ',
@@ -235,15 +237,15 @@ $messages = array(
 'viewhelppage' => 'ਮੱਦਦ ਪੇਜ ਵੇਖੋ',
 'categorypage' => 'ਕੈਟਾਗਰੀ ਪੇਜ ਵੇਖੋ',
 'viewtalkpage' => 'ਚਰਚਾ ਵੇਖੋ',
-'otherlanguages' => 'ਹà©\8bਰ à¨­à¨¾à¨¸à¨¼à¨¾à¨µà¨¾à¨\82 à¨µà¨¿à©±ਚ',
+'otherlanguages' => 'ਹà©\8bਰ à¨\9c਼ਬਾਨਾà¨\82 à¨µà¨¿ਚ',
 'redirectedfrom' => '($1 ਤੋਂ ਰੀ-ਡਿਰੈਕਟ)',
 'redirectpagesub' => 'ਰੀ-ਡਿਰੈਕਟ ਪੇਜ',
-'lastmodifiedat' => 'à¨\87ਹ à¨ªà©\87à¨\9c à¨\86à¨\96ਰà©\80 à¨µà¨¾à¨° $2, $1 à¨¨à©\82à©° ਸੋਧਿਆ ਗਿਆ ਸੀ।',
+'lastmodifiedat' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\86à¨\96਼ਰà©\80 à¨µà¨¾à¨° $1 à¨¨à©\82à©° $2 â\80\99ਤà©\87 ਸੋਧਿਆ ਗਿਆ ਸੀ।',
 'viewcount' => 'ਇਹ ਪੇਜ ਅਸੈੱਸ ਕੀਤਾ ਗਿਆ {{PLURAL:$1|ਇੱਕਵਾਰ|$1 ਵਾਰ}}.',
 'protectedpage' => 'ਸੁਰੱਖਿਅਤ ਪੇਜ',
-'jumpto' => 'à¨\9cੰਪ à¨\95ਰà©\8b:',
-'jumptonavigation' => 'ਨà©\87ਵà©\80à¨\97à©\87ਸ਼ਨ',
-'jumptosearch' => 'ਖੋਜ',
+'jumpto' => 'à¨\87ਸ â\80\99ਤà©\87 à¨\9cਾà¨\93:',
+'jumptonavigation' => 'ਰਹਿਨà©\81ਮਾà¨\88',
+'jumptosearch' => 'ਖੋਜ',
 'pool-errorunknown' => 'ਅਣਜਾਣ ਗਲਤੀ',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
@@ -253,13 +255,13 @@ $messages = array(
 'copyrightpage' => '{{ns:project}}:ਕਾਪੀਰਾਈਟ',
 'currentevents' => 'ਮੌਜੂਦਾ ਇਵੈਂਟ',
 'currentevents-url' => 'Project:ਮੌਜੂਦਾ ਈਵੈਂਟ',
-'disclaimers' => 'ਦਾà¨\85ਵà©\87',
-'disclaimerpage' => 'Project:à¨\86ਮ à¨¦à¨¾à¨\85ਵਾ',
+'disclaimers' => 'à¨\87ਨà¨\95ਾਰà©\80 à¨\90ਲਾਨ',
+'disclaimerpage' => 'Project:à¨\86ਮ à¨\87ਨà¨\95ਾਰ',
 'edithelp' => 'ਮੱਦਦ ਐਡੀਟਿੰਗ',
 'edithelppage' => 'Help:ਐਡਟਿੰਗ',
-'helppage' => 'Help:ਸਮੱà¨\97ਰà©\80',
-'mainpage' => 'ਮà©\81ੱà¨\96 à¨ªà©°à¨¨ਾ',
-'mainpage-description' => 'ਮà©\81ੱà¨\96 à¨ªà©\87à¨\9c',
+'helppage' => 'Help:à¨\9aà©\80à¨\9c਼ਾà¨\82',
+'mainpage' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼ਾ',
+'mainpage-description' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼à¨¾',
 'policy-url' => 'Project:ਪਾਲਸੀ',
 'portal' => 'ਕਮਿਊਨਟੀ ਪੋਰਟਲ',
 'portal-url' => 'Project:ਕਮਿਊਨਟੀ ਪੋਰਟਲ',
@@ -271,17 +273,17 @@ $messages = array(
 
 'ok' => 'ਠੀਕ ਹੈ',
 'retrievedfrom' => '"$1" ਤੋਂ ਲਿਆ',
-'youhavenewmessages' => 'ਤà©\81ਹਾਨà©\82à©° $1 ($2).',
+'youhavenewmessages' => 'ਤà©\81ਹਾਡà©\87 à¨²à¨\88 $1 à¨¹à©\88। ($2)',
 'newmessageslink' => 'ਨਵੇਂ ਸੁਨੇਹੇ',
-'newmessagesdifflink' => 'ਆਖਰੀ ਬਦਲਾਅ',
+'newmessagesdifflink' => 'à¨\86à¨\96਼ਰà©\80 à¨¬à¨¦à¨²à¨¾à¨\85',
 'youhavenewmessagesmulti' => 'ਤੁਹਾਨੂੰ ਨਵੇਂ ਸੁਨੇਹੇ $1 ਉੱਤੇ ਹਨ',
 'editsection' => 'ਸੋਧ',
-'editold' => 'ਸੋਧ',
+'editold' => 'ਸੋਧ',
 'viewsourceold' => 'ਸਰੋਤ ਵੇਖੋ',
 'editlink' => 'ਸੋਧ',
 'viewsourcelink' => 'ਸਰੋਤ ਵੇਖੋ',
 'editsectionhint' => 'ਸ਼ੈਕਸ਼ਨ ਸੋਧ: $1',
-'toc' => 'ਸਮà¨\97ੱਰà©\80',
+'toc' => 'ਲਿਸà¨\9f',
 'showtoc' => 'ਵੇਖੋ',
 'hidetoc' => 'ਓਹਲੇ',
 'collapsible-collapse' => 'ਸਮੇਟੋ',
@@ -293,19 +295,19 @@ $messages = array(
 'site-atom-feed' => '$1 ਐਟਮ ਫੀਡ',
 'page-rss-feed' => '"$1" RSS ਫੀਡ',
 'page-atom-feed' => '"$1" ਐਟਮ ਫੀਡ',
-'red-link-title' => '$1 (à¨\87ਸ à¨¨à¨¾à¨\82 à¨¦à¨¾ à¨ªà©\87à¨\9c ਨਹੀਂ ਹੈ)',
+'red-link-title' => '$1 (ਸਫ਼ਾ à¨®à©\8cà¨\9cà©\82ਦ ਨਹੀਂ ਹੈ)',
 'sort-descending' => 'ਘੱਟਦਾ ਕ੍ਰਮ',
 'sort-ascending' => 'ਵੱਧਦਾ ਕ੍ਰਮ',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'ਲੇਖ',
-'nstab-user' => 'ਯà©\82à¨\9c਼ਰ à¨ªà©\87à¨\9c',
+'nstab-user' => 'ਮà©\88à¨\82ਬਰ à¨¸à¨«à¨¼à¨¾',
 'nstab-media' => 'ਮੀਡਿਆ ਪੇਜ',
-'nstab-special' => 'ਖਾਸ ਸਫ਼ਾ',
+'nstab-special' => 'à¨\96਼ਾਸ à¨¸à¨«à¨¼à¨¾',
 'nstab-project' => 'ਪਰੋਜੈਕਟ ਪੇਜ',
-'nstab-image' => 'ਫਾà¨\87ਲ',
+'nstab-image' => 'ਫ਼ਾà¨\88ਲ',
 'nstab-mediawiki' => 'ਸੁਨੇਹਾ',
-'nstab-template' => 'à¨\9fà©\88ਪਲà©\87à¨\9f',
+'nstab-template' => 'ਸਾà¨\82à¨\9aਾ',
 'nstab-help' => 'ਮੱਦਦ ਪੇਜ',
 'nstab-category' => 'ਕੈਟਾਗਰੀ',
 
@@ -320,13 +322,13 @@ A list of valid special pages can be found at [[Special:SpecialPages]].',
 'error' => 'ਗਲਤੀ',
 'databaseerror' => 'ਡਾਟਾਬੇਸ ਗਲਤੀ',
 'readonly' => 'ਡਾਟਾਬੇਸ ਲਾਕ ਹੈ',
-'missing-article' => "ਡà©\88à¨\9fਾਬà©\87ਸ à¨¨à©\82à©° à¨\95ਿਸà©\87 à¨ªà©°à¨¨à©\87 à¨¦à¨¾ à¨ªà¨¾à¨  ''$1''à¨\9cà©\8b à¨\87ਸ à¨¨à©\82à©° $2 à¨µà¨¿à¨\9a à¨¢à©\82ੰਡਣਾ à¨¸à©\80 ,ਨਹੀਂ ਮਿਲਿਆ।
-à¨\86ਮ à¨¤à©\8cਰ à¨¤à©\87 à¨®à¨¿à¨\9fਾà¨\8f à¨\9cਾ à¨\9aà©\81à¨\95à©\87 à¨ªà©°à¨¨à©\87 à¨¦à©\80 à¨\87ਤਿਹਾਸ à¨\95à©\9cà©\80 à¨¦à©\80 à¨µà¨°à¨¤à©\8cà¨\82 à¨\95ਰਣ à¨¨à¨¾à¨² à¨\87ਸ à¨¤à¨°à¨¾à¨\82 ਹੁੰਦਾ ਹੈ।
-à¨\9cà©\87 à¨\87ਸ à¨¤à¨°à¨¾à¨\82 à¨¦à¨¿ à¨\97ੱਲ à¨¨à¨¹à©\80à¨\82 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨¤à©\81ਹਾਨà©\82à©° à¨¸à¨¾à¨«à¨¼à¨\9fਵà©\87à¨\85ਰ à¨µà¨¿à¨\9a à¨¤à©\8dਰà©\81à¨\9fà©\80 à¨®à¨¿à¨² à¨\97à¨\88 à¨¹à©\88।à¨\95ਿਰਪਾ à¨\95ਰà¨\95à©\87 à¨ªà¨¤à©\87 à¨¸à¨®à©\87ਤ [[Special:ListUsers/sysop|administrator]] à¨¨à©\82à©°  à¨\87ਸ à¨¦à©\80 à¨¸à©\82à¨\9aਨਾ ਦਿਓ।",
+'missing-article' => "ਡਾà¨\9fਾਬà©\87ਸ à¨¨à©\82à©° ''$1'' $2 à¨¨à¨¾à¨® à¨¦à¨¾ à¨\95à©\8bà¨\88 à¨¸à¨«à¨¼à¨¾ ਨਹੀਂ ਮਿਲਿਆ।
+à¨\86ਮ à¨¤à©\8cਰ à¨¤à©\87 à¨®à¨¿à¨\9fਾà¨\8f à¨\9cਾ à¨\9aà©\81ੱà¨\95à©\87 à¨¸à¨«à¨¼à©\87 à¨¦à©\80 à¨\85ਤà©\80ਤ à¨\95à©\9cà©\80 à¨¦à©\80 à¨µà¨°à¨¤à©\8bà¨\82 à¨\95ਰਨ à¨¨à¨¾à¨²à¨¼ à¨\87à©°à¨\9d ਹੁੰਦਾ ਹੈ।
+à¨\9cà©\87 à¨\87ਹ à¨\97ੱਲ à¨¨à¨¹à©\80à¨\82 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨¤à©\81ਹਾਨà©\82à©° à¨¸à¨¾à¨«à¨¼à¨\9fਵà©\87à¨\85ਰ à¨µà¨¿à¨\9a à¨\96਼ਾਮà©\80 à¨®à¨¿à¨² à¨\97à¨\88 à¨¹à©\88। à¨®à¨¿à¨¹à¨°à¨¬à¨¾à¨¨à©\80 à¨\95ਰà¨\95à©\87 à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨ªà¨¤à©\87 à¨¸à¨®à©\87ਤ [[Special:ListUsers/sysop|administrator]] à¨¨à©\82à©° à¨\87ਤਲਾਹ ਦਿਓ।",
 'internalerror' => 'ਅੰਦਰੂਨੀ ਗਲਤੀ',
 'internalerror_info' => 'ਅੰਦਰੂਨੀ ਗਲਤੀ: $1',
-'badtitle' => 'à¨\97ਲਤ à¨\9fਾà¨\87à¨\9fਲ',
-'badtitletext' => 'ਤà©\81ਹਾਡਾ à¨\85ਰà¨\9c਼ਿਤ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨\85ਪà©\8dਰਮਾਣਿà¨\95,à¨\96ਾਲà©\80 à¨¯à¨¾ à¨\97ਲਤ à¨\9cà©\81à©\9cਿà¨\86 à¨¹à©\8bà¨\87à¨\86 à¨\85ੰਤਰ-ਭਾਸ਼ਾ à¨¯à¨¾ à¨\85ੰਤਰ-ਵਿà¨\95ਿ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¹à©\88।à¨\87ਹ à¨µà©\80 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨\95ਿ à¨\87ਸ à¨µà¨¿à¨\9a à¨\87à¨\95 ਦੋ ਅੱਖਰ ਐਸੇ ਹੋਣ ਜੋ ਸਿਰਲੇਖ ਵਿਚ ਵਰਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ।',
+'badtitle' => 'à¨\97਼ਲਤ à¨¸à¨¿à¨°à¨²à©\87à¨\96',
+'badtitletext' => 'ਤà©\81ਹਾਡਾ à¨¦à¨°à¨\96਼ਾਸਤਸ਼à©\81ਦਾ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¨à¨¾à¨\95ਾਬਿਲ, à¨\96਼ਾਲà©\80 à¨\9cਾà¨\82 à¨\97਼ਲਤ à¨\9cà©\81à©\9cਿà¨\86 à¨¹à©\8bà¨\87à¨\86 inter-languagd à¨\9cਾà¨\82 inter-wiki à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¹à©\88। à¨\87ਹ à¨µà©\80 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨\95ਿ à¨\87ਸ à¨µà¨¿à¨\9a à¨\87à¨\95-ਦੋ ਅੱਖਰ ਐਸੇ ਹੋਣ ਜੋ ਸਿਰਲੇਖ ਵਿਚ ਵਰਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ।',
 'viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
 'protectedpagetext' => 'ਇਸ ਪੰਨੇ ਨੂੰ ਐਡਿਟ ਕਰਨ ਦੀ ਮਨਾਹੀ ਹੈ।',
 'viewsourcetext' => 'ਤੁਸੀਂ ਇਸ ਪੰਨੇ ਦਾ ਸੋਮਾ ਦੇਖ ਸਕਦੇ ਹੋ ਤੇ ਉਸ ਦਾ ਉਤਾਰਾ ਵੀ ਲੈ ਸਕਦੇ ਹੋ।',
@@ -340,32 +342,33 @@ A list of valid special pages can be found at [[Special:SpecialPages]].',
 
 You can continue to use {{SITENAME}} anonymously, or you can log in again as the same or as a different user.
 Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
-'welcomecreation' => '== $1 ਜੀ ਆਇਆਂ ਨੂੰ! ==
+'welcomecreation' => '== ਜੀ ਆਇਆਂ ਨੂੰ! ==
 
-ਤà©\81ਹਾਡਾ à¨\85à¨\95ਾà¨\8aà¨\82à¨\9f à¨¬à¨£à¨¾à¨\87à¨\86 à¨\97ਿà¨\86 ਹੈ। ਆਪਣੀ [[Special:ਪਸੰਦ|{{SITENAME}} ਪਸੰਦ]] ਬਦਲਣੀ ਨਾ ਭੁੱਲੋ।',
+ਤà©\81ਹਾਡਾ à¨\96਼ਾਤਾ à¨¬à¨£ à¨\9aà©\81ੱà¨\95ਾ ਹੈ। ਆਪਣੀ [[Special:ਪਸੰਦ|{{SITENAME}} ਪਸੰਦ]] ਬਦਲਣੀ ਨਾ ਭੁੱਲੋ।',
 'yourname' => 'ਯੂਜ਼ਰ ਨਾਂ:',
 'yourpassword' => 'ਪਾਸਵਰਡ:',
 'yourpasswordagain' => 'ਪਾਸਵਰਡ ਮੁੜ-ਲਿਖੋ:',
-'remembermypassword' => 'à¨\87ਸ à¨\95ੰਪਿà¨\8aà¨\9fਰ à¨\89ੱਤà©\87 à¨®à©\87ਰਾ à¨²à¨¾à¨\97à¨\87ਨ à¨¯à¨¾à¨¦ à¨°à©±à¨\96à©\8b ($1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾà¨\82}} à¨²à¨\88 à¨µà©±à¨§ à¨¤à©\8bà¨\82 à¨µà©±à¨§)',
+'remembermypassword' => 'à¨\87ਸ à¨\95ੰਪਿà¨\8aà¨\9fਰ à¨¤à©\87 à¨®à©\87ਰਾ à¨²à¨¾à¨\97à¨\87ਨ à¨¯à¨¾à¨¦ à¨°à©±à¨\96à©\8b (ਵੱਧ à¨¤à©\8bà¨\82 à¨µà©±à¨§ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾà¨\82}} à¨²à¨\88)',
 'yourdomainname' => 'ਤੁਹਾਡੀ ਡੋਮੇਨ:',
 'login' => 'ਲਾਗ ਇਨ',
-'nav-login-createaccount' => 'ਲਾਗ ਇਨ / ਅਕਾਊਂਟ ਬਣਾਓ',
+'nav-login-createaccount' => 'ਲਾਗ ਇਨ/ਖਾਤਾ ਬਣਾਓ',
 'loginprompt' => 'ਤੁਹਾਨੂੰ {{SITENAME}} ਉੱਤੇ ਲਾਗਇਨ ਕਰਨ ਲਈ ਕੂਕੀਜ਼ ਯੋਗ ਕਰਨੇ ਜ਼ਰੂਰੀ ਹਨ।',
-'userlogin' => 'ਲਾਗ ਇਨ / ਅਕਾਊਂਟ ਬਣਾਓ',
+'userlogin' => 'ਲਾਗ ਇਨ/ਖ਼ਾਤਾ ਬਣਾਓ',
 'userloginnocreate' => 'ਲਾਗ ਇਨ',
 'logout' => 'ਲਾਗ ਆਉਟ',
 'userlogout' => 'ਲਾਗ ਆਉਟ',
 'notloggedin' => 'ਲਾਗਇਨ ਨਹੀਂ',
-'nologin' => 'à¨\85à¨\95ਾà¨\8aà¨\82à¨\9f ਨਹੀਂ ਹੈ? $1',
-'nologinlink' => 'à¨\87ੱà¨\95 à¨\85à¨\95ਾà¨\8aà¨\82à¨\9f ਬਣਾਓ',
-'createaccount' => 'à¨\85à¨\95ਾà¨\8aà¨\82à¨\9f ਬਣਾਓ',
+'nologin' => 'à¨\96਼ਾਤਾ ਨਹੀਂ ਹੈ? $1',
+'nologinlink' => 'à¨\96਼ਾਤਾ ਬਣਾਓ',
+'createaccount' => 'à¨\96਼ਾਤਾ ਬਣਾਓ',
 'gotaccount' => "ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਅਕਾਊਂਟ ਹੈ? '''$1'''.",
 'gotaccountlink' => 'ਲਾਗਇਨ',
+'userlogin-resetlink' => 'ਆਪਣੀ ਲਾਗਇਨ ਜਾਣਕਾਰੀ ਭੁੱਲ ਗਏ ਹੋ?',
 'createaccountmail' => 'ਈਮੇਲ ਨਾਲ',
 'createaccountreason' => 'ਕਾਰਨ:',
 'badretype' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੇ ਪਾਸਵਰਡ ਮਿਲਦੇ ਨਹੀਂ ਹਨ।',
-'userexists' => 'ਯà©\82à¨\9c਼ਰ à¨¨à¨¾à¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¹à©\80 à¨µà¨°à¨¤à©\8bà¨\82 à¨\85ਧà©\80ਨ ਹੈ।
-ਵੱà¨\96ਰਾ à¨¯à©\82à¨\9c਼ਰ à¨¨à¨¾à¨\82 à¨µà¨°à¨¤à©\8bà¨\82 à¨\9cà©\80।',
+'userexists' => 'à¨\87ਹ à¨®à©\88à¨\82ਬਰ-ਨਾਮ à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¹à©\80 à¨µà¨°à¨¤à©\8bà¨\82 â\80\99à¨\9a ਹੈ।
+ਮਿਹਰਬਾਨà©\80 à¨\95ਰà¨\95à©\87 à¨µà©±à¨\96ਰਾ à¨®à©\88à¨\82ਬਰ-ਨਾਮ à¨µà¨°à¨¤à©\8bà¨\82।',
 'loginerror' => 'ਲਾਗਇਨ ਗਲਤੀ',
 'createaccounterror' => 'ਅਕਾਊਂਟ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: $1',
 'nocookiesnew' => 'ਯੂਜ਼ਰ ਅਕਾਊਂਟ ਬਣਾਇਆ ਗਿਆ ਹੈ, ਪਰ ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ ਹੈ।{{SITENAME}} uses cookies to log in users. You have cookies disabled. Please enable them, then log in with your new username and password.',
@@ -406,7 +409,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'accountcreated' => 'ਅਕਾਊਂਟ ਬਣਾਇਆ',
 'accountcreatedtext' => '$1 ਲਈ ਯੂਜ਼ਰ ਅਕਾਊਂਟ ਬਣਾਇਆ ਗਿਆ।',
 'createaccount-title' => '{{SITENAME}} ਲਈ ਅਕਾਊਂਟ ਬਣਾਉਣਾ',
-'loginlanguagelabel' => 'ਭਾਸ਼ਾ: $1',
+'loginlanguagelabel' => 'ਬà©\8bਲà©\80: $1',
 
 # Change password dialog
 'resetpass' => 'ਪਾਸਵਰਡ ਬਦਲੋ',
@@ -423,34 +426,34 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'resetpass-temp-password' => 'ਆਰਜ਼ੀ ਪਾਸਵਰਡ:',
 
 # Edit page toolbar
-'bold_sample' => 'à¨\97à©\82à©\9cਾ à¨\9fà©\88à¨\95ਸà¨\9f',
-'bold_tip' => 'ਬà©\8bਲਡ à¨\9fà©\88à¨\95ਸà¨\9f',
-'italic_sample' => 'ਤਿਰà¨\9bਾ à¨\9fà©\88à¨\95ਸà¨\9f',
-'italic_tip' => 'ਤਿਰà¨\9bਾ à¨\9fà©\88à¨\95ਸà¨\9f',
+'bold_sample' => 'à¨\97à©\82à©\9cà©\8dਹà©\80 à¨²à¨¿à¨\96ਾà¨\88',
+'bold_tip' => 'à¨\97à©\81à©\9cà©\8dਹà©\80 à¨²à¨¿à¨\96ਾà¨\88',
+'italic_sample' => 'à¨\9fà©\87ਢà©\80 à¨²à¨¿à¨\96ਤ',
+'italic_tip' => 'à¨\9fà©\87ਢà©\80 à¨²à¨¿à¨\96ਾà¨\88',
 'link_sample' => 'ਲਿੰਕ ਟਾਇਟਲ',
 'link_tip' => 'ਅੰਦਰੂਨੀ ਲਿੰਕ',
 'extlink_sample' => 'http://www.example.com ਲਿੰਕ ਟਾਈਟਲ',
-'extlink_tip' => 'ਬਾਹਰà©\80 à¨\95à©\9cà©\80ਅਗੇਤਰ http:// ਯਾਦ ਰੱਖੋ)',
-'headline_sample' => 'ਹà©\88ੱਡਲਾà¨\88ਨ à¨\9fà©\88à¨\95ਸà¨\9f',
-'headline_tip' => 'ਦà©\82ਸਰੇ ਦਰਜੇ ਦਾ ਸਿਰਲੇਖ',
+'extlink_tip' => 'ਬਾਹਰà©\80 à¨²à¨¿à©°à¨\95 (ਅਗੇਤਰ http:// ਯਾਦ ਰੱਖੋ)',
+'headline_sample' => 'ਸà©\81ਰà¨\96਼à©\80 à¨¦à©\80 à¨²à¨¿à¨\96ਤ',
+'headline_tip' => 'ਦà©\82à¨\9cੇ ਦਰਜੇ ਦਾ ਸਿਰਲੇਖ',
 'nowiki_sample' => 'ਅਸੰਗਠਿਤ ਪਾਠ (NON -FORMATTED) ਇੱਥੇ ਰਖੋ।',
-'nowiki_tip' => 'ਵਿà¨\95ਿ à¨¸à©°à¨\97ਠਨਾ (formatting) à¨¨à¨\9c਼ਰà¨\85ਦਾਜ਼ ਕਰੋ',
+'nowiki_tip' => 'ਵਿà¨\95à©\80 à¨¸à©°à¨\97ਠਨਾ (formatting) à¨¨à¨\9c਼ਰà¨\85à©°ਦਾਜ਼ ਕਰੋ',
 'image_tip' => 'ਇੰਬੈੱਡ ਚਿੱਤਰ',
 'media_tip' => 'ਮੀਡਿਆ ਫਾਇਲ ਲਿੰਕ',
-'sig_tip' => 'à¨\9fਾà¨\88ਮ-ਸà¨\9fà©\88à¨\82ਪ à¨¨à¨¾à¨² à¨¤à©\81ਹਾਡà©\87 à¨¦à¨¸à¨¤à¨\96ਤ',
-'hr_tip' => 'ਹਰà©\80à¨\9cੱà¨\9fਲ ਲਾਈਨ (use sparingly)',
+'sig_tip' => 'ਤà©\81ਹਾਡà©\87 à¨¦à¨¸à¨¤à¨\96਼ਤ à¨µà¨\95ਤ à¨¸à¨®à©\87ਤ',
+'hr_tip' => 'ਲà©\87à¨\9fਵà©\80à¨\82 ਲਾਈਨ (use sparingly)',
 
 # Edit pages
 'summary' => 'ਸੰਖੇਪ:',
 'subject' => 'ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ:',
 'minoredit' => 'ਇਹ ਛੋਟੀ ਸੋਧ ਹੈ',
-'watchthis' => 'à¨\87ਹ à¨ªà©\87à¨\9c à¨µà¨¾à¨\9a à¨\95ਰੋ',
-'savearticle' => 'ਪà©\87à¨\9c à¨¸à©°à¨­à¨¾à¨²ੋ',
+'watchthis' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¤à©\87 à¨¨à¨¿à¨\97ਰਾਨà©\80 à¨°à©±à¨\96ੋ',
+'savearticle' => 'ਸਫ਼ਾ à¨¸à©°à¨­à¨¾à¨²à¨¼ੋ',
 'preview' => 'ਝਲਕ',
 'showpreview' => 'ਝਲਕ ਵੇਖੋ',
 'showlivepreview' => 'ਲਾਈਵ ਝਲਕ',
-'showdiff' => 'ਬਦਲਾà¨\85 à¨µà©\87ਖਾਓ',
-'anoneditwarning' => "'''à¨\9aà©\87ਤਾਵਨà©\80:''' à¨¤à©\81ਸà©\80à¨\82 à¨²à¨¾à¨\97à¨\87ਨ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ à¨¹à©\88। à¨¤à©\81ਹਾਡਾ IP à¨\90ਡਰà©\88ੱਸ à¨\87ਸ à¨ªà©\87à¨\9c à¨¦à©\87 à¨\90ਡਿà¨\9f ਅਤੀਤ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਵੇਗਾ।",
+'showdiff' => 'ਬਦਲਾà¨\85 à¨µà¨¿ਖਾਓ',
+'anoneditwarning' => "'''à¨\9aà©\87ਤਾਵਨà©\80:''' à¨¤à©\81ਸà©\80à¨\82 à¨²à¨¾à¨\97à¨\87ਨ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ à¨¹à©\88। à¨¤à©\81ਹਾਡਾ IP à¨\90ਡਰà©\88ੱਸ à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\87 ਅਤੀਤ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਵੇਗਾ।",
 'missingcommenttext' => 'ਹੇਠਾਂ ਇੱਕ ਟਿੱਪਣੀ ਦਿਓ।',
 'summary-preview' => 'ਸੰਖੇਪ ਝਲਕ:',
 'subject-preview' => 'ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ ਝਲਕ:',
@@ -463,19 +466,16 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'accmailtitle' => 'ਪਾਸਵਰਡ ਭੇਜਿਆ।',
 'accmailtext' => '"$1" ਲਈ ਪਾਸਵਰਡ $2 ਨੂੰ ਭੇਜਿਆ ਗਿਆ।',
 'newarticle' => '(ਨਵਾਂ)',
-'newarticletext' => "ਤੁਸੀਂ ਕਿਸੇ ਐਸੇ ਲਿੰਕ ਰਾਹੀਂ ਉਸ ਪੰਨੇ ਤੇ ਪੁੱਜੇ ਹੋ ਜੋ ਅਜੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।
-ਪੰਨਾ ਬਨਾਉਣ ਲਈ  ਹੇਠ ਦਿੱਤੇ ਖਾਨੇ ਵਿਚ ਪਾਠ ਲਿਖੋ।(ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ [[{{MediaWiki:Helppage}}|ਮੱਦਦ ਪੰਨਾ]] ਦੇਖੋ)
-ਜੇ ਤੁਸੀਂ ਇੱਥੇ ਗਲਤੀ ਨਾਲ ਆਏ ਹੋ ਤਾਂ ਆਪਣੇ ਬਰਾਊਜ਼ਰ ਦੇ ਬੈਕ ('''back''') ਬਟਨ ਪਰ ਕਲਿਕ ਕਰੋ।",
-'noarticletext' => 'ਫਿਲਹਾਲ ਇਸ ਪੰਨੇ ਤੇ ਐਸਾ ਕੋਈ ਪਾਠ ਨਹੀਂ ਹੈ।ਤੁਸੀਂ ਦੂਸਰੇ ਪੰਨਿਆਂ ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਪਾਠ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ।,<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਸੰਭੰਧਿਤ ਖਾਤਿਆਂ ਵਿਚ ਖੋਜ ਸਕਦੇ ਹੋ],
-ਯਾ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਇਸ ਪੰਨੇ ਨੂੰ ਸੰਪਾਦਨ ਕਰ ਸਕਦੇ ਹੋ]</span>।',
-'noarticletext-nopermission' => '↓
-ਫਿਲਹਾਲ ਇਸ ਪੰਨੇ ਤੇ ਐਸਾ ਕੋਈ ਪਾਠ ਨਹੀਂ ਹੈ।ਤੁਸੀਂ ਦੂਸਰੇ ਪੰਨਿਆਂ ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਪਾਠ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ।,<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਸੰਬੰਧਿਤ ਖਾਤਿਆਂ ਵਿਚ ਖੋਜ ਸਕਦੇ ਹੋ],
-ਯਾ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਇਸ ਪੰਨੇ ਨੂੰ ਸੰਪਾਦਨ ਕਰ ਸਕਦੇ ਹੋ]</span>।',
+'newarticletext' => "ਤੁਸੀਂ ਕਿਸੇ ਐਸੇ ਲਿੰਕ ਰਾਹੀਂ ਇਸ ਸਫ਼ੇ ਤੇ ਪੁੱਜੇ ਹੋ ਜੋ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।
+ਸਫ਼ਾ ਬਣਾਉਣ ਲਈ ਹੇਠ ਦਿੱਤੇ ਖ਼ਾਨੇ ਵਿਚ ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ। (ਹੋਰ ਮੱਦਦ ਲਈ [[{{MediaWiki:Helppage}}|ਮੱਦਦ ਸਫ਼ਾ]] ਦੇਖੋ)
+ਜੇ ਤੁਸੀਂ ਗ਼ਲਤੀ ਨਾਲ਼ ਇੱਥੇ ਆਏ ਹੋ ਤਾਂ ਆਪਣੇ ਬਰਾਊਜ਼ਰ ਦੇ ''ਪਿੱਛੇ'' (back) ਬਟਨ ਤੇ ਕਲਿਕ ਕਰੋ।",
+'noarticletext' => 'ਫ਼ਿਲਹਾਲ ਇਸ ਸਫ਼ੇ ’ਤੇ ਕੋਈ ਲਿਖਤ ਨਹੀਂ ਹੈ। ਤੁਸੀਂ ਦੂਜੇ ਸਫ਼ਿਆਂ ’ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਸਿਰਲੇਖ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਸਬੰਧਿਤ ਚਿੱਠੇ ਖੋਜ] ਸਕਦੇ ਹੋ ਜਾਂ ਇਸ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਸਫ਼ੇ ਵਿਚ ਲਿਖ] ਸਕਦੇ ਹੋ</span>।',
+'noarticletext-nopermission' => 'ਫ਼ਿਲਹਾਲ ਇਸ ਸਫ਼ੇ ਤੇ ਕੋਈ ਲਿਖਤ ਨਹੀਂ ਹੈ। ਤੁਸੀਂ ਦੂਸਰੇ ਸਫ਼ਿਆਂ ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਪਾਠ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ, ਸਬੰਧਤ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਚਿੱਠੇ] ਖੋਜ ਸਕਦੇ ਹੋ, ਜਾਂ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਇਸ ਸਫ਼ੇ ਵਿਚ ਲਿਖ] ਸਕਦੇ ਹੋ</span>।',
 'updated' => '(ਅੱਪਡੇਟ)',
 'note' => "'''ਨੋਟ:'''",
 'previewnote' => 'ਇਹ ਸਿਰਫ਼ ਇੱਕ ਝਲਕ ਹੈ; ਬਦਲਾਅ ਹਾਲੇ ਸੰਭਾਲੇ ਨਹੀਂ ਗਏ ਹਨ!',
 'editing' => '$1 ਸੋਧਿਆ ਜਾ ਰਿਹਾ ਹੈ',
-'editingsection' => '$1 (ਸ਼ੈਕਸ਼ਨ) ਸੋਧ',
+'editingsection' => '$1 ਜ਼ੇਰੇ ਸੁਧਾਈ ਹੈ (ਸ਼ੈਕਸ਼ਨ)',
 'editingcomment' => '$1 (ਟਿੱਪਣੀ) ਸੋਧ',
 'editconflict' => 'ਅਪਵਾਦ ਟਿੱਪਣੀ: $1',
 'yourtext' => 'ਤੁਹਾਡਾ ਟੈਕਸਟ',
@@ -485,40 +485,49 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'templatesusedpreview' => "{{PLURAL:$1|ਟੈਪਲੇਟ|ਟੈਪਲੇਟ}} ਇਹ ਝਲਕ 'ਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:",
 'templatesusedsection' => 'ਇਹ ਸ਼ੈਕਸ਼ਨ ਵਿੱਚ ਟੈਪਲੇਟ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:',
 'template-protected' => '(ਸੁਰੱਖਿਅਤ)',
-'template-semiprotected' => '(ਅਰਧ-ਸੁਰੱਖਿਅਤ)',
+'template-semiprotected' => '(ਨੀਮ-ਸੁਰੱਖਿਅਤ)',
+'hiddencategories' => 'ਇਹ ਸਫ਼ਾ ਮੈਂਬਰ ਹੈ {{PLURAL:$1|1 ਲੁਕਵੀਂ ਸ਼੍ਰੇਣੀ|
+$1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}}:',
 'permissionserrors' => 'ਅਧਿਕਾਰ ਗਲਤੀਆਂ',
 'permissionserrorstext' => 'ਤੁਹਾਨੂੰ ਇੰਝ ਕਰਨ ਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਹੇਠ ਦਿੱਤੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨ}} ਨੇ:',
-'recreate-moveddeleted-warn' => "'''ਖ਼ਬਰਦਾਰ: ਤੁਸੀਂ ਐਸ ਪੰਨਾ ਰਚ ਰਹੇ ਹੋ ਜਿਸ ਨੂੰ ਪਹਿਲੇ ਹਟਾਇਆ ਜਾ ਚੁੱਕ ਹੈ।'''
-ਖਿਆਲ ਕਰੋ ਕਿ ਕੀ ਇਸ ਪੰਨੇ ਦਾ ਕਾਇਮ ਰਹਿਣਾ ਠੀਕ ਹੈ।
-ਇਸ ਪੰਨੇ ਨੂੰ ਹਟਾਉਣ ਯਾ ਜਘ੍ਹਾ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹੇਠਾਂ ਦਿੱਤਾ ਹੈ।",
-'moveddeleted-notice' => 'ਇਹ ਪੰਨਾ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
-ਪੰਨੇ ਦੇ ਹਟਾਣ ਯਾ ਜਗ੍ਹਾ ਬਦਲੀ ਦਾ ਚਿੱਠਾ,ਹਵਾਲੇ ਲਈ ਹੇਠ ਦਿੱਤਾ ਹੈ।',
+'recreate-moveddeleted-warn' => "'''ਖ਼ਬਰਦਾਰ:
+ਤੁਸੀਂ ਐਸਾ ਸਫ਼ਾ ਬਣਾ ਰਹੇ ਹੋ ਜੋ ਪਹਿਲਾਂ ਮਿਟਾਇਆ ਜਾ ਚੁੱਕ ਹੈ।'''
+
+ਖ਼ਿਆਲ ਕਰੋ ਕਿ ਕੀ ਇਸ ਸਫ਼ੇ ਦਾ ਕਾਇਮ ਰਹਿਣਾ ਠੀਕ ਹੈ।
+ਇਸ ਸਫ਼ੇ ਨੂੰ ਮਿਟਾਉਣ ਜਾਂ ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
+'moveddeleted-notice' => 'ਇਹ ਸਫ਼ਾ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
+ਸਫ਼ੇ ਦੇ ਹਟਾਉਣ ਜਾਂ ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹਵਾਲੇ ਲਈ ਹੇਠ ਦਿੱਤਾ ਗਿਆ ਹੈ।',
 
 # Parser/template warnings
-'post-expand-template-inclusion-warning' => "'''ਖ਼ਬਰਦਾਰ: ਸੰਚੇ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ।ਕੁਝ ਸੰਚੇ ਛੁਟ ਜਾਣਗੇ।",
-'post-expand-template-inclusion-category' => 'ਉਹ ਪੰਨੇ ਜਿਥੇ ਸੰਚਿਆਂ ਦਾ ਅਕਾਰ ਨਿਣਮਿਤ ਹੱਦ ਤੌਂ ਵੱਧ ਹੈ।',
-'post-expand-template-argument-warning' => "'''ਖ਼ਬਰਦਾਰ'''ਇਸ ਸਫ਼ੇ ਤੇ ਕਿਸੇ ਫ਼ਰਮੇ ਵਿਚ ਘੱਟੋ ਘੱਟ ਇਕ ਸਁਘਟਕ ਐਸਾ ਹੈ ਜਿਸ ਦਾ ਵਿਸਤ੍ਰਿਤ ਰੂਪ ਬਹੁਤ ਵੱਡਾ ਹੈ।ਐਸੇ ਸਁਘਟਕਾਂ ਨੂਁ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
+'post-expand-template-inclusion-warning' => "'''ਖ਼ਬਰਦਾਰ:''' ਟੈਂਪਲੇਟਾਂ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਕੁਝ ਟੈਂਪਲੇਟ ਸ਼ਾਮਲ ਨਹੀਂ ਹੋਣਗੇ।",
+'post-expand-template-inclusion-category' => 'ਓਹ ਸਫ਼ੇ ਜਿੱਥੇ ਟੈਂਪਲੇਟਾਂ ਦੇ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਅਕਾਰ ਹੱਦੋਂ ਵਧ ਗਿਆ ਹੈ',
+'post-expand-template-argument-warning' => "'''ਖ਼ਬਰਦਾਰ:'''
+ਇਸ ਸਫ਼ੇ ਤੇ ਘੱਟੋ ਘੱਟ ਇਕ ਐਸੀ ਟੈਂਪਲੇਟ ਬਹਿਸ ਹੈ ਜਿਸ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਐਸੀਆਂ ਬਹਿਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
 'post-expand-template-argument-category' => 'ਐਸੇ ਸਫ਼ੇ ਜਿਨ੍ਹਾਂ ਵਿਚ ਫ਼ਰਮੇ ਦੇ ਸਁਘਟਕ ਛੁੱਟ ਗਏ ਹਨ ।',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'ਅਕਾਊਂਟ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ',
 
 # History pages
-'viewpagelogs' => 'à¨\87ਸ à¨ªà©\87à¨\9c à¨¦à©\87 à¨²à¨\88 à¨²à¨¾à¨\97 ਵੇਖੋ',
+'viewpagelogs' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨²à¨\88 à¨\9aਿੱਠà©\87 ਵੇਖੋ',
 'currentrev' => 'ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ',
 'currentrev-asof' => '$1 ਦੇ ਸਮੇਂ ਦਾ ਵਰਨਣ',
-'revisionasof' => '$1 à¨¦à©\87 à¨°à©\80ਵਿà¨\9c਼ਨ à¨µà¨¾à¨\82à¨\97',
+'revisionasof' => '$1 à¨¦à¨¾ à¨°à©\80ਵਿà¨\9c਼ਨ',
 'revision-info' => ' $1ਦ ਬਦਲਾਅ $2ਦਵਾਰਾ ਕੀਤਾ ਹੋਇਆ',
 'previousrevision' => '←ਪੁਰਾਣਾ ਰੀਵਿਜ਼ਨ',
 'nextrevision' => 'ਨਵਾਂ ਰੀਵਿਜ਼ਨ→',
 'currentrevisionlink' => 'ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ',
 'cur' => 'ਮੌਜੂਦਾ',
 'next' => 'ਅੱਗੇ',
-'last' => 'ਆਖਰੀ',
+'last' => 'à¨\86à¨\96਼ਰà©\80',
 'page_first' => 'ਪਹਿਲਾਂ',
 'page_last' => 'ਆਖਰੀ',
-'history-fieldset-title' => 'ਇਤਿਹਾਸ ਤੇ ਇਕ ਨਜ਼ਰ ਮਾਰੋ ।',
-'history-show-deleted' => 'ਕੇਵਲ ਮਿਟਾਏ ਗਏ',
+'histlegend' => "ਫ਼ਰਕ ਵੇਖੋ:
+ਮੁਕਾਬਲਾ ਕਰਨ ਲਈ ਰੀਵਿਜ਼ਨਾਂ ਦੇ ਰੇਡੀਓ ਬਟਨਾਂ ਵਿਚ ਨਿਸ਼ਾਨ ਲਾਓ ਅਤੇ ਜਾਓ ਜਾਂ ਸਭ ਤੋਂ ਥੱਲੇ ਵਾਲ਼ੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
+ਲੈਜਅੰਡ:
+'''({{int:cur}})''' = ਨਵੇਂ ਰੀਵਿਜ਼ਨ ਨਾਲ਼ੋਂ ਫ਼ਰਕ, '''({{int:last}})''' = ਆਖ਼ਰੀ ਰੀਵਿਜ਼ਨ ਨਾਲ਼ੋਂ ਫ਼ਰਕ, '''({{int:minoreditletter}})''' = ਛੋਟੀ ਸੋਧ।",
+'history-fieldset-title' => 'ਅਤੀਤ ਤੇ ਨਜ਼ਰ ਮਾਰੋ ।',
+'history-show-deleted' => 'ਸਿਰਫ਼ ਮਿਟਾਏ ਗਏ',
 'histfirst' => 'ਸਭ ਤੋਂ ਪਹਿਲਾਂ',
 'histlast' => 'ਸਭ ਤੋਂ ਨਵਾਂ',
 'historysize' => '($1 ਬਾਈਟ)',
@@ -532,7 +541,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'rev-deleted-comment' => '(ਟਿੱਪਣੀ ਹਟਾਈ)',
 'rev-deleted-user' => '(ਯੂਜ਼ਰ ਨਾਂ ਹਟਾਇਆ)',
 'rev-deleted-event' => '(ਐਂਟਰੀ ਹਟਾਈ)',
-'rev-delundel' => 'ਵà©\87à¨\96ਾà¨\93/à¨\93ਹਲà©\87',
+'rev-delundel' => 'ਦਿà¨\96ਾà¨\93/ਲà©\81à¨\95ਾà¨\93',
 'revdelete-nooldid-title' => 'ਕੋਈ ਟਾਰਗੇਟ ਰੀਵਿਜ਼ਨ ਨਹੀਂ',
 'revdelete-legend' => 'ਪਾਬੰਦੀਆਂ ਸੈੱਟ ਕਰੋ:',
 'revdelete-hide-text' => 'ਰੀਵਿਜ਼ਨ ਟੈਕਸਟ ਓਹਲੇ',
@@ -542,19 +551,19 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'revdelete-log' => 'ਕਾਰਨ:',
 'revdelete-submit' => 'ਚੁਣੇ ਰੀਵਿਜ਼ਨ ਉੱਤੇ ਲਾਗੂ ਕਰੋ',
 'revdel-restore' => 'ਦਿੱਖ ਬਦਲੋ',
-'revdel-restore-deleted' => 'ਹà¨\9fਾà¨\8f à¨\97à¨\8f à¨¬à¨¦à¨²à¨¾à¨\85',
-'revdel-restore-visible' => 'ਦà©\8dਰਿਸ਼à¨\9f à¨¬à¨¦à¨²à¨¾à¨\85',
+'revdel-restore-deleted' => 'ਮਿà¨\9fਾà¨\8f à¨\97à¨\8f à¨°à©\80ਵà©\80à¨\9c਼ਨ',
+'revdel-restore-visible' => 'ਦਿੱਸਣਯà©\8bà¨\97 à¨°à©\80ਵà©\80à¨\9c਼ਨ',
 'pagehist' => 'ਪੇਜ ਦਾ ਅਤੀਤ',
 'deletedhist' => 'ਹਟਾਇਆ ਗਿਆ ਅਤੀਤ',
 
 # Merge log
-'revertmerge' => 'ਬਿਨ-ਮਿਲਾਨ',
+'revertmerge' => 'à¨\85ਨ-ਮਰà¨\9c',
 
 # Diffs
-'history-title' => '"$1" à¨¦à©\80 à¨¸à¨¼à©\8bਧ à¨¤à¨µà¨¾à¨°à©\80à¨\96',
+'history-title' => '"$1" à¨¦à©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¦à¨¾ à¨\85ਤà©\80ਤ',
 'lineno' => 'ਲਾਈਨ $1:',
 'compareselectedversions' => 'ਚੁਣੇ ਵਰਜਨਾਂ ਦੀ ਤੁਲਨਾ',
-'editundo' => 'ਵਾਪਸ(undo)',
+'editundo' => 'ਨà¨\95ਾਰà©\8b',
 
 # Search results
 'searchresults' => 'ਖੋਜ ਨਤੀਜੇ',
@@ -566,26 +575,25 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'notitlematches' => 'ਕੋਈ ਪੇਜ ਟਾਇਟਲ ਨਹੀਂ ਮਿਲਦਾ',
 'textmatches' => 'ਪੇਜ ਟੈਕਸਟ ਮਿਲਦਾ',
 'notextmatches' => 'ਕੋਈ ਪੇਜ ਟੈਕਸਟ ਨਹੀਂ ਮਿਲਦਾ',
-'prevn' => 'ਪਿੱà¨\9bà©\87 {{PLURAL:$1|$1}}',
-'nextn' => 'à¨\85ੱà¨\97à©\87 {{PLURAL:$1|$1}}',
+'prevn' => 'ਪਿà¨\9bਲਾ {{PLURAL:$1|$1}}',
+'nextn' => 'à¨\85à¨\97ਲਾ {{PLURAL:$1|$1}}',
 'prevn-title' => 'ਪਹਿਲਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
-'nextn-title' => '↓
-ਅਗਲਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
-'shown-title' => 'ਪ੍ਰਤੀ ਪੇਜ਼ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}} ਵੇਖਾਓ',
+'nextn-title' => 'ਅਗਲੇ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
+'shown-title' => 'ਪ੍ਰਤੀ ਸਫ਼ਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}} ਵਖਾਓ',
 'viewprevnext' => 'ਵੇਖੋ ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-exists' => "'''à¨\87ਸ à¨µà¨¿à¨\95ਿ à¨¤à©\87 \"[[:\$1]]\" à¨¨à¨¾à¨® à¨¦à¨¾ à¨\87à¨\95 à¨¸à¨«à¨¼à¨¾ à¨¹à©\88'''",
-'searchmenu-new' => "'''à¨\87ਸ à¨µà¨¿à¨\95ਿ à¨ªà¨° \"[[:\$1]]\" à¨¨à¨¾à¨® à¨¨à¨¾à¨² à¨ªà©°à¨¨ਾ ਬਣਾਓ!'''",
+'searchmenu-exists' => "'''à¨\87ਸ à¨µà¨¿à¨\95à©\80 à¨¤à©\87 \"[[:\$1]]\" à¨¨à¨¾à¨® à¨¦à¨¾ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88।'''",
+'searchmenu-new' => "'''à¨\87ਸ à¨µà¨¿à¨\95à©\80 â\80\99ਤà©\87 \"[[:\$1]]\" à¨¸à¨«à¨¼ਾ ਬਣਾਓ!'''",
 'searchhelp-url' => 'Help:ਸਮੱਗਰੀ',
-'searchprofile-articles' => 'ਸਮੱà¨\97ਰà©\80 à¨ªà©\87à¨\9c',
-'searchprofile-project' => 'ਮੱਦਦ à¨\85ਤà©\87 à¨ªà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f à¨¸à¨«à¨¼à©\87',
+'searchprofile-articles' => 'ਸਮੱà¨\97ਰà©\80 à¨¸à¨«à¨¼à©\87',
+'searchprofile-project' => 'ਮਦਦ ਅਤੇ ਪ੍ਰੋਜੈਕਟ ਸਫ਼ੇ',
 'searchprofile-images' => 'ਮਲਟੀਮੀਡਿਆ',
-'searchprofile-everything' => 'ਹਰ à¨\9aà©\80à¨\9c਼',
-'searchprofile-advanced' => 'ਤà¨\95ਨà©\80à¨\95à©\80',
-'searchprofile-articles-tooltip' => "$1 'ਚ ਖੋਜ",
-'searchprofile-project-tooltip' => "$1 'ਚ ਖੋਜ",
-'searchprofile-images-tooltip' => 'ਫਾà¨\87ਲਾà¨\82 à¨²à¨\88 à¨\96à©\8bà¨\9c',
-'searchprofile-everything-tooltip' => 'ਸਭ à¨¸à¨®à©±à¨\97ਰà©\80 à¨¦à©\80 à¨\96à©\8bà¨\9c (à¨\9fਾà¨\95 ਸਫ਼ਿਆਂ ਸਮੇਤ)',
-'searchprofile-advanced-tooltip' => 'à¨\96ਾਸ à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾਂ ਵਿਚ ਖੋਜੋ',
+'searchprofile-everything' => 'ਸਭ à¨\95à©\81à¨\9d',
+'searchprofile-advanced' => 'à¨\86ਧà©\81ਨਿà¨\95',
+'searchprofile-articles-tooltip' => '$1 ਵਿਚ ਖੋਜੋ',
+'searchprofile-project-tooltip' => '$1 ਵਿਚ ਖੋਜੋ',
+'searchprofile-images-tooltip' => 'ਫਾà¨\87ਲਾà¨\82 à¨\96à©\8bà¨\9cà©\8b',
+'searchprofile-everything-tooltip' => 'ਸਭ à¨\9aà©\80à¨\9c਼ਾà¨\82 à¨\96à©\8bà¨\9cà©\8b (à¨\9aਰà¨\9aਾ ਸਫ਼ਿਆਂ ਸਮੇਤ)',
+'searchprofile-advanced-tooltip' => 'à¨\86ਪਣà©\87 à¨¬à¨£à¨¾à¨\8f à¨¨à¨¾à¨®-ਥਾà¨\82ਵਾਂ ਵਿਚ ਖੋਜੋ',
 'search-result-size' => '$1 ({{PLURAL:$2|੧ ਸ਼ਬਦ|$2 ਸ਼ਬਦ}})',
 'search-redirect' => '($1 ਰੀ-ਡਿਰੈਕਟ)',
 'search-section' => '(ਭਾਗ $1)',
@@ -596,7 +604,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'search-mwsuggest-disabled' => 'ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ',
 'searchrelated' => 'ਸੰਬੰਧਿਤ',
 'searchall' => 'ਸਭ',
-'search-nonefound' => 'ਤà©\81ਹਾਡà©\80 à¨\96à©\8bà¨\9c à¨¨à¨¾à¨² à¨®à©\87ਲ à¨\96ਾà¨\82ਦà©\87 à¨\95à©\8bà¨\88 à¨¸à¨¿à©±à¨\9fੇ ਨਹੀਂ ਮਿਲੇ।',
+'search-nonefound' => 'ਤà©\81ਹਾਡà©\80 à¨\96à©\8bà¨\9c à¨¨à¨¾à¨² à¨®à©\87ਲ à¨\96ਾà¨\82ਦà©\87 à¨\95à©\8bà¨\88 à¨¨à¨¤à©\80à¨\9cੇ ਨਹੀਂ ਮਿਲੇ।',
 'powersearch' => 'ਖੋਜ',
 'powersearch-legend' => 'ਤਕਨੀਕੀ ਖੋਜ',
 'powersearch-ns' => 'ਨੇਮ-ਸਪੇਸ ਵਿੱਚ ਖੋਜ:',
@@ -650,7 +658,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'badsiglength' => 'ਛੋਟਾ ਨਾਂ (Nickname) ਬਹੁਤ ਲੰਮਾ ਹੋ ਗਿਆ ਹੈ, ਇਹ $1 ਅੱਖਰਾਂ ਤੋਂ ਘੱਟ ਚਾਹੀਦਾ ਹੈ।',
 'email' => 'ਈਮੇਲ',
 'prefs-help-realname' => 'ਅਸਲੀ ਨਾਂ ਚੋਣਵਾਂ ਹੈ, ਅਤੇ ਜੇ ਤੁਸੀਂ ਇਹ ਦਿੱਤਾ ਹੈ ਤਾਂ ਤੁਹਾਡੇ ਕੰਮ ਵਾਸਤੇ ਗੁਣ ਦੇ ਤੌਰ ਉੱਤੇ ਵਰਤਿਆ ਜਾਵੇਗਾ।',
-'prefs-help-email' => 'à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ੱਸ à¨\9aà©\8bਣਵਾà¨\82 à¨¹à©\88, à¨ªà¨° à¨\87ਹ à¨¤à©\81ਹਾਨà©\82à©° à¨¹à©\8bਰਾà¨\82 à¨µà¨²à©\8bà¨\82 à¨¤à©\81ਹਾਡà©\87 à¨¨à¨¾à¨² à¨¤à©\81ਹਾਡà©\87 à¨¯à©\82à¨\9c਼ਰ à¨\9cਾà¨\82 à¨¯à©\82à¨\9c਼ਰ_à¨\97ੱਲਬਾਤ à¨°à¨¾à¨¹à©\80à¨\82 à¨¬à¨¿à¨¨à¨¾à¨\82 à¨¤à©\81ਹਾਡà©\87 à¨ªà¨\9bਾਣ à¨¦à©\87 à¨¸à©°à¨ªà¨°à¨\95 à¨²à¨\88 à¨®à©±à¨¦à¨¦ à¨¦à¨¿à©°à¨¦à¨¾ ਹੈ।',
+'prefs-help-email' => 'ਤà©\81ਹਾਡà©\80 à¨®à¨°à¨\9c਼à©\80 à¨¹à©\88 à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾ à¨¦à¨¿à¨\93 à¨\9cਾà¨\82 à¨¨à¨¾ à¨¦à¨¿à¨\93 à¨ªà¨° à¨ªà¨¾à¨¸à¨µà¨°à¨¡ à¨­à©\81ੱਲ à¨\9cਾਣ à¨¤à©\87 à¨¨à¨µà¨¾à¨\82 à¨ªà¨¾à¨¸à¨µà¨°à¨¡ à¨¹à¨¾à¨¸à¨² à¨\95ਰਨ à¨²à¨\88 à¨\87ਹ à¨\9c਼ਰà©\82ਰà©\80 ਹੈ।',
 'prefs-advancedediting' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
 'prefs-advancedrc' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
 'prefs-advancedrendering' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
@@ -685,42 +693,44 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'action-edit' => 'ਇਹ ਪੰਨਾ ਸੋਧੋ',
 
 # Recent changes
-'recentchanges' => 'ਤਾà¨\9c਼ਾ à¨¬à¨¦à¨²à¨¾à¨\85',
+'recentchanges' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82',
 'recentchanges-legend' => 'ਤਾਜ਼ਾ ਬਦਲਾਅ ਚੋਣਾਂ',
 'recentchanges-summary' => 'ਇਸ ਵਿਕੀ ਪਰ ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
-'recentchanges-feed-description' => 'à¨\87ਸ à¨µà¨¿à¨\95à©\80 à¨ªà¨° ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਇਸ ਫ਼ੀਡ ਵਿਚ ਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
+'recentchanges-feed-description' => 'à¨\87ਸ à¨µà¨¿à¨\95à©\80 à¨¤à©\87 ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਇਸ ਫ਼ੀਡ ਵਿਚ ਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
 'recentchanges-label-newpage' => 'ਇਹ ਸੋਧ ਨੇ ਨਵਾਂ ਸਫ਼ਾ ਬਣਾਇਆ ਹੈ',
 'recentchanges-label-minor' => 'ਇਹ ਛੋਟੀ ਸੋਧ ਹੈ',
-'recentchanges-label-bot' => 'à¨\87ਹ à¨¸à©\8bਧ à¨¨à©\82à©° à¨¬à©\8bà¨\9f à¨µà¨²à©\8bà¨\82 à¨\95à©\80ਤਾ à¨\97ਿà¨\86 ਹੈ',
+'recentchanges-label-bot' => 'à¨\87ਹ à¨¸à©\8bਧ à¨¬à©\8bà¨\9f à¨µà¨²à©\8bà¨\82 à¨\95à©\80ਤà©\80 à¨\97à¨\88 ਹੈ',
 'recentchanges-label-unpatrolled' => 'ਇਸ ਸੰਪਾਦਨ ਦੀ ਅਜੇ ਨਿਗਰਾਨੀ ਨਹੀਂ ਹੋਈ',
+'rcnote' => "$4, $5 ਤੱਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਦਿਨ|'''$2''' ਦਿਨਾਂ}} ਵਿਚ {{PLURAL:$1|'''1''' ਤਬਦੀਲੀ ਹੋਈ ਹੈ।|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ ਹਨ।}}",
 'rcnotefrom' => "'''$2'''ਤੌਂ ('''$1''' ਤਕ) ਬਦਲਾਅ ਥੱਲੇ ਦਰਸਾਏ ਗਏ ਹਨ।",
-'rclistfrom' => '$1 à¨¤à©\8cਨ ਨਵੇਂ ਬਦਲਾਅ ਦਿਖਾਓ',
+'rclistfrom' => '$1 à¨¤à©\8cà¨\82 ਨਵੇਂ ਬਦਲਾਅ ਦਿਖਾਓ',
 'rcshowhideminor' => '$1 ਛੋਟੀਆਂ ਸੋਧਾਂ',
 'rcshowhidebots' => '$1 ਬੋਟ',
-'rcshowhideliu' => '$1 ਲਾਗਇਨ ਹੋਏ ਯੂਜ਼ਰ',
-'rcshowhideanons' => '$1 ਅਗਿਆਤ ਯੂਜ਼ਰ',
-'rcshowhidemine' => '$1 ਮੇਰਾ ਐਡਿਟ',
-'rclinks' => 'ਪਿਛਲੇ $2 ਦਿਨਾਂ ਵਿਚ ਹੋਏ $1 ਬਦਲਾਅ ਦਿਖਾਓ<br />$3',
-'diff' => 'ਅੰਤਰ',
+'rcshowhideliu' => '$1 ਲਾਗਇਨ ਹੋਏ ਮੈਂਬਰ',
+'rcshowhideanons' => '$1 ਗੁਮਨਾਮ ਮੈਂਬਰ',
+'rcshowhidepatr' => 'ਵੇਖੀਆਂ ਜਾ ਚੁੱਕੀਆਂ ਸੋਧਾਂ $1',
+'rcshowhidemine' => 'ਮੇਰੀਆਂ ਸੋਧਾਂ $1',
+'rclinks' => 'ਪਿਛਲੇ $2 ਦਿਨਾਂ ਵਿਚ ਹੋਈਆਂ $1 ਤਬਦੀਲੀਆਂ ਦਿਖਾਓ <br /> $3',
+'diff' => 'ਫ਼ਰਕ',
 'hist' => 'ਅਤੀਤ',
-'hide' => 'à¨\93ਹਲà©\87',
-'show' => 'ਵà©\87à¨\96à©\8b',
+'hide' => 'ਲà©\81à¨\95ਾà¨\93',
+'show' => 'ਵà¨\96ਾà¨\93',
 'minoreditletter' => 'ਛ',
 'newpageletter' => 'ਨ',
 'boteditletter' => 'ਬ',
 'rc_categories_any' => 'ਕੋਈ ਵੀ',
-'rc-enhanced-expand' => 'ਵੇਰਵਾ ਵੇਖੋ (ਜਾਵਾਸਕ੍ਰਿਪਟ ਲੋੜੀਦੀ ਹੈ)',
-'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ à¨\93ਹਲà©\87',
+'rc-enhanced-expand' => 'ਵà©\87ਰਵਾ à¨µà©\87à¨\96à©\8b (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f à¨²à©\8bà©\9cà©\80à¨\82ਦà©\80 à¨¹à©\88)',
+'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ à¨²à©\81à¨\95ਾà¨\93',
 
 # Recent changes linked
 'recentchangeslinked' => 'ਸਬੰਧਿਤ ਬਦਲਾਅ',
 'recentchangeslinked-feed' => 'ਸਬੰਧਿਤ ਬਦਲਾਅ',
-'recentchangeslinked-toolbox' => 'ਸਬੰਧਿਤ à¨¬à¨¦à¨²à¨¾à¨\85',
+'recentchangeslinked-toolbox' => 'ਸਬੰਧਿਤ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82',
 'recentchangeslinked-title' => '"$1" ਨਾਲ ਸੰਬੰਧਿਤ ਬਦਲਾਅ',
-'recentchangeslinked-noresult' => 'à¨\9cà©\81à©\9cà©\87 à¨¹à©\8bà¨\8f à¨¸à¨«à¨¿à¨\86à¨\82 à¨¤à©\87 ,ਦਿੱਤà©\87 à¨¸à¨®à©\87à¨\82 à¨µà¨¿à¨\9a à¨\95à©\81à¨\9d à¨¨à¨¹à©\80à¨\82 à¨¬à¨¦à¨²à¨¿à¨\86 ।',
-'recentchangeslinked-summary' => 'à¨\87ਹ à¨¸à©\82à¨\9aà©\80 à¨\8aਨà©\8dਹਾà¨\82 à¨ªà©°à¨¨à¨¿à¨\86à¨\82 ,à¨\9cà©\8b à¨\87à¨\95 à¨\96ਾਸ à¨ªà©°à¨¨à©\87 à¨¨à¨¾à¨² à¨¸à©°à¨¬à©°à¨§à¨¿à¨¤ à¨¹à¨¨, (ਯਾ à¨\95ਿਸà©\87 à¨\96ਾਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨¦à©\87 à¨®à©\88à¨\82ਬਰਾà¨\82) à¨¦à©\87 à¨¹à¨¾à¨² à¨µà¨¿à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨µà¨¾à¨\82 à¨¨à©\82à©° à¨¦à¨°à¨¸à¨¼à¨¾à¨\82ਦà©\80 à¨¹à©\88 [[Special:Watchlist|ਤà©\81ਹਾਡà©\80 à¨¦à©\8dਰਿਸ਼à¨\9fà©\80 à¨\97à©\8bà¨\9aਰ à¨¸à©\82à¨\9aà©\80]] à¨µà¨¿à¨\9a à¨®à©\8cà¨\9cà©\82ਦ à¨ªà©°à¨¨à©\87 à¨®à©\8bà¨\9fà©\87 à¨\85ਖਰਾਂ ਵਿਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
-'recentchangeslinked-page' => 'ਸਫ਼ਾ à¨¨à¨¾à¨\82:',
-'recentchangeslinked-to' => 'ਇਸ ਦੇ ਬਦਲੇ ਇਸ ਪੰਨੇ ਨਾਲ ਜੁੜੇ ਪੰਨਿਆਂ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਦਿਖਾਓ',
+'recentchangeslinked-noresult' => 'à¨\9cà©\81à©\9cà©\87 à¨¸à¨«à¨¿à¨\86à¨\82 à¨¤à©\87, à¨¦à¨¿à©±à¨¤à©\87 à¨¸à¨®à©\87à¨\82 à¨µà¨¿à¨\9a à¨\95à©\8bà¨\88 à¨¬à¨¦à¨²à¨¾à¨\86 à¨¨à¨¹à©\80à¨\82 à¨¹à©\8bà¨\87à¨\86।',
+'recentchangeslinked-summary' => 'à¨\87ਹ à¨²à¨¿à¨¸à¨\9f à¨\87à¨\95 à¨\96਼ਾਸ à¨¸à¨«à¨¼à©\87 à¨¨à¨¾à¨² à¨¸à¨¬à©°à¨§à¨¿à¨¤ à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨\9cਾà¨\82 à¨\95ਿਸà©\87 à¨\96਼ਾਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨¦à©\87 à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¦à©\87 à¨¹à¨¾à¨² à¨µà¨¿à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨µà¨¾à¨\82 à¨¨à©\82à©° à¨¦à¨°à¨¸à¨¾à¨\82à¨\89ਦà©\80 à¨¹à©\88। [[Special:Watchlist|ਤà©\81ਹਾਡà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f]] à¨µà¨¿à¨\9a à¨®à©\8cà¨\9cà©\82ਦ à¨¸à¨«à¨¼à©\87 à¨®à©\8bà¨\9fà©\87 à¨\85ੱਖਰਾਂ ਵਿਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
+'recentchangeslinked-page' => 'ਸਫ਼à©\87 à¨¦à¨¾ à¨¨à¨¾à¨®:',
+'recentchangeslinked-to' => 'ਇਸਦੇ ਬਦਲੇ ਇਸ ਸਫ਼ੇ ਨਾਲ਼ ਜੁੜੇ ਸਫ਼ਿਆਂ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਦਿਖਾਓ',
 
 # Upload
 'upload' => 'ਫਾਇਲ ਅੱਪਲੋਡ ਕਰੋ',
@@ -733,7 +743,7 @@ to upload files.',
 'uploadlog' => 'ਅੱਪਲੋਡ ਲਾਗ',
 'uploadlogpage' => 'ਅੱਪਲੋਡ ਲਾਗ',
 'filename' => 'ਫਾਇਲ ਨਾਂ',
-'filedesc' => 'ਸੰਖੇਪ',
+'filedesc' => 'ਸੰਖੇਪ ਖ਼ੁਲਾਸਾ',
 'fileuploadsummary' => 'ਸੰਖੇਪ:',
 'filestatus' => 'ਕਾਪੀਰਾਈਟ ਹਾਲਤ:',
 'filesource' => 'ਸੋਰਸ:',
@@ -781,7 +791,7 @@ to upload files.',
 
 # File description page
 'file-anchor-link' => 'ਫਾਇਲ',
-'filehist' => 'ਫਾà¨\87ਲ ਅਤੀਤ',
+'filehist' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ ਅਤੀਤ',
 'filehist-help' => 'ਇਛਿਤ ਸਮੇਂ ਤੇ ਟਿਕ-ਟਿਕ ਕਰੋ ਤਾਂ ਉਸ ਸਮੇਂ ਦੀ ਫਾਈਲ ਪੇਸ਼ ਹੋ ਜਾਵੇਗੀ।',
 'filehist-deleteall' => 'ਸਭ ਹਟਾਓ',
 'filehist-deleteone' => 'ਇਹ ਹਟਾਓ',
@@ -794,10 +804,10 @@ to upload files.',
 'filehist-dimensions' => 'ਮਾਪ',
 'filehist-filesize' => 'ਫਾਇਲ ਆਕਾਰ',
 'filehist-comment' => 'ਟਿੱਪਣੀ',
-'imagelinks' => 'ਫ਼ਾà¨\88ਲ à¨¦à©\80 à¨µà¨°à¨¤à©\8cਂ',
-'linkstoimage' => 'ਹà©\87ਠ à¨²à¨¿à¨\96ਿਤ {{PLURAL:$1|ਪੰਨà©\87 à¨¦à¨¾ à¨¹à¨µà¨¾à¨²à¨¾ à¨¹à©\88|$1 à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨¹à¨µà¨¾à¨²à©\87 à¨¹à¨¨}} to this file:',
+'imagelinks' => 'ਫ਼ਾà¨\88ਲ à¨¦à©\80 à¨µà¨°à¨¤à©\8bਂ',
+'linkstoimage' => 'à¨\87ਹ {{PLURAL:$1|ਸਫ਼à©\87 à¨¦à©\87 à¨²à¨¿à©°à¨\95|$1 à¨¸à¨«à¨¼à©\87}} à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à¨¾à¨²à¨¼ à¨\9cà©\8bà©\9cਦà©\87 à¨¹à¨¨à©\87:',
 'nolinkstoimage' => 'ਇਸ ਮਿਸਲ ਨਾਲ ਕੋਈ ਵਿ ਸਫ਼ੇ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ ।',
-'sharedupload-desc-here' => 'à¨\87ਹ à¨®à¨¿à¨¸à¨² $1 à¨¦à©\80 à¨¹à©\88 à¨\85ਤà©\87 à¨¹à©\8bਰ à¨ªà©\8dਰਾà¨\9cà©\88à¨\95à¨\9fਾà¨\82 à¨µà¨¿à¨\9a à¨µà©\80 à¨µà¨°à¨¤à©\80 à¨\9cਾ à¨¸à¨\95ਦà©\80 à¨¹à©\88 à¥¤ à¨\87ਸ à¨¦à©\87 [$2 à¨®à¨¿à¨¸à¨² à¨µà¨¾à¨²à©\87 à¨¬à©\8dਰਿਤਾà¨\82ਤ à¨ªà©°à¨¨à©\87] à¨µà¨¿à¨\9a à¨®à©\8cà¨\9cà©\82ਦ à¨µà¨°à¨¨à¨£ à¨¨à¨¿à¨®à¨¨ à¨²à¨¿à¨\96ਿਤ ਹੈ।',
+'sharedupload-desc-here' => 'à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ $1 à¨¦à©\80 à¨¹à©\88 à¨\85ਤà©\87 à¨¹à©\8bਰ à¨ªà©\8dਰਾà¨\9cà©\88à¨\95à¨\9fਾà¨\82 à¨µà¨¿à¨\9a à¨µà©\80 à¨µà¨°à¨¤à©\80 à¨\9cਾ à¨¸à¨\95ਦà©\80 à¨¹à©\88 à¥¤ à¨\87ਸ [$2 à¨«à¨¼à¨¾à¨\88ਲ à¨¦à©\87 à¨µà©\87ਰਵਾ à¨¸à¨«à¨¼à©\87] à¨µà¨¿à¨\9a à¨®à©\8cà¨\9cà©\82ਦ à¨µà©\87ਰਵਾ à¨¹à©\87ਠ à¨¦à¨¿à¨¸ à¨°à¨¿à¨¹à¨¾ ਹੈ।',
 'uploadnewversion-linktext' => 'ਇਸ ਫਾਇਲ ਦਾ ਇੱਕ ਨਵਾਂ ਵਰਜਨ ਅੱਪਲੋਡ ਕਰੋ',
 
 # File reversion
@@ -819,7 +829,7 @@ to upload files.',
 'download' => 'ਡਾਊਨਲੋਡ',
 
 # Random page
-'randompage' => 'ਰਲਵਾà¨\82 à¨ªà©\87à¨\9c਼',
+'randompage' => 'ਰਲ਼ਵਾà¨\82 à¨¸à¨«à¨¼à¨¾',
 
 # Statistics
 'statistics' => 'ਅੰਕੜੇ',
@@ -841,8 +851,8 @@ to upload files.',
 'prefixindex' => 'ਇਸ ਅਗੇਤਰ ਵਾਲੇ ਸਾਰੇ ਪੰਨੇ',
 'shortpages' => 'ਛੋਟੇ ਪੇਜ',
 'listusers' => 'ਯੂਜ਼ਰ ਲਿਸਟ',
-'usercreated' => ' $1 ਨੂੰ $2 ਵਜੇ {{GENDER:$3|ਮੈਂਬਰ ਨੇ ਰਚਿਆ}}',
-'newpages' => 'ਨਵà©\87à¨\82 à¨ªà©\87à¨\9c',
+'usercreated' => '$1 ਨੂੰ $2 ਵਜੇ {{GENDER:$3|ਰਚਿਆ}}',
+'newpages' => 'ਨਵà©\87à¨\82 à¨¸à¨«à¨¼à©\87',
 'newpages-username' => 'ਯੂਜ਼ਰ ਨਾਂ:',
 'ancientpages' => 'ਸਭ ਤੋਂ ਪੁਰਾਣੇ ਪੇਜ',
 'move' => 'ਭੇਜੋ',
@@ -852,21 +862,21 @@ to upload files.',
 
 # Book sources
 'booksources' => 'ਕਿਤਾਬ ਸਰੋਤ',
-'booksources-search-legend' => 'ਕਿਤਾਬ ਸਰੋਤ ਲਈ ਖੋਜ',
+'booksources-search-legend' => 'ਕਿਤਾਬ ਸਰੋਤਾਂ ਲਈ ਖੋਜ',
 'booksources-go' => 'ਜਾਓ',
 
 # Special:Log
 'specialloguserlabel' => 'ਯੂਜ਼ਰ:',
 'speciallogtitlelabel' => 'ਟਾਇਟਲ:',
-'log' => 'ਲਾà¨\97',
+'log' => 'à¨\9aਿੱਠà©\87',
 'all-logs-page' => 'ਸਭ ਲਾਗ',
 
 # Special:AllPages
-'allpages' => 'ਸਭ à¨ªà©\87à¨\9c',
+'allpages' => 'ਸਭ à¨¸à¨«à¨¼à©\87',
 'alphaindexline' => '$1 ਤੋਂ $2',
 'nextpage' => 'ਅੱਗੇ ਪੇਜ ($1)',
 'prevpage' => 'ਪਿੱਛੇ ਪੇਜ ($1)',
-'allarticles' => 'ਸਭ à¨²à©\87à¨\96',
+'allarticles' => 'ਸਭ à¨¸à¨«à¨¼à©\87',
 'allinnamespace' => 'ਸਭ ਪੇਜ ($1 ਨੇਮਸਪੇਸ)',
 'allnotinnamespace' => 'ਸਭ ਪੇਜ ($1 ਨੇਮਸਪੇਸ ਵਿੱਚ ਨਹੀਂ)',
 'allpagesprev' => 'ਪਿੱਛੇ',
@@ -885,7 +895,7 @@ to upload files.',
 'listusers-noresult' => 'ਕੋਈ ਯੂਜ਼ਰ ਨਹੀਂ ਲੱਭਿਆ।',
 
 # Special:Log/newusers
-'newuserlogpage' => 'ਮੈਂਬਰ ਖਾਤਾ ਉਸਾਰੀ ਚਿੱਠਾ',
+'newuserlogpage' => 'ਮà©\88à¨\82ਬਰ à¨\96਼ਾਤਾ à¨\89ਸਾਰà©\80 à¨\9aਿੱਠਾ',
 
 # Special:ListGroupRights
 'listgrouprights-group' => 'ਗਰੁੱਪ',
@@ -907,13 +917,14 @@ to upload files.',
 'emailsenttext' => 'ਤੁਹਾਡੀ ਈਮੇਲ ਭੇਜੀ ਗਈ ਹੈ।',
 
 # Watchlist
-'watchlist' => 'ਮà©\87ਰà©\80 à¨µà¨¾à¨\9a-ਲਿਸਟ',
+'watchlist' => 'ਮà©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸਟ',
 'mywatchlist' => 'ਮੇਰੀ ਵਾਚ-ਲਿਸਟ',
 'watchlistfor2' => '$1 $2 ਲਈ',
 'watchnologin' => 'ਲਾਗਇਨ ਨਹੀਂ',
-'watch' => 'ਵਾà¨\9a',
+'watch' => 'ਨà¨\9c਼ਰ à¨°à©±à¨\96à©\8b',
 'watchthispage' => 'ਇਹ ਪੇਜ ਵਾਚ ਕਰੋ',
 'unwatch' => 'ਅਣ-ਵਾਚ',
+'watchlist-details' => 'ਚਰਚਾ ਸਫ਼ੇ ਨਾ ਗਿਣਦੇ ਹੋਏ, ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ {{PLURAL:$1|$1 ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ ਹਨ}}।',
 'wlshowlast' => 'ਆਖਰੀ $1 ਦਿਨ $2 ਘੰਟੇ $3 ਵੇਖੋ',
 'watchlist-options' => 'ਧਿਆਨ ਗੋਚਰ ਸੂਚੀ ਵਿਕਲਪ',
 
@@ -934,8 +945,8 @@ to upload files.',
 'exblank' => 'ਪੇਜ ਖਾਲੀ ਹੈ',
 'delete-confirm' => '"$1" ਹਟਾਓ',
 'delete-legend' => 'ਹਟਾਓ',
-'actioncomplete' => 'à¨\90à¨\95ਸ਼ਨ à¨ªà©\82ਰਾ à¨¹à©\8bà¨\87à¨\86',
-'actionfailed' => 'ਹਰà¨\95ਤ à¨¨à¨¿à¨¸à¨¼à¨«à¨¼à¨²',
+'actioncomplete' => 'à¨\95ਾਰਵਾà¨\88 à¨ªà©\82ਰà©\80 à¨¹à©\8bà¨\88',
+'actionfailed' => 'à¨\95ਾਰਵਾà¨\88 à¨¨à¨¾à¨\95ਾਮ',
 'dellogpage' => 'ਹਟਾਉਣ ਲਾਗ',
 'deletecomment' => 'ਕਾਰਨ:',
 'deleteotherreason' => 'ਹੋਰ/ਵਾਧੂ ਕਾਰਨ:',
@@ -943,11 +954,11 @@ to upload files.',
 
 # Rollback
 'rollback_short' => 'ਰੋਲਬੈਕ',
-'rollbacklink' => 'ਰà©\8bਲਬà©\88à¨\95',
+'rollbacklink' => 'ਵਾਪਸ à¨®à©\8bà©\9cà©\8b',
 'rollbackfailed' => 'ਰੋਲਬੈਕ ਫੇਲ੍ਹ',
 
 # Protect
-'protectlogpage' => 'ਸà©\81ਰੱà¨\96ਿà¨\86 à¨²à¨¾à¨\97',
+'protectlogpage' => 'ਸà©\81ਰੱà¨\96ਿà¨\86 à¨\9aਿੱਠਾ',
 'protect-legend' => 'ਸੁਰੱਖਿਆ ਕਨਫਰਮ',
 'protectcomment' => 'ਕਾਰਨ:',
 'protectexpiry' => 'ਮਿਆਦ:',
@@ -972,8 +983,8 @@ to upload files.',
 
 # Undelete
 'undeletebtn' => 'ਰੀਸਟੋਰ',
-'undeletelink' => 'ਵà©\87à¨\96à©\8b/ਰà©\80ਸà¨\9fà©\8bਰ',
-'undeleteviewlink' => 'ਦੇਖੋ',
+'undeletelink' => 'ਵà©\87à¨\96à©\8b/ਮà©\81à©\9c à¨¬à¨¹à¨¾à¨² à¨\95ਰà©\8b',
+'undeleteviewlink' => 'ਵੇਖੋ',
 'undeletereset' => 'ਰੀ-ਸੈੱਟ',
 'undeletecomment' => 'ਟਿੱਪਣੀ:',
 'undelete-show-file-submit' => 'ਹਾਂ',
@@ -984,27 +995,28 @@ to upload files.',
 'blanknamespace' => '(ਮੁੱਖ)',
 
 # Contributions
-'contributions' => 'ਯà©\82à¨\9c਼ਰ ਯੋਗਦਾਨ',
-'contributions-title' => '$1 à¨¦à©\80 à¨°à¨\9aਨਾ',
+'contributions' => 'ਮà©\88à¨\82ਬਰ ਯੋਗਦਾਨ',
+'contributions-title' => '$1 à¨²à¨\88 à¨®à©\88à¨\82ਬਰ à¨¯à©\8bà¨\97ਦਾਨ',
 'mycontris' => 'ਮੇਰਾ ਯੋਗਦਾਨ',
 'contribsub2' => '$1 ($2) ਲਈ',
-'uctop' => '(à¨\89ੱਤà©\87)',
-'month' => 'ਇਸ(ਯਾ ਹੋਰ ਪਿਛਲੇ) ਮਹੀਨੇ ਤੌਂ',
-'year' => 'ਇਸ(ਜਾਂ ਹੋਰ ਪਿਛਲੇ) ਸਾਲ ਤੌਂ',
+'uctop' => '(à¨\9fà©\80ਸà©\80)',
+'month' => 'ਇਸ (ਅਤੇ ਪਿਛਲੇ) ਮਹੀਨੇ ਤੋਂ :',
+'year' => 'ਇਸ (ਅਤੇ ਪਿਛਲੇ) ਸਾਲ ਤੋਂ :',
 
+'sp-contributions-newbies' => 'ਸਿਰਫ਼ ਨਵੇਂ ਮੈਂਬਰਾਂ ਦੇ ਯੋਗਦਾਨ ਵਖਾਓ',
 'sp-contributions-newbies-sub' => 'ਨਵੇਂ ਅਕਾਊਂਟਾਂ ਲਈ',
-'sp-contributions-blocklog' => 'ਪਾਬੰਦà©\80 à¨²à¨¾à¨\97',
+'sp-contributions-blocklog' => 'ਪਾਬੰਦà©\80 à¨\9aਿੱਠà©\87',
 'sp-contributions-uploads' => 'ਅਪਲੋਡ',
-'sp-contributions-logs' => 'ਲਾà¨\97',
+'sp-contributions-logs' => 'à¨\9aਿੱਠà©\87',
 'sp-contributions-talk' => 'ਗੱਲਬਾਤ',
 'sp-contributions-search' => 'ਯੋਗਦਾਨ ਖੋਜੋ',
 'sp-contributions-username' => 'IP ਐਡਰੈੱਸ ਜਾਂ ਯੂਜ਼ਰ ਨਾਂ:',
-'sp-contributions-toponly' => 'à¨\95à©\87ਵਲ à¨\89ਹà©\80 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨¦à¨¿à¨\96ਾà¨\93 à¨\9cà©\8b à¨¨à¨µà©\80ਨਤਮ à¨¸à©\8bਧਾà¨\82 à¨¹à¨¨à¥¤',
+'sp-contributions-toponly' => 'ਸਿਰਫ਼ à¨\89ਹà©\80 à¨¸à©\8bਧਾà¨\82 à¨µà¨\96ਾà¨\93 à¨\9cà©\8b à¨¸à¨­ à¨¤à©\8bà¨\82 à¨¨à¨µà©\80à¨\82à¨\86à¨\82 à¨¹à¨¨',
 'sp-contributions-submit' => 'ਖੋਜ',
 
 # What links here
-'whatlinkshere' => 'à¨\87ੱਥà©\87 à¨\95ਿਹà©\9cà©\87 à¨²à¨¿à©°à¨\95',
-'whatlinkshere-title' => '$1 à¨¨à¨¾à¨² à¨\9cà©\81à©\9cà©\87 à¨¹à©\8bà¨\8f à¨ªà©°à¨¨ੇ',
+'whatlinkshere' => 'à¨\95ਿਹà©\9cà©\87 (ਸਫ਼à©\87) à¨\87ੱਥà©\87 à¨\9cà©\8bà©\9cਦà©\87 à¨¹à¨¨',
+'whatlinkshere-title' => '$1 à¨¨à¨¾à¨² à¨\9cà©\81à©\9cà©\87 à¨¹à©\8bà¨\8f à¨¸à¨«à¨¼ੇ',
 'whatlinkshere-page' => 'ਸਫਾ:',
 'linkshere' => "ਹੇਠ ਦਿੱਤੇ ਪੰਨੇ '''[[:$1]]''' ਨਾਲ ਜੋੜਦੇ ਹਨ।",
 'nolinkshere' => "'''[[:$1]]'''ਨਾਲ ਮਿਲਦਾ ਜੁਲਦਾ ਕੋਈ ਪੰਨਾ ਨਹੀਂ ਹੈ।",
@@ -1014,11 +1026,11 @@ to upload files.',
 'whatlinkshere-prev' => '{{PLURAL:$1|ਪਿਛਲਾ|ਪਿਛਲੇ $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|ਅਗਲਾ|ਅਗਲੇ $1}}',
 'whatlinkshere-links' => '← ਲਿੰਕ',
-'whatlinkshere-hideredirs' => '$1 ਗੈਰਸਿਧਾ',
+'whatlinkshere-hideredirs' => 'ਅਸਿੱਧੇ ਰਾਹ $1',
 'whatlinkshere-hidetrans' => '$1 ਇੱਥੇ ਕੀ ਕੀ ਜੁੜਦਾ ਹੈ।',
 'whatlinkshere-hidelinks' => '$1 ਲਿੰਕ',
 'whatlinkshere-hideimages' => '$1 ਸੰਬੰਧਿਤ ਚਿਤਰ',
-'whatlinkshere-filters' => 'ਫਿਲà¨\9fਰ',
+'whatlinkshere-filters' => 'à¨\9bਾਨਣà©\80à¨\86à¨\82',
 
 # Block/unblock
 'blockip' => 'ਯੂਜ਼ਰ ਬਲਾਕ ਕਰੋ',
@@ -1028,23 +1040,27 @@ to upload files.',
 'ipbreasonotherlist' => 'ਹੋਰ ਕਾਰਨ',
 'ipbsubmit' => 'ਇਹ ਯੂਜ਼ਰ ਲਈ ਪਾਬੰਦੀ',
 'ipbother' => 'ਹੋਰ ਟਾਈਮ:',
-'ipboptions' => '੨ à¨\98à¨\82à¨\9fà©\87:2 hours, à©§ à¨¦à¨¿à¨¨:1 day, à©© à¨¦à¨¿à¨¨:3 days, à©§ à¨¹à¨«à©\8dਤਾ:1 week, à©¨ à¨¹à¨«à©\8dਤੇ:2 weeks, ੧ ਮਹੀਨਾ:1 month, ੩ ਮਹੀਨੇ:3 months, ੬ ਮਹੀਨੇ:6 months, ੧ ਸਾਲ:1 year, ਹਮੇਸ਼ਾ ਲਈ:infinite',
+'ipboptions' => '੨ à¨\98à©°à¨\9fà©\87:2 hours, à©§ à¨¦à¨¿à¨¨:1 day, à©© à¨¦à¨¿à¨¨:3 days, à©§ à¨¹à¨«à¨¼à¨¤à¨¾:1 week, à©¨ à¨¹à¨«à¨¼ਤੇ:2 weeks, ੧ ਮਹੀਨਾ:1 month, ੩ ਮਹੀਨੇ:3 months, ੬ ਮਹੀਨੇ:6 months, ੧ ਸਾਲ:1 year, ਹਮੇਸ਼ਾ ਲਈ:infinite',
 'ipbotheroption' => 'ਹੋਰ',
 'ipbotherreason' => 'ਹੋਰ/ਆਮ ਕਾਰਨ:',
 'badipaddress' => 'ਗਲਤ IP ਐਡਰੈੱਸ',
 'ipb-unblock-addr' => '$1 ਅਣ-ਬਲਾਕ',
 'ipb-unblock' => 'ਇੱਕ ਯੂਜ਼ਰ ਨਾਂ ਜਾਂ IP ਐਡਰੈੱਸ ਅਣ-ਬਲਾਕ ਕਰੋ',
 'unblockip' => 'ਯੂਜ਼ਰ ਅਣ-ਬਲਾਕ ਕਰੋ',
+'ipblocklist' => 'ਪਾਬੰਦੀਸ਼ੁਦਾ ਮੈਂਬਰ',
 'ipblocklist-submit' => 'ਖੋਜ',
 'infiniteblock' => 'ਬੇਅੰਤ',
 'expiringblock' => '$1 $2 ਮਿਆਦ ਖਤਮ',
 'anononlyblock' => 'anon. ਹੀ',
 'emailblock' => 'ਈਮੇਲ ਬਲਾਕ ਹੈ',
-'blocklink' => 'ਬਲਾà¨\95',
-'unblocklink' => 'à¨\85ਣ-ਬਲਾà¨\95',
-'change-blocklink' => 'ਬਲਾà¨\95 ਬਦਲੋ',
+'blocklink' => 'ਪਾਬੰਦà©\80 à¨²à¨¾à¨\93',
+'unblocklink' => 'ਪਾਬੰਦà©\80 à¨°à©±à¨¦ à¨\95ਰà©\8b',
+'change-blocklink' => 'ਪਾਬੰਦà©\80 ਬਦਲੋ',
 'contribslink' => 'ਯੋਗਦਾਨ',
+'blocklogpage' => 'ਪਾਬੰਦੀ ਚਿੱਠੇ',
+'blocklogentry' => '[[$1]] ਤੇ $2 ਲਈ ਪਾਬੰਦੀ ਲਾਈ। $3',
 'unblocklogentry' => '$1 ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਈ',
+'block-log-flags-nocreate' => 'ਖਾਤਾ ਖੋਲ੍ਹਣ ਤੇ ਪਾਬੰਦੀ ਹੈ',
 'proxyblocksuccess' => 'ਪੂਰਾ ਹੋਇਆ',
 
 # Developer tools
@@ -1061,9 +1077,9 @@ to upload files.',
 'pagemovedsub' => 'ਭੇਜਣਾ ਸਫ਼ਲ ਰਿਹਾ',
 'movepage-moved' => '\'\'\'"$1" ਨੂੰ  "$2"\'\'\' ਉੱਤੇ ਭੇਜਿਆ',
 'movedto' => 'ਮੂਵ ਕੀਤਾ',
-'movelogpage' => 'ਮà©\82ਵ à¨²à¨¾à¨\97',
+'movelogpage' => 'ਭà©\87à¨\9cà©\87 à¨\9cਾਣ à¨¦à¨¾ à¨\9aਿੱਠਾ (log)',
 'movereason' => 'ਕਾਰਨ:',
-'revertmove' => 'ਰà©\80ਵਰà¨\9f',
+'revertmove' => 'ਰੱਦ à¨\95ਰà©\8b',
 'delete_and_move' => 'ਹਟਾਓ ਅਤੇ ਮੂਵ ਕਰੋ',
 
 # Export
@@ -1075,14 +1091,14 @@ to upload files.',
 
 # Namespace 8 related
 'allmessages' => 'ਸਿਸਟਮ ਸੁਨੇਹੇ',
-'allmessagesname' => 'ਨਾà¨\82',
+'allmessagesname' => 'ਨਾਮ',
 'allmessagesdefault' => 'ਡਿਫਾਲਟ ਟੈਕਸਟ',
 'allmessagescurrent' => 'ਮੌਜੂਦਾ ਟੈਕਸਟ',
 'allmessages-language' => 'ਭਾਸ਼ਾ:',
 'allmessages-filter-submit' => 'ਜਾਓ',
 
 # Thumbnails
-'thumbnail-more' => 'ਫà©\88ਲਾਓ',
+'thumbnail-more' => 'ਵਧਾਓ',
 'filemissing' => 'ਫਾਇਲ ਗੁੰਮ ਹੈ',
 'thumbnail_error' => 'ਅਁਗੂਠਾ ਝਲਕ ਬਨਾਉਣ ਵਿਚ ਗਲਤੀ ਹੋਈ ਹੈ : $1',
 
@@ -1101,65 +1117,65 @@ to upload files.',
 'import-logentry-upload-detail' => '$1 ਰੀਵਿਜ਼ਨ',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'ਤà©\81ਹਾਡਾ à¨¯à©\82à¨\9c਼ਰ ਸਫ਼ਾ',
-'tooltip-pt-mytalk' => 'ਤà©\81ਹਾਡਾ à¨\9aਰà¨\9aਾ à¨ªà©\87à¨\9c',
+'tooltip-pt-userpage' => 'ਤà©\81ਹਾਡਾ à¨®à©\88à¨\82ਬਰ ਸਫ਼ਾ',
+'tooltip-pt-mytalk' => 'ਤà©\81ਹਾਡਾ à¨\9aਰà¨\9aਾ à¨¸à¨«à¨¼à¨¾',
 'tooltip-pt-preferences' => 'ਮੇਰੀ ਪਸੰਦ',
-'tooltip-pt-watchlist' => 'ਤà©\81ਹਾਡà©\87 à¨µà¨¿à¨\9aਾਰ à¨\97à©\8bà¨\9aਰà©\87 à¨°à©±à¨\96à©\87 à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨¦à¨¿ à¨¸à©\82à¨\9aà©\80।',
+'tooltip-pt-watchlist' => 'ਤà©\81ਹਾਡà©\87 à¨µà¨¿à¨\9aਾਰ à¨\97à©\8bà¨\9aਰà©\87 à¨°à©±à¨\96à©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
 'tooltip-pt-mycontris' => 'ਮੇਰੇ ਯੋਗਦਾਨ ਦੀ ਲਿਸਟ',
-'tooltip-pt-login' => 'ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਲਈ ਉਤਸ਼ਾਹਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਪਰ ਇਹ ਲਾਜ਼ਮੀ ਨਹੀਂ ਹੈ',
+'tooltip-pt-login' => 'ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਲਈ ਉਤਸ਼ਾਹਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ',
 'tooltip-pt-logout' => 'ਲਾਗ ਆਉਟ',
 'tooltip-ca-talk' => 'ਸਮਗੱਰੀ ਸਫ਼ੇ ਬਾਰੇ ਚਰਚਾ',
-'tooltip-ca-edit' => 'ਤà©\81ਸà©\80à¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨¸à©\8bਧ à¨¸à¨\95ਦà©\87 à¨¹à©\8b। à¨¸à©°à¨­à¨¾à¨²à¨£ à¨¤à©\8bà¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨\9dਲà¨\95 à¨¬à¨\9fਨ à¨µà¨°à¨¤ à¨\95à©\87 à¨µà©\87à¨\96à©\8b à¨\9cà©\80',
+'tooltip-ca-edit' => 'ਤà©\81ਸà©\80à¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨¸à©\8bਧ à¨¸à¨\95ਦà©\87 à¨¹à©\8b। à¨®à¨¿à¨¹à¨°à¨¬à¨¾à¨¨à©\80 à¨\95ਰà¨\95à©\87 à¨¸à©°à¨­à¨¾à¨²à¨£ à¨¤à©\8bà¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨\9dਲà¨\95 à¨¬à¨\9fਨ à¨µà¨°à¨¤à©\8b',
 'tooltip-ca-addsection' => 'ਨਵਾਂ ਖੰਡ ਸ਼ੁ੍ਰੂ ਕਰੋ',
-'tooltip-ca-viewsource' => 'à¨\87ਹ à¨ªà©\87à¨\9c਼ ਸੁਰੱਖਿਅਤ ਹੈ।
-ਤੁਸੀਂ ਇਸ ਦਾ ਸਰੋਤ ਵੇਖ ਸਕਦੇ ਹੋ।',
-'tooltip-ca-history' => 'à¨\87ਹ à¨¸à¨«à¨¼à©\87 à¨¦à¨¾ à¨ªà¨¿à¨\9bਲਾ ਰੀਵਿਜ਼ਨ',
-'tooltip-ca-protect' => 'à¨\87ਹ à¨ªà©\87à¨\9c à¨¸à©\81ਰੱà¨\96ਿà¨\85ਤ à¨¬à¨£à¨¾à¨\93',
-'tooltip-ca-delete' => 'à¨\87ਹ à¨ªà©\87à¨\9c à¨¹ਟਾਓ',
+'tooltip-ca-viewsource' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ ਸੁਰੱਖਿਅਤ ਹੈ।
+ਤੁਸੀਂ ਇਸਦਾ ਸਰੋਤ ਵੇਖ ਸਕਦੇ ਹੋ।',
+'tooltip-ca-history' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨ªà¨¿à¨\9bਲà©\87 ਰੀਵਿਜ਼ਨ',
+'tooltip-ca-protect' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à¨¹à¨¿à¨«à¨¼à©\82à¨\9c਼ à¨\95ਰà©\8b',
+'tooltip-ca-delete' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à¨¿ਟਾਓ',
 'tooltip-ca-move' => 'ਇਹ ਪੇਜ ਭੇਜੋ',
-'tooltip-ca-watch' => "ਇਹ ਸਫ਼ੇ ਆਪਣੀ ਵਾਚ-ਲਿਸਟ 'ਚੋਂ ਹਟਾਓ",
-'tooltip-ca-unwatch' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\86ਪਣà©\80 à¨µà¨¾à¨\9a-ਲਿਸà¨\9f à¨¤ੋਂ ਹਟਾਓ',
-'tooltip-search' => 'ਖੋਜ {{SITENAME}}',
-'tooltip-search-go' => 'ਠà©\80à¨\95 à¨\87ਹ à¨¨à¨¾à¨\82 à¨µà¨¾à¨²à©\87 à¨¸à¨«à¨¼à©\87 à¨\89ੱਤà©\87 à¨\9cਾà¨\89, à¨\9cà©\87 à¨®à©\8cà¨\9cà©\82ਦ à¨¹à©\88',
-'tooltip-search-fulltext' => 'à¨\87ਸ à¨\9fà©\88à¨\95ਸà¨\9f à¨²à¨\88 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨\96à©\8bà¨\9c।',
-'tooltip-p-logo' => 'ਮà©\81ੱà¨\96 à¨ªà©\87à¨\9c',
-'tooltip-n-mainpage' => 'ਮà©\81ੱà¨\96 à¨ªà©\87à¨\9c à¨\96à©\8bਲà©\8dਹà©\8b',
-'tooltip-n-mainpage-description' => 'ਮà©\81ੱà¨\96 à¨ªà©\87à¨\9c਼ à¨\89ੱਤੇ ਜਾਓ',
-'tooltip-n-portal' => 'ਪਰੋਜੈਕਟ ਬਾਰੇ, ਤੁਸੀਂ ਕੀ ਕਰ ਸਕਦੇ ਹੋ, ਕਿੱਥੇ ਕੁਝ ਲੱਭ ਸਕਦੇ ਹੋ',
+'tooltip-ca-watch' => 'ਇਹ ਸਫ਼ਾ ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਸ਼ਾਮਲ ਕਰੋ',
+'tooltip-ca-unwatch' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\86ਪਣà©\80 à¨µà¨¾à¨\9a-ਲਿਸà¨\9f à¨\9aੋਂ ਹਟਾਓ',
+'tooltip-search' => '{{SITENAME}} ’ਤੇ ਖੋਜੋ',
+'tooltip-search-go' => 'ਠà©\80à¨\95 à¨\87ਸ à¨¨à¨¾à¨® à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨«à¨¼à©\87 à¨¤à©\87 à¨\9cਾà¨\89, à¨\9cà©\87 à¨®à©\8cà¨\9cà©\82ਦ à¨¹à©\88 à¨¤à¨¾à¨\82',
+'tooltip-search-fulltext' => 'à¨\87ਸ à¨²à¨¿à¨\96ਤ à¨²à¨\88 à¨¸à¨«à¨¼à©\87 à¨²à©±à¨­à©\8b',
+'tooltip-p-logo' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼à©\87 â\80\99ਤà©\87 à¨\9cਾà¨\93',
+'tooltip-n-mainpage' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼à©\87 â\80\99ਤà©\87 à¨\9cਾà¨\93',
+'tooltip-n-mainpage-description' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼à©\87 â\80\99ਤੇ ਜਾਓ',
+'tooltip-n-portal' => 'ਪਰੋਜੈਕਟ ਬਾਰੇ, ਤੁਸੀਂ ਕੀ ਕਰ ਸਕਦੇ ਹੋ, ਕਿੱਥੇ ਕੁਝ ਲੱਭਣਾ ਹੈ',
 'tooltip-n-currentevents' => 'ਮੌਜੂਦਾ ਸਮਾਗਮ ਬਾਰੇ ਪਿਛਲੀ ਜਾਣਕਾਰੀ ਲੱਭੋ',
-'tooltip-n-recentchanges' => 'ਵਿà¨\95ਿ à¨µà¨¿à©±à¨\9a à¨¤à¨¾à¨\9c਼ਾ à¨¬à¨¦à¨²à¨¾à¨\85 ਦੀ ਲਿਸਟ',
-'tooltip-n-randompage' => 'à¨\87ੱà¨\95 à¨°à¨²à¨µà¨¾à¨\82 à¨ªà©\87à¨\9c ਲੋਡ ਕਰੋ',
+'tooltip-n-recentchanges' => 'ਵਿà¨\95à©\80 â\80\99à¨\9a à¨¤à¨¾à¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 ਦੀ ਲਿਸਟ',
+'tooltip-n-randompage' => 'à¨\87à¨\95 à¨°à¨²à¨¼à¨µà¨¾à¨\82 à¨¸à¨«à¨¼à¨¾ ਲੋਡ ਕਰੋ',
 'tooltip-n-help' => 'ਖੋਜਣ ਲਈ ਥਾਂ',
-'tooltip-t-whatlinkshere' => 'ਸਭ à¨µà¨¿à¨\95ਿ à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f, à¨\9cà©\8b à¨\87ੱਥà©\87 à¨²à¨¿à©°à¨\95 à¨\95à©\80ਤੇ ਹਨ',
-'tooltip-t-recentchangeslinked' => 'à¨\87ਹ à¨¸à¨«à¨¼à©\87 à¨¤à©\8bà¨\82 à¨²à¨¿à©°à¨\95 à¨\95à©\80ਤà©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨µà¨¿à©±à¨\9a à¨¤à¨¾à¨\9c਼ਾ à¨¬à¨¦à¨²à¨¾à¨\85',
-'tooltip-feed-atom' => 'à¨\87ਸ à¨ªà©°à¨¨ੇ ਦੀ ਐਟਮ ਫ਼ੀਡ',
-'tooltip-t-contributions' => 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ à¨¦à¨¾ à¨¯à©\8bà¨\97ਦਾਨ à¨¦à¨¿à¨\96ਾà¨\93',
+'tooltip-t-whatlinkshere' => 'ਵਿà¨\95à©\80 à¨¦à©\87 à¨¸à¨¾à¨°à©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f, à¨\9cà©\8b à¨\87ੱਥà©\87 à¨\9cà©\8bà©\9cਦੇ ਹਨ',
+'tooltip-t-recentchangeslinked' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¤à©\8bà¨\82 à¨²à¨¿à©°à¨\95 à¨\95à©\80ਤà©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨µà¨¿à©±à¨\9a à¨¤à¨¾à¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82',
+'tooltip-feed-atom' => 'à¨\87ਸ à¨¸à¨«à¨¼ੇ ਦੀ ਐਟਮ ਫ਼ੀਡ',
+'tooltip-t-contributions' => 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ à¨¦à©\87 à¨¯à©\8bà¨\97ਦਾਨ à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
 'tooltip-t-emailuser' => 'ਇਹ ਯੂਜ਼ਰ ਨੂੰ ਮੇਲ ਭੇਜੋ',
 'tooltip-t-upload' => 'ਚਿੱਤਰ ਜਾਂ ਮੀਡਿਆ ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ',
-'tooltip-t-specialpages' => 'ਸਭ à¨\96ਾਸ ਸਫ਼ਿਆਂ ਦੀ ਲਿਸਟ',
+'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨\96਼ਾਸ ਸਫ਼ਿਆਂ ਦੀ ਲਿਸਟ',
 'tooltip-t-print' => 'ਇਹ ਸਫ਼ੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
-'tooltip-t-permalink' => 'ਸਫ਼à©\87 à¨¦à©\87 à¨\87ਹ à¨°à©\80ਵਿà¨\9c਼ਨ à¨²à¨\88 à¨ªà©±à¨\95à©\87 ਲਿੰਕ',
-'tooltip-ca-nstab-main' => 'ਸਮà¨\97ੱਰà©\80 à¨ªà©\87à¨\9c ਵੇਖੋ',
-'tooltip-ca-nstab-user' => 'ਯà©\82à¨\9c਼ਰ à¨ªà©\87à¨\9c ਵੇਖੋ',
+'tooltip-t-permalink' => 'ਸਫ਼à©\87 à¨¦à©\87 à¨\87ਸ à¨°à©\80ਵਿà¨\9c਼ਨ à¨²à¨\88 à¨ªà©±à¨\95ਾ ਲਿੰਕ',
+'tooltip-ca-nstab-main' => 'ਸਮੱà¨\97ਰà©\80 à¨¸à¨«à¨¼à¨¾ ਵੇਖੋ',
+'tooltip-ca-nstab-user' => 'ਮà©\88à¨\82ਬਰ à¨¸à¨«à¨¼à¨¾ ਵੇਖੋ',
 'tooltip-ca-nstab-media' => 'ਮੀਡਿਆ ਪੇਜ ਵੇਖੋ',
-'tooltip-ca-nstab-special' => 'à¨\87ਹ à¨\96ਾਸ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88, à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à©\82à©° à¨¸à©\8bਧ à¨¨à¨¹à©\80à¨\82 à¨¸à¨\95ਦà©\87 à¨¹à©\8b',
+'tooltip-ca-nstab-special' => 'à¨\87ਹ à¨\96਼ਾਸ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88, à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à©\82à©° à¨¸à©\8bਧ à¨¨à¨¹à©\80à¨\82 à¨¸à¨\95ਦà©\87।',
 'tooltip-ca-nstab-project' => 'ਪਰੋਜੈਕਟ ਪੇਜ ਵੇਖੋ',
-'tooltip-ca-nstab-image' => 'à¨\9aਿੱਤਰ à¨ªà©\87à¨\9c ਵੇਖੋ',
+'tooltip-ca-nstab-image' => 'ਫ਼ਾà¨\88ਲ à¨¸à¨«à¨¼à¨¾ ਵੇਖੋ',
 'tooltip-ca-nstab-mediawiki' => 'ਸਿਸਟਮ ਸੁਨੇਹੇ ਵੇਖੋ',
 'tooltip-ca-nstab-template' => 'ਟੈਪਲੇਟ ਵੇਖੋ',
 'tooltip-ca-nstab-help' => 'ਮੱਦਦ ਪੇਜ ਵੇਖੋ',
 'tooltip-ca-nstab-category' => 'ਕੈਟਾਗਰੀ ਪੇਜ ਵੇਖੋ',
 'tooltip-minoredit' => 'ਇਸ ਤੇ ਛੋਟੇ ਬਦਲਾਅ ਦਾ  ਨਿਸ਼ਾਨ ਲਾਓ',
-'tooltip-save' => 'ਆਪਣੇ ਬਦਲਾਅ ਸੰਭਾਲੋ',
+'tooltip-save' => 'à¨\86ਪਣà©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¸à©°à¨­à¨¾à¨²à¨¼à©\8b',
 'tooltip-preview' => 'ਆਪਣੇ ਬਦਲਾਅ ਦੀ ਝਲਕ ਵੇਖੋ, ਸੰਭਾਲਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵਰਤੋਂ ਜੀ!',
-'tooltip-diff' => 'à¨\87ਸ à¨ªà¨¾à¨  à¨µà¨¿à¨\9a à¨\86ਪਣà©\87 à¨\95à©\80ਤà©\87 à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨¦ੇਖੋ',
-'tooltip-compareselectedversions' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨\9aà©\81ਣà©\87 à¨¹à©\8bà¨\8f à¨¸à¨¼à©\8bਧਾà¨\82 à¨µà¨¿à¨\9a à¨«à¨¼à¨°à¨\95 à¨¦ੇਖੋ',
+'tooltip-diff' => 'ਲਿà¨\96ਤ à¨µà¨¿à¨\9a à¨\86ਪਣà©\87 à¨\95à©\80ਤà©\87 à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨µੇਖੋ',
+'tooltip-compareselectedversions' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨¦à©\8b à¨\9aà©\81ਣà©\87 à¨¹à©\8bà¨\8f à¨¸à©\8bਧਾà¨\82 à¨µà¨¿à¨\9a à¨«à¨¼à¨°à¨\95 à¨µੇਖੋ',
 'tooltip-watch' => 'ਇਹ ਸਫ਼ੇ ਨੂੰ ਆਪਣੀ ਵਾਚ-ਲਿਸਟ ਵਿਚ ਪਾਓ',
 'tooltip-upload' => 'ਅੱਪਲੋਡ ਸਟਾਰਟ ਕਰੋ',
-'tooltip-rollback' => "'' ਵਾਪਸ ਲੈ ਜਾਓ '' ਇਕ ਝਟਕੇ ਵਿਚ ਹੀ ਪਿਛਲੇ ਯੂਜ਼ਰ ਦੇ ਬਦਲਾਵਾਂ ਨੂੰ ਗਾਇਬ ਕਰ ਦੇਂਦਾ ਹੈ।",
-'tooltip-undo' => '" ਪੁਰਾਣੀ ਹਾਲਤ ਵਿਚ ਪਰਤੋ " ਇਸ ਬਦਲਾਅ ਨੂੰ ਰੱਦ ਕਰਕੇ ਸੰਪਾਦਨ ਫਾਰਮ ਨੂੰ ਝਲਕ ਦੇ ਅੰਦਾਜ਼ ਵਿਚ ਦਿਖਾਂਦਾ ਹੈ।
-à¨\87ਸ à¨¦à¨µà¨¾à¨°à¨¾ à¨¸à¨¾à¨° à¨µà¨¿à¨\9a à¨ªà©\81ਰਾਣà©\87 à¨¹à¨¾à¨²à¨¤ à¨µà¨¿à¨\9a à¨ªà¨°à¨¤à¨£ ਦਾ ਕਾਰਨ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।',
-'tooltip-summary' => 'à¨\87à¨\95 à¨¸à©°à¨\96à©\87ਪ à¨\96à©\81ਲਾਸਾ ਦਰਜ ਕਰੋ',
+'tooltip-rollback' => "''ਵਾਪਸ ਮੋੜੋ'' ਇਕ ਹੀ ਕਲਿੱਕ ਨਾਲ਼ ਆਖ਼ਰੀ ਯੋਗਦਾਨ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ",
+'tooltip-undo' => '"ਨਕਾਰੋ" ਇਸ ਤਬਦੀਲੀ ਨੂੰ ਰੱਦ ਕਰਕੇ ਸੋਧ ਫ਼ਾਰਮ ਨੂੰ ਝਲਕ ਦੇ ਅੰਦਾਜ਼ ਵਿਚ ਦਿਖਾਉਂਦਾ ਹੈ।
+à¨\87à©°à¨\9d "ਸਾਰ" à¨µà¨¿à¨\9a à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¨à¨\95ਾਰਨ ਦਾ ਕਾਰਨ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।',
+'tooltip-summary' => 'ਸੰà¨\96à©\87ਪ à¨¸à¨¾à¨° ਦਰਜ ਕਰੋ',
 
 # Attribution
 'others' => 'ਹੋਰ',
@@ -1178,7 +1194,7 @@ to upload files.',
 
 # Browsing diffs
 'previousdiff' => '← ਪੁਰਾਣੀ ਸੋਧ',
-'nextdiff' => 'à¨\85ੰਤਰ à¨\85ੱà¨\97à©\87 →',
+'nextdiff' => 'ਨਵà©\80à¨\82 à¨¸à©\8bਧ →',
 
 # Media information
 'thumbsize' => 'ਥੰਮਨੇਲ ਆਕਾਰ:',
@@ -1197,12 +1213,12 @@ to upload files.',
 
 # Bad image list
 'bad_image_list' => 'ਤਰਤੀਬ ਇਸ ਤਰਾਂ ਹੈ:
-à¨\95à©\87ਵਲ à¨¸à©\82à¨\9aà©\80ਬੱਧ à¨®à©±à¨¦à¨¾à¨\82 (* à¨¨à¨¾à¨² à¨¸à¨¼à©\81ਰà©\82 à¨¹à©\8bਣ à¨µà¨¾à¨²à©\80à¨\86à¨\82 à¨ªà©°à¨\95ਤà©\80à¨\86à¨\82) à¨¹à©\80 à¨µà¨¿à¨\9aਾਰ à¨\85ਧà©\80ਨ à¨¹à©\8bਣà¨\97à©\80à¨\86à¨\82
-ਪੰà¨\95ਤà©\80 à¨µà¨¿à¨\9a à¨ªà¨¹à¨¿à¨²à©\80 à¨\95à©\9cà©\80 à¨\97ਲਤ à¨«à¨¾à¨\88ਲ à¨¦à©\80 à¨\95à©\9cà©\80 à¨¹à©\8bਣà©\80 à¨\9aਾਹà©\80ਦà©\80 à¨¹à©\88।à¨\89ਸ à¨ªà©°à¨\95ਤà©\80 à¨µà¨¿à¨\9a à¨\85ੱà¨\97à©\87 à¨¦à¨¿à¨¤à©\80à¨\86à¨\82 à¨\95à©\9cà©\80à¨\86à¨\82 à¨¨à©\82à©° à¨\85ਪਵਾਦ à¨®à©°à¨¨à¨¿à¨\86 à¨\9cਾਵà©\87à¨\97ਾ, à¨­à¨¾à¨µ à¨\89ਹ à¨ªà©°à¨¨à©\87 à¨\9cਿਨà©\8dਹਾà¨\82 à¨µà¨¿à¨\9a à¨«à¨¾à¨\88ਲ à¨\95ਿਸà©\87 à¨ªà©°à¨\95ਤà©\80 à¨µà¨¿à¨\9a à¨¸à¨¥à¨¿à¨¤ à¨¹à©\8b à¨¸à¨\95ਦà©\80 à¨¹à©\87।',
+ਸਿਰਫ਼ à¨²à¨¿à¨¸à¨\9f à¨µà¨¿à¨\9aਲà©\80à¨\86à¨\82 à¨\9aà©\80à¨\9c਼ਾà¨\82 (* à¨¨à¨¾à¨² à¨¸à¨¼à©\81ਰà©\82 à¨¹à©\8bਣ à¨µà¨¾à¨²à©\80à¨\86à¨\82 à¨\95ਤਾਰਾà¨\82) â\80\99ਤà©\87 à¨¹à©\80 à¨\97਼à©\8cਰ à¨\95à©\80ਤਾ à¨\9cਾਵà©\87à¨\97ਾ
+ਲਾà¨\88ਨ à¨µà¨¿à¨\9a à¨ªà¨¹à¨¿à¨²à©\80 à¨\95à©\9cà©\80 à¨\97਼ਲਤ à¨«à¨¼à¨¾à¨\88ਲ à¨¦à©\80 à¨\95à©\9cà©\80 à¨¹à©\8bਣà©\80 à¨\9aਾਹà©\80ਦà©\80 à¨¹à©\88। à¨\89ਸ à¨²à¨¾à¨\88ਨ â\80\99à¨\9a à¨\85ੱà¨\97à©\87 à¨¦à¨¿à¨¤à©\80à¨\86à¨\82 à¨\95à©\9cà©\80à¨\86à¨\82 à¨¨à©\82à©° à¨\87ਤਰਾà¨\9c਼ਯà©\8bà¨\97 à¨®à©°à¨¨à¨¿à¨\86 à¨\9cਾਵà©\87à¨\97ਾ, à¨­à¨¾à¨µ à¨\89ਹ à¨¸à¨«à¨¼à©\87 à¨\9cਿਨà©\8dਹਾà¨\82 à¨µà¨¿à¨\9a à¨«à¨¼à¨¾à¨\88ਲ à¨\95ਿਸà©\87 à¨²à¨¾à¨\88ਨ à¨µà¨¿à¨\9a à¨¸à¨¥à¨¿à¨¤ à¨¹à©\8b à¨¸à¨\95ਦà©\80 à¨¹à©\88।',
 
 # Metadata
 'metadata' => 'ਮੇਟਾ ਡੈਟਾ',
-'metadata-help' => 'à¨\87ਸ à¨®à¨¿à¨¸à¨² à¨µà¨¿à¨\9a à¨µà¨¾à¨§à©\82 à¨\9cਾਨà¨\95ਾਰà©\80à¨\86à¨\82 à¨¹à¨¨ , à¨\9cà©\8b à¨¸à¨¼à¨¾à¨\87ਦ à¨\89ਸ à¨\95à©\88ਮਰà©\87 à¨¯à¨¾ à¨¸à¨\95à©\88ਨਰ à¨¦à©\80 à¨¦à©\87ਣ à¨¹à¨¨ à¨\9cà©\8bà¨\95ਿ à¨\87ਸ à¨®à¨¿à¨¸à¨² à¨¨à©\82à©° à¨¬à¨¨à¨¾à¨\89ਣ à¨²à¨\88 à¨µà¨°à¨¤à¨¿à¨\86 à¨\97ਿà¨\86 à¨¹à©\88।à¨\85à¨\97਼ਰ à¨\87ਹ à¨®à¨¿à¨¸à¨² à¨¬à¨¦à¨²à¨¾à¨\88 à¨\97à¨\88 à¨¹à©\88 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨\95à©\81à¨\9d à¨µà©\87ਰਵà©\87 à¨¬à¨¦à¨²à©\80 à¨®à¨¿à¨¸ਲ ਦਾ ਸਹੀ ਰੂਪਮਾਨ ਨਾ ਹੋਣ।',
+'metadata-help' => 'à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿à¨\9a à¨µà¨¾à¨§à©\82 à¨\9cਾਣà¨\95ਾਰà©\80à¨\86à¨\82 à¨¹à¨¨, à¨\9cà©\8b à¨¸à¨¼à¨¾à¨\87ਦ à¨\89ਸ à¨\95à©\88ਮਰà©\87 à¨\9cਾà¨\82 à¨¸à¨\95à©\88ਨਰ à¨¦à©\80 à¨¦à©\87ਣ à¨¹à¨¨ à¨\9cà©\8b à¨\87ਸਨà©\82à©° à¨¬à¨£à¨¾à¨\89ਣ à¨²à¨\88 à¨µà¨°à¨¤à¨¿à¨\86 à¨\97ਿà¨\86। à¨\9cà©\87 à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿à¨\9a à¨\95à©\8bà¨\88 à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨\95à©\80ਤà©\80 à¨\97à¨\88 à¨¹à©\88 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨\95à©\81à¨\9d à¨µà©\87ਰਵà©\87 à¨¬à¨¦à¨²à©\80 à¨«à¨¼à¨¾à¨\88ਲ ਦਾ ਸਹੀ ਰੂਪਮਾਨ ਨਾ ਹੋਣ।',
 'metadata-fields' => 'ਮੈਟਾਡੈਟਾ ਸੂਚੀ ਪਟ ਨੂੰ ਛੋਟਾ ਕਰਣ ਨਾਲ ਇਸ ਸੁਨੇਹੇ ਵਿਚ ਸੂਚੀਬੱਧ ਫ਼ੀਲਡ ਮੂਰਤ ਦੇ ਦ੍ਰਿਸ਼ ਵਿਚ ਸ਼ਾਮਲ ਕੀਤੇ ਜਾਣਗੇ।ਬਾਕੀ ਫ਼ੀਲਡਾਂ ਨੂੰ ਛਿਪਾਇਆ ਜਾਏਗਾ।',
 
 # EXIF tags
@@ -1301,18 +1317,30 @@ to upload files.',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1 title was|$1 titles were}} ਹਟਾਓ:',
 
 # Watchlist editing tools
+'watchlisttools-view' => 'ਮੌਕੇ ਮੁਤਾਬਕ ਤਬਦੀਲੀਆਂ ਵੇਖੋ',
 'watchlisttools-edit' => 'ਵਾਚਲਿਸਟ ਵੇਖੋ ਤੇ ਸੋਧੋ',
+'watchlisttools-raw' => 'ਕੱਚੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸੋਧੋ',
 
 # Special:Version
 'version' => 'ਵਰਜਨ',
 
 # Special:SpecialPages
-'specialpages' => 'à¨\96ਾਸ à¨ªà©\87à¨\9c',
+'specialpages' => 'à¨\96਼ਾਸ à¨¸à¨«à¨¼à©\87',
 'specialpages-group-login' => 'ਲਾਗ ਇਨ / ਅਕਾਊਂਟ ਬਣਾਓ',
 
 # Special:BlankPage
 'blankpage' => 'ਖ਼ਾਲੀ ਪੇਜ',
 
+# External image whitelist
+'external_image_whitelist' => " #ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ <pre>
+#ਹੇਠਾਂ ਓਹੀ ਐਕਸਪ੍ਰੈਸ਼ਨ ਪਾਓ (ਜਿਹੜਾ ਹਿੱਸਾ // ਦੇ ਵਿਚਾਲੇ ਹੈ)
+#ਇਹ ਬਾਹਰੀ ਤਸਵੀਰਾਂ ਦੇ URLs (ਹੌਟਲਿੰਕਡ) ਨਾਲ਼ ਮਿਲਣਗੀਆਂ
+#ਜਿਹੜੀਆਂ ਮਿਲਣਗੀਆਂ ਓਹ ਬਤੌਰ ਤਸਵੀਰਾਂ ਦਿੱਸਣਗੀਆਂ ਨਹੀਂ ਤਾਂ ਤਸਵੀਰ ਦਾ ਸਿਰਫ਼ ਲਿੰਕ ਨਜ਼ਰ ਆਵੇਗਾ
+#'#' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੀਆਂ ਲਾਈਨਾਂ ਟਿੱਪਣੀਆਂ ਵਾਂਗ ਲਈਆਂ ਜਾਂਦੀਆਂ ਹਨ
+#ਇਹ ਕੇਸ-ਇਨਸੈਂਸਟਿਵ ਹੈ
+
+#ਸਾਰੇ ਰੈਜੈਕਸ ਫ਼ਰੈਗਮੈਂਟ ਇਸ ਲਾਈਨ ਤੋਂ ਉੱਪਰ ਪਾਓ। ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ </pre>",
+
 # Special:Tags
 'tag-filter' => '[[Special:Tags|ਚਿਟ]] ਛਾਨਣੀ:',
 
index eda037f..7fb295b 100644 (file)
@@ -47,6 +47,7 @@
  * @author Raylton P. Sousa
  * @author Rodrigo Calanca Nishino
  * @author Sir Lestaty de Lioncourt
+ * @author Teles
  * @author TheGabrielZaum
  * @author Urhixidur
  * @author Vuln
@@ -835,7 +836,7 @@ Você pode já ter alterado com sucesso a sua senha, ou solicitado uma nova senh
 'passwordreset' => 'Redefinir senha',
 'passwordreset-text' => 'Preencha este formulário para recuperar os dados da sua conta pelo e-mail.',
 'passwordreset-legend' => 'Reiniciar a senha',
-'passwordreset-disabled' => 'Redefinições de senha foram desabilitadas neste wiki.',
+'passwordreset-disabled' => 'Redefinições de senha foram desabilitadas nesta wiki.',
 'passwordreset-pretext' => '{{PLURAL:$1||Introduza um dos dados abaixo}}',
 'passwordreset-username' => 'Nome de usuário:',
 'passwordreset-domain' => 'Domínio:',
@@ -936,7 +937,7 @@ O motivo apresentado foi:
 
 Você pode contatar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.
 
-Note que não poderá utilizar a funcionalidade "Contatar usuário" se não possuir uma conta neste wiki ({{SITENAME}}) com um endereço de \'\'e-mail\'\' válido indicado nas suas [[Special:Preferences|preferências de usuário]] ou se tiver sido bloqueado de utilizar tal recurso.
+Note que não poderá utilizar a funcionalidade "Contatar usuário" se não possuir uma conta nesta wiki ({{SITENAME}}) com um endereço de \'\'e-mail\'\' válido indicado nas suas [[Special:Preferences|preferências de usuário]] ou se tiver sido bloqueado de utilizar tal recurso.
 
 Seu endereço de IP no momento é $3 e sua ID de bloqueio é #$5.
 Por favor, inclua tais dados em qualquer tentativa de esclarecimentos que for realizar.',
@@ -1153,15 +1154,15 @@ Você pode visualizá-la; podem existir mais detalhes no [{{fullurl:{{#Special:L
 Poderá haver detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de eliminação].",
 'rev-suppressed-no-diff' => "Você não pode ver esta comparação porque uma das revisões foi '''eliminada'''.",
 'rev-deleted-unhide-diff' => "Uma das revisões desta diferença entre revisões foi '''eliminada'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].
+Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de eliminações].
 Pode mesmo assim [$1 ver estas diferenças] se deseja prosseguir.",
 'rev-suppressed-unhide-diff' => "Uma das revisões desta diferença entre revisões foi '''suprimida'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].
+Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registro de supressões].
 Pode mesmo assim [$1 ver estas diferenças] se deseja prosseguir.",
 'rev-deleted-diff-view' => "Uma das revisões desta diferença entre revisões foi '''eliminada'''.
-Você pode ver a diferença entre revisões; podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].",
+Você pode ver a diferença entre revisões; podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de eliminações].",
 'rev-suppressed-diff-view' => "Uma das revisões desta comparação foi '''suprimida''''.
-Você pode ver esta comparação; detalhes podem ser encontradas no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registro de supressão].",
+Você pode ver esta comparação; detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registro de supressão].",
 'rev-delundel' => 'exibir/ocultar',
 'rev-showdeleted' => 'exibir',
 'revisiondelete' => 'Eliminar/restaurar edições',
@@ -1178,7 +1179,7 @@ Você pode ver esta comparação; detalhes podem ser encontradas no [{{fullurl:{
 'logdelete-selected' => "'''{{PLURAL:$1|Evento de registro selecionado|Eventos de registro selecionados}}:'''",
 'revdelete-text' => "'''Revisões eliminadas e eventos continuarão aparecendo no histórico da página e nos registros, apesar de o seu conteúdo textual estar inacessível ao público.'''
 Outros administradores no {{SITENAME}} continuarão podendo acessar ao conteúdo escondido e restaurá-lo através desta mesma ''interface'', a menos que uma restrição adicional seja definida.",
-'revdelete-confirm' => 'Por favor confirme que pretende executar esta acção, que compreende as suas consequências e que o faz em concordância com as [[{{MediaWiki:Policy-url}}|políticas e recomendações]].',
+'revdelete-confirm' => 'Por favor confirme que pretende executar esta ação, que compreende as suas consequências e que o faz em concordância com as [[{{MediaWiki:Policy-url}}|políticas e recomendações]].',
 'revdelete-suppress-text' => "A supressão deverá ser usada '''apenas''' para os seguintes casos:
 * Informação pessoal inapropriada
 *: ''endereços de domicílio e números de telefone, números da segurança social, etc''",
@@ -1216,7 +1217,7 @@ Você não tem acesso a ele.',
 'revdelete-modify-missing' => 'Erro ao modificar o item ID $1: está faltando na base de dados!',
 'revdelete-no-change' => "'''Aviso:''' o item datado de $2, $1 já possui as configurações de visualização requeridas.",
 'revdelete-concurrent-change' => 'Erro ao modificar o item datado de $2, $1: o seu estado parece ter sido alterado por outra pessoa enquanto você tentava modificá-lo.
-Por favor, verifique os registos.',
+Por favor, verifique os registros.',
 'revdelete-only-restricted' => 'Erro ao ocultar o item de $2 às $1: você não pode impedir que itens sejam visualizados por administradores sem também selecionar uma das outras opções de visibilidade.',
 'revdelete-reason-dropdown' => '*Motivos comuns para eliminação
 ** Violação de direitos autorais
@@ -1291,8 +1292,8 @@ Certifique-se de que tal alteração manterá a continuidade das ações.',
 'shown-title' => 'Mostrar $1 {{PLURAL:$1|resultado|resultados}} por página',
 'viewprevnext' => 'Ver ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Opções de pesquisa',
-'searchmenu-exists' => "'''Há uma página com o nome \"[[:\$1]]\" neste wiki'''",
-'searchmenu-new' => "'''Criar a página \"[[:\$1|\$1]]\" neste wiki!'''",
+'searchmenu-exists' => "'''Há uma página com o nome \"[[:\$1]]\" nesta wiki'''",
+'searchmenu-new' => "'''Criar a página \"[[:\$1|\$1]]\" nesta wiki!'''",
 'searchhelp-url' => 'Help:Conteúdos',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Navegue pelas páginas com este prefixo]]',
 'searchprofile-articles' => 'Páginas de conteúdo',
@@ -1391,7 +1392,7 @@ Note que os índices do sistema de busca externo poderão conter referências de
 'recentchangesdays' => 'Dias a serem exibidos nas Mudanças recentes:',
 'recentchangesdays-max' => '(máximo: $1 {{PLURAL:$1|dia|dias}})',
 'recentchangescount' => 'Número de edições a serem exibidas por padrão:',
-'prefs-help-recentchangescount' => 'Isto inclui mudanças recentes, histórico de páginas e registos.',
+'prefs-help-recentchangescount' => 'Isto inclui mudanças recentes, histórico de páginas e registros.',
 'prefs-help-watchlist-token' => "O preenchimento deste campo com uma senha secreta irá gerar um ''feed'' RSS para a sua lista de páginas vigiadas.
 Qualquer um que conheça a senha deste campo será capaz de ler sua lista de páginas vigiadas, então escolha um valor seguro.
 Eis um valor gerado aleatoriamente que você pode usar: $1",
index f9f7939..29f3be1 100644 (file)
@@ -500,7 +500,7 @@ For explanation of 'lock' see [http://en.wikipedia.org/wiki/Lock_%28computer_sci
 {{Identical|Copyright}}',
 'currentevents' => 'Standard link in the sidebar, for news. See also {{msg|currentevents-url}} for the link url.',
 'currentevents-url' => "Target page of ''{{Mediawiki:currentevents}}'' in the sidebar. See also {{msg|currentevents}}.
-{{doc-important|Do not translate <tt>Project:</tt> part.}}",
+{{doc-important|Do not translate the \"<tt>Project:</tt>\" part.}}",
 'disclaimers' => 'Used as display name for the link to [[{{MediaWiki:Disclaimerpage}}]] shown at the bottom of every page on the wiki. Example [[{{MediaWiki:Disclaimerpage}}|{{MediaWiki:Disclaimers}}]].',
 'disclaimerpage' => 'Used as page for that contains the site disclaimer. Used at the bottom of every page on the wiki. Example: [[{{MediaWiki:Disclaimerpage}}|{{MediaWiki:Disclaimers}}]].
 {{doc-important|Do not change the "<tt>Project:</tt>" part.}}',
@@ -717,6 +717,7 @@ $1 is a filename, I think.',
 'remembermypassword' => 'A check box in [[Special:UserLogin]]
 
 {{Identical|Remember my login on this computer}}',
+'password-change-forbidden' => 'Error message shown when an external authentication source does not allow the password to be changed.',
 'externaldberror' => 'This message is thrown when a valid attempt to change the wiki password for a user fails because of a database error or an error from an external system.',
 'login' => "Shown as the caption of the button at [[Special:UserLogin]], and also to anonymous users in the upper right corner of the page when they can't create an account (otherwise the message {{msg|nav-login-createaccount}} is shown there).
 
@@ -838,10 +839,8 @@ Used on [[Special:ResetPass]]',
 {{Identical|Reset password}}',
 'passwordreset-text' => 'Text on [[Special:PasswordReset]]',
 'passwordreset-legend' => '{{Identical|Reset password}}',
-'passwordreset-pretext' => 'These instructions are shown on the password reset dialogue, which can, in principle, take the user\'s email address as well as, or instead of, their username. This text displays above one or more fields, at least one of which needs to be completed, and the message does not know which routes are available, so it needs to refer to some vague noun rather than specifically "username". 
-"One of the pieces of data" means "an info"/"a datum" (probably to be translatea with a singular noun in your language if available).
-
-Parameters:
+'passwordreset-pretext' => 'These instructions are shown on the password reset dialogue, which can, in principle, take the user\'s email address as well as, or instead of, their username. This text displays above one or more fields, at least one of which needs to be completed, and the message does not know which routes are available, so it needs to refer to some vague noun rather than specifically "username".
+"One of the pieces of data" means "an info"/"a datum" (probably to be translatea with a singular noun in your language if available). Parameters:
 * $1 is the number of password reset routes. This is never 1, but always two or more. Thus, the first plural option is empty in English.',
 'passwordreset-username' => '{{Identical|Username}}',
 'passwordreset-domain' => 'A domain like used in Domain Name System (DNS) or more specifically like a domain component in the Lightweight Directory Access Protocol (LDAP)',
@@ -862,9 +861,9 @@ Parameters:
 * $2 - message {{msg-mw|passwordreset-emailelement|notext=1}} repeated $3 times
 * $3 - the number of repetitions in $2
 * $4 - base URL of the wiki',
-'passwordreset-emailelement' => "This is a body of a reminder email to allow them into the system with a new password.
-$1 will be the user's login name.
-$2 will be the temporary password given by the system.",
+'passwordreset-emailelement' => "This is a body of a reminder email to allow them into the system with a new password. Parameters:
+* $1 will be the user's login name. This parameter can be used for GENDER.
+$2 will be the temporary password given by the system.",
 'passwordreset-emailerror-capture' => 'Error message displayed when sending an e-mail fails. Parameters:
 * $1 is the name of a user who was supposed to get the e-mail.',
 
@@ -984,6 +983,11 @@ Parameters:
 
 See also {{msg-mw|Noarticletext-nopermission}}.',
 'noarticletext-nopermission' => 'See also {{msg-mw|Noarticletext}}.',
+'missing-revision' => 'Text displayed when the requested revision does not exist using a permalink.
+
+Example: [http://translatewiki.net/w/i.php?title=Project:News&oldid=9999999 Permalink with invalid revision#]
+
+* $1 is the ID of the missing revision',
 'userpage-userdoesnotexist' => 'Error message displayed when trying to edit or create a page or a subpage that belongs to a user who is not registered on the wiki. Parameters:
 * $1 is a possible username that has not been registered.',
 'userpage-userdoesnotexist-view' => 'Shown in user pages of non existing users. See for example [http://translatewiki.net/wiki/User:Foo User:Foo]. Parameters:
@@ -1248,7 +1252,9 @@ Parameters:
 [[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]',
 
 # Suppression log
-'suppressionlog' => 'Title of the suppression log. Shown in the drop down menu at [[Special:log]] and as header of [[Special:log/suppress]].',
+'suppressionlog' => '{{doc-logpage}}
+
+Title of the suppression log. Shown in the drop down menu at [[Special:log]] and as header of [[Special:log/suppress]].',
 'suppressionlogtext' => 'Description text of the suppression log. Shown at top of [[Special:log/suppress]].',
 
 # History merging
@@ -1272,7 +1278,8 @@ Parameters:
 * $6 is a revision comment',
 
 # Merge log
-'mergelog' => 'This is the name of a log of merge actions done on [[Special:MergeHistory]]. This special page and this log is not enabled by default.',
+'mergelog' => '{{doc-logpage}}
+This is the name of a log of merge actions done on [[Special:MergeHistory]]. This special page and this log is not enabled by default.',
 'pagemerge-logentry' => "This log message is used in a merge log entry.
 
 *Parameter $1 is the page name of the source of the content to be merged.
@@ -1304,6 +1311,12 @@ This message has sometimes a tooltip {{msg-mw|tooltip-undo}}',
 'diff-multi-manyusers' => "This message appears in the revision history of a page when comparing two versions which aren't consecutive, and the intermediate revisions have been edited by more than 100 users. Parameters:
 * $1 is the number of revisions, will always be 101 or more.
 * $2 is the number of users that were found, which was limited at 100.",
+'difference-missing-revision' => 'Text displayed when the requested revision does not exist using a diff link.
+
+Example: [http://translatewiki.net/w/i.php?title=Project:News&diff=426850&oldid=99999999 Diff with invalid revision#]
+
+* $1 is the list of missing revisions IDs
+* $2 is the number of items in $1',
 
 # Search results
 'searchresults' => '{{Identical|Search results}}',
@@ -1749,7 +1762,8 @@ The rate limits have no effect on the groups that have this right. Rate limits i
 'right-passwordreset' => '{{doc-right|passwordreset}}',
 
 # User rights log
-'rightslog' => 'In [[Special:Log]]',
+'rightslog' => '{{doc-logpage}}
+In [[Special:Log]]',
 'rightslogtext' => 'Text in [[Special:Log/rights]].',
 'rightslogentry' => 'This message is displayed in the [[Special:Log/rights|User Rights Log]] when a bureaucrat changes the user groups for a user.
 
@@ -1898,7 +1912,8 @@ Text displayed when uploading a file using [[Special:Upload]].",
 'upload-permitted' => 'Used in [[Special:Upload]].',
 'upload-preferred' => 'Used in [[Special:Upload]].',
 'upload-prohibited' => 'Used in [[Special:Upload]].',
-'uploadlogpage' => 'Page title of [[Special:Log/upload]].',
+'uploadlogpage' => '{{doc-logpage}}
+Page title of [[Special:Log/upload]].',
 'filename' => '{{Identical|Filename}}',
 'filedesc' => '{{Identical|Summary}}',
 'fileuploadsummary' => '{{Identical|Summary}}',
@@ -2074,7 +2089,7 @@ Used on [[Special:UploadWizard]].',
 'http-invalid-scheme' => 'The message appears in the Mediawiki code as follows:
 
  if ( $this->parsedUrl[\'scheme\'] != \'http\' ) {
-    $this->status->fatal( \'http-invalid-scheme\', $this->parsedUrl[\'scheme\'] );
+       $this->status->fatal( \'http-invalid-scheme\', $this->parsedUrl[\'scheme\'] );
  }
 
 Siebrand think this has to do with allowing MediaWiki to fetch remote URLs, and in that not allowing anything but "http://" request. So if this for example is "irc://" or "https://", $1 would be "irc" or "https" respectively.
@@ -2300,7 +2315,7 @@ Possible alternatives to the word 'content' are 'subject matter' or 'wiki subjec
 
 * '''Note:''' Do not change the link [[MediaWiki:Disambiguationspage]], even because it is listed as problematic. Be sure the \"D\" is in uppercase, so not \"d\".
 
-* '''Background information:''' Beyond telling about links going to disambiguation pages, that they are generally bad, it should explain which pages in the article namespace are seen as diambiguations: [[MediaWiki:Disambiguationspage]] usually holds a list of diambiguation templates of the local wiki. Pages linking to one of them (by transclusion) will count as disambiguation pages. Pages linking to these disambiguation pages, instead to the disambiguated article itself, are listed on [[:Special:Disambiguations]].",
+* '''Background information:''' Beyond telling about links going to disambiguation pages, that they are generally bad, it should explain which pages in the article namespace are seen as disambiguations: [[MediaWiki:Disambiguationspage]] usually holds a list of disambiguation templates of the local wiki. Pages linking to one of them (by transclusion) will count as disambiguation pages. Pages linking to these disambiguation pages, instead to the disambiguated article itself, are listed on [[:Special:Disambiguations]].",
 
 'doubleredirects' => 'Name of [[Special:DoubleRedirects]] displayed in [[Special:SpecialPages]]',
 'doubleredirectstext' => 'Shown on top of [[Special:Doubleredirects]]',
@@ -2412,7 +2427,8 @@ The title is {{msg-mw|nopagetitle}}.',
 'specialloguserlabel' => 'Used in [[Special:Log]] as a label for an input field with which the log can be filtered for entries describing actions \'\'performed\'\' by the specified user.  "Carried out" and "done" are possible alternatives for "performed".',
 'speciallogtitlelabel' => 'Used in [[Special:Log]] as a label for an input field with which the log can be filtered.  This filter selects for pages or users on which a log action was performed.',
 'log' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'all-logs-page' => 'Title of [[Special:Log]].',
+'all-logs-page' => '{{doc-logpage}}
+Title of [[Special:Log]].',
 'alllogstext' => 'Header of [[Special:Log]]',
 'log-title-wildcard' => '* Appears in: [[Special:Log]]
 * Description: A check box to enable prefix search option',
@@ -2514,7 +2530,9 @@ You can apparently use 'URL' instead of 'hostname'.",
 'activeusers-noresult' => 'identical with {{msg-mw|listusers-noresult}}',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Part of the "Newuserlog" extension. It is both the title of [[Special:Log/newusers]] and the link you can see in [[Special:RecentChanges]].',
+'newuserlogpage' => '{{doc-logpage}}
+
+Part of the "Newuserlog" extension. It is both the title of [[Special:Log/newusers]] and the link you can see in [[Special:RecentChanges]].',
 'newuserlogpagetext' => 'Part of the "Newuserlog" extension. It is the description you can see on [[Special:Log/newusers]].',
 
 # Special:ListGroupRights
@@ -2674,7 +2692,8 @@ $1 is the <b>approximate</b> number of revisions that the page has, the message
 'deletedtext' => 'Parameters:
 * $1 is a page that was deleted
 * $2 is {{msg-mw|deletionlog}}',
-'dellogpage' => 'The name of the deletion log. Used as heading on [[Special:Log/delete]] and in the drop down menu for selecting logs on [[Special:Log]].
+'dellogpage' => '{{doc-logpage}}
+The name of the deletion log. Used as heading on [[Special:Log/delete]] and in the drop down menu for selecting logs on [[Special:Log]].
 
 {{Identical|Deletion log}}',
 'dellogpagetext' => 'Text in [[Special:Log/delete]].',
@@ -2698,9 +2717,11 @@ $1 is the <b>approximate</b> number of revisions that the page has, the message
 'rollback_short' => '{{Identical|Rollback}}',
 'rollbacklink' => '{{Identical|Rollback}}
 This message has a tooltip {{msg-mw|tooltip-rollback}}',
-'rollbacklinkcount' => '* $1: the number of edit that will be rollbacked
-If $1 is over the value of $wgShowRollbackEditCount (default: 10) [[MediaWiki:Rollbacklinkcount-morethan/en|rollbacklinkcount-morethan]] is used',
-'rollbacklinkcount-morethan' => 'Similar to [[MediaWiki:Rollbacklinkcount/en|rollbacklinkcount]] but with prefix more than',
+'rollbacklinkcount' => 'Text of the rollback link showing the number of edits to be rolled back. See also {{msg-mw|rollbacklink}}.
+* $1: the number of edits that will be rollbacked. If $1 is over the value of $wgShowRollbackEditCount (default: 10) {{msg-mw|rollbacklinkcount-morethan}} is used.',
+'rollbacklinkcount-morethan' => 'Text of the rollback link when a greater number of edits is to be rolled back. See also {{msg-mw|rollbacklink}}.
+
+When the number of edits rolled back is smaller than [[mw:Manual:$wgShowRollbackEditCount|$wgShowRollbackEditCount]], {{msg-mw|rollbacklinkcount}} is used instead.',
 'rollbackfailed' => '{{Identical|Rollback}}',
 'cantrollback' => '{{Identical|Revert}}
 {{Identical|Rollback}}',
@@ -2724,7 +2745,8 @@ In other cases the message {{msg-mw|revertpage}} is used.',
 {{Identical|Rollback}}',
 
 # Protect
-'protectlogpage' => 'Title of [[Special:Log/protect]].',
+'protectlogpage' => '{{doc-logpage}}
+Title of [[Special:Log/protect]].',
 'protectlogtext' => 'Text in [[Special:Log/protect]].',
 'protectedarticle' => 'Text describing an action on [[Special:Log]]. $1 is a page title.',
 'modifiedarticleprotection' => 'Text describing an action on [[Special:Log]]. $1 is a page title.',
@@ -2969,6 +2991,7 @@ Example line:
 'ipbotherreason' => '{{Identical|Other/additional reason}}',
 'ipbhidename' => 'This is the label for a checkbox in the user block form on [[Special:Block]].',
 'ipbwatchuser' => 'This is an option on [[Special:BlockIP]] to watch the user page and talk page of the blocked user',
+'ipb-disableusertalk' => '{{doc-singularthey}}',
 'ipb-change-block' => 'Confirmation checkbox required for blocks that would override an earlier block. Appears together with {{msg|ipb-needreblock}}.',
 'badipaddress' => 'An error message shown when one entered an invalid IP address in blocking page.',
 'blockipsuccesstext' => '<nowiki>{{</nowiki>[[Gender|GENDER]]<nowiki>}}</nowiki> is supported.',
@@ -3023,7 +3046,9 @@ Usage:
 'emaillink' => 'Used as display name for a link to send an e-mail to a user in the user tool links. Example: "(Talk | contribs | block | send e-mail)".
 
 {{Identical|E-mail}}',
-'blocklogpage' => "The page name of [[Special:Log/block]]. Also appears in the drop down menu of [[Special:Log]] pages and in the action links of Special:Contributions/''Username'' pages (e.g. \"For Somebody (talk | block log | logs)\").
+'blocklogpage' => "{{doc-logpage}}
+
+The page name of [[Special:Log/block]]. Also appears in the drop down menu of [[Special:Log]] pages and in the action links of Special:Contributions/''Username'' pages (e.g. \"For Somebody (talk | block log | logs)\").
 
 {{Identical|Block log}}",
 'blocklog-showlog' => 'Parameters:
@@ -3051,6 +3076,7 @@ See also {{msg-mw|Blocklistline}}.',
 'ipb_already_blocked' => '{{Identical|$1 is already blocked}}',
 'ipb-otherblocks-header' => '[[File:Special.Block with other blocks from GlobalBlocking and TorBlocks.png|thumb|Example]]
 Used on [[Special:Block]] as header for other blocks, i.e. from GlobalBlocking or TorBlocks',
+'unblock-hideuser' => '{{doc-singularthey}}',
 'blockme' => 'The page title of [[Special:Blockme]], a feature which is disabled by default.',
 'proxyblocksuccess' => '{{Identical|Done}}',
 'sorbs' => '{{optional}}',
@@ -3110,7 +3136,8 @@ See also {{msg-mw|Movepagetext-noredirectfixer|notext=1}}',
 'move-subpages' => 'The text of an option on the special page [[Special:MovePage|MovePage]]. If this option is ticked, any subpages will be moved with the main page to a new title.',
 'move-talk-subpages' => 'The text of an option on the special page [[Special:MovePage|MovePage]]. If this option is ticked, any talk subpages will be moved with the talk page to a new title.',
 'movepage-max-pages' => 'PROBABLY (A GUESS): when moving a page, you can select an option of moving its subpages, but there is a maximum that can be moved automatically.',
-'movelogpage' => 'Title of [[Special:Log/move]]. Used as heading on that page, and in the dropdown menu on log pages.',
+'movelogpage' => '{{doc-logpage}}
+Title of [[Special:Log/move]]. Used as heading on that page, and in the dropdown menu on log pages.',
 'movelogpagetext' => "Text on the special page 'Move log'.",
 'movesubpage' => "This is a section header on [[Special:MovePage]], below is a list of subpages.
 Parameters:
@@ -3212,7 +3239,7 @@ See also:
 * {{msg-mw|import-error-edit}}',
 
 # Import log
-'importlogpage' => '',
+'importlogpage' => '{{doc-logpage}}',
 'importlogpagetext' => 'This text appears at the top of the [//translatewiki.net/w/i.php?title=Special:Log&type=import import log] special page.',
 'import-logentry-upload' => 'This is the text of an entry in the Import log (and Recent Changes), after hour (and date, only in the Import log) and sysop name:
 * $1 is the name of the imported file',
@@ -3428,7 +3455,7 @@ See also {{msg-mw|Anonuser}} and {{msg-mw|Siteusers}}.',
 'markedaspatrolledtext' => '{{Identical|Markedaspatrolled}}',
 
 # Patrol log
-'patrol-log-page' => 'Name of log.',
+'patrol-log-page' => '{{doc-logpage}}',
 'patrol-log-header' => 'Text that appears above the log entries on the [[Special:log|patrol log]].',
 'log-show-hide-patrol' => '* $1 is one of {{msg|show}} or {{msg|hide}}',
 
index 97728b3..c44bdb7 100644 (file)
@@ -2045,9 +2045,9 @@ Lista tipurilor MIME recunoscute de MediaWiki poate fi găsită la [http://svn.w
 
 'disambiguations' => 'Pagini care trimit către pagini de dezambiguizare',
 'disambiguationspage' => 'Template:Dezambiguizare',
-'disambiguations-text' => "Paginile următoare conțin legături către o '''pagină de dezambiguizare'''.
-În locul acesteia ar trebui să conțină legături către un articol.<br />
-O pagină este considerată o pagină de dezambiguizare dacă folosește formate care apar la [[MediaWiki:Disambiguationspage]]",
+'disambiguations-text' => "Paginile următoare conțin cel puțin o legătură către o '''pagină de dezambiguizare'''.
+Acestea ar trebui să conțină legături către un articol mai potrivit.<br />
+O pagină este considerată o pagină de dezambiguizare dacă folosește formate care apar la [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Redirecționări duble',
 'doubleredirectstext' => 'Această listă conține pagini care redirecționează la alte pagini de redirecționare.
index 0eebd26..395eb88 100644 (file)
@@ -808,6 +808,7 @@ $2',
 'remembermypassword' => 'Помнить мою учётную запись на этом компьютере (не более $1 {{PLURAL:$1|дня|дней|дней}})',
 'securelogin-stick-https' => 'Продолжить подключение по HTTPS после входа',
 'yourdomainname' => 'Ваш домен:',
+'password-change-forbidden' => 'Вы не можете изменить пароль в этой вики.',
 'externaldberror' => 'Произошла ошибка при аутентификации с помощью внешней базы данных или у вас недостаточно прав для внесения изменений в свою внешнюю учётную запись.',
 'login' => 'Представиться системе',
 'nav-login-createaccount' => 'Представиться / зарегистрироваться',
@@ -2154,8 +2155,8 @@ $1',
 
 'disambiguations' => 'Страницы, ссылающиеся на страницы разрешения неоднозначности',
 'disambiguationspage' => 'Template:Неоднозначность',
-'disambiguations-text' => "Следующие страницы ссылаются на '''многозначные страницы'''.
-Вместо этого они, вероятно, должны указывать на соответствующую конкретную статью.<br />
+'disambiguations-text' => "Следующие страницы содержат по меньшей мере одну ссылку на '''многозначную страницу'''.
+Вместо этого они, вероятно, должны указывать на соответствующую конкретную страницу.<br />
 Страница считается многозначной, если на ней размещён шаблон, имя которого указано на странице [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Двойные перенаправления',
@@ -2501,6 +2502,8 @@ $UNWATCHURL
 'rollback' => 'Откатить изменения',
 'rollback_short' => 'Откат',
 'rollbacklink' => 'откатить',
+'rollbacklinkcount' => 'откатить $1 {{PLURAL:$1|правку|правки|правок}}',
+'rollbacklinkcount-morethan' => 'откатить больше, чем $1 {{PLURAL:$1|правку|правки|правок}}',
 'rollbackfailed' => 'Ошибка при совершении отката',
 'cantrollback' => 'Невозможно откатить изменения. Последний, кто вносил изменения, является единственным автором этой страницы.',
 'alreadyrolled' => 'Невозможно откатить последние изменения страницы «[[:$1]]», совершённые [[User:$2|$2]] ([[User talk:$2|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]),
index 0eaa66a..175171f 100644 (file)
@@ -686,6 +686,7 @@ $2',
 'remembermypassword' => 'अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमम् $1 {{PLURAL:$1|दिनम्|दिनानि}})',
 'securelogin-stick-https' => 'प्रवेशोपरान्तं एचटीटीपीएस(HTTPS) इत्यनेन सह संबद्धः तिष्ठतु।',
 'yourdomainname' => 'भवतः प्रक्षेत्रम्:',
+'password-change-forbidden' => 'अस्यां विक्यां निकुञ्चं परिवर्तयितुं न शक्नोति ।',
 'externaldberror' => 'तत्र प्रमाणीकरण समंकाधारे त्रुटिर्जाता, अथवा भवान् स्वकीयां बाह्य-लेखां अद्यतनीकर्तुं अनुमतिं न धारयति।',
 'login' => 'प्रविश्यताम्',
 'nav-login-createaccount' => 'प्रविश्यताम्/ सदस्यता प्राप्यताम्',
@@ -1741,7 +1742,7 @@ $1',
 सम्पर्कयतु एतम् [[Special:ListUsers/sysop|administrator]]',
 'upload-misc-error' => 'अज्ञातः उत्तारणदोषः ।',
 'upload-misc-error-text' => 'उत्तारणावसरे कश्चन अज्ञातदोषः उपगतः । 
-URL मान्यम् अभिगम्यं वेति परिशील्य पुनः यतताम् ।',
+URL मान्यम् अभिगम्यं वेति परिशील्य पुनः यतताम् ।[[Special:ListUsers/sysop|administrator]]',
 'upload-too-many-redirects' => 'URL अधिकपुनर्निदेशान् अन्तर्गतम् ।',
 'upload-unknown-size' => 'अज्ञात आकार',
 'upload-http-error' => 'कश्चन HTTP दोषः उपगतः $1',
@@ -1770,12 +1771,95 @@ URL मान्यम् अभिगम्यं वेति परिशी
 'backend-fail-connect' => '"$1" सङ्ग्राहागारन्ते सम्पर्कयितुं नैव शक्यते ।',
 'backend-fail-internal' => '"$1"सङ्ग्रहागारन्ते अज्ञातदोषः उपगतः ।',
 'backend-fail-contenttype' => '"$1"मध्ये सङ्ग्रहितुं सञ्चिकायाः प्रकारं निश्चिनोतुं नैव शक्यते ।',
+'backend-fail-batchsize' => '$1 संचिकायाः गणस्य निक्षेपावकाशः प्रदत्तः । {{PLURAL:$1|operation|operations}}; समयनिर्बन्धः $2 {{PLURAL:$2|operation|operations}}.',
+'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' => 'ZIP परिशीलनार्थम् उद्घाटनावसरे कश्चन दोषः सङ्गतः ।',
+'zip-wrong-format' => 'निश्चितसञ्चिका तु सञ्चिका ZIP नैव ।',
+'zip-bad' => 'ZIP सञ्चिका तु दूषिता अथवा अपठनीया अस्ति । 
+सुरक्षार्थं परिशीलयितुं  न शक्यते ।',
+'zip-unsupported' => 'एषा सञिका तु मीडियाविकिना अननुमोदिता ZIP सञ्चिका अस्ति ।
+सुरक्षर्थं सम्यक् परिशील्या न भवति ।',
+
+# Special:UploadStash
+'uploadstash' => 'राशीः उत्तारयतु ।',
+'uploadstash-summary' => 'एतत्पुटम् उत्तारितसञ्चिकानां सम्पर्कं साधयति । विक्याम् एतानि प्रकाशितानि न । योजकः उत्तारितवानपि एताः सञ्चिकाः अदृश्याः सन्ति ।',
+'uploadstash-clear' => 'राशीकृतसञ्चिकाः विशदयतु ।',
+'uploadstash-nofiles' => 'भवान् सञ्चिकाः न राशीकृतवान् ।',
+'uploadstash-badtoken' => 'प्रक्रियाचरणं सफलम् । किन्तु प्रायः ते सम्पादनाधिकारः विनष्टः । पुनः यतताम् ।',
+'uploadstash-errclear' => 'सञ्चिकविशदनं सफलम् ।',
+'uploadstash-refresh' => 'सञ्चिकावलीं संस्करोतु ।',
+'invalid-chunk-offset' => 'अमान्यं चङ्क् आफ्सेट्',
+
+# img_auth script messages
+'img-auth-accessdenied' => 'अभिगमनम् अपलपितम् ।',
+'img-auth-nopathinfo' => 'पथसूची विनष्टा ।
+ते वितारकः सूचनाः प्रेषयितुं संसिद्धः न ।
+एतत् CGI अवलम्बितं स्यात् अपि च img_auth अनुमोदनं न करोति ।
+See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
+'img-auth-notindir' => 'सुदृढितायाम् उत्तारणनिदेशिकायाम् अभ्यर्थितपथः नास्ति ।',
+'img-auth-badtitle' => '"$1"तः मान्यशीर्षिकां निर्मातुं न शक्यते ।',
+'img-auth-nologinnWL' => 'नामाभिलेखेन न प्रविष्टः अपिच $1 तु श्वेतावली न ।',
+'img-auth-nofile' => '"$1" इति सञ्चिका न वर्तते ।',
+'img-auth-isdir' => 'भवान् "$1"निदेशिकाम् अभिगन्तुं यतते ।
+सञ्चिकाभिगमनम् एव अनुमतम् ।',
+'img-auth-streaming' => '"$1"इत्यस्य प्रवाहिनी ।',
+'img-auth-public' => 'स्वायत्तविकितः सञ्चिकाः नेतुम् अयं कार्यक्रमः img_auth.php उपयुज्यते ।
+एषा विकिः सार्वजनिकविकिः इति  दृढिता । 
+वैकल्पिकसुरक्षार्थं img_auth.php अपलपितः । ।',
+'img-auth-noread' => '"$1"पठने योजकस्य अभिगमनं नास्ति ।',
+'img-auth-bad-query-string' => ' URL मध्ये अमान्यं प्रश्नतन्तुः अस्ति ।',
+
+# HTTP errors
+'http-invalid-url' => ' $1 इति अमान्यम् URL ।',
+'http-invalid-scheme' => '"$1"योजनायुक्तं URLs नानुमोदितानि ।',
+'http-request-error' => ' अज्ञातदोषात् HTTP अभ्यर्थनं निष्पलम् ।',
+'http-read-error' => 'HTTP पठनदोषः।',
+'http-timed-out' => 'HTTP अभ्यर्थनं कालातीतम् ।',
+'http-curl-error' => 'दोषाहरणस्य URL: $1',
+'http-host-unreachable' => 'URL प्राप्तुं न शक्यते ।',
+'http-bad-status' => 'HTTP : $1 $2अभ्यर्थने समस्या आसीत् ।',
+
+# Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
+'upload-curl-error6' => 'URL प्राप्तुं न शक्यते ।',
+'upload-curl-error6-text' => 'उपपन्नं URL न प्राप्नोति ।
+द्विटङ्कनेन URLअदोषत्वं क्षेत्रं च परिशीलयतु ।',
+'upload-curl-error28' => 'उत्तारणस्य समयातीतः ।',
+'upload-curl-error28-text' => 'जालक्षेत्रेण प्रतिस्पन्दितुं दीर्घकालः आश्रितः । 
+जालक्षेत्रस्य जीवितं परिशीलयतु । अथवा कञ्चित्कालान्तरेण प्रयतताम् । 
+भवान् न्यूनकार्यव्यस्तकाले प्रयत्नं करोतु ।',
 
 'license' => 'अनुमतिदानम्',
 'license-header' => 'अनुमतिदानम्',
+'nolicense' => 'चियनं नास्ति ।',
+'license-nopreview' => 'पूर्वावलोकनं न मिलति ।',
+'upload_source_url' => '(मान्यं, प्रचारात्मकाभिगमनयुतं URL)',
+'upload_source_file' => ' (ते सङ्गणकस्य सञ्चिका)',
 
 # Special:ListFiles
+'listfiles-summary' => 'एतद्विशेषपुटम् उत्तारितसञ्चिकाः प्रदर्शयति । 
+योजकेन शुद्धाः अतिनूतनं सञ्चिकाः केवलम् अत्र प्रदर्शयति ।',
+'listfiles_search_for' => 'माध्यमनामधेयार्थम् अन्विषतु ।',
 'imgfile' => 'संचिका',
+'listfiles' => 'सञ्चिकावली ।',
+'listfiles_thumb' => 'अंगुष्ठनखाकारम् ।',
 'listfiles_date' => 'दिनाङ्क',
 'listfiles_name' => 'नामन्',
 'listfiles_user' => 'योजक',
@@ -1787,119 +1871,360 @@ URL मान्यम् अभिगम्यं वेति परिशी
 'file-anchor-link' => 'सञ्चिका',
 'filehist' => 'सञ्चिकायाः इतिहासः',
 'filehist-help' => 'सञ्चिका तत्समये कीदृशी आसीदिति द्रष्टुं दिनांकः/समयः नुद्यताम् ।',
+'filehist-deleteall' => 'सर्वान् परिमर्जतु ।',
 'filehist-deleteone' => 'विलोप',
 'filehist-revert' => 'प्रतिनिवर्त्यताम्',
 'filehist-current' => 'सद्योजातम्',
 'filehist-datetime' => 'दिनाङ्कः/समयः',
 'filehist-thumb' => 'अंगुष्ठनखाकारम्',
 'filehist-thumbtext' => '$1 समये विद्यमत्याः आवृत्तेः अंगुष्ठनखाकारम्',
+'filehist-nothumb' => 'अङ्गुष्टनखाकारकं नाश्ति ।',
 'filehist-user' => 'योजकः',
 'filehist-dimensions' => 'आयामाः',
+'filehist-filesize' => 'सञ्चिकाकारः ।',
 'filehist-comment' => 'टिप्पणी',
+'filehist-missing' => 'सञ्चिका विनष्टा ।',
 'imagelinks' => 'संचिका यत्र उपयुक्ता',
 'linkstoimage' => '{{PLURAL:$1|अधोलिखितं पृष्ठं| अधोलिखितानि $1 पृष्ठाणि}} इदं संचिकां प्रति संबंधनं {{PLURAL:$1|करोति| कुर्वन्ति}}।',
+'linkstoimage-more' => '{{PLURAL:$1|$1}} तः अधिकपुटानि अस्यां सञ्चिकायां योज्यन्ते । 
+अधोनिदेशितसूची सञ्चिकाभिः योजनीयपुटानि पश्यति ।{{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठ}} 
+[[Special:WhatLinksHere/$2|पूर्णसूची]] अपि लभ्यते ।',
 'nolinkstoimage' => 'एतद चित्रात् न पृष्ठा सम्बद्धं करोन्ति।',
+'morelinkstoimage' => ' [[Special:WhatLinksHere/$1|more links]] मध्ये सञ्चिकामवलोकयतु ।',
+'linkstoimage-redirect' => '$1 (सञ्चिका पुनर्निदेशिता) $2',
+'duplicatesoffile' => 'अधो निदेशितसञ्चिका द्विप्रतिः । {{PLURAL:$1|}} विशेषविवरणार्थम् अत्र प्रविशतु । [[Special:FileDuplicateSearch/$2|more details]]',
 'sharedupload' => 'इयं संचिका $1 इत्यस्मादस्ति, एषा खलु अन्येष्वपि प्रकल्पेषु प्रयोक्तुं शक्यते।',
+'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' => 'विभक्तः कोशः ।',
 
 # File reversion
+'filerevert' => '$1 अनुवर्तताम् ।',
+'filerevert-legend' => 'सञ्चिकाम् अनुवर्तताम् ।',
+'filerevert-intro' => "भवान् '''[[Media:$1|$1]]''' इति सञ्चिकायाः  $4 इत्यवतरणं $3, $2 इति अनुवर्तमानः अस्ति ।",
 'filerevert-comment' => 'कारणम् :',
+'filerevert-defaultcomment' => '$2 इत्येनं $1 समयस्य अवतरणम् अनुवृत्तम् ।',
+'filerevert-submit' => 'अनुवर्तताम् ।',
+'filerevert-success' => "'''[[Media:$1|$1]]''' इत्येनं $4 $2 को $3 समयावतरणम् अनुवृत्तम् ।",
+'filerevert-badversion' => 'दत्तसमये सन्देशदायिका सञ्चिका प्राचीनावतरणं नास्ति ।',
 
 # File deletion
+'filedelete' => '$1 इत्येतत् अपमर्जतु ।',
+'filedelete-legend' => 'सञ्चिकाम् अपमर्जतु ।',
+'filedelete-intro' => "'''[[Media:$1|$1]]''' इति सञ्चिकायाः इतिहाससहितम् अपमर्जयन् अस्ति ।",
+'filedelete-intro-old' => "भवान्'''[[Media:$1|$1]]''' इत्यस्य [$4 $2 इत्येतयोः $3 कालस्य अवतरणम्] अपमार्जयन् अस्ति ।",
 'filedelete-comment' => 'कारणम् :',
 'filedelete-submit' => 'विलुप्यताम्',
+'filedelete-success' => "'''$1''' अपमर्जितम् ।",
+'filedelete-success-old' => "'''[[Media:$1|$1]]''' इत्यस्य $2 इत्येतत् $3 समयस्यावतरणम् अपमर्जितम् ।",
+'filedelete-nofile' => "'''$1''' न वर्तते ।",
+'filedelete-nofile-old' => "'''$1''' इत्यस्य भवता वर्णितविशेषतायुतम् अवतरणम् अत्र न वर्तते ।",
+'filedelete-otherreason' => 'अपरम्/अतिरिक्तं कारणम् :',
 'filedelete-reason-otherlist' => 'अन्य कारणम्',
+'filedelete-reason-dropdown' => '* अपमर्जनस्य सामान्यं कारणम् । 
+** कृतिस्वाम्यस्य उल्लङ्घनम् । 
+** प्रतिकृता सञ्चिका ।',
+'filedelete-edit-reasonlist' => 'अपमार्जनकारणानि सम्पादयतु ।',
+'filedelete-maintenance' => 'सञ्चिकानाम् अपमर्जनम् अनमपमर्जनं च निर्वहणकाले तात्कालिकतया निष्क्रियौ ।',
+'filedelete-maintenance-title' => 'सञ्चिकाम् अपमर्जितुं न शक्यते ।',
 
 # MIME search
+'mimesearch' => 'MIME अन्वेषणम् ।',
+'mimesearch-summary' => 'MIME-प्रकारानुसारं सञ्चिकान्वेषणार्थम् एतत्पुटम् उपयोक्तुं शाक्नोति । 
+इनपुट: सञ्चिकायाः प्रकारः/उपप्रकारः, उदाहरणम्. <tt>image/jpeg</tt>.',
+'mimetype' => 'MIME प्रकारः :',
 'download' => 'डाउनलोड',
 
+# Unwatched pages
+'unwatchedpages' => 'अनवलोकितपुटानि ।',
+
+# List redirects
+'listredirects' => 'चालितानाम् अवली ।',
+
+# Unused templates
+'unusedtemplates' => 'अनुपयुक्ताः प्राकृतयः ।',
+'unusedtemplatestext' => 'अस्मिन् पुटे {{ns:template}} नामस्थानयुतानि सर्वपुटानि अन्तर्गतानि । यानि अन्यपुटेषु न सन्ति । 
+अस्य अपमर्जनात् पूर्वं सञ्चिकायाः अन्यानुबन्धान् परिशीलयतु ।',
+'unusedtemplateswlh' => 'अन्यानुबन्धाः ।',
+
 # Random page
 'randompage' => 'यादृच्छिकपृष्ठम्',
+'randompage-nopages' => 'अधोनिदेशितनामस्थाने पुटानि न सन्ति । {{PLURAL:$2| एतन्नमस्थाने}} नास्ति : $1।',
+
+# Random redirect
+'randomredirect' => 'यादृच्छिकचालनम् ।',
+'randomredirect-nopages' => '$1नामस्थाने चालनानि न सन्ति ।',
 
 # Statistics
 'statistics' => 'स्थितिगणितम्',
+'statistics-header-pages' => 'पुटसाङ्ख्यिकाः ।',
+'statistics-header-edits' => 'सङ्ख्यिकाः सम्पादयतु ।',
+'statistics-header-views' => 'साङ्ख्यिकाः अवलोकयतु ।',
+'statistics-header-users' => 'योजकसाङ्ख्यिकाः ।',
+'statistics-header-hooks' => 'अन्यसाङ्ख्यिकाः ।',
+'statistics-articles' => 'आधेयपुटानि ।',
 'statistics-pages' => 'पृष्ठानि',
+'statistics-pages-desc' => 'अस्यां विक्यां तु सम्भाषाणपुटसहितानि अन्यसर्वपुटानि चालितानि ।',
 'statistics-files' => 'उद्भारितसञ्चिकाः',
+'statistics-edits' => '{{SITENAME}} व्यवस्थापनपर्यन्तं पुटसम्पादनानि ।',
+'statistics-edits-average' => 'प्रतिपुटं माध्यसम्पादनानि ।',
+'statistics-views-total' => 'अवलोकनयोगः ।',
+'statistics-views-total-desc' => 'असंवृत्तपुटानाम् अवलोकनानि । अपि च विशेषपुटानि नान्तर्गतानि ।',
+'statistics-views-peredit' => 'प्रतिसम्पादनम् अवलोकनम् ।',
+'statistics-users' => 'पञ्जीकृतः [[Special:ListUsers|योजकः]]',
 'statistics-users-active' => 'सक्रियाः सदस्याः',
+'statistics-users-active-desc' => 'गतेषु {{PLURAL:$1|day|$1 दिनेषु}} सक्रियाः योजकाः  ।',
+'statistics-mostpopular' => 'अत्यवलोकितपुटानि ।',
 
+'disambiguations' => 'द्वैधीभावरहितपुटानाम् अनुबन्धितपुटानि ।',
 'disambiguationspage' => 'Template:असन्दिग्धम्',
+'disambiguations-text' => 'अधो निदेशितपुटानि असन्धिग्धपुटेन अनुबन्धितानि । 
+एतानि यथार्थविषैः योजनीयानि । <br />
+यदि कोऽपि पुटेन प्रकृतिं प्रयोजयति यः  [[MediaWiki:Disambiguationspage]] इत्यनेन अनुबद्धः  ससन्दिग्धपुटम् इति उच्यते ।',
 
 'doubleredirects' => 'दुगुनी-अनुप्रेषिते',
-
+'doubleredirectstext' => 'एतत्पुटं तेषां पुटानां सूची अस्ति यानि अन्यपुनर्निदेशितपुटानि प्रति पुनरिदेशितानि सन्ति । 
+प्रत्येकं पङ्क्तिः प्रथमद्वितीयपुनर्निदेशम् अन्तर्गता । द्वितीयपुनर्निदेशः लक्ष्यं यत् वास्तवं लक्ष्यपुटं प्रथमं प्रदर्शितम् । 
+अपि च प्रथमपुनर्निदेशः वास्तवेन एतदेवलक्षितं स्यात् । <del>काटी गई</del> प्रविष्टयः परिहृताः ।',
+'double-redirect-fixed-move' => '[[$1]] इत्यस्य स्थानं परिवर्तितम् । 
+इदानीम् [[$2]] इत्यस्य दिशि पुनर्निदिष्टम् अस्ति ।',
+'double-redirect-fixed-maintenance' => '[[$1]] तः [[$2]] पुनर्निदेशद्वयं निश्चिनोति ।',
+'double-redirect-fixer' => 'पुनर्निदेशस्य बन्धकः ।',
+
+'brokenredirects' => 'भग्नपुनर्निदेशाः ।',
+'brokenredirectstext' => 'अधो दत्तपुनर्निदेशाः अवृत्तपुटैः सह अनुबन्दं रक्षन्ति ।',
 'brokenredirects-edit' => 'सम्पाद्यताम्',
 'brokenredirects-delete' => 'विलुप्यताम्',
 
+'withoutinterwiki' => 'भाषानुबन्धरिहातानि पुटानि ।',
+'withoutinterwiki-summary' => 'अधस्थपुटानि अन्यभाषावतरणैः अनुबन्धं न कुर्वन्ति ।',
 'withoutinterwiki-legend' => 'पूर्वोऽपपदम्',
 'withoutinterwiki-submit' => 'दर्श्यताम्',
 
+'fewestrevisions' => 'न्यूनतमालोकनयुक्तपुटानि ।',
+
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|बैट्|बैट्स्}}',
+'ncategories' => '{{PLURAL:$1|वर्गः|वर्गाः }}',
+'nlinks' => '$1 {{PLURAL:$1|अनुबन्धः|अनुबन्धाः}}',
 'nmembers' => '$1 {{PLURAL:$1|सदस्यः|सदस्याः}}',
+'nrevisions' => '$1 {{PLURAL:$1|पुनरावृत्तिः}}',
+'nviews' => '$1 {{PLURAL:$1|अनुबन्धः|अनुबन्धाः}}',
+'nimagelinks' => '$1 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।',
+'ntransclusions' => '$1 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।',
+'specialpage-empty' => 'अस्य वृत्तस्य परिणामः नास्ति ।',
+'lonelypages' => 'अनाथपुटानि ।',
+'lonelypagestext' => '{{SITENAME}} इत्यस्मिन् अधो निदेशितपुटानि नानुबद्धानि अथवा अन्तर्गतानि अन्यपुटेषु ।',
+'uncategorizedpages' => 'अवर्गीकृतपुटानि ।',
+'uncategorizedcategories' => 'अवर्गीकृताः वर्गाः ।',
+'uncategorizedimages' => 'अवर्गीकृताः सञ्चिकाः ।',
+'uncategorizedtemplates' => 'अवर्गीकृताः प्रकृतयः ।',
+'unusedcategories' => 'अनुपयुक्ताः वर्गाः ।',
+'unusedimages' => 'अनुपयुक्तानि पुटाणी ।',
+'popularpages' => 'प्रसिद्धानि पुटानि ।',
+'wantedcategories' => 'आवश्यकाः वर्गाः ।',
+'wantedpages' => 'आवश्यकपुटानि ।',
+'wantedpages-badtitle' => '$1 परिणामनिरूपणे अमान्यशीर्षकम् ।',
+'wantedfiles' => 'आवश्यकाः सञ्चिकाः ।',
+'wantedfiletext-cat' => 'अधो दत्तसञ्चिकाः उपयुक्ताः किन्तु न वर्तन्ते । बाह्यकोशानां सञ्चिकाः उपस्थिताः इति एताः सूच्यां स्युः । एतादृशः कोपि सदोषप्रवेशः<del> अवरुद्धः</del> भवति । अपि च यत्पुटं तादृश्याः अनुपस्थितसञ्चिकायाः प्रयोगं कुर्वन्ति तासं सूची  [[:$1]] मध्ये अस्ति ।',
+'wantedfiletext-nocat' => 'अधो दत्ताः सञ्चिकाः उपयुक्ताः किन्तु न वर्तन्ते । बाह्यकोशस्य सञ्चिकाः उपस्थिताः इति एताः सूच्यां स्युः । तदृशः कोऽपि सदोषप्रवेशः<del>struck out</del>. अत्र स्यात् ।',
+'wantedtemplates' => 'आवश्यकाः प्राकृतयः ।',
+'mostlinked' => 'अत्यनुबद्धानि पुटानि ।',
+'mostlinkedcategories' => 'वर्गैः सह अत्यनुबद्धाः ।',
+'mostlinkedtemplates' => 'प्राकृतिभिः अत्यनुबद्धाः ।',
+'mostcategories' => 'बहुवर्गयुक्तपुटानि ।',
+'mostimages' => 'अत्यनुबद्धानि पुटानि ।',
+'mostrevisions' => 'सर्वाधिकपुनरावृत्तियुक्तानि पुटानि ।',
 'prefixindex' => 'उपसर्गयुक्तानि सर्वाणि पृष्ठानि',
+'prefixindex-namespace' => 'उपसर्गैः युक्तानि सर्वपुटानि । ($1 नामस्थानम्)',
+'shortpages' => 'ह्रस्वपुटानि',
 'longpages' => 'दीर्घाणि पृष्ठानि',
+'deadendpages' => 'अन्तिमपुटानि ।',
+'deadendpagestext' => 'अधो निदेशितपुटानि {{SITENAME}} इत्यस्मिन्  अन्यपुटैः अनुबद्धानि न ।',
+'protectedpages' => 'सुरक्षितानि पुतानि ।',
+'protectedpages-indef' => 'अनिर्दिष्टसुरक्षा केवलम् ।',
+'protectedpages-cascade' => 'प्रपातसंरक्षणं केवलम् ।',
+'protectedpagestext' => 'अधोसूचितपुटानि चालनात् सम्पादनात् वा सुरक्षितानि ।',
+'protectedpagesempty' => 'अनेन विस्तारेण न किमपि पुटं सद्यः न सुरक्षितम् ।',
+'protectedtitles' => 'सुरक्षितानि शीर्षकानि ।',
+'protectedtitlestext' => 'अधो दत्तशीर्षकाणि सर्जनात् रक्षितानि ।',
+'protectedtitlesempty' => 'एतैः विस्तारैः न किमपि शीर्षकं सद्यः परिरक्षितानि ।',
 'listusers' => 'योजक सूचि',
+'listusers-editsonly' => 'केवलं सम्पादनसहितयोजकान् दर्शयतु ।',
+'listusers-creationsort' => 'सर्जनदिनाङ्कैः वर्गीकरोतु ।',
+'usereditcount' => '$1 {{PLURAL:$1|दिनम्|दिनानि}}',
 'usercreated' => '$1 दिने $2 समये रचितम् योजकनाम $3',
 'newpages' => 'नवीनपृष्ठम्',
 'newpages-username' => 'योजकनामन्:',
 'ancientpages' => 'प्राचीनतमानि पृष्ठानि',
 'move' => 'चाल्यताम्',
 'movethispage' => 'इदं पृष्ठं चाल्यताम्',
+'unusedimagestext' => 'अधो दत्तसञ्चिकाः सन्ति किन्तु कस्मिंश्चिदपि पुटे न न्यस्ताः ।',
+'unusedcategoriestext' => 'निम्नलिखितवर्गाः सन्ति तथापि अन्यपुटं वर्गः वा न उपयुङ्क्ते ।',
+'notargettitle' => 'लक्ष्यं नास्ति ।',
+'notargettext' => 'एतत्कार्यं समाचरितुं भवान् लक्षितपुटं योजकं वा न निर्दिष्टवान् ।',
+'nopagetitle' => 'तादृशलक्षितपुटं नास्ति ।',
+'nopagetext' => 'भवता निर्दिष्टं लक्षितपुटं नास्ति ।',
 'pager-newer-n' => '{{PLURAL:$1|नूतनतरम् 1|नूतनतराणि $1}}',
 'pager-older-n' => '{{PLURAL:$1|पुरातनतरम् 1|पुरातनतराणि $1}}',
+'suppress' => 'अलक्ष्यम् ।',
+'querypage-disabled' => 'समाचरणकारणेन एतद्विशेषपुटं निष्क्रियम् ।',
 
 # Book sources
 'booksources' => 'ग्रन्थानां स्रोतः',
 'booksources-search-legend' => 'ग्रन्थस्रोतः अन्विष्यताम्',
 'booksources-go' => 'गम्यताम्',
+'booksources-text' => 'अधस्था आवली नूतनप्राचीनपुस्तकानां विक्रयकेन्द्रस्य अनुबन्धान् सूचयति । यत्र ते  आवश्यकाः अन्यविषयाः अपि उपलभ्याः ।',
+'booksources-invalid-isbn' => 'दत्तं ISBN मान्यम् इति  न भाति । मूलस्रोततः प्रतिकृतीः कर्तुं परिशीलयतु ।',
 
 # Special:Log
+'specialloguserlabel' => 'आचारी :',
+'speciallogtitlelabel' => 'लक्ष्यम् (शीर्षकम् / योजकः)',
 'log' => 'लॉग् इत्येतानि',
+'all-logs-page' => 'सर्वसार्वजनिकप्रवेशः ।',
+'alllogstext' => '{{SITENAME}}इत्यस्य उबलब्धप्रवेशानां  संयुक्तप्रदर्शनम् ।
+प्रवेशप्रकारं चित्वा भवान् दृश्यं क्षाययितुं शक्नोति । योजकनाम,  सदस्य नाम (ह्रस्वदीर्घाक्षरसंवादी) प्रभावितपुटम् ।',
+'logempty' => 'प्रवेशे मेलयुक्तपुटं नास्ति ।',
+'log-title-wildcard' => 'अनेन पाठेन आरब्धानि शीर्षकानि अन्विषतु ।',
+'showhideselectedlogentries' => 'चितप्रवेशावलीः प्रदर्शयतु/गोपयतु ।',
 
 # Special:AllPages
 'allpages' => 'सर्वाणि पृष्ठानि',
 'alphaindexline' => '$1 तः $2 पर्यन्तम्',
+'nextpage' => '($1)अग्रिमपुटम् ।',
 'prevpage' => 'पूर्वपृष्ठम् ($1)',
 'allpagesfrom' => 'इत्यस्मात् आरभ्यमाणानि पृष्ठानि दर्श्यन्ताम्:',
 'allpagesto' => 'तानि पृष्ठानि दर्श्यन्तां येषाम् अन्त्यम् एवम् :',
 'allarticles' => 'सर्वाणि पृष्ठानि',
+'allinnamespace' => 'सर्वपुटानि ($1 नामस्थानम्)',
+'allnotinnamespace' => 'सर्वपुटानि ($1 नामस्थानं विना)',
 'allpagesprev' => 'पूर्वतन',
 'allpagesnext' => 'अग्रिम',
 'allpagessubmit' => 'गम्यताम्',
+'allpagesprefix' => 'उपसर्गयुक्तपुटानि दर्शयतु ।',
+'allpagesbadtitle' => 'दत्तपुटशीर्षकम् अमान्यम् अथवा आन्तर्भाषिकम्, आन्तर्विकीयं वा अस्ति । 
+अस्मिन् एकं नैकं वा अक्षराणि सन्ति येषां प्रयोगं शीर्षकेषु कर्तुम् अशक्यम् ।',
+'allpages-bad-ns' => '{{SITENAME}} इत्यस्मिन् "$1" नामस्थानं नास्ति ।',
+'allpages-hide-redirects' => 'पुनर्निदेशान् गोपयतु ।',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => ' भवान् अस्यपुटास्य निगूढावृत्तिं पश्यन् अस्ति । यत् $1 कालिकम्  अस्ति ।',
+'cachedspecial-viewing-cached-ts' => 'भवान् निगूढावृत्तेः पुटम् अवलोकयन् अस्ति । यत् परिपूर्णतया वास्तवं न ।',
+'cachedspecial-refresh-now' => 'जघन्यम् अवलोकयतु ।',
 
 # Special:Categories
 'categories' => 'वर्गाः',
+'categoriespagetext' => 'निम्नोक्ताः {{PLURAL:$1|श्रेणी|श्रेणयः}} पुटानि माध्यमान् वा युक्ताः ।
+यस्याः श्रेण्याः [[Special:UnusedCategories|अप्रयुक्तश्रेण्यः]] अत्र न सन्ति ।
+[[Special:WantedCategories|अपेक्षितश्रेण्यः]] अपि पश्यतु ।',
+'categoriesfrom' => 'इत्यस्मात् आरभ्यमाणानि पृष्ठानि दर्श्यन्ताम्:',
+'special-categories-sort-count' => 'गणनानुगुणं वर्गीकरोतु ।',
+'special-categories-sort-abc' => 'अकारदिक्रमेण वर्गीकरोतु ।',
+
+# Special:DeletedContributions
+'deletedcontributions' => 'अपमर्जितानि योजकयोगदानानि ।',
+'deletedcontributions-title' => 'अपमर्जितानि योजकयोगदानानि ।',
+'sp-deletedcontributions-contribs' => 'योगदानानि ।',
 
 # Special:LinkSearch
 'linksearch' => 'बाह्यसम्पर्कतन्तूनाम् अन्वेषणम्',
+'linksearch-pat' => 'अन्वेषणस्य क्रमः ।',
+'linksearch-ns' => 'नामस्थानम् :',
 'linksearch-ok' => 'अन्वेषणम्',
+'linksearch-text' => '"*.wikipedia.org" सदृशानि वन्यपत्राणि योजयितुं शक्यते । 
+न्यूनातिन्यूनं ".org" सदृशः अत्युन्नतस्तरस्य डोमेन आवश्यकम् अस्ति <br />
+अनुमोदितक्रमागतिः  <tt>$1</tt> (एतेषु कतममपि अन्वेषणे न योजयतु )',
 'linksearch-line' => '$2 पृष्ठं $1 तः सम्पृक्तम् अस्ति।',
+'linksearch-error' => 'वन्यपत्राणि आतिथेयस्य नाम्ना समं केवलं प्रभान्ति ।',
 
 # Special:ListUsers
+'listusersfrom' => 'एतस्मात् आरभमाणान् योजकान् दर्शयतु ।',
 'listusers-submit' => 'दर्श्यताम्',
+'listusers-noresult' => 'योजकः न प्राप्तः ।',
+'listusers-blocked' => 'अवरुद्धम् ।',
+
+# Special:ActiveUsers
+'activeusers' => 'सक्रिययोजकानाम् आवली ।',
+'activeusers-intro' => 'एषा तु गतेषु $1 {{PLURAL:$1|दिनेषु}} कृतकार्याणां योजकाना आवली ।',
+'activeusers-count' => '$1 {{PLURAL:$1|सम्पादनानि}} गतेषु $3 {{PLURAL:$3|दिनेषु}} कृतानि  ।',
+'activeusers-from' => 'एतस्मात् आरभमाणान् योजकान् दर्शयतु ।',
+'activeusers-hidebots' => 'स्वयं चालकान् गोपयतु ।',
+'activeusers-hidesysops' => 'प्रशासकान् गोपयतु ।',
+'activeusers-noresult' => 'योजकः न प्राप्तः ।',
 
 # Special:Log/newusers
 'newuserlogpage' => 'प्रयोक्तृ-सृजन-सूचिका',
+'newuserlogpagetext' => 'अयं योजकनिर्माणास्य प्रवेशः ।',
 
 # Special:ListGroupRights
+'listgrouprights' => 'योजकसमूहाधिकाराः ।',
+'listgrouprights-summary' => 'अधोदत्ता विकिपरिभाषितस्य सङ्गताभिगम्यताधिकारैः सहिता योजकसमूहस्य आवली । [[{{MediaWiki:Listgrouprights-helppage}}|additional information]]',
+'listgrouprights-key' => '* <span class="listgrouprights-granted">दत्ताधिकाराः</span>
+* <span class="listgrouprights-revoked">हृताधिकाराः</span>',
 'listgrouprights-group' => 'वर्ग',
+'listgrouprights-rights' => 'अधिकाराः ।',
+'listgrouprights-helppage' => 'Help: समूहाधिकाराः ।',
 'listgrouprights-members' => '(सदस्यानां सूची)',
+'listgrouprights-addgroup' => '{{PLURAL:$2|समूहः}} योज्यताम् $1',
+'listgrouprights-removegroup' => 'समूहः{{PLURAL:$2|विलोपयतु}}: $1',
+'listgrouprights-addgroup-all' => 'सर्वसमूहान् योजयतु ।',
+'listgrouprights-removegroup-all' => 'सर्वसमूहान् अपनयतु ।',
+'listgrouprights-addgroup-self' => 'स्वस्थाने {{PLURAL:$2|समूहम्}} योजयतु $1',
+'listgrouprights-removegroup-self' => 'स्वस्थाने {{PLURAL:$2|समूहम्}} अपनयतु  $1',
+'listgrouprights-addgroup-self-all' => 'स्वस्थाने सर्वसमूहान योजयतु ।',
+'listgrouprights-removegroup-self-all' => 'स्वस्थानात् सर्वसमूहान् अपनयतु ।',
 
 # E-mail user
+'mailnologin' => 'सम्प्रेषणस्य सङ्केतः नास्ति ।',
+'mailnologintext' => 'अस्य योजकेभ्यः विद्युन्मानपत्रप्रेषणार्थम् [[Special:UserLogin|नामाभिलेखनम्]] आवश्यकम् [[Special:Preferences|आद्यता]]यां प्रेषयितुं विद्युन्मानपत्रसङ्केतः आवश्यकः ।',
 'emailuser' => 'एतस्मै योजकाय ईपत्रं प्रेष्यताम्',
 'emailpage' => 'ई-मेल योजक',
+'emailpagetext' => 'अस्मै योजकाय विद्युन्मानपत्रं प्रेषयितुम् अधो दत्तप्रपत्रम् उपयोक्तुं शक्नोति । 
+[[Special:Preferences|your user preferences]] अत्र भवता विनिवेशितः वि-पत्रसङ्केतः सकाशात् इति स्थाने प्रतिभाति । अनेन स्वीकर्ता साक्षात् प्रत्युत्तरं दातुं प्रभविष्यति ।',
+'usermailererror' => 'पत्राचारपदार्थस्य प्रत्यागतदोषः ।',
+'defemailsubject' => '{{SITENAME}}"$1" इति योजकात् विद्युन्मानपत्रम् ।',
+'usermaildisabled' => 'योजकस्य विद्युन्मानपत्रं निष्क्रियम् ।',
+'usermaildisabledtext' => 'अस्यां विक्याम् अन्ययोजकेभ्यः विद्युन्मानपत्रं प्रेषयितुं नै शक्नोति ।',
+'noemailtitle' => 'विद्युन्मानपत्रसङ्केतः नास्ति ।',
+'noemailtext' => 'अस्य योजकस्य निरिदिष्टः विद्युन्मानपत्रसङ्केतः नास्ति ।',
+'nowikiemailtitle' => 'विद्युन्मानपत्रम् अननुमतम् ।',
+'nowikiemailtext' => 'अयं योजकः अन्ययोजकेभ्यः विद्युन्मानपत्राणि स्वीकार्तुं नेच्छति ।',
+'emailnotarget' => 'स्वीकर्तुः अस्तित्वविहीनम् अथवा अमान्यं योजकनाम  ।',
+'emailtarget' => 'स्वीकर्तुः योजकनाम लिखतु ।',
 'emailusername' => 'योजकनामन्:',
+'emailusernamesubmit' => 'उपस्थाप्यताम्',
+'email-legend' => '{{SITENAME}}  इति अन्ययोजकाय विद्युन्मानपत्रं प्रेषयतु ।',
 'emailfrom' => 'सकाशात्',
 'emailto' => 'सविधे:',
 'emailsubject' => 'विषयः',
 'emailmessage' => 'सन्देशः :',
 'emailsend' => 'प्रेषति',
+'emailccme' => 'सन्देशस्य प्रतिकृतिः मे विद्युन्मानपत्रसङ्केताय अपि प्रेषयतु ।',
+'emailccsubject' => '$1: $2 कृते अपि भवतः सन्देशस्य प्रकृतीः ।',
+'emailsent' => 'विद्युन्मानपत्रं प्रेषितम् ।',
+'emailsenttext' => 'भवतः विद्युन्मानपत्रसन्देशः प्रेषिताः ।',
+'emailuserfooter' => 'एतद्विद्युन्मानपत्रं {{SITENAME}} इत्यस्य योजपत्राचरव्यवस्थाद्वारा  $1 इत्यनेन $2 कृते प्रेषितम् ।',
+
+# User Messenger
+'usermessage-summary' => 'तान्त्रिकसन्देशानां त्यागः ।',
+'usermessage-editor' => 'तान्त्रिकसन्देशवाहकः ।',
 
 # Watchlist
 'watchlist' => 'मम अवेक्षणसूची',
 'mywatchlist' => 'मम अवेक्षणसूची',
 'watchlistfor2' => 'हि $1 $2',
+'nowatchlist' => 'अवलोकनावल्यां पदार्थः नास्ति ।',
+'watchlistanontext' => 'अवलोकनपट्टिकायां पुटं दृष्टुं सम्पादयितुं वा  $1  करोतु ।',
 'addedwatchtext' => 'भवतः [[Special:Watchlist|ध्यानसूचिकायां]] "[[:$1]]" इत्येतत् योजितमस्ति।
 इदानींप्रभृति अस्मिन् पृष्ठे तथा अस्य चर्चापृष्ठे सन्तः परिवर्तनानि भवतः निरीक्षासूचिकायां द्रक्ष्यन्ते तथा च [[Special:RecentChanges|सद्यःपरिवर्तितानां सूचिकायां]] इदं पृष्ठं स्थूलाक्षरैः द्रक्ष्यते, यस्मात् भवान् सरलतया इदं पश्यतु <p>निरीक्षासूचिकातः निराकर्तुमिच्छति चेत्, "मा निरीक्षताम्" इत्यसमिन् नोदयतु।',
 'removedwatchtext' => '"[[:$1]]" इति पृष्ठं [[Special:Watchlist|भवतः निरीक्षासूचिकातः]] निराकृतमस्ति।',
index d06326a..b14a84e 100644 (file)
@@ -1552,6 +1552,7 @@ $1',
 'upload-too-many-redirects' => 'URL наһаа элбэх утаарыылаах',
 'upload-unknown-size' => 'Биллибэт кээмэй',
 'upload-http-error' => 'HTTP алҕаһа таҕыста: $1',
+'upload-copy-upload-invalid-domain' => 'Бу домеҥҥа хачайдааһыны хатылыыр табыллыбат.',
 
 # File backend
 'backend-fail-stream' => '$1 билэни ыытар табыллыбата.',
@@ -1570,11 +1571,13 @@ $1',
 'backend-fail-closetemp' => 'Быстах кэмнээх билэни сабар табыллыбата.',
 'backend-fail-read' => '$1 билэни ааҕар табыллыбата.',
 'backend-fail-create' => '$1 билэни суруттарар табыллыбата.',
+'backend-fail-maxsize' => '$1 билэни суруттарар табыллыбата, тоҕо диэтэххэ кини кээмэйэ $2 баайты куоһарар.',
 'backend-fail-readonly' => '«$1» сиэрбэр «ааҕыы эрэ» эрэсиимҥэ турар. Төрүөтэ: «$2»',
 'backend-fail-synced' => '«$1» билэ сөпсөһүллүбэтэх туруктаах эбит',
 'backend-fail-connect' => 'Маны кытта «$1» холбонор табыллыбата.',
 'backend-fail-internal' => 'Манна «$1» биллибэт алҕас таҕыста.',
 'backend-fail-contenttype' => 'Билэ иһинээҕитин көрүҥүн араарар сатамматаҕын түмүгэр манна «$1» угар табыллыбата.',
+'backend-fail-usable' => '$1 билэни суруттарар табыллыбата, тоҕо диэтэххэ быраабыҥ тиийбэтэ эбэтэр анаммыт паапка суох буолан биэрдэ.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Маны "$1" хааччаҕын устар табыллыбата; кини хааччахтамматах.',
@@ -1585,6 +1588,7 @@ $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
@@ -1694,6 +1698,8 @@ $1',
 [$2 туһунан сирэй]тэн ылыллыбыт тиэкис аллара көрдөрүлүннэ.',
 'sharedupload-desc-edit' => 'Бу билэ манна сытар $1, хас да ситим-сиргэ туттуллар кыахтаах.
 [$2 билэ туһунан] сирэйи уларытыахха сөп.',
+'sharedupload-desc-create' => 'Бу билэ манна сытар $1, хас да ситим-сиргэ туттуллар кыахтаах.
+[$2 билэ туһунан] сирэйи уларытыахха сөп.',
 'filepage-nofile' => 'Маннык ааттаах билэ суох.',
 'filepage-nofile-link' => 'Маннык ааттаах билэ суох. Ол гынан баран эн [$1 суруттарыаххын] сөп.',
 'uploadnewversion-linktext' => 'Бу билэ саҥа барылын суруттар',
@@ -1885,6 +1891,7 @@ $1',
 Сурунаал көрүҥүнэн, кыттааччы аатынан (улахан-кыра буукубата учуоттанар) эбэтэр сирэй аатынан (эмиэ улахана-кырата учуоттанар) наардыаххытын сөп.',
 'logempty' => 'Сурунаалга сөп түбэһэр элэмиэннэр суохтар.',
 'log-title-wildcard' => 'Бу сурук бэлиэлэриттэн (буукубалартан) саҕаланар ааттары бул',
+'showhideselectedlogentries' => 'Талыллыбыт суруктары кистээ/көрдөр',
 
 # Special:AllPages
 'allpages' => 'Сирэйдэр барыта',
@@ -1902,8 +1909,11 @@ $1',
 'allpagesprefix' => 'Мантан саҕаланар сирэйдэри бул:',
 'allpagesbadtitle' => 'Сирэй маннык ааттанара сатаммат: аакка туттуллуо суохтаах бэлиэлэрдээх эбэтэр тыллар ыккардыларыгар туһаныллар ыйынньыктаах.',
 'allpages-bad-ns' => '{{SITENAME}} не содержит пространства имён «$1».',
+'allpages-hide-redirects' => 'Утаарыылары кистээ',
 
 # SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Сирэй кээстэммит барылын көрөҕүн, $1 ынараа өттүгэр саҥардыллыбыт буолуон сөп.',
+'cachedspecial-viewing-cached-ts' => 'Сирэй кээскэ киирбит барылын көрөҕүн, дьиҥнээх сирэй чыҥха атын буолуон сөп.',
 'cachedspecial-refresh-now' => 'Бүтэһик барылы көр.',
 
 # Special:Categories
@@ -2342,8 +2352,8 @@ $1',
 'ipb-confirm' => 'Хааччаҕы бигэргэт',
 'badipaddress' => 'IP аадырыһа сыыһа',
 'blockipsuccesssub' => 'Тохтотулунна',
-'blockipsuccesstext' => '[[Special:Contributions/$1|«$1»]] Ð±Ð¾Ð±Ñ\83ллÑ\83бÑ\83Ñ\82\82оÑ\85Ñ\82оÑ\82Ñ\83ллÑ\83бÑ\83т.<br />
-[[Special:BlockList|Бобуллубут IP-лар испииһэктэрин]] көр.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|«$1»]] Ð±Ð¾Ð±Ñ\83ллÑ\83бÑ\83Ñ\82\85ааÑ\87Ñ\87аÑ\85Ñ\82аммÑ\8bт.<br />
+[[Special:BlockList|Бобуллубут IP-лар тиһиктэрин]] көр.',
 'ipb-blockingself' => 'Эн бэйэҕин хааччахтаан эрэҕин! Ону өйдүүгүн дуо?',
 'ipb-confirmhideuser' => 'Кытааччыны хааччахтаан уонна аатын кистээн эрэҕин. Аата мантан инньэ тиһиктэргэ уонна сурунаалларга көстүбэт буолуо. Бигэргэтэҕин дуо?',
 'ipb-edit-dropdown' => 'Бобуу биричиинэтин уларыт',
@@ -2395,7 +2405,7 @@ $1',
 'reblock-logentry' => 'манна [[$1]] аналлаах хааччахтааһын туруоруулара уларыйда, болдьоҕо $2 $3',
 'blocklogtext' => 'Кыттааччылары хааччахтааһын уонна ол хааччахтааһыннарын суох гыныы сурунаала.
 Аптамаатынан хааччахтаммыт IP-лар манна көстүбэттэр.
-[[Special:BlockList|Билигин баар хааччахтаныылар испииһэктэрин]] көр.',
+[[Special:BlockList|Билигин баар хааччахтаныылар тиһиктэрин]] көр.',
 'unblocklogentry' => '$1 хааччахтааһыны уһулла',
 'block-log-flags-anononly' => 'ааттамматах кыттааччылар эрэ',
 'block-log-flags-nocreate' => 'саҥа бэлиэтэнии бобуллубут',
index 7feae4f..004a71c 100644 (file)
@@ -695,6 +695,7 @@ Nezabudnite si nastaviť svoje [[Special:Preferences|používateľské nastaveni
 'remembermypassword' => 'Pamätať si prihlásenie na tomto počítači (naviac $1 {{PLURAL:$1|deň|dni|dní}})',
 'securelogin-stick-https' => 'Zostať pripojený cez HTTPS po prihlásení',
 'yourdomainname' => 'Vaša doména:',
+'password-change-forbidden' => 'Na tejto wiki si nemôžete zmeniť heslo.',
 'externaldberror' => 'Buď nastala chyba externej autentifikačnej databázy alebo vám nie je povolené aktualizovať váš externý účet.',
 'login' => 'Prihlásiť',
 'nav-login-createaccount' => 'Vytvorenie konta / prihlásenie',
@@ -1520,6 +1521,7 @@ Musí obsahovať menej ako $1 {{PLURAL:$1|znak|znaky|znakov}}.',
 'right-writeapi' => 'Použitie API na zápis',
 'right-delete' => 'Mazať stránky',
 'right-bigdelete' => 'Mazať stránky s veľkou históriou',
+'right-deletelogentry' => 'Odstrániť a obnoviť špecifické položky',
 'right-deleterevision' => 'Mazať a obnovovať konkrétne revízie stránok',
 'right-deletedhistory' => 'Zobrazovať zmazané položky histórie bez ich plného textu',
 'right-deletedtext' => 'Zobrazovať zmazané texty a zmeny medzi zmazanými verziami',
@@ -1833,6 +1835,7 @@ Ak problém pretrváva, kontaktujte [[Special:ListUsers/sysop|správcu systému]
 'lockmanager-fail-releaselock' => 'Nepodarilo sa uvoľniť zámok „$1“.',
 'lockmanager-fail-db-bucket' => 'Nepodarilo sa kontaktovať dostatok databáz zámkov v buckete $1.',
 'lockmanager-fail-db-release' => 'Nepodarilo sa uvoľniť zámky na databáze $1.',
+'lockmanager-fail-svr-acquire' => 'Nepodarilo sa získať zámky na serveri $1.',
 'lockmanager-fail-svr-release' => 'Nepodarilo sa uvoľniť zámky na serveri $1.',
 
 # ZipDirectoryReader
@@ -2362,9 +2365,11 @@ Na $2 nájdete zoznam posledných zmazaní.',
 'delete-warning-toobig' => 'Táto stránka má veľkú históriu úprav, viac ako $1 {{PLURAL:$1|revíziu|revízie|revízií}}. Jej zmazanie by mohlo narušiť databázové operácie {{GRAMMAR:genitív|{{SITENAME}}}}; postupujte opatrne.',
 
 # Rollback
-'rollback' => 'Rollback úprav',
-'rollback_short' => 'Rollback',
-'rollbacklink' => 'rollback',
+'rollback' => 'Vrátiť späť úpravy',
+'rollback_short' => 'Vrátiť',
+'rollbacklink' => 'vrátiť',
+'rollbacklinkcount' => 'vrátenie $1 {{PLURAL:$1|úpravy|úprav}}',
+'rollbacklinkcount-morethan' => 'vrátiť viac ako $1 {{PLURAL:$1|úpravu|úprav}}',
 'rollbackfailed' => 'Rollback neúspešný',
 'cantrollback' => 'Nie je možné úpravu vrátiť späť, posledný autor je jediný autor tejto stránky.',
 'alreadyrolled' => 'Nemožno vrátiť späť poslednú úpravu [[:$1]] od [[User:$2|$2]] ([[User talk:$2|Diskusia]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); niekto iný buď upravoval stránku alebo už vrátil úpravy späť.
@@ -3969,6 +3974,4 @@ V opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš k
 'duration-centuries' => '$1 {{PLURAL:$1|storočie|storočia|storočí}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tisícročie|tisícročia|tisícročí}}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Nepodarilo sa získať zámky na serveri $1.',
 );
index 5751f3c..44413ea 100644 (file)
@@ -600,6 +600,7 @@ Ne pozabite si prilagoditi vaših [[Special:Preferences|nastavitev {{GRAMMAR:rod
 'remembermypassword' => 'Zapomni si me na tem računalniku (za največ $1 {{PLURAL:$1|dan|dneva|dni}})',
 'securelogin-stick-https' => 'Po prijavi ostani povezan preko HTTPS',
 'yourdomainname' => 'Domena',
+'password-change-forbidden' => 'Na tem wikiju ne morete spreminjati gesel.',
 'externaldberror' => 'Pri potrjevanju istovetnosti je prišlo do notranje napake ali pa za osveževanje zunanjega računa nimate dovoljenja.',
 'login' => 'Prijava',
 'nav-login-createaccount' => 'Prijavite se / registrirajte se',
@@ -1441,6 +1442,7 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'right-writeapi' => 'Uporaba napisanega API-ja',
 'right-delete' => 'Brisanje strani',
 'right-bigdelete' => 'Brisanje strani z obsežno zgodovino',
+'right-deletelogentry' => 'Brisanje in obnavljanje izbranih dnevniških vnosov',
 'right-deleterevision' => 'Brisanje in obnova posebnih redakcij strani',
 'right-deletedhistory' => 'Ogled zgodovine brisanja, brez besedila izbrisanih strani',
 'right-deletedtext' => 'Ogled izbrisanega besedila in primerjava med izbrisanimi redakcijami',
@@ -1761,6 +1763,7 @@ Prosimo, preverite veljavnost in dostopnost naslova URL ter poskusite ponovno.
 'lockmanager-fail-releaselock' => 'Ne morem sprostiti zaklepa »$1«.',
 'lockmanager-fail-db-bucket' => 'Ne morem kontaktirati zadostnega števila zaklenitvenih zbirk podatkov v vedru $1.',
 'lockmanager-fail-db-release' => 'Ne morem sprostiti zaklepov zbirke podatkov $1.',
+'lockmanager-fail-svr-acquire' => 'Ne morem pridobiti zaklepov na strežniku $1.',
 'lockmanager-fail-svr-release' => 'Ne morem sprostiti zaklepov strežnika $1.',
 
 # ZipDirectoryReader
@@ -1962,9 +1965,9 @@ Preden jih izbrišete, preverite še druge povezave nanje.',
 
 'disambiguations' => 'Strani s povezavami na razločitvene strani',
 'disambiguationspage' => 'Template:Razločitev',
-'disambiguations-text' => "Naslednje strani se povezujejo na '''razločitvene strani'''.
-Namesto tega bi se naj povezovale na primerno temo.<br />
-Stran se obravnava kot razločitvena, če uporablja predloge povezane iz [[MediaWiki:Disambiguationspage]]",
+'disambiguations-text' => "Naslednje strani vsebujejo vsaj eno povezavo na '''razločitvene strani'''.
+Namesto tega bi morda bilo bolje, da se povezujejo na primernejše strani.<br />
+Stran se obravnava kot razločitvena, če uporablja predloge, povezane z [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Dvojne preusmeritve',
 'doubleredirectstext' => 'Ta stran navaja strani, ki se preusmerjajo na druge preusmeritvene strani.
@@ -2309,6 +2312,8 @@ nadaljujte s previdnostjo.',
 'rollback' => 'Vrni spremembe',
 'rollback_short' => 'Vrni',
 'rollbacklink' => 'vrni',
+'rollbacklinkcount' => 'vrni $1 {{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}',
+'rollbacklinkcount-morethan' => 'vrni več kot $1 {{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}',
 'rollbackfailed' => 'Vrnitev ni uspela',
 'cantrollback' => 'Urejanja ne morem vrniti; zadnji urejevalec je hkrati edini.',
 'alreadyrolled' => 'Zadnje spremembe [[:$1]] uporabnika [[User:$2|$2]] ([[User talk:$2|pogovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) ne morem vrniti;
@@ -3880,6 +3885,4 @@ V nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bom
 'duration-centuries' => '$1 {{PLURAL:$1|stoletje|stoletji|stoletja|stoletij}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tisočletje|tisočletji|tisočletja|tisočletij}}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Ne morem pridobiti zaklepov na strežniku $1.',
 );
index d3e5d9c..acbd057 100644 (file)
@@ -1996,6 +1996,7 @@ $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
@@ -4239,7 +4240,7 @@ $5
 # New logging system
 'logentry-delete-delete' => '$1 {{GENDER:|је обрисао|је обрисала|је обрисао}} $3',
 'logentry-delete-restore' => '$1 {{GENDER:|је вратио|је вратила|је вратио}} страницу $3',
-'logentry-delete-event' => '$1 {{GENDER:|је променио|је променила|је променио}} видљивост {{PLURAL:$5|догађаја|$5 догађаја|$5 догађаја}} у дневнику на $3: $4',
+'logentry-delete-event' => '$1 {{GENDER:$2|је променио|је променила|је променио}} видљивост {{PLURAL:$5|догађаја|$5 догађаја|$5 догађаја}} у дневнику на $3: $4',
 'logentry-delete-revision' => '$1 {{GENDER:|је променио|је променила|је променио}} видљивост {{PLURAL:$5|измене|$5 измене|$5 измена}} на страници $3: $4',
 'logentry-delete-event-legacy' => '$1 {{GENDER:|је променио|је променила|је променио}} видљивост догађајâ у дневнику на $3',
 'logentry-delete-revision-legacy' => '$1 {{GENDER:|је променио|је променила|је променио}} видљивост изменâ на страници $3',
@@ -4335,6 +4336,4 @@ $5
 'duration-centuries' => '$1 {{PLURAL:$1|век|века|векова}}',
 'duration-millennia' => '$1 {{PLURAL:$1|миленијум|миленијума|миленијума}}',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Не могу да добијем катанце на серверу $1.',
 );
index 9cd73a9..36ad323 100644 (file)
@@ -2404,6 +2404,8 @@ Se $2 för noteringar om de senaste raderingarna.',
 'rollback' => 'Rulla tillbaka ändringar',
 'rollback_short' => 'Återställning',
 'rollbacklink' => 'rulla tillbaka',
+'rollbacklinkcount' => 'rulla tillbaka $1 {{PLURAL:$1|redigering|redigeringar}}',
+'rollbacklinkcount-morethan' => 'rulla tillbaka mer än $1 {{PLURAL:$1|redigering|redigeringar}}',
 'rollbackfailed' => 'Tillbakarullning misslyckades',
 'cantrollback' => 'Det gick inte att rulla tillbaka, då sidan endast redigerats av en användare.',
 'alreadyrolled' => 'Det gick inte att rulla tillbaka den senaste redigeringen av [[User:$2|$2]] ([[User talk:$2|diskussion]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) på sidan [[:$1|$1]]. Någon annan har redan rullat tillbaka eller redigerat sidan.
index 8bc74a7..15346bb 100644 (file)
@@ -279,7 +279,7 @@ $messages = array(
 'viewtalkpage' => 'Zajta godki',
 'otherlanguages' => 'We inkszych godkach',
 'redirectedfrom' => '(Punkńyńto s $1)',
-'redirectpagesub' => 'Zajta překerowujůnco',
+'redirectpagesub' => 'Zajta przekerowujůnco',
 'lastmodifiedat' => 'Ta zajta bůła uostatńo sprowjano $2, $1.',
 'viewcount' => 'W ta zajta filowano {{PLURAL:$1|tylko roz|$1 rozůw}}.',
 'protectedpage' => 'Zajta zawarto',
@@ -783,7 +783,7 @@ Powinno być myńi jak $2 {{PLURAL:$2|wywouańy|wywouańo|wywouań}}, a terozki
 'undo-success' => 'Sprowjyńy zostouo wycůfane. Proša pomjarkować ukozane půnižyj dyferencyje mjyndzy wersyjami, coby zweryfikować jejich poprawność, potym zaś naškryflać pomjyńańo coby zakońčyć uoperacyjo.',
 'undo-failure' => 'Sprowjyńo ńy idźe wycofać skuli kůnflikta ze wersyjůma postřednimi.',
 'undo-norev' => 'Sprowjyńo ńy idźe cofnůńć skuli tego, co ńy istńije abo zostouo wyćepane.',
-'undo-summary' => 'Wycůfańy wersyji $1 naškryflanej bez [[Special:Contributions/$2|$2]] ([[User talk:$2|godka]])',
+'undo-summary' => 'Wycůfańy wersyji $1 naszkryflanej bez [[Special:Contributions/$2|$2]] ([[User talk:$2|godka]])',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Ńy idźe utwořić kůnta',
@@ -806,8 +806,8 @@ Skuli: ''$2''",
 'last' => 'poprz.',
 'page_first' => 'počůnek',
 'page_last' => 'kůńec',
-'histlegend' => 'Wybůr růžńic do porůwnańo: postow kropki we boksach a naćiś enter abo knefel na dole.<br />
-Legynda: (bjež.) - růžńice s wersyjům bježůncům, (popř.) - růžńice s wersyjům popředzajůncům, d - drobne zmjany',
+'histlegend' => 'Wybůr růżńic do porůwnańo: postow kropki we boksach a naćiś enter abo knefel na dole.<br />
+Legynda: (akt.) - růżńice s wersyjům bjeżůncům, (poprz.) - růżńice s wersyjům poprzedzajůncům, d - drobne zmjany',
 'history-fieldset-title' => 'Přeglůndej historyjo',
 'history-show-deleted' => 'Jyno wyćepane',
 'histfirst' => 'uod počůnku',
@@ -1139,7 +1139,7 @@ $1',
 'right-createaccount' => 'Utwořůne nowe kůnta užytkowńikůw',
 'right-minoredit' => 'Uoznoč půmjyńańo kej drobne',
 'right-move' => 'Přećepane zajty',
-'right-move-subpages' => 'Přećep zajty wroz s jejich podzajtůma',
+'right-move-subpages' => 'Przećep zajty wroz s jejich podzajtůma',
 'right-move-rootuserpages' => 'Překludzańy zajtůw uod užytkowńikůw',
 'right-movefile' => 'Przećepańe plikůw',
 'right-suppressredirect' => 'Ńy twůrz przekerowańo ze starygo mjana jak przećepujesz zajta',
@@ -2080,18 +2080,18 @@ Zawjerańy i uodmykańy bazy danych wymogo coby plik můgu być naškreflany bez
 # Move page
 'move-page' => 'Przećep $1',
 'move-page-legend' => 'Přećiś artikel',
-'movepagetext' => "Při půmocy formulařa půńižej možeš půmjyńyć nazwa zajty i přećepnůńć jei historja. Pod downym titlym uostańe zajta překerowujůnca. Zajty adresowane na stary titel uostanům jak bůuy.
+'movepagetext' => "Przi půmocy formularza půńiżej możesz půmjyńyć mjano zajty i przećepnůńć jej gyszichta. Pod downym mjanym uostańe śa zajta przekerowujůnca. Zajty adresowane na stare mjano uostanům jak bůły.
 
-Jak śe na to decyduješ, sprowdź, eli ńy je to [[Special:DoubleRedirects|podwůjne]] abo [[Special:BrokenRedirects|zuomane překerowańy]].
-Uodpowjadoš za to, coby linki wjoduy ku prawiduowym artiklům!
+Jak śe na to decydujesz, sprowdź, eli ńy je to [[Special:DoubleRedirects|podwůjne]] abo [[Special:BrokenRedirects|złomane przekerowańy]].
+Uodpowjadosz za to, coby linki wjodły ku prawym artiklům!
 
-Zajta '''ńy''' bydźe přećepano, jak:
-*je pusto i ńy bůua sprowjano
-*je zajtům překerowujůncą
-*zajta uo takym titlu juž sam jest
+Zajta '''ńy''' bydźe przećepano, jak:
+*je pusto i ńy bůła sprowjano
+*je zajtům przekerowujůncą
+*zajta uo takym mjane już sam je
 
 '''DEJ POZŮR!'''
-To može byÄ\87 drastyÄ\8dno abo i Å\84ypÅ\99ewidywalno zmjano, jak pÅ\99\87epÅ\84yÅ¡ jako popularno zajta. Bydź pewny, aže wjeÅ¡ co robiyÅ¡, Å\84im klikÅ\84yÅ¡ knefel \"pÅ\99ećep\"!",
+To może byÄ\87 drastyczno abo Å\84yprzewidywalno zmjano, jak przeÄ\87epÅ\84ysz jako popularno zajta. Bydź pewny, aże wjesz co robiysz, Å\84im klikÅ\84ysz knefel \"przećep\"!",
 'movepagetalktext' => 'Uodpowiednio zajta godki, jeśli jest, bydzie přećepano automatyčńe, pod warůnkiem, že:
 *ńy přećepuješ zajty do inkšy přestřeńy mjan
 *ńy ma sam zajty godki o takiym mjańe
index 5e00b80..8e48d49 100644 (file)
@@ -94,17 +94,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'பிரிவுத் தலைப்பின் மீது வலச் சொடுக்குவதன் மூலம் பகுதித்  தொகுப்பை செயலாக்கவும் (ஜாவாஸ்கிரிப்ட் தேவை )',
 'tog-showtoc' => 'பொருளடக்க பட்டியலைக் காண்பி (மூன்றுக்கு மேற்பட்ட தலைப்புகளையுடைய கட்டுரைகளுக்கு)',
 'tog-rememberpassword' => 'எனது புகுபதிகை பற்றிய விவரங்களை இவ்வுலாவியில் (மிக அதிகமாக $1 {{PLURAL:$1|நாள்|நாட்கள்}}) வரை நினைவில் வைத்திருக்கவும்.',
-'tog-watchcreations' => 'நான் உருவாக்கும் பக்கங்களை எனது கவனிப்புப் பட்டியலில் சேர்க்கவும்.',
-'tog-watchdefault' => 'நான் தொகுக்கும் பக்கங்களை என் கவனிப்புப் பட்டியலில் சேர்',
-'tog-watchmoves' => 'நான் நகர்த்தும் பக்கங்களை என் கவனிப்புப் பட்டியலில் சேர்.',
-'tog-watchdeletion' => 'நான் நீக்கும் பக்கங்களை என் கவனிப்புப் பட்டியலில் சேர்',
+'tog-watchcreations' => 'நானà¯\8d à®\89à®°à¯\81வாà®\95à¯\8dà®\95à¯\81à®®à¯\8d à®ªà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d à®ªà®¤à®¿à®µà¯\87à®±à¯\8dà®±à¯\81à®®à¯\8d à®\95à¯\8bபà¯\8dபà¯\81à®\95ளà¯\88 à®\8eனதà¯\81 à®\95வனிபà¯\8dபà¯\81பà¯\8d à®ªà®\9fà¯\8dà®\9fியலிலà¯\8d à®\9aà¯\87à®°à¯\8dà®\95à¯\8dà®\95வà¯\81à®®à¯\8d.',
+'tog-watchdefault' => 'நானà¯\8d à®¤à¯\8aà®\95à¯\81à®\95à¯\8dà®\95à¯\81à®®à¯\8d à®ªà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d à®\95à¯\8bபà¯\8dபà¯\81à®\95ளà¯\88 à®\8eனà¯\8d à®\95வனிபà¯\8dபà¯\81பà¯\8d à®ªà®\9fà¯\8dà®\9fியலிலà¯\8d à®\9aà¯\87à®°à¯\8d',
+'tog-watchmoves' => 'நானà¯\8d à®¨à®\95à®°à¯\8dதà¯\8dதà¯\81à®®à¯\8d à®ªà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d à®\95à¯\8bபà¯\8dபà¯\81à®\95ளà¯\88 à®\8eனà¯\8d à®\95வனிபà¯\8dபà¯\81பà¯\8d à®ªà®\9fà¯\8dà®\9fியலிலà¯\8d à®\9aà¯\87à®°à¯\8d.',
+'tog-watchdeletion' => 'நானà¯\8d à®¨à¯\80à®\95à¯\8dà®\95à¯\81à®®à¯\8d à®ªà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d à®\95à¯\8bபà¯\8dபà¯\81à®\95ளà¯\88 à®\8eனà¯\8d à®\95வனிபà¯\8dபà¯\81பà¯\8d à®ªà®\9fà¯\8dà®\9fியலிலà¯\8d à®\9aà¯\87à®°à¯\8d',
 'tog-minordefault' => 'இயல்பிருப்பாக அனைத்து தொகுப்புகளையும் சிறியது எனக் குறித்துக்கொள்.',
 'tog-previewontop' => 'தொகுப்புப் பெட்டிக்கு முன்பு முன்தோற்றத்தைக் காட்டு',
 'tog-previewonfirst' => 'முதல் தொகுப்பில் முன்தோற்றத்தைக் காட்டு',
 'tog-nocache' => 'உலாவி பக்க இடைமாற்றை முடக்கு',
-'tog-enotifwatchlistpages' => 'நானà¯\8d à®\95வனிà®\95à¯\8dà®\95à¯\81à®®à¯\8d à®ªà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\8d மாற்றப்பட்டால் எனக்கு மின்னஞ்சல் செய்க',
+'tog-enotifwatchlistpages' => 'நானà¯\8d à®\95வனிà®\95à¯\8dà®\95à¯\81à®®à¯\8d à®ªà®\95à¯\8dà®\95à®®à¯\8d à®\85லà¯\8dலதà¯\81 à®\95à¯\8bபà¯\8dபà¯\81 மாற்றப்பட்டால் எனக்கு மின்னஞ்சல் செய்க',
 'tog-enotifusertalkpages' => 'என் பயனர் பேச்சுப் பக்கம் மாற்றப்பட்டால் எனக்கு மின்னஞ்சல் செய்',
-'tog-enotifminoredits' => 'பà®\95à¯\8dà®\95à®\99à¯\8dகளுக்கான சிறு தொகுப்புக்கள் குறித்தும் எனக்கு மின்னஞ்சல் செய்யவும்',
+'tog-enotifminoredits' => 'பà®\95à¯\8dà®\95à®®à¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d à®\95à¯\8bபà¯\8dபà¯\81களுக்கான சிறு தொகுப்புக்கள் குறித்தும் எனக்கு மின்னஞ்சல் செய்யவும்',
 'tog-enotifrevealaddr' => 'அறிவித்தல் மின்னஞ்சல்களில் எனது மின்னஞ்சல் முகவரியை வெளிப்படுத்து',
 'tog-shownumberswatching' => 'கவனிக்கும் பயனர்களின் எண்ணிக்கையைக் காட்டவும்',
 'tog-oldsig' => 'நடப்பு கையொப்பம்:',
@@ -196,7 +196,7 @@ $messages = array(
 'category-empty' => "''இப்பகுப்பில் தற்போது பக்கங்களோ ஊடகங்களோ இல்லை.''",
 'hidden-categories' => '{{PLURAL:$1|மறைக்கப்பட்ட பகுப்பு|மறைக்கப்பட்ட பகுப்புகள்}}',
 'hidden-category-category' => 'மறைக்கப்பட்ட பகுப்புகள்',
-'category-subcat-count' => '{{PLURAL:$2|இந்தப் பகுப்பின் கீழ் பின்வரும் ஒரு துணைப் பகுப்பு மட்டுமே உள்ளது.|இந்தப்பகுப்பின் கீழ் உள்ள $2 துணைப் பகுப்புகளில் பின்வரும் {{PLURAL:$1|துணைப்பகுப்பும் உள்ளது.|$1 துணைப்பகுப்புகளும் உள்ளன.}}}}',
+'category-subcat-count' => '{{PLURAL:$2|இந்தப் பகுப்பின் கீழ் பின்வரும் ஒரு துணைப்பகுப்பு மட்டுமே உள்ளது.|இந்தப் பகுப்பில் மொத்தம் உள்ள $2 துணைப்பகுப்புகளில் பின்வரும் {{PLURAL:$1|துணைப்பகுப்பு உள்ளது.|$1 துணைப்பகுப்புகள் இங்கு காட்டப்பட்டுள்ளன.}}}}',
 'category-subcat-count-limited' => 'இந்தப் பகுப்பின் கீழ் பின்வரும் {{PLURAL:$1|ஒரு துணைப் பகுப்பு மட்டுமே உள்ளது.|$1 துணைப் பகுப்புகள் உள்ளன.}}',
 'category-article-count' => '{{PLURAL:$2|இந்தப் பகுப்பின் கீழ் பின்வரும் பக்கம் மட்டுமே உள்ளது.|இந்தப்பகுப்பின் கீழ் உள்ள $2 பக்கங்களில் பின்வரும் {{PLURAL:$1|பக்கமும் உள்ளது.|$1 பக்கங்களும் உள்ளன.}}}}',
 'category-article-count-limited' => 'இப்பகுப்பில் பின்வரும் {{PLURAL:$1|பக்கம்|$1 பக்கங்கள்}} உள்ள{{PLURAL:$1|து|ன}}.',
@@ -802,6 +802,7 @@ or <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}
 'edit-no-change' => 'வாசகங்களுக்கு எந்த மாற்றமும் செய்யப்படவில்லை என்பதனால் உங்கள் தொகுப்பு புறக்கணிக்கப்பட்டது.',
 'edit-already-exists' => 'புதிய பக்கமொன்றை உருவாக்க முடியாது.
 இப்பக்கம் ஏற்கனவே உள்ளது.',
+'defaultmessagetext' => 'இயல்பிருப்பு தகவல் உரை',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'எச்சரிக்கை: இப்பக்கம் அதிகளவு இலக்கணப் பாகுபடுத்திச் சார்புகளைக் கொண்டுள்ளது.
@@ -964,7 +965,7 @@ $1",
 # Suppression log
 'suppressionlog' => 'அடக்கல் பதிகை',
 'suppressionlogtext' => 'பின்வருவது நிர்வாகிகளிடமிருந்து மறைக்கப்பட்ட நீக்கல்களதும் தடுப்புகளதும் பட்டியலாகும்.
-நà®\9fà¯\88à®®à¯\81à®±à¯\88யிலà¯\81ளà¯\8dள à®¤à®\9fà¯\81பà¯\8dபà¯\81à®\95ளà¯\88à®\95à¯\8d à®\95ாண [[Special:BlockList|à®\90.பி. à®¤à®\9fà¯\88பà¯\8d à®ªà®\9fà¯\8dà®\9fியலà¯\88பà¯\8d]] à®ªà®¾à®°à¯\8dà®\95à¯\8dà®\95வà¯\81à®®à¯\8d',
+நடைமுறையிலுள்ள தடுப்புகளைக் காண [[Special:BlockList|தடைப் பட்டியலைப்]] பார்க்கவும்',
 
 # History merging
 'mergehistory' => 'பக்க வரலாறுகளை இணை',
@@ -996,6 +997,8 @@ $1",
 
 # Diffs
 'history-title' => 'திருத்த வரலாறு - "$1"',
+'difference-title' => '"$1" பக்கத்தின் திருத்தங்களுக்கிடையேயான வேறுபாடு',
+'difference-title-multipage' => '"$1" மற்றும் "$2" பக்கங்களுக்கிடையேயான வேறுபாடு',
 'difference-multipage' => 'பக்கங்களுக்கு இடையேயான வேறுபாடு',
 'lineno' => 'வரிசை $1:',
 'compareselectedversions' => 'தெரிவு செய்யப்பட்ட பதிப்புக்களை ஒப்பிடவும்',
@@ -1094,6 +1097,7 @@ $1",
 'prefs-beta' => 'சோதனைநிலை அம்சங்கள்',
 'prefs-datetime' => 'நாள் நேரம்',
 'prefs-labs' => 'ஆய்வகச் சிறப்புக்கூறுகள்',
+'prefs-user-pages' => 'பயனர் பக்கங்கள்',
 'prefs-personal' => 'பயனர் தரவு',
 'prefs-rc' => 'அண்மைய மாற்றங்கள்',
 'prefs-watchlist' => 'கவனிப்புப் பட்டியல்',
@@ -1126,7 +1130,7 @@ $1",
 'savedprefs' => 'உங்கள் விருப்பத்தேர்வுகள் சேமிக்கப்பட்டுள்ளன.',
 'timezonelegend' => 'நேர வலயம்:',
 'localtime' => 'உள்ளூர் நேரம்:',
-'timezoneuseserverdefault' => 'வழà®\99à¯\8dà®\95னினà¯\8d à®\8eலà¯\8dலà¯\8bà®°à¯\81à®\95à¯\8dà®\95à¯\81à®®à¯\8d à®ªà¯\8aதà¯\81வானவறà¯\8dà®±à¯\88 à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதவà¯\81à®®à¯\8d',
+'timezoneuseserverdefault' => 'விà®\95à¯\8dà®\95ி à®\87யலà¯\8dபà¯\81நிலà¯\88யà¯\88 à®\89பயà¯\8bà®\95ிà®\95à¯\8dà®\95வà¯\81à®®à¯\8d ($1)',
 'timezoneuseoffset' => 'மற்றவை (வித்தியாசத்தைக் குறிப்பிடவும்)',
 'timezoneoffset' => 'நேர இடைவெளி¹:',
 'servertime' => 'வழங்கி நேரம்:',
@@ -2172,7 +2176,7 @@ $NEWPAGE
 'cannotundelete' => 'நீக்கம் தோல்வி; வேறு யாராவது முன்னதாக இப்பக்கத்தை நீக்கியிருக்கலாம்.',
 'undeletedpage' => "'''$1 மீட்கப்பட்டது'''
 
-அண்மைய நீக்கல்களுக்கும் மீட்புக்ளுக்கும் [[Special:Log/delete|நீக்கல் பதிவைப்]] பார்க்கவும்.",
+à®\85ணà¯\8dà®®à¯\88ய à®¨à¯\80à®\95à¯\8dà®\95லà¯\8dà®\95ளà¯\81à®\95à¯\8dà®\95à¯\81à®®à¯\8d à®®à¯\80à®\9fà¯\8dபà¯\81à®\95à¯\8dà®\95ளà¯\81à®\95à¯\8dà®\95à¯\81à®®à¯\8d [[Special:Log/delete|நà¯\80à®\95à¯\8dà®\95லà¯\8d à®ªà®¤à®¿à®µà¯\88பà¯\8d]] à®ªà®¾à®°à¯\8dà®\95à¯\8dà®\95வà¯\81à®®à¯\8d.",
 'undelete-header' => 'அண்மையில் நீக்கப்பட்ட பக்கங்களைக் காண [[Special:Log/delete|நீக்கல் பதிவைப்]] பார்க்க.',
 'undelete-search-title' => 'நீக்கப்பட்ட பக்கங்களைத் தேடு',
 'undelete-search-box' => 'நீக்கப்பட்ட பக்கங்களைத் தேடு',
index e840332..2918198 100644 (file)
@@ -76,7 +76,7 @@ $messages = array(
 'tog-watchlisthideown' => 'Gözegçilik sanawymdan öz özgerdişlerimi gizle',
 'tog-watchlisthidebots' => 'Gözegçilik sanawymdan bot özgerdişlerini gizle',
 'tog-watchlisthideminor' => 'Gözegçilik sanawymdan ujypsyzja özgerdişleri gizle',
-'tog-watchlisthideliu' => 'Gözegçilik sanawymda, sessiýa açan ulanyjylar tarapyndan edilen özgerdişleri görkezme',
+'tog-watchlisthideliu' => 'Gözegçilik sanawymda, hasaba girilgi ulanyjylaryň özgerdişlerini görkezme',
 'tog-watchlisthideanons' => 'Gözegçilik sanawymda, anonim ulanyjylar tarapyndan edilen özgerdişleri görkezme',
 'tog-watchlisthidepatrolled' => 'Gözegçilik sanawymdan patrullyk edilen özgerdişleri gizle',
 'tog-ccmeonemails' => 'Beýleki ulanyjylara iberen e-poçtalarymyň nusgalaryny maňa-da iber',
@@ -434,14 +434,14 @@ Hasabyňyz açyldy.
 'remembermypassword' => 'Sessiýamy şu kompýuterde ýatda sakla  (iň köp $1 {{PLURAL:$1|günläp|günläp}})',
 'yourdomainname' => 'Siziň domeniňiz:',
 'externaldberror' => 'Ýa tassyklama maglumat bazasynyň säwligi bar ýa-da öz ulanyjy hasabyňyzy täzelemegiňize rugsat berilmeýär.',
-'login' => 'Sessiýa aç',
-'nav-login-createaccount' => 'Sessiýa aç / täze hasap edin',
+'login' => 'Hasaba gir',
+'nav-login-createaccount' => 'Hasaba gir / täze hasap aç',
 'loginprompt' => '{{SITENAME}} saýtynda sessiýa açmak üçin kukileri işletmegiňiz zerurdyr.',
-'userlogin' => 'Sessiýa aç / täze hasap edin',
+'userlogin' => 'Hasaba gir / täze hasap aç',
 'userloginnocreate' => 'Sessiýa aç',
-'logout' => 'Sessiýany ýap',
-'userlogout' => 'Sessiýany ýap',
-'notloggedin' => 'Sessiýa açmansyňyz',
+'logout' => 'Hasapdan çyk',
+'userlogout' => 'Hasapdan çyk',
+'notloggedin' => 'Hasaba girmänsiňiz',
 'nologin' => "Siziň heniz hasabyňyz ýokmy? '''$1'''",
 'nologinlink' => 'Onda özüňize bir hasap ediniň',
 'createaccount' => 'Täze hasap aç',
@@ -453,7 +453,7 @@ Hasabyňyz açyldy.
 'badretype' => 'Girizen parollaryňyz biri-birine gabat gelmeýär.',
 'userexists' => 'Girizen ulanyjy adyňyz ulanylýar.
 Başga bir at saýlamagyňyzy haýyş edýäris.',
-'loginerror' => 'Sessiýa açyş säwligi',
+'loginerror' => 'Hasaba girmekde säwlik',
 'createaccounterror' => 'Hasaby döredip bolmaýar: $1',
 'nocookiesnew' => 'Ulanyjy hasaby döredildi, ýöne sessiýa açmadyňyz.
 {{SITENAME}} sessiýa açmak üçin kukilerden peýdalanýar.
@@ -463,8 +463,8 @@ Olary işletmegiňizi, soňra bolsa täze ulanyjy adyňyz we parolyňyz bilen se
 Siziň kukileriňiz togtadylgy dur.
 Olary işletmegiňizi we gaýtadan synanyşyp görmegiňizi haýyş edýäris.',
 'noname' => 'Dogry bir ulanyjy adyny görkezmediňiz.',
-'loginsuccesstitle' => 'Sessiýa açyldy',
-'loginsuccess' => "'''{{SITENAME}} saýtynda \"\$1\" ulanyjy ady bilen sessiýa açdyňyz.'''",
+'loginsuccesstitle' => 'Hasaba girdiňiz',
+'loginsuccess' => "'''{{SITENAME}} saýtynda \"\$1\" ulanyjy ady bilen hasaba girdiňiz.'''",
 'nosuchuser' => '"$1" diýen at bilen ulanyjy ýok.
 Ulanyjy atlary baş hem-de setir harplara duýgurdyr.
 Ýazylyşyny barlaň ýa-da [[Special:UserLogin/signup|täze hasap açyň]].',
@@ -565,7 +565,7 @@ Parolyňyzy eýýäm şowlulyk bilen üýtgeden ýa-da täze wagtlaýyn parol ta
 'showpreview' => 'Deslapky syny görkez',
 'showlivepreview' => 'Gönümel deslapky syn',
 'showdiff' => 'Üýtgeşmeleri görkez',
-'anoneditwarning' => "'''Duýduryş:''' Sessiýa açmansyňyz. Şonuň üçin hem IP adresiňiz bu sahypanyň özgerdişler geçmişine ýazylyp alynjakdyr.",
+'anoneditwarning' => "'''Üns beriň:''' Hasaba girmänsiňiz. Şonuň üçin hem IP adresiňiz bu sahypanyň özgerdişler geçmişine ýazylyp alynar.",
 'anonpreviewwarning' => "''Sessiýa açmadyňyz. Ýazdyrsaňyz, sahypanyň redaktirleme geçmişine IP adresiňiz ýazylar.''",
 'missingsummary' => "'''Ýatlatma:''' Redaktirleme mazmunyny ýazmadyňyz.
 Sahypany ýazdyr düwmesine ýene bir gezek bassaňyz, özgerdişiňiz mazmunsyz ýazdyrylar.",
@@ -610,7 +610,7 @@ Häzirki IP adresiňiz $3, blokirleme belgiňiz bolsa #$5.
 'nosuchsectiontext' => 'Siz ýok bölümi redaktirlejek bolduňyz.
 Sahypany görýän mahalayňyz onuň ady üýtgedilen ýa-da öçürilen bolmagy mümkin.',
 'loginreqtitle' => 'Sessiýa açmagyňyz zerur',
-'loginreqlink' => 'sessiýa açyň',
+'loginreqlink' => 'hasaba gir',
 'loginreqpagetext' => 'Başga sahypalary görmek üçin $1.',
 'accmailtitle' => 'Parol iberildi.',
 'accmailtext' => "[[User talk:$1|$1]] üçin ugralla döredilen parol $2 adresine iberildi.
@@ -2438,9 +2438,9 @@ Kompýuteriňize ýazdyryň we şu ýere ýükläň.',
 'tooltip-pt-preferences' => 'Ileri tutmalaryňyz',
 'tooltip-pt-watchlist' => 'Gözegçilikde saklaýan sahypalarym',
 'tooltip-pt-mycontris' => 'Eden goşantlaryňyzyň sanawy',
-'tooltip-pt-login' => 'Sessiýa açmagyňyz maslahat berilýär, ýöne hökmany däl.',
+'tooltip-pt-login' => 'Hasaba girmegiňiz maslahat berilýär, ýöne hökmany däl.',
 'tooltip-pt-anonlogin' => 'Sessiýa açmagyňyz maslahat berilýär, yöne hökmany däl',
-'tooltip-pt-logout' => 'Sessiýany ýap',
+'tooltip-pt-logout' => 'Hasapdan çyk',
 'tooltip-ca-talk' => 'Sahypanyň mazmuny barada garaýşyňy beýan et',
 'tooltip-ca-edit' => 'Bu sahypany redaktirläp bilersiňiz. Ýazdyrmankaňyz synlap görmekligi ýatdan çykarmaň.',
 'tooltip-ca-addsection' => 'Täze bölüm başlat',
@@ -3069,7 +3069,7 @@ Faýlyň adyny "{{ns:file}}:" pristawkasyz giriziň.',
 * <strong class="mw-specialpagerestricted">Çäklendirilen ýörite sahypalar.</strong>',
 'specialpages-group-maintenance' => 'Tehniki abatlaýyş hasabatlary',
 'specialpages-group-other' => 'Başga ýörite sahypalar',
-'specialpages-group-login' => 'Sessiýa aç / hasap edin',
+'specialpages-group-login' => 'Hasaba gir / täze hasap aç',
 'specialpages-group-changes' => 'Soňky üýtgeşmeler we gündelikler',
 'specialpages-group-media' => 'Media hasabatlary we ýüklemeler',
 'specialpages-group-users' => 'Ulanyjylar we hukuklar',
index 73ee383..6f89076 100644 (file)
@@ -561,6 +561,7 @@ Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SIT
 'remembermypassword' => 'Tandaan ang paglagda ko sa kompyuter na ito (pinakamarami na ang $1 {{PLURAL:$1|araw|mga araw}})',
 'securelogin-stick-https' => 'Manatiling konektado sa HTTPS matapos lumagda',
 'yourdomainname' => 'Dominyo mo:',
+'password-change-forbidden' => 'Hindi mo maaaring palitan ang mga hudyat sa wiking ito.',
 'externaldberror' => 'Maaaring may kamalian sa pagpapatotoo ng kalipunan ng mga dato o kaya hindi ka pinahintulutang isapanahon ng iyong panlabas na kuwenta o patnugutan.',
 'login' => 'Lumagda',
 'nav-login-createaccount' => 'Lumagda / lumikha ng kuwenta',
@@ -1922,9 +1923,9 @@ Marahil ay naisa mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawa
 
 'disambiguations' => 'Mga pahinang nakakawing sa mga pahina ng paglilinaw',
 'disambiguationspage' => 'Template:disambig',
-'disambiguations-text' => "Ang sumusunod ay mga pahinang may ugnay (link) sa isang '''pahinang naglilinaw'''.
-Dapat silang umugnay sa tamang paksa<br />
-Tinuturing ang isang pahina bilang pahinang naglilinaw kung ginagamit nito ang isang suleras (template) na nakaugnay mula sa [[MediaWiki:Disambiguationspage]].",
+'disambiguations-text' => "Ang sumusunod na mga pahina ay naglalaman ng kahit na isang kawing na papunta sa isang '''pahina ng paglilinaw'''.
+Sa halip, maaaring kailanganing kumawing ang mga ito sa isang mas naaangkop na pahina.<br />
+Ang isang pahina ay itinuturing bilang pahina ng paglilinaw kung gumagamit ito ng isang suleras na nakakawing magmula sa [[MediaWiki:Disambiguationspage|MediaWiki:Pahina ng mga paglilinaw]].",
 
 'doubleredirects' => 'Mga dobleng karga',
 'doubleredirectstext' => 'Nagtatala ang pahinang ito ng mga pahinang pumupunta sa iba pang mga pahinang nililipatan.  Naglalaman ang bawat hanay ng mga kawing sa una ang pangalawang kapupuntahan, maging ng puntiryang pangalawang kapupuntahan, na karaniwang "tunay" na puntiryang pahina, na dapat kinatuturuan ng unang pupuntahan.
@@ -1951,7 +1952,7 @@ Nasugpo na ang mga ipinasok na <del>inekisan</del>.',
 'nlinks' => '$1 {{PLURAL:$1|ugnay|mga ugnay}}',
 'nmembers' => '$1 {{PLURAL:$1|kasapi|mga kasapi}}',
 'nrevisions' => '$1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
-'nviews' => '$1 {{PLURAL:$1|nakita|mga nakikita}}',
+'nviews' => '$1 {{PLURAL:$1|pagtingin|mga pagtingin}}',
 'nimagelinks' => 'Ginamit sa $1 {{PLURAL:$1|pahina|mga pahina}}',
 'ntransclusions' => 'ginamit sa $1 {{plural:$1|pahina|mga pahina}}',
 'specialpage-empty' => 'Walang resulta para sa ulat na ito.',
@@ -2270,6 +2271,8 @@ magpatuloy na may pagiingat.',
 'rollback' => 'Mga pagbabagong may kaugnayan sa pagpapagulong na pabalik sa (mas) dati',
 'rollback_short' => 'Pagulunging pabalik sa (mas) dati',
 'rollbacklink' => 'pagulunging pabalik sa (mas) dati',
+'rollbacklinkcount' => 'pagulunging pabalik ang $1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
+'rollbacklinkcount-morethan' => 'pagulunging pabalik ang mahigit sa $1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
 'rollbackfailed' => 'Nabigo ang pagpapagulong na pabalik sa (mas) dati',
 'cantrollback' => 'Hindi maibalik ang pagbabago; tanging ang may-akda lamang ng pahinang ito ang huling tagapagambag/tagapaglathala.',
 'alreadyrolled' => 'Hindi mapagulong na pabalik sa dati ang huling pagbabago ng [[$1]] ni ([[User talk:$2|Usapan]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
index 98ff709..a38edfa 100644 (file)
@@ -220,7 +220,7 @@ $messages = array(
 'copyrightpage' => '{{ns:project}}:Мыәллифә һуғуғ',
 'currentevents' => 'Есәтнә һодисон',
 'currentevents-url' => 'Project: Есәтнә һодисон',
-'disclaimers' => 'Чы мәсулијјәтику имтина.',
+'disclaimers' => 'Че мәсулијјәтику имтино.',
 'disclaimerpage' => 'Project:Дејни бә гиј ныгәтеј',
 'edithelp' => 'Арајиш бо редактә кардеј',
 'edithelppage' => 'Help:Арајиш бо сәрост кардеј',
@@ -387,7 +387,7 @@ $messages = array(
 Ым сәһифә чоәдәнә дуз карде зәруријјәти јохләмишкәнән.
 Жинтоно нышу доә быә бычи ым сәһифә позулмуш быә.",
 'moveddeleted-notice' => 'Ым сәһифә молә быә.
-Арајиши горнә жинтоно нишо доә быән чы сәһифә молә ијән ном дәгиш кардә нывыштәјон.',
+Арајиши горнә жинтоно нишо доә быән че сәһифә молә ијән ном дәгиш кардә нывыштәјон.',
 
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Дығғәт:''' Дахыл кардә быә ғәлибон сәкыштә памјә ве јоле.
@@ -456,7 +456,7 @@ $messages = array(
 'searchmenu-exists' => "'''Бы вики-нәхшәдә һесте сәһифә «[[:$1]]»'''",
 'searchmenu-new' => "'''Сәһифә офәјеј «[[:$1]]» бә ым вики-нахшәдә!'''",
 'searchprofile-articles' => 'Әсосә сәһифон',
-'searchprofile-project' => 'Чы араијшон ијән нахшон сәһифон',
+'searchprofile-project' => 'Че араијшон ијән нахшон сәһифон',
 'searchprofile-images' => 'Мултимедијә',
 'searchprofile-everything' => 'Һар вырәдә',
 'searchprofile-advanced' => 'һовуж',
@@ -472,7 +472,7 @@ $messages = array(
 'search-suggest' => 'Еһтимол шымә нәзәрәдә ым гәтејдәбијон: $1',
 'searchrelated' => 'ангыл кардә быә',
 'searchall' => 'Һәммәј',
-'showingresultsheader' => "{{PLURAL:$5|Нәтиҹә'''$1''' из '''$3'''|Нәтиҹон '''$1 — $2''' чы '''$3'''}} бо '''$4'''",
+'showingresultsheader' => "{{PLURAL:$5|Нәтиҹә'''$1''' из '''$3'''|Нәтиҹон '''$1 — $2''' че '''$3'''}} бо '''$4'''",
 'search-nonefound' => 'Бә шымә хәбәсә ујғун омә сәкыштә пәјдо ныбе.',
 'powersearch-field' => 'Нәве',
 'powersearch-toggleall' => 'Һәммәј',
@@ -576,7 +576,7 @@ $messages = array(
 'filehist-current' => 'есәтнә',
 'filehist-datetime' => 'Тарых/Вахт',
 'filehist-thumb' => 'Гәдә шикил',
-'filehist-thumbtext' => 'Миниатјур бо рәвојәти чы вахтику $1',
+'filehist-thumbtext' => 'Миниатјур бо рәвојәти че вахтику $1',
 'filehist-user' => 'Иштирокәкә',
 'filehist-dimensions' => 'Објекти улгу',
 'filehist-comment' => 'Ғејд',
@@ -584,7 +584,7 @@ $messages = array(
 'linkstoimage' => '{{PLURAL:$1|сәһифә|$1 сәһифә}} сәбон вардә бә ын фајл:',
 'nolinkstoimage' => 'Бә ым фајли сәбон вардә сәһифон нин.',
 'sharedupload-desc-here' => 'Ым фајл чыјо пегәтә быә $1 ијән бәзыне истифодә бе бә ҹо нәхшонәдә.
-Мәлумот чы әчәј [$2 тәсвири сәһифәку] бә жиј доә быә.',
+Мәлумот чн әчәј [$2 тәсвири сәһифәку] бә жиј доә быә.',
 
 # Random page
 'randompage' => 'Рајрастә мәғолә',
@@ -614,7 +614,7 @@ $messages = array(
 
 # Special:AllPages
 'allpages' => 'Һәммәј сәһифон',
-'alphaindexline' => 'чы $1 тоса $2',
+'alphaindexline' => 'че $1 тоса $2',
 'allarticles' => 'Һәммәј сәһифон',
 'allpagessubmit' => 'Бә вырә роснијеј',
 
@@ -729,6 +729,7 @@ $messages = array(
 'allmessagesname' => 'Хәбә',
 'allmessagesdefault' => 'Иминә огәтә быә мәтн',
 'allmessages-filter-all' => 'Һаммај',
+'allmessages-filter-submit' => 'Давард',
 
 # Thumbnails
 'thumbnail-more' => 'Һејве кардеј',
@@ -766,7 +767,7 @@ $messages = array(
 'tooltip-t-whatlinkshere' => 'Бә ым сәһифә сәбон вардә һәммәј вики сәһифон сијоһи',
 'tooltip-t-recentchangeslinked' => 'Охонә дәгишон сәһифонәдә, бә ком сәһифон сәбон вардә ым сәһифә',
 'tooltip-feed-atom' => 'Транслјасијә кардеј бә Atom бо ым сәһифә',
-'tooltip-t-contributions' => 'Чы иштирок кардәкәси дагиш кардә быә сәһифон сијоһи',
+'tooltip-t-contributions' => 'Че иштирок кардәкәси дагиш кардә быә сәһифон сијоһи',
 'tooltip-t-emailuser' => 'Бы иштироәкә номә вығәнде',
 'tooltip-t-upload' => 'Шикилон јаанки мултимедијә фајлон бо жај',
 'tooltip-t-specialpages' => 'Хыдмәтә сәһифон сијоһи',
@@ -838,12 +839,15 @@ $messages = array(
 # EXIF tags
 'exif-imagewidth' => 'Һовужи',
 'exif-imagelength' => 'Былынди',
+'exif-source' => 'Сәвон',
 'exif-languagecode' => 'Зывон',
 
 'exif-gaincontrol-0' => 'Ни',
 
 'exif-saturation-0' => 'Ади',
 
+'exif-dc-publisher' => 'Нәшрәкә',
+
 # External editor support
 'edit-externally' => 'Редактә кардеј ым фајли де заһири програм',
 'edit-externally-help' => '(Бо мыффәссәлә мәлумотон бә [//www.mediawiki.org/wiki/Manual:External_editors дәрсәвон бо сохтәј] дијә быкан)',
@@ -853,6 +857,9 @@ $messages = array(
 'namespacesall' => 'һәммәј',
 'monthsall' => 'һәммәј',
 
+# Table pager
+'table_pager_limit_submit' => 'Давард',
+
 # Watchlist editing tools
 'watchlisttools-view' => 'Сәһифонәдә дәгишон сијоһику',
 'watchlisttools-edit' => 'Дијә кардеј/сәрост кардеј сијоһи',
index 0ed7b85..82efc73 100644 (file)
@@ -327,7 +327,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Son değişikliklerde gözden geçirilen düzenlemeleri gizle',
 'tog-newpageshidepatrolled' => 'Kontrol edilmiş sayfaları yeni sayfalar listesinde gizle',
 'tog-extendwatchlist' => 'İzleme listesini sadece son değil, tüm değişiklikleri görmek için genişlet',
-'tog-usenewrc' => 'Gelişmiş son değişiklikleri kullan (JavaScript gerekir)',
+'tog-usenewrc' => 'Son değişiklikler sayfasındaki ve izleme listesindeki değişiklikleri gruplandırma (JavaScript gerektirir)',
 'tog-numberheadings' => 'Başlıkları otomatik numaralandır',
 'tog-showtoolbar' => 'Düzenleme yaparken araç çubuğunu göster (JavaScript gerekir)',
 'tog-editondblclick' => 'Çift tıklayarak sayfayı düzenle (JavaScript gerekir)',
@@ -335,17 +335,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Bölümleri bölüm başlığına sağ tıklayarak değiştirebilme olanağı ver (JavaScript)',
 'tog-showtoc' => 'İçindekiler tablosunu göster (3 taneden fazla başlığı olan sayfalar için)',
 'tog-rememberpassword' => 'Girişimi bu tarayıcıda hatırla (en fazla $1 {{PLURAL:$1|gün|gün}} için)',
-'tog-watchcreations' => 'Oluşturmuş olduğum sayfaları izleme listeme ekle',
-'tog-watchdefault' => 'Değişiklik yapılan sayfayı izleme listesine ekle',
-'tog-watchmoves' => 'Taşıdığım sayfaları izleme listeme ekle',
-'tog-watchdeletion' => 'Sildiğim sayfaları izleme listeme ekle',
+'tog-watchcreations' => 'Açtığım sayfaları ve yüklediğim dosyaları izleme listeme ekle',
+'tog-watchdefault' => 'Düzenleme yaptığım sayfaları ve dosyaları izleme listeme ekle',
+'tog-watchmoves' => 'Taşıdığım sayfaları ve dosyaları izleme listeme ekle',
+'tog-watchdeletion' => 'Sildiğim sayfaları ve dosyaları izleme listeme ekle',
 'tog-minordefault' => "Değişikliği 'küçük değişiklik' olarak seçili getir",
 'tog-previewontop' => 'Önizlemeyi yazma alanın üstünde göster',
 'tog-previewonfirst' => 'Değiştirmede önizlemeyi göster',
 'tog-nocache' => 'Tarayıcı sayfalarını bellekleme',
-'tog-enotifwatchlistpages' => 'Sayfa değişikliklerinde bana e-posta gönder',
+'tog-enotifwatchlistpages' => 'İzleme listemdeki bir sayfanın ya da dosyanın değiştirilmesi durumunda bana e-posta gönder',
 'tog-enotifusertalkpages' => 'Kullanıcı sayfamda değişiklik olduğunda bana e-posta gönder',
-'tog-enotifminoredits' => 'Sayfalardaki küçük değişikliklerde de bana e-posta gönder',
+'tog-enotifminoredits' => 'Sayfalardaki ve dosyalardaki küçük değişikliklerde bana e-posta gönder',
 'tog-enotifrevealaddr' => 'E-posta adresimi bildiri postalarımda göster.',
 'tog-shownumberswatching' => 'İzleyen kullanıcı sayısını göster',
 'tog-oldsig' => 'Mevcut imza:',
@@ -565,7 +565,7 @@ $1',
 'edithelp' => 'Nasıl değiştirilir?',
 'edithelppage' => 'Help:Sayfa nasıl değiştirilir',
 'helppage' => 'Help:İçindekiler',
-'mainpage' => 'Ana sayfa',
+'mainpage' => 'Ana Sayfa',
 'mainpage-description' => 'Ana sayfa',
 'policy-url' => 'Project:Politika',
 'portal' => 'Topluluk portali',
@@ -592,7 +592,7 @@ $1',
 'viewsourceold' => 'kaynağı gör',
 'editlink' => 'değiştir',
 'viewsourcelink' => 'kaynağı gör',
-'editsectionhint' => '$1 bölümünü değiştir',
+'editsectionhint' => 'Değiştirilen bölüm: $1',
 'toc' => 'Konu başlıkları',
 'showtoc' => 'göster',
 'hidetoc' => 'gizle',
@@ -678,6 +678,8 @@ Lütfen URL\'yi not ederek bunu bir [[Special:ListUsers/sysop|hizmetliye]] ileti
 'cannotdelete' => '"$1" sayfa ya da dosyası silinemedi.
 Başka bir kullanıcı tarafından silinmiş olabilir.',
 'cannotdelete-title' => '"$1" sayfasını silemezsiniz',
+'delete-hook-aborted' => 'Silme işlemi kanca tarafından durduruldu. 
+Hiçbir açıklama yapılmadı.',
 'badtitle' => 'Geçersiz başlık',
 'badtitletext' => 'Girilen sayfa adı ya hatalı ya boş ya da diller arası bağlantı veya vikiler arası bağlantı içerdiğinden geçerli değil. Başlıklarda kullanılması yasak olan bir ya da daha çok karakter içeriyor olabilir.',
 'perfcached' => 'Veriler daha önceden hazırlanmış olabilir. Bu sebeple güncel olmayabilir! A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
@@ -714,7 +716,7 @@ Verilen sebep: ''$2''.",
 # Login and logout pages
 'logouttext' => "'''Oturumu kapattınız.'''
 
-Şimdi kimliğinizi belirtmeksizin {{SITENAME}} sitesini kullanmaya devam edebilirsiniz ya da aynı kullanıcı adıyla ya da ister başka bir kullanıcı adıyla [[Special:UserLogin|yeniden oturum açabilirsiniz]].
+Şimdi anonim olarak {{SITENAME}} sitesini kullanmaya devam edebilirsiniz ya da aynı kullanıcı adıyla ya da ister başka bir kullanıcı adıyla [[Special:UserLogin|yeniden oturum açabilirsiniz]].
 Tarayıcınızın önbelleğini temizleyene kadar bazı sayfalar sanki hâlâ oturumunuz açıkmış gibi görünebilir.",
 'welcomecreation' => '== Hoş geldin, $1! ==
 
@@ -757,7 +759,7 @@ Lütfen çerez kullanımını açınız ve yeni kullanıcı adınız ve şifreni
 Çerezlerin açık olduğundan emin olun ve bu sayfayı yeniden yükleyip tekrar deneyin.',
 'noname' => 'Geçerli bir kullanıcı adı girmediniz.',
 'loginsuccesstitle' => 'Oturum açıldı',
-'loginsuccess' => '{{SITENAME}} sitesinde "$1" kullanıcı adıyla oturum açmış bulunmaktasınız.',
+'loginsuccess' => "'''{{SITENAME}} üzerinde \"\$1\" kullanıcı adıyla oturum açtınız.'''",
 'nosuchuser' => '"$1" adında bir kullanıcı bulunmamaktadır.
 Kullanıcı adları büyük-küçük harf duyarlıdır.
 Yazılışı kontrol edin veya [[Special:UserLogin/signup|yeni bir hesap açın]].',
@@ -785,7 +787,7 @@ Hizmeti kötüye kullanmayı önlemek için, her {{PLURAL:$1|bir saatte|$1 saatt
 'mailerror' => 'E-posta gönderim hatası: $1',
 'acct_creation_throttle_hit' => 'Sizin IP adresinizi kullanarak bu vikiyi ziyaret edenler son günde {{PLURAL:$1|1 hesap|$1 hesap}} oluşturdu, bu sayı bu zaman aralığında izin verilen azami sayıdır.
 Sonuç olarak, bu IP adresini kullanan ziyaretçiler şu anda daha fazla hesap açamazlar.',
-'emailauthenticated' => 'E-posta adresiniz $2 $3 tarihinde doğrulanmıştı.',
+'emailauthenticated' => 'E-posta adresiniz $2 $3 tarihinde doğrulandı.',
 'emailnotauthenticated' => 'E-posta adresiniz henüz onaylanmadı.
 Aşağıdaki işlevlerin hiçbiri için e-posta gönderilmeyecektir.',
 'noemailprefs' => 'Bu özelliklerin çalışması için bir e-posta adresi belirtiniz.',
@@ -793,6 +795,7 @@ Aşağıdaki işlevlerin hiçbiri için e-posta gönderilmeyecektir.',
 'invalidemailaddress' => 'Geçersiz bir formatta yazıldığından dolayı bu e-posta adresi kabul edilemez.
 Lütfen geçerli bir formatta e-posta adresi yazın veya bu bölümü boş bırakın.',
 'cannotchangeemail' => 'Hesabın e-posta adresi bu wiki üzerinden değiştirilemez.',
+'emaildisabled' => 'Bu siteden e-posta gönderemezsiniz.',
 'accountcreated' => 'Hesap açıldı',
 'accountcreatedtext' => '$1 için bir kullanıcı hesabı açıldı.',
 'createaccount-title' => '{{SITENAME}} için yeni kullanıcı hesabı oluşturulması',
@@ -1109,8 +1112,8 @@ $3 tarafından verilen sebep ''$2''",
 'last' => 'son',
 'page_first' => 'ilk',
 'page_last' => 'son',
-'histlegend' => "Fark seçimi: karşılaştırmayı istediğiniz 2 sürümün önündeki daireleri işaretleyip, enter'a ya da sayfanın en altında bulunan düğmeye basın.<br />
-Tanımlar: '''({{int:cur}})''' = güncel sürümle aradaki fark, '''({{int:last}})''' = bir önceki sürümle aradaki fark, '''{{int:minoreditletter}}''' = küçük değişiklik.",
+'histlegend' => "Fark seçimi: Karşılaştırmayı istediğiniz 2 sürümün önündeki daireleri işaretleyip, \"{{int:Compareselectedversions}}\" düğmesine basın.<br />
+Tanımlar: '''({{int:cur}})''' = son revizyon ile arasındaki fark, '''({{int:last}})''' = bir önceki revizyon ile arasındaki fark, '''{{int:minoreditletter}}''' = küçük değişiklik.",
 'history-fieldset-title' => 'Geçmişe gözat',
 'history-show-deleted' => 'Sadece silinenler',
 'histfirst' => 'En eski',
@@ -1354,6 +1357,7 @@ Aramanızın başına '''all:''' önekini ekleyerek tüm içeriği aramayı (tar
 'prefs-beta' => 'Beta özellikleri',
 'prefs-datetime' => 'Tarih ve saat',
 'prefs-labs' => 'Lab özellikleri',
+'prefs-user-pages' => 'Kullanıcı sayfaları',
 'prefs-personal' => 'Kullanıcı bilgileri',
 'prefs-rc' => 'Son değişiklikler',
 'prefs-watchlist' => 'İzleme listesi',
@@ -1386,7 +1390,7 @@ Aramanızın başına '''all:''' önekini ekleyerek tüm içeriği aramayı (tar
 'prefs-help-watchlist-token' => 'Bu alanı gizli bir anahtarla doldurmak, izleme listeniz için bir RSS beslemesi oluşturur.
 Bu alandaki anahtarı bilen herkes izleme listenizi okuyabilir, bu yüzden güvenli bir değer seçin.
 Kullanabileceğiniz rastgele-üretilmiş bir değer: $1',
-'savedprefs' => 'Ayarlar kaydedildi.',
+'savedprefs' => 'Tercihleriniz kaydedildi.',
 'timezonelegend' => 'Zaman dilimi:',
 'localtime' => 'Yerel saat:',
 'timezoneuseserverdefault' => 'Viki varsayılanını kullanın ($1)',
@@ -1809,7 +1813,7 @@ Eğer sorun tekrarlanırsa, bir [[Special:ListUsers/sysop|hizmetli]] ile temasa
 'backend-fail-opentemp' => 'Geçici dosya açılamadı.',
 'backend-fail-closetemp' => 'Geçici dosya kapanamadı.',
 'backend-fail-read' => '$1 dosyası okunamadı.',
-'backend-fail-create' => '$1 dosyası oluşturulamadı.',
+'backend-fail-create' => '$1 dosyası yazılamadı.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'Dosya ZIP denetimleri için açılırken bir hata ile karşılaşıldı.',
index 4b4e368..06d50bf 100644 (file)
@@ -2473,6 +2473,8 @@ $UNWATCHURL
 'rollback' => 'Відкинути редагування',
 'rollback_short' => 'Відкинути',
 'rollbacklink' => 'відкинути',
+'rollbacklinkcount' => 'скасування $1 {{PLURAL:$1|редагування|редагувань|редагувань}}',
+'rollbacklinkcount-morethan' => 'скасування більш, ніж $1 {{PLURAL:$1|редагування|редагувань|редагувань}}',
 'rollbackfailed' => 'Відкинути зміни не вдалося',
 'cantrollback' => 'Неможливо відкинути редагування, останній, хто редагував, є єдиним автором цієї сторінки.',
 'alreadyrolled' => 'Неможливо відкинути останні редагування [[:$1]], зроблені [[User:$2|$2]] ([[User talk:$2|обговорення]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); хтось інший уже змінив чи відкинув редагування цієї статті.
index 7804bdb..3b51841 100644 (file)
@@ -1837,6 +1837,7 @@ Nếu vẫn còn bị lỗi, xin hãy liên hệ với một [[Special:ListUsers
 'lockmanager-fail-releaselock' => 'Không thể thả khóa cho “$1”.',
 'lockmanager-fail-db-bucket' => 'Không thể liên lạc với đủ cơ sở dữ liệu khóa trong nhóm $1.',
 'lockmanager-fail-db-release' => 'Không thể thả các chìa khóa trên cơ sở dữ liệu $1.',
+'lockmanager-fail-svr-acquire' => 'Không thể lấy các chìa khóa trên máy chủ $1.',
 'lockmanager-fail-svr-release' => 'Không thể thả các chìa khóa trên máy chủ $1.',
 
 # ZipDirectoryReader
@@ -4062,6 +4063,4 @@ Nếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới.
 'duration-centuries' => '$1 thế kỷ',
 'duration-millennia' => '$1 thiên niên kỷ',
 
-# Unknown messages
-'lockmanager-fail-svr-acquire' => 'Không thể lấy các chìa khóa trên máy chủ $1.',
 );
index 02fd042..959c159 100644 (file)
@@ -197,7 +197,7 @@ $messages = array(
 'tog-showtoc' => 'ווייז דאס אינהאלט קעסטל<br />(פאר בלעטער מיט מער ווי 3 קעפלעך)',
 'tog-rememberpassword' => 'געדענק מיין אריינלאגירן אין דעם בלעטערער (ביז $1 {{PLURAL:$1|טאָג|טעג}})',
 'tog-watchcreations' => 'צולייגן בלעטער וואס איך באשאף און טעקעס וואס איך לאד ארויף צו מיין אכטונג ליסטע',
-'tog-watchdefault' => '×\90×\95×\99פפ×\90ס×\9f ×\90×±×\98×\90Ö¸×\9e×\90Ö·×\98×\99ש ×\93×\99 ×\90ר×\98×\99ק×\9c×¢×\9f ×°×\90ָס ×\90×\99×\9a ×\91×\90Ö·×\90ַר×\91×¢×\98',
+'tog-watchdefault' => 'צ×\95×\9c×\99×\99×\92×\9f ×\91×\9c×¢×\98ער ×\95×\95×\90ס ×\90×\99×\9a ×¨×¢×\93×\90ק×\98×\99ר ×¦×\95 ×\9e×\99×\99×\9f ×\90×\9b×\98×\95× ×\92 ×\9c×\99ס×\98×¢',
 'tog-watchmoves' => 'צולייגן בלעטער וואס איך באוועג און טעקעס וואס איך לאד ארויף צו מיין אכטונג ליסטע',
 'tog-watchdeletion' => 'צולייגן בלעטער וואס איך מעק אויס צו מיין אויפפאסונג ליסטע',
 'tog-minordefault' => 'באגרענעצן אלע רעדאַקטירונגען גרונטלעך אלס מינערדיק',
@@ -2477,6 +2477,7 @@ $1',
 'proxyblockreason' => 'אייער איי.פי. אדרעס איז געווארן געבלאקט צוליב דעם ווייל דאס איז א אפענער פראקסי. ביטע פארבינדט זיך מיט אייער אינטערנעט סערוויס פראוויידער אדער טעקס סאפארט צו אינפארמירן זיי איבער דעם ערענסטן זיכערהייט פראבלעם.',
 'proxyblocksuccess' => 'געטאן.',
 'cant-block-while-blocked' => 'איר קען נישט בלאקירן קיין אנדערע באניצער ווען איר זענט אליין בלאקירט.',
+'ipbblocked' => 'איר קען נישט בלאקירן אדער אויפבלאקירן אנדערע באניצער, ווייל איר זענט אליין בלאקירט.',
 'ipbnounblockself' => 'איר זענט נישט ערלויבט זיך אליין אויסבלאקירן',
 
 # Developer tools
index 8f98c49..b7bc673 100644 (file)
@@ -285,17 +285,17 @@ $messages = array(
 'tog-editsectiononrightclick' => '启用右击段落标题编辑段落(需要JavaScript)',
 'tog-showtoc' => '显示目录(对于有多于3个标题的页面)',
 'tog-rememberpassword' => '在浏览器上记住我的登录状态(最长$1天)',
-'tog-watchcreations' => '添加我创建的页面至我的监视列表',
-'tog-watchdefault' => '添加我编辑的页面至我的监视列表',
+'tog-watchcreations' => '添加我创建的页面和上传的文件至我的监视列表',
+'tog-watchdefault' => '添加我编辑的页面和文件至我的监视列表',
 'tog-watchmoves' => '将我移动的页面和文件添加到我的监视列表',
-'tog-watchdeletion' => '添加我删除的页面至我的监视列表',
+'tog-watchdeletion' => '添加我删除的页面和文件至我的监视列表',
 'tog-minordefault' => '默认标记编辑为小编辑',
 'tog-previewontop' => '在编辑框上方显示预览',
 'tog-previewonfirst' => '首次编辑时显示预览',
 'tog-nocache' => '停用浏览器页面缓存',
-'tog-enotifwatchlistpages' => '当我的监视列表中的页面更改时发送电子邮件通知我',
+'tog-enotifwatchlistpages' => 'å½\93æ\88\91ç\9a\84ç\9b\91è§\86å\88\97表中ç\9a\84页é\9d¢æ\88\96æ\96\87件æ\9b´æ\94¹æ\97¶å\8f\91é\80\81ç\94µå­\90é\82®ä»¶é\80\9aç\9f¥æ\88\91',
 'tog-enotifusertalkpages' => '当我的讨论页更改时发送电子邮件通知我',
-'tog-enotifminoredits' => '当页面有小编辑时发送电子邮件通知我',
+'tog-enotifminoredits' => '当页面和文件有小编辑时发送电子邮件通知我',
 'tog-enotifrevealaddr' => '在通知电子邮件中显示我的电子邮件地址',
 'tog-shownumberswatching' => '显示监视用户数',
 'tog-oldsig' => '当前签名:',
@@ -1426,7 +1426,7 @@ $1",
 'right-autoconfirmed' => '编辑半保护页面',
 'right-bot' => '被视为自动过程',
 'right-nominornewtalk' => '不使小编辑在讨论页面引发新信息提示',
-'right-apihighlimits' => '在API问题中使用更高的限制',
+'right-apihighlimits' => '在API查询中使用更高的限制',
 'right-writeapi' => '使用书写API',
 'right-delete' => '删除页面',
 'right-bigdelete' => '删除有大型历史的页面',
@@ -2077,7 +2077,7 @@ $1',
 # Special:ActiveUsers
 'activeusers' => '活跃用户列表',
 'activeusers-intro' => '这个列表列出了最近$1天进行过操作的用户。',
-'activeusers-count' => '最近$3天编辑了$1次',
+'activeusers-count' => '最近$3天内有$1次编辑',
 'activeusers-from' => '显示用户开始于:',
 'activeusers-hidebots' => '隐藏机器人',
 'activeusers-hidesysops' => '隐藏管理员',
@@ -2664,11 +2664,9 @@ $1被封禁的理由是:“$2”',
 
 # Export
 'export' => '导出页面',
-'exporttext' => '您可以将特定页面或一组页面的文本以及编辑历史以 XML 格式导出;这样可以将有关页面通过“[[Special:Import|导入页面]]”页面导入到另一个运行 MediaWiki 的网站。
+'exporttext' => '您可以将特定页面或一组页面的文本以及编辑历史以XML格式导出;这样可以将有关页面通过“[[Special:Import|导入页面]]”页面导入到另一个运行MediaWiki的网站。
 
-要导出页面,请在下面的文本框中输入页面标题,每行一个标题,
-并选择你是否需要导出带有页面历史的以前的修订本,
-或是只选择导出带有最后一次编辑信息的当前修订版本。
+要导出页面,请在下面的文本框中输入页面标题,每行一个标题,并选择你是否需要导出带有页面历史的以前的修订本,或是只选择导出带有最后一次编辑信息的当前修订版本。
 
 此外你还可以利用链接导出文件,例如你可以使用[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]导出“[[{{MediaWiki:Mainpage}}]]”页面。',
 'exportall' => '导出所有页面',
index 9c07b42..babc314 100644 (file)
@@ -620,6 +620,7 @@ $2',
 'remembermypassword' => '在這個瀏覽器上記住我的登入資訊(可維持 $1 {{PLURAL:$1|天|天}})',
 'securelogin-stick-https' => '登入後繼續以HTTPS連接',
 'yourdomainname' => '您的網域:',
+'password-change-forbidden' => '您不可更改此 wiki 上的密碼。',
 'externaldberror' => '這可能是由於驗證資料庫錯誤或您被禁止更新您的外部賬號。',
 'login' => '登入',
 'nav-login-createaccount' => '登入/建立新帳號',
@@ -2067,7 +2068,7 @@ Template:消除歧義',
 # Special:ActiveUsers
 'activeusers' => '活躍用戶列表',
 'activeusers-intro' => '這個是在最近$1天之內有一些動作的用戶列表。',
-'activeusers-count' => 'æ\96¼$3天å\85§ç\9a\84$1次編輯',
+'activeusers-count' => 'æ\9c\80è¿\91$3天å\85§æ\9c\89$1次編輯',
 'activeusers-from' => '顯示用戶開始於:',
 'activeusers-hidebots' => '隱藏機器人',
 'activeusers-hidesysops' => '隱藏管理員',
@@ -2245,6 +2246,8 @@ $UNWATCHURL
 'rollback' => '恢復編輯',
 'rollback_short' => '恢復',
 'rollbacklink' => '恢復',
+'rollbacklinkcount' => '恢復 $1 次編輯',
+'rollbacklinkcount-morethan' => '恢復多過 $1 次編輯',
 'rollbackfailed' => '無法恢復',
 'cantrollback' => '無法恢復編輯;最後的貢獻者是本文的唯一作者。',
 'alreadyrolled' => '無法回退由[[User:$2|$2]]([[User talk:$2|討論]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]在[[:$1]]上的編輯;其他人已經編輯或者回退了該頁。
@@ -2676,13 +2679,11 @@ $1被封禁的理由是“$2”',
 
 # Export
 'export' => '匯出頁面',
-'exporttext' => '您可以將特定頁面或一組頁面的文字以及編輯歷史以 XML 格式匯出;這樣可以將有關頁面透過「[[Special:Import|匯入頁面]]」頁面匯入到另一個執行 MediaWiki 的網站。
+'exporttext' => '您可以將特定頁面或一組頁面的文字以及編輯歷史以XML格式匯出;這樣可以將有關頁面透過「[[Special:Import|匯入頁面]]」頁面匯入到另一個執行MediaWiki的網站。
 
-要匯出頁面,請在下面的文字框中輸入頁面標題,每行一個標題,
-並選擇{{GENDER:|你|妳|你}}是否需要匯出帶有頁面歷史的以前的修訂版本,
-或是只選擇匯出帶有最後一次編輯訊息的目前修訂版本。
+要匯出頁面,請在下面的文字框中輸入頁面標題,每行一個標題,並選擇{{GENDER:|你|妳|你}}是否需要匯出帶有頁面歷史的以前的修訂版本,或是只選擇匯出帶有最後一次編輯訊息的目前修訂版本。
 
-此外{{GENDER:|你|妳|你}}還可以利用連結匯出檔案,例如{{GENDER:|你|妳|你}}可以使用 [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] 匯出「[[{{MediaWiki:Mainpage}}]]」頁面。',
+此外{{GENDER:|你|妳|你}}還可以利用連結匯出檔案,例如{{GENDER:|你|妳|你}}可以使用[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]匯出「[[{{MediaWiki:Mainpage}}]]」頁面。',
 'exportall' => '導出所有頁面',
 'exportcuronly' => '僅包含目前的修訂,而不是全部的歷史。',
 'exportnohistory' => "----
index 8a53bdf..1fbc434 100644 (file)
@@ -325,7 +325,6 @@ $messages = array(
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索有關日誌],
 或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 編輯此頁]</span>。',
 'userpage-userdoesnotexist'  => '使用者帳號「<nowiki>$1</nowiki>」未曾建立。請在建立/編輯這個頁面前先檢查一下。',
-'clearyourcache'             => "'''注意:''' 在儲存以後, 您必須清除瀏覽器的快取才能看到所作出的改變。 '''Mozilla / Firefox / Safari:''' 按著 ''Shift'' 再點擊''重新整理''(或按下''Ctrl-Shift-R'',在蘋果Mac上按下''Cmd-Shift-R'');'''IE:''' 按著 ''Ctrl'' 再點擊 ''重新整理'',或按下 ''Ctrl-F5'';'''Konqueror:''' 只需點擊 ''重新整理'';'''Opera:''' 使用者需要在 ''工具-設定'' 中完整地清除它們的快取。",
 'usercsspreview'             => "'''注意您只是在預覽您的個人 CSS, 還沒有儲存﹗'''",
 'userjspreview'              => "'''注意您只是在測試/預覽您的個人 JavaScript,還沒有儲存﹗'''",
 'previewnote'                => "'''請記住這只是預覽,內容尚未儲存!'''",
index 728997d..e638b17 100644 (file)
@@ -50,8 +50,8 @@ class DeleteArchivedFilesImplementation {
                                __METHOD__,
                                array( 'FOR UPDATE' )
                        );
-                       if ( $path && file_exists( $path ) && !$inuse ) {
-                               if( unlink( $path ) ) { // delete
+                       if ( $path && $repo->fileExists( $path ) && !$inuse ) {
+                               if ( $repo->quickPurge( $path ) ) {
                                        $count++;
                                        $dbw->query( "DELETE FROM $tbl_arch WHERE fa_id = $id" );
                                } else {
index 3021b93..7ce8794 100644 (file)
@@ -1,12 +1,14 @@
 # Include-able script to determine the location of our php if any
+# We search for a environment var called PHP, native php,
+# a local copy, home directory location used by installphp.sh
+# and previous home directory location
+# The binary path is returned in $PHP if any
 
-if [ -d "$DEV/php" -a -x "$DEV/php/bin/php" ]; then
-       # Quick local copy
-       PHP="$DEV/php/bin/php"
-elif [ -d "$HOME/.mediawiki/php" -a -x "$HOME/.mediawiki/php/bin/php" ]; then
-       # Previous home directory location to install php in
-       PHP="$HOME/.mediawiki/php/bin/php"
-elif [ -d "$HOME/.mwphp" -a -x "$HOME/.mwphp/bin/php" ]; then
-       # Previous home directory location to install php in
-       PHP="$HOME/.mwphp/bin/php"
-fi
+for binary in $PHP `which php || true` "$DEV/php/bin/php" "$HOME/.mediawiki/php/bin/php" "$HOME/.mwphp/bin/php" ]; do
+       if [ -x "$binary" ]; then
+               if "$binary" -r 'exit((int)!version_compare(PHP_VERSION, "5.4", ">="));'; then
+                       PHP="$binary"
+                       break
+               fi
+       fi
+done
index 9cdbf34..1918109 100644 (file)
@@ -241,6 +241,7 @@ $wgIgnoredMessages = array(
        'version-entrypoints-index-php',
        'version-entrypoints-api-php',
        'version-entrypoints-load-php',
+       'ipb-default-expiry',
 );
 
 /** Optional messages, which may be translated only if changed in the target language. */
index 000517f..44d9a03 100644 (file)
@@ -368,9 +368,9 @@ $wgMessageStructure = array(
                'readonly',
                'enterlockreason',
                'readonlytext',
-               'missing-article',
-               'missingarticle-rev',
-               'missingarticle-diff',
+               'missing-article', // not used anymore in core, but kept for extensions
+               'missingarticle-rev', // not used anymore in core, but kept for extensions
+               'missingarticle-diff', // not used anymore in core, but kept for extensions
                'readonly_lag',
                'internalerror',
                'internalerror_info',
@@ -430,6 +430,7 @@ $wgMessageStructure = array(
                'remembermypassword',
                'securelogin-stick-https',
                'yourdomainname',
+               'password-change-forbidden',
                'externaldberror',
                'login',
                'nav-login-createaccount',
@@ -615,6 +616,7 @@ $wgMessageStructure = array(
                'noarticletext',
                'noarticletext-nopermission',
                'noarticletextanon',
+               'missing-revision',
                'userpage-userdoesnotexist',
                'userpage-userdoesnotexist-view',
                'blocked-notice-logextract',
@@ -856,6 +858,7 @@ $wgMessageStructure = array(
                'editundo',
                'diff-multi',
                'diff-multi-manyusers',
+               'difference-missing-revision',
        ),
        'search' => array(
                'search-summary',
@@ -2253,6 +2256,7 @@ $wgMessageStructure = array(
                'cant-see-hidden-user',
                'ipbblocked',
                'ipbnounblockself',
+               'ipb-default-expiry',
        ),
        'developertools' => array(
                'lockdb',
index 75290f4..ab05a3e 100644 (file)
@@ -1,9 +1,15 @@
 <?php
-# Original source code by Goran Rakic
-# http://blog.goranrakic.com/
-# http://stackoverflow.com/questions/4325224
-
-# Should be filled in doxygen INPUT_FILTER as "php mwdoc-filter.php"
+/**
+ * Doxygen filter to show correct member variable types in documentation.
+ *
+ * Should be filled in doxygen INPUT_FILTER as "php mwdoc-filter.php"
+ *
+ * Original source code by Goran Rakic
+ * http://blog.goranrakic.com/
+ * http://stackoverflow.com/questions/4325224
+ *
+ * @file
+ */
 
 $source = file_get_contents( $argv[1] );
 $regexp = '#\@var\s+([^\s]+)([^/]+)/\s+(var|public|protected|private)\s+(\$[^\s;=]+)#';
index 464de10..c1a890b 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 /**
- * CLI script to easily parse some wikitext.
+ * Parse some wikitext.
+ *
  * Wikitext can be given by stdin or using a file. The wikitext will be parsed
  * using 'CLIParser' as a title. This can be overriden with --title option.
  *
  * </p>$
  * @endcode
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @ingroup Maintenance
  * @author Antoine Musso <hashar at free dot fr>
  * @license GNU General Public License 2.0 or later
  */
+
 require_once( dirname(__FILE__) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to parse some wikitext.
+ *
+ * @ingroup Maintenance
+ */
 class CLIParser extends Maintenance {
        protected $parser;
 
index 1f96d62..0271e1a 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that manually runs an SQL patch outside of the general updaters.
+ *
+ * @ingroup Maintenance
+ */
 class PatchSql extends Maintenance {
        public function __construct() {
                parent::__construct();
index 0b45493..037849b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Script to populate category table.
+ * Populate the category table.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
-
+/**
+ * Mainteance script to populate the category table.
+ *
+ * @ingroup Maintenance
+ */
 class PopulateCategory extends Maintenance {
 
        const REPORTING_INTERVAL = 1000;
index 0847edf..0bbb5a2 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to populate the img_sha1 field.
+ *
+ * @ingroup Maintenance
+ */
 class PopulateImageSha1 extends LoggedUpdateMaintenance {
        public function __construct() {
                parent::__construct();
index e3f6067..8a2366a 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that makes the required database updates for populating the
+ * log_search table retroactively
+ *
+ * @ingroup Maintenance
+ */
 class PopulateLogSearch extends LoggedUpdateMaintenance {
        static $tableMap = array( 'rev' => 'revision', 'fa' => 'filearchive', 'oi' => 'oldimage', 'ar' => 'archive' );
 
index eaac68c..3b4b2db 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that makes the required database updates for
+ * Special:ProtectedPages to show all protected pages.
+ *
+ * @ingroup Maintenance
+ */
 class PopulateLogUsertext extends LoggedUpdateMaintenance {
        public function __construct() {
                parent::__construct();
index b6d2067..6a1b5c8 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that makes the required database updates for rev_parent_id
+ * to be of any use.
+ *
+ * @ingroup Maintenance
+ */
 class PopulateParentId extends LoggedUpdateMaintenance {
        public function __construct() {
                parent::__construct();
index 6626cbc..65dd91f 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that populates the rev_len field for old revisions
+ * created before MW 1.10.
+ *
+ * @ingroup Maintenance
+ */
 class PopulateRevisionLength extends LoggedUpdateMaintenance {
        public function __construct() {
                parent::__construct();
index 1d8e4c8..bb620c5 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that fills the rev_sha1 and ar_sha1 columns of revision
+ * and archive tables for revisions created before MW 1.19.
+ *
+ * @ingroup Maintenance
+ */
 class PopulateRevisionSha1 extends LoggedUpdateMaintenance {
        public function __construct() {
                parent::__construct();
index ad9b4f1..5c2b0d4 100644 (file)
@@ -1,10 +1,10 @@
 <?php
 /**
  * Take page text out of an XML dump file and preprocess it to obj.
- * It may be useful for getting preprocessor statistics or filling the 
+ * It may be useful for getting preprocessor statistics or filling the
  * preprocessor cache.
  *
- * Copyright (C) 2011 Platonides - http://www.mediawiki.org/
+ * Copyright © 2011 Platonides - http://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 require_once( dirname( __FILE__ ) . '/dumpIterator.php' );
 
+/**
+ * Maintenance script that takes page text out of an XML dump file and
+ * preprocesses it to obj.
+ *
+ * @ingroup Maintenance
+ */
 class PreprocessDump extends DumpIterator {
 
        /* Variables for dressing up as a parser */
index e772d67..e60ee08 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Protect or unprotect an article.
+ * Protect or unprotect a page.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that protects or unprotects a page.
+ *
+ * @ingroup Maintenance
+ */
 class Protect extends Maintenance {
        public function __construct() {
                parent::__construct();
-               $this->mDescription = "Protect or unprotect an article from the command line.";
+               $this->mDescription = "Protect or unprotect a page from the command line.";
                $this->addOption( 'unprotect', 'Removes protection' );
                $this->addOption( 'semiprotect', 'Adds semi-protection' );
                $this->addOption( 'cascade', 'Add cascading protection' );
index f1a1cfd..7828049 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Prune file cache for pages, objects, resources, ect...
+ * Prune file cache for pages, objects, resources, etc.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that prunes file cache for pages, objects, resources, etc.
+ *
+ * @ingroup Maintenance
+ */
 class PruneFileCache extends Maintenance {
 
        protected $minSurviveTimestamp;
index c8d4fc0..e9d149b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Scans the deletion log and purges affected files within a timeframe.
+ * Scan the deletion log and purges affected files within a timeframe.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that scans the deletion log and purges affected files
+ * within a timeframe.
+ *
+ * @ingroup Maintenance
+ */
 class PurgeDeletedFiles extends Maintenance {
        public function __construct() {
                parent::__construct();
@@ -74,7 +81,7 @@ class PurgeDeletedFiles extends Maintenance {
 
        protected function purgeFromArchiveTable( LocalFile $file ) {
                $db = $file->getRepo()->getSlaveDB();
-               $res = $db->select( 'filearchive', 
+               $res = $db->select( 'filearchive',
                        array( 'fa_archive_name' ),
                        array( 'fa_name' => $file->getName() ),
                        __METHOD__
index f1452bc..049d6e3 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that sends purge requests for listed pages to squid.
+ *
+ * @ingroup Maintenance
+ */
 class PurgeList extends Maintenance {
        public function __construct() {
                parent::__construct();
index 0cbc724..e68047c 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  * @author Rob Church <robchur@gmail.com>
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that purges old text records from the database.
+ *
+ * @ingroup Maintenance
+ */
 class PurgeOldText extends Maintenance {
        public function __construct() {
                parent::__construct();
index 84a2b51..b56794b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Maintenance script to remove old objects from the parser cache.
+ * Remove old objects from the parser cache.
  * This only works when the parser cache is in an SQL database.
  *
  * This program is free software; you can redistribute it and/or modify
 
 require( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to remove old objects from the parser cache.
+ *
+ * @ingroup Maintenance
+ */
 class PurgeParserCache extends Maintenance {
        var $lastProgress;
 
        function __construct() {
                parent::__construct();
-               $this->addDescription( "Remove old objects from the parser cache. " . 
+               $this->addDescription( "Remove old objects from the parser cache. " .
                        "This only works when the parser cache is in an SQL database." );
                $this->addOption( 'expiredate', 'Delete objects expiring before this date.', false, true );
-               $this->addOption( 'age', 
-                       'Delete objects created more than this many seconds ago, assuming $wgParserCacheExpireTime '.
-                               'has been consistent.', 
+               $this->addOption( 'age',
+                       'Delete objects created more than this many seconds ago, assuming $wgParserCacheExpireTime ' .
+                               'has been consistent.',
                        false, true );
        }
 
index 5915a6b..ffe66c6 100644 (file)
@@ -41,6 +41,9 @@ class RebuildLocalisationCache extends Maintenance {
        }
 
        public function memoryLimit() {
+               if ( $this->hasOption( 'memory-limit' ) ) {
+                       return parent::memoryLimit();
+               }
                return '1000M';
        }
 
index 9c1ad29..fdc141b 100644 (file)
@@ -37,6 +37,9 @@ class RunJobs extends Maintenance {
        }
 
        public function memoryLimit() {
+               if ( $this->hasOption( 'memory-limit' ) ) {
+                       return parent::memoryLimit();
+               }
                // Don't eat all memory on the machine if we get a bad job.
                return "150M";
        }
@@ -60,11 +63,11 @@ class RunJobs extends Maintenance {
                $wgTitle = Title::newFromText( 'RunJobs.php' );
                $dbw = wfGetDB( DB_MASTER );
                $n = 0;
-               $conds = '';
+
                if ( $type === false ) {
                        $conds = Job::defaultQueueConditions( );
                } else {
-                       $conds = "job_cmd = " . $dbw->addQuotes( $type );
+                       $conds = array( 'job_cmd' => $type );
                }
 
                while ( $dbw->selectField( 'job', 'job_id', $conds, 'runJobs.php' ) ) {
index 0edc8ee..f28f401 100644 (file)
                return ( (b < a) ? false : ((b > a) ? true : 0) );
        }
 
-       function checkSorting( array1, array2, sortList ) {
-               var col, fn, ret;
-               for ( var i = 0, len = sortList.length; i < len; i++ ) {
-                       col = sortList[i][0];
-                       fn = ( sortList[i][1] ) ? sortTextDesc : sortText;
-                       ret = fn.call( this, array1[col], array2[col] );
-                       if ( ret !== 0 ) {
-                               return ret;
-                       }
+       function multisort( table, sortList, cache ) {
+               var sortFn = [];
+               var len = sortList.length;
+               for ( var i = 0; i < len; i++ ) {
+                       sortFn[i] = ( sortList[i][1] ) ? sortTextDesc : sortText;
                }
-               return ret;
-       }
-
-       // Merge sort algorithm
-       // Based on http://en.literateprograms.org/Merge_sort_(JavaScript)
-       function mergeSortHelper( array, begin, beginRight, end, sortList ) {
-               for ( ; begin < beginRight; ++begin ) {
-                       if ( checkSorting( array[begin], array[beginRight], sortList ) ) {
-                               var v = array[begin];
-                               array[begin] = array[beginRight];
-                               var begin2 = beginRight;
-                               while ( begin2 + 1 < end && checkSorting( v, array[begin2 + 1], sortList ) ) {
-                                       var tmp = array[begin2];
-                                       array[begin2] = array[begin2 + 1];
-                                       array[begin2 + 1] = tmp;
-                                       ++begin2;
+               cache.normalized.sort( function ( array1, array2 ) {
+                       var col, ret;
+                       for ( var i = 0; i < len; i++ ) {
+                               col = sortList[i][0];
+                               ret = sortFn[i].call( this, array1[col], array2[col] );
+                               if ( ret !== 0 ) {
+                                       return ret;
                                }
-                               array[begin2] = v;
                        }
-               }
-       }
-
-       function mergeSort(array, begin, end, sortList) {
-               var size = end - begin;
-               if ( size < 2 ) {
-                       return;
-               }
-
-               var beginRight = begin + Math.floor(size / 2);
-
-               mergeSort( array, begin, beginRight, sortList );
-               mergeSort( array, beginRight, end, sortList );
-               mergeSortHelper( array, begin, beginRight, end, sortList );
-       }
-
-       function multisort( table, sortList, cache ) {
-               var i = sortList.length;
-               mergeSort( cache.normalized, 0, cache.normalized.length, sortList );
-
+                       // Fall back to index number column to ensure stable sort
+                       return sortText.call( this, array1[array1.length - 1], array2[array2.length - 1] );
+               } );
                return cache;
        }
 
index dd205f6..48e1d7c 100644 (file)
@@ -84,6 +84,29 @@ This is a simple paragraph.
 </p>
 !! end
 
+!! test
+Paragraphs with extra newline spacing
+!! input
+foo
+
+bar
+
+
+baz
+
+
+
+booz
+!! result
+<p>foo
+</p><p>bar
+</p><p><br />
+baz
+</p><p><br />
+</p><p>booz
+</p>
+!! end
+
 !! test
 Simple list
 !! input
index dab5b59..86d6b62 100644 (file)
@@ -1,6 +1,6 @@
 QUnit.module( 'jquery.localize', QUnit.newMwEnvironment() );
 
-QUnit.test( 'Handle basic replacements', 3, function ( assert ) {
+QUnit.test( 'Handle basic replacements', 4, function ( assert ) {
        var html, $lc;
        mw.messages.set( 'basic', 'Basic stuff' );
 
index 2ec0941..7d8c1d6 100644 (file)
@@ -298,7 +298,7 @@ tableTest(
 );
 
 var planetsRowspan = [["Earth","6051.8"], jupiter, ["Mars","6051.8"], mercury, saturn, venus];
-var planetsRowspanII = [jupiter, mercury, saturn, ['Venus', '6371.0'], venus, ['Venus', '3390.0']];
+var planetsRowspanII = [jupiter, mercury, saturn, venus, ['Venus', '6371.0'], ['Venus', '3390.0']];
 
 tableTest(
        'Basic planet table: same value for multiple rows via rowspan',