Merge changes I5d11a642,I4ed191bd
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 6 Aug 2014 21:26:22 +0000 (21:26 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 6 Aug 2014 21:26:22 +0000 (21:26 +0000)
* changes:
  SpecialProtectedTitles: Use Config instead of globals
  Pass a real IContextSource to ProtectedTitlesPager

136 files changed:
RELEASE-NOTES-1.24
docs/kss/Makefile
docs/kss/scripts/kss-node-check.sh [new file with mode: 0755]
docs/kss/scripts/nodecheck.sh [deleted file]
docs/uidesign/confirmable.html [new file with mode: 0644]
includes/AutoLoader.php
includes/Cookie.php
includes/DefaultSettings.php
includes/Message.php
includes/OutputPage.php
includes/Preferences.php
includes/Setup.php
includes/Skin.php
includes/SkinFallback.php [new file with mode: 0644]
includes/User.php
includes/cache/LocalisationCache.php
includes/installer/i18n/be-tarask.json
includes/installer/i18n/bto.json
includes/installer/i18n/da.json
includes/installer/i18n/sv.json
includes/media/SVG.php
includes/parser/CoreParserFunctions.php
includes/parser/ParserOutput.php
includes/password/PasswordFactory.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/specials/SpecialExport.php
includes/specials/SpecialJavaScriptTest.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialMyLanguage.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPageLanguage.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialProtectedpages.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialResetTokens.php
includes/specials/SpecialSearch.php
includes/specials/SpecialSpecialpages.php
includes/specials/SpecialUnlockdb.php
includes/specials/SpecialUnusedimages.php
includes/specials/SpecialUploadStash.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWatchlist.php
languages/i18n/ar.json
languages/i18n/ast.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/ca.json
languages/i18n/cdo.json
languages/i18n/ce.json
languages/i18n/cs.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/egl.json
languages/i18n/en.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gl.json
languages/i18n/he.json
languages/i18n/hif-latn.json
languages/i18n/hu.json
languages/i18n/ia.json
languages/i18n/ilo.json
languages/i18n/it.json
languages/i18n/kk-cyrl.json
languages/i18n/ko.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/la.json
languages/i18n/lb.json
languages/i18n/lrc.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/mai.json
languages/i18n/mdf.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/nan.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/ru.json
languages/i18n/sc.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/uk.json
languages/i18n/vi.json
languages/i18n/wuu.json
languages/i18n/yi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/jsduck/config.json
resources/Resources.php
resources/lib/oojs-ui/i18n/zh-hans.json
resources/lib/oojs-ui/oojs-ui-agora.css
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.svg.css
resources/src/jquery/jquery.confirmable.css [new file with mode: 0644]
resources/src/jquery/jquery.confirmable.js [new file with mode: 0644]
resources/src/jquery/jquery.confirmable.mediawiki.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.htmlform.js
resources/src/startup.js
skins/MonoBook/i18n/nb.json
skins/common/IEFixes.js [deleted file]
skins/common/wikibits.js
tests/phpunit/includes/MessageTest.php
tests/phpunit/includes/api/ApiRevisionDeleteTest.php [new file with mode: 0644]
tests/phpunit/phpunit.php
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/startup.test.js

index ec4bc0f..4238332 100644 (file)
@@ -45,6 +45,8 @@ production.
 * The UserCryptPassword and UserComparePassword hooks are no longer called. Any extensions
   using them must be updated to use the Password Hashing API.
 * $wgCompiledFiles has been removed.
+* $wgSortSpecialPages was removed, the listing on Special:SpecialPages is
+  now always sorted.
 
 === New features in 1.24 ===
 * Added a new hook, "WhatLinksHereProps", to allow extensions to annotate
@@ -291,6 +293,10 @@ changes to languages because of Bugzilla reports.
   setPreloadedText() from EditPage.php. (deprecated since 1.21)
 * Removed global functions wfArrayLookup(), wfArrayMerge(), wfDebugDieBacktrace()
   and wfTime(). (deprecated since 1.22)
+* Microsoft Internet Explorer 6 is now a "grade C" browser, meaning that
+  JavaScript is no longer executed in this browser. The IEFixes script, which
+  existed purely to provide support for MSIE versions below 7 and which was
+  conditionally loaded for those browsers, was also removed.
 
 ==== Renamed classes ====
 * CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression
index 7d2ee3b..ff735d5 100644 (file)
@@ -1,8 +1,6 @@
 MEDIAWIKI_LOAD_URL ?= http://localhost/w/load.php
 
-kss: nodecheck
-# FIXME: Use more up-to-date Ruby version
-
+kss: kssnodecheck
 # Generates CSS of mediawiki.ui and mediawiki.ui.button using ResourceLoader, then applies it to the
 # KSS style guide
        $(eval KSS_RL_TMP := $(shell mktemp /tmp/tmp.XXXXXXXXXX))
@@ -15,5 +13,5 @@ kssopen: kss
        @command -v xdg-open >/dev/null 2>&1 || { open ${PWD}/static/index.html; exit 0; }
        @xdg-open ${PWD}/static/index.html
 
-nodecheck:
-       @scripts/nodecheck.sh
+kssnodecheck:
+       @scripts/kss-node-check.sh
diff --git a/docs/kss/scripts/kss-node-check.sh b/docs/kss/scripts/kss-node-check.sh
new file mode 100755 (executable)
index 0000000..84ee1c4
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+if command -v npm > /dev/null ; then
+  npm install
+else
+  # If npm isn't installed, but kss-node is, exit normally.
+  # This allows setting it up on one machine, and running it on
+  # another (e.g. Tools Labs execution nodes) that doesn't have npm
+  # installed.  However, "npm install" still needs to be run
+  # occasionally to keep kss updated.
+
+  KSS_NODE="${BASH_SOURCE%/*}/../node_modules/.bin/kss-node"
+  if ! [ -x "$KSS_NODE" ] ; then
+    echo "Neither kss-node nor npm are installed."
+    echo "To install npm, see http://nodejs.org/"
+    echo "When npm is installed, the Makefile can automatically"
+    echo "install kss-node."
+    exit 1
+  fi
+fi
diff --git a/docs/kss/scripts/nodecheck.sh b/docs/kss/scripts/nodecheck.sh
deleted file mode 100755 (executable)
index 3ee0f83..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-if command -v npm > /dev/null ; then
-  npm install
-else
-  echo "You need to install Node.JS!"
-  echo "See http://nodejs.org/"
-  exit 1
-fi
diff --git a/docs/uidesign/confirmable.html b/docs/uidesign/confirmable.html
new file mode 100644 (file)
index 0000000..d035821
--- /dev/null
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html lang="en" dir="ltr">
+<head>
+       <meta charset="utf-8">
+       <!--
+       The jquery.confirmable module uses some additional modules and files
+       for internationalization support. These are omitted here for simplicity.
+       -->
+       <script type="text/javascript" src="../../resources/lib/jquery/jquery.js"></script>
+       <link rel="stylesheet" href="../../resources/src/jquery/jquery.confirmable.css">
+       <script type="text/javascript" src="../../resources/src/jquery/jquery.confirmable.js"></script>
+       <style>
+       body {
+               font: small sans-serif;
+       }
+       .mw-rollback-link a,
+       .mw-unwatch-link a,
+       .mw-thanks-thank-link a {
+               background: #ccf;
+       }
+       </style>
+</head>
+<body>
+       <h2>Introduction</h2>
+
+       <p>The jquery.confirmable module provides a simple inline confirmation script for potentially destructive or uncancellable actions.</p>
+
+       <p>Possible uses include confirmable "rollback" links in histories, confirmable "unwatch" links on watchlists, or confirmable "thanks" links (provided by the Echo extension).</p>
+
+       <p>Shown below is a demo of how each of those could work on history and watchlist entries, in an LTR and RTL language. The enhanced links are highlighted in blue.</p>
+
+       <h2>Examples</h2>
+
+       <h3>LTR (English)</h3>
+
+       <p>Watchlist:</p>
+
+       <ul lang="en" dir="ltr">
+               <li class="mw-line-even mw-changeslist-line-not-watched">
+                       (<a href="#">diff</a> | <a href="#">hist</a>)
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="mw-title"><a href="#" class="mw-changeslist-title">Example page</a></span>; <span class="mw-changeslist-date">13:38</span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="mw-plusminus-neg">(-130)</span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <a href="#" class="mw-userlink">Example user</a>
+                       <span class="mw-usertoollinks">(<a href="#">Talk</a> | <a href="#">contribs</a> | <a href="#">block</a>)</span>
+                       <span class="comment">(example edit)</span>
+                       <span class="mw-rollback-link">[<a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">rollback</a>]</span>
+                       (<span class="mw-unwatch-link"><a href="#">unwatch</a></span>)
+               </li>
+       </ul>
+
+       <p>History:</p>
+
+       <ul lang="en" dir="ltr">
+               <li>
+                       <span class="mw-history-histlinks">(cur | <a href="#">prev</a>)</span>
+                       <input type="radio" style="visibility: hidden;" /><input type="radio" checked />
+                       <a href="#" class="mw-changeslist-date">13:38, 28 October 2013</a>
+                       <span class='history-user'>
+                               <a href="#" class="mw-userlink">Example user</a>
+                               <span class="mw-usertoollinks">(<a href="#">Talk</a> | <a href="#">contribs</a> | <a href="#">block</a>)</span>
+                       </span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="history-size">(1,654 bytes)</span>
+                       <span class="mw-plusminus-neg">(-130)</span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="comment">(example edit)</span>
+                       (<span class="mw-rollback-link"><a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">rollback 1 edit</a></span> | <span class="mw-history-undo"><a href="#">undo</a></span> | <span class="mw-thanks-thank-link"><a href="#">thank</a></span>)
+               </li>
+       </ul>
+
+       <script type="text/javascript">
+               $( 'ul[lang="en"] .mw-rollback-link a' )
+                       .confirmable({ i18n: { confirm: 'Are you sure you want to rollback?' } });
+               $( 'ul[lang="en"] .mw-unwatch-link a' )
+                       .confirmable({ handler: function(){ alert('Unwatched!') } });
+               $( 'ul[lang="en"] .mw-thanks-thank-link a' )
+                       .confirmable({ handler: function(){ alert('Thanked!') } });
+       </script>
+
+       <h3>RTL (Hebrew)</h3>
+       <!-- All of the Hebrew text below has been basically pulled out of my hat. -->
+
+       <p>Watchlist:</p>
+
+       <ul lang="he" dir="rtl">
+               <li class="mw-line-even mw-changeslist-line-not-watched">
+                       (<a href="#">הבדל</a> | <a href="#">היסטוריה</a>)
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="mw-title"><a href="#" class="mw-changeslist-title">דף דוגמה</a></span>; <span class="mw-changeslist-date">13:38</span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="mw-plusminus-neg">(-57)</span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <a href="#" class="mw-userlink">דוגמא אדם</a>
+                       <span class="mw-usertoollinks">(<a href="#">שיחה</a> | <a href="#">תרומות</a> | <a href="#">חסימה</a>)</span>
+                       <span class="comment">(עריכה לדוגמה)</span>
+                       <span class="mw-rollback-link">[<a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">שחזור</a>]</span>
+                       (<span class="mw-unwatch-link"><a href="#">הפסקת מעקב</a></span>)
+               </li>
+       </ul>
+
+       <p>History:</p>
+
+       <ul lang="he" dir="rtl">
+               <li>
+                       <span class="mw-history-histlinks">(נוכחית | <a href="#">קודמת</a>)</span>
+                       <input type="radio" style="visibility: hidden;" /><input type="radio" checked />
+                       <a href="#" class="mw-changeslist-date">23:41, 12 במאי 2012</a>
+                       <span class='history-user'>
+                               <a href="#" class="mw-userlink">דוגמא אדם</a>
+                               <span class="mw-usertoollinks">(<a href="#">שיחה</a> | <a href="#">תרומות</a> | <a href="#">חסימה</a>)</span>
+                       </span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="history-size">(1,762 בתים)</span>
+                       <span class="mw-plusminus-neg">(-57)</span>
+                       <span class="mw-changeslist-separator">. .</span>
+                       <span class="comment">(עריכה לדוגמה)</span>
+                       (<span class="mw-rollback-link"><a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">שחזור עריכה אחת</a></span> | <span class="mw-history-undo"><a href="#">ביטול</a></span> | <span class="mw-thanks-thank-link"><a href="#">תודה</a></span>)
+               </li>
+       </ul>
+
+       <script type="text/javascript">
+               var hebrewI18n = {
+                       confirm: 'האם ברצונך להמשיך?',
+                       yes: 'כן',
+                       no: 'לא',
+               }
+
+               $( 'ul[lang="he"] .mw-rollback-link a' )
+                       .confirmable({ i18n: $.extend( {}, hebrewI18n, { confirm: 'האם ברצונך לשחזר?' } ) });
+               $( 'ul[lang="he"] .mw-unwatch-link a' )
+                       .confirmable({ i18n: hebrewI18n, handler: function(){ alert('Unwatched!') } });
+               $( 'ul[lang="he"] .mw-thanks-thank-link a' )
+                       .confirmable({ i18n: hebrewI18n, handler: function(){ alert('Thanked!') } });
+       </script>
+       <style type="text/css">
+               /* This is normally handled by CSSJanus. */
+               ul[dir=rtl] .jquery-confirmable-button {
+                       margin-left: 0;
+                       margin-right: 1ex;
+               }
+       </style>
+</body>
+</html>
+
index 9fa0c13..083a596 100644 (file)
@@ -158,6 +158,8 @@ $wgAutoloadLocalClasses = array(
        'SiteStatsInit' => 'includes/SiteStats.php',
        'Skin' => 'includes/Skin.php',
        'SkinTemplate' => 'includes/SkinTemplate.php',
+       'SkinFallback' => 'includes/SkinFallback.php',
+       'SkinFallbackTemplate' => 'includes/SkinFallback.php',
        'SquidPurgeClient' => 'includes/SquidPurgeClient.php',
        'SquidPurgeClientPool' => 'includes/SquidPurgeClient.php',
        'StatCounter' => 'includes/StatCounter.php',
index 8b5906a..cb04190 100644 (file)
@@ -94,8 +94,9 @@ class Cookie {
 
                // Don't allow a trailing dot or addresses without a or just a leading dot
                if ( substr( $domain, -1 ) == '.' ||
-                        count( $dc ) <= 1 ||
-                        count( $dc ) == 2 && $dc[0] === '' ) {
+                       count( $dc ) <= 1 ||
+                       count( $dc ) == 2 && $dc[0] === ''
+               ) {
                        return false;
                }
 
index dea6e71..030f5d2 100644 (file)
@@ -2968,7 +2968,7 @@ $wgDefaultSkin = 'vector';
  *
  * @since 1.24
  */
-$wgFallbackSkin = 'vector';
+$wgFallbackSkin = 'fallback';
 
 /**
  * Specify the names of skins that should not be presented in the list of
@@ -6610,9 +6610,6 @@ $wgLogActions = array(
        'protect/modify' => 'modifiedarticleprotection',
        'protect/unprotect' => 'unprotectedarticle',
        'protect/move_prot' => 'movedarticleprotection',
-       'upload/upload' => 'uploadedimage',
-       'upload/overwrite' => 'overwroteimage',
-       'upload/revert' => 'uploadedimage',
        'import/upload' => 'import-logentry-upload',
        'import/interwiki' => 'import-logentry-interwiki',
        'merge/merge' => 'pagemerge-logentry',
@@ -6639,6 +6636,9 @@ $wgLogActionsHandlers = array(
        'patrol/patrol' => 'PatrolLogFormatter',
        'rights/rights' => 'RightsLogFormatter',
        'rights/autopromote' => 'RightsLogFormatter',
+       'upload/upload' => 'LogFormatter',
+       'upload/overwrite' => 'LogFormatter',
+       'upload/revert' => 'LogFormatter',
 );
 
 /**
@@ -6672,11 +6672,6 @@ $wgDisableQueryPageUpdate = false;
  */
 $wgSpecialPageGroups = array();
 
-/**
- * Whether or not to sort special pages in Special:Specialpages
- */
-$wgSortSpecialPages = true;
-
 /**
  * On Special:Unusedimages, consider images "used", if they are put
  * into a category. Default (false) is not to count those as used.
index 931a3f9..4df0d80 100644 (file)
@@ -175,10 +175,16 @@ class Message {
        protected $language = null;
 
        /**
-        * @var string|string[] The message key or array of keys.
+        * @var string The message key. If $keysToTry has more than one element,
+        * this may change to one of the keys to try when fetching the message text.
         */
        protected $key;
 
+       /**
+        * @var string[] List of keys to try when fetching the message.
+        */
+       protected $keysToTry;
+
        /**
         * @var array List of parameters which will be substituted into the message.
         */
@@ -224,30 +230,61 @@ class Message {
         * non-empty message for.
         * @param array $params Message parameters.
         * @param Language $language Optional language of the message, defaults to $wgLang.
+        *
+        * @throws InvalidArgumentException
         */
        public function __construct( $key, $params = array(), Language $language = null ) {
                global $wgLang;
 
-               $this->key = $key;
+               if ( !is_string( $key ) && !is_array( $key ) ) {
+                       throw new InvalidArgumentException( '$key must be a string or an array' );
+               }
+
+               $this->keysToTry = (array)$key;
+
+               if ( empty( $this->keysToTry ) ) {
+                       throw new InvalidArgumentException( '$key must not be an empty list' );
+               }
+
+               $this->key = reset( $this->keysToTry );
+
                $this->parameters = array_values( $params );
                $this->language = $language ? $language : $wgLang;
        }
 
        /**
-        * Returns the message key or the first from an array of message keys.
+        * @since 1.24
+        *
+        * @return bool True if this is a multi-key message, that is, if the key provided to the
+        * constructor was a fallback list of keys to try.
+        */
+       public function isMultiKey() {
+               return count( $this->keysToTry ) > 1;
+       }
+
+       /**
+        * @since 1.24
+        *
+        * @return string[] The list of keys to try when fetching the message text,
+        * in order of preference.
+        */
+       public function getKeysToTry() {
+               return $this->keysToTry;
+       }
+
+       /**
+        * Returns the message key.
+        *
+        * If a list of multiple possible keys was supplied to the constructor, this method may
+        * return any of these keys. After the message ahs been fetched, this method will return
+        * the key that was actually used to fetch the message.
         *
         * @since 1.21
         *
         * @return string
         */
        public function getKey() {
-               if ( is_array( $this->key ) ) {
-                       // May happen if some kind of fallback is applied.
-                       // For now, just use the first key. We really need a better solution.
-                       return $this->key[0];
-               } else {
-                       return $this->key;
-               }
+               return $this->key;
        }
 
        /**
@@ -637,7 +674,7 @@ class Message {
                $string = $this->fetchMessage();
 
                if ( $string === false ) {
-                       $key = htmlspecialchars( is_array( $this->key ) ? $this->key[0] : $this->key );
+                       $key = htmlspecialchars( $this->key );
                        if ( $this->format === 'plain' ) {
                                return '<' . $key . '>';
                        }
@@ -997,20 +1034,18 @@ class Message {
        protected function fetchMessage() {
                if ( $this->message === null ) {
                        $cache = MessageCache::singleton();
-                       if ( is_array( $this->key ) ) {
-                               if ( !count( $this->key ) ) {
-                                       throw new MWException( "Given empty message key array." );
-                               }
-                               foreach ( $this->key as $key ) {
-                                       $message = $cache->get( $key, $this->useDatabase, $this->language );
-                                       if ( $message !== false && $message !== '' ) {
-                                               break;
-                                       }
+
+                       foreach ( $this->keysToTry as $key ) {
+                               $message = $cache->get( $key, $this->useDatabase, $this->language );
+                               if ( $message !== false && $message !== '' ) {
+                                       break;
                                }
-                               $this->message = $message;
-                       } else {
-                               $this->message = $cache->get( $this->key, $this->useDatabase, $this->language );
                        }
+
+                       // NOTE: The constructor makes sure keysToTry isn't empty,
+                       //       so we know that $key and $message are initialized.
+                       $this->key = $key;
+                       $this->message = $message;
                }
                return $this->message;
        }
@@ -1038,13 +1073,20 @@ class RawMessage extends Message {
         *
         * @see Message::__construct
         *
-        * @param string|string[] $key Message to use.
+        * @param string $text Message to use.
         * @param array $params Parameters for the message.
+        *
+        * @throws InvalidArgumentException
         */
-       public function __construct( $key, $params = array() ) {
-               parent::__construct( $key, $params );
+       public function __construct( $text, $params = array() ) {
+               if ( !is_string( $text ) ) {
+                       throw new InvalidArgumentException( '$text must be a string' );
+               }
+
+               parent::__construct( $text, $params );
+
                // The key is the message.
-               $this->message = $key;
+               $this->message = $text;
        }
 
        /**
@@ -1057,6 +1099,7 @@ class RawMessage extends Message {
                if ( $this->message === null ) {
                        $this->message = $this->key;
                }
+
                return $this->message;
        }
 
index 85d101f..87a0809 100644 (file)
@@ -1971,7 +1971,7 @@ class OutputPage extends ContextSource {
         * Get the prevent-clickjacking flag
         *
         * @since 1.24
-        * @return boolean
+        * @return bool
         */
        public function getPreventClickjacking() {
                return $this->mPreventClickjacking;
index 084d6ab..eb29e41 100644 (file)
@@ -579,12 +579,16 @@ class Preferences {
                ## Skin #####################################
                global $wgAllowUserCss, $wgAllowUserJs;
 
-               $defaultPreferences['skin'] = array(
-                       'type' => 'radio',
-                       'options' => self::generateSkinOptions( $user, $context ),
-                       'label' => '&#160;',
-                       'section' => 'rendering/skin',
-               );
+               // Skin selector, if there is at least one valid skin
+               $skinOptions = self::generateSkinOptions( $user, $context );
+               if ( $skinOptions ) {
+                       $defaultPreferences['skin'] = array(
+                               'type' => 'radio',
+                               'options' => $skinOptions,
+                               'label' => '&#160;',
+                               'section' => 'rendering/skin',
+                       );
+               }
 
                # Create links to user CSS/JS pages for all skins
                # This code is basically copied from generateSkinOptions().  It'd
@@ -1064,12 +1068,14 @@ class Preferences {
                }
                asort( $validSkinNames );
 
+               $foundDefault = false;
                foreach ( $validSkinNames as $skinkey => $sn ) {
                        $linkTools = array();
 
                        # Mark the default skin
                        if ( $skinkey == $wgDefaultSkin ) {
                                $linkTools[] = $context->msg( 'default' )->escaped();
+                               $foundDefault = true;
                        }
 
                        # Create preview link
@@ -1094,6 +1100,12 @@ class Preferences {
                        $ret[$display] = $skinkey;
                }
 
+               if ( !$foundDefault ) {
+                       // If the default skin is not available, things are going to break horribly because the
+                       // default value for skin selector will not be a valid value. Let's just not show it then.
+                       return array();
+               }
+
                return $ret;
        }
 
index 03c529e..1eb04c3 100644 (file)
@@ -271,6 +271,10 @@ if ( $wgSkipSkin ) {
        $wgSkipSkins[] = $wgSkipSkin;
 }
 
+// Register a hidden "fallback" skin
+$wgValidSkinNames['fallback'] = 'Fallback'; // SkinFallback
+$wgSkipSkins[] = 'fallback';
+
 if ( $wgLocalInterwiki ) {
        array_unshift( $wgLocalInterwikis, $wgLocalInterwiki );
 }
index fd737c0..a59d567 100644 (file)
@@ -220,7 +220,7 @@ abstract class Skin extends ContextSource {
                                # is no longer valid.
                                wfDebug( "Skin class does not exist: $className\n" );
 
-                               $fallback = $skinNames[ Skin::normalizeKey( $wgFallbackSkin ) ];
+                               $fallback = $skinNames[Skin::normalizeKey( $wgFallbackSkin )];
                                $className = "Skin{$fallback}";
                        }
                }
diff --git a/includes/SkinFallback.php b/includes/SkinFallback.php
new file mode 100644 (file)
index 0000000..ab72a38
--- /dev/null
@@ -0,0 +1,129 @@
+<?php
+/**
+ * Skin file for the fallback skin.
+ *
+ * The structure is copied from the example skin (mediawiki/skins/Example).
+ *
+ * @since 1.24
+ * @file
+ */
+
+/**
+ * SkinTemplate class for the fallback skin
+ */
+class SkinFallback extends SkinTemplate {
+       var $skinname = 'fallback', $template = 'SkinFallbackTemplate';
+
+       /**
+        * Add CSS via ResourceLoader
+        *
+        * @param $out OutputPage
+        */
+       function setupSkinUserCss( OutputPage $out ) {
+               parent::setupSkinUserCss( $out );
+               $out->addModuleStyles( 'mediawiki.skinning.interface' );
+       }
+}
+
+/**
+ * BaseTemplate class for the fallback skin
+ */
+class SkinFallbackTemplate extends BaseTemplate {
+       /**
+        * @return array
+        */
+       private function findInstalledSkins() {
+               global $wgStyleDirectory;
+
+               // Get all subdirectories which might contains skins
+               $possibleSkins = scandir( $wgStyleDirectory );
+               $possibleSkins = array_filter( $possibleSkins, function ( $maybeDir ) {
+                       global $wgStyleDirectory;
+                       return $maybeDir !== '.' && $maybeDir !== '..' && is_dir( "$wgStyleDirectory/$maybeDir" );
+               } );
+
+               // Only keep the ones that contain a .php file with the same name inside
+               $possibleSkins = array_filter( $possibleSkins, function ( $skinDir ) {
+                       global $wgStyleDirectory;
+                       return is_file( "$wgStyleDirectory/$skinDir/$skinDir.php" );
+               } );
+
+               return $possibleSkins;
+       }
+
+       /**
+        * Inform the user why they are seeing this skin.
+        *
+        * @return string
+        */
+       private function buildHelpfulInformationMessage() {
+               global $wgDefaultSkin, $wgValidSkinNames;
+
+               $installedSkins = $this->findInstalledSkins();
+               $enabledSkins = $wgValidSkinNames;
+               $enabledSkins = array_change_key_case( $enabledSkins, CASE_LOWER );
+
+               if ( $installedSkins ) {
+                       $skinsInstalledText = array();
+                       $skinsInstalledSnippet = array();
+
+                       foreach ( $installedSkins as $skin ) {
+                               $normalizedKey = strtolower( $skin );
+                               $isEnabled = array_key_exists( $normalizedKey, $enabledSkins );
+                               if ( $isEnabled ) {
+                                       $skinsInstalledText[] = $this->getMsg( 'default-skin-not-found-row-enabled' )
+                                               ->params( $normalizedKey, $skin )->plain();
+                               } else {
+                                       $skinsInstalledText[] = $this->getMsg( 'default-skin-not-found-row-disabled' )
+                                               ->params( $normalizedKey, $skin )->plain();
+                                       $skinsInstalledSnippet[] = "require_once \"\$IP/skins/$skin/$skin.php\";";
+                               }
+                       }
+
+                       return $this->getMsg( 'default-skin-not-found' )->params(
+                               $wgDefaultSkin,
+                               implode( "\n", $skinsInstalledText ),
+                               implode( "\n", $skinsInstalledSnippet )
+                       )->parseAsBlock();
+               } else {
+                       return $this->getMsg( 'default-skin-not-found-no-skins' )->params(
+                               $wgDefaultSkin
+                       )->parseAsBlock();
+               }
+       }
+
+       /**
+        * Outputs the entire contents of the page. No navigation (other than search box), just the big
+        * warning message and page content.
+        */
+       public function execute() {
+               $this->html( 'headelement' ) ?>
+
+               <div class="warningbox">
+                       <?php echo $this->buildHelpfulInformationMessage() ?>
+               </div>
+
+               <form action="<?php $this->text( 'wgScript' ) ?>">
+                       <input type="hidden" name="title" value="<?php $this->text( 'searchtitle' ) ?>" />
+                       <h3><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
+                       <?php echo $this->makeSearchInput( array( "id" => "searchInput" ) ) ?>
+                       <?php echo $this->makeSearchButton( 'go' ) ?>
+               </form>
+
+               <div class="mw-body" role="main">
+                       <h1 class="firstHeading">
+                               <span dir="auto"><?php $this->html( 'title' ) ?></span>
+                       </h1>
+
+                       <div class="mw-body-content">
+                               <?php $this->html( 'bodytext' ) ?>
+                               <?php $this->html( 'catlinks' ) ?>
+                       </div>
+               </div>
+
+               <?php $this->printTrail() ?>
+               </body></html>
+
+               <?php
+       }
+}
index a21119a..fe41187 100644 (file)
@@ -181,8 +181,16 @@ class User implements IDBAccessObject {
 
        public $mRealName;
 
+       /**
+        * @todo Make this actually private
+        * @private
+        */
        public $mPassword;
 
+       /**
+        * @todo Make this actually private
+        * @private
+        */
        public $mNewpassword;
 
        public $mNewpassTime;
@@ -2247,6 +2255,26 @@ class User implements IDBAccessObject {
                return $this->mTouched;
        }
 
+       /**
+        * @return Password
+        * @since 1.24
+        */
+       public function getPassword() {
+               $this->loadPasswords();
+
+               return $this->mPassword;
+       }
+
+       /**
+        * @return Password
+        * @since 1.24
+        */
+       public function getTemporaryPassword() {
+               $this->loadPasswords();
+
+               return $this->mNewpassword;
+       }
+
        /**
         * Set the password and reset the random token.
         * Calls through to authentication plugin if necessary;
@@ -2266,6 +2294,8 @@ class User implements IDBAccessObject {
        public function setPassword( $str ) {
                global $wgAuth;
 
+               $this->loadPasswords();
+
                if ( $str !== null ) {
                        if ( !$wgAuth->allowPasswordChange() ) {
                                throw new PasswordError( wfMessage( 'password-change-forbidden' )->text() );
@@ -2352,7 +2382,7 @@ class User implements IDBAccessObject {
         * @param bool $throttle If true, reset the throttle timestamp to the present
         */
        public function setNewpassword( $str, $throttle = true ) {
-               $this->load();
+               $this->loadPasswords();
 
                if ( $str === null ) {
                        $this->mNewpassword = '';
index cf87129..eb6a57a 100644 (file)
@@ -20,8 +20,6 @@
  * @file
  */
 
-define( 'MW_LC_VERSION', 2 );
-
 /**
  * Class for caching the contents of localisation files, Messages*.php
  * and *.i18n.php.
@@ -35,6 +33,8 @@ define( 'MW_LC_VERSION', 2 );
  * as grammatical transformation, is done by the caller.
  */
 class LocalisationCache {
+       const VERSION = 2;
+
        /** Configuration associative array */
        private $conf;
 
@@ -913,7 +913,7 @@ class LocalisationCache {
                # Add cache dependencies for any referenced globals
                $deps['wgExtensionMessagesFiles'] = new GlobalDependency( 'wgExtensionMessagesFiles' );
                $deps['wgMessagesDirs'] = new GlobalDependency( 'wgMessagesDirs' );
-               $deps['version'] = new ConstantDependency( 'MW_LC_VERSION' );
+               $deps['version'] = new ConstantDependency( 'LocalisationCache::VERSION' );
 
                # Add dependencies to the cache entry
                $allData['deps'] = $deps;
index 79e16f1..d7dbd2c 100644 (file)
        "config-extensions-help": "Пашырэньні пададзеныя вышэй, былі знойдзеныя ў Вашай дырэкторыі <code>./extensions</code>.\n\nЯны могуць патрабаваць дадатковых наладаў, але іх можна ўключыць зараз",
        "config-skins": "Тэмы афармленьня",
        "config-skins-help": "Пералічаныя вышэй тэмы афармленьня знойдзеныя ў вашай тэчцы <code>./skins</code>. Вы мусіце ўключыць як мінімум адну, а таксама абраць тэму па змоўчаньні.",
+       "config-skins-use-as-default": "Выкарыстоўваць па змоўчаньні гэтую тэму афармленьня",
        "config-install-alreadydone": "'''Папярэджаньне:''' здаецца, што Вы ўжо ўсталёўвалі MediaWiki і спрабуеце зрабіць гэтай зноў.\nКалі ласка, перайдзіце на наступную старонку.",
        "config-install-begin": "Пасьля націску кнопкі «{{int:config-continue}}» пачнецца ўсталяваньне MediaWiki.\nКалі Вы жадаеце што-небудзь зьмяніць, націсьніце кнопку «{{int:config-back}}».",
        "config-install-step-done": "зроблена",
index 39ed367..468bceb 100644 (file)
@@ -4,6 +4,7 @@
                        "Filipinayzd"
                ]
        },
+       "config-title": "Pabutang ka MediaWiki $1",
        "config-information": "Impormasyon",
        "config-your-language": "A kanimong sarita:",
        "config-wiki-language": "Sarita ka Wiki:",
        "config-db-host-oracle": "Database ka TNS:",
        "config-db-wiki-settings": "Mibdiron adin wiki",
        "config-db-name": "Ngaran ka database:",
+       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
        "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+       "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
        "config-db-port": "Port ka database:",
        "config-db-schema": "Skema para sa MediaWiki:",
        "config-sqlite-dir": "Direktoryo ka data sa SQLite:",
        "config-oracle-def-ts": "Dating tablescape:",
        "config-oracle-temp-ts": "Temporaryong tablescape:",
+       "config-type-mysql": "MySQL (o compatible)",
        "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "MySQL settings",
        "config-header-postgres": "PostgreSQL settings",
        "config-header-mssql": "Microsoft SQL Server settings",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
+       "config-mysql-binary": "Binary",
        "config-mysql-utf8": "UTF-8",
+       "config-site-name": "Ngaran ka wiki",
+       "config-site-name-blank": "Ibutang a ngaran ka site.",
+       "config-project-namespace": "Bibutangan ka proyekto:",
+       "config-ns-generic": "Proyekto",
        "config-ns-other-default": "MyWiki",
        "config-admin-password": "Password:",
        "config-admin-password-confirm": "Password ulit:",
        "config-admin-email": "Email address:",
        "config-profile-wiki": "Bukas na wiki",
        "config-profile-private": "Pribadong wiki",
+       "config-license-pd": "Pampublikong Domain",
+       "config-email-sender": "Pabalik na email adres:",
        "config-logo": "URL ko logo:",
        "config-cc-again": "Pumili dayday...",
        "config-install-step-done": "tapus na",
+       "config-install-user-alreadyexists": "Agko na ka user na \"$1\"",
+       "config-install-user-create-failed": "Sala a ginigibong user na \"$1\": $2",
        "config-help": "tabang"
 }
index 59eec45..19b02b5 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Peter Alberti",
                        "Christian List",
-                       "Tjernobyl"
+                       "Tjernobyl",
+                       "Thomsen"
                ]
        },
        "config-page-language": "Sprog",
        "config-page-name": "Navn",
        "config-page-options": "Indstillinger",
        "config-page-install": "Installer",
+       "config-page-complete": "Færdig",
+       "config-page-restart": "Genstarte installation",
+       "config-page-readme": "Læs mig",
+       "config-page-copying": "Kopiering",
+       "config-page-upgradedoc": "Opgradering",
+       "config-page-existingwiki": "Eksisterende wiki",
+       "config-help-restart": "Vil du rydde alle gemte data, du har indtastet og genstarte installationen?",
+       "config-restart": "Ja, genstarte den",
+       "config-env-php": "PHP  $1  er installeret.",
+       "config-db-type": "Databasetype:",
+       "config-db-host": "Database vært:",
+       "config-db-name": "Databasenavn:",
+       "config-mysql-old": "MySQL $1 eller nyere kræves. Du har $2.",
        "config-header-mysql": "MySQL-indstillinger",
        "config-header-postgres": "PostgreSQL-indstillinger",
        "config-header-sqlite": "SQLite-indstillinger",
index fc078c9..b46902c 100644 (file)
@@ -59,6 +59,7 @@
        "config-outdated-sqlite": "'''Varning:''' du har SQLite $1, vilket är lägre än minimikravet version $2. SQLite kommer inte att vara tillgänglig.",
        "config-no-fts3": "'''Varning:''' SQLite kompileras utan [//sqlite.org/fts3.html FTS3-modulen], sökfunktioner kommer att vara otillgängliga på denna backend.",
        "config-register-globals-error": "<strong>Fel: PHP-alternativet <code>[http://php.net/register_globals register_globals]</code> är aktiverad.\nDen måste vara inaktiverad för att fortsätta med installationen.</strong>\nSe [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] för hjälp om hur man gör så.",
+       "config-magic-quotes-gpc": "<strong>Kritiskt: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_gpc är aktiv!</strong>\nDetta alternativ korrumperar inmatad data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
        "config-magic-quotes-runtime": "'''Kritiskt: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] är aktiv!'''\nDetta alternativ korrumperar inmatad data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
        "config-magic-quotes-sybase": "'''Kritiskt: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] är aktiv!'''\nDetta alternativ korrumperar inmatad data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
        "config-mbstring": "'''Kritiskt: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] är aktiv!'''\nDetta alternativ orsakar fel och kan korrumpera data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
@@ -69,6 +70,7 @@
        "config-memory-raised": "PHPs <code>memory_limit</code> är $1, ökad till $2.",
        "config-memory-bad": "''' Varning:''' PHP:s <code>memory_limit</code> är $1.\nDetta är förmodligen för lågt.\nInstallationen kan misslyckas!",
        "config-ctype": "'''Kritiskt:''' PHP måste kompileras med stöd för [http://www.php.net/manual/en/ctype.installation.php Ctype-tillägget].",
+       "config-iconv": "<strong>Kritiskt:</strong> PHP måste kompileras med stöd för [http://www.php.net/manual/en/iconv.installation.php iconv-tillägget].",
        "config-json": "'''Varning:''' PHP kompilerades utan JSON-stöd.\nDu måste antingen installera PHP JSON-tillägget eller [http://pecl.php.net/package/jsonc PECL jsonc]-tillägget före installationen av MediaWiki.\n* PHP-tillägget är inkluderat i Red Hat Enterprise Linux (CentOS) 5 och 6, men måste aktiveras i <code>/etc/php.ini</code> eller <code>/etc/php.d/json.ini</code>.\n* Vissa Linux-distributioner släppta efter maj 2013 har utelämnat PHP-tillägget och har istället inkluderat PECL-tillägget som <code>php5-json</code> eller <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] är installerat",
        "config-apc": "[http://www.php.net/apc APC] är installerat",
        "config-license-gfdl": "GNU Free Documentation License 1.3 eller senare",
        "config-license-pd": "Public Domain",
        "config-license-cc-choose": "Välj en anpassad Creative Commons-licens",
-       "config-license-help": "Många publika wikis släpper alla bidrag under en  [http://freedomdefined.org/Definition fri licens].\nDetta bidrar till en känsla av gemensamt ägandeskap och uppmuntrar till långsiktiga bidrag.\nDet är i allmänhet inte nödvändigt för en privat eller företagswiki.\n\nOm du vill kunna använda text från Wikipedia, och du vill att Wikipedia ska kunna acceptera text kopierad ifrån din wiki bör du välja <strong>Creative Commons Erkännande-DelaLika</strong>.\n\nWikipedia använde tidigare  GNU Free Documentation License.\nGFDL är en giltig licens, men svår att förstå.\nDet är även svårt att återanvända innehåll som licensierats under GFDL.",
+       "config-license-help": "Många publika wikis släpper alla bidrag under en  [http://freedomdefined.org/Definition fri licens].\nDetta bidrar till en känsla av gemensamt ägandeskap och uppmuntrar till långsiktiga bidrag.\nDet är i allmänhet inte nödvändigt för en privat eller företagswiki.\n\nOm du vill kunna använda text från Wikipedia, och du vill att Wikipedia ska kunna acceptera text kopierad ifrån din wiki bör du välja <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nWikipedia använde tidigare  GNU Free Documentation License.\nGFDL är en giltig licens, men svår att förstå.\nDet är även svårt att återanvända innehåll som licensierats under GFDL.",
        "config-email-settings": "E-postinställningar",
        "config-enable-email": "Aktivera utgående e-post",
        "config-enable-email-help": "Om du vill att e-post ska fungera behöver,[http://www.php.net/manual/en/mail.configuration.php PHPs e-postinställningar] vara konfigurerad på rätt sätt.\nOm du inte vill ha några e-postfunktioner, kan du inaktivera dem här.",
index 9245d42..a0ce806 100644 (file)
@@ -202,7 +202,7 @@ class SvgHandler extends ImageHandler {
                $tmpDir = wfTempDir() . '/svg_' . wfRandomString( 24 );
                $lnPath = "$tmpDir/" . basename( $srcPath );
                $ok = mkdir( $tmpDir, 0771 ) && symlink( $srcPath, $lnPath );
-               $cleaner = new ScopedCallback( function() use ( $tmpDir, $lnPath ) {
+               $cleaner = new ScopedCallback( function () use ( $tmpDir, $lnPath ) {
                        wfSuppressWarnings();
                        unlink( $lnPath );
                        rmdir( $tmpDir );
index faff0e7..84e7fe2 100644 (file)
@@ -33,7 +33,7 @@ class CoreParserFunctions {
        static function register( $parser ) {
                global $wgAllowDisplayTitle, $wgAllowSlowParserFunctions;
 
-               # Syntax for arguments (see self::setFunctionHook):
+               # Syntax for arguments (see Parser::setFunctionHook):
                #  "name for lookup in localized magic words array",
                #  function callback,
                #  optional SFH_NO_HASH to omit the hash from calls (e.g. {{int:...}}
index 3de7505..22b127d 100644 (file)
@@ -799,8 +799,8 @@ class ParserOutput extends CacheTime {
         * Get or set the prevent-clickjacking flag
         *
         * @since 1.24
-        * @param boolean|null $flag New flag value, or null to leave it unchanged
-        * @return boolean Old flag value
+        * @param bool|null $flag New flag value, or null to leave it unchanged
+        * @return bool Old flag value
         */
        public function preventClickjacking( $flag = null ) {
                return wfSetVar( $this->mPreventClickjacking, $flag );
index 70b7656..3b4ebb1 100644 (file)
@@ -98,8 +98,8 @@ final class PasswordFactory {
         * if a null hash is given.
         *
         * @param string|null $hash Existing hash or null for an invalid password
-        * @return Password object
-        * @throws PasswordError if hash is invalid or type is not recognized
+        * @return Password
+        * @throws PasswordError If hash is invalid or type is not recognized
         */
        public function newFromCiphertext( $hash ) {
                if ( $hash === null || $hash === false || $hash === '' ) {
@@ -122,8 +122,8 @@ final class PasswordFactory {
         * Make a new default password of the given type.
         *
         * @param string $type Existing type
-        * @return Password object
-        * @throws PasswordError if hash is invalid or type is not recognized
+        * @return Password
+        * @throws PasswordError If hash is invalid or type is not recognized
         */
        public function newFromType( $type ) {
                if ( !isset( $this->types[$type] ) ) {
@@ -143,7 +143,7 @@ final class PasswordFactory {
         *
         * @param string $password Plaintext password
         * @param Password|null $existing Optional existing hash to get options from
-        * @return Password object
+        * @return Password
         */
        public function newFromPlaintext( $password, Password $existing = null ) {
                if ( $existing === null ) {
index bcb3842..21e6435 100644 (file)
@@ -307,11 +307,11 @@ class ResourceLoader {
 
                                        // If $name is preceded with a '+', the defined style files will be added to 'default'
                                        // skinStyles, otherwise 'default' will be ignored as it normally would be.
-                                       if ( isset( $skinStyles[ $name ] ) ) {
-                                               $paths = (array)$skinStyles[ $name ];
+                                       if ( isset( $skinStyles[$name] ) ) {
+                                               $paths = (array)$skinStyles[$name];
                                                $styleFiles = array();
-                                       } else if ( isset( $skinStyles[ '+' . $name ] ) ) {
-                                               $paths = (array)$skinStyles[ '+' . $name ];
+                                       } elseif ( isset( $skinStyles['+' . $name] ) ) {
+                                               $paths = (array)$skinStyles['+' . $name];
                                                $styleFiles = isset( $this->moduleInfos[$name]['skinStyles']['default'] ) ?
                                                        $this->moduleInfos[$name]['skinStyles']['default'] :
                                                        array();
@@ -493,7 +493,7 @@ class ResourceLoader {
         * Return whether the definition of a module corresponds to a simple ResourceLoaderFileModule.
         *
         * @param string $name Module name
-        * @return boolean
+        * @return bool
         */
        protected function isFileModule( $name ) {
                if ( !isset( $this->moduleInfos[$name] ) ) {
index edde9bc..c3a36e4 100644 (file)
@@ -292,7 +292,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         *     to $IP
         * @param string $remoteBasePath Path to use if not provided in module definition. Defaults
         *     to $wgScriptPath
-        * @return array array( localBasePath, remoteBasePath )
+        * @return array Array( localBasePath, remoteBasePath )
         */
        public static function extractBasePaths(
                $options = array(),
index e4e4bfb..38c52a0 100644 (file)
@@ -37,10 +37,6 @@ class SpecialExport extends SpecialPage {
        }
 
        public function execute( $par ) {
-               global $wgSitename, $wgExportAllowListContributors, $wgExportFromNamespaces;
-               global $wgExportAllowHistory, $wgExportMaxHistory, $wgExportMaxLinkDepth;
-               global $wgExportAllowAll;
-
                $this->setHeaders();
                $this->outputHeader();
                $config = $this->getConfig();
index a67d3c0..0efebb3 100644 (file)
@@ -134,16 +134,15 @@ class SpecialJavaScriptTest extends SpecialPage {
         * Initialize the page for QUnit.
         */
        private function initQUnitTesting() {
-               global $wgJavaScriptTestConfig;
-
                $out = $this->getOutput();
+               $testConfig = $this->getConfig()->get( 'JavaScriptTestConfig' );
 
                $out->addModules( 'test.mediawiki.qunit.testrunner' );
                $qunitTestModules = $out->getResourceLoader()->getTestModuleNames( 'qunit' );
                $out->addModules( $qunitTestModules );
 
                $summary = $this->msg( 'javascripttest-qunit-intro' )
-                       ->params( $wgJavaScriptTestConfig['qunit']['documentation'] )
+                       ->params( $testConfig['qunit']['documentation'] )
                        ->parseAsBlock();
                $header = $this->msg( 'javascripttest-qunit-heading' )->escaped();
                $userDir = $this->getLanguage()->getDir();
@@ -169,7 +168,7 @@ HTML;
                // $wgJavaScriptTestConfig in DefaultSettings.php
                $out->addJsConfigVars(
                        'QUnitTestSwarmInjectJSPath',
-                       $wgJavaScriptTestConfig['qunit']['testswarm-injectjs']
+                       $testConfig['qunit']['testswarm-injectjs']
                );
        }
 
index ee144d6..ec9593f 100644 (file)
@@ -131,7 +131,7 @@ class MovePageForm extends UnlistedSpecialPage {
         *    parameters, like the second argument to OutputPage::wrapWikiMsg().
         */
        function showForm( $err ) {
-               global $wgContLang, $wgFixDoubleRedirects, $wgMaximumMovedPages;
+               global $wgContLang;
 
                $this->getSkin()->setRelevantTitle( $this->oldTitle );
 
@@ -190,7 +190,7 @@ class MovePageForm extends UnlistedSpecialPage {
                                );
                        }
 
-                       $out->addWikiMsg( $wgFixDoubleRedirects ?
+                       $out->addWikiMsg( $this->getConfig()->get( 'FixDoubleRedirects' ) ?
                                'movepagetext' :
                                'movepagetext-noredirectfixer'
                        );
@@ -221,7 +221,7 @@ class MovePageForm extends UnlistedSpecialPage {
                                || ( $oldTitleTalkSubpages && $canMoveSubpage ) );
 
                $dbr = wfGetDB( DB_SLAVE );
-               if ( $wgFixDoubleRedirects ) {
+               if ( $this->getConfig()->get( 'FixDoubleRedirects' ) ) {
                        $hasRedirects = $dbr->selectField( 'redirect', '1',
                                array(
                                        'rd_namespace' => $this->oldTitle->getNamespace(),
@@ -419,6 +419,7 @@ class MovePageForm extends UnlistedSpecialPage {
                }
 
                if ( $canMoveSubpage ) {
+                       $maximumMovedPages = $this->getConfig()->get( 'MaximumMovedPages' );
                        $out->addHTML( "
                                <tr>
                                        <td></td>
@@ -435,7 +436,7 @@ class MovePageForm extends UnlistedSpecialPage {
                                                        ( $this->oldTitle->hasSubpages()
                                                                ? 'move-subpages'
                                                                : 'move-talk-subpages' )
-                                               )->numParams( $wgMaximumMovedPages )->params( $wgMaximumMovedPages )->parse()
+                                               )->numParams( $maximumMovedPages )->params( $maximumMovedPages )->parse()
                                        ) .
                                        "</td>
                                </tr>"
@@ -480,8 +481,6 @@ class MovePageForm extends UnlistedSpecialPage {
        }
 
        function doSubmit() {
-               global $wgMaximumMovedPages, $wgFixDoubleRedirects;
-
                $user = $this->getUser();
 
                if ( $user->pingLimiter( 'move' ) ) {
@@ -557,7 +556,7 @@ class MovePageForm extends UnlistedSpecialPage {
                        return;
                }
 
-               if ( $wgFixDoubleRedirects && $this->fixRedirects ) {
+               if ( $this->getConfig()->get( 'FixDoubleRedirects' ) && $this->fixRedirects ) {
                        DoubleRedirectJob::fixRedirects( 'move', $ot, $nt );
                }
 
@@ -713,9 +712,10 @@ class MovePageForm extends UnlistedSpecialPage {
                                                ->rawParams( $oldLink, $newLink )->escaped();
                                        ++$count;
 
-                                       if ( $count >= $wgMaximumMovedPages ) {
+                                       $maximumMovedPages = $this->getConfig()->get( 'MaximumMovedPages' );
+                                       if ( $count >= $maximumMovedPages ) {
                                                $extraOutput[] = $this->msg( 'movepage-max-pages' )
-                                                       ->numParams( $wgMaximumMovedPages )->escaped();
+                                                       ->numParams( $maximumMovedPages )->escaped();
                                                break;
                                        }
                                } else {
index 1f3c63f..71b1893 100644 (file)
@@ -63,7 +63,6 @@ class SpecialMyLanguage extends RedirectSpecialArticle {
         * @return Title|null
         */
        public function findTitle( $par ) {
-               global $wgLanguageCode;
                // base = title without language code suffix
                // provided = the title as it was given
                $base = $provided = Title::newFromText( $par );
@@ -83,7 +82,7 @@ class SpecialMyLanguage extends RedirectSpecialArticle {
 
                $uiCode = $this->getLanguage()->getCode();
                $proposed = $base->getSubpage( $uiCode );
-               if ( $uiCode !== $wgLanguageCode && $proposed && $proposed->exists() ) {
+               if ( $uiCode !== $this->getConfig()->get( 'LanguageCode' ) && $proposed && $proposed->exists() ) {
                        return $proposed;
                } elseif ( $provided && $provided->exists() ) {
                        return $provided;
index 147d176..aff5947 100644 (file)
@@ -89,7 +89,6 @@ class NewFilesPager extends ReverseChronologicalPager {
        }
 
        function getQueryInfo() {
-               global $wgMiserMode;
                $conds = $jconds = array();
                $tables = array( 'image' );
 
@@ -109,7 +108,7 @@ class NewFilesPager extends ReverseChronologicalPager {
                        }
                }
 
-               if ( !$wgMiserMode && $this->like !== null ) {
+               if ( !$this->getConfig()->get( 'MiserMode' ) && $this->like !== null ) {
                        $dbr = wfGetDB( DB_SLAVE );
                        $likeObj = Title::newFromURL( $this->like );
                        if ( $likeObj instanceof Title ) {
@@ -173,8 +172,6 @@ class NewFilesPager extends ReverseChronologicalPager {
        }
 
        function getForm() {
-               global $wgMiserMode;
-
                $fields = array(
                        'like' => array(
                                'type' => 'text',
@@ -198,7 +195,7 @@ class NewFilesPager extends ReverseChronologicalPager {
                        ),
                );
 
-               if ( $wgMiserMode ) {
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
                        unset( $fields['like'] );
                }
 
index 1ec7006..fbb2d73 100644 (file)
@@ -199,8 +199,6 @@ class SpecialNewpages extends IncludableSpecialPage {
        }
 
        protected function form() {
-               global $wgScript;
-
                // Consume values
                $this->opts->consumeValue( 'offset' ); // don't carry offset, DWIW
                $namespace = $this->opts->consumeValue( 'namespace' );
@@ -224,7 +222,7 @@ class SpecialNewpages extends IncludableSpecialPage {
                        list( $tagFilterLabel, $tagFilterSelector ) = $tagFilter;
                }
 
-               $form = Xml::openElement( 'form', array( 'action' => $wgScript ) ) .
+               $form = Xml::openElement( 'form', array( 'action' => wfScript() ) ) .
                        Html::hidden( 'title', $this->getPageTitle()->getPrefixedDBkey() ) .
                        Xml::fieldset( $this->msg( 'newpages' )->text() ) .
                        Xml::openElement( 'table', array( 'id' => 'mw-newpages-table' ) ) .
@@ -405,21 +403,20 @@ class SpecialNewpages extends IncludableSpecialPage {
         * @param string $type
         */
        protected function feed( $type ) {
-               global $wgFeed, $wgFeedClasses, $wgFeedLimit;
-
-               if ( !$wgFeed ) {
+               if ( !$this->getConfig()->get( 'Feed' ) ) {
                        $this->getOutput()->addWikiMsg( 'feed-unavailable' );
 
                        return;
                }
 
-               if ( !isset( $wgFeedClasses[$type] ) ) {
+               $feedClasses = $this->getConfig()->get( 'FeedClasses' );
+               if ( !isset( $feedClasses[$type] ) ) {
                        $this->getOutput()->addWikiMsg( 'feed-invalid' );
 
                        return;
                }
 
-               $feed = new $wgFeedClasses[$type](
+               $feed = new $feedClasses[$type](
                        $this->feedTitle(),
                        $this->msg( 'tagline' )->text(),
                        $this->getPageTitle()->getFullURL()
@@ -427,7 +424,7 @@ class SpecialNewpages extends IncludableSpecialPage {
 
                $pager = new NewPagesPager( $this, $this->opts );
                $limit = $this->opts->getValue( 'limit' );
-               $pager->mLimit = min( $limit, $wgFeedLimit );
+               $pager->mLimit = min( $limit, $this->getConfig()->get( 'FeedLimit' ) );
 
                $feed->outHeader();
                if ( $pager->getNumRows() > 0 ) {
@@ -439,10 +436,11 @@ class SpecialNewpages extends IncludableSpecialPage {
        }
 
        protected function feedTitle() {
-               global $wgLanguageCode, $wgSitename;
                $desc = $this->getDescription();
+               $code = $this->getConfig()->get( 'LanguageCode' );
+               $sitename = $this->getConfig()->get( 'Sitename' );
 
-               return "$wgSitename - $desc [$wgLanguageCode]";
+               return "$sitename - $desc [$code]";
        }
 
        protected function feedItem( $row ) {
index ba972ce..6e04762 100644 (file)
@@ -43,7 +43,6 @@ class SpecialPageLanguage extends FormSpecialPage {
        }
 
        protected function getFormFields() {
-               global $wgLanguageCode;
                // Get default from the subpage of Special page
                $defaultName = $this->par;
 
@@ -80,7 +79,7 @@ class SpecialPageLanguage extends FormSpecialPage {
                        'type' => 'select',
                        'options' => $options,
                        'label-message' => 'pagelang-language',
-                       'default' => $wgLanguageCode
+                       'default' => $this->getConfig()->get( 'LanguageCode' ),
                );
 
                return $page;
index c60b347..3061c85 100644 (file)
@@ -62,9 +62,10 @@ class SpecialPasswordReset extends FormSpecialPage {
        }
 
        protected function getFormFields() {
-               global $wgPasswordResetRoutes, $wgAuth;
+               global $wgAuth;
+               $resetRoutes = $this->getConfig()->get( 'PasswordResetRoutes' );
                $a = array();
-               if ( isset( $wgPasswordResetRoutes['username'] ) && $wgPasswordResetRoutes['username'] ) {
+               if ( isset( $resetRoutes['username'] ) && $resetRoutes['username'] ) {
                        $a['Username'] = array(
                                'type' => 'text',
                                'label-message' => 'passwordreset-username',
@@ -75,14 +76,14 @@ class SpecialPasswordReset extends FormSpecialPage {
                        }
                }
 
-               if ( isset( $wgPasswordResetRoutes['email'] ) && $wgPasswordResetRoutes['email'] ) {
+               if ( isset( $resetRoutes['email'] ) && $resetRoutes['email'] ) {
                        $a['Email'] = array(
                                'type' => 'email',
                                'label-message' => 'passwordreset-email',
                        );
                }
 
-               if ( isset( $wgPasswordResetRoutes['domain'] ) && $wgPasswordResetRoutes['domain'] ) {
+               if ( isset( $resetRoutes['domain'] ) && $resetRoutes['domain'] ) {
                        $domains = $wgAuth->domainList();
                        $a['Domain'] = array(
                                'type' => 'select',
@@ -103,7 +104,7 @@ class SpecialPasswordReset extends FormSpecialPage {
        }
 
        public function alterForm( HTMLForm $form ) {
-               global $wgPasswordResetRoutes;
+               $resetRoutes = $this->getConfig()->get( 'PasswordResetRoutes' );
 
                $form->setDisplayFormat( 'vform' );
                // Turn the old-school line around the form off.
@@ -115,13 +116,13 @@ class SpecialPasswordReset extends FormSpecialPage {
                $form->addHiddenFields( $this->getRequest()->getValues( 'returnto', 'returntoquery' ) );
 
                $i = 0;
-               if ( isset( $wgPasswordResetRoutes['username'] ) && $wgPasswordResetRoutes['username'] ) {
+               if ( isset( $resetRoutes['username'] ) && $resetRoutes['username'] ) {
                        $i++;
                }
-               if ( isset( $wgPasswordResetRoutes['email'] ) && $wgPasswordResetRoutes['email'] ) {
+               if ( isset( $resetRoutes['email'] ) && $resetRoutes['email'] ) {
                        $i++;
                }
-               if ( isset( $wgPasswordResetRoutes['domain'] ) && $wgPasswordResetRoutes['domain'] ) {
+               if ( isset( $resetRoutes['domain'] ) && $resetRoutes['domain'] ) {
                        $i++;
                }
 
@@ -222,19 +223,16 @@ class SpecialPasswordReset extends FormSpecialPage {
                // Check against password throttle
                foreach ( $users as $user ) {
                        if ( $user->isPasswordReminderThrottled() ) {
-                               global $wgPasswordReminderResendTime;
 
                                # Round the time in hours to 3 d.p., in case someone is specifying
                                # minutes or seconds.
                                return array( array(
                                        'throttled-mailpassword',
-                                       round( $wgPasswordReminderResendTime, 3 )
+                                       round( $this->getConfig()->get( 'PasswordReminderResendTime' ), 3 )
                                ) );
                        }
                }
 
-               global $wgNewPasswordExpiry;
-
                // All the users will have the same email address
                if ( $firstUser->getEmail() == '' ) {
                        // This won't be reachable from the email route, so safe to expose the username
@@ -273,7 +271,7 @@ class SpecialPasswordReset extends FormSpecialPage {
                        $passwordBlock,
                        count( $passwords ),
                        '<' . Title::newMainPage()->getCanonicalURL() . '>',
-                       round( $wgNewPasswordExpiry / 86400 )
+                       round( $this->getConfig()->get( 'NewPasswordExpiry' ) / 86400 )
                );
 
                $title = $this->msg( 'passwordreset-emailtitle' );
@@ -320,11 +318,12 @@ class SpecialPasswordReset extends FormSpecialPage {
        }
 
        protected function canChangePassword( User $user ) {
-               global $wgPasswordResetRoutes, $wgEnableEmail, $wgAuth;
+               global $wgAuth;
+               $resetRoutes = $this->getConfig()->get( 'PasswordResetRoutes' );
 
                // Maybe password resets are disabled, or there are no allowable routes
-               if ( !is_array( $wgPasswordResetRoutes ) ||
-                       !in_array( true, array_values( $wgPasswordResetRoutes ) )
+               if ( !is_array( $resetRoutes ) ||
+                       !in_array( true, array_values( $resetRoutes ) )
                ) {
                        return 'passwordreset-disabled';
                }
@@ -335,7 +334,7 @@ class SpecialPasswordReset extends FormSpecialPage {
                }
 
                // Maybe email features have been disabled
-               if ( !$wgEnableEmail ) {
+               if ( !$this->getConfig()->get( 'EnableEmail' ) ) {
                        return 'passwordreset-emaildisabled';
                }
 
index 7554e37..b64b029 100644 (file)
@@ -103,11 +103,9 @@ class SpecialProtectedpages extends SpecialPage {
        protected function showOptions( $namespace, $type = 'edit', $level, $sizetype,
                $size, $indefOnly, $cascadeOnly, $noRedirect
        ) {
-               global $wgScript;
-
                $title = $this->getPageTitle();
 
-               return Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ) .
+               return Xml::openElement( 'form', array( 'method' => 'get', 'action' => wfScript() ) ) .
                        Xml::openElement( 'fieldset' ) .
                        Xml::element( 'legend', array(), $this->msg( 'protectedpages' )->text() ) .
                        Html::hidden( 'title', $title->getPrefixedDBkey() ) . "\n" .
@@ -252,14 +250,12 @@ class SpecialProtectedpages extends SpecialPage {
         * @return string Formatted HTML
         */
        protected function getLevelMenu( $pr_level ) {
-               global $wgRestrictionLevels;
-
                // Temporary array
                $m = array( $this->msg( 'restriction-level-all' )->text() => 0 );
                $options = array();
 
                // First pass to load the log names
-               foreach ( $wgRestrictionLevels as $type ) {
+               foreach ( $this->getConfig()->get( 'RestrictionLevels' ) as $type ) {
                        // Messages used can be 'restriction-level-sysop' and 'restriction-level-autoconfirmed'
                        if ( $type != '' && $type != '*' ) {
                                $text = $this->msg( "restriction-level-$type" )->text();
index 8c01ef2..28a1bc5 100644 (file)
@@ -68,8 +68,6 @@ class SpecialRandomInCategory extends SpecialPage {
        }
 
        public function execute( $par ) {
-               global $wgScript;
-
                $cat = false;
 
                $categoryStr = $this->getRequest()->getText( 'category', $par );
@@ -100,7 +98,7 @@ class SpecialRandomInCategory extends SpecialPage {
                        $submit = Html::input( '', $submitText, 'submit' );
 
                        $msg = $this->msg( 'randomincategory-selectcategory' );
-                       $form = Html::rawElement( 'form', array( 'action' => $wgScript ),
+                       $form = Html::rawElement( 'form', array( 'action' => wfScript() ),
                                Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) .
                                $msg->rawParams( $input, $submit )->parse()
                        );
index ea785fa..5938f01 100644 (file)
@@ -192,8 +192,6 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @return bool|ResultWrapper Result or false (for Recentchangeslinked only)
         */
        public function doMainQuery( $conds, $opts ) {
-               global $wgAllowCategorizedRecentChanges;
-
                $dbr = $this->getDB();
                $user = $this->getUser();
 
@@ -247,7 +245,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                );
 
                // Build the final data
-               if ( $wgAllowCategorizedRecentChanges ) {
+               if ( $this->getConfig()->get( 'AllowCategorizedRecentChanges' ) ) {
                        $this->filterByCategories( $rows, $opts );
                }
 
@@ -273,14 +271,14 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @return array
         */
        private function getFeedQuery() {
-               global $wgFeedLimit;
                $query = array_filter( $this->getOptions()->getAllValues(), function ( $value ) {
                        // API handles empty parameters in a different way
                        return $value !== '';
                } );
                $query['action'] = 'feedrecentchanges';
-               if ( $query['limit'] > $wgFeedLimit ) {
-                       $query['limit'] = $wgFeedLimit;
+               $feedLimit = $this->getConfig()->get( 'FeedLimit' );
+               if ( $query['limit'] > $feedLimit ) {
+                       $query['limit'] = $feedLimit;
                }
 
                return $query;
@@ -293,11 +291,9 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @param FormOptions $opts
         */
        public function outputChangesList( $rows, $opts ) {
-               global $wgRCShowWatchingUsers, $wgShowUpdatedMarker;
-
                $limit = $opts['limit'];
 
-               $showWatcherCount = $wgRCShowWatchingUsers
+               $showWatcherCount = $this->getConfig()->get( 'RCShowWatchingUsers' )
                        && $this->getUser()->getOption( 'shownumberswatching' );
                $watcherCache = array();
 
@@ -315,7 +311,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                        $rc = RecentChange::newFromRow( $obj );
                        $rc->counter = $counter++;
                        # Check if the page has been updated since the last visit
-                       if ( $wgShowUpdatedMarker && !empty( $obj->wl_notificationtimestamp ) ) {
+                       if ( $this->getConfig()->get( 'ShowUpdatedMarker' ) && !empty( $obj->wl_notificationtimestamp ) ) {
                                $rc->notificationtimestamp = ( $obj->rc_timestamp >= $obj->wl_notificationtimestamp );
                        } else {
                                $rc->notificationtimestamp = false; // Default
@@ -367,8 +363,6 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @param int $numRows Number of rows in the result to show after this header
         */
        public function doHeader( $opts, $numRows ) {
-               global $wgScript;
-
                $this->setTopText( $opts );
 
                $defaults = $opts->getAllValues();
@@ -420,7 +414,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
 
                $t = $this->getPageTitle();
                $out .= Html::hidden( 'title', $t->getPrefixedText() );
-               $form = Xml::tags( 'form', array( 'action' => $wgScript ), $out );
+               $form = Xml::tags( 'form', array( 'action' => wfScript() ), $out );
                $panel[] = $form;
                $panelString = implode( "\n", $panel );
 
@@ -470,8 +464,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                $extraOpts = array();
                $extraOpts['namespace'] = $this->namespaceFilterForm( $opts );
 
-               global $wgAllowCategorizedRecentChanges;
-               if ( $wgAllowCategorizedRecentChanges ) {
+               if ( $this->getConfig()->get( 'AllowCategorizedRecentChanges' ) ) {
                        $extraOpts['category'] = $this->categoryFilterForm( $opts );
                }
 
@@ -655,8 +648,6 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @return string
         */
        function optionsPanel( $defaults, $nondefaults, $numRows ) {
-               global $wgRCLinkLimits, $wgRCLinkDays;
-
                $options = $nondefaults + $defaults;
 
                $note = '';
@@ -680,12 +671,12 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                }
 
                # Sort data for display and make sure it's unique after we've added user data.
-               $linkLimits = $wgRCLinkLimits;
+               $linkLimits = $this->getConfig()->get( 'RCLinkLimits' );
                $linkLimits[] = $options['limit'];
                sort( $linkLimits );
                $linkLimits = array_unique( $linkLimits );
 
-               $linkDays = $wgRCLinkDays;
+               $linkDays = $this->getConfig()->get( 'RCLinkDays' );
                $linkDays[] = $options['days'];
                sort( $linkDays );
                $linkDays = array_unique( $linkDays );
index 864485c..bc1326b 100644 (file)
@@ -40,16 +40,15 @@ class SpecialResetTokens extends FormSpecialPage {
         * @return array
         */
        protected function getTokensList() {
-               global $wgHiddenPrefs;
-
                if ( !isset( $this->tokensList ) ) {
                        $tokens = array(
                                array( 'preference' => 'watchlisttoken', 'label-message' => 'resettokens-watchlist-token' ),
                        );
                        wfRunHooks( 'SpecialResetTokensTokens', array( &$tokens ) );
 
-                       $tokens = array_filter( $tokens, function ( $tok ) use ( $wgHiddenPrefs ) {
-                               return !in_array( $tok['preference'], $wgHiddenPrefs );
+                       $hiddenPrefs = $this->getConfig()->get( 'HiddenPrefs' );
+                       $tokens = array_filter( $tokens, function ( $tok ) use ( $hiddenPrefs ) {
+                               return !in_array( $tok['preference'], $hiddenPrefs );
                        } );
 
                        $this->tokensList = $tokens;
index 1caed0b..26f67b1 100644 (file)
@@ -186,12 +186,11 @@ class SpecialSearch extends SpecialPage {
                # No match, generate an edit URL
                $title = Title::newFromText( $term );
                if ( !is_null( $title ) ) {
-                       global $wgGoToEdit;
                        wfRunHooks( 'SpecialSearchNogomatch', array( &$title ) );
                        wfDebugLog( 'nogomatch', $title->getFullText(), 'private' );
 
                        # If the feature is enabled, go straight to the edit page
-                       if ( $wgGoToEdit ) {
+                       if ( $this->getConfig()->get( 'GoToEdit' ) ) {
                                $this->getOutput()->redirect( $title->getFullURL( array( 'action' => 'edit' ) ) );
 
                                return;
@@ -204,7 +203,7 @@ class SpecialSearch extends SpecialPage {
         * @param string $term
         */
        public function showResults( $term ) {
-               global $wgDisableTextSearch, $wgSearchForwardUrl, $wgContLang, $wgScript;
+               global $wgContLang;
 
                $profile = new ProfileSection( __METHOD__ );
                $search = $this->getSearchEngine();
@@ -220,9 +219,10 @@ class SpecialSearch extends SpecialPage {
 
                $out = $this->getOutput();
 
-               if ( $wgDisableTextSearch ) {
-                       if ( $wgSearchForwardUrl ) {
-                               $url = str_replace( '$1', urlencode( $term ), $wgSearchForwardUrl );
+               if ( $this->getConfig()->get( 'DisableTextSearch' ) ) {
+                       $searchFowardUrl = $this->getConfig()->get( 'SearchForwardUrl' );
+                       if ( $searchFowardUrl ) {
+                               $url = str_replace( '$1', urlencode( $term ), $searchFowardUrl );
                                $out->redirect( $url );
                        } else {
                                $out->addHTML(
@@ -304,7 +304,7 @@ class SpecialSearch extends SpecialPage {
                                array(
                                        'id' => ( $this->profile === 'advanced' ? 'powersearch' : 'search' ),
                                        'method' => 'get',
-                                       'action' => $wgScript
+                                       'action' => wfScript(),
                                )
                        )
                );
index 3ba50bb..eff06f4 100644 (file)
@@ -49,8 +49,6 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
        }
 
        private function getPageGroups() {
-               global $wgSortSpecialPages;
-
                $pages = SpecialPageFactory::getUsablePages( $this->getUser() );
 
                if ( !count( $pages ) ) {
@@ -76,10 +74,8 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                }
 
                /** Sort */
-               if ( $wgSortSpecialPages ) {
-                       foreach ( $groups as $group => $sortedPages ) {
-                               ksort( $groups[$group] );
-                       }
+               foreach ( $groups as $group => $sortedPages ) {
+                       ksort( $groups[$group] );
                }
 
                /** Always move "other" to end */
index 35141d8..a8b97d7 100644 (file)
@@ -37,11 +37,9 @@ class SpecialUnlockdb extends FormSpecialPage {
        }
 
        public function checkExecutePermissions( User $user ) {
-               global $wgReadOnlyFile;
-
                parent::checkExecutePermissions( $user );
                # If the lock file isn't writable, we can do sweet bugger all
-               if ( !file_exists( $wgReadOnlyFile ) ) {
+               if ( !file_exists( $this->getConfig()->get( 'ReadOnlyFile' ) ) ) {
                        throw new ErrorPageError( 'lockdb', 'databasenotlocked' );
                }
        }
@@ -62,20 +60,19 @@ class SpecialUnlockdb extends FormSpecialPage {
        }
 
        public function onSubmit( array $data ) {
-               global $wgReadOnlyFile;
-
                if ( !$data['Confirm'] ) {
                        return Status::newFatal( 'locknoconfirm' );
                }
 
+               $readOnlyFile = $this->getConfig()->get( 'ReadOnlyFile' );
                wfSuppressWarnings();
-               $res = unlink( $wgReadOnlyFile );
+               $res = unlink( $readOnlyFile );
                wfRestoreWarnings();
 
                if ( $res ) {
                        return Status::newGood();
                } else {
-                       return Status::newFatal( 'filedeleteerror', $wgReadOnlyFile );
+                       return Status::newFatal( 'filedeleteerror', $readOnlyFile );
                }
        }
 
index 743c587..36ec09e 100644 (file)
@@ -44,7 +44,6 @@ class UnusedimagesPage extends ImageQueryPage {
        }
 
        function getQueryInfo() {
-               global $wgCountCategorizedImagesAsUsed;
                $retval = array(
                        'tables' => array( 'image', 'imagelinks' ),
                        'fields' => array(
@@ -58,7 +57,7 @@ class UnusedimagesPage extends ImageQueryPage {
                        'join_conds' => array( 'imagelinks' => array( 'LEFT JOIN', 'il_to = img_name' ) )
                );
 
-               if ( $wgCountCategorizedImagesAsUsed ) {
+               if ( $this->getConfig()->get( 'CountCategorizedImagesAsUsed' ) ) {
                        // Order is significant
                        $retval['tables'] = array( 'image', 'page', 'categorylinks',
                                'imagelinks' );
index cb821cb..b5b4176 100644 (file)
@@ -159,15 +159,13 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * @return bool Success
         */
        private function outputThumbFromStash( $file, $params ) {
-               // this global, if it exists, points to a "scaler", as you might find in
+               $flags = 0;
+               // this config option, if it exists, points to a "scaler", as you might find in
                // the Wikimedia Foundation cluster. See outputRemoteScaledThumb(). This
                // is part of our horrible NFS-based system, we create a file on a mount
                // point here, but fetch the scaled file from somewhere else that
                // happens to share it over NFS.
-               global $wgUploadStashScalerBaseUrl;
-
-               $flags = 0;
-               if ( $wgUploadStashScalerBaseUrl ) {
+               if ( $this->getConfig()->get( 'UploadStashScalerBaseUrl' ) ) {
                        $this->outputRemoteScaledThumb( $file, $params, $flags );
                } else {
                        $this->outputLocallyScaledThumb( $file, $params, $flags );
@@ -230,11 +228,10 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * @return bool Success
         */
        private function outputRemoteScaledThumb( $file, $params, $flags ) {
-               // This global probably looks something like
+               // This option probably looks something like
                // 'http://upload.wikimedia.org/wikipedia/test/thumb/temp'. Do not use
                // trailing slash.
-               global $wgUploadStashScalerBaseUrl;
-               $scalerBaseUrl = $wgUploadStashScalerBaseUrl;
+               $scalerBaseUrl = $this->getConfig()->get( 'UploadStashScalerBaseUrl' );
 
                if ( preg_match( '/^\/\//', $scalerBaseUrl ) ) {
                        // this is apparently a protocol-relative URL, which makes no sense in this context,
index 0ec85ba..cefdad0 100644 (file)
@@ -328,9 +328,7 @@ class UserrightsPage extends SpecialPage {
         * @return Status
         */
        public function fetchUser( $username ) {
-               global $wgUserrightsInterwikiDelimiter;
-
-               $parts = explode( $wgUserrightsInterwikiDelimiter, $username );
+               $parts = explode( $this->getConfig()->get( 'UserrightsInterwikiDelimiter' ), $username );
                if ( count( $parts ) < 2 ) {
                        $name = trim( $username );
                        $database = '';
@@ -417,13 +415,12 @@ class UserrightsPage extends SpecialPage {
         * Output a form to allow searching for a user
         */
        function switchForm() {
-               global $wgScript;
                $this->getOutput()->addHTML(
                        Html::openElement(
                                'form',
                                array(
                                        'method' => 'get',
-                                       'action' => $wgScript,
+                                       'action' => wfScript(),
                                        'name' => 'uluser',
                                        'id' => 'mw-userrights-form1'
                                )
index 8ca9e23..50929a9 100644 (file)
@@ -212,7 +212,7 @@ class SpecialVersion extends SpecialPage {
                $software = array();
                $software['[https://www.mediawiki.org/ MediaWiki]'] = self::getVersionLinked();
                $phpKey = wfIsHHVM() ? '[http://hhvm.com/ HHVM]' :
-                       '[http://www.php.net/ PHP]';
+                       '[https://php.net/ PHP]';
                $software[$phpKey] = PHP_VERSION . " (" . PHP_SAPI . ")";
                $software[$dbr->getSoftwareLink()] = $dbr->getServerInfo();
 
index 5691e50..8f2f86b 100644 (file)
@@ -38,8 +38,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         * @param string $subpage
         */
        function execute( $subpage ) {
-               global $wgEnotifWatchlist, $wgShowUpdatedMarker;
-
                // Anons don't get a watchlist
                $this->requireLogin( 'watchlistanontext' );
 
@@ -66,7 +64,8 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $user = $this->getUser();
                $opts = $this->getOptions();
 
-               if ( ( $wgEnotifWatchlist || $wgShowUpdatedMarker )
+               $config = $this->getConfig();
+               if ( ( $config->get( 'EnotifWatchlist' ) || $config->get( 'ShowUpdatedMarker' ) )
                        && $request->getVal( 'reset' )
                        && $request->wasPosted()
                ) {
@@ -198,8 +197,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         * @return bool|ResultWrapper Result or false (for Recentchangeslinked only)
         */
        public function doMainQuery( $conds, $opts ) {
-               global $wgShowUpdatedMarker;
-
                $dbr = $this->getDB();
                $user = $this->getUser();
 
@@ -238,7 +235,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        ),
                );
 
-               if ( $wgShowUpdatedMarker ) {
+               if ( $this->getConfig()->get( 'ShowUpdatedMarker' ) ) {
                        $fields[] = 'wl_notificationtimestamp';
                }
                if ( $limitWatchlist ) {
@@ -332,8 +329,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         * @param FormOptions $opts
         */
        public function outputChangesList( $rows, $opts ) {
-               global $wgShowUpdatedMarker, $wgRCShowWatchingUsers;
-
                $dbr = $this->getDB();
                $user = $this->getUser();
                $output = $this->getOutput();
@@ -366,13 +361,13 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        $rc = RecentChange::newFromRow( $obj );
                        $rc->counter = $counter++;
 
-                       if ( $wgShowUpdatedMarker ) {
+                       if ( $this->getConfig()->get( 'ShowUpdatedMarker' ) ) {
                                $updated = $obj->wl_notificationtimestamp;
                        } else {
                                $updated = false;
                        }
 
-                       if ( $wgRCShowWatchingUsers && $user->getOption( 'shownumberswatching' ) ) {
+                       if ( $this->getConfig()->get( 'RCShowWatchingUsers' ) && $user->getOption( 'shownumberswatching' ) ) {
                                $rc->numberofWatchingusers = $dbr->selectField( 'watchlist',
                                        'COUNT(*)',
                                        array(
@@ -494,14 +489,13 @@ class SpecialWatchlist extends ChangesListSpecialPage {
        }
 
        function setTopText( FormOptions $opts ) {
-               global $wgEnotifWatchlist, $wgShowUpdatedMarker;
-
                $nondefaults = $opts->getChangedValues();
                $form = "";
                $user = $this->getUser();
 
                $dbr = $this->getDB();
                $numItems = $this->countItems( $dbr );
+               $showUpdatedMarker = $this->getConfig()->get( 'ShowUpdatedMarker' );
 
                // Show watchlist header
                $form .= "<p>";
@@ -509,16 +503,16 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        $form .= $this->msg( 'nowatchlist' )->parse() . "\n";
                } else {
                        $form .= $this->msg( 'watchlist-details' )->numParams( $numItems )->parse() . "\n";
-                       if ( $wgEnotifWatchlist && $user->getOption( 'enotifwatchlistpages' ) ) {
+                       if ( $this->getConfig()->get( 'EnotifWatchlist' ) && $user->getOption( 'enotifwatchlistpages' ) ) {
                                $form .= $this->msg( 'wlheader-enotif' )->parse() . "\n";
                        }
-                       if ( $wgShowUpdatedMarker ) {
+                       if ( $showUpdatedMarker ) {
                                $form .= $this->msg( 'wlheader-showupdated' )->parse() . "\n";
                        }
                }
                $form .= "</p>";
 
-               if ( $numItems > 0 && $wgShowUpdatedMarker ) {
+               if ( $numItems > 0 && $showUpdatedMarker ) {
                        $form .= Xml::openElement( 'form', array( 'method' => 'post',
                                'action' => $this->getPageTitle()->getLocalURL(),
                                'id' => 'mw-watchlist-resetbutton' ) ) . "\n" .
index 1589a8b..f3a9bdf 100644 (file)
        "uploadwarning": "تحذير الرفع",
        "uploadwarning-text": "من فضلك عدل وصف الملف أدناه وحاول مرة أخرى.",
        "savefile": "احفظ الملف",
-       "uploadedimage": "رفع \"[[$1]]\"",
-       "overwroteimage": "رفع نسخة جديدة من \"[[$1]]\"",
        "uploaddisabled": "تم تعطيل الرفع",
        "copyuploaddisabled": "الرفع من مسار معطل.",
        "uploaddisabledtext": "رفع الملفات معطل.",
index f606979..be91ee8 100644 (file)
        "uploadwarning": "Avisu de xubíes de ficheros",
        "uploadwarning-text": "Por favor, camuda más abaxo la descripción del ficheru y vuelve a tentalo.",
        "savefile": "Guardar ficheru",
-       "uploadedimage": "xubió \"[[$1]]\"",
-       "overwroteimage": "xubió una versión nueva de \"[[$1]]\"",
        "uploaddisabled": "Deshabilitaes les xubíes",
        "copyuploaddisabled": "Xubir por URL ta desactivao.",
        "uploaddisabledtext": "Les xubíes de ficheros tán desactivaes.",
index 6cee818..5fff51d 100644 (file)
        "uploadwarning": "Папярэджаньне",
        "uploadwarning-text": "Калі ласка, зьмяніце апісаньне файла ніжэй і паспрабуйце ізноў.",
        "savefile": "Захаваць файл",
-       "uploadedimage": "загружаная «[[$1]]»",
-       "overwroteimage": "загружаная новая вэрсія «[[$1]]»",
        "uploaddisabled": "Загрузка файлаў забароненая",
        "copyuploaddisabled": "Загрузка праз URL-адрас адключаная.",
        "uploaddisabledtext": "Загрузка файлаў забароненая.",
        "importlogpage": "Журнал імпартаваньняў",
        "importlogpagetext": "Імпартаваньне адміністратарамі старонак з гісторыяй зьменаў зь іншых вікі.",
        "import-logentry-upload": "імпартавана [[$1]] праз загрузку файла",
-       "import-logentry-upload-detail": "$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}}",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|вэрсія імпартаваная|вэрсіі імпартаваныя|вэрсіяў імпартаваныя}}",
        "import-logentry-interwiki": "імпартавана зь іншай вікі $1",
-       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}} з $2",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|вэрсія імпартаваная|вэрсіі імпартаваныя|вэрсіяў імпартаваныя}} з $2",
        "javascripttest": "Тэставаньне JavaScript",
        "javascripttest-title": "Праводзіцца тэставаньне $1",
        "javascripttest-pagetext-noframework": "Гэтая старонка трымаецца для правядзеньня тэстаў JavaScript.",
        "logentry-rights-rights": "$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групы з $4 на $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групаў",
        "logentry-rights-autopromote": "$1 {{GENDER:$1|быў аўтаматычна пераведзены|была аўтаматычна пераведзеная}} з групы $4 ў $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|загрузіў|загрузіла}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|загрузіў|загрузіла}} новую вэрсію $3",
        "rightsnone": "(няма)",
        "feedback-bugornote": "Калі Вы гатовы падрабязна апісаць тэхнічную праблему, калі ласка [$1 паведаміце пра памылку]. \nУ адваротным выпадку, Вы можаце выкарыстоўваць простую форму пададзеную ніжэй. Ваш камэнтар будзе дададзены на старонку «[$3 $2]», разам з Вашым іменем удзельніка і выкарыстоўваемым браўзэрам.",
        "feedback-subject": "Тэма:",
index d69a81b..2259f36 100644 (file)
        "uploadwarning": "Папярэджанне пра ўкладанне",
        "uploadwarning-text": "Калі ласка, змяніце апісанне файла ніжэй і паўтарыце спробу.",
        "savefile": "Запісаць файл",
-       "uploadedimage": "укладзена \"[[$1]]\"",
-       "overwroteimage": "укладзена новая версія \"[[$1]]\"",
        "uploaddisabled": "Укладанні не дазваляюцца",
        "copyuploaddisabled": "Даданне па URL адключана.",
        "uploaddisabledtext": "Не дазваляюцца ўкладанні файлаў.",
index 2ab4890..871ad00 100644 (file)
        "uploadwarning": "Предупреждение при качване",
        "uploadwarning-text": "Необходимо е да промените описанието на файла по-долу и да опитате отново.",
        "savefile": "Съхраняване на файл",
-       "uploadedimage": "качи „[[$1]]“",
-       "overwroteimage": "качи нова версия на „[[$1]]“",
        "uploaddisabled": "Качванията са забранени.",
        "copyuploaddisabled": "Спряно е качването на файлове чрез URL.",
        "uploaddisabledtext": "Качването на файлове е забранено.",
index c5ad1e6..7f4f2a9 100644 (file)
        "uploadwarning": "আপলোড সতর্কবাণী",
        "uploadwarning-text": "অনুগ্রহ করে নিচে ফাইলের বর্ণনা পরিবর্তন করে আবার চেষ্টা করুন।",
        "savefile": "সংরক্ষণ",
-       "uploadedimage": "\"[[$1]]\" আপলোড করা হয়েছে।",
-       "overwroteimage": "\"[[$1]]\"-এর একটি নতুন সংস্করণ আপলোড করা হয়েছে",
        "uploaddisabled": "আপলোড নিষ্ক্রিয় আছে",
        "copyuploaddisabled": "ইউআরএল এর মাধ্যমে আপলোড নিস্ক্রিয় রয়েছে।",
        "uploaddisabledtext": "ফাইল আপলোড নিষ্ক্রিয়।",
index 3978647..8f77080 100644 (file)
        "uploadwarning": "Kemenn diwall en ur ezporzhiañ",
        "uploadwarning-text": "Cheñchit deskrivadur ar restr a-is ha klaskit en-dro.",
        "savefile": "Enrollañ ar restr",
-       "uploadedimage": "\"[[$1]]\" enporzhiet",
-       "overwroteimage": "enporzhiet ur stumm nevez eus \"[[$1]]\"",
        "uploaddisabled": "Ho tigarez, diweredekaet eo bet kas ar restr-mañ.",
        "copyuploaddisabled": "Diweredekaet eo bet ar pellgargañ dre URL.",
        "uploaddisabledtext": "Diweredekaet eo an enporzhiañ restroù.",
index 57bae32..e685d70 100644 (file)
        "uploadwarning": "Avís de càrrega",
        "uploadwarning-text": "Modifiqueu la descripció de la imatge i torneu a intentar-ho.",
        "savefile": "Desa el fitxer",
-       "uploadedimage": "ha carregat [[$1]]",
-       "overwroteimage": "ha carregat una nova versió de «[[$1]]»",
        "uploaddisabled": "S'ha inhabilitat la càrrega",
        "copyuploaddisabled": "Càrrega per URL deshabilitada.",
        "uploaddisabledtext": "S'ha inhabilitat la càrrega de fitxers.",
index d525b7b..e5f06a4 100644 (file)
@@ -8,7 +8,8 @@
                        "아라",
                        "Mywood",
                        "Impersonator 1",
-                       "LNDDYL"
+                       "LNDDYL",
+                       "唐吉訶德的侍從"
                ]
        },
        "tog-underline": "下劃綫鏈接",
        "editfont-monospace": "蜀様寬其字體",
        "editfont-sansserif": "無襯線其字體",
        "editfont-serif": "有襯線其字體",
-       "sunday": "禮拜",
-       "monday": "拜一",
-       "tuesday": "拜二",
-       "wednesday": "拜三",
-       "thursday": "拜四",
-       "friday": "拜五",
-       "saturday": "拜六",
-       "sun": "禮拜",
-       "mon": "拜一",
-       "tue": "拜二",
-       "wed": "拜三",
-       "thu": "拜四",
-       "fri": "拜五",
-       "sat": "拜六",
+       "sunday": "Lā̤ buái/禮拜",
+       "monday": "Buái ék/拜一",
+       "tuesday": "Buái nê/拜二",
+       "wednesday": "Buái săng / 拜三",
+       "thursday": "Buái sé/拜四",
+       "friday": "Buái ngô/拜五",
+       "saturday": "Buái lĕ̤k/拜六",
+       "sun": "Lā̤ buái/禮拜",
+       "mon": "Buái ék/拜一",
+       "tue": "Buái nê/拜二",
+       "wed": "Buái săng/拜三",
+       "thu": "Buái sé/拜四",
+       "fri": "Buái ngô/拜五",
+       "sat": "Buái lĕ̤k/拜六",
        "january": "一月",
        "february": "二月",
        "march": "三月",
        "fileexists": "名字蜀樣其文件已經存在去了。如果汝𣍐確定汝是伓是卜想刪掉伊,起動檢查蜀下<strong>[[:$1]]</strong>。\n[[$1|thumb]]",
        "uploadwarning": "上傳警告",
        "savefile": "保存文件",
-       "uploadedimage": "已經上傳其「[[$1]]」",
        "uploadvirus": "茲文件有病毒!\n細底:$1",
        "sourcefilename": "源文件名:",
        "destfilename": "目標文件名:",
index e295f4c..c054fa8 100644 (file)
        "changeemail-password": "Хьан пароль «{{SITENAME}}» проектан:",
        "changeemail-submit": "Хийца email",
        "changeemail-cancel": "Цаоьшу",
+       "changeemail-throttled": "Хьо дукха гӀиртира.\nДехар до, собар де $1 юха гӀортале.",
        "resettokens": "Токенаш кхоссар",
        "resettokens-text": "Хьан йиш ю токенаш кхосса, цара йиш хуьлуьйту цхьаболу долара хаамашна тӀекхача, уьш ю хьан дӀаяздар ца вовшахтесна. \n\nХьона иза оьшу, ахьа хьай токенаш цхьам гучу яьхна елахь я хьан аккаунт йохийна елахь.",
        "resettokens-no-tokens": "Кхосса токенаш яц.",
        "blankarticle": "<strong>ДӀахьедар:</strong> Ахьа кхуллуш йолу агӀо еса ю.\nЮху кнопка «{{int:savearticle}}» тӀетаӀаяхь, агӀо цхьа чулацам боцуш кхуллур ю.",
        "anoneditwarning": "'''Тергам бе''': Ахьа хьай цӀарца тадарш деш дац. Хьан IP-адрес дӀаяздина хира ду хӀокху агӀон истори чу.",
        "anonpreviewwarning": "''Системин чу цагӀахь хьан IP-адрес агӀона истори чу дӀаяз лур ду.''",
+       "missingsummary": "'''Дагадаийтар.''' Ахьа хийцамаш лаьцна доца яздина дац. Кнопка «{{int:savearticle}}» юху тӀетаӀича хийцамах лаьцна хӀума доцуш Ӏалашбира бу.",
        "missingcommenttext": "Дехар до дӀаязбе хайн хаам лахахь.",
+       "missingcommentheader": "'''Дагадаийтар.''' Ахьа хӀокху къамелан дӀахьедар/корта билгал бина бац. Кнопка «{{int:savearticle}}» юху тӀетаӀича хийцамах лаьцна хӀума доцуш Ӏалашбира бу.",
        "summary-preview": "Цуьнах лаьцна хирду:",
        "subject-preview": "Коьрта могӀа хира бу:",
        "blockedtitle": "Декъашхочун блоктоьхана",
        "uploadwarning": "Дlахьедар",
        "uploadwarning-text": "Дехар до, лахара файлах лаьцнарг хийца а дай юху а гӀорта файл чуяккха.",
        "savefile": "ДӀаязе йе файл",
-       "uploadedimage": "чуяьккхина «[[$1]]»",
-       "overwroteimage": "Чуяьккхина файлан керла верси «[[$1]]»",
        "uploaddisabled": "Чуяккхар магийна дац",
        "copyuploaddisabled": "URL тӀера чуяккхар дӀадайина ду.",
        "uploaddisabledtext": "Файлаш чуяхар дӀадайина ду.",
        "logentry-rights-rights": "$1 {{GENDER:$2|хийцина}} $3 бакъо $4 → $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|хийцина}} хӏокхуна $3 бакъо",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|вара|яра}} автоматически {{GENDER:$2|сихьа ваьлла|сихьа яьлла}} $4 $5 чу",
+       "logentry-upload-revert": "$1 {{GENDER:$2|чуяьккхина}} $3",
        "rightsnone": "(яц)",
        "feedback-bugornote": "Хьайн техникин халонах лаьцна яздан хӀума делахь, дехар до, [$1 хаам бе тхоьга].\nДацахь хьан йиш ю хӀокху атта кепаца «[$3 $2]» агӀонг къамел тӀетоха хьан декъашхочун цӀарца, кхин лелош йолу браузер билгал еш.",
        "feedback-subject": "Къамел:",
index 9f45222..e13df68 100644 (file)
        "uploadwarning": "Upozornění k načítání",
        "uploadwarning-text": "Prosíme, upravte popis souboru níže a zkuste to znovu.",
        "savefile": "Uložit soubor",
-       "uploadedimage": "načítá „[[$1]]“",
-       "overwroteimage": "načtena nová verze \"[[$1]]\"",
        "uploaddisabled": "Načítání souborů vypnuto.",
        "copyuploaddisabled": "Načítání souborů prostřednictvím URL je vypnuto.",
        "uploaddisabledtext": "Načítání souborů je vypnuto.",
index b505ce4..587a411 100644 (file)
@@ -46,7 +46,8 @@
                        "Søren Løvborg",
                        "Tjernobyl",
                        "Urhixidur",
-                       "아라"
+                       "아라",
+                       "Thomsen"
                ]
        },
        "tog-underline": "Understreg henvisninger:",
        "uploadwarning": "Advarsel",
        "uploadwarning-text": "Vær venlig at ændre filbeskrivelsen nedenfor og prøv igen.",
        "savefile": "Gem fil",
-       "uploadedimage": "lagde \"[[$1]]\" op",
-       "overwroteimage": "lagde en ny version af \"[[$1]]\" op",
        "uploaddisabled": "Desværre er funktionen til at lægge filer op afbrudt på denne server.",
        "copyuploaddisabled": "Upload via URL er slået fra.",
        "uploaddisabledtext": "Oplægning af filer er deaktiveret.",
        "watchlist-details": "Du har $1 {{PLURAL:$1|side|sider}} på din overvågningsliste (ekskl. diskussionssider).",
        "wlheader-enotif": "E-mail-underretning er slået til.",
        "wlheader-showupdated": "Sider, der er ændret siden dit sidste besøg, er vist med '''fed skrift'''.",
-       "wlnote2": "Nedenfor ses ændringerne i {{PLURAL:$1|den sidste time|de sidste <strong>$1</strong> timer}} op til den $2 kl. $3.",
+       "wlnote": "Nedenfor ses {{PLURAL:$1|den seneste ændring|de seneste '''$1''' ændringer}} i {{PLURAL:$2|den sidste time|de sidste '''$2''' timer}} op til den $3 kl. $4.",
        "wlshowlast": "Vis de seneste $1 timer $2 dage $3",
        "watchlist-options": "Indstillinger for overvågningslisten",
        "watching": "Tilføjer overvågning …",
index 01f293f..ab5c5f0 100644 (file)
        "uploadwarning": "Warnung",
        "uploadwarning-text": "Bitte ändere unten die Dateibeschreibung und versuche es erneut.",
        "savefile": "Datei speichern",
-       "uploadedimage": "lud „[[$1]]“ hoch",
-       "overwroteimage": "lud eine neue Version von „[[$1]]“ hoch",
        "uploaddisabled": "Hochladen deaktiviert",
        "copyuploaddisabled": "Das Hochladen von URLs ist deaktiviert",
        "uploaddisabledtext": "Das Hochladen von Dateien ist deaktiviert.",
        "logentry-rights-rights": "$1 {{GENDER:$2|änderte}} die Gruppenzugehörigkeit für $3 von $4 zu $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|änderte}} die Gruppenzugehörigkeit für $3",
        "logentry-rights-autopromote": "$1 wurde automatisch von $4 zu $5 {{GENDER:$2|zugeordnet}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|lud}} $3 hoch",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|lud}} eine neue Version von $3 hoch",
+       "logentry-upload-revert": "$1 {{GENDER:$2|lud}} $3 hoch",
        "rightsnone": "(–)",
        "feedback-bugornote": "Sofern du detailliert ein technisches Problem beschreiben möchtest, melde bitte [$1 einen Fehler].\nAnderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kommentar wird, zusammen mit deinem Benutzernamen und der Version des von dir verwendeten Webbrowsers sowie Betriebssystems, auf der Seite „[$3 $2]“ hinzugefügt.",
        "feedback-subject": "Betreff:",
index 275088a..6819fd0 100644 (file)
        "uploadwarning": "Îkazê bar kerdişî",
        "uploadwarning-text": "Bînê de deskripyonê dosyayî bivurne u reyna qeyd bike.",
        "savefile": "Dosya qeyd ke",
-       "uploadedimage": "\"[[$1]]\" bar bi",
-       "overwroteimage": "yew versiyonê \"$1\" newe bar bi",
        "uploaddisabled": "bar kerdişî iptal biyo",
        "copyuploaddisabled": "URL bar kerdiş kefiliyeyo.",
        "uploaddisabledtext": "Barkerdışê dosya dewre ra veta.",
index 6641fbd..6691b64 100644 (file)
@@ -22,6 +22,7 @@
        "tog-watchdefault": "Zûnta al pàgini e i file mudifichê int i tgnû 'd ôc specêl.",
        "tog-watchmoves": "Zûnta al pàgini e i file spustê int i tgnû 'd ôc specêl.",
        "tog-watchdeletion": "Zûnta al pàgini e i file scanşlê int i tgnû 'd ôc specêl.",
+       "tog-watchrollback": "Zûta al pàgini in dóv' ó fât al ritōren a la pàgina 'd préma a i tgnû 'd ôc specêl",
        "tog-minordefault": "Sògna ògni mudéfica cme céca (sōl cme pre-stabilî)",
        "tog-previewontop": "Fà vèder còl ch' ò fât sōver la caşèla ed mudéfica e mìa sòta.",
        "tog-previewonfirst": "Fà vèder còl ch' ò fât almēno 'na vôlta préma 'd salvêr",
        "preview": "Guêrda préma",
        "showpreview": "Guêrda préma 'd salvêr",
        "showdiff": "Guêrda i cambiamèint",
+       "blankarticle": "<strong>Atèinti:</strong>la pàgina che t'é drē fêr la gh'à gnînto dèinter. S' ét tōren a schisêr in sém a \"{{int:savearticle}}\", la pàgina la srà fât sèinsa gnînto dèinter.",
        "anoneditwarning": "'''Atensiòun:''' Ingrès mìa fât. Al tó indirés IP al srà sgnê int la stòria ed cla pàgina chè.",
        "anonpreviewwarning": "\"An n'é mìa stê fât l'ingrès. Mèinter es sêlva la pàgina, l'indirés IP al srà sgnê int la stòria 'd la pàgina.\"",
        "missingsummary": "'''Atensiòun:''' an n'é mìa stê precişê al mutîv de sté mudéfica. S'es tōrna a clichêr insém a \"{{int:savearticle}}\" la mudéfica la gnirà salvêda cun al mutîv vōd.",
        "rev-deleted-event": "(asiòun dal log armôsa)",
        "rev-deleted-user-contribs": "(nòm utèint o indirés IP armôs - mudéfica lughêda da la stòria)",
        "rev-deleted-text-permission": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. \nConsultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.",
+       "rev-suppressed-text-permission": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/ suppress |page={{ FULLPAGENAMEE }}}} log dal canşladûri] per nōv particulêr.",
        "rev-deleted-text-unhide": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.\nS' l' é necesâri a j aministradōr a gh'é incòra permés [$1 ed guardêr cla versiòun ché].",
        "rev-suppressed-text-unhide": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.\nS' l' é necesâri a j aministradōr a gh'é incòra permés [$1 ed guardêr cla versiòun ché].",
        "rev-deleted-text-view": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. J aministradōr a pōlen incòra guardêrla; \nconsultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.",
        "powersearch-togglenone": "Nisûn",
        "powersearch-remember": "Arcôrda la siēlta per êtri sèirchi ch'é vō fêr",
        "search-external": "Sèirca fâta fōra",
+       "searchdisabled": "La sèirca intêrna ed {{SITENAME}} l'a funsiòuna mìa; int al mèinter a s' pōl pruvêr a druvêr un mutōr ed sèirca d'ed fōra cme Google. (A gh' è da nutêr però che còl che gh'é dèinter in {{SITENAME}} che es câten in chi mutōr a prém èser mìa arnuvê.)",
+       "search-error": "É sucès un erōr mèinter a's fêva la sèirca:$1",
        "preferences": "Preferèinsa",
        "mypreferences": "Preferèinsi",
        "prefs-edits": "Mudéfichi fâti:",
+       "prefsnologintext2": "Es prèiga ed $1 per impustêr al preferèinsi 'd l'utèint.",
        "prefs-skin": "Aspèt grâfich (skin)",
        "skin-preview": "Guêrda préma",
        "datedefault": "Nisóna preferèinsa",
+       "prefs-labs": "Funsiòun adâti in sperimèint",
+       "prefs-user-pages": "Pàgini utèint",
+       "prefs-personal": "Prufîl utèint",
+       "prefs-rc": "Ûltmi mudéfichi",
+       "prefs-watchlist": "Tgnîr sòt ôc",
+       "prefs-watchlist-days": "Nómer ed dé da fêr vèder int i tgnû 'd ôc specêl:",
+       "prefs-watchlist-days-max": "Mâsim $1 {{PLURAL:$1|dé}}",
        "saveprefs": "Sêlva",
        "prefs-editing": "Caşèla 'd mudéfica",
        "rows": "Rîghi",
        "upload": "Cârga un 'file'",
        "uploadlogpage": "Fil carghê",
        "filedesc": "Sûnt.",
-       "uploadedimage": "l'à carghê \"[[$1]]\"",
        "license": "Licèinsa:",
        "license-header": "Licèinsa",
        "nolicense": "Nisóna licèinsa sgnêda",
index d506ad2..00159a4 100644 (file)
        "hidetoc": "hide",
        "collapsible-collapse": "Collapse",
        "collapsible-expand": "Expand",
+       "confirmable-confirm": "Are {{GENDER:$1|you}} sure?",
+       "confirmable-yes": "Yes",
+       "confirmable-no": "No",
        "thisisdeleted": "View or restore $1?",
        "viewdeleted": "View $1?",
        "restorelink": "{{PLURAL:$1|one deleted edit|$1 deleted edits}}",
        "version-software": "Installed software",
        "version-software-product": "Product",
        "version-software-version": "Version",
-       "version-db-mysql-url": "http://www.mysql.com/",
-       "version-db-mariadb-url": "http://mariadb.org/",
+       "version-db-mysql-url": "https://www.mysql.com/",
+       "version-db-mariadb-url": "https://mariadb.org/",
        "version-db-percona-url": "http://www.percona.com/software/percona-server",
        "version-db-postgres-url": "http://www.postgresql.org/",
        "version-db-oracle-url": "http://www.oracle.com/database/",
-       "version-db-sqlite-url": "http://www.sqlite.org/",
-       "version-db-mssql-url": "http://www.microsoft.com/sql/",
+       "version-db-sqlite-url": "https://www.sqlite.org/",
+       "version-db-mssql-url": "https://www.microsoft.com/sql/",
        "version-entrypoints": "Entry point URLs",
        "version-entrypoints-header-entrypoint": "Entry point",
        "version-entrypoints-header-url": "URL",
        "logentry-rights-rights": "$1 {{GENDER:$2|changed}} group membership for $3 from $4 to $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|changed}} group membership for $3",
        "logentry-rights-autopromote": "$1 was automatically {{GENDER:$2|promoted}} from $4 to $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|uploaded}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|uploaded}} a new version of $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|uploaded}} $3",
        "rightsnone": "(none)",
        "revdelete-logentry": "changed revision visibility of \"[[$1]]\"",
        "logdelete-logentry": "changed event visibility of \"[[$1]]\"",
        "action-pagelang": "change the page language",
        "log-name-pagelang": "Change language log",
        "log-description-pagelang": "This is a log of changes in page languages.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|changed}} page language for $3 from $4 to $5."
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|changed}} page language for $3 from $4 to $5.",
+       "default-skin-not-found": "Whoops! The default skin for your wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, is not available.\n\nYour installation seems to include the following skins. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable them and choose the default.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected.\n:* Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory].\n:* Download the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following lines into <code>LocalSettings.php</code> to enable all currently installed skins:\n\n<pre>$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
+       "default-skin-not-found-no-skins": "Whoops! The default skin for your wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, is not available.\n\nYou have no installed skins.\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected.\n:* Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory].\n:* Download the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n: Doing this should not interfere with your git repository if you're a MediaWiki developer. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable skins and choose the default.\n",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (enabled)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabled''')"
 }
index 787e750..a28151d 100644 (file)
        "hidetoc": "ocultar",
        "collapsible-collapse": "Contraer",
        "collapsible-expand": "Expandir",
+       "confirmable-confirm": "¿Estás {{GENDER:$1|seguro|segura}}?",
+       "confirmable-yes": "Sí",
+       "confirmable-no": "No",
        "thisisdeleted": "¿Ver o restaurar $1?",
        "viewdeleted": "¿Quieres ver $1?",
        "restorelink": "{{PLURAL:$1|una edición borrada|$1 ediciones borradas}}",
        "uploadwarning": "Advertencia de subida de archivo",
        "uploadwarning-text": "Por favor, modifique la descripción del archivo abajo indicada e inténtelo de nuevo.",
        "savefile": "Guardar archivo",
-       "uploadedimage": "subió «[[$1]]»",
-       "overwroteimage": "subió una nueva versión de «[[$1]]»",
-       "uploaddisabled": "Subida de archivos deshabilitada",
+       "uploaddisabled": "Se desactivó la carga de archivos.",
        "copyuploaddisabled": "Carga por URL deshabilitada.",
-       "uploaddisabledtext": "No es posible subir archivos.",
+       "uploaddisabledtext": "Se desactivó la carga de archivos.",
        "php-uploaddisabledtext": "La subida de archivos está deshabilitada en PHP. Por favor compruebe <code>file_uploads</code> en php.ini.",
        "uploadscripted": "Este archivo contiene script o código HTML que puede ser interpretado erróneamente por un navegador web.",
        "uploadscriptednamespace": "Este archivo SVG contiene un espacio de nombre no permitido '$1'",
        "blocklist-userblocks": "Ocultar bloqueos de cuenta",
        "blocklist-tempblocks": "Ocultar bloqueos temporales",
        "blocklist-addressblocks": "Ocultar bloqueos de una sola dirección IP",
-       "blocklist-rangeblocks": "Ocultar bloqueos de rango",
+       "blocklist-rangeblocks": "Ocultar bloqueos por intervalo",
        "blocklist-timestamp": "Fecha y hora",
        "blocklist-target": "Destino",
        "blocklist-expiry": "Caduca",
        "logentry-rights-rights": "$1 modificó los grupos a los que pertenece $3: de $4 a $5",
        "logentry-rights-rights-legacy": "$1 modificó los grupos a los que pertenece $3",
        "logentry-rights-autopromote": "$1 ha sido {{GENDER:$2|promocionado|promocionada}} automáticamente de $4 a $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|subió}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|subió}} una nueva versión de $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|subió}} $3",
        "rightsnone": "(ninguno)",
        "feedback-bugornote": "Si estás preparado para describir en detalle un problema técnico, [$1 informa de un bug] por favor.\n\nEn otro caso, puedes usar el siguiente formulario. Tu comentario será añadido a la página [$3 $2], junto con tu nombre de usuario y el navegador que usas.",
        "feedback-subject": "Asunto:",
index 7bff800..bd540ee 100644 (file)
        "uploadwarning": "Üleslaadimise hoiatus",
        "uploadwarning-text": "Muuda allpool olevat faili kirjeldust ning proovi uuesti.",
        "savefile": "Salvesta fail",
-       "uploadedimage": "laadis üles faili \"[[$1]]\"",
-       "overwroteimage": "laadis üles faili \"[[$1]]\" uue versiooni",
        "uploaddisabled": "Üleslaadimine hetkel keelatud",
        "copyuploaddisabled": "Internetiaadressilt üleslaadimine on keelatud.",
        "uploaddisabledtext": "Faili üleslaadimine on keelatud.",
index 51e07bd..e7891f2 100644 (file)
@@ -53,6 +53,7 @@
        "tog-watchdefault": "صفحه‌ها و پرونده‌هایی که ویرایش می‌کنم به فهرست پی‌گیری‌هایم افزوده شود",
        "tog-watchmoves": "صفحه‌ها و پرونده‌هایی که منتقل می‌کنم به فهرست پی‌گیری‌هایم افزوده شود",
        "tog-watchdeletion": "صفحه‌ها و پرونده‌هایی که حذف می‌کنم به فهرست پی‌گیری‌هایم افزوده شود",
+       "tog-watchrollback": "افزودن صفحاتی که واگردانی کردم برای فهرست پیگیری‌هایم",
        "tog-minordefault": "همهٔ ویرایش‌ها به طور پیش‌فرض به عنوان «جزئی» علامت بخورد",
        "tog-previewontop": "پیش‌نمایش قبل از جعبهٔ ویرایش نمایش یابد",
        "tog-previewonfirst": "پیش‌نمایش هنگام اولین ویرایش نمایش یابد",
        "uploadwarning": "هشدار بارگذاری",
        "uploadwarning-text": "لطفاً توضیحات پرونده را در زیر تغییر دهید و دوباره تلاش کنید.",
        "savefile": "ذخیرهٔ پرونده",
-       "uploadedimage": "«[[$1]]» را بارگذاری کرد",
-       "overwroteimage": "نسخه جدیدی از  «[[$1]]» را بارگذاری کرد",
        "uploaddisabled": "بارگذاری غیرفعال است.",
        "copyuploaddisabled": "بارگذاری از طریق نشانی اینترنتی غیرفعال است.",
        "uploaddisabledtext": "امکان بارگذاری پرونده غیرفعال است.",
        "nolicense": "هیچ کدام انتخاب نشده‌است",
        "licenses-edit": "گزینه‌های مجوز ویرایش",
        "license-nopreview": "(پیش‌نمایش وجود ندارد)",
-       "upload_source_url": "(یک نشانی اینترنتی معتبر و قابل دسترسی برای عموم)",
-       "upload_source_file": "(پرÙ\88Ù\86دÙ\87â\80\8cاÛ\8c Ø¯Ø± Ø±Ø§Û\8cاÙ\86Ù\87Ù\94 Ø´Ù\85ا)",
+       "upload_source_url": "(شما یک پرونده انتخاب از یک URL معتبر و دسترس عموم انتخاب کردید)",
+       "upload_source_file": "(پرÙ\88Ù\86دÙ\87â\80\8cاÛ\8c Ø§Ø² Ø±Ø§Û\8cاÙ\86Ù\87Ù\94 Ø´Ù\85ا Ø§Ù\86تخاب Ø´Ø¯Ù\87â\80\8cاست)",
        "listfiles-delete": "حذف",
        "listfiles-summary": "این صفحهٔ ویژه تمام پرونده‌های بارگذاری‌شده را نمایش می‌دهد.",
        "listfiles_search_for": "جستجو به دنبال نام پرونده چندرسانه‌ای:",
        "watchlist-details": "بدون احتساب صفحه‌های جداگانهٔ بحث، {{PLURAL:$1|$1 صفحه|$1 صفحه}} در فهرست پی‌گیری‌های شما قرار {{PLURAL:$1|دارد|دارند}}.",
        "wlheader-enotif": "آگاه‌سازی رایانامه‌ای فعال است.",
        "wlheader-showupdated": "صفحه‌هایی که پس از آخرین بازدید شما تغییر کرده‌اند '''پررنگ''' نمایش داده شده‌اند.",
-       "wlnote": "در زیر {{PLURAL:$1|تغییری|$1 تغییری}} که در {{PLURAL:$2|ساعت|$2 ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
+       "wlnote": "در زیر {{PLURAL:$1|تغییری|<strong>$1</strong> تغییری}} که در {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
        "wlshowlast": "نمایش آخرین $1 ساعت $2 روز $3",
        "watchlist-options": "گزینه‌های پی‌گیری",
        "watching": "پی‌گیری...",
        "logentry-rights-rights": "$1 عضویت $3 را از گروه $4 به $5 {{GENDER:$2|تغییر داد}}",
        "logentry-rights-rights-legacy": "$1 گروه عضویت $3 را {{GENDER:$2|تغییر داد}}",
        "logentry-rights-autopromote": "$1 به طور خودکار از $4 به $5 {{GENDER:$2|ارتقاء داد}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|بارگذاری کرد}} $3",
+       "logentry-upload-overwrite": "$1 یک نسخهٔ جدید {{GENDER:$2|بارگذاری‌کرد}} $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|بارگذاری کرد}} $3",
        "rightsnone": "(هیچ)",
        "feedback-bugornote": "اگر آماده‌اید تا مشکلی فنی را با جزئیاتش شرح دهید لطفاً [$1 یک ایراد گزارش دهید]. در غیر این صورت می‌توانید از فرم سادهٔ زیر استفاده کنید. نظر شما به همراه نام کاربری و مرورگرتان به صفحهٔ «[$3 $2]» افزوده خواهد شد.",
        "feedback-subject": "موضوع:",
index 60f90cf..7cab271 100644 (file)
@@ -86,7 +86,7 @@
        "underline-never": "Ei koskaan",
        "underline-default": "Ulkoasun tai selaimen oletustapa",
        "editfont-style": "Muokkauskentän kirjasintyyppi",
-       "editfont-default": "Selaimen oletus",
+       "editfont-default": "Selaimen vakioasetus",
        "editfont-monospace": "Tasalevyinen kirjasin",
        "editfont-sansserif": "Sans-serif-kirjasin",
        "editfont-serif": "Serif-kirjasin",
        "suppressionlog": "Häivytysloki",
        "suppressionlogtext": "Alla on luettelo poistoista ja muokkausestoista, jotka sisältävät ylläpitäjiltä piilotettua materiaalia.\n[[Special:BlockList|Estolistassa]] on lueteltu voimassa olevat muokkauskiellot ja muokkausestot.",
        "mergehistory": "Yhdistä sivujen muutoshistoriat",
-       "mergehistory-header": "Tämä sivu mahdollistaa sivun muutoshistorian yhdistämisen uudemman sivun muutoshistoriaan.\nUuden ja vanhan sivun muutoksien pitää muodostaa jatkumo – ne eivät saa mennä ristikkäin.",
-       "mergehistory-box": "Yhdistä kahden sivun muutoshistoria",
-       "mergehistory-from": "Lähdesivu",
-       "mergehistory-into": "Kohdesivu",
+       "mergehistory-header": "Tällä sivulla voit yhdistää lähdesivun sivuhistorian versioita uudemman sivun historiaan.\nVarmista, että sivujen yhtenäinen muokkaushistoria säilyy eikä mene ristikkäin sekaisin!",
+       "mergehistory-box": "Yhdistä kahden sivun versioita:",
+       "mergehistory-from": "Lähdesivu:",
+       "mergehistory-into": "Kohdesivu:",
        "mergehistory-list": "Sivuhistoria, joka voidaan yhdistää",
-       "mergehistory-merge": "Seuraavat sivun [[:$1]] muutokset voidaan liittää sivun [[:$2]] muutoshistoriaan. Voit valita version, jota myöhempiä muutoksia ei liitetä. Selainlinkkien käyttäminen kadottaa tämän valinnan.",
-       "mergehistory-go": "Etsi muutokset",
+       "mergehistory-merge": "Seuraavat versiot sivusta [[:$1]] voidaan yhdistää sivuun [[:$2]]. \n\nValintamerkin sijoituksella voit yhdistää vain ne versiot, jotka on luotu valittuna ajankohtana tai sitä ennen (listassa alaspäin). \nOta huomioon, että jos käytät navigaatiolinkkejä, tekemäsi valinta poistuu.",
+       "mergehistory-go": "Etsi muokkaukset, jotka voidaan yhdistää",
        "mergehistory-submit": "Yhdistä versiot",
-       "mergehistory-empty": "Ei liitettäviä muutoksia.",
-       "mergehistory-success": "{{PLURAL:$3|Yksi versio|$3 versiota}} sivusta [[:$1]] liitettiin sivuun [[:$2]].",
-       "mergehistory-fail": "Muutoshistorian liittäminen epäonnistui. Tarkista määritellyt sivut ja versiot.",
+       "mergehistory-empty": "Mitään versioita ei voida yhdistää.",
+       "mergehistory-success": "$3 {{PLURAL:$3|versio|versiota}} sivusta [[:$1]] yhdistettiin onnistuneesti sivuun [[:$2]].",
+       "mergehistory-fail": "Sivuhistorioiden yhdistämistä ei voida suorittaa. Tarkista lähde- ja kohdesivujen nimet sekä versioiden aikamääritys.",
        "mergehistory-fail-toobig": "Sivuhistorian yhdistämistä ei voi tehdä, koska enemmän kuin sallittu määrä $1 {{PLURAL:$1|versio|versiota}} siirrettäisiin.",
        "mergehistory-no-source": "Lähdesivua $1 ei ole olemassa.",
        "mergehistory-no-destination": "Kohdesivua $1 ei ole olemassa.",
-       "mergehistory-invalid-source": "Lähdesivulla pitää olla kelvollinen nimi.",
-       "mergehistory-invalid-destination": "Kohdesivulla pitää olla kelvollinen nimi.",
-       "mergehistory-autocomment": "Yhdisti sivun [[:$1]] sivuun [[:$2]]",
+       "mergehistory-invalid-source": "Lähdesivun nimen pitää olla kelvollinen.",
+       "mergehistory-invalid-destination": "Kohdesivun nimen pitää olla kelvollinen.",
+       "mergehistory-autocomment": "Ak: Yhdisti sivun [[:$1]] sivuun [[:$2]]",
        "mergehistory-comment": "Yhdisti sivun [[:$1]] sivuun [[:$2]]: $3",
        "mergehistory-same-destination": "Lähde- ja kohdesivut eivät voi olla samat",
        "mergehistory-reason": "Syy:",
        "mergelog": "Yhdistämisloki",
-       "pagemerge-logentry": "liitti sivun [[$1]] sivuun [[$2]] (muokkaukseen $3 asti)",
-       "revertmerge": "Kumoa yhdistäminen",
+       "pagemerge-logentry": "yhdisti kohteen [[$1]] kohteeseen [[$2]] (muokkaukseen $3 saakka)",
+       "revertmerge": "Peru yhdistäminen",
        "mergelogpagetext": "Alla on loki viimeisimmistä muutoshistorioiden yhdistämisistä.",
        "history-title": "Sivun ”$1” muutoshistoria",
        "difference-title": "Ero sivun ”$1” versioiden välillä",
        "group-bot": "botit",
        "group-sysop": "ylläpitäjät",
        "group-bureaucrat": "byrokraatit",
-       "group-suppress": "häivytysoikeuden käyttäjät",
+       "group-suppress": "häivyttäjät",
        "group-all": "(kaikki)",
        "group-user-member": "{{GENDER:$1|käyttäjä}}",
        "group-autoconfirmed-member": "{{GENDER:$1|automaattisesti hyväksytty käyttäjä}}",
        "group-bot-member": "{{GENDER:$1|botti}}",
        "group-sysop-member": "{{GENDER:$1|ylläpitäjä}}",
        "group-bureaucrat-member": "{{GENDER:$1|byrokraatti}}",
-       "group-suppress-member": "{{GENDER:$1|häivytysoikeuden käyttäjä}}",
+       "group-suppress-member": "{{GENDER:$1|häivyttäjä}}",
        "grouppage-user": "{{ns:project}}:Käyttäjät",
        "grouppage-autoconfirmed": "{{ns:project}}:Automaattisesti hyväksytyt käyttäjät",
        "grouppage-bot": "{{ns:project}}:Botit",
        "uploadwarning": "Tallennusvaroitus",
        "uploadwarning-text": "Muuta alla olevaa tiedostokuvausta ja yritä uudelleen.",
        "savefile": "Tallenna",
-       "uploadedimage": "tallensi tiedoston [[$1]]",
-       "overwroteimage": "tallensi uuden version [[$1]]",
        "uploaddisabled": "Tiedostojen tallennus ei ole käytössä.",
        "copyuploaddisabled": "Tallennus URL:n kautta on poistettu käytöstä.",
        "uploaddisabledtext": "Tiedostojen tallennus on poistettu käytöstä.",
        "upload_source_file": "(valitsemasi tiedosto omasta tietokoneestasi)",
        "listfiles-delete": "poista",
        "listfiles-summary": "Tämä toimintosivu näyttää kaikki tallennetut tiedostot.",
-       "listfiles_search_for": "Nimihaku",
+       "listfiles_search_for": "Etsi tiedoston nimellä:",
        "imgfile": "tiedosto",
        "listfiles": "Tiedostoluettelo",
        "listfiles_thumb": "Pienoiskuva",
        "filerevert-success": "'''[[Media:$1|$1]]''' on palautettu takaisin [$4 versioon, joka luotiin $2 kello $3].",
        "filerevert-badversion": "Tiedostosta ei ole luotu versiota kyseisellä ajan hetkellä.",
        "filedelete": "Poistetaan tiedosto $1",
-       "filedelete-legend": "Tiedoston poisto",
-       "filedelete-intro": "Olet poistamassa tiedoston '''[[Media:$1|$1]]''' ja kaiken sen historian.",
+       "filedelete-legend": "Poista tiedosto",
+       "filedelete-intro": "Olet poistamassa tiedoston '''[[Media:$1|$1]]''' ja lisäksi koko sen muokkaushistorian.",
        "filedelete-intro-old": "<span class=\"plainlinks\">Olet poistamassa tiedoston '''[[Media:$1|$1]]''' [$4 päivämäärällä $2 kello $3 luotua versiota].</span>",
        "filedelete-comment": "Syy:",
        "filedelete-submit": "Poista",
        "movetalk": "Siirrä myös keskustelusivu",
        "move-subpages": "Siirrä kaikki alasivut (enintään $1)",
        "move-talk-subpages": "Siirrä kaikki keskustelusivun alasivut (enintään $1)",
-       "movepage-page-exists": "Sivu $1 on jo olemassa ja sitä ei voi automaattisesti korvata.",
+       "movepage-page-exists": "Sivu $1 on jo olemassa ja sen päälle ei voida automaattisesti siirtää.",
        "movepage-page-moved": "Sivu $1 on siirretty nimelle $2.",
        "movepage-page-unmoved": "Sivua $1 ei voitu siirtää nimelle $2.",
        "movepage-max-pages": "Enimmäismäärä sivuja on siirretty, eikä enempää siirretä enää automaattisesti.\n$1 {{PLURAL:$1|sivu|sivua}} siirrettiin.",
        "export-pagelinks": "Sisällytä linkkien kohteina olevat sivut syvyydelle:",
        "allmessages": "Järjestelmäviestit",
        "allmessagesname": "Nimi",
-       "allmessagesdefault": "Oletusarvo",
-       "allmessagescurrent": "Nykyinen arvo",
+       "allmessagesdefault": "Viestin tekstin perusmuoto",
+       "allmessagescurrent": "Viestin teksti tällä hetkellä",
        "allmessagestext": "Tämä on luettelo järjestelmäviesteistä, jotka ovat saatavilla MediaWiki-nimiavaruudessa.\nJos haluat muokata MediaWikin yleistä kotoistusta, käy [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWikin kotoistussivuilla] ja sivustolla [//translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Tämä sivu ei ole käytössä, koska <tt>$wgUseDatabaseMessages</tt>-asetus on pois päältä.",
        "allmessages-filter-legend": "Suodata",
        "logentry-newusers-autocreate": "Käyttäjätunnus $1 {{GENDER:$2|luotiin}} automaattisesti",
        "logentry-rights-rights": "$1 {{GENDER:$2|muutti}} käyttäjän $3 oikeudet ryhmistä $4 ryhmiin $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|muutti}} käyttäjän $3 jäsenyyttä ryhmässä",
-       "logentry-rights-autopromote": "$1 {{GENDER:$2|muutettiin}} automaattisesti ryhmistä $4 ryhmiin $5",
+       "logentry-rights-autopromote": "Käyttäjän $1 oikeudet {{GENDER:$2|muuttuivat}} automaattisesti ryhmistä $4 ryhmiin $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|tallensi}} tiedoston $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|tallensi}} uuden version tiedostosta $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|tallensi}} tiedoston $3",
        "rightsnone": "(ei oikeuksia)",
        "feedback-bugornote": "Jos voit kuvailla teknisen ongelman tarkasti – [$1 ilmoita ohjelmointivirheestä].\nMuussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi lisätään sivulle [$3 $2], ja siinä on mukana käyttäjätunnuksesi.",
        "feedback-subject": "Otsikko",
        "api-error-illegal-filename": "Tiedoston nimi ei kelpaa.",
        "api-error-internal-error": "Sisäinen virhe: jotain meni vikaan tallennuksesi käsittelyssä.",
        "api-error-invalid-file-key": "Sisäinen virhe: tiedostoa ei löytynyt välikaisvarastosta.",
-       "api-error-missingparam": "Sisäinen virhe: pyynnöstä puutuu parametrejä.",
+       "api-error-missingparam": "Sisäinen virhe: pyynnöstä puutuu parametreja.",
        "api-error-missingresult": "Sisäinen virhe: ei voitu varmistaa, että tallennus onnistui.",
        "api-error-mustbeloggedin": "Sinun pitää olla kirjautunut sisään, jotta voisit tallentaa tiedostoja.",
        "api-error-mustbeposted": "Sisäinen virhe: HTTP POST-pyyntö edellytetty.",
index edd5e2c..30a496d 100644 (file)
        "uploadwarning": "Attention !",
        "uploadwarning-text": "Modifiez la description du fichier et essayez de nouveau.",
        "savefile": "Sauvegarder le fichier",
-       "uploadedimage": "a importé « [[$1]] »",
-       "overwroteimage": "a importé une nouvelle version de « [[$1]] »",
        "uploaddisabled": "Désolé, l’import de fichiers est désactivé.",
        "copyuploaddisabled": "Import de fichier par URL désactivé.",
        "uploaddisabledtext": "L’import de fichiers est désactivé sur ce wiki.",
        "logentry-rights-rights": "$1 {{GENDER:$2|a modifié}} l'appartenance au groupe pour $3 de $4 à $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|a modifié}} l'appartenance au groupe pour $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|a été promu}} automatiquement de $4 à $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|a téléchargé}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|a téléchargé}} une nouvelle version de $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|a téléchargé}} $3",
        "rightsnone": "(aucun)",
        "feedback-bugornote": "Si vous êtes prêt à décrire un problème technique en détail, veuillez [$1 signaler un bogue].\nSinon, vous pouvez utiliser le formulaire simplifié ci-dessous. Votre commentaire sera ajouté à la page « [$3 $2] », avec votre nom d'utilisateur.",
        "feedback-subject": "Objet :",
index 8b1a199..7c7f484 100644 (file)
        "uploadwarning": "Advertencia ao cargar o ficheiro",
        "uploadwarning-text": "Por favor, modifique a descrición do ficheiro e inténteo de novo.",
        "savefile": "Gardar o ficheiro",
-       "uploadedimage": "cargou \"[[$1]]\"",
-       "overwroteimage": "enviou unha nova versión de \"[[$1]]\"",
        "uploaddisabled": "Sentímolo, a subida de ficheiros está desactivada.",
        "copyuploaddisabled": "A carga mediante URL está desactivada.",
        "uploaddisabledtext": "A carga de ficheiros está desactivada.",
index df559b0..81b91c6 100644 (file)
        "hidetoc": "הסתרה",
        "collapsible-collapse": "הסתרה",
        "collapsible-expand": "הצגה",
+       "confirmable-confirm": "האם {{GENDER:$1|ברצונך}} להמשיך?",
+       "confirmable-yes": "כן",
+       "confirmable-no": "לא",
        "thisisdeleted": "לשחזר או להציג $1?",
        "viewdeleted": "להציג $1?",
        "restorelink": "{{PLURAL:$1|גרסה מחוקה אחת|$1 גרסאות מחוקות}}",
        "uploadwarning": "אזהרת העלאת קבצים",
        "uploadwarning-text": "אנא שנו את תיאור הקובץ שלמטה ונסו שוב.",
        "savefile": "שמירת קובץ",
-       "uploadedimage": "העלה את הקובץ [[$1]]",
-       "overwroteimage": "העלה גרסה חדשה של הקובץ [[$1]]",
        "uploaddisabled": "העלאת קבצים מבוטלת.",
        "copyuploaddisabled": "העלאת קבצים מכתובת URL מבוטלת.",
        "uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת.",
        "logentry-rights-rights": "$1 {{GENDER:$2|שינה|שינתה}} את ההרשאות של $3 מ$4 ל$5&rlm;",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|שינה|שינתה}} את ההרשאות של $3",
        "logentry-rights-autopromote": "$1 קודם אוטומטית מ$4 ל$5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|העלה|העלתה}} את $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|העלה|העלתה}} גרסה חדשה של $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|העלה|העלתה}} את $3",
        "rightsnone": "(כלום)",
        "feedback-bugornote": "אם אתם מוכנים לתאר בעיה טכנית בפרטים, אנא [$1 דווחו באג].\nאחרת, תוכלו להשתמש בטופס הפשוט שלהלן. הערתכם תתווסף לדף \"[$3 $2]\", יחד עם שם המשתמש שלכם.",
        "feedback-subject": "נושא:",
index 21f50ce..d674ff4 100644 (file)
@@ -10,7 +10,8 @@
                        "Malafaya",
                        "Thakurji",
                        "아라",
-                       "Soul Train"
+                       "Soul Train",
+                       "Filipinayzd"
                ]
        },
        "tog-underline": "Jorr ke niche line khicho:",
        "talkpagelinktext": "Baat",
        "specialpage": "Khaas Panna",
        "personaltools": "Aapan aujaar",
-       "postcomment": "Nawaa section",
        "articlepage": "Content waala panna ke dekho",
        "talk": "Salah",
        "views": "Bichar",
        "externaldberror": "Koi bahaari database authentication error hai, nai to aap ke bahaari account badle ke adhikar nai hai.",
        "login": "Log in karo",
        "nav-login-createaccount": "Log in karo/ nawaa account banao",
-       "loginprompt": "Login kare ke khatir  {{SITENAME}} cookies ke laabu kare ke chaahi.",
        "userlogin": "Log in karo/ nawaa account banao",
        "userloginnocreate": "Log in karo",
        "logout": "Log out",
        "saveprefs": "Save karo",
        "restoreprefs": "Sab default settings ke pahile jaise karo (sab vibhag me)",
        "prefs-editing": "Badaltaa hai",
-       "rows": "Line:",
+       "rows": "Taytay:",
        "columns": "Column:",
        "searchresultshead": "Khojo",
        "stub-threshold": "Threshold ke khatir <a href=\"#\" class=\"stub\">stub link</a> formatting (bytes):",
        "uploadwarning": "Upload ke baare me chetauni",
        "uploadwarning-text": "Meharbani kar ke file ke baaare me aur jankari ke niche badal ke aur fir se kosis karo.",
        "savefile": "File ke save karo",
-       "uploadedimage": "\"[[$1]]\" ke upload kar dewa gae",
-       "overwroteimage": "\"[[$1]]\" ke nawaa version ke upload karaa gais hai",
        "uploaddisabled": "Uploads ke disable kar dewa gais hai",
        "copyuploaddisabled": "URL se upload kare pe rok lagae dewa gais hae.",
        "uploaddisabledtext": "File uploads ke disable kar dewa gais hai.",
        "watchlist-details": "{{PLURAL:$1|$1 panna|$1 panna}} pe dhyan dewa jae hai, baat waala panna ke chhorr ke.",
        "wlheader-enotif": "E-mail notification ke enable kar dewa gais hai.",
        "wlheader-showupdated": "Panna jiske aap ke pichhla visit ke ke baad badal dewa gais hia ke '''bold''' me dekhawa jaawe hai.",
+       "wlnote": "Niche ke {{PLURAL:$1|pahile waala badlao hai| pahile '''$1''' badlao hai}} pichhle {{PLURAL:$2|ghanta|'''$2''' ghanta}} me as of $3, $4..",
        "wlshowlast": "Pichhla $1 ghanta $2 din $3 ke dekhao",
        "watchlist-options": "Dhyan suchi ke options",
        "watching": "Dekhtaa...",
index a872fef..4cde5fa 100644 (file)
        "uploadwarning": "Feltöltési figyelmeztetés",
        "uploadwarning-text": "Kérlek módosítsd a fájl leírását alább, majd próbáld újra.",
        "savefile": "Fájl mentése",
-       "uploadedimage": "„[[$1]]” felküldve",
-       "overwroteimage": "feltöltötte a(z) „[[$1]]” fájl új változatát",
        "uploaddisabled": "Feltöltések kikapcsolva",
        "copyuploaddisabled": "A feltöltés URL alapján le van tiltva.",
        "uploaddisabledtext": "A fájlfeltöltés nem engedélyezett.",
        "listgrouprights-addgroup-self-all": "az összes csoportot hozzáadhatja a saját fiókjához",
        "listgrouprights-removegroup-self-all": "az összes csoporból eltávolíthatja a saját fiókját",
        "listgrouprights-namespaceprotection-namespace": "Névtér",
-       "trackingcategories-nodesc": "Nincs leírás.",
+       "trackingcategories-nodesc": "Nem található leírás.",
        "trackingcategories-disabled": "A kategória le van tiltva",
        "mailnologin": "Nincs feladó",
        "mailnologintext": "Ahhoz hogy másoknak e-mailt küldhess, [[Special:UserLogin|be kell jelentkezned]] és meg kell adnod egy érvényes e-mail címet a [[Special:Preferences|beállításaidban]].",
index d9cabd3..01d25d5 100644 (file)
        "uploadwarning": "Advertimento de incargamento",
        "uploadwarning-text": "Per favor modifica le description del file ci infra e reproba.",
        "savefile": "Salveguardar file",
-       "uploadedimage": "incargava \"[[$1]]\"",
-       "overwroteimage": "incargava un nove version de \"[[$1]]\"",
        "uploaddisabled": "Incargamento de files disactivate",
        "copyuploaddisabled": "Incargamento per URL disactivate.",
        "uploaddisabledtext": "Le incargamento de files es disactivate.",
index 6bb3f13..0f59c63 100644 (file)
        "userpage-userdoesnotexist": "Ti pakabilangan ti agar-aramat ni \"$1\" ket saan a nakarehistro. \nPangngaasi a kitaem no kayatmo ti agpartuat/agurnos iti daytoy a panid.",
        "userpage-userdoesnotexist-view": "Ti pakabilangan ti agar-aramat ni \"$1\" ket saan a nakarehistro.",
        "blocked-notice-logextract": "Agdama a naserraan daytoy nga agar-aramat.\nTi naudi a listaan ti pannakaserra ket naited dita baba para iti reperensia:",
-       "clearyourcache": "<strong>Nota:</strong> Kalpasan ti panangidulin, koma ket masapul nga ipalabas ti cahe ti pagbasabasam tapno makita dagiti sinukatam.\n* <strong>Firefox / Safari:</strong>  Tenglen ti <em>Shift</em> bayat a pinduten ti <em>Reload</em>, wenno talmegan ti <em>Ctrl-F5</em> wenno <em>Ctrl-R</em> (<em>⌘-R</em> iti Mac)\n* <strong>Google Chrome:</strong> Talmegan ti <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> iti Mac)\n* <strong>Internet Explorer:</strong> Tenglen ti <em>Ctrl</em> bayat a pinduten ti <em>Refresh</em>, wenno talmegan ti <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Dalusan ti cache iidiay <em>Tools → Preferences</em>",
+       "clearyourcache": "<strong>Nota:</strong> Kalpasan ti panangidulin, koma ket masapul nga ipalabas ti cahe ti pagbasabasam tapno makita dagiti sinukatam.\n* <strong>Firefox / Safari:</strong>  Tenglen ti <em>Shift</em> bayat a pinduten ti <em>Reload</em>, wenno talmegan ti <em>Ctrl-F5</em> wenno <em>Ctrl-R</em> (<em>⌘-R</em> iti Mac)\n* <strong>Google Chrome:</strong> Talmegan ti <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> iti Mac)\n* <strong>Internet Explorer:</strong> Tenglen ti <em>Ctrl</em> bayat a pinduten ti <em>Refresh</em>, wenno talmegan ti <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Dalusan ti cache idiay <em>Tools → Preferences</em>",
        "usercssyoucanpreview": "<strong>Paammo:</strong>  Usaren ti buton ti \"{{int:showpreview}}\" tapno masubokan ti baro a CSS sakbay nga agidulin.",
        "userjsyoucanpreview": "<strong>Pammo:</strong> Usaren ti buton ti \"{{int:showpreview}}\" tapno masubokan ti baro a JavaScript sakbay nga agidulin.",
        "usercsspreview": "<strong>Laglagipem nga ipadpadasmo laeng ti bukodmo a CSS ti agar-aramat.\nSaan pay a naidulin!</strong>",
        "uploadwarning": "Ballaag ti panagikarga",
        "uploadwarning-text": "Pangngaasi a baliwam ti deskripsion ti papeles dita baba ken padasen manen.",
        "savefile": "Idulin ti papeles",
-       "uploadedimage": "naikarga ti \"[[$1]]\"",
-       "overwroteimage": "nagikarga ti baro a bersion ti \"[[$1]]\"",
        "uploaddisabled": "Nabaldado dagiti panagikarga.",
        "copyuploaddisabled": "Nabaldado ti panagikarga babaen ti URL.",
        "uploaddisabledtext": "Nabaldado dagiti panagikarga ti papeles.",
index d9180fa..4509c08 100644 (file)
        "uploadwarning": "Avviso di caricamento",
        "uploadwarning-text": "Per favore modifica qui sotto la descrizione del file e prova di nuovo.",
        "savefile": "Salva file",
-       "uploadedimage": "ha caricato \"[[$1]]\"",
-       "overwroteimage": "ha caricato una nuova versione di \"[[$1]]\"",
        "uploaddisabled": "Il caricamento dei file è disabilitato.",
        "copyuploaddisabled": "Il caricamento tramite URL è disabilitato.",
        "uploaddisabledtext": "Il caricamento dei file non è attivo.",
index 13cea46..6bc6194 100644 (file)
        "file-exists-duplicate": "Бұл файл келесі {{PLURAL:$1|файлдың|файлдарының}} телнұсқасы:",
        "uploadwarning": "Жүктеу жөнінде құлақтандыру",
        "savefile": "Файлды сақтау",
-       "uploadedimage": "«[[$1]]» файлын жүктеді",
-       "overwroteimage": "«[[$1]]» деген файлдың жаңа нұсқасын жүктеді",
        "uploaddisabled": "Жүктеу өшірілген",
        "copyuploaddisabled": "URL арқылы жүктеу өшірілген.",
        "uploaddisabledtext": "Файл жүктеу өшірілген.",
index bb416be..11b2348 100644 (file)
        "uploadwarning": "올리기 경고",
        "uploadwarning-text": "아래의 파일 설명을 수정하고 다시 시도해 주세요.",
        "savefile": "파일 저장",
-       "uploadedimage": "사용자가 \"[[$1]]\" 파일을 올렸습니다.",
-       "overwroteimage": "사용자가 \"[[$1]]\" 파일의 새 판을 올렸습니다.",
        "uploaddisabled": "올리기 비활성화됨",
        "copyuploaddisabled": "URL로 파일 올리기가 비활성화되어 있습니다.",
        "uploaddisabledtext": "파일 올리기 기능이 비활성화되어 있습니다.",
        "undeletedrevisions-files": "{{PLURAL:$1|판 1개|판 $1개}}와 {{PLURAL:$2|파일 1개|파일 $2개}}를 되살렸습니다",
        "undeletedfiles": "{{PLURAL:$1|파일 1개|파일 $1개}}를 되살렸습니다",
        "cannotundelete": "되살리는 데 실패했습니다:\n$1",
-       "undeletedpage": "'''$1 문서를 되살렸습니다.'''\n\n[[Special:Log/delete|삭제 기록]]에서 최근의 삭제와 되살리기 기록을 볼 수 있습니다.",
+       "undeletedpage": "<strong>$1 문서를 되살렸습니다.</strong>\n\n[[Special:Log/delete|삭제 기록]]에서 최근의 삭제 및 되살리기 기록을 볼 수 있습니다.",
        "undelete-header": "최근에 삭제한 문서에 대한 기록은 [[Special:Log/delete|여기]]에서 볼 수 있습니다.",
        "undelete-search-title": "삭제된 문서 검색",
        "undelete-search-box": "삭제된 문서 검색",
index 19e305d..160101b 100644 (file)
        "uploadwarning": "Warnung beim Huhlade",
        "uploadwarning-text": "Donn onge dä Täx övver di Dattei ändere, un versöhg_et norr_ens.",
        "savefile": "Datei avspeichere",
-       "uploadedimage": "hät huhjelade: „[[$1]]“",
-       "overwroteimage": "hät en neue Version huhjelade vun: „[[$1]]“",
        "uploaddisabled": "Huhlade jesperrt",
        "copyuploaddisabled": "Et Huhlaade us URLs es afjeschalldt",
        "uploaddisabledtext": "Et Huhlade es jesperrt.",
index 3cf2b88..65f2a50 100644 (file)
        "fileexists-forbidden": "Medyayek bi vê navî heye; xêra xwe şonda here û vê medyayê bi navekî din barbike.\n[[File:$1|thumb|center|$1]]",
        "uploadwarning": "Hişyariya barkirinê",
        "savefile": "Dosyayê tomar bike",
-       "uploadedimage": "\"[[$1]]\" hate barkirin",
-       "overwroteimage": "versiyonekî nû ya \"[[$1]]\" hate barkirin",
        "uploaddisabled": "Barkirin hatîye qedexekirin",
        "uploaddisabledtext": "Barkirinê data'yan  hatiye qedexekirin.",
        "uploadvirus": "Di vê data'yê da vîrûsek heye! Înformasyon: $1",
index b590893..3338fc9 100644 (file)
        "large-file": "Suasum est ut fasciculi $1 magnitudine non excedant; magnitudo huius fasciculi est $2.",
        "uploadwarning": "Monitus imponendi",
        "savefile": "Servare fasciculum",
-       "uploadedimage": "imposuit \"[[$1]]\"",
        "uploaddisabled": "Fasciculos imponere prohibitum est",
        "uploaddisabledtext": "Fasciculos imponere prohibitum est.",
        "uploadvirus": "Fasciculi huic est virus! Singula: $1",
index c831a35..6f60e60 100644 (file)
        "uploadwarning": "Opgepasst",
        "uploadwarning-text": "Ännert d'Beschreiwung hei ënnedrënner w.e.g. a versicht et nach eng Kéier.",
        "savefile": "Fichier späicheren",
-       "uploadedimage": "huet \"[[$1]]\" eropgelueden",
-       "overwroteimage": "huet eng nei Versioun vun \"[[$1]]\" eropgelueden",
        "uploaddisabled": "Pardon, d'Eropluede vu Fichieren ass ausgeschalt.",
        "copyuploaddisabled": "D'Eroplueden iwwer URL ass desaktivéiert.",
        "uploaddisabledtext": "D'Eropluede vu Fichieren ass ausgeschalt.",
        "unlockdbsuccesssub": "D'Spär vun der Datebank gouf opgehuewen",
        "lockdbsuccesstext": "D'{{SITENAME}}-Datebank gouf gespaart. <br />\nDenkt drun [[Special:UnlockDB|d'Spär erëm ewechzehuele]] soubaal d'Maintenance-Aarbechte fäerdeg sinn.",
        "unlockdbsuccesstext": "D'Spär vun der Datebank ass opgehuewen.",
-       "lockfilenotwritable": "De Fichier mat de Späre vun der Datebank kann net geännert ginn.\nFir d'Datebank ze spären oder fir d'Spär opzehiewen muss dëse Fichier vum Webserver geännert kënne ginn.",
+       "lockfilenotwritable": "De Fichier mat de Späre vun der Datebank kann net geännert ginn.\nFir d'Datebank ze spären oder fir d'Spär opzehiewe muss dëse Fichier vum Webserver geännert kënne ginn.",
        "databasenotlocked": "D'Datebank ass net gespaart.",
        "lockedbyandtime": "(vum $1 de(n) $2 ëm $3 Auer)",
        "move-page": "Réckel $1",
        "thumbnail_image-missing": "De Fichier schengt ze feelen: $1",
        "import": "Säiten importéieren",
        "importinterwiki": "Transwiki-Import",
-       "import-interwiki-text": "Sicht eng Wiki an e Säitentitel eraus fir z'importéieren.\nD'Versiounsdatumen an d'Benotzernimm bleiwen derbäi erhalen.\nAll Transwiki-Import-Aktioune ginn am [[Special:Log/import|Import-Logbuch]] protokolléiert.",
+       "import-interwiki-text": "Sicht eng Wiki an e Säitentitel eraus fir z'importéieren.\nD'Versiounsdatumen an d'Benotzernimm bleiwen dobäi erhalen.\nAll Transwiki-Import-Aktioune ginn am [[Special:Log/import|Import-Logbuch]] protokolléiert.",
        "import-interwiki-source": "Quelle Wiki/Säit:",
        "import-interwiki-history": "Importéier all d'Versioune vun dëser Säit",
        "import-interwiki-templates": "Mat alle Schablounen",
        "confirmemail_pending": "Dir krut schonn e Confirmatiouns-Code per E-Mail geschéckt. Wenn Dir Äre Benotzerkont eréischt elo kuerz opgemaach hutt, da gedëllegt Iech nach e puer Minutten bis Är E-Mail ukomm ass, ier Dir een neie Code ufrot.",
        "confirmemail_send": "Confirmatiouns-E-Mail schécken",
        "confirmemail_sent": "Confirmatiouns-E-Mail gouf geschéckt.",
-       "confirmemail_oncreate": "E Confirmatiouns-Code gouf op Är E-Mail-Adress geschéckt.\nDëse Code gëtt fir d'Umeldung net gebraucht. Dir braucht en awer bei der Aktivéierung vun den E-Mail-Funktiounen bannert der Wiki.",
+       "confirmemail_oncreate": "E Confirmatiouns-Code gouf op Är E-Mail-Adress geschéckt.\nDëse Code gëtt fir d'Umeldung net gebraucht. Dir braucht en awer bei der Aktivéierung vun den E-Mail-Funktioune bannert der Wiki.",
        "confirmemail_sendfailed": "{{SITENAME}} konnt är Confirmatiouns-E-Mail net schécken.\nIwwerpréift w.e.g. är E-Mailadress op ongëlteg Zeechen.\n\nFeelermeldung vum Mailserver: $1",
        "confirmemail_invalid": "Ongëltege Confirmatiounscode. Eventuell ass d'Gëltegkeetsdauer vum Code ofgelaf.",
        "confirmemail_needlogin": "Dir musst Iech $1, fir Är E-Mail-Adress ze confirméieren.",
        "confirmemail_loggedin": "Är E-Mail-Adress gouf elo confirméiert.",
        "confirmemail_subject": "Confirmatioun vun der E-Mail-Adress fir {{SITENAME}}",
        "confirmemail_body": "E Benotzer, waarscheinlech dir selwer, hutt mat der IP Adress $1 de Benotzerkont \"$2\" um Site {{SITENAME}} opgemaach.\n\nFir ze bestätegen, datt dee Kont iech wierklech gehéiert a fir d'E-Mail-Funktiounen um Site {{SITENAME}} z'aktivéieren, maacht w.e.g. dëse Link an ärem Browser op:\n$3\n\nWann dir dëse Benotzerkont *net* opgemaach hutt, maacht w.e.g. dëse Link an ärem Browser op fir d'E-Mailconfirmation z'annulléieren:\n\n$5\n\nSollt et sech net ëm äre Benotzerkont handelen, da maacht de Link *net* op. De Confirmatiounscode ass gëlteg bis de(n) $4.",
-       "confirmemail_body_changed": "E Benotzer, wahrscheinlech Dir selwer, vun der IP-Adress $1,\nhuet d'E-Mail-Adress vum Benotzerkont \"$2\" op dës Adress op {{SITENAME}} geännert.\n\nFir ze confirméieren datt dëse Benotzerkont Iech wierklech gehéiert a fir d'E-Mailfonctiounen op {{SITENAME}} ze reaktivéieren, maacht dës Link an Ärem Browser op:\n\n$3\n\nWann de Benotzerkont Iech *net* gehéiert, da klickt op dëse Link fir d'Confirmatioun vun der E-Mail-Adress auszeschalten:\n\n$5\n\nDëse Confirmatiounscode leeft den $4 of.",
+       "confirmemail_body_changed": "E Benotzer, wahrscheinlech Dir selwer, vun der IP-Adress $1,\nhuet d'E-Mail-Adress vum Benotzerkont \"$2\" op dës Adress op {{SITENAME}} geännert.\n\nFir ze confirméieren datt dëse Benotzerkont Iech wierklech gehéiert a fir d'E-Mailfonctiounen op {{SITENAME}} ze reaktivéieren, maacht dëse Link an Ärem Browser op:\n\n$3\n\nWann de Benotzerkont Iech *net* gehéiert, da klickt op dëse Link fir d'Confirmatioun vun der E-Mail-Adress auszeschalten:\n\n$5\n\nDëse Confirmatiounscode leeft den $4 of.",
        "confirmemail_body_set": "Iergendeen, wahrscheinlech Dir selwer, vun der IP-Adress $1,\nhuet d'E-Mail-Adress vum Benotzerkont \"$2\" op dës Adress op {{SITENAME}} geännert.\n\nFir ze confirméieren datt dëse Benotzerkont Iech wierklech gehéiert a fir d'E-Mailfonctiounen op {{SITENAME}} ze reaktivéieren, maacht dës Link an Ärem Browser op:\n\n$3\n\nWann de Benotzerkont Iech *net* gehéiert, da klickt op dëse Link fir d'Confirmatioun vun der E-Mail-Adress auszeschalten:\n\n$5\n\nDëse Confirmatiounscode leeft den $4 of.",
        "confirmemail_invalidated": "Confirmatioun vun der E-Mail-Adress annulléiert",
        "invalidateemail": "Annulléier d'E-Mailconfirmation",
        "logentry-rights-rights": "$1 {{GENDER:$2|huet}} d'Gruppen zou deenen de Benotzer $3 gehéiert vu(n) $4 op $5 geännert",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|huet}} d'Gruppen zou deenen de Benotzer $3 gehéiert geännert",
        "logentry-rights-autopromote": "De Benotzer $1 {{GENDER:$2|krut}} d'Benotzerrechter automatesch vu(n) $4 op $5 geännert",
+       "logentry-upload-upload": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
+       "logentry-upload-overwrite": "$1 huet eng nei Versioun vu(n) $3 {{GENDER:$2|eropgelueden}}",
+       "logentry-upload-revert": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
        "rightsnone": "(keen)",
        "feedback-bugornote": "Wann Dir bereet sidd fir en technesche Problem am Detail ze beschreiwen da [$1 mellt w.e.g. e Feeler (Bug)].\nSoss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gëtt op d'Säit \"[$3 $2]\" derbäigesat, zesumme mat Ärem Benotzernumm an dem Numm vum Browser deen Dir benotzt.",
        "feedback-subject": "Sujet:",
index f093335..50a1e59 100644 (file)
@@ -20,6 +20,7 @@
        "tog-watchdefault": "بلگیا و فایلایی که مه ویرایشت کمه اضاف کو د سیل برگم",
        "tog-watchmoves": "بلگیاو فایلیایی که مه جاوه جا کمه د سیل برگم اضاف کو",
        "tog-watchdeletion": "بلگیا و فایلایی که مه پاک کمه اضاف کو د سیل برگم",
+       "tog-watchrollback": "همه بلگه یا نه د جایی که مه د سیل برگم می کم اضاف کو.",
        "tog-minordefault": "همه ویرایشتیا کؤچک نه وا پیش فرض بیئن نشو دار کو.",
        "tog-previewontop": "پیش سیل نه دما جعوه ویرایشت نشو بیئه",
        "tog-previewonfirst": "پیش سیل نه د اولین ویرایشت نشو بیئه",
        "jumpto": "پئرستن د",
        "jumptonavigation": "ناوگشتن",
        "jumptosearch": "پی جوری",
-       "view-pool-error": "د بدبختی،",
-       "generic-pool-error": "د بدبختی",
+       "view-pool-error": "د بدبختی،ایسنی سروریا فره شلوغ.\nکاریاریا فره زیادی میهان ای بلگه نه بوینن.\nیه گری صب بکیتو دما یه که میهات دوواره ای بلگه نه بوینیت.",
+       "generic-pool-error": "د بدبختی،ایسنی سروریا فره شلوغ.\nکاریاریا فره زیادی میهان ای بلگه نه بوینن.\nیه گری صب بکیتو دما یه که میهات دوواره ای بلگه نه بوینیت.",
        "pool-timeout": "وخت سی تیه وه ره منن سی قلف بیئن تموم بی",
        "pool-queuefull": "ذخیره گی گرتن پر بیه",
        "pool-errorunknown": "خطا ناشناس",
        "mainpage-description": "سرآسونه",
        "policy-url": "پروجه:خط و مش",
        "portal": "درآسونه کومله یکی",
-       "portal-url": "پرÙ\88جÙ\87ªÙ\84Ú¯ه کومله یکی",
+       "portal-url": "پرÙ\88جÙ\87³Ø±Ø¢Ø³Ù\88Ù\86ه کومله یکی",
        "privacy": "رهبرد رازداری",
        "privacypage": "پروجه: خط مشی راز واداشتن",
        "badaccess": "خطا :اجازه بئیر",
        "protectedpagetext": "دای بلگه نبوئه ویرایشت یا کاریا هنی بکید",
        "viewsourcetext": "شما تونیت سرچشمه ای بلگه نه بوینیت و دش ورداریت:",
        "viewyourtext": "شما تونیت سرچشمه ویرایشتیا تونه ای د بلگه بوینیت و دشو ورداریت",
+       "protectedinterface": "ای بلگه سی نرم افزار د ای ویکی نیسسه آماده می که، و د   .\nسی اضاف کردن یا آلشت دئن د همه ویکی یا لطفا [//translatewiki.net/ translatewiki.net] نه به کار بؤریت، ولات نشین کنی پروجه ویکی وارسگر.",
+       "editinginterface": "<strong>زئنار دئن:</strong> شما داریت بلگه ای نه که سی      بیه ویرایشت می کید.",
+       "cascadeprotected": "ای بلگه د ویرایشت محافظت بیه سی یه که {{جمی:$1|وه بلگه یه |ونو بلگه یان}} که ها دش د                 :\n$2",
+       "namespaceprotected": "شما حقی سی ویرایشت بلگه یایی که هان د نومجا  <strong>$1</strong> ناریت.",
+       "customcssprotected": "شما سی ویرایشت ای بلگه سی اس اس اجازه ناریت سی یه که میزونکاری دونسمنیا شخصی یه کاریار هنی ها د وه.",
+       "customjsprotected": "شما سی ویرایشت ای بلگه جاوا اسکریپت اجازه ناریت سی یه که میزونکاری دونسمنیا شخصی یه کاریار هنی ها د وه.",
        "mycustomcssprotected": "شما حق ناریت ای بلگه سی اس اس نه ویرایشت بکید",
        "mycustomjsprotected": "شما حق ناریت ای بلگه جاوا اسکریپت نه ویرایشت بکید",
        "myprivateinfoprotected": "شما حق ناریت دونسمنیا خصوصی نه ویرایشت بکید",
        "mypreferencesprotected": "شما حق ناریت ویجگی یا هنی تونه ویرایشت بکید",
        "ns-specialprotected": "بلگیا ویجه نتونن ویرایشت بوئن",
+       "titleprotected": "ای دیارگر د دروس بیئن وه دس [[کاریار:$1|$1]].\n نهاگری بیه.\nدلیلش ونه\"<em>$2</em>\".",
+       "filereadonlyerror": "نبوئه جانیا \"$1\" آلشت بکیتو سی یه که اماییه گه \"$2\" فقط د حال و بال حننیه.\n\nدیوونداری که یه نه قلف کرده موئه د واشکافت \"$3\" بکیتو.",
        "invalidtitle-knownnamespace": "نوم نامعتور سی نوم جا \"$2\" و نیسه \"$3\"",
        "invalidtitle-unknownnamespace": "نوم نامعتور سی شماره نومجا ناشناس $1 و نیسه \"$2\"",
        "exception-nologin": "نبوئه وارد بوئيد",
+       "exception-nologin-text": "شما وارد [[ویجه:وامین اومائن کاریار|وامین اومائن]] بوئیت سی یه تونستویت که د ای بلگه یا کنشت دسرسی داشتویت.",
        "exception-nologin-text-manual": "خواهشمنیدم که $1 تونسه بوئه د ای بلگه دسرسی داشتوه یا کاری انجوم بیئه.",
+       "virus-badscanner": "سازواره گن:ویروس ناشناس:<em>$1</em>",
        "virus-scanfailed": "زل بیئن شکست حرد($1)",
        "virus-unknownscanner": "ويروس كش ناآشگار",
+       "logouttext": "<strong>شما هنی نریتته وه در.</strong>\n\nد ویرتو با که ویرگه نهو انجومیارتو نه پاکسا نکیت، سی یه پاره ای د بلگه یا ممکنه جوری نشو دئه بوئن چی یه که منیستی  شما هنی هایین وامین.",
        "welcomeuser": "خوش اومايت،$1!",
+       "welcomecreation-msg": "حساوتو دروس بیه.\nد ویرتو نروئه که{{نوم دیارگه}} [[Special:Preferences|preferences]]  خوتونه آلشت بکیت",
        "yourname": "نوم کاریاری:",
        "userlogin-yourname": "نوم كاروری",
        "userlogin-yourname-ph": "نوم کاریاری تو نه وارد بكيد",
        "userlogin-signwithsecure": "د وصل بيئن امن استفاده كو",
        "yourdomainname": "پوشگیر شما:",
        "password-change-forbidden": "شما نتونید پاسوردیانه د ای ویکی آلشت بکید",
+       "externaldberror": "اشتوایی د ارتواط وا رسینه گا پیش اومائه یا ینه که شما اجازه وه هنگوم سازی حساو خارجی تونه ناریت.",
        "login": "اومائن",
        "nav-login-createaccount": " اومائن د سيستم/راس كردن حساو",
        "userlogin": " اومائن د سيستم/راس كردن حساو",
        "noname": "شما یه گل نوم کاروری خو ناریت",
        "loginsuccesstitle": "اومائن د سيستم موفق بی",
        "loginsuccess": "شما ایسه وارد بیته {{SITENAME}} د دعنوان \"$1\".'",
-       "nosuchuser": "چنی کاروری و نوم  \"$1\" نئیش.\nنوم کاروری وه حرفیا حساس هئ.\nروشت نیسنن تونه وارسی بکید،یا [[ویجه:وامین اومائن کارور/ثوت نام کردن|یه گل حساو تازه راس بکید]].",
+       "nosuchuser": "چنی کاریاری و نوم  \"$1\" نئیش.\nنوم کاریاری وه حرفیا حساس هئ.\nروشت نیسنن تونه وارسی بکید،یا [[ویجه:وامین اومائن کاریار/ثوت نام کردن|یه گل حساو تازه راس بکید]].",
        "nosuchusershort": "چنو کاروری وا ای نوم $1 نی ئیش.\nنیسنن تونه دوواره نئری بکیتو",
        "nouserspecified": "شما باید یه نوم کارور اختصاص بئیتو",
        "login-userblocked": "کارور قلف بیه.وامین اومائن اجازه نی ئن",
        "passwordremindertitle": "پاسورد موقت تازه سی {{SITENAME}}",
        "noemail": "هیچ نشونی ایمیلی سی کارور $1 ضفط نبیه.",
        "noemailcreate": "شما باید یه نشونی نومه معتور فراهم بکید",
+       "passwordsent": "یه گل پاسورد هنی سی تیرنشون انجانامه ای که \"$1\" واش ثوت نام کرده بی کل بیه.\nخواهش میکیم هنی رویئت وامین و اوسه بئریتش.",
+       "blocked-mailpassword": "نها آی پی شما سی ویرایشت گرته بیه، و",
        "mailerror": "خطا داره کل موئه:$1",
        "emailauthenticated": "نشونی انجومانامه تونه د $2 سی 3$ مئکم بیه.",
        "emailconfirmlink": "نشونی ايملتو نه محكم بكيد",
        "yourtext": "متن شما",
        "storedversion": "دوواره دیئن انبار بیه.",
        "yourdiff": "فرخيا",
-       "templatesused": "{{جمی:$1|قالو|قالویا}}د ای بلگه استفاده بیه:",
-       "templatesusedpreview": "{{جمی:$1|قالو|قالویا}}استفاده بیه د ای پیش سیل:",
-       "templatesusedsection": "{{جمی:$1|قالو|قالویا}} استفاده بیه د ای بخش:",
+       "templatesused": "{{جمی:$1|چوئه|چوئه یا}}د ای بلگه استفاده بیه:",
+       "templatesusedpreview": "{{جمی:$1|چوئه|چوئه یا}}استفاده بیه د ای پیش سیل:",
+       "templatesusedsection": "{{جمی:$1|چوئه|چوئه یا}} استفاده بیه د ای بخش:",
        "template-protected": "(حمايت بيه)",
        "template-semiprotected": "(نيم-حفاظت بيه)",
        "hiddencategories": "ای بلگه يه اندوم د{{PLURAL:$1|1 hidden category|$1 hidden categories}}: هئ",
-       "nocreatetext": "{{نوم مالگه}} سی راس کردن بلگه یا تازه محدود بیه.\nشما تونید روئیت وادما و بلگه ای که هئیش ویرایشت بکید ، یا [[ویجه:وامین اومائن کارور|بیایت وامین یا یه گل حساو بسازیت]].",
+       "nocreatetext": "{{نوم مالگه}} سی راس کردن بلگه یا تازه محدود بیه.\nشما تونید روئیت وادما و بلگه ای که هئیش ویرایشت بکید ، یا [[ویجه:وامین اومائن کاریار|بیایت وامین یا یه گل حساو بسازیت]].",
        "nocreate-loggedin": "شما حق ناریت  که بلگه یا تازه نه راس بکید.",
        "sectioneditnotsupported-title": "ویرایشت بخش حمایت نبوئه",
        "sectioneditnotsupported-text": "ویرایشت بشقی د ای بلگه نئیش.",
        "searchresults": "نتيجه يا پی جوری",
        "searchresults-title": "نتيجه يا پی جوری سی \"$1\"",
        "titlematches": "عنوان بلگه مطاوقت داره",
+       "textmatches": "هومسازی نیسسه بلگه.",
+       "notextmatches": "نیسسه بلگه هومسازی ناره",
        "prevn": "وادما {{PLURAL:$1|$1}}",
        "nextn": "نيايی {{PLURAL:$1|$1}}",
        "prevn-title": "پيشتر $1 {{PLURAL:$1|نتيجه|نتيجيا}}",
        "searchprofile-images-tooltip": "بگرد سی فايليا",
        "searchprofile-everything-tooltip": "همه محتوا نه پی جوری كو (شاملا بلگيا چك چنه)",
        "searchprofile-advanced-tooltip": "نوم جايا نوم ديار بگرد",
-       "search-result-size": "$1 ({{جمی:$2|بی واچه يل|واچه تكی|واچه يل|$2 واچه يل|$2 واچه}})",
+       "search-result-size": "$1 ({{جمی:$2|1 کلیمه|$2 کلیمه یا}})",
        "search-result-category-size": "{{جمی:$1|1 اندوم|$1 اندومیا}} ({{جمی:$2|1 زیردسه|$2 زیردسه یا}}, {{جمی:$3|1 جانیا|$3 جانیایا}}",
        "search-redirect": "(ورگشتن $1)",
        "search-section": "(بشق $1)",
        "prefs-rc": "آلشتیا تازه باو",
        "prefs-watchlist": "سیل برگ",
        "prefs-watchlist-days": "روزیا نه د سیل برگ نشو دئه بو:",
+       "prefs-watchlist-days-max": "$1 بیشترونه {{جمی:$1|روز|روزیا}}",
        "prefs-watchlist-edits-max": "شماره بیشترونه:1000",
        "prefs-misc": "شيوسن",
        "prefs-resetpass": "پاسورد نه آلشت بكيت",
        "stub-threshold-disabled": "د كار ونن",
        "recentchangesdays": "روزیا آلشتیا تازه باو نه نشو بیه:",
        "recentchangesdays-max": "$1 بیشترونه {{جمی:$1|روز|روزیا}}",
+       "recentchangescount": "انازه ویرایشتیایی که دیاری می که:",
        "prefs-help-recentchangescount": "یه شامل آلشتیا تازه،ویرگاریا بلگه و پهرستنومه یا هئ.",
        "savedprefs": "ویجه گیا هنی تو اماییه بیه.",
        "timezonelegend": "وخت راساگه",
        "localtime": "وخت ولاتی:",
        "timezoneuseserverdefault": "وخت راساگه",
+       "timezoneuseoffset": "هنی",
        "servertime": "وخت سرور:",
        "guesstimezone": "وا جاگرد پر بوئه",
        "timezoneregion-africa": "افرقا",
        "prefs-i18n": "جهون ولاتمنی",
        "prefs-signature": "امضا",
        "prefs-dateformat": "شلک وخت",
+       "prefs-timeoffset": "جا وه جایی زمونی",
        "prefs-advancedediting": "گزینه یا عمومی",
        "prefs-editor": "ويرايشتگر",
        "prefs-preview": "پیش سیل",
        "prefs-advancedwatchlist": "گزینه یا پیشکرده",
        "prefs-displayrc": "گزینه یا نه نشو بیه",
        "prefs-displaywatchlist": "گزینه یا نه نشو بیه",
+       "prefs-tokenwatchlist": "نشو",
        "prefs-diffs": "فرخیا",
        "email-address-validity-valid": "نشونی ایمیل دیار بیه خوئه",
        "email-address-validity-invalid": "یه گل نشونی ایمیل خو وارد بکید",
+       "userrights": "حقوق دیوونداری کاریار",
        "userrights-lookup-user": "دسه یا کاروری نه دیوون داری بکیت",
        "userrights-user-editname": "نوم كاروری ته وارد كو",
        "editusergroup": "ویرایشت گرویا کاروری",
        "group-bureaucrat": "بروکراتیا",
        "group-all": "(همه)",
        "group-user-member": "{{جنس:$1|کارور}}",
+       "group-autoconfirmed-member": "{{جنس:$1|کاریار خودانجومکار}}",
        "group-bot-member": "{{حنس:$1|بوت}}",
        "group-sysop-member": "{{جنس:$1|مدیر}}",
        "group-bureaucrat-member": "{{جنس:$1|بروکرات}}",
        "grouppage-user": "{{ns:project}}:کاروریا",
+       "grouppage-autoconfirmed": "{{ns:project}}:کاریار خودانجومکار",
        "grouppage-bot": "{{ns:project}}:بوت یا",
+       "grouppage-sysop": "{{ns:project}}:دیوونداریا",
        "grouppage-bureaucrat": "{{ns:project}}:دیوونداریا",
        "right-read": "حنن بلگیا",
        "right-edit": "ویرایشت بلگیا",
+       "right-createpage": "بلگه یا نه راس بکیت(ونو که دشو بلگه یا چک چنه نئ)",
        "right-createtalk": "بلگه یا چک چنه نه راس بکید",
        "right-createaccount": "یه گل حساو کاروری تازه راس بکیت",
        "right-move": "بلگه یا جا وه جا کو",
        "right-move-subpages": "بلگه یا و زیر بلگه یا شونه جا وه جا کو",
        "right-move-rootuserpages": "بلگه یا ریشه ای کارور نه جا وه جا کو",
+       "right-move-categorypages": "دسه بلگه یا نه جا وه جا بکیت",
        "right-movefile": "فایلیا نه جا وه جا کو",
        "right-suppressredirect": "اوسه که بلگه یا د بین رئتنه هیچ واگردونی سی بلگه یا سرچشمه دروس نبیه",
        "right-upload": "سوار کردن فايلا",
        "right-upload_by_url": "سوار کرد فایلیا د یو آر ال",
        "right-writeapi": "د نیسنن ای پی آی استفاده بکید",
        "right-delete": "بلگیا نه پاکسا کو",
+       "right-bigdelete": "بلگه یایی که ویرگار گپی دارن پاکسا بکیت",
        "right-browsearchive": "بلگه یا پاک بیه نه پی جوری کو",
        "right-undelete": "ای بلگه نه حذف نكيد",
        "right-suppressionlog": "دیئن پهرستنومه یا خصوصی",
+       "right-block": "کاریاریا هنی د ویرایشت منع بوئن",
+       "right-blockemail": "کاریار نه د کل کردن انجومانامه منع کو",
        "right-unblockself": "خوشه قلف نکید",
        "right-editinterface": "راوط کارور نه ویرایشت کو",
        "right-editusercssjs": "فایلیا جاوا اسکریپت و سی اس اس کاروریا هنی نه ویرایشت کو",
        "action-createpage": "راس کردن بلگیا",
        "action-createtalk": "بلگه یا چک چنه نه راس بکید",
        "action-createaccount": "حساو ای کارور نه راس بکید",
+       "action-history": "ویرگار ای بلگه نه بوینیت",
        "action-minoredit": "ای ویرایشت نه چی یه حیرده ویرایشت نشو بیئت",
        "action-move": "لی بلگه جا وه جا کو",
        "action-move-subpages": "ای بلگه و زیر بلگه یاشه جا وه جا بکید",
        "recentchanges-label-minor": "يه ويرايشت كؤچكيه",
        "recentchanges-label-bot": "ای ويرايشت نه يه بوت انجوم ديئه",
        "recentchanges-label-unpatrolled": "ای ويرايشت هنی تيه واداشت نبيه",
+       "recentchanges-label-plusminus": "انازه بلگه وه شمار ای بایتیا آلشت کرده.",
        "recentchanges-legend-heading": "'''میراث:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (همچنو بوینیت [[ویجه:بلگیا تازه|نوم گه بلگیا تازه]])",
        "rcnotefrom": "د هار آلشتیا د $2 هیئن(د بال د $1 نشون دئه بیه)",
        "uploadnologin": "وارد نبیه",
        "uploadnologintext": "لطفن $1 سی سوارکرد جانیایا.",
        "uploaderror": "خطا د سوار کردن",
+       "upload-permitted": "جورا جانیا مجاز:$1.",
+       "upload-preferred": "جورا جانیا مجاز:$1.",
+       "upload-prohibited": "جورا جانیا مجاز:$1.",
        "uploadlogpage": "سوارکرد",
        "filename": "نوم فایل",
        "filedesc": "چكسته",
        "filestatus": "حال و بال کپی رایت",
        "filesource": "سرچشمه:",
        "ignorewarnings": "د هر زنهار تیه پوشی کو",
+       "filename-toolong": "نوم جانیا شایت گپتر د 240 بایت نبا.",
        "badfilename": "نوم جانیا د \"$1\" آلشت بیه.",
        "empty-file": "فایلی که دئی ته حالی بیه.",
        "file-too-large": "فایلی که دئی ته فره گپ بی.",
        "filename-tooshort": "نوم فایل فره کؤچکه.",
+       "filetype-banned": "چنی جانیا قدقه بیه.",
        "illegal-filename": "نوم فایل اجاره ندئه بیه.",
        "unknown-error": "یه گل خطا نادیار ری ون کرده.",
+       "tmp-create-error": "نبوئه جانیا موقتی نه راس بکیتو.",
+       "tmp-write-error": "خطا د نیسنن جانیا موقتی.",
+       "uploadwarning": "هشدار سوارکرد",
        "savefile": "جانیا نه اماییه کو",
-       "uploadedimage": "سوارکرد\"[[$1]]\"",
-       "overwroteimage": "یه گل نسقه تازه د \"[[$1]]\" سوار بیه",
        "uploaddisabled": "سوار کردن د کار نئ.",
        "copyuploaddisabled": "سوار کردن وا یو آر ال د کار نئ.",
        "uploaddisabledtext": "سوار کرد فایلیا د کار نئ.",
        "uploadinvalidxml": "ایکس ام الی که سوار بیه نبوئه نوتیج با.",
+       "uploadvirus": "د ای جانیا ویروس هئ!\nجزیات:$1",
        "upload-source": "سرچشمه فایل",
        "sourcefilename": "سرچشمه نوم جانیا:",
        "sourceurl": "سرچشمه يو آر ال:",
        "destfilename": "نوم فایل مقصد:",
+       "upload-maxfilesize": "بیشترونه انازه جانیا:$1",
        "watchthisupload": "ای جانیا نه بوینیت",
        "upload-success-subj": "سوار کرد خوش سرانجوم",
        "upload-success-msg": "سوارکرد شما سی [$2] خوو بی.وه د ایچه هئش:[[:{{ns:file}}:$1]]",
        "upload-failure-subj": "مشگل د سوارکردن",
        "upload-failure-msg": "یه گل مشلگل د سوارکردتو سی [$2] بی:$1",
+       "upload-warning-subj": "هشدار سوارکرد",
        "upload-proto-error": "پروتکل نادروس",
        "upload-file-error": "خطا مینونه",
        "upload-misc-error": "خطا سوار کرد ناشناخته",
        "upload-too-many-redirects": "ای یو آر ال د ورگیرنه واگردونیا فرئی هئ",
+       "upload-http-error": "یه گل خطا اچ تی تی پی پیش اومائه:$1",
        "upload-copy-upload-invalid-domain": "ورداشتن سوارکردیا د ای پوشگئر د دسرس نئ.",
        "backend-fail-notexists": "فایل $1 وجود ناره.",
+       "backend-fail-invalidpath": "\"$1\" ره خوئی سی امائیه کردن نئ.",
        "backend-fail-delete": "نبوئه جانیا $1 پاکسا بوئه",
        "backend-fail-describe": "نبوئه گپ دونسمنیا سی جانیا\"$1\" آلشت بوئه.",
+       "backend-fail-alreadyexists": "جانیا \"$1\" ایسه هیئش.",
        "backend-fail-store": "نبوئه جانیا \"$1\" د \"$2\" امبار بوئه.",
+       "backend-fail-copy": "نبوئه جانیا $1 د $2 ورداشته بوئه",
        "backend-fail-move": "نبوئه جانیا \"$1\" د \"$2\" جا وه جا بوئه",
        "backend-fail-opentemp": "نبوئه جانیا موقتی وا بوئه.",
        "backend-fail-writetemp": "نبوئه د جانیا موقتی چی بنیسیت.",
+       "backend-fail-closetemp": "نبوئه جانیا موقتی بسته با.",
        "backend-fail-read": "نبوئه جانیا\"$1\" حنه بوئه.",
+       "backend-fail-create": "نبوئه د جانیا\"$1\" نوشته با.",
        "lockmanager-fail-closelock": "نبوئه قلف جانیا سی \"$1\" بسه بوئه.",
        "lockmanager-fail-openlock": "نبوئه قلف جانیا سی \"$1\" وا بوئه.",
+       "uploadstash": "اماییه جا سوارکرد",
+       "uploadstash-clear": "پاک کردن جانیایا اماییه بیه",
+       "uploadstash-nofiles": "شما هیژ جانیا اماییه بیه ای ناریت.",
        "uploadstash-refresh": "نومه گه جانیایا نه د نو تازه کو",
+       "invalid-chunk-offset": "جا وه جایی نامعتور برشت",
        "img-auth-accessdenied": "دسرسی منع بی",
        "img-auth-nofile": "فایل $1 وجود ناره.",
        "http-invalid-url": "یو آر ال نامعتور:$1",
        "license-header": "د شكل ليسانس دار بيئن",
        "nolicense": "هیچی انتخاو نبیه",
        "license-nopreview": "(پیش سیل د دسرس نئ)",
-       "upload_source_file": "(یه گل فایل د انجومیار تو)",
+       "upload_source_file": "(یه گل جانیا د انجومیار تو انتخاو بکیت)",
        "listfiles-delete": "پاکسا کردن",
        "listfiles-summary": "ای بلگه یا ویجه همه جانیایا سوار بیه نه نشو می ئین.",
        "listfiles_search_for": "پی جوری سی نوم رسانه:",
        "imagelinks": "استفاده د فايل",
        "linkstoimage": "دمال بيه {{PLURAL:$1|ديس ونيا بلگه|$1 ديس ون بلگيا}} دای فایل:",
        "nolinkstoimage": "ایچه هیژ بلگه ای سی هوم پیوند بیئن وا ای فایل نی",
-       "morelinkstoimage": " [[ویجه:چه هوم پیوندی ها ایچه/$1|هوم پیوندیا هنی]]سی ای فایل بونیت.",
+       "morelinkstoimage": " [[ویجه:چه هوم پیوندی ها ایچه/$1|هوم پیوندیا هنی]]سی ای جانیا نه بونیت.",
        "linkstoimage-redirect": "$1 (واگردونی جانیا) $2",
        "sharedupload": "ای جانیا که د $1 هئ شایت د پروجه یا هنی استفاده بیه.",
        "sharedupload-desc-here": "فایلی که د $1 شایت د مئن پروجیا هنی استفاده بیه.\nتوضی دباره[$2 file description page] د هار نشو دئئه بیه",
        "filepage-nofile": "چنو فایلی وا ای نوم نئ.",
        "uploadnewversion-linktext": "یه گل نسقه تازه د ای جانیا سوار بکید",
        "shared-repo-from": "د $1",
+       "filerevert": "د سرگرتن سی $1",
+       "filerevert-legend": "د سرگرتن جانیا",
        "filerevert-comment": "دليل:",
        "filerevert-submit": "ورگنین",
        "filedelete": "$1 پاکسا کو",
        "doubleredirects": "واگردونیا دوتایی",
        "double-redirect-fixed-move": "[[$1]]جا وه جا بیه .\nوه خودکارونه وه روز بیه و ایسه وه د[[$2]] واگردونی بیه.",
        "double-redirect-fixer": "تعمیر کننه واگردونی",
+       "brokenredirects": "واگردونیا بی سرانجوم",
        "brokenredirectstext": "واگردونیا نهاتر د بلگه یایی که وجود نارن هوم پیوند بینه.",
        "brokenredirects-edit": "ویرایشت",
        "brokenredirects-delete": "پاكسا كردن",
        "withoutinterwiki": "بلگه یایی که هوم پیوند زون نارن",
        "withoutinterwiki-legend": "پیشون",
        "withoutinterwiki-submit": "نشون دائن",
-       "nbytes": "$1{{جمی:$1|كلی|بايت|بايت}}",
-       "ncategories": "{{جمی:$1|دسه|دسه يا}}",
+       "fewestrevisions": "بلگه یایی که کمتری وانئری نه دارن",
+       "nbytes": "$1{{جمی:$1|بايت|بایتیا}}",
+       "ncategories": "$1{{جمی:$1|دسه|دسه يا}}",
        "ninterwikis": "$1 {{جمی:$1|مئن ویکی|مئن ویکیا}}",
        "nlinks": "$1 {{جمی:$1|هوم پیوند|هوم پیوندیا}}",
        "nmembers": "$1 {{PLURAL:$1|اندوم|اندوميا}}",
        "nmemberschanged": "$1 → $2 {{جمی:$2|اندوم|اندومیا}}",
+       "nrevisions": "$1 {{جمس:$1|وانئری|وانئریا}}",
        "nviews": "$1 {{جمی:$1|دیئن|دیئنیا}}",
        "nimagelinks": "$1 {{جمی:$1|بلگه|بلگيا}} استفاده بیه",
        "ntransclusions": "$1 {{جمی:$1|بلگه|بلگيا}} استفاده بیه",
+       "specialpage-empty": "نتیجه ای د ای گزارشت نئ.",
        "lonelypages": "بلگه یا تک منه",
        "uncategorizedpages": "بلگه یا دسه بنی نبیه",
        "uncategorizedcategories": "دسه یا دسه بنی نبیه",
        "wantedtemplates": "قالویا حاستنی",
        "mostlinked": "بلگه یا که بیشتر هوم پیوند بینه",
        "mostlinkedcategories": "دسه یایی که بیشتر هوم پیوند بیه",
-       "mostlinkedtemplates": "قالویایی که بیشتر هوم پیوند بینه",
+       "mostlinkedtemplates": "چوئه یایی که بیشتر هوم پیوند بینه",
        "mostcategories": "بلگه یا که بیشتر دسه بنی بینه",
        "mostimages": "فایلیایی که بیشتر هوم پیوند بینه",
+       "mostinterwikis": "بلگه یایی که بیشتری مینجا ویکی نه دارن",
+       "mostrevisions": "بلگه یایی که بیشتری وانئری نه دارن",
        "prefixindex": "همه بلگيا وا پيشون",
        "shortpages": "بلگه یا کؤچک",
        "longpages": "بلگه یا گپ",
        "deadendpages": "بلگه یا نابود بیئنی",
        "protectedpages": "بلگه یا حفاظت بيه",
        "protectedpages-noredirect": "واگردونیا قام بیه",
+       "protectedpages-timestamp": "سردیس گات",
        "protectedpages-page": "بلگه",
        "protectedpages-expiry": "تموم بیه آ",
        "protectedpages-performer": "کارور حفاظت بیه",
        "protectedpages-unknown-performer": "کارور ناشناس",
        "listusers": "نوم گه کارور",
        "listusers-editsonly": "فقط کاروریایی که ویرایشت می کن نشو بیه",
+       "listusers-creationsort": "سرجاخودگری د اساس گات دروس بیین",
+       "listusers-desc": "سرجاخودگری د اساس گپ د کؤچک",
+       "usereditcount": "$1{{جمی:$1|ویرایشت|ویرایشتیا}}",
        "usercreated": "{{جنسیت:$3|راس بیه}}د $1 at $2",
        "newpages": "بلگيا نو",
        "newpages-username": "نوم كاروری:",
        "booksources": "سرچشمه يل كتاو",
        "booksources-search-legend": "پی جوری سی سرچشمه یا کتاو",
        "booksources-go": "رو",
+       "specialloguserlabel": "انجومکار:",
        "log": "نیسنن رخ ونیا",
        "all-logs-page": "همه پهرستنومه یا عمومی",
        "allpages": "همه بلگيا",
        "nextpage": "بلگه نهایی($1)",
        "prevpage": "بلگه دمایی($1)",
+       "allpagesfrom": "بلگه یای که د شرو بینه نشو بیه:",
+       "allpagesto": "بلگه یایی که د تموم بینه نشو بیه.",
        "allarticles": "همه بلگيا",
+       "allinnamespace": "همه بلگه یا($1 نوم جا)",
        "allpagessubmit": "رو",
+       "allpagesprefix": "بلگه یایی که پس نوم دارن نشو بیه:",
        "allpagesbadtitle": "عنوان بلگه حاسته بیه معتور نی،یا  یه گل مئن زونی یا مئن ویکی عنوان غلطه.\nیه شایت شومل یکی با یا بیشتر کاراکتریا نبوئه که سی ای موضوعیا استفاده بوئن",
+       "allpages-bad-ns": "{{نوم دیارگه}} د ای نوم جا نئ \"$1\".",
        "allpages-hide-redirects": "واگردونیا قام بیه",
        "cachedspecial-refresh-now": "دیئن آخری.",
        "categories": "دسه يا",
+       "special-categories-sort-count": "سرجاخودگری د اساس شمارشت",
+       "special-categories-sort-abc": "سرجاخودگری د اساس الفبا",
        "deletedcontributions": "هومیاریا پاکسا بیه کارور",
        "deletedcontributions-title": "هومیاریا پاک بیه کارور",
        "sp-deletedcontributions-contribs": "هومیاریا",
+       "linksearch": "هوم پیوند پی جوری خارجی",
+       "linksearch-pat": "سازه یار پی جوری:",
        "linksearch-ns": "نوم جا:",
        "linksearch-ok": "پی جوری",
        "linksearch-line": "$1 داره د $2 هوم پیوند بوئه",
+       "listusersfrom": "کاریاریایی که د شرو بینه نشو بیه:",
        "listusers-submit": "نشو دئن",
        "listusers-noresult": "هیچ کاروری پیدا نبی",
        "listusers-blocked": "(قلف بيه)",
        "activeusers": "نوم گه کاروریا کارکو",
+       "activeusers-from": "کاریاریایی که د شرو بینه نشو بیه:",
        "activeusers-hidebots": "بوتیا قام کو",
        "activeusers-hidesysops": "دیوون داریا نه قام کو",
        "activeusers-noresult": "هیچ کاروری پیدا نبی",
+       "listgrouprights": "حقوق گرو کاریاری",
+       "listgrouprights-key": "Legend:\n* <span class=\"listgrouprights-granted\">دئه بیه د سمت راست</span>\n* <span class=\"listgrouprights-revoked\">انجوم شیو بیه د سمت راست</span>",
        "listgrouprights-group": "دسه",
        "listgrouprights-rights": "حقوقیا",
+       "listgrouprights-helppage": "هومیاری:حقوق گرو",
        "listgrouprights-members": "(نوم گه اندومیا)",
+       "listgrouprights-addgroup": "{{جمی:$2|گرویا|گرویا}} اضاف بکیتو: $1",
+       "listgrouprights-removegroup": "{{جمی:$2|گرویا|گرویا}} ورداریت: $1",
        "listgrouprights-addgroup-all": "همه گرویا نه اضاف کو",
        "listgrouprights-removegroup-all": "همه گرویا نه وردار",
        "listgrouprights-addgroup-self": " {{جمی:$2|گروه|گرویا}} نه د حساو: $1 اضاف کو",
+       "listgrouprights-removegroup-self": "{{جمی:$2|گرویا|گرویا}} نه د حساو ورداریت: $1",
+       "listgrouprights-addgroup-self-all": "همه گرویا نه د حساو خوشو اضاف بکیت",
+       "listgrouprights-removegroup-self-all": "همه گرویا نه د حساو خوشو ورداریت",
+       "listgrouprights-namespaceprotection-namespace": "نوم جا",
+       "trackingcategories-name": "نوم پیغوم",
+       "trackingcategories-disabled": "دسه ناکشتگر بیه",
        "mailnologin": "هیپچ نشونی یی کل نبیه",
        "emailuser": "ای كارور نه ايميل كو",
        "emailuser-title-target": "ایمیل سی ای {{جنس:$1|کارور}}",
        "defemailsubject": "{{نوم سیل جا}} ایمیل د کارور \"$1\"",
        "usermaildisabled": "ایمیل کارور د کار افتائه",
        "noemailtitle": "هیچ نشونی ایمیلی نئ",
+       "emailtarget": "یه گل نوم کاریاری سی پذریشتگر وارد بکیت",
        "emailusername": "نوم كاروری:",
        "emailusernamesubmit": "دئن",
        "emailfrom": "د:",
        "emailccsubject": " پیغومتو سی $1:$2 ورداشته بی",
        "emailsent": "ایمیل کل بیه",
        "emailsenttext": "پیغوم ایمیلی تو کل بیه.",
+       "usermessage-summary": "رئتن د سامونه پیغوم",
        "usermessage-editor": "پیغوم فرسن سیستم",
        "watchlist": "سیل برگ",
        "mywatchlist": "سیل برگ",
        "watchlistfor2": "سي $1 $2",
+       "nowatchlist": "شما هیچی د سیل برگ خوتو ناریت",
        "watchnologin": "وارد نبیه",
+       "addwatch": "اضاف کردن د سیل برگ",
+       "removewatch": "جا وه جا کردن د سیل برگ",
+       "removedwatchtext": "بلگه\"[[:$1]]\" د [[Special:سیل برگ|سیل برگ خوتو]] جا وه جا بیه.",
+       "removedwatchtext-short": "بلگه \"$1\" د سیل برگ جا وه جا بیه.",
        "watch": "سيل كردن",
        "watchthispage": "ديئن ای بلگه",
        "unwatch": "ديه نبيه",
        "unwatchthispage": "واداشتن دیئن",
        "notanarticle": "مینونه هیچ بلگه ای نئ",
+       "notvisiblerev": "آخری وانئری که د دس یه کاریار هنی انجوم بیه پاکسا بیه.",
        "watchlist-details": "{{جمی:$1|$1 بلگه|$1 بلگیا}} د سیل برگتو هیش بلگه قسه کردن نی .",
        "wlheader-enotif": "وارسیاری ایمیل فعال بیه.",
        "wlheader-showupdated": "بلگه یایی که د آخرین کرتی که شما دشو دیئن کردیته آلشت بینه د <strong>توپر</strong>نشون دئه بینه",
        "deleteotherreason": "دليليا هنی:",
        "deletereasonotherlist": "دلیل هنی",
        "deletereason-dropdown": "* دلیلیا پاکسا کردن رسم بیه\n** اسپم\n** خراوکاری\n** رعایت نبین کپی رایت\n** درحاست نیسنه\n** نهاورگشت شکست حرده",
+       "delete-edit-reasonlist": "دلیلیا پاکسا کردنه نه ویرایشت بکید",
        "rollbacklink": "ورگشتن",
        "sessionfailure-title": "شکست حردن نشینگه",
        "protectlogpage": "حفاظت کردن",
        "modifiedarticleprotection": "ریتراز حفاظت د \"[[$1]]\" آلشت بیه",
        "protect-title": "ریتراز حفاظت د \"$1\" آلشت بیه",
        "prot_1movedto2": "[[$1]] د [[$2]] جا وه جا بی",
+       "protectcomment": "دلیل:",
        "protect-default": "همه کاروریا اجازه دارن",
        "protect-othertime": "وخت هنی:",
+       "protect-othertime-op": "گات هنی",
+       "protect-otherreason-op": "دلیل هنی",
        "protect-expiry-options": "1 ساعت:1 ساعت,1 روز:1 روز,1 هفته:1 هفته,2 هفته:2 هفته,1 ما:1 ما,3 ما:3 ما,6 ما:6 ما,1 سال:1 سال,بی حساو:بی حساو",
        "restriction-type": "دسرسی:",
+       "minimum-size": "انازه کمترونه",
+       "maximum-size": "انازه بیشترونه",
+       "pagesize": "(بایتیا)",
        "restriction-edit": "ويرايشت",
        "restriction-move": "جاوه جا بوئيت",
        "restriction-create": "راس كردن",
        "whatlinkshere-filters": "فيلتريا",
        "block": "منع کارور",
        "blockip": "منع کارور",
+       "ipaddressorusername": "نوم نشون آی پی يا نوم كاروری:",
        "ipbreason": "دليل:",
+       "ipbemailban": "نهاگرتن کاریار د کل کردن انجومانامه",
        "ipbother": "وخت هنی:",
        "ipboptions": "2 ساعتیا:2 ساعت,1 رو:1 رو,3 روزا:3 رو,1 هفته:1 هفته,2 هفته یا:2 هفته,1 ما:1 ما,3 ما:3 میا,6 ما:6 مایا,1 سال:1سال,بی حساو:بی حساو",
        "ipbhidename": "نوم کاروری نه سی ویرایشت یا و نوم گه یا قام کو",
+       "ipb-disableusertalk": "نها ای کاریار نه اوسه که میها د بلگه چک چنه ش ویرایشت بکه و وه قلف بیه بئر",
        "unblockip": "کارور منع نبیه",
        "blocklist": "كاروريا منع بيه",
        "ipblocklist": "كاروريا منع بيه",
        "unblocklink": "بی قطی",
        "change-blocklink": "اجازه نديئن سی  آلشت",
        "contribslink": "هومكاری",
+       "emaillink": "انجومانامه نه کل کو",
        "blocklogpage": "قلف",
        "blocklogentry": " [[$1]] وا یه گل وخت تموم بیئن $2 و $3  قلف بیه",
        "block-log-flags-nocreate": "حساو راس کردن عاجز بیه.",
        "block-log-flags-nousertalk": "نبوئه بلگه چک چنه خوتونه ویرایشت بکید",
+       "proxyblocker": "قلف کننه پروکسی",
        "lockdb": "قلف کردن رسینه گا",
        "unlockconfirm": "هره، مه واقعند میهام که رسینه گا وا بوئه.",
+       "lockbtn": "قلف کردن رسینه گا",
        "unlockbtn": "رسینه گا قلف نبیه",
        "lockdbsuccesssub": "رسینه گا د خوئی قلف بیه",
        "move-page": "$1 جا وه جا کو",
+       "move-page-legend": "بلگه نه جا وه جا کو",
        "movenotallowed": "شما وه جا وه جا کردن بلگه دسرسی ناریت",
        "movenotallowedfile": "شما وه جا وه جا کردن جانیایا دسرسی ناریت",
        "movepagebtn": "بلگه جا وه جا کو",
+       "pagemovedsub": "د خوئی جا وه جا بیه",
        "movepage-moved-redirect": "یه گل واگردونی دروس بیه.",
        "movelogpage": "جاوه جا کردن",
        "movelogpagetext": "د هار یه گل نوم گه د جا وه جایی یا بلگه هئ",
+       "movereason": "دلیل:",
        "revertmove": "لرستن",
        "delete_and_move": "پاکسا و جا وه جا بوئه",
        "export": "وه صحرا ديئن بلگيا",
+       "export-addcat": "اضاف کو",
+       "export-addns": "اضاف كو",
        "export-download": "ذخیره کردن جانیا",
+       "export-templates": "شامل چوئه یا",
+       "allmessages": "سامونه پیغومیا",
        "allmessagesname": "نوم",
        "allmessagesdefault": "سفارشت متنی پيش فرض",
+       "allmessages-filter-legend": "فیلتر",
+       "allmessages-filter-all": "همه",
+       "allmessages-filter-modified": "آلشت بیه",
+       "allmessages-prefix": "فیلتر بیه وا نهاون:",
        "allmessages-language": "زون:",
        "allmessages-filter-submit": "رو",
+       "allmessages-filter-translate": "والرن",
        "thumbnail-more": "گپ كردن",
        "filemissing": "گم بیئن جانیا",
        "thumbnail_error": "خطا د راس بیئن بن کلئکی:$1",
        "watchlisttools-edit": "سیل برگ بوینیتو و ویرایشت بکید",
        "watchlisttools-raw": "سیل برگ نه ردیفی ویرایشت کو",
        "duplicate-defaultsort": "زنهار کلیت پیش فرض جور بیه $2 تازه ای یا کلید پیش فرض جوربیه $1 رد بیه.",
+       "version-antispam": "نهاگرتن هرزنومه",
        "version-ext-license": "ليسانس",
        "version-ext-colheader-version": "نسقه",
        "version-ext-colheader-license": "ليسانس",
index b003ebe..66ddf8b 100644 (file)
        "uploadwarning": "Augšupielādes brīdinājums",
        "uploadwarning-text": "Lūdzu, pārveido zemāk esošo faila aprakstu un mēģini vēlreiz.",
        "savefile": "Saglabāt failu",
-       "uploadedimage": "augšupielādēja \"[[$1]]\"",
-       "overwroteimage": "augšupielādēta jauna \"[[$1]]\" versija",
        "uploaddisabled": "Augšupielāde atslēgta",
        "copyuploaddisabled": "URL augšupielādes nav atļautas.",
        "uploaddisabledtext": "Failu augšupielāde ir atslēgta.",
index 6d4b38f..4b88084 100644 (file)
        "uploadwarning": "慎焉!",
        "uploadwarning-text": "改下檔述再試之。",
        "savefile": "存之",
-       "uploadedimage": "進獻\"[[$1]]\"",
-       "overwroteimage": "新置「[[$1]]」矣",
        "uploaddisabled": "進獻已阻",
        "copyuploaddisabled": "由URL之貢被禁也。",
        "uploaddisabledtext": "檔之貢被禁也。",
index d71bd77..89b2a2d 100644 (file)
@@ -17,7 +17,8 @@
                        "Rillke",
                        "Umeshberma",
                        "Vinitutpal",
-                       "아라"
+                       "아라",
+                       "बिप्लब आनन्द"
                ]
        },
        "tog-underline": "लिंककेँ रेखांकित करू:",
@@ -25,7 +26,7 @@
        "tog-hidepatrolled": "सन्निकट परिवर्त्तनमे छोट परिवर्त्तन नुकाऊ",
        "tog-newpageshidepatrolled": "नियंत्रित सम्पादनकेँ नव पन्ना सूचीसँ नुकाऊ",
        "tog-extendwatchlist": "ध्यानसूचीमे सभ परिवर्तन देखाऊ,खाली हालक परिवर्तन नै",
-       "tog-usenewrc": "नà¥\80à¤\95 à¤¸à¤¨à¥\8dनिà¤\95à¤\9f à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dतन à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95रà¥\82 (à¤\9cावासà¥\8dà¤\95à¥\8dरिपà¥\8dà¤\9f à¤\9aाहà¥\80)",
+       "tog-usenewrc": "नीक सन्निकट परिवर्तन प्रयोग करू (जावास्क्रिप्ट चाही)",
        "tog-numberheadings": "शीर्षक स्वयं-क्रमांकित करू",
        "tog-showtoolbar": "संपादन ओजारपेटी देखाऊ (जावास्क्रीप्ट)",
        "tog-editondblclick": "दू बेर क्लीक कए पन्ना संपादित करू (जावास्क्रीप्ट)",
@@ -56,6 +57,8 @@
        "tog-diffonly": "फाइल-अन्तर प्रणालीक नीचाँ पन्नाक सामिग्री नै देखाउ",
        "tog-showhiddencats": "नुकाएल संवर्ग देखाउ",
        "tog-norollbackdiff": "प्रत्यावर्तनक बाद फाइल-अन्तर प्रणालीकेँ बिसरू",
+       "tog-useeditwarning": "जब हम कोनो संपादन पृष्ठके बिना सुरक्षित केनै बदलाव संग छोइड दि त हमरा सूचित करु ।",
+       "tog-prefershttps": "लागिन करलाक बाद सदैव सुरक्षित कनेक्शनके प्रयोग करु",
        "underline-always": "सदिखन",
        "underline-never": "कखनो नै",
        "underline-default": "पूर्वन्यस्त गवेषक",
        "oct": "अक्टू.",
        "nov": "नव.",
        "dec": "दिस.",
+       "january-date": "जनवरी $1",
+       "february-date": "फरवरी $1",
+       "march-date": "मार्च $1",
+       "april-date": "अप्रैल $1",
+       "may-date": "मई $1",
+       "june-date": "जून $1",
+       "july-date": "जुलाई $1",
+       "august-date": "अगस्त $1",
+       "september-date": "सितम्बर $1",
+       "october-date": "अक्टूबर $1",
+       "november-date": "नवम्बर $1",
+       "december-date": "दिसम्बर $1",
        "pagecategories": "{{PLURAL:$1|खाढी|कएटा खाढी}}",
        "category_header": "संवर्ग \"$1\" मे पन्ना सभ",
        "subcategories": "उपसंवर्ग",
        "newwindow": "(नव खिड़कीसँ खुजैछ)",
        "cancel": "समाप्त",
        "moredotdotdot": "आर...",
+       "morenotlisted": "ई पुरा सूची नै अछी ।",
        "mypage": "हमर पन्ना",
        "mytalk": "वार्त्ता",
        "anontalk": "ऐ अनिकेत पता लेल विमर्श",
        "actions": "क्रिया सभ",
        "namespaces": "चेन्हासी समूह सभ",
        "variants": "प्रकार सभ",
+       "navigation-heading": "दिक्चालन सूची",
        "errorpagetitle": "गलती",
        "returnto": "$1 पर घुरु।",
        "tagline": "कतयसँ {{SITENAME}}",
        "permalink": "स्थायी लिंक",
        "print": "छापू",
        "view": "देखू",
+       "view-foreign": "$1 पर देखु",
        "edit": "संपादन",
+       "edit-local": "स्थानीय विवरण संपादन",
        "create": "बनाउ",
+       "create-local": "स्थानीय विवरण निर्माण",
        "editthispage": "एहि पृष्ठक संपादन",
        "create-this-page": "ई पन्ना बनाउ",
        "delete": "मेटाउ",
        "deletethispage": "ई पन्ना मेटाउ",
+       "undeletethispage": "ई पन्ना मेटाउ",
        "undelete_short": "आपस आनू  {{PLURAL:$1|एक सम्पादनt|$1 सम्पादन सभ}}",
        "viewdeleted_short": "देखू {{PLURAL:$1|एकटा मेटाएल सम्पादन|$1 मेटाएल सम्पादन सभ}}",
        "protect": "बचाउ",
        "talkpagelinktext": "कहू",
        "specialpage": "विशेष पन्ना",
        "personaltools": "व्यक्तिगत उपकरण",
-       "postcomment": "नव खण्ड",
        "articlepage": "विषय-सूची पन्ना देखू",
        "talk": "वार्तालाप",
        "views": "दृष्टि",
        "jumptonavigation": "हेलू",
        "jumptosearch": "ताकू",
        "view-pool-error": "दुखी छी, वितरक सभ एखन व्यस्त अछि।\nबड्ड बेशी लोक ऐ पन्नाकेँ देखबामे लागल छथि।\nऐ पन्नाकेँ फेरसँ देखबा लेल कनी बिलमू। \n$1",
+       "generic-pool-error": "दुखी छी, वितरक सभ एखन व्यस्त अछि।\nबड्ड बेशी लोक ऐ पन्नाकेँ देखबामे लागल छथि।\nऐ पन्नाकेँ फेरसँ देखबा लेल कनी बिलमू। \n$1",
        "pool-timeout": "प्रतीक्षा निगृहीत कालावसान",
        "pool-queuefull": "प्रतीक्षा-पाँती पौती भरल",
        "pool-errorunknown": "अज्ञात भ्रम",
+       "pool-servererror": "पूल काउंटर सेवा उपलब्ध नै अछि ($1)।",
        "aboutsite": "विषयमे {{SITENAME}}",
        "aboutpage": "Project:विवरण",
        "copyright": "$1क अंतर्गत विषय सूची उपलब्ध अछि",
        "backlinksubtitle": "← $1",
        "retrievedfrom": "प्राप्ति स्थल \"$1\"",
        "youhavenewmessages": "अहाँ लग अछि $1 ($2).",
+       "youhavenewmessagesfromusers": "अहाके लेल {{PLURAL:$3|एक अन्य सदस्य|$3 अन्य सदस्यसभ}} के $1 छि । ($2)",
+       "youhavenewmessagesmanyusers": "अहाके $1 छि । ($2)",
+       "newmessageslinkplural": "{{PLURAL:$1|एगो नया पत्र|999=नया पत्र}}",
+       "newmessagesdifflinkplural": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तन सभ}}",
        "youhavenewmessagesmulti": "$1 पर अहाँ लेल नव सन्देश अछि",
        "editsection": "संपादन करू",
        "editold": "सम्पादित करू",
        "nospecialpagetext": "<strong> अहाँ एकटा अमान्य पन्नाक आग्रह केने छी। </strong>\nमान्य विशेष पन्नाक सूची एतए अछि [[Special:SpecialPages|{{int:specialpages}}]]।",
        "error": "भ्रम",
        "databaseerror": "दत्तनिधि भ्रम",
+       "databaseerror-text": "डाटाबेस अनुरोध त्रुटि भेल अछि।\nसंभवतः सफ्टवेयरमे गड़बड़ी अछि।",
+       "databaseerror-textcl": "डाटाबेस अनुरोध त्रुटि भेल अछि।",
+       "databaseerror-query": "अनुरोध: $1",
+       "databaseerror-function": "फंक्सन: $1",
+       "databaseerror-error": "त्रुटि: $1",
        "laggedslavemode": "'''चेतौनी:''' पन्नापर सम्भव जे अद्यतन परिवर्तन नै हुअए।",
        "readonly": "दत्तनिधि प्रतिबन्धित",
        "enterlockreason": "प्रतिबन्ध लेल कारण बताउ, संगमे एकटा अंदाज सेहो बताउ जे कखन ई प्रतिबन्ध हटाएल जाएत।",
        "badarticleerror": "ई क्रिया ऐ पन्नापर नै कएल जा सकैए।",
        "cannotdelete": "पन्ना व संचिका \"$1\" मेटाएल नै जा सकल।",
        "cannotdelete-title": "पन्ना \"$1\" नै मेटा सकल",
+       "delete-hook-aborted": "सम्पादन नोकसीसँ खतम भेल।\nई कोनो कारण नै देलक।",
        "badtitle": "खराप शीर्षक",
        "badtitletext": "आग्रह कएल पन्नाक शीर्षक गलत, खाली, वा गलत सम्बन्धित अन्तर-न्हाषा अन्तर विकी शीर्षक छी। ई एक वा बेशी कलाकार युक्त भऽ सकैए जे शीर्षकमे प्रयुक्त नै कएल जा सकैए।",
-       "perfcached": "ई दत्तांश उपस्मृतिक आधारपर अछि आ भऽ सकैए जे अद्यतन नै हुअए। A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
+       "perfcached": "ई दत्तांश उपस्मृतिक आधारपर अछि आ भऽ सकैए जे अद्यतन नै हुअए। अधिकतम {{PLURAL:$1|एकटा परिणाम|$1 परिणाम सभ}} क्याचेमे उपलब्ध अछि ।",
        "perfcachedts": "ई दत्तांश उपस्मृतिमे अछि, आ एकर अन्तिम परिवर्धन भेल अछि $1 केँ। A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "querypage-no-updates": "ऐ पन्नाक नवीनीकरण अखन बन्न अछि।\nएतुक्का दत्तांश अखन नवीकरण नै कएल जाएत।",
        "viewsource": "जड़ि देखू",
        "namespaceprotected": "अहाँकेँ '''$1''' नाम-पेटारमे सम्पादनक अनुमति नै अछि।",
        "customcssprotected": "अहांकें ऐ सी.एस.एस.पन्नाकें सम्पादित करबाक अधिकार नै अछि, कारण ऐमे दोसर प्रयोक्ताक व्यक्तिगत विकल्प छै।",
        "customjsprotected": "अहांकें ऐ जावास्क्रिप्ट पन्नाकें सम्पादित करबाक अधिकार नै अछि, कारण ऐमे दोसर प्रयोक्ताक व्यक्तिगत विकल्प छै।",
+       "mycustomcssprotected": "अहाके लेल ई CSS पन्नाके सम्पादित करवाक अधिकार नै अछि।",
+       "mycustomjsprotected": "अहके लेल इ जावास्क्रिप्ट पन्नाके सम्पादित करवाक अधिकार नै अछि।",
+       "myprivateinfoprotected": "अहाके अपन व्यक्तिगत जानकारी बदलैक अनुमति नै अछि।",
+       "mypreferencesprotected": "अहाके अपन प्राथमिकता बदलैक अनुमति नै अछि।",
        "ns-specialprotected": "विशेष पन्ना सभकेँ सम्पादित नै कएल जा सकैए।",
        "titleprotected": "ऐ शीर्षकक निर्माण प्रतिबन्धित अछि [[User:$1|$1]] द्वारा।\nकारण एतऽ देल अछि \"''$2''\"।",
+       "invalidtitle-knownnamespace": "\"$2\" नामस्थान आर \"$3\" नाम बला गलत शीर्षक",
+       "exception-nologin": "सम्प्रवेशित नै",
+       "exception-nologin-text-manual": "इ पन्ना वा काजके सक्षम करवाक लेल कृपया $1 करु।",
        "virus-badscanner": "खराप विन्यास: अज्ञात विषविधि बिम्बक: ''$1''",
        "virus-scanfailed": "बिम्ब विफल (विध्यादेश $1)",
        "virus-unknownscanner": "अज्ञात विषविधि निरोधक",
        "logouttext": "'''अहाँ निष्क्रमण कऽ गेल छी।'''\n\nअहाँ {{अन्तर्जाल}} प्रयोग अनाम भऽ कऽ सकै छी, वा अहाँ <span class='plainlinks'>[$1 log in again]</span> वएह आकि कोनो आन प्रयोक्ताक रूपमे सेहू प्रयोक कऽ सकै छी।\nई मोन राखू जे किछु पन्ना एना देखा पड़ि सकैए जेना अहाँ अखनो सम्प्रवेशित होइ, जावत अहाँ अपन गवेषकक उपस्मृति मेटा नै दै छी।",
+       "welcomeuser": "अहाके स्वागत अछि, $1!",
+       "welcomecreation-msg": "अहाके खाता बनावोल गेल अछि ।\nअपन [[Special:Preferences|{{SITENAME}} प्राथमिकतासभ]] बदलैल नै बिसरब।",
        "yourname": "प्रयोक्ता:",
+       "userlogin-yourname": "प्रयोक्ता:",
+       "userlogin-yourname-ph": "अपन प्रयोक्तानाम लिखु",
+       "createacct-another-username-ph": "एकटा प्रयोक्तानाम लिखू:",
        "yourpassword": "कूटशब्द:",
+       "userlogin-yourpassword": "कूटशब्द:",
+       "userlogin-yourpassword-ph": "अपन कूटशब्द लिखु",
+       "createacct-yourpassword-ph": "कूटशब्द ई ठाम राखु",
        "yourpasswordagain": "कूटशब्द फेरसँ टाइप करू:",
+       "createacct-yourpasswordagain": "कूटशब्दके जाँच करु",
+       "createacct-yourpasswordagain-ph": "कूटशब्द पुनः लिखु",
        "remembermypassword": "हमर सम्प्रवेश ऐ गवेषकपर मोन राखू (बेशीसँ बेशी $1 {{PLURAL:$1|दिन|दिन}})",
+       "userlogin-remembermypassword": "हमरा सम्प्रवेशित राखु",
+       "userlogin-signwithsecure": "सुरक्षित कनेक्शनके प्रयोग करु",
        "yourdomainname": "अहाँक प्रभावक्षेत्र:",
+       "password-change-forbidden": "अहा इ विकिमे कूटशब्द नै बदल सकैत छि ।",
        "externaldberror": "खाहे सत्यापन दतांश भ्रम छल वा अहाँ अपन बाह्य खाताकेँ अद्यतन करबामे असमर्थ छी।",
        "login": "सम्प्रवेश",
        "nav-login-createaccount": "सदस्य लॉग इन",
-       "loginprompt": "{{अन्तर्जाल}} सम्प्रवेश लेल अहाँकेँ आवश्यक रूपेँ ज्ञापक सक्रिय करबाक चाही।",
        "userlogin": "लॉग इन / खेसरा बनाऊ",
        "userloginnocreate": "सम्प्रवेश",
        "logout": "निष्क्रमण",
        "userlogout": "फेर आयब",
        "notloggedin": "सम्प्रवेशित नै छी",
+       "userlogin-noaccount": "खाता नै अछि?",
+       "userlogin-joinproject": "{{SITENAME}} से जोडु",
        "nologin": "खाता नै अछि? $1।",
        "nologinlink": "नव खाता खोलू",
        "createaccount": "खाता खोली",
        "gotaccount": "पहिनहियेसँ खाता अछि? $1",
        "gotaccountlink": "सम्प्रवेश",
        "userlogin-resetlink": "अपन सम्प्रवेश विवरण बिसरि गेलहुँ?",
+       "userlogin-resetpassword-link": "अपन कूटशब्द बिसर गेलौ ?",
+       "userlogin-helplink2": "सम्प्रवेशित करवाकलेल मदत",
+       "userlogin-loggedin": "अहा {{GENDER:$1|$1}} के रूपमे पहिले स सम्प्रवेशित छि।\nकोनो दोसर सदस्यके रुपमे सम्प्रवेशित करवाक लेल देल गेल फारमके प्रयोग करु।",
+       "userlogin-createanother": "दोसर खाता बनाउ",
+       "createacct-emailrequired": "ई-पत्र संकेत",
+       "createacct-emailoptional": "ई-पत्र संकेत (वैकल्पिक)",
+       "createacct-email-ph": "अपन ई-पत्र संकेत सत्यापित करू",
+       "createacct-another-email-ph": "ई-पत्र संकेत सत्यापित करू",
        "createaccountmail": "ई-पत्र द्वारा",
+       "createacct-realname": "असली नाम (वैकल्पिक)",
        "createaccountreason": "कारण:",
+       "createacct-reason": "कारण:",
+       "createacct-reason-ph": "अहा इगो आर दोसर खाता कियाक बनउने जा रहल छि",
+       "createacct-captcha": "सुरक्षा जाँच",
+       "createacct-imgcaptcha-ph": "उपरोक्त पाठ लिखु",
+       "createacct-submit": "अपन खाता बनाउ",
+       "createacct-another-submit": "दोसर खाता बनाउ",
+       "createacct-benefit-heading": "{{SITENAME}} अहि जोका लोकनिसभ द्वारा बनावल गेल अछि।",
+       "createacct-benefit-body1": "$1 {{PLURAL:$1|सम्पादन|सम्पादन सभ}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|पन्ना}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|योगदानकर्ता}}",
        "badretype": "कूटशब्द जे अहाँ भरलहुँ से मेल नै खाइए।",
        "userexists": "सम्प्रवेशित प्रयोक्तानाम पहिनहियेसँ प्रयोगमे अछि।\nकृपा कऽ कोनो दोसर नाम चुनू।",
        "loginerror": "सम्प्रवेश भ्रम",
+       "createacct-error": "खाता निर्माण त्रुटि",
        "createaccounterror": "खाता नै बना सकल: $1",
        "nocookiesnew": "प्रयोक्ता खाता खुजि गेल, मुदा अहाँ सम्प्रवेशित नै छी।\n{{अन्तर्जाल}} सम्प्रवेशित प्रयोक्ताक लेल ज्ञापकक प्रयोग करैत अछि।\nअहाँ ज्ञापककेँ अशक्त केने छी।\nकृपा कऽ ओकरा सक्रिप करू, तखन अपन प्रयोक्तानाम आ कूटशब्दक संग सम्प्रवेश करू।",
        "nocookieslogin": "{{अन्तर्जाल}} प्रयोक्ताकेँ सम्प्रवेशित करबा लेल ज्ञापकक प्रयोग करैत अछि।\nअहाँ ज्ञापककेँ अशक्त केने छी।\nकृपा कऽ ओकरा सक्रिय करू आ फेरसँ प्रयास करू।",
        "emailconfirmlink": "अपन ई-पत्र संकेत सत्यापित करू",
        "invalidemailaddress": "अमान्य प्रारूपक कारण ऐ ई-पत्र संकेतकेँ स्वीकार नै कएल जा सकैए।\nएकटा मान्य ई-पत्र संकेत लिखू वा ओइ स्थानकेँ खाली करू।",
        "cannotchangeemail": "खाता ई-पत्र संकेत ऐ विकीपर बदलल नै जा सकैए।",
+       "emaildisabled": "ई साइट ई-पत्र नै पठाएत।",
        "accountcreated": "खाता खुजि गेल",
        "accountcreatedtext": "$1 लेल प्रयोक्ता खाता खुजि गेल।",
        "createaccount-title": "{{अन्तर्जाल}} लेल खाता निर्माण",
        "login-abort-generic": "अहाँक सम्प्रवेश सफल नै भेल- खतम",
        "loginlanguagelabel": "भाषा : $1",
        "suspicious-userlogout": "अहाँक निष्क्रमणक अनुरोध नै मानल गेल कारण ई लागल जे ई पुरान गवेषकक लागि वा दोसराइत उपस्मृति द्वारा पठाओल गेल छल।",
+       "createacct-another-realname-tip": "मूल नाम वैकल्पिक अछि।\nजँ अहाँ एकरा देबा लेल प्रयोग करै छी, ई अहाँकेँ काजक श्रेय देबा लेल एकर प्रयोग कएल जाएत।",
+       "pt-login": "सम्प्रवेश",
+       "pt-login-button": "सम्प्रवेश",
+       "pt-createaccount": "खाता खोली",
+       "pt-userlogout": "निष्क्रमण",
        "php-mail-error-unknown": "पी.एच.पी.क संदेश कार्य() मे अज्ञात दोष",
        "user-mail-no-addy": "बिन ई-पत्र संकेतक ई-पत्र पठेबाक प्रयास",
+       "user-mail-no-body": "एकटा खाली वा बहुत कनिका ई-पत्र भेजवाक प्रयास कल गेल ।",
        "changepassword": "कूटशब्द बदलू",
-       "resetpass_announce": "अहाँ अस्थायी ई-पत्र विध्यादेशसँ सम्प्रवेश केने छी।\nसम्प्रवेश सम्पूर्ण करबा लेल, अहाँ एकटा नव कूटशब्द एतए निर्धारित करू:",
+       "resetpass_announce": "अहाँ अस्थायी ई-पत्र विध्यादेशसँ सम्प्रवेश केने छी।\nसम्प्रवेश सम्पूर्ण करबा लेल, अहाँ एकटा नव कूटशब्द एतए निर्धारित करू:",
        "resetpass_text": "<!-- पाठ एतऽ लिखू -->",
        "resetpass_header": "खाता कूटशब्द बदलू",
        "oldpassword": "पुरान कूटशब्द",
        "newpassword": "नव कूटशब्द",
        "retypenew": "नव कूटशब्द फेरसँ टंकित करू",
        "resetpass_submit": "कूटशब्द बनाउ आ सम्प्रवेश करू",
-       "changepassword-success": "अहाँक कूटशब्द सफलतासँ बदलि देल गेल!\nआब अहाँकेँ सम्प्रवेशित कऽ रहल छी...",
+       "changepassword-success": "अहाँक कूटशब्द सफलतासँ बदलि देल गेल!",
+       "changepassword-throttled": "अहाँ ढ़ेर रास सम्प्रवेश प्रयास केलहुँ।\nफेर प्रयास करबासँ पहिने कने काल थम्हू।",
        "resetpass_forbidden": "कूटशब्द सभ नै बदलल जा सकैए।",
        "resetpass-no-info": "अहाँकेँ ऐ पन्नाकेँ पढ़बाले सम्प्रवेशित हुअए पड़त।",
        "resetpass-submit-loggedin": "कूटशब्द बदलू",
        "resetpass-wrong-oldpass": "अमान्य अस्थायी वा अखुनका कूटशब्द।\nअहाँ पहिनहिये सफलतासँ कूटशब्द बदलि लेने छी वा एकटा नव अस्थायी कूटशब्द लेल आग्रह केने छी।",
        "resetpass-temp-password": "तात्कालिक कूटशब्द",
        "passwordreset": "कूटशब्द फेरसँ बनाउ",
+       "passwordreset-text-one": "अपन कूटशब्द रीसेट करवाक लेल इ फारम भरु ।",
+       "passwordreset-text-many": "{{PLURAL:$1|ई-पत्रके माध्यमसऽ एकटा अस्थायी कूटशब्द पावैलेल कोनो एकटा डिब्बा भरु ।}}",
        "passwordreset-legend": "कूटशब्द फेरसँ बनाउ",
        "passwordreset-disabled": "कूटशब्द फेरसँ बनाएब ऐ विकीपर अक्षम कएल अछि।",
+       "passwordreset-emaildisabled": "कूटशब्द फेरसँ बनाएब ऐ विकीपर अक्षम कएल अछि।",
        "passwordreset-username": "प्रयोक्तानाम",
        "passwordreset-domain": "क्षेत्र:",
        "passwordreset-capture": "परिणाम ई-पत्र देखू?",
        "changeemail-oldemail": "अखुनका ई-पत्र संकेत:",
        "changeemail-newemail": "नव ई-पत्र संकेत:",
        "changeemail-none": "(कोनो नै)",
+       "changeemail-password": "अहाके {{SITENAME}} कूटशब्द:",
        "changeemail-submit": "ई-पत्र संकेत बदलू",
        "changeemail-cancel": "खतम",
+       "changeemail-throttled": "अहाँ ढ़ेर रास सम्प्रवेश प्रयास केलहुँ।\nफेर प्रयास करबासँ पहिने कने काल थम्हू।",
+       "resettokens": "टोकन रीसेट करी",
+       "resettokens-no-tokens": "रीसेट करवाक लेल कोनो टोकन नै अछि।",
+       "resettokens-legend": "टोकन रीसेट करी",
+       "resettokens-tokens": "टोकन:",
+       "resettokens-token-label": "$1 (वर्तमान मूल्य: $2)",
+       "resettokens-done": "टोकन रीसेट भेल अछि।",
+       "resettokens-resetbutton": "छानल टोकन रीसेट करु",
        "bold_sample": "गँहीर लेखन",
        "bold_tip": "गँहीर लेखन",
        "italic_sample": "कटि लेखन",
        "updated": "(अद्यतन  कएल)",
        "note": "'''टिप्पणी:'''",
        "previewnote": "'''मोन राखू ई मातर पूर्वावलोकन छी।'''\nअहाँक परिवर्तन अखन धरि सँचिआएल नै गेल अछि!",
+       "continue-editing": "संपादन क्षेत्र जाउ",
        "previewconflict": "ई पूर्वदृश्य देखबैए उपरका सम्पादन क्षेत्रक पाठ , ई आएत जखन अहाँ संरक्षित करब।",
        "session_fail_preview": "''' दुखी छी! अहाँक सत्रक दत्तांश खतम भऽ गेल तै कारणसँ अहाँक सम्पादनक निपटारा नै भऽ सकल।'''\nफेरसँ प्रयास करू।\nजँ ई फेरसँ काज नै करैए, प्रयोग करू [[Special:UserLogout|निष्क्रमण]] आ फेर सम्प्रवेश करू।",
        "session_fail_preview_html": "''' दुखी छी! हम अहाँक सम्पादनक निष्पादन नै कऽ सकलहुँ कारण सत्रक दत्तांश खतम भऽ गेल।'''\n''कारण {{अन्तर्जाल}} लग काँच एच.टी.एम.एल. दत्तांश सक्रिय छै, पूर्वदृश्य जावास्क्रिप्ट आक्रमणक डरसँ नुकाएल राखल गेल अछि।''\n'''जँ ई वैध सम्पादन प्रयास अछि, कृपा कऽ पुनः प्रयास करू।'''\nजँ ई अखनो काज नै कऽ रहल अछि, प्रयास करू [[Special:UserLogout|निष्क्रमण कऽ रहल छी]] आ फेरसँ सम्प्रवेश।",
        "token_suffix_mismatch": "'''अहाँक सम्पादन अस्वीकार कऽ देल गेल अछि कारण अहाँक ग्राहक प्रेष्यमान अंक विधानक विराम चेन्ह सभकेँ नष्ट कऽ देलन्हि।'''\nई सम्पादन पन्नाक पाठकेँ दूषित होएबासँ बचेबा लेल अमान्य कऽ देल गेल।\nई कखनो काल होइए जखन अहाँ जाल आधारित अनाम दोसरा लेल चल सेवा प्रयुक्त करै छी।",
        "edit_form_incomplete": "'''सम्पादन आवेदनक किछु भाग वितरक धरि नै पहुँचल; एक बेर फेर देखू जे अहाँक सम्पादन दुरुस्त अछि आ फेरसँ प्रयास करू।'''",
        "editing": "सम्पादन होइए $1",
+       "creating": "$1 बनाउ",
        "editingsection": "सम्पादन कऽ रहल छी $1 (खण्ड)",
        "editingcomment": "सम्पादन कऽ रहल छी $1 (नव खण्ड)",
        "editconflict": "सम्पादन अन्तर: $1",
        "edit-gone-missing": "पन्ना अद्यतन नै भऽ सकल।\nलगैए जे ई मेटा देल गेल अछि।",
        "edit-conflict": "सम्पादन अन्तर",
        "edit-no-change": "अहाँक सम्पादनपर ध्यान नै देल गेल, कारण ऐ सँ पाठमे कोनो परिवर्तन नै आएल।",
+       "postedit-confirmation-created": "पन्ना निर्माण करल गेल अछि ।",
+       "postedit-confirmation-restored": "पन्नाके पुराण स्थितिमे लौने गेल अछि ।",
+       "postedit-confirmation-saved": "अहाके संपादनके सुरक्षित भेल ।",
        "edit-already-exists": "नव पन्नाक निर्माण नै भऽ सकल।\nई पहिनहियेसँ वर्तमान अछि।",
+       "defaultmessagetext": "पूर्वनिर्धारित संदेश पाठ",
+       "invalid-content-data": "अवैध डाटा सामग्री",
+       "editpage-notsupportedcontentformat-title": "सामग्री स्वरूप समर्थित नै अछि",
+       "content-model-wikitext": "विकिटेक्स्ट",
+       "content-model-text": "सामान्य पाठ",
+       "content-model-javascript": "जावास्क्रिप्ट",
+       "content-model-css": "सी॰एस॰एस",
        "expensive-parserfunction-warning": "'''चेतौनी:''' ई पन्ना बड्ड बेसी महग विभाजक प्रकार्य आह्वान करैत अछि।\n एकरा $2 सँ कम {{PLURAL:$2|call|calls}}, ओतऽ {{PLURAL:$1|ई अछि $1 call|ई सभ अछि $1 calls}}",
        "expensive-parserfunction-category": "बड बेसी महग विभाजक आह्वानबला पन्ना सभ",
        "post-expand-template-inclusion-warning": "'''चेतौनी:''' नमूना लेबाक आकार बड्ड पैघ अछि।\nकिछु नमूना नै लेल जा सकत।",
        "prefs-rc": "हालक परिवर्तन",
        "prefs-watchlist": "साकांक्ष-सूची",
        "prefs-watchlist-days": "साकांक्ष-सूचीमे एतेक दिन देखाएल:",
-       "prefs-watchlist-days-max": "Maximum $1 {{PLURAL:$1|day|days}}",
+       "prefs-watchlist-days-max": "बेसीसँ बेसी $1 {{PLURAL:$1|दिन|दिन}}",
        "prefs-watchlist-edits": "बढ़ाएल साकांक्ष सूचीमे अधिकतम परिवर्तन देखाएब:",
        "prefs-watchlist-edits-max": "बेसीसँ बेसी:१०००",
        "prefs-watchlist-token": "साकांक्ष-सूची खेप:",
        "prefs-dateformat": "तिथिक बगेबानी",
        "prefs-timeoffset": "समए संशोधक",
        "prefs-advancedediting": "विशिष्ट विकल्प सभ",
+       "prefs-editor": "संपादक",
+       "prefs-preview": "पूर्वावलोकन",
        "prefs-advancedrc": "विशिष्ट विकल्प सभ",
        "prefs-advancedrendering": "विशिष्ट विकल्प सभ",
        "prefs-advancedsearchoptions": "विशिष्ट विकल्प सभ",
        "prefs-advancedwatchlist": "विशिष्ट विकल्प सभ",
        "prefs-displayrc": "दृश्य विकल्प सभ",
        "prefs-displaywatchlist": "दृश्य विकल्प सभ",
+       "prefs-tokenwatchlist": "टोकन",
        "prefs-diffs": "अन्तर निर्धारक सभ",
+       "prefs-help-prefershttps": "इ प्राथमिकता अहाँके फेर स सम्प्रवेश करलाक बाद प्रभाव पडत।",
        "email-address-validity-valid": "ई-पत्र संकेत मान्य बुझाइत अछि",
        "email-address-validity-invalid": "एकटा मान्य ई-पत्र संकेत लिखू",
        "userrights": "प्रयोक्ता अधिकारक प्रबन्धन",
        "right-editusercssjs": "दोसर प्रयोक्ताक सी.एस.एस. आ जावास्क्रिप्ट संचिका सभक सम्पादन करू",
        "right-editusercss": "दोसर प्रयोक्ता सभक सी.एस.एस. संचिका सभक सम्पादन करू",
        "right-edituserjs": "दोसर प्रयोक्ताक जावास्क्रिप्ट संचिका सभक सम्पादन करू",
+       "right-editmyuserjs": "दोसर प्रयोक्ताक जावास्क्रिप्ट संचिका सभक सम्पादन करू",
        "right-rollback": "कृपा कऽ अन्तिम प्रयोक्ताक सम्पादन सभकेँ प्रत्यावर्तित करू जे एक खास पन्नाकेँ सम्पादित केलन्हि",
        "right-markbotedits": "प्रत्यावर्तित सम्पादन सभकेँ स्वचालित सम्पादन देखाउ",
        "right-noratelimit": "दरक सीमासँ प्रभावित नै",
        "action-userrights-interwiki": "दोसर विकीपर प्रयोक्ताक प्रयोक्ता अधिकारक सम्पादन करू",
        "action-siteadmin": "दत्तनिधिकेँ प्रतिबन्धित करू आ फेर प्रतिबन्ध हटाउ",
        "action-sendemail": "ई-पत्र पठाउ",
+       "action-editmywatchlist": "काँच साकांक्षसूची संपादित करू",
+       "action-viewmywatchlist": "अपन काँच साकांक्षसूची देखु",
+       "action-viewmyprivateinfo": "अपन व्यक्तिगत जानकारी देखु",
+       "action-editmyprivateinfo": "अपन व्यक्तिगत जानकारी संपादित करु",
        "nchanges": "$1 {{PLURAL:$1|परिवर्त्तन|परिवर्त्तन}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|अंतिम बेर देखला के बाद स}}",
+       "enhancedrc-history": "इतिहास",
        "recentchanges": "लगक परिवर्तन सभ",
        "recentchanges-legend": "नव परिवर्तन सभक विकल्प सभ",
        "recentchanges-summary": "ऐ पन्नापर विकीमे भेल सभसँ अद्यतन परिवर्तनपर नजरि राखू।",
        "recentchanges-label-minor": "ई एकटा लघु सम्पादन छी",
        "recentchanges-label-bot": "ई सम्पादन यांत्रिक छल।",
        "recentchanges-label-unpatrolled": "ऐ सम्पादनक पुनरीक्षण अखन धरि नै कएल गेल अछि।",
+       "recentchanges-label-plusminus": "पन्नाके आकार इ बाइट संख्यासे बदलल गेल",
        "rcnotefrom": "नीचाँमे '''$2''' सँ भेल परिवर्तन अछि ('''$1''' धरि देखाएल)।",
        "rclistfrom": "$3 $2 सँ शुरू भेल नव परिवर्तन देखू",
        "rcshowhideminor": "$1 अल्प संपादन",
+       "rcshowhideminor-show": "देखाउ",
+       "rcshowhideminor-hide": "नुकाऊ",
        "rcshowhidebots": "$1 स्वचालक सभ",
+       "rcshowhidebots-show": "देखाउ",
+       "rcshowhidebots-hide": "नुकाऊ",
        "rcshowhideliu": "$1 सम्प्रवेशित प्रयोक्ता सभ",
+       "rcshowhideliu-show": "देखाउ",
+       "rcshowhideliu-hide": "नुकाऊ",
        "rcshowhideanons": "$1 अज्ञात प्रयोक्ता सभ",
+       "rcshowhideanons-show": "देखाऊ",
+       "rcshowhideanons-hide": "नुकाऊ",
        "rcshowhidepatr": "$1 संचालित सम्पादन",
+       "rcshowhidepatr-show": "देखाउ",
+       "rcshowhidepatr-hide": "नुकाऊ",
        "rcshowhidemine": "$1 हमर सम्पादन सभ",
+       "rcshowhidemine-show": "देखाउ",
+       "rcshowhidemine-hide": "नुकाऊ",
        "rclinks": "देखाऊ अंतिम $1 परिवर्त्तन अंतिम $2 दिनमे<br />$3",
        "diff": "अंतर",
        "hist": "इति.",
        "rc_categories": "संवर्ग सीमित (\"|\" सँ हटाउ)",
        "rc_categories_any": "कोनो",
        "rc-change-size": "$1",
+       "rc-change-size-new": "बदललाके बाद $1 {{PLURAL:$1|बाइट}}",
        "newsectionsummary": "/* $1 */ नव संवर्ग",
        "rc-enhanced-expand": "वर्णन देखाउ (जावास्क्रिप्ट चाही)",
        "rc-enhanced-hide": "वर्णन नुकाउ",
        "uploadwarning": "उपारोपण चेतौनी",
        "uploadwarning-text": "कृपा कऽ नीचाँ देल संचिका वर्णनकेँ संशोधित करू आ फेरसँ प्रयास करू।",
        "savefile": "संचिका संरक्षण करू",
-       "uploadedimage": "अपलोड भेल \"[[$1]]\"",
-       "overwroteimage": "एकर \"[[$1]]\" नव संस्करण उपारोपित भेल।",
        "uploaddisabled": "उपारोपण सभ अशक्त कएल गेल।",
        "copyuploaddisabled": "सार्वत्रिक विभव संकेत उपारोपण अशक्त कएल गेल।",
        "uploaddisabledtext": "संचिका उपारोपण सभ अशक्त अछि।",
        "license-nopreview": "(पूर्वावलोकन उपलब्ध नै अछि)",
        "upload_source_url": "(एकटा मान्य, सार्वजनिक प्रवेशबला सार्वत्रिक विभव संकेत)",
        "upload_source_file": "(अहाँक संगणकपर एकटा संचिका)",
+       "listfiles-delete": "मिटाउ",
        "listfiles-summary": "ई विशिष्ट पन्ना सभटा उपारोपित संचिका देखबैए।\nप्रयोक्ता द्वारा चुनलापर अन्तिम उपारोपित संचिका देखबैत अछि।",
        "listfiles_search_for": "ऐ दृश्य-श्रव्य नामले ताकू:",
        "imgfile": "संचिका",
        "listfiles_size": "आकार",
        "listfiles_description": "वर्णन",
        "listfiles_count": "संस्करण सभ",
+       "listfiles-latestversion": "बर्तमान भर्जन",
+       "listfiles-latestversion-yes": "हँ",
+       "listfiles-latestversion-no": "नै",
        "file-anchor-link": "संचिका",
        "filehist": "फाइल इतिहास",
        "filehist-help": "तखुनका तिथि/ समए पर क्लिक करू जखुनका फाइल देखबाक अछि",
        "watchlist-details": "{{PLURAL:$1|$1 पन्ना|$1 पन्ना सभ}} अहाँक साकांक्षसूचीमे, चौबटिया पन्ना नै गानल गेल।",
        "wlheader-enotif": "ई-पत्र सूचना लागू अछि।",
        "wlheader-showupdated": "पन्ना सभ जे अहाँक एतए अन्तिम बेर अएलाक बाद बदलल अछि तकर सूची देल अछि '''गाढ़''' मे",
+       "wlnote": "नीचाँ {{PLURAL:$1|is the last change|are the last '''$1''' changes}} अन्तिम {{PLURAL:$2|hour|'''$2''' hours}} $3, $4 जेना।",
        "wlshowlast": "देखाउ अन्तिम $1 घण्टा $2 दिन $3",
        "watchlist-options": "साकांक्षसूचीक विकल्प सभ",
        "watching": "ताकिमे...",
        "enotif_lastvisited": "देखू $1 अपन अन्तिम बेर अएलाक बादक परिवर्तन लेल।",
        "enotif_lastdiff": "ऐ परिवर्तनकेँ देखबा लेल $1 देखू।",
        "enotif_anon_editor": "गुप्त प्रयोक्ता $1",
-       "enotif_body": "पà¥\8dरिय $WATCHINGUSERNAME,\n\n\nà¤\88 {{à¤\85नà¥\8dतरà¥\8dà¤\9cाल}} à¤ªà¤¨à¥\8dना $पनà¥\8dनाशà¥\80रà¥\8dषà¤\95 $CHANGEDORCREATED à¤\95à¤\8fल à¤\97à¥\87ल $PAGEEDITDATE à¤¤à¤¿à¤¥à¤¿à¤\95à¥\87à¤\81 $PAGEEDITOR à¤¦à¥\8dवारा, à¤¦à¥\87à¤\96à¥\82 $PAGETITLE_URL à¤µà¤°à¥\8dतमान à¤¸à¤\82सà¥\8dà¤\95रण à¤²à¥\87ल।\n\n$NEWPAGE\n\nसमà¥\8dपादà¤\95à¥\80य: $PAGESUMMARY $PAGEMINOREDIT\n\nसमà¥\8dपादà¤\95सà¤\81 à¤¸à¤®à¥\8dपरà¥\8dà¤\95 à¤\95रà¥\82:\nà¤\88-पतà¥\8dर: $PAGEEDITOR_EMAIL\nविà¤\95à¥\80: $PAGEEDITOR_WIKI\n\nà¤\86न à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¥\87लापर à¤\95à¥\8bनà¥\8b à¤¸à¥\82à¤\9aना à¤¨à¥\88 à¤¦à¥\87ल à¤\9cाà¤\8fत à¤\9cà¤\81 à¤\85हाà¤\81 à¤\88 à¤ªà¤¨à¥\8dना à¤¨à¥\88 à¤¦à¥\87à¤\96ब।\nà¤\85पन à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80à¤\95 à¤¸à¥\82à¤\9aना à¤ªà¥\87बाà¤\95 à¤ªà¥\8dरà¤\95ार à¤\85हाà¤\81 à¤¬à¤¦à¤²à¤¿ à¤¸à¤\95à¥\88 à¤\9bà¥\80।\n\n             à¤\85हाà¤\81à¤\95 à¤ªà¥\8dरिय {{ानà¥\8dतर्जाल}} सूचना प्रणाली\n\n--\nअपन ई-पत्र सूचना प्रकार बदलबाक लेल देखू\n{{canonicalurl:{{#special:Preferences}}}}\nअपन साकांक्ष-सूची सूचना प्रकार बदलबाक लेल देखू\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nअपन साकांक्ष-सूचीसँ कोनो पन्ना मेटेबाक लेल देखू\n$UNWATCHURL\n\nअपन अनुभव बतेबा वा कोनो सहायता लेल:\n$HELPPAGE",
+       "enotif_body": "पà¥\8dरिय $WATCHINGUSERNAME,\n\n\nà¤\88 {{à¤\85नà¥\8dतरà¥\8dà¤\9cाल}} à¤ªà¤¨à¥\8dना $पनà¥\8dनाशà¥\80रà¥\8dषà¤\95 $CHANGEDORCREATED à¤\95à¤\8fल à¤\97à¥\87ल $PAGEEDITDATE à¤¤à¤¿à¤¥à¤¿à¤\95à¥\87à¤\81 $PAGEEDITOR à¤¦à¥\8dवारा, à¤¦à¥\87à¤\96à¥\82 $PAGETITLE_URL à¤µà¤°à¥\8dतमान à¤¸à¤\82सà¥\8dà¤\95रण à¤²à¥\87ल।\n\n$NEWPAGE\n\nसमà¥\8dपादà¤\95à¥\80य: $PAGESUMMARY $PAGEMINOREDIT\n\nसमà¥\8dपादà¤\95सà¤\81 à¤¸à¤®à¥\8dपरà¥\8dà¤\95 à¤\95रà¥\82:\nà¤\88-पतà¥\8dर: $PAGEEDITOR_EMAIL\nविà¤\95à¥\80: $PAGEEDITOR_WIKI\n\nà¤\86न à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¥\87लापर à¤\95à¥\8bनà¥\8b à¤¸à¥\82à¤\9aना à¤¨à¥\88 à¤¦à¥\87ल à¤\9cाà¤\8fत à¤\9cà¤\81 à¤\85हाà¤\81 à¤\88 à¤ªà¤¨à¥\8dना à¤¨à¥\88 à¤¦à¥\87à¤\96ब।\nà¤\85पन à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80à¤\95 à¤¸à¥\82à¤\9aना à¤ªà¥\87बाà¤\95 à¤ªà¥\8dरà¤\95ार à¤\85हाà¤\81 à¤¬à¤¦à¤²à¤¿ à¤¸à¤\95à¥\88 à¤\9bà¥\80।\n\n             à¤\85हाà¤\81à¤\95 à¤ªà¥\8dरिय {{à¤\85à¤\82तर्जाल}} सूचना प्रणाली\n\n--\nअपन ई-पत्र सूचना प्रकार बदलबाक लेल देखू\n{{canonicalurl:{{#special:Preferences}}}}\nअपन साकांक्ष-सूची सूचना प्रकार बदलबाक लेल देखू\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nअपन साकांक्ष-सूचीसँ कोनो पन्ना मेटेबाक लेल देखू\n$UNWATCHURL\n\nअपन अनुभव बतेबा वा कोनो सहायता लेल:\n$HELPPAGE",
        "created": "बनाएल गेल",
        "changed": "बदलल गेल",
        "deletepage": "पन्ना मेटाउ",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}}",
        "import-logentry-interwiki": "$1 क विकीअन्तरण",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}} $2 सँ",
+       "javascripttest": "जावास्क्रिप्ट परिक्षण",
        "tooltip-pt-userpage": "अहाँक खेसरा पन्ना",
        "tooltip-pt-anonuserpage": "सम्पाद्न कएल जा रहल स्थानक  अनिकेतक प्रयोक्ता पन्ना",
        "tooltip-pt-mytalk": "अहाँक वार्त्ता पृष्ठ",
        "spam_blanking": "सभटा संशोधन $1 लागिसँ युक्त अि, खतम कऽ रहल छी",
        "pageinfo-title": "\"$1\"पृष्ठक लेल नब गप",
        "pageinfo-header-edits": "संपादन",
+       "pageinfo-header-restrictions": "पन्ना संरक्षण",
        "pageinfo-views": "देखहि बला के संख्या",
        "pageinfo-watchers": "जानकारक संख्या",
        "pageinfo-edits": "सम्पादनक संख्या",
        "duplicate-defaultsort": "'''चेतौनी:''' पूर्वनिर्धारित विन्यास चाभी \"$2\" पहिलुका पूर्वनिर्धारित विन्यास चाभी \"$1\" केँ खतम करैए।",
        "version": "संस्करण",
        "version-extensions": "संस्करणक आगाँ",
+       "version-skins": "रूप",
        "version-specialpages": "खास पन्ना",
        "version-parserhooks": "पार्सर हूक",
        "version-variables": "विकारी",
        "version-antispam": "अनिष्ट संदेश प्रतिबन्ध",
-       "version-skins": "रूप",
        "version-other": "आन",
        "version-mediahandlers": "मीडिया संचालक",
        "version-hooks": "हूक",
        "version-hook-name": "खुट्टीक नाम",
        "version-hook-subscribedby": "ई सदस्यता लेलनि",
        "version-version": "(संस्करण $1)",
+       "version-no-ext-name": "[कोनो नाम नै]",
        "version-license": "अधिकार",
+       "version-ext-license": "अधिकार",
+       "version-ext-colheader-name": "एक्सटेंसन",
+       "version-skin-colheader-name": "रूप",
+       "version-ext-colheader-version": "संस्करण",
+       "version-ext-colheader-license": "अधिकार",
+       "version-ext-colheader-description": "विवरण",
+       "version-ext-colheader-credits": "लेखक",
+       "version-license-title": "$1 के लेल अधिकार",
+       "version-credits-title": "$1 के लेल श्रेय",
        "version-poweredby-credits": "ई विकी चालित अछि '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2",
        "version-poweredby-others": "आन",
+       "version-poweredby-translators": "translatewiki.net अनुवादक",
+       "version-credits-summary": "[[Special:Version|मिडियाविकि]]",
        "version-license-info": "मीडियाविकी एकटा मंगनीक तंत्रांश अछि; अहाँ एकरा बाँटि सकै छी आ/ वा संशोधित कऽ सकै छीगी.एन.यू. सामान्य जन लाइसेन्सक अन्तर्गत जेना फ्री सॉफ्टवेयर फाउन्डेशन एकरा प्रकाशित केने अछि; चाहे तँ लाइसेन्सक संस्करण २, वा (अहाँक विकल्पपर) कोनो बादक दोसर संस्करणक अन्तर्गत।\n\nमीडियाविकी ऐ आशामेँ बाँटल जा रहल अछि कि ई उपयोगी हएत, मुदा बिना कोनो गारन्टीक; बिना कोनो व्यापारिक अन्तर्निहित वारन्टीक वा कोनो विशेष काजक लेल उपयोगी हेबाले। देखू गी.एन.यू. सामान्य जन लाइसेन्स विशेष वर्णन लेल।\n\nअहाँ प्राप्त केने हएब [{{SERVER}}{{SCRIPTPATH}}/ अनुकरण गी.एन.यू. सामान्य जन लाइसेन्सक प्रति] ऐ तंत्रांशक संग; जँ नै, लिखू फ्री सॉफ्टवेयर फाउन्डेशन, आइ.एन.सी., ५१, फ्रैंकलिन स्ट्रीट, पाँचम तल, बोस्टन, एम.ए. ०२११०-१३०१, यू.एस.ए. वा [//www.gnu.org/licenses/old-licenses/gpl-2.0.html अन्तर्भूत पढ़बा लेल]।",
        "version-software": "प्रतिष्ठापित तंत्रांश",
        "version-software-product": "उत्पाद",
        "version-software-version": "संस्करण",
+       "version-entrypoints-header-url": "यू॰आर॰एल",
        "fileduplicatesearch": "द्वितीयक संचिका ताकू",
        "fileduplicatesearch-summary": "हैश मानक आधारपर द्वितीयक संचिका ताकू।",
        "fileduplicatesearch-legend": "द्वितीयक ताकू",
        "tags-tag": "चेन्हक नाम",
        "tags-display-header": "परिवर्तन सूची सभक रूपरंग",
        "tags-description-header": "अर्थक पूर्ण विवरण",
+       "tags-active-header": "सक्रिय?",
        "tags-hitcount-header": "चेन्हयुक्त परिवर्तन सभ",
+       "tags-active-yes": "हँ",
+       "tags-active-no": "नै",
        "tags-edit": "सम्पादन करू",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तन सभ}}",
        "comparepages": "पन्ना सभक तुलना करू",
        "dberr-problems": "दुखी छी! ई जालस्थल तकनीकी समस्या अनुभव कऽ अछि।",
        "dberr-again": "किछु काल बाट ताकू आ फेरसँ भारित करू।",
        "dberr-info": "(दत्तनिधि वितरककेँ सम्पर्क नै कऽ सकल: $1)",
+       "dberr-info-hidden": "(दत्तनिधि वितरककेँ सम्पर्क नै कऽ सकल: $1)",
        "dberr-usegoogle": "ऐ बीचमे अहाँ गूगलसँ खोज कऽ सकै छी।",
        "dberr-outofdate": "मोन राखू जे हमर सामिग्रीक ओकर सूची पुरान भऽ सकैए।",
        "dberr-cachederror": "ई आग्रह कएल पन्नाक उपस्मृति संरक्षित द्वितीयक अछि, आ भऽ सकैए जे अद्यतन नै हुअए।",
        "htmlform-submit": "दिअ",
        "htmlform-reset": "परिवर्तन खतम करू",
        "htmlform-selectorother-other": "आन",
+       "htmlform-no": "नै",
+       "htmlform-yes": "हँ",
+       "htmlform-chosen-placeholder": "एकटा विकल्प चुनु",
+       "htmlform-cloner-create": "आर जोडु",
+       "htmlform-cloner-delete": "हटाउ",
        "sqlite-has-fts": "$1 पूर्ण-पाठ खोज सहायता युक्त",
        "sqlite-no-fts": "$1 बिन पूर्ण-पाठ खोज सहायताक",
        "logentry-delete-delete": "$1 {{लिंग:$2|deleted}} page $3",
        "logentry-newusers-create2": "$1 {{लिंग:$2|बनाएल}} {{लिंग:$4|एकटा प्रयोक्ता खाता}} $3",
        "logentry-newusers-autocreate": "खाता $1 छल {{लिंग:$2|बनाएल}} स्वतः",
        "rightsnone": "(कोनो नै)",
+       "feedback-subject": "विषय:",
+       "feedback-message": "संदेश:",
+       "feedback-cancel": "रद्द करु",
+       "feedback-submit": "प्रतिक्रिया भेजु",
+       "feedback-adding": "पन्ना उपर प्रतिक्रिया जोडु ...",
+       "feedback-error2": "त्रुटि: संपादन विफल भेल",
+       "feedback-close": "भ गेल",
+       "feedback-bugcheck": "बहुत निक! जांच करु कि [ $1 known bugs] पहिले स त नै अछि ।",
+       "searchsuggest-search": "ताकू",
+       "searchsuggest-containing": "...सऽ युक्त",
        "api-error-badaccess-groups": "अहि विकी सें अहां कोनो प्रारूप लोड नहि क सकब.",
        "api-error-filename-tooshort": "ई संचिका नाम बड छोट अछि |",
        "api-error-filetype-banned": "ऐ तरहक संचिका नाम प्रतिबंधित  अछि।",
        "api-error-ok-but-empty": "आन्तरिक भ्रम: वितरकसँ कोनो सम्पर्क नै",
        "api-error-unclassified": "एकटा अबूझ भ्रम आएल",
        "api-error-unknown-code": "अबूझ भ्रम:\"$1\"",
-       "api-error-uploaddisabled": "ऐ विकीपर उपारोपण अशक्त कएल गेल अछि।"
+       "api-error-uploaddisabled": "ऐ विकीपर उपारोपण अशक्त कएल गेल अछि।",
+       "pagelang-name": "पन्ना",
+       "pagelang-language": "भाषा"
 }
index 57fe8cf..4ddc7dc 100644 (file)
        "oct": "Кем",
        "nov": "Эйн",
        "dec": "Куч",
+       "january-date": "Кельмеков $1",
+       "february-date": "Уфайков $1",
+       "march-date": "Марайков $1",
+       "april-date": "Шудиков $1",
+       "may-date": "Панжиков $1",
+       "june-date": "Лямбеков $1",
+       "july-date": "Псиков $1",
+       "august-date": "Сёроньков $1",
+       "september-date": "Тюжягов $1",
+       "october-date": "Кельмазаков $1",
+       "november-date": "Эйндамков $1",
+       "december-date": "Кучкаков $1",
        "pagecategories": "{{PLURAL:$1|Категорие|Категориет}}",
        "category_header": "\"$1\" категориеса лопатне",
        "subcategories": "Субкатегориет",
        "newwindow": "(панчсеви од вальмаса)",
        "cancel": "Мърдамс меки",
        "moredotdotdot": "Сяда лама...",
-       "mypage": "Монь лопазе",
-       "mytalk": "Монь корхтамазе",
+       "morenotlisted": "Лемгярькссь апак тик",
+       "mypage": "Лопазе",
+       "mytalk": "Корхтамазе",
        "anontalk": "Корхтамс тя IP-ть мархта",
        "navigation": "Навигацие",
        "and": "&#32;эди",
        "actions": "Тефне",
        "namespaces": "Лемботмот",
        "variants": "Вариатт",
+       "navigation-heading": "Навигациень меню",
        "errorpagetitle": "Эльбятькс",
        "returnto": "Мърдамс $1-с.",
        "tagline": "{{SITENAME}}ста",
        "permalink": "Ялань сюлмафкс",
        "print": "Нолдамс",
        "view": "Ваномс",
+       "view-foreign": "Ванк $1са",
        "edit": "Петнеме",
+       "edit-local": "Петнемс тя азондомать",
        "create": "Тиемс",
+       "create-local": "Поладомс азондомать",
        "editthispage": "Петнемс тя лопать",
        "create-this-page": "Тиемс тя лопать",
        "delete": "Нардамс",
        "deletethispage": "Нардамс тя лопать",
+       "undeletethispage": "Мърдафтомс лопать",
        "undelete_short": "Мърдафтомс {{PLURAL:$1|петнема|$1 петнемат}}",
        "viewdeleted_short": "Ваномс {{PLURAL:$1|фкя нардаф видептема|$1 нардаф видептемат}}",
        "protect": "Араламс",
        "talkpagelinktext": "Корхтама",
        "specialpage": "Башка тевонь лопа",
        "personaltools": "Эсь кядьёнкст",
-       "postcomment": "Од пакш",
        "articlepage": "Ваномс потмакслопать",
        "talk": "Корхнема",
        "views": "Ванфт",
-       "toolbox": "Кядьёнкс кярькс",
+       "toolbox": "Кядьёнкст",
        "userpage": "Ваномс тиить лопанц",
        "projectpage": "Ваномс проектть лопанц",
        "imagepage": "Ваномс файлонь лопать",
        "jumptonavigation": "навигацие",
        "jumptosearch": "вешендема",
        "view-pool-error": "Ужяль, тя пингть серверхнень вийсна аф сатовихть.\nВельф лама тиихть тяряфнихть ваномс тя лопать.\nЭняльттяма учт аф ламос тя лопанди одукс сама инголе.\n$1",
+       "generic-pool-error": "Ужяль, тя пингть серверхнень вийсна аф сатыхть.\nВельф лама тиида тяряфнихть ваномс тя лопать лангс.\nЭняльттяма учт аф ламос тя лопанди одукс самда инголе.",
        "pool-timeout": "Пигонь кирдемась учи пякстаманц",
        "pool-queuefull": "Тяряфнемада вельф лама",
        "pool-errorunknown": "Аф содаф эльбятькс",
+       "pool-servererror": "Пърдафкс лувома лезкссь аф сатови ($1).",
        "aboutsite": "{{SITENAME}} колга",
        "aboutpage": "Project:Колга",
-       "copyright": "Сёрматфсь ули кода мумс $1-са.",
+       "copyright": "Сёрматфсь ули кода мумс $1са, къда илякс апак аст.",
        "copyrightpage": "{{ns:project}}:Копияма видекст",
        "currentevents": "Мезе тяса моли",
        "currentevents-url": "Project:Мезе тяса моли",
        "nospecialpagetext": "<strong>Аш стама башка лопа.</strong>\n\nВанк [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Эльбятькс",
        "databaseerror": "Датабаза эльбятькс",
+       "databaseerror-text": "Содамошинь паргонь вешемста лиссь эльбятькс.\nУлема, програмонь лездомбяльсь аржиясь.",
        "laggedslavemode": "Шарфтк мяльце: Тя лопась, улема, сирелгодсь.",
        "readonly": "Датабазась пякстаф",
        "enterlockreason": "Сёрматк тязк пякстама туфтал тонь арьсемацень мархта эли няфтть тяса мъзярда ули кода пякстамать валхтомс.",
        "externaldberror": "Лиссь эльбятькс ушеширень датабазонь вельде кемокстакшнембачк эли тондейть аф мярьгови полафнемс тонь ушеширень сёрматфтомацень.",
        "login": "Сувама",
        "nav-login-createaccount": "Сувама / сёрматфтома",
-       "loginprompt": "Тондейть эряви нолдамс тевс cookies {{SITENAME}}с суваманди.",
        "userlogin": "Сувама / сёрматфтома",
        "userloginnocreate": "Сувамс",
        "logout": "Лисема",
        "file-deleted-duplicate": "Файлсь сяка кода файл ([[:$1]]) нардафоль. Ванк файлонь нардама историянц сонь одукс тонгоманза инголе.",
        "uploadwarning": "Тонгодемань инголе кардама",
        "savefile": "Ванфтомс файл",
-       "uploadedimage": "тонгозь \"[[$1]]\"",
-       "overwroteimage": "тонгозь \"[[$1]]\" од верзиенц",
        "uploaddisabled": "Тонгодемать лоткозь",
        "uploaddisabledtext": "Файл тонгодемась лоткаф.",
        "uploadscripted": "Тя файлса ащи HTML эли програм, конат аф морафтовихть интернет полатксть вельде.",
        "watchlist-details": "{{PLURAL:$1|$1 лопа|$1 лопат}} мельгеваномацень ала корхнема лопат аф лувомок.",
        "wlheader-enotif": "Электрононь сёрма вельде пачфнема нолдаф тевс.",
        "wlheader-showupdated": "Лопат конань полафтозь тонь мекольце сувсемадот меле няфтевсть '''эчке тяшкса'''.",
+       "wlnote": "Ала {{PLURAL:$1|мекольце полафнема|'''$1''' мекольце полафнемат}} ётай {{PLURAL:$2| ойста (часста)|'''$2''' ойста (часста)}}.",
        "wlshowlast": "Няфтемс мекольце $1 ойхть (част) $2 шит $3",
        "watchlist-options": "Мельгеваномать латцемасна",
        "watching": "Ванома...",
index 04bd3ec..c60d146 100644 (file)
        "uploadwarning": "Предупредување при подигање",
        "uploadwarning-text": "Изменете го описот на податотеката подолу и обидете се повторно.",
        "savefile": "Зачувај податотека",
-       "uploadedimage": "подигнато „[[$1]]“",
-       "overwroteimage": "подигнато нова верзија на „[[$1]]“",
        "uploaddisabled": "Забрана за подигања",
        "copyuploaddisabled": "Подигањето од URL е оневозможено.",
        "uploaddisabledtext": "Подигањето на податотеки е оневозможено.",
        "logentry-rights-rights": "$1 {{GENDER:$2|го измени}} групното членство на $3 од $4 во $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|го измени}} групното членство во $3",
        "logentry-rights-autopromote": "$1 автоматски {{GENDER:$2|унапреден|унапредена}} од $4 во $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|ја подигна}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|подигна}} нова верзија на $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|ја подигна}} $3",
        "rightsnone": "(нема)",
        "feedback-bugornote": "Ако сте спремни подробно да го опишете техничкиот проблем, тогаш [$1 пријавете грешка]. \nВо спротивно, послужете се со едноставниот образец подолу. Вашиот коментар ќе стои на страницата „[$3 $2]“, заедно со корисничкото име и прелистувачот што го користите.",
        "feedback-subject": "Наслов:",
index 12dd59b..3a87e70 100644 (file)
        "uploadwarning": "അപ്‌ലോഡ് മുന്നറിയിപ്പ്",
        "uploadwarning-text": "ദയവായി താഴെയുള്ള പ്രമാണ വിവരണങ്ങൾ പുതുക്കി വീണ്ടും ശ്രമിക്കുക.",
        "savefile": "പ്രമാണം കാത്ത് സൂക്ഷിക്കുക",
-       "uploadedimage": "\"[[$1]]\" അപ്‌ലോഡ് ചെയ്തു.",
-       "overwroteimage": "\"[[$1]]\" എന്ന പ്രമാണത്തിന്റെ പുതിയ പതിപ്പ് അപ്‌ലോഡ് ചെയ്തിരിക്കുന്നു",
        "uploaddisabled": "അപ്‌ലോഡുകൾ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു.",
        "copyuploaddisabled": "യൂ.ആർ.എൽ. വഴിയുള്ള അപ്‌‌ലോഡ് നിർജ്ജീവമാക്കിയിരിക്കുന്നു.",
        "uploaddisabledtext": "പ്രമാണം അപ്‌ലോഡ് ചെയ്യുന്നതു സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.",
index d659ff7..7a2d8f4 100644 (file)
        "badfilename": "Iáⁿ-siōng ê miâ í-keng kái chò \"$1\".",
        "uploadwarning": "Upload kéng-kò",
        "savefile": "Pó-chûn tóng-àn",
-       "uploadedimage": "thoân \"[[$1]]\" chiūⁿ-bāng",
        "uploaddisabled": "Pháiⁿ-sè, sàng chiūⁿ-bāng ê kong-lêng bô khui.",
        "sourcefilename": "Tóng-àn goân miâ:",
        "destfilename": "Tóng-àn sin miâ:",
index aaedc84..b754072 100644 (file)
@@ -57,6 +57,7 @@
        "tog-watchdefault": "Legg til sider og filer jeg endrer på i min overvåkingsliste",
        "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-watchrollback": "Legg til sider jeg har utført tilbakestilling på i min overvåkningsliste",
        "tog-minordefault": "Merk i utgangspunktet alle redigeringer som mindre",
        "tog-previewontop": "Vis forhåndsvisningen over redigeringsboksen",
        "tog-previewonfirst": "Vis forhåndsvisning når du begynner å redigere",
        "uploadwarning": "Opplastingsadvarsel",
        "uploadwarning-text": "Vennligst endre filbeskrivelsen nedenfor og prøv igjen.",
        "savefile": "Lagre fil",
-       "uploadedimage": "lastet opp «[[$1]]»",
-       "overwroteimage": "last opp en ny versjon av «[[$1]]»",
        "uploaddisabled": "Opplastingsfunksjonen er slått av",
        "copyuploaddisabled": "Opplasting via nettadresse deaktivert.",
        "uploaddisabledtext": "Opplasting er slått av.",
        "nolicense": "Ingen spesifisert",
        "licenses-edit": "Rediger lisensvalg",
        "license-nopreview": "(Forhåndsvisning ikke tilgjengelig)",
-       "upload_source_url": " (en gyldig, offentlig tilgjengelig adresse)",
-       "upload_source_file": " (en fil på din datamaskin)",
+       "upload_source_url": "(din fil fra en gyldig, offentlig tilgjengelig adresse)",
+       "upload_source_file": "(en fil på din datamaskin)",
        "listfiles-delete": "slett",
        "listfiles-summary": "Denne spesialsiden viser alle opplastede filer.",
        "listfiles_search_for": "Søk etter filnavn:",
        "watchlist-details": "{{PLURAL:$1|Én side|$1 sider}} på din overvåkningsliste, teller ikke diskusjonssider.",
        "wlheader-enotif": "E-postvarsling er slått på.",
        "wlheader-showupdated": "Sider som har blitt forandret siden du sist besøkte dem vises i '''fet tekst'''",
-       "wlnote": "Nedenfor er {{PLURAL:$1|den siste endringen|de siste '''$1''' endringene}} {{PLURAL:$2|den siste timen|de siste '''$2''' timene}}, fra den $3, kl. $4",
+       "wlnote": "Nedenfor er {{PLURAL:$1|den siste endringen|de siste <strong>$1</strong> endringene}} {{PLURAL:$2|den siste timen|de siste <strong>$2</strong> timene}}, per $3 kl. $4",
        "wlshowlast": "Vis siste $1 timer $2 dager $3",
        "watchlist-options": "Alternativ for overvåkningslisten",
        "watching": "Overvåker…",
index 91597b1..3c7c7b2 100644 (file)
        "uploadwarning": "Waorschuwing",
        "uploadwarning-text": "Pas de bestaandsbeschrieving hieronder an en probeer t opniej",
        "savefile": "Bestaand opslaon",
-       "uploadedimage": "Op-estuurd: [[$1]]",
-       "overwroteimage": "Nieje versie van \"[[$1]]\" op-estuurd",
        "uploaddisabled": "t Opsturen van bestaanden is uutezet.",
        "copyuploaddisabled": "t Opsturen van bestaanden via n webadres is uutezet.",
        "uploaddisabledtext": "t Opsturen van bestaanden is uutezet.",
index 8ebe48c..3eccea0 100644 (file)
        "uploadwarning": "उर्ध्वभरण चेतावनी",
        "uploadwarning-text": "कृपया तल फाइलको वर्णन परिवर्तन गर्नुहोस र पुन: प्रयास गर्नुहोस् ।",
        "savefile": "फाइल बचत गर्नुहोस्",
-       "uploadedimage": "उर्ध्वभरण(upload) गरियो  \"[[$1]]\"",
-       "overwroteimage": " \"[[$1]]\"को एउटा नयाँ संस्करण उर्ध्वभरण गरियो",
        "uploaddisabled": "उर्ध्वभरण अक्षम पारिएकोछ",
        "copyuploaddisabled": " URL प्रयोग गरी उर्ध्वभरण निश्कृय पारिएको छ।",
        "uploaddisabledtext": "फाइल उर्ध्वभरण अक्षम पारिएकोछ",
index e129c6d..cd46f8b 100644 (file)
        "recentchanges-summary": "Op deze pagina kunt u de recentste wijzigingen in deze wiki bekijken.",
        "recentchanges-noresult": "Er zijn in deze periode geen wijzigingen gemaakt die aan de criteria voldoen.",
        "recentchanges-feed-description": "Met deze feed kunt u de recentste wijzigingen in deze wiki bekijken.",
-       "recentchanges-label-newpage": "Met deze bewerking is een nieuwe pagina aangemaakt.",
+       "recentchanges-label-newpage": "Met deze bewerking is een nieuwe pagina aangemaakt",
        "recentchanges-label-minor": "Dit is een kleine bewerking",
        "recentchanges-label-bot": "Deze bewerking is uitgevoerd door een bot",
        "recentchanges-label-unpatrolled": "Deze bewerking is nog niet gecontroleerd",
        "uploadwarning": "Uploadwaarschuwing",
        "uploadwarning-text": "Pas de onderstaande bestandsbeschrijving aan en probeer het daarna opnieuw.",
        "savefile": "Bestand opslaan",
-       "uploadedimage": "heeft \"[[$1]]\" geüpload",
-       "overwroteimage": "heeft een nieuwe versie van \"[[$1]]\" toegevoegd",
        "uploaddisabled": "Uploaden is uitgeschakeld",
        "copyuploaddisabled": "Het uploaden van bestanden via een URL is uitgeschakeld.",
        "uploaddisabledtext": "Het uploaden van bestanden is uitgeschakeld.",
index c483e9d..0ded27b 100644 (file)
        "uploadwarning": "Opplastingsåtvaring",
        "uploadwarning-text": "Ver venleg og endra filskildringa nedanfor og prøv på nytt",
        "savefile": "Lagre fil",
-       "uploadedimage": "lasta opp «[[$1]]»",
-       "overwroteimage": "lasta opp ein ny versjon av «[[$1]]»",
        "uploaddisabled": "Beklagar, funksjonen for opplasting er deaktivert på denne nettenaren.",
        "copyuploaddisabled": "Opplasting gjennom URL er slege av.",
        "uploaddisabledtext": "Filopplasting er slått av.",
index 7c38cf6..fe35a4a 100644 (file)
        "hidetoc": "ukryj",
        "collapsible-collapse": "Zwiń",
        "collapsible-expand": "Rozwiń",
+       "confirmable-confirm": "Jesteś {{GENDER:$1|pewny|pewna}}?",
+       "confirmable-yes": "Tak",
+       "confirmable-no": "Nie",
        "thisisdeleted": "Pokazać lub odtworzyć $1?",
        "viewdeleted": "Zobacz $1",
        "restorelink": "{{PLURAL:$1|jedną usuniętą wersję|$1 usunięte wersje|$1 usuniętych wersji}}",
        "uploadwarning": "Ostrzeżenie o przesyłaniu",
        "uploadwarning-text": "Zmień poniższy opis pliku i spróbuj ponownie.",
        "savefile": "Zapisz plik",
-       "uploadedimage": "przesłał [[$1]]",
-       "overwroteimage": "przesłano nową wersję pliku „[[$1]]“",
        "uploaddisabled": "Przesyłanie plików wyłączone",
        "copyuploaddisabled": "Przesyłanie poprzez podanie adres URL jest wyłączone.",
        "uploaddisabledtext": "Możliwość przesyłania plików została wyłączona.",
        "nolicense": "Nie wybrano",
        "licenses-edit": "Edytuj opcje licencji",
        "license-nopreview": "(Podgląd niedostępny)",
-       "upload_source_url": " (poprawny, publicznie dostępny adres URL)",
+       "upload_source_url": "(wybrany plik z prawidłowego, publicznie dostępnego adresu URL)",
        "upload_source_file": "(wybrany plik na twoim komputerze)",
        "listfiles-delete": "usuń",
        "listfiles-summary": "Na tej stronie specjalnej prezentowane są wszystkie przesłane pliki.",
index d6b0266..0e03693 100644 (file)
        "uploadwarning": "Avis che i soma dapress a carié",
        "uploadwarning-text": "Për piasì, ch'a modìfica la descrission ëd l'archivi sì-sota e ch'a preuva torna.",
        "savefile": "Salvé l'archivi",
-       "uploadedimage": "a l'ha carià \"[[$1]]\"",
-       "overwroteimage": "a l'ha carìa na version neuva ëd \"[[$1]]\"",
        "uploaddisabled": "Càrich blocà.",
        "copyuploaddisabled": "Ël càrich për mojen ëd n'adrëssa dl'aragnà a l'é disabilità.",
        "uploaddisabledtext": "La possibilità ëd carié dj'archivi a l'é staita disabilità.",
index f8ee867..1a0d8d8 100644 (file)
        "uploadwarning": "Aviso de envio",
        "uploadwarning-text": "Modifique a descrição do arquivo abaixo e tente novamente.",
        "savefile": "Salvar arquivo",
-       "uploadedimage": "enviou \"[[$1]]\"",
-       "overwroteimage": "enviou uma nova versão de \"[[$1]]\"",
        "uploaddisabled": "Envio de arquivos desativado.",
        "copyuploaddisabled": "O upload por URL encontra-se desativado.",
        "uploaddisabledtext": "O envio de arquivos encontra-se desativado.",
index 970b9fa..28c37a6 100644 (file)
@@ -60,7 +60,8 @@
                        "Yves Marques Junqueira",
                        "לערי ריינהארט",
                        "555",
-                       "아라"
+                       "아라",
+                       "Leon saudanha"
                ]
        },
        "tog-underline": "Sublinhar ligações:",
        "uploadwarning": "Aviso de envio",
        "uploadwarning-text": "Modifique a descrição do ficheiro abaixo e tente novamente, por favor.",
        "savefile": "Gravar ficheiro",
-       "uploadedimage": "carregou \"[[$1]]\"",
-       "overwroteimage": "enviou uma nova versão de \"[[$1]]\"",
        "uploaddisabled": "Carregamentos desativados",
        "copyuploaddisabled": "Carregamento por URL desativado.",
        "uploaddisabledtext": "O carregamento de ficheiros está desativado.",
        "wantedpages-badtitle": "Título inválido no conjunto de resultados: $1",
        "wantedfiles": "Ficheiros desejados",
        "wantedfiletext-cat": "Os seguintes ficheiros são usados, mas não existem. Ficheiros de repositórios externos podem ser listados apesar de existirem. Tais falsos positivos aparecerão <del>riscados</del>. Adicionalmente, as páginas que incorporam ficheiros que não existem estão listadas em [[:$1]].",
+       "wantedfiletext-cat-noforeign": "Os seguintes ficheiros são usados, mas não existem. Além disso, as páginas que incorporam ficheiros que não existem são listadas em [[:$1]].",
        "wantedfiletext-nocat": "Os seguintes ficheiros são usados, mas não existem. Ficheiros de repositórios externos podem ser listados apesar de existirem. Tais falsos positivos aparecerão <del>riscados</del>.",
+       "wantedfiletext-nocat-noforeign": "Os seguintes ficheiros são usados, mas não existem.",
        "wantedtemplates": "Predefinições desejadas",
        "mostlinked": "Páginas com mais afluentes",
        "mostlinkedcategories": "Categorias com mais membros",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussão]])",
        "unknown_extension_tag": "\"$1\" é uma marca de extensão desconhecida",
        "duplicate-defaultsort": "<strong>Aviso:</strong> A chave de ordenação padrão \"$2\" sobrepõe-se à anterior \"$1\".",
+       "duplicate-displaytitle": "<strong> Aviso: </ strong> Exibir título \"$ 2\" substituindo o título anteriormente em exibição \"$ 1\".",
        "version": "Versão",
        "version-extensions": "Extensões instaladas",
        "version-skins": "Temas instalados",
        "logentry-rights-rights": "$1 modificou os privilégios do utilizador $3 de $4 para $5",
        "logentry-rights-rights-legacy": "$1 alterou os grupos de $3",
        "logentry-rights-autopromote": "$1 foi automaticamente {{GENDER:$2|promovido|promovida}} de $4 a $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|carregou}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|carregou}} uma nova versão de $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|carregou}} $3",
        "rightsnone": "(nenhum)",
        "feedback-bugornote": "Se está pronto para descrever um problema técnico em detalhe, por favor, [$1 comunique o defeito].\nCaso contrário, pode facilmente usar o formulário abaixo. O seu comentário será adicionado à página \"[$3 $2]\", junto com o seu nome de utilizador e o navegador que está a usar.",
        "feedback-subject": "Assunto:",
index 9a1d2e1..0ec9349 100644 (file)
        "hidetoc": "This is the link used to hide the table of contents\n\n{{Identical|Hide}}",
        "collapsible-collapse": "{{Doc-actionlink}}\nThis is the link used to collapse a collapsible element. (used as plaintext. No wikitext or html is parsed.)\n\nSee also:\n* {{msg-mw|Collapsible-expand}}\n{{Identical|Collapse}}",
        "collapsible-expand": "{{Doc-actionlink}}\nThis is the link used to expand a collapsible element (used as plaintext. No wikitext or html is parsed.)\n\nSee also:\n* {{msg-mw|Collapsible-collapse}}\n\nSee the following example:\n{{Identical|Expand}}",
+       "confirmable-confirm": "Question asking the user to confirm a potentially uncancellable action.\n\"Yes\" and \"No\" buttons are displayed beside it.\n\nSee also:\n* {{msg-mw|confirmable-yes}}\n* {{msg-mw|confirmable-no}}",
+       "confirmable-yes": "{{Doc-actionlink}}\nText of a button that will confirm triggering of a potentially uncancellable action.\n\nSee also:\n* {{msg-mw|confirmable-confirm}}\n* {{msg-mw|confirmable-no}}",
+       "confirmable-no": "{{Doc-actionlink}}\nText of a button that will cancel triggering of a potentially uncancellable action.\n\nSee also:\n* {{msg-mw|confirmable-confirm}}\n* {{msg-mw|confirmable-yes}}",
        "thisisdeleted": "Message shown on a deleted page when the user has the undelete right. Parameters:\n* $1 - a link to [[Special:Undelete]], with {{msg-mw|restorelink}} as the text\nSee also:\n* {{msg-mw|viewdeleted}}",
        "viewdeleted": "Message shown on a deleted page when the user does not have the undelete right (but has the deletedhistory right).\n\nParameters:\n* $1 - a link to [[Special:Undelete]], with {{msg-mw|restorelink}} as the text\nSee also:\n* {{msg-mw|thisisdeleted}}",
        "restorelink": "This text is always displayed in conjunction with the {{msg-mw|thisisdeleted}} message (View or restore $1?). The user will see\nView or restore <nowiki>{{PLURAL:$1|one deleted edit|$1 deleted edits}}</nowiki>?    i.e ''View or restore one deleted edit?''     or\n''View or restore n deleted edits?''",
        "uploadwarning": "Used as section header in [[Special:Upload]].",
        "uploadwarning-text": "Used in [[Special:Upload]].",
        "savefile": "When uploading a file",
-       "uploadedimage": "This is the text of an entry in the [[Special:Log|upload log]] (and Recent Changes), after hour (and date, only in the Upload log) and user name. $1 is the name of the file uploaded.",
-       "overwroteimage": "This is the text of an entry in the [[Special:Log|upload log]] (and Recent Changes), after hour (and date, only in the Upload log) and user name. $1 is the name of the file uploaded.",
+       "uploadedimage": "{{ignored}}This is ''logentry'' message only used on IRC. $1 is the name of the file uploaded.",
+       "overwroteimage": "{{ignored}}This is ''logentry'' message only used on IRC. $1 is the name of the file uploaded.",
        "uploaddisabled": "Title of the [[Special:Upload]] page when upload is disabled.\n\nSee also:\n* {{msg-mw|Copyuploaddisabled}}",
        "copyuploaddisabled": "See also:\n* {{msg-mw|Uploaddisabled}}",
        "uploaddisabledtext": "Parameters:\n* $1 - (Optional) the name of the target file. See r22243 and [[bugzilla:8818|bug 8818]].",
        "excontent": "Automated deletion reason when deleting a page for admins. Parameters:\n* $1 - content before deletion",
        "excontentauthor": "Automated deletion reason when deleting a page for admins providing that the page has one author only.\n\nParameters:\n* $1 - content before deletion\n* $2 - username",
        "exbeforeblank": "Automated deletion reason when deleting a page for admins providing that the page was blanked before deletion.\n\nParameters:\n* $1 - content before blanking",
-       "delete-confirm": "Used as page title. Parameters:\n* $1 - the page title",
+       "delete-confirm": "Used as page title. Parameters:\n* $1 - the page title\n{{Identical|Delete}}",
        "delete-legend": "{{Identical|Delete}}",
        "historywarning": "Warning when about to delete a page that has history.\n\nFollowed by a link which points to the history page.\n\nParameters:\n* $1 - the <b>approximate</b> number of revisions that the page has, the message should not claim to give an exact count",
        "confirmdeletetext": "Introduction shown when deleting a page.\n\nRefers to {{msg-mw|Policy-url}}.",
        "logentry-rights-rights": "* $1 - username\n* $2 - (see below)\n* $3 - username\n* $4 - list of user groups or {{msg-mw|Rightsnone}}\n* $5 - list of user groups or {{msg-mw|Rightsnone}}\n----\n{{Logentry|[[Special:Log/rights]]}}",
        "logentry-rights-rights-legacy": "* $1 - username\n* $2 - (see below)\n* $3 - username\n----\n{{Logentry|[[Special:Log/rights]]}}",
        "logentry-rights-autopromote": "* $1 - username\n* $2 - (see below)\n* $3 - (see below)\n* $4 - comma separated list of old user groups or {{msg-mw|Rightsnone}}\n* $5 - comma separated list of new user groups\n----\n{{Logentry|[[Special:Log/rights]]}}",
+       "logentry-upload-upload": "{{Logentry|[[Special:Log/upload]]}}",
+       "logentry-upload-overwrite": "{{Logentry|[[Special:Log/upload]]}}",
+       "logentry-upload-revert": "{{Logentry|[[Special:Log/upload]]}}",
        "rightsnone": "Default rights for registered users.\n\n{{Identical|None}}",
        "revdelete-logentry": "{{RevisionDelete}}\nThis is the message for the log entry in [[Special:Log/delete]] when changing visibility restrictions for page revisions.\n\nFollowed by the message {{msg-mw|revdelete-log-message}} in brackets.\n\nPreceded by the name of the user doing this task.\n\nParameters:\n* $1 - the page name\nSee also:\n* {{msg-mw|Logdelete-logentry}}",
        "logdelete-logentry": "{{RevisionDelete}}\nThis is the message for the log entry in [[Special:Log/delete]] when changing visibility restrictions for log events.\n\nFollowed by the message {{msg-mw|logdelete-log-message}} in brackets.\n\nPreceded by the name of the user who did this task.\n\nParameters:\n* $1 - the log name in brackets\nSee also:\n* {{msg-mw|Revdelete-logentry}}",
        "action-pagelang": "{{Doc-action|pagelang}}",
        "log-name-pagelang": "Display entry for log name for changes in page language in Special:Log.",
        "log-description-pagelang": "Display description for log name for changes in page language in Special:Log.",
-       "logentry-pagelang-pagelang": "{{Logentry}}\nAdditional parameters:\n* $4 - old language code, or \"[def]\" (hard-coded)\n* $5 - new language code, or \"[def]\" (hard-coded)"
+       "logentry-pagelang-pagelang": "{{Logentry}}\nAdditional parameters:\n* $4 - old language code, or \"[def]\" (hard-coded)\n* $5 - new language code, or \"[def]\" (hard-coded)",
+       "default-skin-not-found": "Message shown when the default skin for this MediaWiki installation can not be found.\n\nParameters:\n* $1: skin identifier for the default skin\n* $2: list of installed skins, composed using {{msg-mw|default-skin-not-found-row-enabled}} and {{msg-mw|default-skin-not-found-row-disabled}}\n* $3: code snippet to use to enable installed skins",
+       "default-skin-not-found-no-skins": "Message shown when the default skin for this MediaWiki installation can not be found and the installation has no skins at all.\n\nParameters:\n* $1: name of the default skin",
+       "default-skin-not-found-row-enabled": "One row of the list of installed skins shown as a part of {{msg-mw|default-skin-not-found}}, for an enabled skin.\n\nParameters:\n* $1: skin identifier\n$2: human-readable skin name",
+       "default-skin-not-found-row-disabled": "One row of the list of installed skins shown as a part of {{msg-mw|default-skin-not-found}}, for a disabled skin.\n\nParameters:\n* $1: skin identifier\n$2: human-readable skin name"
 }
index 8c084e4..1f6c368 100644 (file)
        "uploadwarning": "Avertizare la trimiterea fișierului",
        "uploadwarning-text": "Vă rugăm să modificați descrierea fișierului mai jos și să încercați din nou.",
        "savefile": "Salvează fișierul",
-       "uploadedimage": "a trimis [[$1]]",
-       "overwroteimage": "încărcat o versiune nouă a fișierului \"[[$1]]\"",
        "uploaddisabled": "Ne pare rău, trimiterea de imagini este dezactivată.",
        "copyuploaddisabled": "Trimiterea prin URL este dezactivată.",
        "uploaddisabledtext": "Încărcările de fișiere sunt dezactivate.",
        "logentry-rights-rights": "$1 {{GENDER:$2|a schimbat}} apartenența la grup pentru $3 de la $4 la $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|a schimbat}} apartenența la grup pentru $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|a fost promovat|a fost promovată}} în mod automat de la $4 la $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|a încărcat}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|a încărcat}} o nouă versiune pentru $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|a încărcat}} $3",
        "rightsnone": "(niciunul)",
        "feedback-bugornote": "Dacă sunteți pregătit să descrieți o problemă tehnică în detaliu vă rugăm să [$1 raportați un bug].\nÎn caz contrar, puteți utiliza formularul de mai jos. Comentariul dumneavoastră va fi adăugat pe pagina „[$3 $2]”, împreună cu numele de utilizator și numele navigatorului pe care îl folosiți.",
        "feedback-subject": "Subiect:",
index 4c817bb..725c9f3 100644 (file)
        "uploadwarning": "Предупреждение",
        "uploadwarning-text": "Пожалуйста, измените представленное ниже описание файла и попробуйте ещё раз.",
        "savefile": "Записать файл",
-       "uploadedimage": "загрузил «[[$1]]»",
-       "overwroteimage": "загружена новая версия «[[$1]]»",
        "uploaddisabled": "Загрузка запрещена",
        "copyuploaddisabled": "Загрузка по URL отключена.",
        "uploaddisabledtext": "Загрузка файлов отключена.",
        "logentry-rights-rights": "$1 {{GENDER:$2|изменил|изменила}} членство в группах для $3 с $4 на $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|изменил|изменила}} членство в группах для $3",
        "logentry-rights-autopromote": "$1 был{{GENDER:$2||а}} автоматически переведен{{GENDER:$2||а}} из $4 в $5",
+       "logentry-upload-upload": "$1 загрузил{{GENDER:$2||а}} $3",
+       "logentry-upload-overwrite": "$1 загрузил{{GENDER:$2||а}} новую версию $3",
+       "logentry-upload-revert": "$1 загрузил{{GENDER:$2||а}} $3",
        "rightsnone": "(нет)",
        "feedback-bugornote": "Если вы готовы подробно описать техническую проблему, пожалуйста, [$1 сообщите об ошибке].\nВ противном случае вы можете использовать данную простую форму. Ваш комментарий будет добавлен на страницу «[$3 $2]» вместе с вашим именем участника и используемым браузером.",
        "feedback-subject": "Тема:",
index 613b3b9..b7628cc 100644 (file)
        "badfilename": "Su nùmene de su file est stadu cunvertidu in \"$1\".",
        "uploadwarning": "Avvisu de carrigamentu",
        "savefile": "Sarva file",
-       "uploadedimage": "carrigadu \"[[$1]]\"",
        "upload-source": "File de orìgine",
        "sourcefilename": "Nùmene de su file de orìgine:",
        "sourceurl": "Diretzione originària:",
index b0a5806..7b28fe6 100644 (file)
        "uploadwarning": "Opozorilo!",
        "uploadwarning-text": "Prosimo, spremenite opis datoteke spodaj in poskusite ponovno.",
        "savefile": "Shrani datoteko",
-       "uploadedimage": "je naložil(-a) datoteko »[[$1]]«",
-       "overwroteimage": "je naložil(-a) novo različico datoteke »[[$1]]«",
        "uploaddisabled": "Nalaganje je onemogočeno",
        "copyuploaddisabled": "Nalaganje preko URL je onemogočeno",
        "uploaddisabledtext": "Nalaganje datotek je onemogočeno.",
        "logentry-rights-rights": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} uporabniške pravice uporabnika $3 z $4 na $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} uporabniške pravice uporabnika $3",
        "logentry-rights-autopromote": "$1 je {{GENDER:$2|bil samodejno povišan|bila samodejno povišana|bil(-a) samodejno povišan(-a)}} z $4 na $5",
+       "logentry-upload-upload": "$1 je {{GENDER:$2|naložil|naložila|naložil(-a)}} $3",
+       "logentry-upload-overwrite": "$1 je {{GENDER:$2|naložil|naložila|naložil(-a)}} novo različico $3",
+       "logentry-upload-revert": "$1 je {{GENDER:$2|naložil|naložila|naložil(-a)}} $3",
        "rightsnone": "(nobeno)",
        "feedback-bugornote": "Če ste pripravljeni podrobno opisati tehnično težavo, vložite [$1 poročilo o hrošču].\nV nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bomo dodali na stran »[$3 $2]«, skupaj z vašim uporabniškim imenom in podatkom o brskalniku, ki ga uporabljate.",
        "feedback-subject": "Zadeva:",
index 0ddcb6d..3c2042a 100644 (file)
        "uploadwarning": "Упозорење при отпремању",
        "uploadwarning-text": "Измените опис датотеке и покушајте поново.",
        "savefile": "Сачувај датотеку",
-       "uploadedimage": "је послао „[[$1]]“",
-       "overwroteimage": "је послао нову верзију датотеке „[[$1]]“",
        "uploaddisabled": "Отпремање је онемогућено.",
        "copyuploaddisabled": "Слање путем URL адресе је онемогућено.",
        "uploaddisabledtext": "Отпремање датотека је онемогућено.",
index b18a1c6..8debeab 100644 (file)
        "uploadwarning": "Upozorenje pri otpremanju",
        "uploadwarning-text": "Izmenite opis datoteke i pokušajte ponovo.",
        "savefile": "Sačuvaj datoteku",
-       "uploadedimage": "je poslao „[[$1]]“",
-       "overwroteimage": "je poslao novu verziju datoteke „[[$1]]“",
        "uploaddisabled": "Otpremanje je onemogućeno.",
        "copyuploaddisabled": "Slanje putem URL adrese je onemogućeno.",
        "uploaddisabledtext": "Otpremanje datoteka je onemogućeno.",
index f4e8b82..e17791e 100644 (file)
        "uploadwarning": "Uppladdningsvarning",
        "uploadwarning-text": "Var god och ändra filbeskrivningen nedanför och försök igen.",
        "savefile": "Spara fil",
-       "uploadedimage": "laddade upp \"[[$1]]\"",
-       "overwroteimage": "laddade upp ny version av \"[[$1]]\"",
        "uploaddisabled": "Uppladdningsfunktionen är avstängd",
        "copyuploaddisabled": "Uppladdning med URL avstängt.",
        "uploaddisabledtext": "Uppladdning av filer är avstängd.",
        "logentry-rights-rights": "$1 {{GENDER:$2|ändrade}} gruppmedlemskapet för $3 från $4 till $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|ändrade}} gruppmedlemskapet för $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|befordrades}} automatiskt från $4 till $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|laddade upp}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|laddade upp}} en ny version av $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|laddade upp}} $3",
        "rightsnone": "(inga)",
        "feedback-bugornote": "Om du är redo att beskriva ett tekniskt problem detaljerat, var god [$1 rapporterar en bugg].\nAnnars kan du använda det enkla formuläret nedan. Din kommentar kommer att läggas till på sidan \"[$3 $2]\", tillsammans med ditt användarnamn och vilken webbläsare du använder.",
        "feedback-subject": "Ämne:",
index 61e3cf9..8aa5a8b 100644 (file)
        "file-deleted-duplicate": "Identyczny plik jak tyn plik ([[:$1]]) zostoł wyćepany. Sprowdź historyja wyćepań tamtygo plika ńim wćepńesz go nazod.",
        "uploadwarning": "Uostřežyńe uo wćepywańu",
        "savefile": "Spamjyntej plik",
-       "uploadedimage": "wćepano \"[[$1]]\"",
-       "overwroteimage": "wćepano nowszo wersyjo \"[[$1]]\"",
        "uploaddisabled": "Wćepywanie sam plikůw je zawarte",
        "uploaddisabledtext": "Wćepywańe plikůw je zawarte.",
        "uploadscripted": "Tyn plik zawjyro kod HTML abo skrypt kery može zostać felerńe zinterpretowany bez přyglůndarka internetowo.",
index 9698a35..9063d93 100644 (file)
        "uploadwarning": "பதிவேற்றல் எச்சரிக்கை",
        "uploadwarning-text": "கீழுள்ள கோப்புச் சுருக்கத்தை மாற்றி விட்டு மீண்டும் சமர்ப்பியுங்கள்",
        "savefile": "கோப்பைச் சேமி",
-       "uploadedimage": "\"[[$1]]\" பதிவேற்றப்பட்டது",
-       "overwroteimage": "\"[[$1]]\" கோப்பின் புதிய பதிப்பை பதிவேற்று",
        "uploaddisabled": "பதிவேற்றம் செயலிழக்கச் செய்யப்பட்டுள்ளது",
        "copyuploaddisabled": "URL வழியாக தகவலேற்றல் முடக்கப்பட்டுள்ளது.",
        "uploaddisabledtext": "கோப்பு பதிவேற்றங்கள் செயலிழக்கச் செய்யப்பட்டுள்ளன.",
index 031cbfa..6912e85 100644 (file)
        "uploadwarning": "คำเตือนการอัปโหลด",
        "uploadwarning-text": "กรุณาแก้ไขคำอธิบายไฟล์ด้านล่างนี้ แล้วลองใหม่อีกครั้ง",
        "savefile": "บันทึกไฟล์",
-       "uploadedimage": "อัปโหลด \"[[$1]]\"",
-       "overwroteimage": "อัปโหลดรุ่นใหม่ของ \"[[$1]]\"",
        "uploaddisabled": "ปิดใช้งานการอัปโหลด",
        "copyuploaddisabled": "ปิดใช้งานการอัปโหลดโดยยูอาร์แอล",
        "uploaddisabledtext": "ปิดใช้งานการอัปโหลดไฟล์",
index 9ba8e9f..5875525 100644 (file)
        "versionrequiredtext": "Bu sayfayı kullanmak için MediaWiki'nin $1 sürümü gerekmektedir. [[Special:Version|Sürüm sayfasına]] bakınız.",
        "ok": "Tamam",
        "pagetitle-view-mainpage": "{{SITENAME}}",
+       "backlinksubtitle": "←$1",
        "retrievedfrom": "\"$1\" adresinden alındı.",
        "youhavenewmessages": "$1 {{PLURAL:$3|var}} ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$3|Başka bir kullanıcıdan|$3 kullanıcıdan}} $1 var ($2).",
        "uploadwarning": "Yükleme uyarısı",
        "uploadwarning-text": "Lütfen aşağıdaki dosya açıklamasını değiştirin ve tekrar deneyin.",
        "savefile": "Dosyayı kaydet",
-       "uploadedimage": "Yüklenen: \"[[$1]]\"",
-       "overwroteimage": "\"[[$1]]\" resminin yeni sürümü yüklenmiştir",
        "uploaddisabled": "Geçici olarak şu anda herhangi bir dosya yüklenmez. Biraz sonra bir daha deneyiniz.",
        "copyuploaddisabled": "URL ile yükleme devre dışı.",
        "uploaddisabledtext": "Dosya yüklemeleri devredışı bırakılmıştır.",
index b160dac..bc12336 100644 (file)
        "nocookiesforlogin": "{{int:nocookieslogin}}",
        "noname": "Ви зазначили неправильне ім'я користувача.",
        "loginsuccesstitle": "Успішний вхід до системи",
-       "loginsuccess": "'''Тепер ви працюєте {{grammar:locative|{{SITENAME}}}} під іменем $1.'''",
-       "nosuchuser": "Користувач з іменем «$1» не існує.\nІмена користувачів регістрозалежні.\nПеревірте правильність написання або скористайтеся формою нижче, щоб [[Special:UserLogin/signup|зареєструвати нового користувача]].",
-       "nosuchusershort": "Користувач з іменем $1 не існує.\nПеревірте правильність написання імені.",
+       "loginsuccess": "'''Тепер ви працюєте в {{grammar:locative|{{SITENAME}}}} під іменем $1.'''",
+       "nosuchuser": "Користувача з іменем «$1» не існує.\nВ іменах користувачів розрізняються великі і малі символи.\nПеревірте правильність написання або скористайтеся формою нижче, щоб [[Special:UserLogin/signup|зареєструвати нового користувача]].",
+       "nosuchusershort": "Користувача з іменем $1 не існує.\nПеревірте правильність написання імені.",
        "nouserspecified": "Ви повинні зазначити ім'я користувача.",
        "login-userblocked": "Цей користувач заблокований. Вхід в систему не дозволений.",
        "wrongpassword": "Ви ввели хибний пароль. Спробуйте ще раз.",
        "wrongpasswordempty": "Ви не ввели пароль. Будь ласка, спробуйте ще раз.",
        "passwordtooshort": "Ваш пароль закороткий, він має містити принаймні $1 {{PLURAL:$1|символ|символи|символів}}.",
-       "password-name-match": "Уведений пароль має відрізнятися від імені користувача.",
+       "password-name-match": "Ð\92аÑ\88 пароль має відрізнятися від імені користувача.",
        "password-login-forbidden": "Використання цього імені користувача і пароля заборонено.",
        "mailmypassword": "Перевстановити пароль",
-       "passwordremindertitle": "Ð\9fам'Ñ\8fÑ\82ка Ð¿Ð°Ñ\80олÑ\8f ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87а {{grammar:genitive|{{SITENAME}}}}",
-       "passwordremindertext": "Хтось (можливо, ви, з IP-адреси $1) зробив запит\nна надсилання вам нового пароля користувача {{grammar:genitive|{{SITENAME}}}} ($4). Для користувача\n«$2» створено новий пароль: <code>$3</code>. Якщо це зробили ви,\nто вам слід увійти до системи, ввівши новий пароль.\nВаш тимчасовий пароль втратить силу через {{PLURAL:$5|$5 день|$5 дні|$5 днів}}.\n\nЯкщо ви не надсилали запиту на зміну пароля або якщо ви вже згадали свій пароль\nі не хочете його змінювати, ви можете ігнорувати це повідомлення і\nпродовжувати використовувати свій старий пароль.",
-       "noemail": "Для користувача \"$1\" не вказано адресу електронної пошти.",
+       "passwordremindertitle": "Ð\9dовий Ñ\82имÑ\87аÑ\81овий Ð¿Ð°Ñ\80олÑ\8c Ð´Ð»Ñ\8f {{grammar:genitive|{{SITENAME}}}}",
+       "passwordremindertext": "Хтось (можливо ви, з IP-адреси $1) зробив запит на новий пароль для {{grammar:genitive|{{SITENAME}}}} ($4). Для користувача «$2» створено новий пароль: <code>$3</code>. Якщо це зробили ви, то вам слід увійти до системи, ввівши новий пароль.\nВаш тимчасовий пароль втратить силу через {{PLURAL:$5|$5 день|$5 дні|$5 днів}}.\n\nЯкщо ви не надсилали запиту на зміну пароля або якщо ви вже згадали свій пароль і не хочете його змінювати, ви можете ігнорувати це повідомлення і продовжувати використовувати свій старий пароль.",
+       "noemail": "Для користувача \"$1\" не вказано адреси електронної пошти.",
        "noemailcreate": "Вам треба вказати правильну адресу електронної пошти",
        "passwordsent": "Новий пароль був надісланий на адресу електронної пошти, зазначену для \"$1\".\nБудь ласка, ввійдіть до системи після отримання пароля.",
-       "blocked-mailpassword": "Редагування з вашої IP-адреси заборонено, заблокована також функція відновлення пароля.",
-       "eauthentsent": "На вказану адресу електронної пошти відправлено лист.\nЩоб отримувати листи надалі, дотримуйтесь викладених там інструкцій для підтвердження того, що ця адреса належить вам.",
-       "throttled-mailpassword": "Ð\86нÑ\81Ñ\82Ñ\80Ñ\83кÑ\86Ñ\96Ñ\8f Ð¿Ð¾ Ð²Ñ\96дновленнÑ\8e Ð¿Ð°Ñ\80олÑ\8e Ð²Ð¶Ðµ Ð±Ñ\83ла Ð²Ð¸Ñ\81лана ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ð¿Ð¾Ñ\88Ñ\82оÑ\8e Ð¿Ñ\80оÑ\82Ñ\8fгом {{PLURAL:$1|1=оÑ\81Ñ\82аннÑ\8cоÑ\97 Ð³Ð¾Ð´Ð¸Ð½Ð¸|оÑ\81Ñ\82аннÑ\96Ñ\85 $1 Ð³Ð¾Ð´Ð¸Ð½}}.\nÐ\94лÑ\8f Ð¿Ð¾Ð¿ÐµÑ\80едженнÑ\8f Ð·Ð»Ð¾Ð²Ð¶Ð¸Ð²Ð°Ð½Ñ\8c Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ Ð½Ð°Ð´Ñ\81илаÑ\82и Ñ\82Ñ\96лÑ\8cки Ð¾Ð´Ð½Ñ\83 Ñ\96нÑ\81Ñ\82Ñ\80Ñ\83кÑ\86Ñ\96Ñ\8e за {{PLURAL:$1|годину|$1 години|$1 годин}}.",
-       "mailerror": "Ð\9fомилка Ð¿Ñ\80и Ð²Ñ\96дпÑ\80авÑ\86Ñ\96 пошти: $1",
+       "blocked-mailpassword": "Редагування з вашої IP-адреси заборонено, заблокована також функція відновлення пароля, щоб запобігти зловживанням.",
+       "eauthentsent": "На вказану адресу електронної пошти відправлено лист підтвердження.\nЩоб отримувати надалі будь-які повідомлення, необхідно підтвердити, що обліковий рахунок належить справді вам, за процедурою, описаною в листі.",
+       "throttled-mailpassword": "Ð\9bиÑ\81Ñ\82а Ð´Ð»Ñ\8f Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ\8f Ð¿Ð°Ñ\80олÑ\8f Ð²Ð¶Ðµ Ð±Ñ\83ло Ð½Ð°Ð´Ñ\96Ñ\81лано ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ð¿Ð¾Ñ\88Ñ\82оÑ\8e Ð¿Ñ\80оÑ\82Ñ\8fгом {{PLURAL:$1|1=оÑ\81Ñ\82аннÑ\8cоÑ\97 Ð³Ð¾Ð´Ð¸Ð½Ð¸|оÑ\81Ñ\82аннÑ\96Ñ\85 $1 Ð³Ð¾Ð´Ð¸Ð½}}.\nÐ\94лÑ\8f Ð¿Ð¾Ð¿ÐµÑ\80едженнÑ\8f Ð·Ð»Ð¾Ð²Ð¶Ð¸Ð²Ð°Ð½Ñ\8c Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ Ð½Ð°Ð´Ñ\81илаÑ\82и Ñ\82Ñ\96лÑ\8cки Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ð»Ð¸Ñ\81Ñ\82а Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ\8f Ð¿Ð°Ñ\80олÑ\8f за {{PLURAL:$1|годину|$1 години|$1 годин}}.",
+       "mailerror": "Ð\9fомилка Ð½Ð°Ð´Ñ\81иланнÑ\8f пошти: $1",
        "acct_creation_throttle_hit": "Відвідувачі з вашої IP-адреси вже створили $1 {{PLURAL:$1|обліковий запис|облікових записи|облікових записів}} за останню добу, що є максимумом для цього відрізка часу.\nТаким чином, користувачі з цієї IP-адреси не можуть на цей момент створювати нових облікових записів.",
        "emailauthenticated": "Вашу адресу електронної пошти було підтверджено на  $2  о  $3.",
-       "emailnotauthenticated": "Ð\90дÑ\80еÑ\81Ñ\83 Ð²Ð°Ñ\88оÑ\97 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ñ\89е Ð½Ðµ Ð¿Ñ\96дÑ\82веÑ\80джено. Ð\96одна Ð»Ð¸Ñ\81Ñ\82 Ð½Ðµ Ð±Ñ\83де Ð½Ð°Ð´Ñ\96Ñ\81лано Ð´Ð»Ñ\8f Ð±Ñ\83дÑ\8c\8fкоÑ\97 Ð· Ð½Ð°Ñ\81Ñ\82Ñ\83пниÑ\85 Ñ\84Ñ\83нкцій.",
-       "noemailprefs": "Ð\90дÑ\80еÑ\81Ñ\83 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ð½Ðµ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾, Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97 Ð²Ñ\96кÑ\96 Ñ\80обоÑ\82и Ð· ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82оÑ\8e Ð²Ñ\96дклÑ\8eÑ\87ені.",
-       "emailconfirmlink": "Підтвердити адресу вашої електронної пошти",
-       "invalidemailaddress": "Уведена Ð°Ð´Ñ\80еÑ\81а Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±Ñ\83Ñ\82и Ð¿Ñ\80ийнÑ\8fÑ\82а, Ð±Ð¾ Ð²Ð¾Ð½Ð° Ð½Ðµ Ð²Ñ\96дповÑ\96даÑ\94 Ñ\84оÑ\80маÑ\82Ñ\83 Ð°Ð´Ñ\80еÑ\81 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и.\nБудь ласка, введіть коректну адресу або залиште поле порожнім.",
-       "cannotchangeemail": "У цій вікі не можна міняти свою адресу ел. пошти.",
-       "emaildisabled": "Цей Ñ\81айÑ\82 Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð½Ð°Ð´Ñ\96Ñ\81лати електронні листи.",
+       "emailnotauthenticated": "Ð\90дÑ\80еÑ\81Ñ\83 Ð²Ð°Ñ\88оÑ\97 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ñ\89е Ð½Ðµ Ð¿Ñ\96дÑ\82веÑ\80джено. Ð\9dадÑ\81иланнÑ\8f Ð»Ð¸Ñ\81Ñ\82Ñ\96в Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ Ñ\83 Ð¶Ð¾Ð´Ð½Ñ\96й Ð· Ð½Ð°Ñ\81Ñ\82Ñ\83пниÑ\85 Ð¾Ð¿цій.",
+       "noemailprefs": "Ð\92кажÑ\96Ñ\82Ñ\8c Ð°Ð´Ñ\80еÑ\81Ñ\83 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и, Ñ\89об Ñ\83можливиÑ\82и Ð½Ð°Ñ\81Ñ\82Ñ\83пнÑ\96 Ð¿Ð¾Ñ\88Ñ\82овÑ\96 Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97 Ð²Ñ\96кі.",
+       "emailconfirmlink": "Підтвердіть адресу вашої електронної пошти",
+       "invalidemailaddress": "Ð\92казана Ð°Ð´Ñ\80еÑ\81а Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±Ñ\83Ñ\82и Ð¿Ñ\80ийнÑ\8fÑ\82а Ñ\87еÑ\80ез Ð½ÐµÐ²Ñ\96дповÑ\96дний Ñ\84оÑ\80маÑ\82.\nБудь ласка, введіть коректну адресу або залиште поле порожнім.",
+       "cannotchangeemail": "У цій вікі не можна міняти адресу електронної пошти, закріплену за обліковим записом.",
+       "emaildisabled": "Ð\97 Ñ\86Ñ\8cого Ñ\81айÑ\82Ñ\83 Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð½Ð°Ð´Ñ\81илати електронні листи.",
        "accountcreated": "Обліковий запис створено.",
        "accountcreatedtext": "Обліковий запис користувача для [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|обговорення]]) був створений.",
        "createaccount-title": "Створення облікового запису для {{SITENAME}}",
-       "createaccount-text": "Ð¥Ñ\82оÑ\81Ñ\8c Ñ\81Ñ\82воÑ\80ив Ð¾Ð±Ð»Ñ\96ковий Ð·Ð°Ð¿Ð¸Ñ\81 Â«$2» Ð½Ð° Ñ\81еÑ\80веÑ\80Ñ\96 Ð¿Ñ\80оекÑ\82Ñ\83 {{SITENAME}} ($4) Ð· Ð¿Ð°Ñ\80олем Â«$3», Ð·Ð°Ð·Ð½Ð°Ñ\87ивÑ\88и Ð²Ð°Ñ\88Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и. Ð\92ам Ñ\81лÑ\96д Ð·Ð°Ð¹Ñ\82и Ñ\96 Ð·Ð¼Ñ\96ниÑ\82и Ð¿Ð°Ñ\80олÑ\8c.\n\nÐ\9fÑ\80оÑ\96гноруйте дане повідомлення, якщо обліковий запис було створено помилково.",
+       "createaccount-text": "Ð¥Ñ\82оÑ\81Ñ\8c Ñ\81Ñ\82воÑ\80ив Ð¾Ð±Ð»Ñ\96ковий Ð·Ð°Ð¿Ð¸Ñ\81 Â«$2» Ð½Ð° Ñ\81еÑ\80веÑ\80Ñ\96 Ð¿Ñ\80оекÑ\82Ñ\83 {{SITENAME}} ($4) Ð· Ð¿Ð°Ñ\80олем Â«$3», Ð·Ð°Ð·Ð½Ð°Ñ\87ивÑ\88и Ð²Ð°Ñ\88Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и. Ð\92ам Ñ\81лÑ\96д Ð·Ð°Ð¹Ñ\82и Ñ\96 Ð·Ð¼Ñ\96ниÑ\82и Ð¿Ð°Ñ\80олÑ\8c.\n\nÐ\86гноруйте дане повідомлення, якщо обліковий запис було створено помилково.",
        "login-throttled": "Ви зробили надто багато спроб ввійти до системи.\nБудь ласка, зачекайте $1 перед повторною спробою.",
        "login-abort-generic": "Не вдалося ввійти до системи",
        "loginlanguagelabel": "Мова: $1",
-       "suspicious-userlogout": "Ваш запит на завершення сеанса відхилений, оскільки він схожий на запит, відправлений зіпсованим веб-оглядачем або кешуючим проксі-сервером.",
-       "createacct-another-realname-tip": "Справжнє ім'я є необов'язковим.\nЯкщо ви вирішите надати його, то воно буде використовуватися для присвоєння користувачу авторства до його роботи.",
+       "suspicious-userlogout": "Ваш запит на завершення сеансу відхилений, оскільки він схожий на запит, відправлений зіпсованим веб-оглядачем або кешуючим проксі-сервером.",
+       "createacct-another-realname-tip": "Справжнє ім'я є необов'язковим.\nЯкщо ви вирішите надати його, воно буде використовуватись для позначення редагувань та інших дій користувача.",
        "pt-login": "Увійти",
        "pt-login-button": "Вхід",
        "pt-createaccount": "Створити обліковий запис",
        "pt-userlogout": "Вийти",
        "php-mail-error-unknown": "Невідома помилка в PHP-функції mail()",
-       "user-mail-no-addy": "СпÑ\80оба Ð½Ð°Ð´Ñ\81иланнÑ\8f ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ð±ÐµÐ· Ð·Ð°Ð·Ð½Ð°Ñ\87еноÑ\97 Ð°Ð´Ñ\80еÑ\81и ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и.",
+       "user-mail-no-addy": "СпÑ\80оба Ð½Ð°Ð´Ñ\81иланнÑ\8f ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ð±ÐµÐ· Ð·Ð°Ð·Ð½Ð°Ñ\87еннÑ\8f Ð°Ð´Ñ\80еÑ\81и.",
        "user-mail-no-body": "Спроба надіслати електронного листа з порожнім або надто коротким вмістом.",
        "changepassword": "Змінити пароль",
        "resetpass_announce": "Для завершення входу ви повинні встановити новий пароль.",
        "oldpassword": "Старий пароль:",
        "newpassword": "Новий пароль:",
        "retypenew": "Ще раз введіть новий пароль:",
-       "resetpass_submit": "Установити пароль і ввійти",
+       "resetpass_submit": "Ð\92становити пароль і ввійти",
        "changepassword-success": "Ваш пароль успішно змінено!",
        "changepassword-throttled": "Ви нещодавно зробили надто багато спроб ввійти до системи.\nБудь ласка, зачекайте $1 перед повторною спробою.",
-       "resetpass_forbidden": "Пароль не можна змінювати",
+       "resetpass_forbidden": "Пароль не можна змінити",
        "resetpass-no-info": "Щоб звертатися безпосередньо до цієї сторінки, вам слід увійти до системи.",
        "resetpass-submit-loggedin": "Змінити пароль",
        "resetpass-submit-cancel": "Скасувати",
        "resetpass-expired-soft": "Термін дії вашого пароля закінчився, і тепер він повинен бути змінений. Будь ласка, виберіть новий пароль або натисніть \"{{int:resetpass-submit-cancel}}\", щоб змінити його пізніше.",
        "resetpass-validity-soft": "Ваш пароль є некоректним: $1\n\nБудь ласка, виберіть новий пароль або натисніть «{{int:resetpass-submit-cancel}}», щоб скинути його пізніше.",
        "passwordreset": "Скинути пароль",
-       "passwordreset-text-one": "Заповніть цю форму для відновлення пароля.",
-       "passwordreset-text-many": "{{PLURAL:$1|Ð\97аповнÑ\96Ñ\82Ñ\8c Ð¾Ð´Ð½Ðµ Ð· Ð¿Ð¾Ð»Ñ\96в Ð´Ð»Ñ\8f Ð¾Ñ\82Ñ\80иманнÑ\8f Ñ\82имÑ\87аÑ\81ового Ð¿Ð°Ñ\80олÑ\8e Ñ\87еÑ\80ез ÐµÐ»ÐµÐºÑ\82Ñ\80оннÑ\83 Ð¿Ð¾Ñ\88Ñ\82Ñ\83.}}",
+       "passwordreset-text-one": "Заповніть цю форму, щоб отримати тимчасовий пароль електронною поштою.",
+       "passwordreset-text-many": "{{PLURAL:$1|Ð\97аповнÑ\96Ñ\82Ñ\8c Ð¾Ð´Ð½Ðµ Ð· Ð¿Ð¾Ð»Ñ\96в Ð´Ð»Ñ\8f Ð¾Ñ\82Ñ\80иманнÑ\8f Ñ\82имÑ\87аÑ\81ового Ð¿Ð°Ñ\80олÑ\8f ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ð¿Ð¾Ñ\88Ñ\82оÑ\8e.}}",
        "passwordreset-legend": "Перевстановити пароль",
        "passwordreset-disabled": "У цій вікі вимкнена можливість скидання пароля.",
-       "passwordreset-emaildisabled": "ФÑ\83нкÑ\86Ñ\96Ñ\97 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ð²Ð¸Ð¼ÐºÐ½Ñ\83Ñ\82о Ð² Ñ\86Ñ\96й Ð²Ñ\96кÑ\96.",
+       "passwordreset-emaildisabled": "Ð\92 Ñ\86Ñ\96й Ð²Ñ\96кÑ\96 Ð²Ð¸Ð¼ÐºÐ½Ñ\83Ñ\82о Ð¤Ñ\83нкÑ\86Ñ\96Ñ\97 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и.",
        "passwordreset-username": "Ім'я користувача:",
        "passwordreset-domain": "Домен:",
        "passwordreset-capture": "Продивитись результуючий електронний лист?",
-       "passwordreset-capture-help": "ЯкÑ\89о Ð\92и Ð²Ñ\81Ñ\82ановиÑ\82е Ð²Ñ\96дмÑ\96Ñ\82кÑ\83, Ð\92ам Ð±Ñ\83де Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¸Ð¹ ÐµÐ»ÐµÐºÑ\82Ñ\80онний Ð»Ð¸Ñ\81Ñ\82 (Ñ\96з Ñ\82имÑ\87аÑ\81овим Ð¿Ð°Ñ\80олем), Ñ\8fкий Ð±Ñ\83де Ð²Ñ\96дпÑ\80авлений користувачеві.",
+       "passwordreset-capture-help": "ЯкÑ\89о Ð²Ð¸ Ð·Ñ\80обиÑ\82е Ð¿Ð¾Ð¼Ñ\96Ñ\82кÑ\83 Ñ\83 Ð²Ñ\96конÑ\86Ñ\96, Ð²Ð°Ð¼ Ð±Ñ\83де Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¸Ð¹ ÐµÐ»ÐµÐºÑ\82Ñ\80онний Ð»Ð¸Ñ\81Ñ\82 (Ñ\96з Ñ\82имÑ\87аÑ\81овим Ð¿Ð°Ñ\80олем), Ñ\8fкий Ñ\82акож Ð±Ñ\83де Ð½Ð°Ð´Ñ\96Ñ\81ланий користувачеві.",
        "passwordreset-email": "Адреса електронної пошти:",
        "passwordreset-emailtitle": "Деталі облікового запису на {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Ð¥Ñ\82оÑ\81Ñ\8c (Ñ\96мовÑ\96Ñ\80но Ð\92и, Ð· IP-адÑ\80еÑ\81и $1) Ð¿Ð¾Ð¿Ñ\80оÑ\81ив Ð½Ð°Ð³Ð°Ð´Ð°Ñ\82и Ð´ÐµÑ\82алÑ\96 Ð\92аÑ\88ого Ð¾Ð±Ð»Ñ\96кового Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83 Ð´Ð»Ñ\8f {{SITENAME}} ($4). Ð\97 Ð\92аÑ\88оÑ\8e ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ñ\81кÑ\80инÑ\8cкоÑ\8e Ð¿Ð¾Ð²'Ñ\8fзан{{PLURAL:$3|1=ий Ñ\82акий Ð·Ð°Ð¿Ð¸Ñ\81\96 Ñ\82акÑ\96 Ð·Ð°Ð¿Ð¸Ñ\81и}}:\n\n$2\n\n{{PLURAL:$3|1=Цей Ñ\82имÑ\87аÑ\81овий Ð¿Ð°Ñ\80олÑ\8c Ñ\81Ñ\82ане Ð½ÐµÐ´Ñ\96йÑ\81ним|ЦÑ\96 Ñ\82имÑ\87аÑ\81овÑ\96 Ð¿Ð°Ñ\80олÑ\96 Ñ\81Ñ\82анÑ\83Ñ\82Ñ\8c Ð½ÐµÐ´Ñ\96йÑ\81ними}} Ñ\87еÑ\80ез $5 {{PLURAL:$5|денÑ\8c|днÑ\96|днÑ\96в}}.\nÐ\92и Ð¼Ð°Ñ\94Ñ\82е Ð²Ð²Ñ\96йÑ\82и Ð² Ñ\81иÑ\81Ñ\82емÑ\83 Ñ\96 Ð²Ð¸Ð±Ñ\80аÑ\82и Ð½Ð¾Ð²Ð¸Ð¹ Ð¿Ð°Ñ\80олÑ\8c. Ð¯ÐºÑ\89о Ð¶ Ñ\86ей Ð·Ð°Ð¿Ð¸Ñ\82 Ð·Ñ\80обив Ñ\85Ñ\82оÑ\81Ñ\8c Ñ\96нÑ\88ий, Ð°Ð±Ð¾ Ð\92и Ð¿Ð°Ð¼'Ñ\8fÑ\82аÑ\94Ñ\82е Ñ\81вÑ\96й Ñ\81Ñ\82аÑ\80ий Ð¿Ð°Ñ\80олÑ\8c Ñ\96 Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð¹Ð¾Ð³Ð¾ Ð·Ð¼Ñ\96нÑ\8eваÑ\82и, Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿Ñ\80оÑ\81Ñ\82о Ð¿Ñ\80оігнорувати це повідомлення та продовжувати використовувати старий пароль.",
-       "passwordreset-emailtext-user": "Ð\9aоÑ\80иÑ\81Ñ\82Ñ\83ваÑ\87 $1 Ð· {{SITENAME}} Ð¿Ð¾Ð¿Ñ\80оÑ\81ив Ð½Ð°Ð³Ð°Ð´Ð°Ñ\82и Ð´ÐµÑ\82алÑ\96 Ð\92аÑ\88ого Ð¾Ð±Ð»Ñ\96кового Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83 Ð´Ð»Ñ\8f {{SITENAME}} ($4). Ð\97 Ð\92аÑ\88оÑ\8e ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ñ\81кÑ\80инÑ\8cкоÑ\8e Ð¿Ð¾Ð²'Ñ\8fзан{{PLURAL:$3|1=ий Ñ\82акий Ð·Ð°Ð¿Ð¸Ñ\81\96 Ñ\82акÑ\96 Ð·Ð°Ð¿Ð¸Ñ\81и}}:\n\n$2\n\n{{PLURAL:$3|1=Цей Ñ\82имÑ\87аÑ\81овий Ð¿Ð°Ñ\80олÑ\8c|ЦÑ\96 Ñ\82имÑ\87аÑ\81овÑ\96 Ð¿Ð°Ñ\80олÑ\96}} Ñ\81Ñ\82анÑ\83Ñ\82Ñ\8c Ð½ÐµÑ\87иннÑ\96 Ñ\87еÑ\80ез {{PLURAL:$5|денÑ\8c|$5 Ð´Ð½Ñ\96|$5 Ð´Ð½Ñ\96в}}.\nÐ\92и Ð¼Ð°Ñ\94Ñ\82е Ð²Ð²Ñ\96йÑ\82и Ð² Ñ\81иÑ\81Ñ\82емÑ\83 Ñ\96 Ð²Ð¸Ð±Ñ\80аÑ\82и Ð½Ð¾Ð²Ð¸Ð¹ Ð¿Ð°Ñ\80олÑ\8c. Ð¯ÐºÑ\89о Ð¶ Ñ\86ей Ð·Ð°Ð¿Ð¸Ñ\82 Ð·Ñ\80обив Ñ\85Ñ\82оÑ\81Ñ\8c Ñ\96нÑ\88ий, Ð°Ð±Ð¾ Ð\92и Ð¿Ð°Ð¼'Ñ\8fÑ\82аÑ\94Ñ\82е Ñ\81вÑ\96й Ñ\81Ñ\82аÑ\80ий Ð¿Ð°Ñ\80олÑ\8c Ñ\96 Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð¹Ð¾Ð³Ð¾ Ð·Ð¼Ñ\96нÑ\8eваÑ\82и, Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿Ñ\80оÑ\81Ñ\82о Ð¿Ñ\80оігнорувати це повідомлення та продовжувати використовувати старий пароль.",
+       "passwordreset-emailtext-ip": "Ð¥Ñ\82оÑ\81Ñ\8c (Ñ\96мовÑ\96Ñ\80но Ð²Ð¸, Ð· IP-адÑ\80еÑ\81и $1) Ð¿Ð¾Ð¿Ñ\80оÑ\81ив Ð½Ð°Ð³Ð°Ð´Ð°Ñ\82и Ð´ÐµÑ\82алÑ\96 Ð²Ð°Ñ\88ого Ð¾Ð±Ð»Ñ\96кового Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83 Ð´Ð»Ñ\8f {{SITENAME}} ($4). Ð\97 Ð²Ð°Ñ\88оÑ\8e ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ñ\81кÑ\80инÑ\8cкоÑ\8e Ð¿Ð¾Ð²'Ñ\8fзан{{PLURAL:$3|1=ий Ñ\82акий Ð·Ð°Ð¿Ð¸Ñ\81\96 Ñ\82акÑ\96 Ð·Ð°Ð¿Ð¸Ñ\81и}}:\n\n$2\n\n{{PLURAL:$3|1=Цей Ñ\82имÑ\87аÑ\81овий Ð¿Ð°Ñ\80олÑ\8c Ñ\81Ñ\82ане Ð½ÐµÐ´Ñ\96йÑ\81ним|ЦÑ\96 Ñ\82имÑ\87аÑ\81овÑ\96 Ð¿Ð°Ñ\80олÑ\96 Ñ\81Ñ\82анÑ\83Ñ\82Ñ\8c Ð½ÐµÐ´Ñ\96йÑ\81ними}} Ñ\87еÑ\80ез $5 {{PLURAL:$5|денÑ\8c|днÑ\96|днÑ\96в}}.\nÐ\92и Ð¼Ð°Ñ\94Ñ\82е Ð²Ð²Ñ\96йÑ\82и Ð² Ñ\81иÑ\81Ñ\82емÑ\83 Ñ\96 Ð²Ð¸Ð±Ñ\80аÑ\82и Ð½Ð¾Ð²Ð¸Ð¹ Ð¿Ð°Ñ\80олÑ\8c. Ð¯ÐºÑ\89о Ð¶ Ñ\86ей Ð·Ð°Ð¿Ð¸Ñ\82 Ð·Ñ\80обив Ñ\85Ñ\82оÑ\81Ñ\8c Ñ\96нÑ\88ий Ð°Ð±Ð¾ Ð²Ð¸ Ð·Ð³Ð°Ð´Ð°Ð»Ð¸ Ñ\81вÑ\96й Ñ\81Ñ\82аÑ\80ий Ð¿Ð°Ñ\80олÑ\8c Ñ\96 Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð¹Ð¾Ð³Ð¾ Ð·Ð¼Ñ\96нÑ\8eваÑ\82и, Ð¼Ð¾Ð¶ÐµÑ\82е ігнорувати це повідомлення та продовжувати використовувати старий пароль.",
+       "passwordreset-emailtext-user": "Ð\9aоÑ\80иÑ\81Ñ\82Ñ\83ваÑ\87 $1 Ð· {{SITENAME}} Ð¿Ð¾Ð¿Ñ\80оÑ\81ив Ð½Ð°Ð³Ð°Ð´Ð°Ñ\82и Ð´ÐµÑ\82алÑ\96 Ð²Ð°Ñ\88ого Ð¾Ð±Ð»Ñ\96кового Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83 Ð´Ð»Ñ\8f {{SITENAME}} ($4). Ð\97 Ð²Ð°Ñ\88оÑ\8e ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ñ\81кÑ\80инÑ\8cкоÑ\8e Ð¿Ð¾Ð²'Ñ\8fзан{{PLURAL:$3|1=ий Ñ\82акий Ð·Ð°Ð¿Ð¸Ñ\81\96 Ñ\82акÑ\96 Ð·Ð°Ð¿Ð¸Ñ\81и}}:\n\n$2\n\n{{PLURAL:$3|1=Цей Ñ\82имÑ\87аÑ\81овий Ð¿Ð°Ñ\80олÑ\8c|ЦÑ\96 Ñ\82имÑ\87аÑ\81овÑ\96 Ð¿Ð°Ñ\80олÑ\96}} Ñ\81Ñ\82анÑ\83Ñ\82Ñ\8c Ð½ÐµÑ\87иннÑ\96 Ñ\87еÑ\80ез {{PLURAL:$5|денÑ\8c|$5 Ð´Ð½Ñ\96|$5 Ð´Ð½Ñ\96в}}.\nÐ\92и Ð¼Ð°Ñ\94Ñ\82е Ð²Ð²Ñ\96йÑ\82и Ð² Ñ\81иÑ\81Ñ\82емÑ\83 Ñ\96 Ð²Ð¸Ð±Ñ\80аÑ\82и Ð½Ð¾Ð²Ð¸Ð¹ Ð¿Ð°Ñ\80олÑ\8c. Ð¯ÐºÑ\89о Ð¶ Ñ\86ей Ð·Ð°Ð¿Ð¸Ñ\82 Ð·Ñ\80обив Ñ\85Ñ\82оÑ\81Ñ\8c Ñ\96нÑ\88ий, Ð°Ð±Ð¾ Ð²Ð¸ Ð·Ð³Ð°Ð´Ð°Ð»Ð¸ Ñ\81вÑ\96й Ñ\81Ñ\82аÑ\80ий Ð¿Ð°Ñ\80олÑ\8c Ñ\96 Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð¹Ð¾Ð³Ð¾ Ð·Ð¼Ñ\96нÑ\8eваÑ\82и, Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿Ñ\80оÑ\81Ñ\82о ігнорувати це повідомлення та продовжувати використовувати старий пароль.",
        "passwordreset-emailelement": "Ім'я користувача: $1\nТимчасовий пароль: $2",
-       "passwordreset-emailsent": "Ð\95лекÑ\82Ñ\80онний Ð»Ð¸Ñ\81Ñ\82 Ð´Ð»Ñ\8f Ð²Ñ\96дновленнÑ\8f Ð¿Ð°Ñ\80олÑ\8f Ð²Ñ\96дпÑ\80авлений.",
-       "passwordreset-emailsent-capture": "Ð\95лекÑ\82Ñ\80онний Ð»Ð¸Ñ\81Ñ\82 Ñ\81киданнÑ\8f Ð¿Ð°Ñ\80олÑ\8e було надіслано, як показано нижче.",
+       "passwordreset-emailsent": "Ð\95лекÑ\82Ñ\80онний Ð»Ð¸Ñ\81Ñ\82 Ð´Ð»Ñ\8f Ð²Ñ\96дновленнÑ\8f Ð¿Ð°Ñ\80олÑ\8f Ð½Ð°Ð´Ñ\96Ñ\81ланий.",
+       "passwordreset-emailsent-capture": "Ð\95лекÑ\82Ñ\80онний Ð»Ð¸Ñ\81Ñ\82 Ñ\81киданнÑ\8f Ð¿Ð°Ñ\80олÑ\8f було надіслано, як показано нижче.",
        "passwordreset-emailerror-capture": "Електронний лист для відновлення пароля мав бути надісланий, як показано нижче, але його надсилання {{GENDER:$2|користувачеві|користувачці}} $1 не вдалося.",
        "changeemail": "Змінити адресу електронної пошти",
        "changeemail-header": "Зміна адреси електронної пошти",
        "changeemail-cancel": "Скасувати",
        "changeemail-throttled": "Ви зробили надто багато спроб ввійти до системи.\nБудь ласка, зачекайте $1 перед повторною спробою.",
        "resettokens": "Скидання жетонів",
-       "resettokens-text": "Ð\92и Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\81кинÑ\83Ñ\82и Ð¶ÐµÑ\82они, Ñ\89о Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ\87Ñ\83Ñ\8eÑ\82Ñ\8c Ð´Ð¾Ñ\81Ñ\82Ñ\83п Ð´Ð¾ Ð¿ÐµÐ²Ð½Ð¸Ñ\85 Ð¾Ñ\81обиÑ\81Ñ\82иÑ\85 Ð´Ð°Ð½Ð¸Ñ\85, Ð¿Ð¾Ð²'Ñ\8fзаниÑ\85 Ñ\82Ñ\83Ñ\82 Ñ\96з Ð\92аÑ\88им Ð¾Ð±Ð»Ñ\96ковим Ð·Ð°Ð¿Ð¸Ñ\81ом.\nÐ\92ам Ñ\81лÑ\96д Ñ\86е Ð·Ñ\80обиÑ\82и, Ñ\8fкÑ\89о Ð\92и Ð²Ð¸Ð¿Ð°Ð´ÐºÐ¾Ð²Ð¾ Ð¿Ð¾Ð´Ñ\96лилиÑ\81Ñ\8c Ð¶ÐµÑ\82онами Ð· ÐºÐ¸Ð¼Ð¾Ñ\81Ñ\8c, Ð°Ð±Ð¾ Ñ\8fкÑ\89о Ð\92аш обліковий запис було зламано.",
+       "resettokens-text": "Ð\92и Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\81кинÑ\83Ñ\82и Ð¶ÐµÑ\82они, Ñ\89о Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ\87Ñ\83Ñ\8eÑ\82Ñ\8c Ð´Ð¾Ñ\81Ñ\82Ñ\83п Ð´Ð¾ Ð¿ÐµÐ²Ð½Ð¸Ñ\85 Ð¾Ñ\81обиÑ\81Ñ\82иÑ\85 Ð´Ð°Ð½Ð¸Ñ\85, Ð¿Ð¾Ð²'Ñ\8fзаниÑ\85 Ñ\82Ñ\83Ñ\82 Ñ\96з Ð²Ð°Ñ\88им Ð¾Ð±Ð»Ñ\96ковим Ð·Ð°Ð¿Ð¸Ñ\81ом.\nÐ\92ам Ñ\81лÑ\96д Ñ\86е Ð·Ñ\80обиÑ\82и, Ñ\8fкÑ\89о Ð²Ð¸ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ¾Ð²Ð¾ Ð¿Ð¾Ð´Ñ\96лилиÑ\81Ñ\8c Ð¶ÐµÑ\82онами Ð· ÐºÐ¸Ð¼Ð¾Ñ\81Ñ\8c, Ð°Ð±Ð¾ Ñ\8fкÑ\89о Ð²аш обліковий запис було зламано.",
        "resettokens-no-tokens": "Немає жетонів до скидання.",
        "resettokens-legend": "Скинути жетони",
        "resettokens-tokens": "Жетони:",
        "resettokens-token-label": "$1 (поточне значення: $2)",
-       "resettokens-watchlist-token": "Маркер стрічки новин (Atom/RSS) з [[Special:Watchlist|змін на сторінку у вашому списку спостереження]]",
+       "resettokens-watchlist-token": "Маркер стрічки новин (Atom/RSS) щодо [[Special:Watchlist|зміни на сторінці з вашого списку спостереження]]",
        "resettokens-done": "Жетони скинуто.",
        "resettokens-resetbutton": "Скинути обрані жетони",
        "bold_sample": "Жирний текст",
        "italic_tip": "Курсив",
        "link_sample": "Назва посилання",
        "link_tip": "Внутрішнє посилання",
-       "extlink_sample": "http://www.example.com назва посилання",
+       "extlink_sample": "назва посилання http://www.example.com",
        "extlink_tip": "Зовнішнє посилання (не забудьте про префікс http://)",
        "headline_sample": "Текст заголовка",
        "headline_tip": "Заголовок 2-го рівня",
-       "nowiki_sample": "Ð\92Ñ\81Ñ\82авлÑ\8fйÑ\82е Ñ\81Ñ\8eди Ð½ÐµÐ²Ñ\96дформатований текст.",
+       "nowiki_sample": "Ð\92Ñ\81Ñ\82авиÑ\82и Ñ\81Ñ\8eди Ð½Ðµформатований текст.",
        "nowiki_tip": "Ігнорувати вікі-форматування",
        "image_sample": "Example.jpg",
        "image_tip": "Файл",
        "preview": "Попередній перегляд",
        "showpreview": "Попередній перегляд",
        "showdiff": "Показати зміни",
-       "blankarticle": "<strong>Попередження:</strong> Ви створюєте пусту сторінку.\nЯкщо Ви знову натиснете «{{int:savearticle}}», сторінку буде створено без вмісту.",
-       "anoneditwarning": "'''Увага''': Ð\92и Ð½Ðµ Ñ\83вÑ\96йÑ\88ли Ð´Ð¾ Ñ\81иÑ\81Ñ\82еми. Ð\92аÑ\88а IP-адÑ\80еÑ\81а Ð±Ñ\83де Ð·Ð°Ð¿Ð¸Ñ\81ана Ð´Ð¾ Ñ\96Ñ\81Ñ\82оÑ\80Ñ\96Ñ\97 Ð·Ð¼Ñ\96н Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\81Ñ\82оÑ\80Ñ\96нки.",
+       "blankarticle": "'''Попередження:''' Створена вами сторінка порожня.\nЯкщо Ви знову натиснете «{{int:savearticle}}», сторінку буде створено без вмісту.",
+       "anoneditwarning": "'''Увага''': Ð\92и Ð½Ðµ Ñ\83вÑ\96йÑ\88ли Ð´Ð¾ Ñ\81иÑ\81Ñ\82еми. Ð\94о Ñ\96Ñ\81Ñ\82оÑ\80Ñ\96Ñ\97 Ð·Ð¼Ñ\96н Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\81Ñ\82оÑ\80Ñ\96нки Ð±Ñ\83де Ð·Ð°Ð¿Ð¸Ñ\81ана Ð²Ð°Ñ\88а IP-адÑ\80еÑ\81а.",
        "anonpreviewwarning": "''Ви не увійшли в систему. Якщо ви виконаєте збереження, то в історію сторінки буде записана ваша IP-адреса.''",
        "missingsummary": "'''Нагадування''': Ви не дали короткого опису змін.\nНатиснувши кнопку «Зберегти» ще раз, ви збережете зміни без коментаря.",
        "missingcommenttext": "Будь ласка, введіть нижче ваше повідомлення.",
        "subject-preview": "Заголовок буде:",
        "blockedtitle": "Користувача заблоковано",
        "blockedtext": "'''Ваш обліковий запис або IP-адреса заблоковані.'''\n\nБлокування виконане адміністратором $1.\nЗазначена наступна причина: ''$2''.\n\n* Початок блокування: $8\n* Закінчення блокування: $6\n* Блокування виконав: $7\n\nВи можете надіслати листа користувачеві $1 або будь-якому іншому [[{{MediaWiki:Grouppage-sysop}}|адміністратору]], щоб обговорити блокування.\n\nЗверніть увагу, що ви не зможете надіслати листа адміністратору, якщо ви не зареєстровані або не підтвердили свою електронну адресу в [[Special:Preferences|особистих налаштуваннях]], а також якщо вам було заборонено надсилати листи при блокуванні.\n\nВаша поточна IP-адреса — $3, ідентифікатор блокування — #$5. Будь ласка, зазначайте ці дані у своїх запитах.",
-       "autoblockedtext": "Ваша IP-адреса автоматично заблокована у зв'язку з тим, що вона раніше використовувалася кимось із заблокованих користувачів. Адміністратор ($1), що її заблокував, зазначив наступну причину блокування:\n\n:''$2''\n\n* Початок блокування: $8\n* Закінчення блокування: $6\n* Був заблокований: $7\n\nВи можете надіслати листа користувачеві $1 або будь-якому іншому [[{{MediaWiki:Grouppage-sysop}}|адміністратору]], щоб обговорити блокування.\n\nЗверніть увагу, що ви не зможете надіслати листа адміністраторові, якщо ви не зареєстровані у проекті або не підтвердили свою електронну адресу в [[Special:Preferences|особистих налаштуваннях]], а також якщо вам було заборонено надсилати листи при блокуванні.\n\nВаша поточна IP-адреса — $3, ідентифікатор блокування — #$5. Будь ласка, зазначайте його у своїх запитах.",
+       "autoblockedtext": "Ваша IP-адреса автоматично заблокована у зв'язку з тим, що вона раніше використовувалася кимось із заблокованих користувачів. Адміністратор ($1), що її заблокував, зазначив наступну причину блокування:\n\n:''$2''\n\n* Початок блокування: $8\n* Закінчення блокування: $6\n* Блокування виконав: $7\n\nВи можете надіслати листа користувачеві $1 або будь-якому іншому [[{{MediaWiki:Grouppage-sysop}}|адміністратору]], щоб обговорити блокування.\n\nЗверніть увагу, що ви не зможете надіслати листа адміністраторові, якщо ви не зареєстровані у проекті або не підтвердили свою електронну адресу в [[Special:Preferences|особистих налаштуваннях]], а також якщо вам було заборонено надсилати листи при блокуванні.\n\nВаша поточна IP-адреса — $3, ідентифікатор блокування — #$5. Будь ласка, зазначайте його у своїх запитах.",
        "blockednoreason": "не вказано причини",
        "whitelistedittext": "Ви повинні $1 щоб редагувати сторінки.",
-       "confirmedittext": "Ð\92и Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ\96 Ð¿Ñ\96дÑ\82веÑ\80диÑ\82и Ð²Ð°Ñ\88Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ð¿ÐµÑ\80ед Ñ\80едагÑ\83ваннÑ\8fм Ñ\81Ñ\82оÑ\80Ñ\96нок.\nÐ\91Ñ\83дÑ\8c-лаÑ\81ка Ð·Ð°Ð·Ð½Ð°Ñ\87Ñ\82е і підтвердіть вашу електронну адресу на [[Special:Preferences|сторінці налаштувань]].",
+       "confirmedittext": "Ð\92и Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ\96 Ð¿Ñ\96дÑ\82веÑ\80диÑ\82и Ð²Ð°Ñ\88Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\97 Ð¿Ð¾Ñ\88Ñ\82и Ð¿ÐµÑ\80ед Ñ\80едагÑ\83ваннÑ\8fм Ñ\81Ñ\82оÑ\80Ñ\96нок.\nÐ\91Ñ\83дÑ\8c-лаÑ\81ка Ð²ÐºÐ°Ð¶Ñ\96Ñ\82Ñ\8c і підтвердіть вашу електронну адресу на [[Special:Preferences|сторінці налаштувань]].",
        "nosuchsectiontitle": "Не вдається знайти розділ",
        "nosuchsectiontext": "Ви намагаєтесь редагувати розділ, якого не існує.\nМожливо, він був перейменований або вилучений, поки ви переглядали сторінку.",
        "loginreqtitle": "Необхідно ввійти до системи",
        "loginreqlink": "ввійти в систему",
-       "loginreqpagetext": "Ð\92и Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ\96 $1, Ñ\89об Ð¿ÐµÑ\80еглÑ\8fнÑ\83ти інші сторінки.",
+       "loginreqpagetext": "Ð\92и Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ\96 $1, Ñ\89об Ð¿ÐµÑ\80еглÑ\8fдати інші сторінки.",
        "accmailtitle": "Пароль надіслано.",
        "accmailtext": "Пароль для користувача [[User talk:$1|$1]], згенерований випадковим чином, надісланий на адресу $2.\nПісля реєстрації в системі ви зможете ''[[Special:ChangePassword|змінити пароль]]''.",
        "newarticle": "(Нова)",
        "newarticletext": "Ви перейшли на сторінку, яка поки що не існує.\n\nЩоб створити нову сторінку, наберіть текст у вікні нижче (див. [$1 довідкову статтю], щоб отримати більше інформації).\nЯкщо ви опинились тут помилково, просто натисніть кнопку браузера '''назад'''.",
-       "anontalkpagetext": "----''Це сторінка обговорення анонімного користувача, який ще не зареєструвався або не скористався зареєстрованим обліковим записом.\nТому ми вимушені використовувати IP-адресу для його ідентифікації.\nОдна IP-адреса може використовуватися декількома користувачами.\nЯкщо ви — анонімний користувач і вважаєте, що отримали коментарі, адресовані не вам, будь ласка [[Special:UserLogin/signup|зареєструйтесь]] або [[Special:UserLogin|увійдіть до системи]], щоб у майбутньому уникнути можливої плутанини з іншими анонімними користувачами.''",
+       "anontalkpagetext": "----''Це сторінка обговорення анонімного користувача, який ще не зареєструвався або не скористався зареєстрованим обліковим записом.''\nТому ми вимушені використовувати IP-адресу для його ідентифікації.\nОдна IP-адреса може використовуватись кількома користувачами.\nЯкщо ви — анонімний користувач і вважаєте, що отримали коментарі, адресовані не вам, будь ласка [[Special:UserLogin/signup|зареєструйтесь]] або [[Special:UserLogin|увійдіть до системи]], щоб у майбутньому уникнути можливої плутанини з іншими анонімними користувачами.",
        "noarticletext": "Зараз на цій сторінці нема тексту.\nВи можете [[Special:Search/{{PAGENAME}}|пошукати цю назву]] на інших сторінках,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} пошукати в журналах]\nабо [{{fullurl:{{FULLPAGENAME}}|action=edit}} створити сторінку з такою назвою]</span>.",
        "noarticletext-nopermission": "Зараз на цій сторінці немає тексту.\nВи можете [[Special:Search/{{PAGENAME}}|пошукати цю назву]] на інших сторінках,\nабо <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} пошукати пов'язані записи в журналах]</span>, але ви не маєте дозволу на створення такої сторінки.",
        "missing-revision": "Версія #$1 сторінки «{{FULLPAGENAME}}» не існує.\n\nІмовірно, Ви перейшли за застарілим посиланням на вилучену сторінку.\nПодробиці можна дізнатися з [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журналу вилучень].",
        "usercssyoucanpreview": "'''Підказка:''' використовуйте кнопку «{{int:showpreview}}», щоб протестувати ваш новий css-файл перед збереженням.",
        "userjsyoucanpreview": "'''Підказка:''' використовуйте кнопку «{{int:showpreview}}», щоб протестувати ваш новий код JavaScript перед збереженням.",
        "usercsspreview": "'''Пам'ятайте, що це лише попередній перегляд вашого css-файлу.'''\n'''Його ще не збережено!'''",
-       "userjspreview": "'''Ð\9fам'Ñ\8fÑ\82айÑ\82е, Ñ\89о Ñ\86е Ñ\82Ñ\96лÑ\8cки Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\96й Ð¿ÐµÑ\80еглÑ\8fд Ð²Ð°Ñ\88ого JavaScript-Ñ\84айлÑ\83 Ñ\96 Ð¿Ð¾ÐºÐ¸ Ð²Ñ\96н Ñ\89е не збережений!'''",
+       "userjspreview": "'''Ð\9fам'Ñ\8fÑ\82айÑ\82е, Ñ\89о Ñ\86е Ñ\82Ñ\96лÑ\8cки Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\96й Ð¿ÐµÑ\80еглÑ\8fд Ð²Ð°Ñ\88ого JavaScript-Ñ\84айлÑ\83 Ñ\96 Ð²Ñ\96н Ð¿Ð¾ÐºÐ¸-Ñ\89о не збережений!'''",
        "sitecsspreview": "'''Пам'ятайте, що це тільки попередній перегляд цього CSS.'''\n'''Його ще не збережено!'''",
        "sitejspreview": "'''Пам'ятайте, що це лише попередній перегляд вашого JavaScript-коду.'''\n'''Його ще не збережено!'''",
        "userinvalidcssjstitle": "'''Увага:''' тема оформлення «$1» не знайдена.\nПам'ятайте, що користувацькі .css та .js сторінки повинні мати назву, що складається лише з малих літер, наприклад «{{ns:user}}:Хтось/vector.css», а не «{{ns:user}}:Хтось/Vector.css».",
        "note": "'''Зауваження:'''",
        "previewnote": "'''Це лише попередній перегляд.'''\nВаші зміни ще не збережено!",
        "continue-editing": "Продовжити редагування",
-       "previewconflict": "Цей попередній перегляд відображає текст з верхнього вікна редагування так, як він буде виглядіти, якщо ви вирішите зберегти його.",
-       "session_fail_preview": "'''Система не може зберегти ваші редагування, оскільки втрачені дані сеансу. Будь ласка, повторіть вашу спробу.\nЯкщо помилка буде повторюватись, спробуйте [[Special:UserLogout|вийти з системи]] і зайти знову.'''",
-       "session_fail_preview_html": "<strong>Ð\92ибаÑ\87Ñ\82е! Ð\9dеможливо Ð·Ð±ÐµÑ\80егÑ\82и Ð²Ð°Ñ\88Ñ\96 Ð·Ð¼Ñ\96ни Ñ\87еÑ\80ез Ð²Ñ\82Ñ\80аÑ\82Ñ\83 Ð´Ð°Ð½Ð¸Ñ\85 HTML-Ñ\81еÑ\81Ñ\96Ñ\97.</strong>\n\n''Ð\9eÑ\81кÑ\96лÑ\8cки {{SITENAME}} Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\8fÑ\94 Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ñ\87иÑ\81Ñ\82ий HTML, Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\96й Ð¿ÐµÑ\80еглÑ\8fд Ð²Ñ\96дклÑ\8eÑ\87ено, Ñ\89об Ð¿Ð¾Ð¿ÐµÑ\80едиÑ\82и JavaScript-аÑ\82аки.''\n\n<strong>ЯкÑ\89о Ñ\86е Ð´Ð¾Ð±Ñ\80оÑ\8fкÑ\96Ñ\81на спроба редагування, будь ласка, спробуйте ще раз. Якщо не вийде знову, - спробуйте [[Special:UserLogout|завершити сеанс роботи]] й ще раз ввійти до системи.</strong>",
-       "token_suffix_mismatch": "'''Ваше редагування було відхилене, оскільки ваша програма не правильно обробляє знаки пунктуації у вікні редагування. Редагування було скасоване для запобігання спотворенню тексту статті.\nПодібні проблеми можуть виникати при використанні анонімізуючих веб-проксі, що містять помилки.'''",
-       "edit_form_incomplete": "'''Частина даних із форми редагування не досягла сервера. Уважно перевірте чи не пошкоджено ваших правок і спробуйте ще раз.'''",
+       "previewconflict": "Цей попередній перегляд відображає текст з верхнього вікна редагування так, як він буде виглядати, якщо ви вирішите зберегти його.",
+       "session_fail_preview": "'''Система не може зберегти ваші редагування, оскільки втрачені дані сеансу. Будь ласка, повторіть вашу спробу.\nЯкщо помилка буде повторюватись, спробуйте [[Special:UserLogout|вийти з системи]] і увійти знову.'''",
+       "session_fail_preview_html": "<strong>Ð\92ибаÑ\87Ñ\82е! Ð\9dеможливо Ð·Ð±ÐµÑ\80егÑ\82и Ð²Ð°Ñ\88Ñ\96 Ð·Ð¼Ñ\96ни Ñ\87еÑ\80ез Ð²Ñ\82Ñ\80аÑ\82Ñ\83 Ð´Ð°Ð½Ð¸Ñ\85 HTML-Ñ\81еÑ\81Ñ\96Ñ\97.</strong>\n\n''Ð\9eÑ\81кÑ\96лÑ\8cки {{SITENAME}} Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\8fÑ\94 Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ñ\87иÑ\81Ñ\82ий HTML, Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\96й Ð¿ÐµÑ\80еглÑ\8fд Ð²Ñ\96дклÑ\8eÑ\87ено, Ñ\89об Ð¿Ð¾Ð¿ÐµÑ\80едиÑ\82и JavaScript-аÑ\82аки.''\n\n<strong>ЯкÑ\89о Ñ\86е Ð»ÐµÐ³Ñ\96Ñ\82имна спроба редагування, будь ласка, спробуйте ще раз. Якщо не вийде знову, - спробуйте [[Special:UserLogout|завершити сеанс роботи]] й ще раз ввійти до системи.</strong>",
+       "token_suffix_mismatch": "'''Ваше редагування було відхилене, оскільки ваша програма неправильно обробляє знаки пунктуації у вікні редагування. Редагування було скасоване для запобігання спотворенню тексту статті.\nПодібні проблеми можуть виникати при використанні анонімізуючих веб-проксі, що містять помилки.'''",
+       "edit_form_incomplete": "'''Частина даних із форми редагування не досягла сервера. Уважно перевірте, чи не пошкоджені ваші правки і спробуйте ще раз.'''",
        "editing": "Редагування $1",
        "creating": "Створення $1",
        "editingsection": "Редагування $1 (розділ)",
        "editingcomment": "Редагування $1 (новий розділ)",
        "editconflict": "Конфлікт редагування: $1",
-       "explainconflict": "Ще Ñ\85Ñ\82оÑ\81Ñ\8c Ð·Ð¼Ñ\96нив Ñ\86Ñ\8e Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83 Ð· Ñ\82ого Ñ\87аÑ\81Ñ\83, Ñ\8fк Ð²Ð¸ Ñ\80озпоÑ\87али Ñ\97Ñ\97 Ð·Ð¼Ñ\96нÑ\8eваÑ\82и.\nУ Ð²ÐµÑ\80Ñ\85нÑ\8cомÑ\83 Ð²Ñ\96кнÑ\96 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ Ð¿Ð¾Ñ\82оÑ\87ний Ñ\82екÑ\81Ñ\82 Ñ\81Ñ\82оÑ\80Ñ\96нки.\nÐ\92аÑ\88Ñ\96 Ð·Ð¼Ñ\96ни Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ\96 Ð² Ð½Ð¸Ð¶Ð½Ñ\8cомÑ\83 Ð²Ñ\96кнÑ\96.\nÐ\92ам Ð½ÐµÐ¾Ð±Ñ\85Ñ\96дно Ð¿ÐµÑ\80енеÑ\81Ñ\82и Ð²Ð°Ñ\88Ñ\96 Ð·Ð¼Ñ\96ни Ð² Ñ\96Ñ\81нÑ\83Ñ\8eÑ\87ий Ñ\82екÑ\81Ñ\82.\nЯкÑ\89о Ð²Ð¸ Ð½Ð°Ñ\82иÑ\81неÑ\82е Â«{{int:savearticle}}», Ñ\82о Ð±Ñ\83де Ð·Ð±ÐµÑ\80ежено '''Ñ\82Ñ\96лÑ\8cки''' Ñ\82екÑ\81Ñ\82 Ñ\83 Ð²ÐµÑ\80Ñ\85нÑ\8cомÑ\83 Ð²Ñ\96кнÑ\96 редагування.",
+       "explainconflict": "Ще Ñ\85Ñ\82оÑ\81Ñ\8c Ð·Ð¼Ñ\96нив Ñ\86Ñ\8e Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83 Ð· Ñ\82ого Ñ\87аÑ\81Ñ\83, Ñ\8fк Ð²Ð¸ Ñ\80озпоÑ\87али Ñ\97Ñ\97 Ð¿Ñ\80авиÑ\82и.\nУ Ð²ÐµÑ\80Ñ\85нÑ\8cомÑ\83 Ð²Ñ\96кнÑ\96 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ Ð¿Ð¾Ñ\82оÑ\87ний Ñ\82екÑ\81Ñ\82 Ñ\81Ñ\82оÑ\80Ñ\96нки.\nÐ\92аÑ\88Ñ\96 Ð·Ð¼Ñ\96ни Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ\96 Ð² Ð½Ð¸Ð¶Ð½Ñ\8cомÑ\83 Ð²Ñ\96кнÑ\96.\nÐ\92ам Ð½ÐµÐ¾Ð±Ñ\85Ñ\96дно Ð¿ÐµÑ\80енеÑ\81Ñ\82и Ð²Ð°Ñ\88Ñ\96 Ð·Ð¼Ñ\96ни Ð² Ñ\96Ñ\81нÑ\83Ñ\8eÑ\87ий Ñ\82екÑ\81Ñ\82.\nЯкÑ\89о Ð²Ð¸ Ð½Ð°Ñ\82иÑ\81неÑ\82е Â«{{int:savearticle}}», Ñ\82о Ð±Ñ\83де Ð·Ð±ÐµÑ\80ежено '''лиÑ\88е''' Ñ\82екÑ\81Ñ\82 Ð· Ð²ÐµÑ\80Ñ\85нÑ\8cого Ð²Ñ\96кна редагування.",
        "yourtext": "Ваш текст",
        "storedversion": "Збережена версія",
-       "nonunicodebrowser": "'''Ð\9fÐ\9eÐ\9fÐ\95РÐ\95Ð\94Ð\96Ð\95Ð\9dÐ\9dЯ: Ð\92аÑ\88 [[бÑ\80аÑ\83зеÑ\80]] Ð½Ðµ Ð¿Ñ\96дÑ\82Ñ\80имÑ\83Ñ\94 [[ЮнÑ\96код]].''' \nЩоб Ð¿Ð¾Ð´Ð¾Ð»Ð°Ñ\82и Ñ\86е Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ\8f Ñ\82а Ð´Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ\82и Ð\92ам безпечно редагувати сторінки, усі не-ASCII символи буде показано їх шістнадцятковими кодами.",
-       "editingold": "'''Ð\9fÐ\9eÐ\9fÐ\95РÐ\95Ð\94Ð\96Ð\95Ð\9dÐ\9dЯ: Ви редагуєте застарілу версію даної статті.\nЯкщо ви збережете її, будь-які редагування, зроблені між версіями, будуть втрачені.'''",
+       "nonunicodebrowser": "'''Ð\9fопеÑ\80едженнÑ\8f: Ð\92аÑ\88 Ð±Ñ\80аÑ\83зеÑ\80 Ð½Ðµ Ð¿Ñ\96дÑ\82Ñ\80имÑ\83Ñ\94 Ð®Ð½Ñ\96код.''' \nЩоб Ð¿Ð¾Ð´Ð¾Ð»Ð°Ñ\82и Ñ\86е Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ\8f Ñ\82а Ð´Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ\82и Ð²ам безпечно редагувати сторінки, усі не-ASCII символи буде показано їх шістнадцятковими кодами.",
+       "editingold": "'''Ð\9fопеÑ\80едженнÑ\8f: Ви редагуєте застарілу версію даної статті.\nЯкщо ви збережете її, будь-які редагування, зроблені між версіями, будуть втрачені.'''",
        "yourdiff": "Відмінності",
-       "copyrightwarning": "Ð\97веÑ\80нÑ\96Ñ\82Ñ\8c Ñ\83вагÑ\83, Ñ\89о Ð±Ñ\83дÑ\8c\8fкÑ\96 Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ\8f Ñ\96 Ð·Ð¼Ñ\96ни Ð´Ð¾ {{grammar:genitive|{{SITENAME}}}} Ñ\80озглÑ\8fдаÑ\8eÑ\82Ñ\8cÑ\81Ñ\8f Ñ\8fк Ð²Ð¸Ð¿Ñ\83Ñ\89енÑ\96 Ð½Ð° Ñ\83моваÑ\85 Ð»Ñ\96Ñ\86ензÑ\96Ñ\97 $2 (див. $1).\nЯкÑ\89о Ð²Ð¸ Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е, Ñ\89об Ð½Ð°Ð¿Ð¸Ñ\81ане Ð²Ð°Ð¼Ð¸ Ð±ÐµÐ·Ð¶Ð°Ð»Ñ\96Ñ\81но Ñ\80едагÑ\83валоÑ\81Ñ\8c Ñ\96 Ñ\80озповÑ\81Ñ\8eджÑ\83валоÑ\81Ñ\8f Ð·Ð° Ð±Ð°Ð¶Ð°Ð½Ð½Ñ\8fм Ð±Ñ\83дÑ\8c-кого, Ð½Ðµ Ð¿Ð¸Ñ\88Ñ\96Ñ\82Ñ\8c Ñ\82Ñ\83Ñ\82.<br />\nÐ\92и Ñ\82акож Ð¿Ñ\96дÑ\82веÑ\80джÑ\83Ñ\94Ñ\82е, Ñ\89о Ð½Ð°Ð¿Ð¸Ñ\81ане Ð²Ð°Ð¼Ð¸ Ñ\82Ñ\83Ñ\82 Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ\82Ñ\8c Ð²Ð°Ð¼ Ð°Ð±Ð¾ Ð²Ð·Ñ\8fÑ\82е Ð· Ð´Ð¶ÐµÑ\80ела, Ñ\89о Ñ\94 Ñ\81Ñ\83Ñ\81пÑ\96лÑ\8cним Ð½Ð°Ð´Ð±Ð°Ð½Ð½Ñ\8fм Ñ\87и Ð¿Ð¾Ð´Ñ\96бним Ð²Ñ\96лÑ\8cним Ð´Ð¶ÐµÑ\80елом.\n'''Ð\9dÐ\95 Ð\9fУÐ\91Ð\9bÐ\86Ð\9aУÐ\99ТÐ\95 Ð¢Ð£Ð¢ Ð\91Ð\95Ð\97 Ð\94Ð\9eÐ\97Ð\92Ð\9eÐ\9bУ Ð\9cÐ\90ТÐ\95РÐ\86Ð\90Ð\9bÐ\98, Ð©Ð\9e Ð\9eÐ¥Ð\9eРÐ\9eÐ\9dЯЮТЬСЯ Ð\90Ð\92ТÐ\9eРСЬÐ\9aÐ\98Ð\9c Ð\9fРÐ\90Ð\92Ð\9eÐ\9c!'''",
-       "copyrightwarning2": "Ð\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ð·Ð²ÐµÑ\80нÑ\96Ñ\82Ñ\8c Ñ\83вагÑ\83, Ñ\89о Ð²Ñ\81Ñ\96 Ð²Ð½ÐµÑ\81енÑ\96 Ð²Ð°Ð¼Ð¸ Ð·Ð¼Ñ\96ни Ð¼Ð¾Ð¶Ñ\83Ñ\82Ñ\8c Ñ\80едагÑ\83ваÑ\82иÑ\81Ñ\8f, Ð´Ð¾Ð¿Ð¾Ð²Ð½Ñ\8eваÑ\82иÑ\81Ñ\8f Ð°Ð±Ð¾ Ð²Ð¸Ð»Ñ\83Ñ\87аÑ\82иÑ\81Ñ\8f Ñ\96нÑ\88ими ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87ами.\nЯкÑ\89о Ð²Ð¸ Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е, Ñ\89об Ð½Ð°Ð¿Ð¸Ñ\81ане Ð²Ð°Ð¼Ð¸ Ð±ÐµÐ·Ð¶Ð°Ð»Ñ\96Ñ\81но Ñ\80едагÑ\83валоÑ\81Ñ\8c â\80\94 Ð½Ðµ Ð¿Ð¸Ñ\88Ñ\96Ñ\82Ñ\8c Ñ\82Ñ\83Ñ\82.<br />\nÐ\92и Ñ\82акож Ð·Ð¾Ð±Ð¾Ð²'Ñ\8fзÑ\83Ñ\94Ñ\82еÑ\81Ñ\8c, Ñ\89о Ð½Ð°Ð¿Ð¸Ñ\81ане Ð²Ð°Ð¼Ð¸ Ñ\82Ñ\83Ñ\82 Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ\82Ñ\8c Ð²Ð°Ð¼ Ð°Ð±Ð¾ Ð²Ð·Ñ\8fÑ\82е Ð· Ð´Ð¶ÐµÑ\80ела, Ñ\89о Ñ\94 Ñ\81Ñ\83Ñ\81пÑ\96лÑ\8cним Ð½Ð°Ð´Ð±Ð°Ð½Ð½Ñ\8fм, Ð°Ð±Ð¾ Ð¿Ð¾Ð´Ñ\96бного Ð²Ñ\96лÑ\8cного Ð´Ð¶ÐµÑ\80ела (див. $1).<br />\n'''Ð\9dÐ\95 Ð\9fУÐ\91Ð\9bÐ\86Ð\9aУÐ\99ТÐ\95 Ð¢Ð£Ð¢ Ð\91Ð\95Ð\97 Ð\94Ð\9eÐ\97Ð\92Ð\9eÐ\9bУ Ð\9cÐ\90ТÐ\95РÐ\86Ð\90Ð\9bÐ\98, Ð©Ð\9e Ð\84 Ð\9eÐ\91\84Ð\9aТÐ\9eÐ\9c Ð\90Ð\92ТÐ\9eРСЬÐ\9aÐ\9eÐ\93Ð\9e Ð\9fРÐ\90Ð\92Ð\90!'''",
-       "longpageerror": "'''Ð\9fомилка: Ð¢ÐµÐºÑ\81Ñ\82, Ñ\89о Ð²Ð¸ Ð½Ð°Ð´Ñ\96Ñ\81лали Ð·Ð°Ð¹Ð¼Ð°Ñ\94 $1 {{PLURAL:$1|кÑ\96лобайÑ\82|кÑ\96лобайÑ\82и|кÑ\96лобайÑ\82Ñ\96в}}, Ñ\89о Ð±Ñ\96лÑ\8cÑ\88е Ð·Ð° Ð²Ñ\81Ñ\82ановленÑ\83 Ð¼ÐµÐ¶Ñ\83 Ñ\83 $2 {{PLURAL:$2|кілобайт|кілобайти|кілобайтів}}.'''\nЙого неможливо зберегти.",
-       "readonlywarning": "'''Ð\9fÐ\9eÐ\9fÐ\95РÐ\95Ð\94Ð\96Ð\95Ð\9dÐ\9dЯ: Ð\91аза Ð´Ð°Ð½Ð¸Ñ\85 Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð° Ð² Ð·Ð²'Ñ\8fзкÑ\83 Ð· Ð¿Ñ\80оÑ\86едÑ\83Ñ\80ами Ð¾Ð±Ñ\81лÑ\83говÑ\83ваннÑ\8f,\nÑ\82омÑ\83, Ð½Ð° Ð´Ð°Ð½Ð¸Ð¹ Ð¼Ð¾Ð¼ÐµÐ½Ñ\82, Ð²Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð·Ð°Ð¿Ð¸Ñ\81аÑ\82и Ð²Ð°Ñ\88Ñ\96 Ð·Ð¼Ñ\96ни.\nÐ\9cожливо, Ð²Ð°Ð¼ Ð²Ð°Ñ\80Ñ\82о Ð·Ð±ÐµÑ\80егÑ\82и Ñ\82екÑ\81Ñ\82 Ð² Ð»Ð¾ÐºÐ°Ð»Ñ\8cний Ñ\84айл (на Ñ\81воÑ\94мÑ\83 Ð´Ð¸Ñ\81кÑ\83) Ð¹ Ð·Ð±ÐµÑ\80егÑ\82и Ð¹Ð¾Ð³Ð¾ пізніше.'''\n\nАдміністратор, що заблокував базу даних, залишив наступне пояснення: $1",
+       "copyrightwarning": "Ð\97веÑ\80нÑ\96Ñ\82Ñ\8c Ñ\83вагÑ\83, Ñ\89о Ð±Ñ\83дÑ\8c\8fкÑ\96 Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ\8f Ñ\96 Ð·Ð¼Ñ\96ни Ð´Ð¾ {{grammar:genitive|{{SITENAME}}}} Ñ\80озглÑ\8fдаÑ\8eÑ\82Ñ\8cÑ\81Ñ\8f Ñ\8fк Ð²Ð¸Ð¿Ñ\83Ñ\89енÑ\96 Ð½Ð° Ñ\83моваÑ\85 Ð»Ñ\96Ñ\86ензÑ\96Ñ\97 $2 (деÑ\82алÑ\8cнÑ\96Ñ\88е Ð´Ð¸Ð². $1).\nЯкÑ\89о Ð²Ð¸ Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е, Ñ\89об Ð½Ð°Ð¿Ð¸Ñ\81ане Ð²Ð°Ð¼Ð¸ Ð±ÐµÐ·Ð¶Ð°Ð»Ñ\8cно Ñ\80едагÑ\83валоÑ\81Ñ\8c Ñ\96 Ñ\80озповÑ\81Ñ\8eджÑ\83валоÑ\81Ñ\8f Ð·Ð° Ð±Ð°Ð¶Ð°Ð½Ð½Ñ\8fм Ð±Ñ\83дÑ\8c-кого, Ð½Ðµ Ð¿Ð¸Ñ\88Ñ\96Ñ\82Ñ\8c Ñ\82Ñ\83Ñ\82.<br />\nÐ\92и Ñ\82акож Ð¿Ñ\96дÑ\82веÑ\80джÑ\83Ñ\94Ñ\82е, Ñ\89о Ð½Ð°Ð¿Ð¸Ñ\81ане Ð²Ð°Ð¼Ð¸ Ñ\82Ñ\83Ñ\82 Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ\82Ñ\8c Ð²Ð°Ð¼ Ð°Ð±Ð¾ Ð²Ð·Ñ\8fÑ\82е Ð· Ð´Ð¶ÐµÑ\80ела, Ñ\89о Ñ\94 Ñ\81Ñ\83Ñ\81пÑ\96лÑ\8cним Ð½Ð°Ð´Ð±Ð°Ð½Ð½Ñ\8fм Ñ\87и Ð¿Ð¾Ð´Ñ\96бного Ð²Ñ\96лÑ\8cного Ð´Ð¶ÐµÑ\80ела.\n'''Ð\9dе Ð¿Ñ\83блÑ\96кÑ\83йÑ\82е Ñ\82Ñ\83Ñ\82 Ð±ÐµÐ· Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð¼Ð°Ñ\82еÑ\80Ñ\96али, Ð·Ð°Ñ\85иÑ\89енÑ\96 Ð°Ð²Ñ\82оÑ\80Ñ\81Ñ\8cким Ð¿Ñ\80авом!'''",
+       "copyrightwarning2": "Ð\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ð·Ð²ÐµÑ\80нÑ\96Ñ\82Ñ\8c Ñ\83вагÑ\83, Ñ\89о Ð²Ñ\81Ñ\96 Ð·Ð¼Ñ\96ни, Ð²Ð½ÐµÑ\81енÑ\96 Ð²Ð°Ð¼Ð¸ Ð´Ð¾ {{SITENAME}}, Ð¼Ð¾Ð¶Ñ\83Ñ\82Ñ\8c Ñ\80едагÑ\83ваÑ\82иÑ\81Ñ\8f, Ð´Ð¾Ð¿Ð¾Ð²Ð½Ñ\8eваÑ\82иÑ\81Ñ\8f Ð°Ð±Ð¾ Ð²Ð¸Ð»Ñ\83Ñ\87аÑ\82иÑ\81Ñ\8f Ñ\96нÑ\88ими ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87ами.\nЯкÑ\89о Ð²Ð¸ Ð½Ðµ Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е, Ñ\89об Ð½Ð°Ð¿Ð¸Ñ\81ане Ð²Ð°Ð¼Ð¸ Ð±ÐµÐ·Ð¶Ð°Ð»Ñ\8cно Ñ\80едагÑ\83валоÑ\81Ñ\8c â\80\94 Ð½Ðµ Ð¿Ð¸Ñ\88Ñ\96Ñ\82Ñ\8c Ñ\82Ñ\83Ñ\82.<br />\nÐ\92и Ñ\82акож Ð¿Ñ\96дÑ\82веÑ\80джÑ\83Ñ\94Ñ\82е, Ñ\89о Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ðµ Ñ\82Ñ\83Ñ\82 Ð½Ð°Ð¿Ð¸Ñ\81ано Ð²Ð°Ð¼Ð¸ Ð¾Ñ\81обиÑ\81Ñ\82о Ð°Ð±Ð¾ Ð·Ð°Ð¿Ð¾Ð·Ð¸Ñ\87ено Ð· Ð´Ð¶ÐµÑ\80ела, Ñ\8fке Ñ\94 Ñ\81Ñ\83Ñ\81пÑ\96лÑ\8cним Ð½Ð°Ð´Ð±Ð°Ð½Ð½Ñ\8fм, Ð°Ð±Ð¾ Ð¿Ð¾Ð´Ñ\96бного Ð²Ñ\96лÑ\8cного Ð´Ð¶ÐµÑ\80ела (див. $1).<br />\n'''Ð\9dе Ð¿Ñ\83блÑ\96кÑ\83йÑ\82е Ñ\82Ñ\83Ñ\82 Ð±ÐµÐ· Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð¼Ð°Ñ\82еÑ\80Ñ\96али, Ð·Ð°Ñ\85иÑ\89енÑ\96 Ð°Ð²Ñ\82оÑ\80Ñ\81Ñ\8cким Ð¿Ñ\80авом!'''",
+       "longpageerror": "'''Ð\9fомилка: Ð\9fоданий Ð²Ð°Ð¼Ð¸ Ñ\82екÑ\81Ñ\82 Ñ\81Ñ\82ановиÑ\82Ñ\8c $1 {{PLURAL:$1|кÑ\96лобайÑ\82|кÑ\96лобайÑ\82и|кÑ\96лобайÑ\82Ñ\96в}}, Ñ\89о Ð±Ñ\96лÑ\8cÑ\88е Ð·Ð° Ð²Ñ\81Ñ\82ановленÑ\83 Ð¼ÐµÐ¶Ñ\83 Ñ\83 {{PLURAL:$2|кілобайт|кілобайти|кілобайтів}}.'''\nЙого неможливо зберегти.",
+       "readonlywarning": "'''Ð\9fопеÑ\80едженнÑ\8f: Ð\91аза Ð´Ð°Ð½Ð¸Ñ\85 Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð° Ð½Ð° Ð¾Ð±Ñ\81лÑ\83говÑ\83ваннÑ\8f, Ñ\82омÑ\83, Ð½Ð° Ð´Ð°Ð½Ð¸Ð¹ Ð¼Ð¾Ð¼ÐµÐ½Ñ\82, Ð²Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð·Ð°Ð¿Ð¸Ñ\81аÑ\82и Ð²Ð°Ñ\88Ñ\96 Ð·Ð¼Ñ\96ни.\nÐ\9cожливо, Ð²Ð°Ð¼ Ð²Ð°Ñ\80Ñ\82о Ñ\81копÑ\96Ñ\8eваÑ\82и Ñ\82екÑ\81Ñ\82 Ñ\83 Ñ\84айл Ð½Ð° Ð²Ð°Ñ\88омÑ\83 ÐºÐ¾Ð¼Ð¿'Ñ\8eÑ\82еÑ\80Ñ\96 Ð¹ Ð·Ð±ÐµÑ\80егÑ\82и Ð¹Ð¾Ð³Ð¾ Ð½Ð° пізніше.'''\n\nАдміністратор, що заблокував базу даних, залишив наступне пояснення: $1",
        "protectedpagewarning": "'''Попередження: Ця сторінка була захищена від змін так, що тільки користувачі з правами адміністратора можуть її редагувати.'''\nОстанній запис журналу наведений нижче для довідки:",
        "semiprotectedpagewarning": "'''Зауваження:''' Ця сторінка захищена так, що її можуть редагувати тільки зареєстровані користувачі.\nОстанній запис журналу наведений нижче для довідки:",
        "cascadeprotectedwarning": "'''Попередження:''' Цю сторінку можуть редагувати лише користувачі з групи «Адміністратори», оскільки вона включена {{PLURAL:$1|1=до сторінки, для якої|до наступних сторінок, для яких}} активовано каскадний захист:",
        "titleprotectedwarning": "'''Попередження. Ця сторінка була захищена так, що для її створення потрібні [[Special:ListGroupRights|особливі права]].'''\nОстанній запис журналу наведений нижче для довідки:",
        "templatesused": "{{PLURAL:$1|1=Шаблон, використаний|Шаблони, використані}} на цій сторінці:",
        "templatesusedpreview": "{{PLURAL:$1|1=Шаблон, використаний|Шаблони, використані}} у цьому попередньому перегляді:",
-       "templatesusedsection": "{{PLURAL:$1|1=Шаблон, Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82аний|Шаблони, Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82анÑ\96}} Ñ\83 Ñ\86Ñ\96й Ñ\81екÑ\86Ñ\96Ñ\97:",
+       "templatesusedsection": "{{PLURAL:$1|1=Шаблон, Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82аний|Шаблони, Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82анÑ\96}} Ñ\83 Ñ\86Ñ\8cомÑ\83 Ñ\80оздÑ\96лÑ\96:",
        "template-protected": "(захищено)",
        "template-semiprotected": "(частково захищено)",
        "hiddencategories": "Ця сторінка належить до $1 {{PLURAL:$1|прихованої категорії|прихованих категорій|прихованих категорій}}:",
        "edittools": "<!-- Розміщений тут текст буде відображатися під формою редагування і формою завантаження. -->",
        "edittools-upload": "-",
-       "nocreatetext": "Ð\9dа Ñ\86Ñ\8cомÑ\83 Ñ\81айÑ\82Ñ\96 Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¾ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ\96Ñ\81Ñ\82Ñ\8c Ñ\81Ñ\82воÑ\80еннÑ\8f Ð½Ð¾Ð²Ð¸Ñ\85 Ñ\81Ñ\82оÑ\80Ñ\96нок.\nÐ\92и Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿Ð¾Ð²ÐµÑ\80нÑ\83Ñ\82Ñ\8cÑ\81Ñ\8f Ð½Ð°Ð·Ð°Ð´ Ð¹ змінити існуючу сторінку, [[Special:UserLogin|ввійти в систему, або створити новий обліковий запис]].",
+       "nocreatetext": "Ð\9dа Ñ\81айÑ\82Ñ\96 {{SITENAME}} Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¾ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ\96Ñ\81Ñ\82Ñ\8c Ñ\81Ñ\82воÑ\80еннÑ\8f Ð½Ð¾Ð²Ð¸Ñ\85 Ñ\81Ñ\82оÑ\80Ñ\96нок.\nÐ\92и Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿Ð¾Ð²ÐµÑ\80нÑ\83Ñ\82Ñ\8cÑ\81Ñ\8c Ð½Ð°Ð·Ð°Ð´ Ñ\96 змінити існуючу сторінку, [[Special:UserLogin|ввійти в систему, або створити новий обліковий запис]].",
        "nocreate-loggedin": "У вас нема дозволу створювати нові сторінки.",
        "sectioneditnotsupported-title": "Редагування окремих розділів не підтримується",
        "sectioneditnotsupported-text": "На цій сторінці не підтримується редагування окремих розділів",
        "permissionserrors": "Помилка доступу",
        "permissionserrorstext": "У вас нема прав на виконання цієї операції з {{PLURAL:$1|1=наступної причини|наступних причин}}:",
        "permissionserrorstext-withaction": "У вас нема дозволу на $2 з {{PLURAL:$1|1=такої причини|таких причин}}:",
-       "recreate-moveddeleted-warn": "'''Попередження: ви намагаєтеся створити сторінку, яка раніше вже була вилучена.'''\n\nПеревірте, чи справді вам потрібно знову створювати цю сторінку.\nНижче наведений журнал вилучень і перейменувань:",
+       "recreate-moveddeleted-warn": "'''Попередження: ви намагаєтеся створити сторінку, яка раніше вже була вилучена.'''\n\nПеревірте, чи справді вам справді потрібно створювати цю сторінку.\nНижче, для зручності, наведений журнал вилучень і перейменувань:",
        "moveddeleted-notice": "Ця сторінка була вилучена.\nДля довідки нижче наведені відповідні записи з журналів вилучень і перейменувань.",
        "log-fulllog": "Переглянути весь журнал",
        "edit-hook-aborted": "Редагування скасоване процедурою-перехоплювачем.\nДодаткові пояснення не наведені.",
        "postedit-confirmation-restored": "Сторінка була відновлена.",
        "postedit-confirmation-saved": "Ваше редагування збережено",
        "edit-already-exists": "Неможливо створити нову сторінку.\nВона вже існує.",
-       "defaultmessagetext": "ТекÑ\81Ñ\82 Â«Ð·Ð° Ð·Ð°Ð¼Ð¾Ð²Ñ\87Ñ\83ваннÑ\8f»",
-       "content-failed-to-parse": "Не вдалось проаналізувати $2 як тип $1: $3",
+       "defaultmessagetext": "СÑ\82андаÑ\80Ñ\82ний Ñ\82екÑ\81Ñ\82 Ð¿Ð¾Ð²Ñ\96домленнÑ\8f",
+       "content-failed-to-parse": "Не вдалось ідентифікувати $2 як тип $1 через: $3",
        "invalid-content-data": "Неприпустимі дані",
        "content-not-allowed-here": "Вміст «$1» недопустимий на сторінці [[$2]]",
        "editwarning-warning": "Перехід на іншу сторінку призведе до втрати ваших змін.\nЯкщо ви ввійшли до системи, то ви можете відключити це попередження в розділі \"{{int:prefs-editing}}\" ваших налаштувань.",
-       "editpage-notsupportedcontentformat-title": "Ð\9dепÑ\96дÑ\82Ñ\80имÑ\83ваний Ñ\84оÑ\80маÑ\82 Ð²Ð¼Ñ\96Ñ\81Ñ\82Ñ\83",
+       "editpage-notsupportedcontentformat-title": "ФоÑ\80маÑ\82 Ð²Ð¼Ñ\96Ñ\81Ñ\82Ñ\83 Ð½Ðµ Ð¿Ñ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f",
        "editpage-notsupportedcontentformat-text": "Формат вмісту $1 не підтримується моделлю вмісту $2.",
        "content-model-wikitext": "вікітекст",
        "content-model-text": "звичайний текст",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
-       "expensive-parserfunction-warning": "Увага: Ця сторінка містить дуже багато викликів ресурсомістких функцій.\n\nКількість викликів не повинна перевищувати $2, зараз потрібно зробити $1 {{PLURAL:$1|виклик|виклики|викликів}}.",
+       "expensive-parserfunction-warning": "'''Увага:''' Ця сторінка містить дуже багато викликів ресурсомістких функцій.\n\nКількість викликів не повинна перевищувати $2, зараз потрібно зробити $1 {{PLURAL:$1|виклик|виклики|викликів}}.",
        "expensive-parserfunction-category": "Сторінки з дуже великою кількістю викликів ресурсомістких функцій",
-       "post-expand-template-inclusion-warning": "Увага: розмір шаблонів для включення занадто великий.\nДеякі шаблони не буде включено.",
+       "post-expand-template-inclusion-warning": "'''Увага:''' розмір шаблонів для включення занадто великий.\nДеякі шаблони не буде включено.",
        "post-expand-template-inclusion-category": "Сторінки з перевищеним розміром включених шаблонів",
-       "post-expand-template-argument-warning": "'''Увага:''' Ð¦Ñ\8f Ñ\81Ñ\82оÑ\80Ñ\96нка Ð¼Ñ\96Ñ\81Ñ\82иÑ\82Ñ\8c Ð¿Ñ\80инаймнÑ\96 Ð¾Ð´Ð¸Ð½ Ð°Ñ\80гÑ\83менÑ\82 Ñ\88аблонÑ\83, Ñ\8fкий Ð¼Ð°Ñ\94 Ð½Ð°Ð´Ñ\82о Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¹ Ñ\80озмÑ\96Ñ\80 Ð´Ð»Ñ\8f Ñ\80озгоÑ\80Ñ\82аннÑ\8f.\nТакÑ\96 Ð°Ñ\80гÑ\83менÑ\82и Ð±Ñ\83ли Ð¾Ð¿Ñ\83Ñ\89ені.",
+       "post-expand-template-argument-warning": "'''Увага:''' Ð¦Ñ\8f Ñ\81Ñ\82оÑ\80Ñ\96нка Ð¼Ñ\96Ñ\81Ñ\82иÑ\82Ñ\8c Ð¿Ñ\80инаймнÑ\96 Ð¾Ð´Ð¸Ð½ Ð°Ñ\80гÑ\83менÑ\82 Ñ\88аблонÑ\83, Ñ\8fкий Ð¼Ð°Ñ\94 Ð½Ð°Ð´Ñ\82о Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¹ Ñ\80озмÑ\96Ñ\80 Ð´Ð»Ñ\8f Ñ\80озгоÑ\80Ñ\82аннÑ\8f.\nЦÑ\96 Ð°Ñ\80гÑ\83менÑ\82и Ð±Ñ\83ли Ð¿Ñ\80оÑ\96гноÑ\80овані.",
        "post-expand-template-argument-category": "Сторінки, які містять пропущені аргументи шаблонів",
        "parser-template-loop-warning": "Виявлена петля у шаблонах: [[$1]]",
        "parser-template-recursion-depth-warning": "Перевищене обмеження глибини рекурсії шаблону ($1)",
        "language-converter-depth-warning": "Перевищене обмеження глибини мовного конвертора ($1)",
        "node-count-exceeded-category": "Сторінки, на яких перевищено лічильник вузлів",
-       "node-count-exceeded-category-desc": "Ð\9aаÑ\82егоÑ\80Ñ\96Ñ\8f Ð´Ð»Ñ\8f Ñ\81Ñ\82оÑ\80Ñ\96нок, Ð½Ð° Ñ\8fкиÑ\85 Ð¿ÐµÑ\80ебÑ\96лÑ\8cÑ\88ена кількість вузлів.",
+       "node-count-exceeded-category-desc": "Ð\9aаÑ\82егоÑ\80Ñ\96Ñ\8f Ð´Ð»Ñ\8f Ñ\81Ñ\82оÑ\80Ñ\96нок, Ð½Ð° Ñ\8fкиÑ\85 Ð¿ÐµÑ\80евиÑ\89ена кількість вузлів.",
        "node-count-exceeded-warning": "Кількість вузлів препроцесора на сторінці перевищила встановлену межу.",
        "expansion-depth-exceeded-category": "Сторінки, де перевищено глибину розгортання",
        "expansion-depth-exceeded-category-desc": "Це категорія для сторінок з перевищеною глибиною розкриття.",
        "converter-manual-rule-error": "Помилка в ручному правилі перетворення мови",
        "undo-success": "Редагування може бути скасовано.\nБудь ласка, перевірте порівняння нижче, щоб впевнитись, що це те, що ви хочете зробити, а потім збережіть зміни, щоб закінчити скасування редагування.",
        "undo-failure": "Неможливо скасувати редагування через несумісність проміжних змін.",
-       "undo-norev": "РедагÑ\83ваннÑ\8f Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±Ñ\83Ñ\82и Ñ\81каÑ\81оване, Ð±Ð¾ Ð²Ð¾Ð½Ð¾ Ð½Ðµ Ñ\96Ñ\81нÑ\83Ñ\94 Ð°Ð±Ð¾ Ð±Ñ\83ло Ð²Ð¸Ð»Ñ\83Ñ\87ене.",
-       "undo-nochange": "Схоже, редагування уже було скасовано.",
+       "undo-norev": "РедагÑ\83ваннÑ\8f Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±Ñ\83Ñ\82и Ñ\81каÑ\81оване, Ð±Ð¾ Ð¹Ð¾Ð³Ð¾ Ð½Ðµ Ñ\96Ñ\81нÑ\83Ñ\94 Ð°Ð±Ð¾ Ð±Ñ\83ло Ð²Ð¸Ð»Ñ\83Ñ\87ено.",
+       "undo-nochange": "Схоже, редагування вже було скасовано.",
        "undo-summary": "Скасування редагування № $1 користувача [[Special:Contributions/$2|$2]] ([[User talk:$2|обговорення]])",
-       "undo-summary-username-hidden": "Скасувати перевірку $1 прихованого користувача",
+       "undo-summary-username-hidden": "Скасувати правку $1, виконану прихованим користувачем",
        "cantcreateaccounttitle": "Неможливо створити обліковий запис",
        "cantcreateaccount-text": "Створення облікових записів із цієї IP-адреси ('''$1''') було заблоковане [[User:$3|користувачем $3]].\n\n$3 зазначив таку причину: ''$2''",
-       "cantcreateaccount-range-text": "СÑ\82воÑ\80еннÑ\8f Ð¾Ð±Ð»Ñ\96кового Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83 Ñ\96з IP-адÑ\80еÑ\81 Ñ\83 Ð´Ñ\96апазонÑ\96  '''$1''', Ñ\8fкий Ð²ÐºÐ»Ñ\8eÑ\87аÑ\94 Ð²Ð°Ñ\88Ñ\83 IP-адÑ\80еÑ\81Ñ\83 ('''$4'''), Ð²Ð¶Ðµ заблоковано користувачем [[User:$3|$3]].\n\nКористувач $3 вказав як причину ''$2''",
+       "cantcreateaccount-range-text": "СÑ\82воÑ\80еннÑ\8f Ð¾Ð±Ð»Ñ\96кового Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83 Ñ\96з IP-адÑ\80еÑ\81 Ñ\83 Ð´Ñ\96апазонÑ\96  '''$1''', Ñ\8fкий Ð²ÐºÐ»Ñ\8eÑ\87аÑ\94 Ð²Ð°Ñ\88Ñ\83 IP-адÑ\80еÑ\81Ñ\83 ('''$4'''), Ð±Ñ\83ло заблоковано користувачем [[User:$3|$3]].\n\nКористувач $3 вказав як причину ''$2''",
        "viewpagelogs": "Показати журнали для цієї сторінки",
        "nohistory": "Для цієї статті відсутній журнал редагувань.",
        "currentrev": "Поточна версія",
        "currentrevisionlink": "Поточна версія",
        "cur": "поточн.",
        "next": "наст.",
-       "last": "оÑ\81Ñ\82.",
+       "last": "попеÑ\80.",
        "page_first": "перша",
        "page_last": "остання",
-       "histlegend": "Пояснення: (поточн.) = відмінності від поточної версії,\n(ост.) = відмінності від попередньої версії, '''м''' = незначне редагування",
+       "histlegend": "Ð\92ибÑ\96Ñ\80 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97: Ð\9fознаÑ\87Ñ\82е Ñ\83 ÐºÑ\80Ñ\83глиÑ\85 Ð²Ñ\96конÑ\86Ñ\8fÑ\85 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97 Ð´Ð»Ñ\8f Ð¿Ð¾Ñ\80Ñ\96внÑ\8fннÑ\8f Ñ\96 Ð½Ð°Ñ\82иÑ\81нÑ\96Ñ\82Ñ\8c Â«Enter» Ð°Ð±Ð¾ ÐºÐ½Ð¾Ð¿ÐºÑ\83 Ð²Ð½Ð¸Ð·Ñ\83.\n\nÐ\9fоÑ\8fÑ\81неннÑ\8f: (поÑ\82оÑ\87н.) = Ð²Ñ\96дмÑ\96нноÑ\81Ñ\82Ñ\96 Ð²Ñ\96д Ð¿Ð¾Ñ\82оÑ\87ноÑ\97 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97,\n(оÑ\81Ñ\82.) = Ð²Ñ\96дмÑ\96нноÑ\81Ñ\82Ñ\96 Ð²Ñ\96д Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\8cоÑ\97 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97, '''м''' = Ð½ÐµÐ·Ð½Ð°Ñ\87не Ñ\80едагÑ\83ваннÑ\8f",
        "history-fieldset-title": "Переглянути історію",
        "history-show-deleted": "Тільки вилучені",
        "histfirst": "найдавніші",
        "histlast": "найновіші",
        "historysize": "($1 {{PLURAL:$1|байт|байти|байтів}})",
-       "historyempty": "(поÑ\80ожнÑ\8cо)",
+       "historyempty": "(поÑ\80ожнÑ\8f)",
        "history-feed-title": "Історія редагувань",
        "history-feed-description": "Історія редагувань цієї сторінки в вікі",
        "history-feed-item-nocomment": "$1 в $2",
        "rev-deleted-comment": "(опис редагування вилучено)",
        "rev-deleted-user": "(ім'я автора стерто)",
        "rev-deleted-event": "(запис журналу вилучений)",
-       "rev-deleted-user-contribs": "[ім'я користувача або IP-адреса вилучені — редагування приховане у внеску]",
+       "rev-deleted-user-contribs": "[ім'я користувача або IP-адреса вилучені — редагування приховане з внеску]",
        "rev-deleted-text-permission": "Ця версія сторінки '''вилучена'''.\nМожливо є пояснення в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журналі вилучень].",
        "rev-suppressed-text-permission": "Цю версію сторінки було <strong>приховано</strong>.\nДетальніше можна подивитися у [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журналі приховування].",
        "rev-deleted-text-unhide": "Ця версія сторінки була '''вилучена'''.\nПодробиці наведені у [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журналі вилучень].\nВи все ще можете [$1 переглянути цю версію], якщо забажаєте.",
        "revdelete-selected-text": "{{PLURAL:$1|Вибрана редакція|Вибрані редакції}} із [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Вибрана версія файлу|Вибрані версії файлу}} із [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|1=Обраний запис|Обрані записи}} журналу:",
-       "revdelete-text-text": "Видалені версії будуть як і раніше видно в історії сторінки, але їх частини вмісту будуть доступні для учасників.",
+       "revdelete-text-text": "Видалені версії будуть як і раніше, показані в історії сторінки, але частини їх вмісту будуть недоступні для учасників.",
        "revdelete-text-file": "Видалені версії файлу будуть як і раніше видно в історії сторінки, але їх частини вмісту будуть доступні для учасників.",
-       "logdelete-text": "Видалені події в журналі будуть як і раніше видно в журналах, але частини їх вмісту будуть доступні для учасників.",
-       "revdelete-text-others": "Інші адміністратори на як і раніше будуть мати можливість доступу до прихованого вмісту і зможуть відновити його, якщо не встановлено додаткові обмеження.",
-       "revdelete-confirm": "Будь ласка, підтвердить, що ви справді бажаєте це здійснити, усвідомлюєте наслідки та робите це згідно з [[{{MediaWiki:Policy-url}}|правилами]].",
+       "logdelete-text": "Ð\92идаленÑ\96 Ð¿Ð¾Ð´Ñ\96Ñ\97 Ð² Ð¶Ñ\83Ñ\80налÑ\96 Ð±Ñ\83дÑ\83Ñ\82Ñ\8c Ñ\8fк Ñ\96 Ñ\80анÑ\96Ñ\88е Ð²Ð¸Ð´Ð½Ð¾ Ð² Ð¶Ñ\83Ñ\80налаÑ\85, Ð°Ð»Ðµ Ñ\87аÑ\81Ñ\82ини Ñ\97Ñ\85 Ð²Ð¼Ñ\96Ñ\81Ñ\82Ñ\83 Ð±Ñ\83дÑ\83Ñ\82Ñ\8c Ð½ÐµÐ´Ð¾Ñ\81Ñ\82Ñ\83пнÑ\96 Ð´Ð»Ñ\8f Ñ\83Ñ\87аÑ\81никÑ\96в.",
+       "revdelete-text-others": "Інші адміністратори, як і раніше, будуть мати можливість доступу до прихованого вмісту і зможуть відновити його, якщо не встановлено додаткові обмеження.",
+       "revdelete-confirm": "Будь ласка, підтвердіть, що ви справді бажаєте це здійснити, що усвідомлюєте наслідки та робите це згідно з [[{{MediaWiki:Policy-url}}|правилами]].",
        "revdelete-suppress-text": "Приховування може відбуватися '''лише''' в таких випадках:\n* Потенційно наклепницькі відомості\n* Недоречна особиста інформація\n*: ''домашні адреси, номери телефонів, номер паспорта тощо.''",
        "revdelete-legend": "Встановити обмеження видимості",
        "revdelete-hide-text": "Текст версії сторінки",
        "logdelete-failure": "'''Не вдалося встановити видимість журналу:'''\n$1",
        "revdel-restore": "Змінити видимість",
        "pagehist": "Історія сторінки",
-       "deletedhist": "Історія вилучень",
+       "deletedhist": "Історія вилучена",
        "revdelete-hide-current": "Помилка приховування запису від $2, $1: це поточна версія.\nЇї не можна приховати.",
        "revdelete-show-no-access": "Помилка показу запису від $2, $1: він позначений як «з обмеженим доступом».\nВи не маєте доступу до нього.",
        "revdelete-modify-no-access": "Помилка редгування запису від $2, $1: його поначено як \"з обмеженим доступом\".\nВи не маєте доступу до нього.",
        "revdelete-no-change": "'''Увага:''' запис від $2, $1 вже має запрошені налаштування видимості.",
        "revdelete-concurrent-change": "Помилка редагування запису від $2, $1: його стан змінений кимось іншим, поки ви робили свої зміни.\nБудь ласка, перевірте журнал.",
        "revdelete-only-restricted": "Помилка приховання запису від $2, $1: ви не можете приховати записи від перегляду адміністраторів без одночасного вибору однієї з інших опцій приховання.",
-       "revdelete-reason-dropdown": "* Типові причини вилучення\n** Порушення авторських прав\n** Недоречна особиста інформація\n** Невідповідне ім'я користувача\n** Потенційно наклепна інформація",
+       "revdelete-reason-dropdown": "* Типові причини вилучення\n** Порушення авторських прав\n** Недоречні коментарі чи особиста інформація\n** Невідповідне ім'я користувача\n** Потенційно наклепницька інформація",
        "revdelete-otherreason": "Інша/додаткова причина:",
        "revdelete-reasonotherlist": "Інша причина",
-       "revdelete-edit-reasonlist": "Редагувати причини вилучень",
+       "revdelete-edit-reasonlist": "Редагувати причини вилучення",
        "revdelete-offender": "Автор версії:",
        "suppressionlog": "Журнал приховувань",
        "suppressionlogtext": "Нижче наведено список вилучень та блокувань, включаючи матеріали, приховані від адміністраторів.\nДивіться [[Special:BlockList|список блокувань]] для перегляду поточних блокувань.",
-       "mergehistory": "Об'єднання історій редагувань",
+       "mergehistory": "Об'єднати історії редагувань",
        "mergehistory-header": "Ця сторінка дозволяє вам об'єднати історії редагувань двох різних сторінок.\nПереконайтеся, що ця зміна збереже цілісність історії сторінки.",
        "mergehistory-box": "Об'єднати історії редагувань двох сторінок:",
        "mergehistory-from": "Вихідна сторінка:",
        "mergehistory-into": "Цільова сторінка:",
        "mergehistory-list": "Історія редагувань, що об'єднується",
-       "mergehistory-merge": "Ð\9dаÑ\81Ñ\82Ñ\83пнÑ\96 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97 [[:$1]] Ð¼Ð¾Ð¶Ñ\83Ñ\82Ñ\8c Ð±Ñ\83Ñ\82и Ð¾Ð±'Ñ\94днанÑ\96 Ñ\83 [[:$2]]. Ð\92икоÑ\80иÑ\81Ñ\82айÑ\82е Ð¿ÐµÑ\80емикаÑ\87Ñ\96 Ð´Ð»Ñ\8f Ñ\82ого, Ñ\89об Ð¾Ð±'Ñ\94днаÑ\82и Ñ\82Ñ\96лÑ\8cки Ð²Ð¸Ð±Ñ\80аний Ð´Ñ\96апазон Ñ\80едагÑ\83ванÑ\8cВрахуйте, що при використанні навігаційних посилань дані будуть втрачені.",
+       "mergehistory-merge": "Ð\9dаÑ\81Ñ\82Ñ\83пнÑ\96 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97 [[:$1]] Ð¼Ð¾Ð¶Ñ\83Ñ\82Ñ\8c Ð±Ñ\83Ñ\82и Ð¾Ð±'Ñ\94днанÑ\96 Ñ\83 [[:$2]]. Ð\92икоÑ\80иÑ\81Ñ\82айÑ\82е ÐºÑ\80Ñ\83глÑ\96 Ð²Ñ\96конÑ\86Ñ\8f, Ñ\89об Ð¾Ð±'Ñ\94днаÑ\82и Ñ\82Ñ\96лÑ\8cки Ð²Ð¸Ð±Ñ\80аний Ð´Ñ\96апазон Ñ\80едагÑ\83ванÑ\8c. \nВрахуйте, що при використанні навігаційних посилань дані будуть втрачені.",
        "mergehistory-go": "Показати редагування, що об'єднуються",
-       "mergehistory-submit": "Об'єднати редагування",
-       "mergehistory-empty": "Не знайдені редагування для об'єднання.",
+       "mergehistory-submit": "Об'єднати версії",
+       "mergehistory-empty": "Не знайдено версій для об'єднання.",
        "mergehistory-success": "$3 {{PLURAL:$3|редагування|редагування|редагувань}} з [[:$1]] успішно перенесені до [[:$2]].",
        "mergehistory-fail": "Не вдалося здійснити об'єднання історій сторінок, будь ласка, перевірте параметри сторінки й часу.",
        "mergehistory-fail-toobig": "Не вдалося виконати злиття історії оскільки буде перейменовано більше, ніж ліміт у $1 {{PLURAL:$1|версію|версії|версій}}.",
        "mergehistory-no-source": "Вихідна сторінка «$1» не існує.",
        "mergehistory-no-destination": "Цільова сторінка «$1» не існує.",
-       "mergehistory-invalid-source": "Ð\94жеÑ\80ело Ð¿Ð¾Ð²Ð¸Ð½Ð½Ðµ мати правильний заголовок.",
+       "mergehistory-invalid-source": "Ð\92иÑ\85Ñ\96дна Ñ\81Ñ\82оÑ\80Ñ\96нка Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° мати правильний заголовок.",
        "mergehistory-invalid-destination": "Цільова сторінка повинна мати правильний заголовок.",
        "mergehistory-autocomment": "Редагування з [[:$1]] перенесені до [[:$2]]",
        "mergehistory-comment": "Редагування [[:$1]] перенесені до [[:$2]]: $3",
        "uploadwarning": "Попередження",
        "uploadwarning-text": "Будь ласка, змініть наданий нижче опис файлу і спробуйте ще раз.",
        "savefile": "Зберегти файл",
-       "uploadedimage": "завантажив «[[$1]]»",
-       "overwroteimage": "завантажив нову версію «[[$1]]»",
        "uploaddisabled": "Завантаження заборонене",
        "copyuploaddisabled": "Завантаження через URL вимкнене.",
        "uploaddisabledtext": "Можливість завантаження файлів відключена.",
        "logentry-rights-rights": "$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3 із $4 на $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3",
        "logentry-rights-autopromote": "$1 було автоматично переведено із $4 в $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|завантажив|завантажила}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|завантажив|завантажила}} нову версію $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|завантажив|завантажила}} $3",
        "rightsnone": "(нема)",
        "feedback-bugornote": "Якщо ви готові описати технічні проблеми в деталях, будь ласка, [$1 повідомте про помилку].\nАбо можете використати форму нижче. Ваш коментар буде додано на сторінку \"[$3  $2]\", разом з іменем користувача.",
        "feedback-subject": "Тема:",
index 2394e91..b8bdf65 100644 (file)
        "uploadwarning": "Cảnh báo!",
        "uploadwarning-text": "Xin hãy chỉnh sửa miêu tả tập tin ở dưới và thử lại.",
        "savefile": "Lưu tập tin",
-       "uploadedimage": "đã tải “[[$1]]” lên",
-       "overwroteimage": "đã tải lên một phiên bản mới của “[[$1]]”",
        "uploaddisabled": "Chức năng tải lên đã bị khóa.",
        "copyuploaddisabled": "Chức năng tải lên từ địa chỉ URL đã bị tắt.",
        "uploaddisabledtext": "Chức năng tải tập tin đã bị tắt.",
index af52399..77f5c47 100644 (file)
        "windows-nonascii-filename": "箇wiki弗支持文件名用特別個字符。",
        "uploadwarning": "上载警告",
        "savefile": "保存文件",
-       "uploadedimage": "上传 \"[[$1]]\"",
        "sourcefilename": "源文件:",
        "destfilename": "目标文件名:",
        "watchthisupload": "關注箇文件",
index 5a8b7e7..6c1db9e 100644 (file)
        "uploadwarning": "אַרויפֿלאָדן וואָרענונג",
        "uploadwarning-text": "זײַט אַזוי גוט מאדיפֿיצירן די טעקע באַשרייבונג און פרובירט נאכאַמאָל.",
        "savefile": "אױפֿהיטן טעקע",
-       "uploadedimage": "אַרױפֿגעלאָדן \"[[$1]]\"",
-       "overwroteimage": "אַרויפֿגעלאָדן א נײַע ווערסיע פון \"[[$1]]\"",
        "uploaddisabled": "אַרויפֿלאָדן טעקעס מבוטל",
        "copyuploaddisabled": "ארויפלאדן דורך URL אומאקטיווירט",
        "uploaddisabledtext": "אַרויפֿלאָדן טעקעס נישט דערמעגלעכט.",
index 7483d2b..b40630f 100644 (file)
@@ -77,7 +77,8 @@
                        "아라",
                        "Mywood",
                        "Impersonator 1",
-                       "Duolaimi"
+                       "Duolaimi",
+                       "TianyinLee"
                ]
        },
        "tog-underline": "链接下划线:",
        "mainpage": "首页",
        "mainpage-description": "首页",
        "policy-url": "Project:方针",
-       "portal": "社å\8cºä¸\93页",
+       "portal": "社å\8cºä¸»页",
        "portal-url": "Project:社区专页",
        "privacy": "隐私权政策",
        "privacypage": "Project:隐私权政策",
        "showdiff": "显示更改",
        "blankarticle": "<strong>警告</strong>:您创建的页面是空白的。如果您再次点击“{{int:savearticle}}”,您将真的创建没有任何内容的页面。",
        "anoneditwarning": "<strong>警告:</strong>您没有登录。您的IP地址将被记录在该页面的编辑历史中。",
-       "anonpreviewwarning": "''你没有登录。保存会记录你的IP地址于该页面的编辑历史中。''",
+       "anonpreviewwarning": "<em>你没有登录。保存会记录你的IP地址于该页面的编辑历史中。</em>",
        "missingsummary": "'''提示:'''你没有提供编辑摘要。如果你再次点击“{{int:savearticle}}”,你的编辑将不带编辑摘要保存。",
        "missingcommenttext": "请在下面输入评论。",
        "missingcommentheader": "'''提示:''' 您还没有为此评论提供一个标题。如果您再次点击“{{int:savearticle}}”,您的编辑将不带标题保存。",
        "uploadwarning": "上传警告",
        "uploadwarning-text": "请修改下面的文件说明并重试。",
        "savefile": "保存文件",
-       "uploadedimage": "上传“[[$1]]”",
-       "overwroteimage": "上传“[[$1]]”的新版本",
        "uploaddisabled": "上传己停用。",
        "copyuploaddisabled": "URL上传已停用。",
        "uploaddisabledtext": "文件上传已停用。",
        "logentry-rights-rights": "$1{{GENDER:$2|更改}}$3的用户组自$4至$5",
        "logentry-rights-rights-legacy": "$1更改$3的用户组",
        "logentry-rights-autopromote": "$1被自动地{{GENDER:$2|提升}}自$4至$5",
+       "logentry-upload-upload": "$1{{GENDER:$2|上传了}}$3",
+       "logentry-upload-overwrite": "$1{{GENDER:$2|上传了}}$3的新版本",
+       "logentry-upload-revert": "$1{{GENDER:$2|上传了}}$3",
        "rightsnone": "(无)",
        "feedback-bugornote": "如果你准备好详细描述一个技术问题,请[$1 报告bug]。或者你可以使用下面的简单表格。你的评论将被添加至页面“[$3 $2]”,附有你的用户名。",
        "feedback-subject": "主题:",
index 4067d4e..6fb1a4d 100644 (file)
        "edithelp": "編輯説明",
        "mainpage": "首頁",
        "mainpage-description": "首頁",
-       "policy-url": "Project:方針",
+       "policy-url": "Project:Policy",
        "portal": "社群主頁",
        "portal-url": "Project:社群專頁",
        "privacy": "隱私政策",
        "uploadwarning": "上傳警告",
        "uploadwarning-text": "請修改以下的檔案描述並重試。",
        "savefile": "儲存檔案",
-       "uploadedimage": "已上傳 \"[[$1]]\"",
-       "overwroteimage": "已上傳新版本的 \"[[$1]]\"",
        "uploaddisabled": "己停用上傳。",
        "copyuploaddisabled": "己停用使用 URL 上傳。",
        "uploaddisabledtext": "已停用檔案上傳。",
        "trackingcategories-disabled": "分類被禁用",
        "mailnologin": "沒有傳送位址",
        "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件位址才可以傳送信件給其他使用者。",
-       "emailuser": "E-mail該使用者",
-       "emailuser-title-target": "E-mail該{{GENDER:$1|使用者}}",
+       "emailuser": "Email 給此使用者",
+       "emailuser-title-target": "Email 給此{{GENDER:$1|使用者}}",
        "emailuser-title-notarget": "E-mail給使用者",
        "emailpage": "E-mail 給使用者",
        "emailpagetext": "您可以使用以下表格傳送電子郵件給這位 {{Gender:$1|使用者}}。\n您在 [[Special:Preferences|偏好設定]] 中所輸入的電子郵件位址將會作為郵件的 \"寄件人\",因此該使用者可直接回覆您。",
        "emailccsubject": "您寄給 $1 的訊息副本:$2",
        "emailsent": "電子郵件已寄出",
        "emailsenttext": "您的電子郵件訊息已經寄出。",
-       "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"E-mail該使用者\" 功能寄給 $2。",
+       "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"Email 給此使用者\" 功能寄給 $2。",
        "usermessage-summary": "留給系統訊息。",
        "usermessage-editor": "系統訊息",
        "watchlist": "監視清單",
index eed76b6..e97f292 100644 (file)
@@ -26,6 +26,7 @@
                "../../resources/src/jquery/jquery.checkboxShiftClick.js",
                "../../resources/src/jquery/jquery.client.js",
                "../../resources/src/jquery/jquery.colorUtil.js",
+               "../../resources/src/jquery/jquery.confirmable.js",
                "../../resources/src/jquery/jquery.footHovzer.js",
                "../../resources/src/jquery/jquery.getAttrs.js",
                "../../resources/src/jquery/jquery.hidpi.js",
index d3f8f7d..b588cf2 100644 (file)
@@ -191,6 +191,19 @@ return array(
        'jquery.colorUtil' => array(
                'scripts' => 'resources/src/jquery/jquery.colorUtil.js',
        ),
+       'jquery.confirmable' => array(
+               'scripts' => array(
+                       'resources/src/jquery/jquery.confirmable.js',
+                       'resources/src/jquery/jquery.confirmable.mediawiki.js',
+               ),
+               'messages' => array(
+                       'confirmable-confirm',
+                       'confirmable-yes',
+                       'confirmable-no',
+               ),
+               'styles' => 'resources/src/jquery/jquery.confirmable.css',
+               'dependencies' => 'mediawiki.jqueryMsg',
+       ),
        // Use mediawiki.cookie in new code, rather than jquery.cookie.
        'jquery.cookie' => array(
                'scripts' => 'resources/lib/jquery/jquery.cookie.js',
@@ -862,6 +875,9 @@ return array(
        ),
        'mediawiki.htmlform' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js',
+               'dependencies' => array(
+                       'jquery.mwExtension',
+               ),
                'messages' => array( 'htmlform-chosen-placeholder' ),
        ),
        'mediawiki.icon' => array(
index 50df67a..02bdafa 100644 (file)
                        "Xiaomingyan",
                        "Yfdyh000",
                        "Zhangjintao",
-                       "乌拉跨氪"
+                       "乌拉跨氪",
+                       "Great Brightstar"
                ]
        },
        "ooui-outline-control-move-down": "下移项",
        "ooui-outline-control-move-up": "上移项",
        "ooui-outline-control-remove": "删除项",
        "ooui-toolbar-more": "更多",
-       "ooui-dialog-message-accept": "",
+       "ooui-dialog-message-accept": "确定",
        "ooui-dialog-message-reject": "取消",
        "ooui-dialog-process-error": "发生一些错误",
        "ooui-dialog-process-dismiss": "解除",
index 525304c..22c3079 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
  */
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
index 1267a3c..c53772e 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
  */
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
index 737113e..6f63575 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
  */
 ( function ( OO ) {
 
@@ -1114,6 +1114,7 @@ OO.ui.Frame = function OoUiFrame( config ) {
        // Properties
        this.loading = null;
        this.config = config;
+       this.dir = null;
 
        // Initialize
        this.$element
@@ -1287,7 +1288,7 @@ OO.ui.Frame.prototype.load = function () {
        win = this.$element.prop( 'contentWindow' );
        doc = win.document;
 
-       // Figure out directionality:
+       // Cache directionality
        this.dir = OO.ui.Element.getDir( this.$element ) || 'ltr';
 
        // Initialize contents
@@ -1298,7 +1299,7 @@ OO.ui.Frame.prototype.load = function () {
        doc.write(
                '<!doctype html>' +
                '<html>' +
-                       '<body class="oo-ui-frame-content oo-ui-' + this.dir + '" dir="' + this.dir + '">' +
+                       '<body class="oo-ui-frame-content oo-ui-' + this.getDir() + '" dir="' + this.getDir() + '">' +
                        '</body>' +
                '</html>'
        );
@@ -1331,6 +1332,15 @@ OO.ui.Frame.prototype.setSize = function ( width, height ) {
        return this;
 };
 
+/**
+ * Get the directionality of the frame
+ *
+ * @return {string} Directionality, 'ltr' or 'rtl'
+ */
+OO.ui.Frame.prototype.getDir = function () {
+       return this.dir;
+};
+
 /**
  * Container for elements.
  *
index bffc230..aa5e6ac 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
  */
 /* Textures */
 
diff --git a/resources/src/jquery/jquery.confirmable.css b/resources/src/jquery/jquery.confirmable.css
new file mode 100644 (file)
index 0000000..de69072
--- /dev/null
@@ -0,0 +1,28 @@
+.jquery-confirmable-button {
+       /* Automatically flipped */
+       margin-left: 1ex;
+}
+
+.jquery-confirmable-wrapper {
+       /* Line breaks within the interface text are unpleasant */
+       white-space: nowrap;
+       /* Hiding the original text when it slides to the left */
+       overflow: hidden;
+}
+
+.jquery-confirmable-wrapper,
+.jquery-confirmable-element,
+.jquery-confirmable-interface {
+       /* We need inline-block to be able to size the elements and calculate their dimensions */
+       display: inline-block;
+       /* inline-block elements in this context align to baseline by default */
+       vertical-align: bottom;
+}
+
+.jquery-confirmable-element {
+       transition: margin 250ms cubic-bezier(0.2, 0.8, 0.2, 0.8);
+}
+
+.jquery-confirmable-interface {
+       transition: width 250ms cubic-bezier(0.2, 0.8, 0.2, 0.8);
+}
diff --git a/resources/src/jquery/jquery.confirmable.js b/resources/src/jquery/jquery.confirmable.js
new file mode 100644 (file)
index 0000000..4b80d95
--- /dev/null
@@ -0,0 +1,168 @@
+/**
+ * jQuery confirmable plugin
+ *
+ * Released under the MIT License.
+ *
+ * @author Bartosz Dziewoński
+ *
+ * @class jQuery.plugin.confirmable
+ */
+( function ( $ ) {
+       var identity = function ( data ) {
+               return data;
+       };
+
+       /**
+        * Enable inline confirmation for given clickable element (like `<a />` or `<button />`).
+        *
+        * An additional inline confirmation step being shown before the default action is carried out on
+        * click.
+        *
+        * Calling `.confirmable( { handler: function () { … } } )` will fire the handler only after the
+        * confirmation step.
+        *
+        * The element will have the `jquery-confirmable-element` class added to it when it's clicked for
+        * the first time, which has `white-space: nowrap;` and `display: inline-block;` defined in CSS.
+        * If the computed values for the element are different when you make it confirmable, you might
+        * encounter unexpected behavior.
+        *
+        * @param {Object} [options]
+        * @param {string} [options.events='click'] Events to hook to.
+        * @param {Function} [options.wrapperCallback] Callback to fire when preparing confirmable
+        *     interface. Receives the interface jQuery object as the only parameter.
+        * @param {Function} [options.buttonCallback] Callback to fire when preparing confirmable buttons.
+        *     It is fired separately for the 'Yes' and 'No' button. Receives the button jQuery object as
+        *     the first parameter and 'yes' or 'no' as the second.
+        * @param {Function} [options.handler] Callback to fire when the action is confirmed (user clicks
+        *     the 'Yes' button).
+        * @param {string} [options.i18n] Text to use for interface elements.
+        * @param {string} [options.i18n.confirm] Text to use for the confirmation question.
+        * @param {string} [options.i18n.yes] Text to use for the 'Yes' button.
+        * @param {string} [options.i18n.no] Text to use for the 'No' button.
+        *
+        * @chainable
+        */
+       $.fn.confirmable = function ( options ) {
+               options = $.extend( true, {}, $.fn.confirmable.defaultOptions, options || {} );
+
+               return this.on( options.events, function ( e ) {
+                       var $element, $text, $buttonYes, $buttonNo, $wrapper, $interface, $elementClone,
+                               interfaceWidth, elementWidth, rtl, positionOffscreen, positionRestore, sideMargin;
+
+                       $element = $( this );
+
+                       if ( $element.data( 'jquery-confirmable-button' ) ) {
+                               // We're running on a clone of this element that represents the 'Yes' or 'No' button.
+                               // (This should never happen for the 'No' case unless calling code does bad things.)
+                               return;
+                       }
+
+                       // Only prevent native event handling. Stopping other JavaScript event handlers
+                       // is impossible because they might have already run (we have no control over the order).
+                       e.preventDefault();
+
+                       rtl = $element.css( 'direction' ) === 'rtl';
+                       if ( rtl ) {
+                               positionOffscreen = { position: 'absolute', right: '-9999px' };
+                               positionRestore = { position: '', right: '' };
+                               sideMargin = 'marginRight';
+                       } else {
+                               positionOffscreen = { position: 'absolute', left: '-9999px' };
+                               positionRestore = { position: '', left: '' };
+                               sideMargin = 'marginLeft';
+                       }
+
+                       if ( $element.hasClass( 'jquery-confirmable-element' ) ) {
+                               $wrapper = $element.closest( '.jquery-confirmable-wrapper' );
+                               $interface = $wrapper.find( '.jquery-confirmable-interface' );
+                               $text = $interface.find( '.jquery-confirmable-text' );
+                               $buttonYes = $interface.find( '.jquery-confirmable-button-yes' );
+                               $buttonNo = $interface.find( '.jquery-confirmable-button-no' );
+
+                               interfaceWidth = $interface.data( 'jquery-confirmable-width' );
+                               elementWidth = $element.data( 'jquery-confirmable-width' );
+                       } else {
+                               $elementClone = $element.clone( true );
+                               $element.addClass( 'jquery-confirmable-element' );
+
+                               elementWidth = $element.width();
+                               $element.data( 'jquery-confirmable-width', elementWidth );
+
+                               $wrapper = $( '<span>' )
+                                       .addClass( 'jquery-confirmable-wrapper' );
+                               $element.wrap( $wrapper );
+
+                               // Build the mini-dialog
+                               $text = $( '<span>' )
+                                       .addClass( 'jquery-confirmable-text' )
+                                       .text( options.i18n.confirm );
+
+                               // Clone original element along with event handlers to easily replicate its behavior.
+                               // We could fiddle with .trigger() etc., but that is troublesome especially since
+                               // Safari doesn't implement .click() on <a> links and jQuery follows suit.
+                               $buttonYes = $elementClone.clone( true )
+                                       .addClass( 'jquery-confirmable-button jquery-confirmable-button-yes' )
+                                       .data( 'jquery-confirmable-button', true )
+                                       .text( options.i18n.yes );
+                               if ( options.handler ) {
+                                       $buttonYes.on( options.events, options.handler );
+                               }
+                               $buttonYes = options.buttonCallback( $buttonYes, 'yes' );
+
+                               // Clone it without any events and prevent default action to represent the 'No' button.
+                               $buttonNo = $elementClone.clone( false )
+                                       .addClass( 'jquery-confirmable-button jquery-confirmable-button-no' )
+                                       .data( 'jquery-confirmable-button', true )
+                                       .text( options.i18n.no )
+                                       .on( options.events, function ( e ) {
+                                               $element.css( sideMargin, 0 );
+                                               $interface.css( 'width', 0 );
+                                               e.preventDefault();
+                                       } );
+                               $buttonNo = options.buttonCallback( $buttonNo, 'no' );
+
+                               // Prevent memory leaks
+                               $elementClone.remove();
+
+                               $interface = $( '<span>' )
+                                       .addClass( 'jquery-confirmable-interface' )
+                                       .append( $text, $buttonYes, $buttonNo );
+                               $interface = options.wrapperCallback( $interface );
+
+                               // Render offscreen to measure real width
+                               $interface.css( positionOffscreen );
+                               // Insert it in the correct place while we're at it
+                               $element.after( $interface );
+                               interfaceWidth = $interface.width();
+                               $interface.data( 'jquery-confirmable-width', interfaceWidth );
+                               $interface.css( positionRestore );
+
+                               // Hide to animate the transition later
+                               $interface.css( 'width', 0 );
+                       }
+
+                       // Hide element, show interface. This triggers both transitions.
+                       // In a timeout to trigger the 'width' transition.
+                       setTimeout( function () {
+                               $element.css( sideMargin, -elementWidth );
+                               $interface.css( 'width', interfaceWidth );
+                       }, 1 );
+               } );
+       };
+
+       /**
+        * Default options. Overridable primarily for internationalisation handling.
+        * @property {Object} defaultOptions
+        */
+       $.fn.confirmable.defaultOptions = {
+               events: 'click',
+               wrapperCallback: identity,
+               buttonCallback: identity,
+               handler: null,
+               i18n: {
+                       confirm: 'Are you sure?',
+                       yes: 'Yes',
+                       no: 'No'
+               }
+       };
+}( jQuery ) );
diff --git a/resources/src/jquery/jquery.confirmable.mediawiki.js b/resources/src/jquery/jquery.confirmable.mediawiki.js
new file mode 100644 (file)
index 0000000..7ac04f4
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+ * jQuery confirmable plugin customization for MediaWiki
+ *
+ * This file serves to inject our localised messages into it.
+ */
+
+( function ( mw, $ ) {
+       $.fn.confirmable.defaultOptions.i18n = {
+               confirm: mw.message( 'confirmable-confirm', mw.user ).text(),
+               yes: mw.message( 'confirmable-yes' ).text(),
+               no: mw.message( 'confirmable-no' ).text()
+       };
+}( mediaWiki, jQuery ) );
index 9eea492..5027f7a 100644 (file)
                        $ul = $( this ).prev( 'ul.mw-htmlform-cloner-ul' );
 
                        html = $ul.data( 'template' ).replace(
-                               $ul.data( 'uniqueId' ), 'clone' + ( ++cloneCounter ), 'g'
+                               new RegExp( $.escapeRE( $ul.data( 'uniqueId' ) ), 'g' ),
+                               'clone' + ( ++cloneCounter )
                        );
 
                        $li = $( '<li>' )
index cd21ecc..e2f47f5 100644 (file)
@@ -24,10 +24,10 @@ function isCompatible( ua ) {
                ua = navigator.userAgent;
        }
 
-       // MediaWiki JS or jQuery is known to have issues with:
+       // Browsers with outdated or limited JavaScript engines get the no-JS experience
        return !(
-               // Internet Explorer < 6
-               ( ua.indexOf( 'MSIE' ) !== -1 && parseFloat( ua.split( 'MSIE' )[1] ) < 6 ) ||
+               // Internet Explorer < 7
+               ( ua.indexOf( 'MSIE' ) !== -1 && parseFloat( ua.split( 'MSIE' )[1] ) < 7 ) ||
                // Firefox < 3
                ( ua.indexOf( 'Firefox/' ) !== -1 && parseFloat( ua.split( 'Firefox/' )[1] ) < 3 ) ||
                // BlackBerry < 6
index 0318b17..312f9c6 100644 (file)
@@ -1,5 +1,7 @@
 {
+       "@metadata": [],
        "skinname-monobook": "Monobook",
+       "monobook-desc": "Den klassiske MediaWiki-drakten fra 2004, oppkalt etter svarthvittbildet av en bok  som brukes som bakgrunnsbilde",
        "monobook.css": "/* CSS i denne fila vil gjelde alle som bruker drakta Monobook */",
        "monobook.js": "/* Javascript i denne fila vil gjelde for brukere av drakta Monobook */"
 }
diff --git a/skins/common/IEFixes.js b/skins/common/IEFixes.js
deleted file mode 100644 (file)
index 545acad..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * IE fixes javascript loaded by wikibits.js for IE <= 6.0
- */
-/*global isMSIE55:true, doneIETransform:true, doneIEAlphaFix:true */
-/*global hookit:true, fixalpha:true */
-( function ( mw, $ ) {
-
-var expandedURLs, hasClass;
-
-// Also returns true for IE6, 7, 8, 9 and 10. createPopup is removed in IE11.
-// Good thing this is only loaded for IE <= 6 by wikibits.
-// Might as well set it to true.
-isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
-doneIETransform = false;
-doneIEAlphaFix = false;
-
-hookit = function () {
-       if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) {
-               doneIETransform = true;
-               fixalpha();
-       }
-};
-
-if ( document.attachEvent ) {
-       document.attachEvent( 'onreadystatechange', hookit );
-}
-
-// png alpha transparency fixes
-fixalpha = function ( logoId ) {
-       // bg
-       if ( isMSIE55 && !doneIEAlphaFix ) {
-               var bg, imageUrl, linkFix, logoa, logospan, plogo;
-               plogo = document.getElementById( logoId || 'p-logo' );
-               if ( !plogo ) {
-                       return;
-               }
-
-               logoa = plogo.getElementsByTagName('a')[0];
-               if ( !logoa ) {
-                       return;
-               }
-
-               bg = logoa.currentStyle.backgroundImage;
-               imageUrl = bg.substring( 5, bg.length - 2 );
-
-               doneIEAlphaFix = true;
-
-               if ( imageUrl.substr( imageUrl.length - 4 ).toLowerCase() === '.png' ) {
-                       logospan = logoa.appendChild( document.createElement( 'span' ) );
-
-                       logoa.style.backgroundImage = 'none';
-                       logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')';
-                       logospan.style.height = '100%';
-                       logospan.style.position = 'absolute';
-                       logospan.style.width = logoa.currentStyle.width;
-                       logospan.style.cursor = 'hand';
-                       // Center image with hack for IE5.5
-                       if ( document.documentElement.dir === 'rtl' ) {
-                               logospan.style.right = '50%';
-                               logospan.style.setExpression( 'marginRight', '"-" + (this.offsetWidth / 2) + "px"' );
-                       } else {
-                               logospan.style.left = '50%';
-                               logospan.style.setExpression( 'marginLeft', '"-" + (this.offsetWidth / 2) + "px"' );
-                       }
-                       logospan.style.top = '50%';
-                       logospan.style.setExpression( 'marginTop', '"-" + (this.offsetHeight / 2) + "px"' );
-
-                       linkFix = logoa.appendChild( logoa.cloneNode() );
-                       linkFix.style.position = 'absolute';
-                       linkFix.style.height = '100%';
-                       linkFix.style.width = '100%';
-               }
-       }
-};
-
-if ( isMSIE55 ) {
-       // ondomready
-       $( fixalpha );
-}
-
-// Expand links for printing
-hasClass = function ( classText, classWanted ) {
-       var i = 0, classArr = classText.split(/\s/);
-       for ( i = 0; i < classArr.length; i++ ) {
-               if ( classArr[i].toLowerCase() === classWanted.toLowerCase() ) {
-                       return true;
-               }
-       }
-       return false;
-};
-
-window.onbeforeprint = function () {
-       var allLinks, contentEl, expandedLink, expandedText, i;
-
-       expandedURLs = [];
-       contentEl = document.getElementById( 'content' );
-
-       if ( contentEl ) {
-               allLinks = contentEl.getElementsByTagName( 'a' );
-
-               for ( i = 0; i < allLinks.length; i++ ) {
-                       if ( hasClass( allLinks[i].className, 'external' ) && !hasClass( allLinks[i].className, 'free' ) ) {
-                               expandedLink = document.createElement( 'span' );
-                               expandedText = document.createTextNode( ' (' + allLinks[i].href + ')' );
-                               expandedLink.appendChild( expandedText );
-                               allLinks[i].parentNode.insertBefore( expandedLink, allLinks[i].nextSibling );
-                               expandedURLs[i] = expandedLink;
-                       }
-               }
-       }
-};
-
-window.onafterprint = function () {
-       for ( var i = 0; i < expandedURLs.length; i++ ) {
-               if ( expandedURLs[i] ) {
-                       expandedURLs[i].removeNode( true );
-               }
-       }
-};
-
-}( mediaWiki, jQuery ) );
index b6689f9..5c6e63b 100644 (file)
@@ -5,7 +5,6 @@
        var msg,
                win = window,
                ua = navigator.userAgent.toLowerCase(),
-               isIE6 = ( /msie ([0-9]{1,}[\.0-9]{0,})/.exec( ua ) && parseFloat( RegExp.$1 ) <= 6.0 ),
                onloadFuncts = [];
 
 /**
@@ -199,8 +198,4 @@ win.importStylesheetURI = function ( url, media ) {
        return l;
 };
 
-if ( isIE6 ) {
-       win.importScriptURI( mw.config.get( 'stylepath' ) + '/common/IEFixes.js' );
-}
-
 }( mediaWiki, jQuery ) );
index 6a36b4b..c2acec0 100644 (file)
@@ -317,4 +317,52 @@ class MessageTest extends MediaWikiLangTestCase {
        public function testInLanguageThrows() {
                wfMessage( 'foo' )->inLanguage( 123 );
        }
+
+       public function keyProvider() {
+               return array(
+                       'string' => array(
+                               'key' => 'mainpage',
+                               'expected' => array( 'mainpage' ),
+                       ),
+                       'single' => array(
+                               'key' => array( 'mainpage' ),
+                               'expected' => array( 'mainpage' ),
+                       ),
+                       'multi' => array(
+                               'key' => array( 'mainpage-foo', 'mainpage-bar', 'mainpage' ),
+                               'expected' => array( 'mainpage-foo', 'mainpage-bar', 'mainpage' ),
+                       ),
+                       'empty' => array(
+                               'key' => array(),
+                               'expected' => null,
+                               'exception' => 'InvalidArgumentException',
+                       ),
+                       'null' => array(
+                               'key' => null,
+                               'expected' => null,
+                               'exception' => 'InvalidArgumentException',
+                       ),
+                       'bad type' => array(
+                               'key' => 17,
+                               'expected' => null,
+                               'exception' => 'InvalidArgumentException',
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider keyProvider()
+        *
+        * @covers Message::getKey
+        */
+       public function testGetKey( $key, $expected, $exception = null ) {
+               if ( $exception ) {
+                       $this->setExpectedException( $exception );
+               }
+
+               $msg = new Message( $key );
+               $this->assertEquals( $expected, $msg->getKeysToTry() );
+               $this->assertEquals( count( $expected ) > 1, $msg->isMultiKey() );
+               $this->assertContains( $msg->getKey(), $expected );
+       }
 }
diff --git a/tests/phpunit/includes/api/ApiRevisionDeleteTest.php b/tests/phpunit/includes/api/ApiRevisionDeleteTest.php
new file mode 100644 (file)
index 0000000..21f4322
--- /dev/null
@@ -0,0 +1,114 @@
+<?php
+
+/**
+ * Tests for action=revisiondelete
+ * @covers APIRevisionDelete
+ * @group API
+ * @group medium
+ * @group Database
+ */
+class ApiRevisionDeleteTest extends ApiTestCase {
+
+       static $page = 'Help:ApiRevDel_test';
+       var $revs = array();
+
+       protected function setUp() {
+               // Needs to be before setup since this gets cached
+               $this->mergeMwGlobalArrayValue( 'wgGroupPermissions', array( 'sysop' => array( 'deleterevision' => true ) ) );
+               parent::setUp();
+               // Make a few edits for us to play with
+               for ( $i = 1; $i <= 5; $i++ ) {
+                       self::editPage( self::$page, MWCryptRand::generateHex( 10 ), 'summary' );
+                       $this->revs[] = Title::newFromText( self::$page )->getLatestRevID( Title::GAID_FOR_UPDATE );
+               }
+
+       }
+
+       public function testHidingRevisions() {
+               $user = self::$users['sysop']->user;
+               $revid = array_shift( $this->revs );
+               $out = $this->doApiRequest( array(
+                       'action' => 'revisiondelete',
+                       'type' => 'revision',
+                       'target' => self::$page,
+                       'ids' => $revid,
+                       'hide' => 'content|user|comment',
+                       'token' => $user->getEditToken(),
+               ) );
+               // Check the output
+               $out = $out[0]['revisiondelete'];
+               $this->assertEquals( $out['status'], 'Success' );
+               $this->assertArrayHasKey( 'items', $out );
+               $item = $out['items'][0];
+               $this->assertArrayHasKey( 'userhidden', $item );
+               $this->assertArrayHasKey( 'commenthidden', $item );
+               $this->assertArrayHasKey( 'texthidden', $item );
+               $this->assertEquals( $item['id'], $revid );
+
+               // Now check that that revision was actually hidden
+               $rev = Revision::newFromId( $revid );
+               $this->assertEquals( $rev->getContent( Revision::FOR_PUBLIC ), null );
+               $this->assertEquals( $rev->getComment( Revision::FOR_PUBLIC ), '' );
+               $this->assertEquals( $rev->getUser( Revision::FOR_PUBLIC ), 0 );
+
+               // Now test unhiding!
+               $out2 = $this->doApiRequest( array(
+                       'action' => 'revisiondelete',
+                       'type' => 'revision',
+                       'target' => self::$page,
+                       'ids' => $revid,
+                       'show' => 'content|user|comment',
+                       'token' => $user->getEditToken(),
+               ) );
+
+               // Check the output
+               $out2 = $out2[0]['revisiondelete'];
+               $this->assertEquals( $out2['status'], 'Success' );
+               $this->assertArrayHasKey( 'items', $out2 );
+               $item = $out2['items'][0];
+
+               $this->assertArrayNotHasKey( 'userhidden', $item );
+               $this->assertArrayNotHasKey( 'commenthidden', $item );
+               $this->assertArrayNotHasKey( 'texthidden', $item );
+
+               $this->assertEquals( $item['id'], $revid );
+
+               $rev = Revision::newFromId( $revid );
+               $this->assertNotEquals( $rev->getContent( Revision::FOR_PUBLIC ), null );
+               $this->assertNotEquals( $rev->getComment( Revision::FOR_PUBLIC ), '' );
+               $this->assertNotEquals( $rev->getUser( Revision::FOR_PUBLIC ), 0 );
+       }
+
+       public function testUnhidingOutput() {
+               $user = self::$users['sysop']->user;
+               $revid = array_shift( $this->revs );
+               // Hide revisions
+               $this->doApiRequest( array(
+                       'action' => 'revisiondelete',
+                       'type' => 'revision',
+                       'target' => self::$page,
+                       'ids' => $revid,
+                       'hide' => 'content|user|comment',
+                       'token' => $user->getEditToken(),
+               ) );
+
+               $out = $this->doApiRequest( array(
+                       'action' => 'revisiondelete',
+                       'type' => 'revision',
+                       'target' => self::$page,
+                       'ids' => $revid,
+                       'show' => 'comment',
+                       'token' => $user->getEditToken(),
+               ) );
+               $out = $out[0]['revisiondelete'];
+               $this->assertEquals( $out['status'], 'Success' );
+               $this->assertArrayHasKey( 'items', $out );
+               $item = $out['items'][0];
+               // Check it has userhidden & texthidden keys
+               // but no commenthidden key
+               $this->assertArrayHasKey( 'userhidden', $item );
+               $this->assertArrayNotHasKey( 'commenthidden', $item );
+               $this->assertArrayHasKey( 'texthidden', $item );
+               $this->assertEquals( $item['id'], $revid );
+       }
+}
index 7dd932f..1125504 100755 (executable)
@@ -148,17 +148,17 @@ class PHPUnitMaintClass extends Maintenance {
                }
 
                $key = array_search( '--debug-tests', $_SERVER['argv'] );
-               if( $key !== false && array_search( '--printer', $_SERVER['argv'] ) === false ) {
+               if ( $key !== false && array_search( '--printer', $_SERVER['argv'] ) === false ) {
                        unset( $_SERVER['argv'][$key] );
                        array_splice( $_SERVER['argv'], 1, 0, 'MediaWikiPHPUnitTestListener' );
                        array_splice( $_SERVER['argv'], 1, 0, '--printer' );
                }
 
-               foreach( self::$additionalOptions as $option => $default ) {
+               foreach ( self::$additionalOptions as $option => $default ) {
                        $key = array_search( '--' . $option, $_SERVER['argv'] );
-                       if( $key !== false ) {
+                       if ( $key !== false ) {
                                unset( $_SERVER['argv'][$key] );
-                               if( $this->mParams[$option]['withArg'] ) {
+                               if ( $this->mParams[$option]['withArg'] ) {
                                        self::$additionalOptions[$option] = $_SERVER['argv'][$key + 1];
                                        unset( $_SERVER['argv'][$key + 1] );
                                } else {
@@ -179,11 +179,11 @@ class PHPUnitMaintClass extends Maintenance {
         */
        private function forceFormatServerArgv() {
                $argv = array();
-               foreach( $_SERVER['argv'] as $key => $arg ) {
-                       if( $key === 0 ) {
+               foreach ( $_SERVER['argv'] as $key => $arg ) {
+                       if ( $key === 0 ) {
                                $argv[0] = $arg;
                        } elseif ( strstr( $arg, '=' ) ) {
-                               foreach( explode( '=', $arg, 2 ) as $argPart ) {
+                               foreach ( explode( '=', $arg, 2 ) as $argPart ) {
                                        $argv[] = $argPart;
                                }
                        } else {
@@ -198,36 +198,36 @@ class PHPUnitMaintClass extends Maintenance {
 $maintClass = 'PHPUnitMaintClass';
 require RUN_MAINTENANCE_IF_MAIN;
 
-$pharFile = stream_resolve_include_path( 'phpunit.phar' );
-$isValidPhar = Phar::isValidPharFilename( $pharFile );
-
-if ( !$isValidPhar && !class_exists( 'PHPUnit_Runner_Version' ) ) {
-       // try loading phpunit via PEAR
-       require_once 'PHPUnit/Runner/Version.php';
-}
-
 // Prevent segfault when we have lots of unit tests (bug 62623)
-if ( version_compare( PHP_VERSION, '5.4.0', '<' )
-       && version_compare( PHP_VERSION, '5.3.0', '>=' )
-) {
+if ( version_compare( PHP_VERSION, '5.4.0', '<' ) ) {
        register_shutdown_function( function () {
                gc_collect_cycles();
                gc_disable();
        } );
 }
 
-if ( $isValidPhar ) {
-       require $pharFile;
-} else {
-       if ( PHPUnit_Runner_Version::id() !== '@package_version@'
-           && version_compare( PHPUnit_Runner_Version::id(), '3.7.0', '<' )
-       ) {
-           die( 'PHPUnit 3.7.0 or later required, you have ' . PHPUnit_Runner_Version::id() . ".\n" );
-       }
 
-       if ( !class_exists( 'PHPUnit_TextUI_Command' ) ) {
-           require_once 'PHPUnit/Autoload.php';
+$ok = false;
+
+foreach ( array(
+       stream_resolve_include_path( 'phpunit.phar' ),
+       'PHPUnit/Runner/Version.php',
+       'PHPUnit/Autoload.php'
+) as $includePath ) {
+       @include_once $includePath;
+       if ( class_exists( 'PHPUnit_TextUI_Command' ) ) {
+               $ok = true;
+               break;
        }
+}
+
+if ( !$ok ) {
+       die( "Couldn't find a usable PHPUnit.\n" );
+}
 
-       PHPUnit_TextUI_Command::main();
+$puVersion = PHPUnit_Runner_Version::id();
+if ( $puVersion !== '@package_version@' && version_compare( $puVersion, '3.7.0', '<' ) ) {
+       die( "PHPUnit 3.7.0 or later required; you have {$puVersion}.\n" );
 }
+
+PHPUnit_TextUI_Command::main();
index 9216ac9..2fd3ce9 100644 (file)
                                '</table>'
                );
                $table.tablesorter();
-               assert.equal( 0,
-                       $table.find( '#A2' ).prop( 'headerIndex' ),
-                       'A2 should be a sort header'
+               assert.equal( $table.find( '#A2' ).prop( 'headerIndex' ),
+                       0,
+                       'A2 should not be a sort header'
                );
-               assert.equal( 1, // should be 2
-                       $table.find( '#C1' ).prop( 'headerIndex' ),
+               assert.equal( $table.find( '#C1' ).prop( 'headerIndex' ),
+                       1,
                        'C1 should be a sort header, but will sort the wrong column'
                );
        } );
                        '</tbody></table>' );
 
                        $table.tablesorter();
-                       assert.equal( 2, $table.find( 'tr:eq(1) th:eq(1)').prop('headerIndex'), 'Incorrect index of sort header' );
+                       assert.equal( $table.find( 'tr:eq(1) th:eq(1)').prop('headerIndex'),
+                               2,
+                               'Incorrect index of sort header' );
                }
        );
 
index bc4b253..afa57ee 100644 (file)
        } );
 
 // Tests that {{-transformation vs. general parsing are done as requested
-       QUnit.test( 'Curly brace transformation', 14, function ( assert ) {
+       QUnit.test( 'Curly brace transformation', 16, function ( assert ) {
                var oldUserLang = mw.config.get( 'wgUserLanguage' );
 
                assertBothModes( assert, ['gender-msg', 'Bob', 'male'], 'Bob: blue', 'gender is resolved' );
                        'Foo <a href="http://example.com">bar</a>',
                        'External link message processed when format is \'parse\''
                );
+               assert.htmlEqual(
+                       formatParse( 'external-link-replace', $( '<i>' ) ),
+                       'Foo <i>bar</i>',
+                       'External link message processed as jQuery object when format is \'parse\''
+               );
+               assert.htmlEqual(
+                       formatParse( 'external-link-replace', function () {} ),
+                       'Foo <a href="#">bar</a>',
+                       'External link message processed as function when format is \'parse\''
+               );
 
                mw.config.set( 'wgUserLanguage', oldUserLang );
        } );
index 4e26bdc..dcab387 100644 (file)
@@ -17,8 +17,7 @@
                        'Mozilla/5.0 (Macintosh; I; Intel Mac OS X 10_6_7; ru-ru) AppleWebKit/534.31+ (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
                        // Opera 11+
                        'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.10',
-                       // Internet Explorer 6+
-                       'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)',
+                       // Internet Explorer 7+
                        'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; en-US)',
                        'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)',
                        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)',
                        'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'
                ],
                // Supported: Uncompatible, serve basic content
-               gradeB: [
-                       // Internet Explorer < 6
+               gradeC: [
+                       // Internet Explorer < 7
                        'Mozilla/2.0 (compatible; MSIE 3.03; Windows 3.1)',
                        'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)',
                        'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98;)',
                        'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
+                       'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)',
                        // Firefox < 3.6
                        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2',
                        'Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1.1) Gecko/20070311 Firefox/2.0.0.1',
                );
        } );
 
-       QUnit.test( 'isCompatible( Grade B )', testcases.gradeB.length, function ( assert ) {
-               $.each( testcases.gradeB, function ( i, ua ) {
+       QUnit.test( 'isCompatible( Grade C )', testcases.gradeC.length, function ( assert ) {
+               $.each( testcases.gradeC, function ( i, ua ) {
                                assert.strictEqual( isCompatible( ua ), false, ua );
                        }
                );