Merge "rdbms: make safeWaitForMasterPos() respect "waitTimeout""
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 9 Feb 2018 23:41:45 +0000 (23:41 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 9 Feb 2018 23:41:45 +0000 (23:41 +0000)
110 files changed:
RELEASE-NOTES-1.31
composer.json
includes/DefaultSettings.php
includes/MediaWiki.php
includes/ServiceWiring.php
includes/Storage/RevisionStore.php
includes/api/ApiFormatBase.php
includes/auth/AuthManagerAuthPlugin.php
includes/auth/LegacyHookPreAuthenticationProvider.php
includes/exception/MWExceptionHandler.php
includes/filerepo/file/LocalFile.php
includes/installer/i18n/af.json
includes/installer/i18n/ar.json
includes/installer/i18n/ast.json
includes/installer/i18n/ba.json
includes/installer/i18n/be-tarask.json
includes/installer/i18n/bg.json
includes/installer/i18n/bn.json
includes/installer/i18n/br.json
includes/installer/i18n/bs.json
includes/installer/i18n/ca.json
includes/installer/i18n/cs.json
includes/installer/i18n/csb.json
includes/installer/i18n/de.json
includes/installer/i18n/el.json
includes/installer/i18n/eo.json
includes/installer/i18n/es.json
includes/installer/i18n/eu.json
includes/installer/i18n/fa.json
includes/installer/i18n/fi.json
includes/installer/i18n/fr.json
includes/installer/i18n/frp.json
includes/installer/i18n/gl.json
includes/installer/i18n/gsw.json
includes/installer/i18n/he.json
includes/installer/i18n/hi.json
includes/installer/i18n/hrx.json
includes/installer/i18n/hsb.json
includes/installer/i18n/hu.json
includes/installer/i18n/ia.json
includes/installer/i18n/id.json
includes/installer/i18n/is.json
includes/installer/i18n/it.json
includes/installer/i18n/ja.json
includes/installer/i18n/ka.json
includes/installer/i18n/ko.json
includes/installer/i18n/ksh.json
includes/installer/i18n/ku-latn.json
includes/installer/i18n/lb.json
includes/installer/i18n/lij.json
includes/installer/i18n/lt.json
includes/installer/i18n/mk.json
includes/installer/i18n/mr.json
includes/installer/i18n/ms.json
includes/installer/i18n/mzn.json
includes/installer/i18n/nap.json
includes/installer/i18n/nb.json
includes/installer/i18n/nl.json
includes/installer/i18n/oc.json
includes/installer/i18n/pl.json
includes/installer/i18n/pms.json
includes/installer/i18n/ps.json
includes/installer/i18n/pt-br.json
includes/installer/i18n/pt.json
includes/installer/i18n/ro.json
includes/installer/i18n/ru.json
includes/installer/i18n/sco.json
includes/installer/i18n/sl.json
includes/installer/i18n/sr-ec.json
includes/installer/i18n/sv.json
includes/installer/i18n/te.json
includes/installer/i18n/th.json
includes/installer/i18n/tl.json
includes/installer/i18n/tr.json
includes/installer/i18n/tt-cyrl.json
includes/installer/i18n/uk.json
includes/installer/i18n/vi.json
includes/installer/i18n/yi.json
includes/installer/i18n/zh-hans.json
includes/installer/i18n/zh-hant.json
includes/libs/rdbms/database/DatabaseMysqlBase.php
includes/libs/rdbms/loadbalancer/LoadBalancer.php
includes/parser/ParserOutput.php
includes/specials/SpecialEditWatchlist.php
includes/user/User.php
includes/watcheditem/WatchedItemStore.php
languages/i18n/be-tarask.json
languages/i18n/bho.json
languages/i18n/bn.json
languages/i18n/ce.json
languages/i18n/da.json
languages/i18n/en.json
languages/i18n/hu.json
languages/i18n/ko.json
languages/i18n/qqq.json
languages/i18n/sat.json
languages/i18n/sd.json
languages/i18n/sr-ec.json
resources/src/jquery/jquery.textSelection.js
tests/phpunit/includes/RevisionDbTestBase.php
tests/phpunit/includes/RevisionTest.php
tests/phpunit/includes/Storage/RevisionStoreDbTest.php
tests/phpunit/includes/Storage/RevisionStoreTest.php
tests/phpunit/includes/api/format/ApiFormatBaseTest.php
tests/phpunit/includes/auth/AuthManagerTest.php
tests/phpunit/includes/db/LBFactoryTest.php
tests/phpunit/includes/parser/ParserIntegrationTest.php
tests/phpunit/includes/parser/ParserOutputTest.php
tests/phpunit/includes/watcheditem/WatchedItemStoreIntegrationTest.php
tests/phpunit/includes/watcheditem/WatchedItemStoreUnitTest.php

index 8683054..88d927e 100644 (file)
@@ -59,6 +59,7 @@ production.
 * Updated wikimedia/relpath from 2.0.0 to 2.1.1.
 * Updated wikimedia/running-stat from 1.1.0 to 1.2.0.
 * Updated wikimedia/wrappedstring from 2.2.0 to 2.3.0.
+* Updated mediawiki/at-ease from 1.1.0 to 1.2.0.
 * …
 
 ==== New external libraries ====
index c79bdfb..c3ff8d6 100644 (file)
@@ -24,7 +24,7 @@
                "ext-mbstring": "*",
                "ext-xml": "*",
                "liuggio/statsd-php-client": "1.0.18",
-               "mediawiki/at-ease": "1.1.0",
+               "mediawiki/at-ease": "1.2.0",
                "oojs/oojs-ui": "0.25.2",
                "oyejorge/less.php": "1.7.0.14",
                "php": ">=5.5.9",
index bdbeb70..a6a3686 100644 (file)
@@ -6275,6 +6275,12 @@ $wgShowDBErrorBacktrace = false;
  */
 $wgLogExceptionBacktrace = true;
 
+/**
+ * If true, the MediaWiki error handler passes errors/warnings to the default error handler
+ * after logging them. The setting is ignored when the track_errors php.ini flag is true.
+ */
+$wgPropagateErrors = true;
+
 /**
  * Expose backend server host names through the API and various HTML comments
  */
index 150c72f..371f2cb 100644 (file)
@@ -548,6 +548,9 @@ class MediaWiki {
                                }
                        }
 
+                       MWExceptionHandler::handleException( $e );
+               } catch ( Error $e ) {
+                       // Type errors and such: at least handle it now and clean up the LBFactory state
                        MWExceptionHandler::handleException( $e );
                }
 
index 0ab5f6d..8b0452d 100644 (file)
@@ -164,7 +164,8 @@ return [
                $store = new WatchedItemStore(
                        $services->getDBLoadBalancer(),
                        new HashBagOStuff( [ 'maxKeys' => 100 ] ),
-                       $services->getReadOnlyMode()
+                       $services->getReadOnlyMode(),
+                       $services->getMainConfig()->get( 'UpdateRowsPerQuery' )
                );
                $store->setStatsdDataFactory( $services->getStatsdDataFactory() );
 
@@ -475,7 +476,8 @@ return [
                $store = new RevisionStore(
                        $services->getDBLoadBalancer(),
                        $blobStore,
-                       $services->getMainWANObjectCache()
+                       $services->getMainWANObjectCache(),
+                       $services->getCommentStore()
                );
 
                $store->setLogger( LoggerFactory::getInstance( 'RevisionStore' ) );
index bce3ba1..d832104 100644 (file)
@@ -92,6 +92,11 @@ class RevisionStore
         */
        private $cache;
 
+       /**
+        * @var CommentStore
+        */
+       private $commentStore;
+
        /**
         * @var LoggerInterface
         */
@@ -103,12 +108,14 @@ class RevisionStore
         * @param LoadBalancer $loadBalancer
         * @param SqlBlobStore $blobStore
         * @param WANObjectCache $cache
+        * @param CommentStore $commentStore
         * @param bool|string $wikiId
         */
        public function __construct(
                LoadBalancer $loadBalancer,
                SqlBlobStore $blobStore,
                WANObjectCache $cache,
+               CommentStore $commentStore,
                $wikiId = false
        ) {
                Assert::parameterType( 'string|boolean', $wikiId, '$wikiId' );
@@ -116,6 +123,7 @@ class RevisionStore
                $this->loadBalancer = $loadBalancer;
                $this->blobStore = $blobStore;
                $this->cache = $cache;
+               $this->commentStore = $commentStore;
                $this->wikiId = $wikiId;
                $this->logger = new NullLogger();
        }
@@ -290,8 +298,8 @@ class RevisionStore
        }
 
        /**
-        * Insert a new revision into the database, returning the new revision ID
-        * number on success and dies horribly on failure.
+        * Insert a new revision into the database, returning the new revision record
+        * on success and dies horribly on failure.
         *
         * MCR migration note: this replaces Revision::insertOn
         *
@@ -393,7 +401,7 @@ class RevisionStore
                }
 
                list( $commentFields, $commentCallback ) =
-                       CommentStore::getStore()->insertWithTempTable( $dbw, 'rev_comment', $comment );
+                       $this->commentStore->insertWithTempTable( $dbw, 'rev_comment', $comment );
                $row += $commentFields;
 
                if ( $this->contentHandlerUseDB ) {
@@ -1069,7 +1077,7 @@ class RevisionStore
 
                $user = $this->getUserIdentityFromRowObject( $row, 'ar_' );
 
-               $comment = CommentStore::getStore()
+               $comment = $this->commentStore
                        // Legacy because $row may have come from self::selectFields()
                        ->getCommentLegacy( $this->getDBConnection( DB_REPLICA ), 'ar_comment', $row, true );
 
@@ -1139,7 +1147,7 @@ class RevisionStore
 
                $user = $this->getUserIdentityFromRowObject( $row );
 
-               $comment = CommentStore::getStore()
+               $comment = $this->commentStore
                        // Legacy because $row may have come from self::selectFields()
                        ->getCommentLegacy( $this->getDBConnection( DB_REPLICA ), 'rev_comment', $row, true );
 
@@ -1614,7 +1622,7 @@ class RevisionStore
                        'rev_sha1',
                ] );
 
-               $commentQuery = CommentStore::getStore()->getJoin( 'rev_comment' );
+               $commentQuery = $this->commentStore->getJoin( 'rev_comment' );
                $ret['tables'] = array_merge( $ret['tables'], $commentQuery['tables'] );
                $ret['fields'] = array_merge( $ret['fields'], $commentQuery['fields'] );
                $ret['joins'] = array_merge( $ret['joins'], $commentQuery['joins'] );
@@ -1671,7 +1679,7 @@ class RevisionStore
         *   - joins: (array) to include in the `$join_conds` to `IDatabase->select()`
         */
        public function getArchiveQueryInfo() {
-               $commentQuery = CommentStore::getStore()->getJoin( 'ar_comment' );
+               $commentQuery = $this->commentStore->getJoin( 'ar_comment' );
                $ret = [
                        'tables' => [ 'archive' ] + $commentQuery['tables'],
                        'fields' => [
index 471ce21..18c36de 100644 (file)
@@ -65,8 +65,7 @@ abstract class ApiFormatBase extends ApiBase {
         * @note If $this->getIsWrappedHtml() || $this->getIsHtml(), you'll very
         *  likely want to fall back to this class's version.
         * @since 1.27
-        * @return string Generally this should be "api-result.$ext", and must be
-        *  encoded for inclusion in a Content-Disposition header's filename parameter.
+        * @return string Generally this should be "api-result.$ext"
         */
        public function getFilename() {
                if ( $this->getIsWrappedHtml() ) {
@@ -212,10 +211,25 @@ abstract class ApiFormatBase extends ApiBase {
 
                // Set a Content-Disposition header so something downloading an API
                // response uses a halfway-sensible filename (T128209).
+               $header = 'Content-Disposition: inline';
                $filename = $this->getFilename();
-               $this->getMain()->getRequest()->response()->header(
-                       "Content-Disposition: inline; filename=\"{$filename}\""
-               );
+               $compatFilename = mb_convert_encoding( $filename, 'ISO-8859-1' );
+               if ( preg_match( '/^[0-9a-zA-Z!#$%&\'*+\-.^_`|~]+$/', $compatFilename ) ) {
+                       $header .= '; filename=' . $compatFilename;
+               } else {
+                       $header .= '; filename="'
+                               . preg_replace( '/([\0-\x1f"\x5c\x7f])/', '\\\\$1', $compatFilename ) . '"';
+               }
+               if ( $compatFilename !== $filename ) {
+                       $value = "UTF-8''" . rawurlencode( $filename );
+                       // rawurlencode() encodes more characters than RFC 5987 specifies. Unescape the ones it allows.
+                       $value = strtr( $value, [
+                               '%21' => '!', '%23' => '#', '%24' => '$', '%26' => '&', '%2B' => '+', '%5E' => '^',
+                               '%60' => '`', '%7C' => '|',
+                       ] );
+                       $header .= '; filename*=' . $value;
+               }
+               $this->getMain()->getRequest()->response()->header( $header );
        }
 
        /**
index 9a1e445..4f84b4c 100644 (file)
@@ -20,6 +20,7 @@
 
 namespace MediaWiki\Auth;
 
+use Psr\Log\LoggerInterface;
 use User;
 
 /**
@@ -31,7 +32,7 @@ class AuthManagerAuthPlugin extends \AuthPlugin {
        /** @var string|null */
        protected $domain = null;
 
-       /** @var \\Psr\\Log\\LoggerInterface */
+       /** @var LoggerInterface */
        protected $logger = null;
 
        public function __construct() {
index 97bbde7..95fe3ab 100644 (file)
@@ -58,14 +58,14 @@ class LegacyHookPreAuthenticationProvider extends AbstractPreAuthenticationProvi
                $msg = null;
                if ( !\Hooks::run( 'LoginUserMigrated', [ $user, &$msg ] ) ) {
                        return $this->makeFailResponse(
-                               $user, null, LoginForm::USER_MIGRATED, $msg, 'LoginUserMigrated'
+                               $user, LoginForm::USER_MIGRATED, $msg, 'LoginUserMigrated'
                        );
                }
 
                $abort = LoginForm::ABORTED;
                $msg = null;
                if ( !\Hooks::run( 'AbortLogin', [ $user, $password, &$abort, &$msg ] ) ) {
-                       return $this->makeFailResponse( $user, null, $abort, $msg, 'AbortLogin' );
+                       return $this->makeFailResponse( $user, $abort, $msg, 'AbortLogin' );
                }
 
                return StatusValue::newGood();
@@ -103,7 +103,7 @@ class LegacyHookPreAuthenticationProvider extends AbstractPreAuthenticationProvi
                                // Hook point to add extra creation throttles and blocks
                                $this->logger->debug( __METHOD__ . ": a hook blocked auto-creation: $abortError\n" );
                                return $this->makeFailResponse(
-                                       $user, $user, LoginForm::ABORTED, $abortError, 'AbortAutoAccount'
+                                       $user, LoginForm::ABORTED, $abortError, 'AbortAutoAccount'
                                );
                        }
                }
@@ -114,13 +114,12 @@ class LegacyHookPreAuthenticationProvider extends AbstractPreAuthenticationProvi
        /**
         * Construct an appropriate failure response
         * @param User $user
-        * @param User|null $creator
         * @param int $constant One of the LoginForm::… constants
         * @param string|null $msg Optional message key, will be derived from $constant otherwise
         * @param string $hook Name of the hook for error logging and exception messages
         * @return StatusValue
         */
-       protected function makeFailResponse( $user, $creator, $constant, $msg, $hook ) {
+       private function makeFailResponse( User $user, $constant, $msg, $hook ) {
                switch ( $constant ) {
                        case LoginForm::SUCCESS:
                                // WTF?
index 205ec77..b125f58 100644 (file)
@@ -170,6 +170,8 @@ class MWExceptionHandler {
        public static function handleError(
                $level, $message, $file = null, $line = null
        ) {
+               global $wgPropagateErrors;
+
                if ( in_array( $level, self::$fatalErrorTypes ) ) {
                        return call_user_func_array(
                                'MWExceptionHandler::handleFatalError', func_get_args()
@@ -213,9 +215,10 @@ class MWExceptionHandler {
                $e = new ErrorException( "PHP $levelName: $message", 0, $level, $file, $line );
                self::logError( $e, 'error', $severity );
 
-               // This handler is for logging only. Return false will instruct PHP
-               // to continue regular handling.
-               return false;
+               // If $wgPropagateErrors is true return false so PHP shows/logs the error normally.
+               // Ignore $wgPropagateErrors if the error should break execution, or track_errors is set
+               // (which means someone is counting on regular PHP error handling behavior).
+               return !( $wgPropagateErrors || $level == E_RECOVERABLE_ERROR || ini_get( 'track_errors' ) );
        }
 
        /**
index bf1181f..92b5f17 100644 (file)
@@ -2509,7 +2509,7 @@ class LocalFileDeleteBatch {
                        );
                        $rowsInsert = [];
                        if ( $res->numRows() ) {
-                               $reason = $commentStore->createComment( $dbw, 'fa_deleted_reason', $this->reason );
+                               $reason = $commentStore->createComment( $dbw, $this->reason );
                                foreach ( $res as $row ) {
                                        $comment = $commentStore->getComment( 'oi_description', $row );
                                        $rowsInsert[] = [
index 6b33793..58c6b72 100644 (file)
@@ -41,7 +41,6 @@
        "config-no-db": "Kon nie 'n geskikte databasisdrywer vind nie!",
        "config-memory-raised": "PHP se <code>memory_limit</code> is $1, en is verhoog tot $2.",
        "config-memory-bad": "'''Waarskuwing:''' PHP se <code>memory_limit</code> is $1.\nDit is waarskynlik te laag.\nDie installasie mag moontlik faal!",
-       "config-xcache": "[Http://trac.lighttpd.net/xcache/ XCache] is geïnstalleer",
        "config-apc": "[Http://www.php.net/apc APC] is geïnstalleer",
        "config-wincache": "[Http://www.iis.net/download/WinCacheForPhp WinCache] is geïnstalleer",
        "config-diff3-bad": "GNU diff3 nie gevind nie.",
index ba65f6a..9d7d0af 100644 (file)
@@ -58,7 +58,6 @@
        "config-env-php": "بي إتش بي $1 مثبت.",
        "config-env-hhvm": "نصبت HHVM $1.",
        "config-outdated-sqlite": "<strong>تحذير:</strong> لديك SQLite $1, which وهو أقل من الحد الأدنى المطلوب للنسخة $2. SQLite سوف يكون غير متوفر.",
-       "config-xcache": "تثبيت [https://xcache.lighttpd.net/ XCache]",
        "config-apc": "تثبيت [http://www.php.net/apc APC]",
        "config-apcu": "تثبيت [http://www.php.net/apcu APCu]",
        "config-wincache": "تثبيت [https://www.iis.net/download/WinCacheForPhp WinCache]",
index 7c6e59a..5b24d7c 100644 (file)
@@ -60,7 +60,6 @@
        "config-pcre-no-utf8": "<strong>Erru fatal:</strong> Paez que'l módulu PCRE de PHP foi compiláu ensin el soporte PCRE_UTF8.\nMediaWiki requier compatibilidá con UTF_8 pa furrular correutamente.",
        "config-memory-raised": "El parámetru <code>memory_limit</code> de PHP ye $1. Auméntase a $2.",
        "config-memory-bad": "<strong>Alvertencia:</strong>: el parámetru <code>memory_limit</code> de PHP ye $1.\nProbablemente sía demasiáu baxu.\n¡La instalación puede fallar!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] ta instaláu",
        "config-apc": "[http://www.php.net/apc APC] ta instaláu",
        "config-apcu": "[http://www.php.net/apcu APCu] ta instaláu",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] ta instaláu",
index 547f202..a9c2c7f 100644 (file)
@@ -67,7 +67,6 @@
        "config-pcre-no-utf8": "'''Фаталь хата'''. PHP өсөн PCRE модуле  PCRE_UTF8 менән яраҡлыштырылмаған.\nMediaWiki дөрөҫ эшләһен өсөн UTF-8 талап ителә.",
        "config-memory-raised": "Хәтер сикләнгән PHP  (<code>memory_limit</code>)  $1  $2 тиклем арттырылған.",
        "config-memory-bad": "'''Иғтибар:''' PHP күләме <code>memory_limit</code> $1 тәшкил итә.\nБәлки, был саманан тыш аҙҙыр. \nҠуйылыштың уңышһыҙлыҡҡа осрауы бар!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] урынлаштырылды",
        "config-apc": "[http://www.php.net/apc APC] урынлаштырылды",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] урынлыштырылды",
        "config-no-cache-apcu": "'''Иғтибар:'''  [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] табылманы йәки [http://www.iis.net/download/WinCacheForPhp WinCache].\nОбъекттарҙы кэшлау һүндереләсәк..",
index 730a18c..131ddbb 100644 (file)
        "config-pcre-no-utf8": "'''Фатальная памылка''': модуль PCRE для PHP скампіляваны без падтрымкі PCRE_UTF8.\nMediaWiki патрабуе падтрымкі UTF-8 для слушнай працы.",
        "config-memory-raised": "Абмежаваньне на даступную для PHP памяць <code>memory_limit</code> было падвышанае з $1 да $2.",
        "config-memory-bad": "'''Папярэджаньне:''' памер PHP <code>memory_limit</code> складае $1.\nВерагодна, гэта вельмі мала.\nУсталяваньне можа быць няўдалым!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] усталяваны",
        "config-apc": "[http://www.php.net/apc APC] усталяваны",
        "config-apcu": "[http://www.php.net/apcu APCu] ўсталяваны",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] усталяваны",
-       "config-no-cache-apcu": "<strong>Папярэджаньне:</strong> ня знойдзеныя [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] ці [http://www.iis.net/download/WinCacheForPhp WinCache]. Кэшаваньне аб’ектаў адключанае.",
+       "config-no-cache-apcu": "<strong>Папярэджаньне:</strong> ня знойдзеныя [http://www.php.net/apcu APCu] ці [http://www.iis.net/download/WinCacheForPhp WinCache]. Кэшаваньне аб’ектаў адключанае.",
        "config-mod-security": "'''Папярэджаньне''': на Вашым ўэб-сэрверы ўключаны [https://modsecurity.org/ mod_security]. У выпадку няслушнай наладцы, ён можа стаць прычынай праблемаў для MediaWiki ці іншага праграмнага забесьпячэньня, якое дазваляе ўдзельнікам дасылаць на сэрвэр любы зьмест.\nГлядзіце [https://modsecurity.org/documentation/ дакумэнтацыю mod_security] ці зьвярніцеся ў падтрымку Вашага хосту, калі ў Вас узьнікаюць выпадковыя праблемы.",
        "config-diff3-bad": "GNU diff3 ня знойдзены.",
        "config-git": "Знойдзеная сыстэма канстролю вэрсіяў Git: <code>$1</code>",
index 1b2a3fa..9030feb 100644 (file)
@@ -53,7 +53,7 @@
        "config-env-php": "Инсталирана е версия на PHP $1.",
        "config-env-hhvm": "HHVM $1 е инсталиран.",
        "config-unicode-using-intl": "Използване на разширението [https://pecl.php.net/intl intl PECL] за нормализация на Уникод.",
-       "config-unicode-pure-php-warning": "<strong>Ð\92нимание:</strong> [https://pecl.php.net/intl Ð Ð°Ð·Ñ\88иÑ\80ениеÑ\82о intl PECL] Ð½Ðµ Ðµ Ð½Ð°Ð»Ð¸Ñ\87но Ð·Ð° Ñ\81пÑ\80авÑ\8fне Ñ\81 Ð½Ð¾Ñ\80мализаÑ\86иÑ\8fÑ\82а Ð½Ð° Ð£Ð½Ð¸ÐºÐ¾Ð´, Ð¿Ñ\80евклÑ\8eÑ\87ване ÐºÑ\8aм Ð¿Ð¾-бавноÑ\82о Ð¸Ð·Ð¿Ñ\8aлнение Ð½Ð° Ñ\87иÑ\81Ñ\82 PHP.\nÐ\90ко Ñ\81айÑ\82Ñ\8aÑ\82 Ðµ Ñ\81 Ð³Ð¾Ð»Ñ\8fм Ñ\82Ñ\80аÑ\84ик, Ð¿Ñ\80епоÑ\80Ñ\8aÑ\87иÑ\82елно Ðµ Ð·Ð°Ð¿Ð¾Ð·Ð½Ð°Ð²Ð°Ð½ÐµÑ\82о с [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализацията на Уникод].",
+       "config-unicode-pure-php-warning": "<strong>Ð\92нимание:</strong> [https://pecl.php.net/intl Ð Ð°Ð·Ñ\88иÑ\80ениеÑ\82о intl PECL] Ð½Ðµ Ðµ Ð½Ð°Ð»Ð¸Ñ\87но Ð·Ð° Ñ\81пÑ\80авÑ\8fне Ñ\81 Ð½Ð¾Ñ\80мализаÑ\86иÑ\8fÑ\82а Ð½Ð° Ð£Ð½Ð¸ÐºÐ¾Ð´, Ð¿Ñ\80евклÑ\8eÑ\87ване ÐºÑ\8aм Ð¿Ð¾-бавноÑ\82о Ð¸Ð·Ð¿Ñ\8aлнение Ð½Ð° Ñ\87иÑ\81Ñ\82 PHP.\nÐ\90ко Ñ\81айÑ\82Ñ\8aÑ\82 Ðµ Ñ\81 Ð³Ð¾Ð»Ñ\8fм Ñ\82Ñ\80аÑ\84ик, Ð¿Ñ\80епоÑ\80Ñ\8aÑ\87иÑ\82елно Ðµ Ð´Ð° Ñ\81е Ð·Ð°Ð¿Ð¾Ð·Ð½Ð°ÐµÑ\82е с [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализацията на Уникод].",
        "config-unicode-update-warning": "<strong>Предупреждение</strong>: Инсталираната версия на Обвивката за нормализация на Unicode използва по-старата версия на библиотеката на [http://site.icu-project.org/ проекта ICU].\nНеобходимо е да [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations инсталирате по-нова версия], в случай че сте загрижени за използването на Unicode.",
        "config-no-db": "Не може да бъде открит подходящ драйвер за база данни! Необходимо е да инсталирате драйвер за база данни за PHP.\n{{PLURAL:$2|Поддържа се следния тип|Поддържат се следните типове}} бази от данни: $1.\n\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база данни, например чрез използване на <code>./configure --with-mysqli</code>.\nАко сте инсталирали PHP от пакет за Debian или Ubuntu, необходимо е също така да инсталирате и модула <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Внимание:</strong> имате инсталиран SQLite  $1, а минималната допустима версия е $2. SQLite ще бъде недостъпна за ползване.",
@@ -62,7 +62,6 @@
        "config-pcre-no-utf8": "'''Фатално''': Модулът PCRE на PHP изглежда е компилиран без поддръжка на PCRE_UTF8.\nЗа да функционира правилно, МедияУики изисква поддръжка на UTF-8.",
        "config-memory-raised": "<code>memory_limit</code> на PHP е $1, увеличаване до $2.",
        "config-memory-bad": "<strong>Внимание:</strong> <code>memory_limit</code> на PHP е $1.\nСтойността вероятно е твърде ниска.\nВъзможно е инсталацията да се провали!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] е инсталиран",
        "config-apc": "[http://www.php.net/apc APC] е инсталиран",
        "config-apcu": "[http://www.php.net/apc APC] е инсталиран",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] е инсталиран",
index 1c61206..132a06d 100644 (file)
@@ -44,7 +44,6 @@
        "config-env-php": "পিএইচপি $1 ইন্সটল করা হয়েছে।",
        "config-env-hhvm": "HHVM $1 ইনস্টল করা হয়েছে।",
        "config-memory-raised": "পিএইচপির <code>memory_limit</code> হচ্ছে $1, বৃদ্ধি পেয়ে $2 হয়েছে।",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] ইনস্টল করা হয়েছে",
        "config-apc": "[http://www.php.net/apc এপিসি] ইনস্টল হয়েছে",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] ইনস্টল করা হয়েছে",
        "config-diff3-bad": "GNU diff3 পাওয়া যায়নি।",
index 8f8b541..f41ef23 100644 (file)
@@ -62,7 +62,6 @@
        "config-pcre-no-utf8": "'''Fazi groñs ''': evit doare eo bet kempunet modulenn PCRE PHP hep ar skor PCRE_UTF8.\nEzhomm en deus MediaWiki eus UTF-8 evit mont plaen en-dro.",
        "config-memory-raised": "<code>memory_limit</code> ar PHP zo $1, kemmet e $2.",
        "config-memory-bad": "'''Diwallit :''' Da $1 emañ arventenn <code>memory_limit</code> PHP.\nRe izel eo moarvat.\nMarteze e c'hwito ar staliadenn !",
-       "config-xcache": "Staliet eo [https://xcache.lighttpd.net/ XCache]",
        "config-apc": "Staliet eo [http://www.php.net/apc APC]",
        "config-apcu": "Staliet eo [http://www.php.net/apcu APCu]",
        "config-wincache": "Staliet eo [https://www.iis.net/download/WinCacheForPhp WinCache]",
index 9e5e4d4..07a0e2e 100644 (file)
@@ -50,7 +50,6 @@
        "config-no-db": "Ne mogu pronaći pogodan upravljački program za bazu podataka! Morate ga instalirati za PHP-bazu.\n{{PLURAL:$2|Podržana je sljedeća vrsta|Podržane su sljedeće vrste}} baze podataka: $1.\n\nAko se sami kompajlirali PHP, omogućite klijent baze podataka u postavkama koristeći, naprimjer, <code>./configure --with-mysqli</code>.\nAko ste instalirali PHP iz paketa za Debian ili Ubuntu, onda također morate instalirati, naprimjer, paket <code>php5-mysql</code>.",
        "config-memory-raised": "<code>memory_limit</code> za PHP iznosi $1, povišen na $2.",
        "config-memory-bad": "<strong>Upozorenje:</strong> <code>memory_limit</code> za PHP iznosi $1.\nOvo je vjerovatno premalo.\nInstalacija možda neće uspjeti!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] je instaliran",
        "config-apc": "[http://www.php.net/apc APC] je instaliran",
        "config-apcu": "[http://www.php.net/apcu APCu] je instaliran",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] je instaliran",
index 115198a..983c5c2 100644 (file)
@@ -60,7 +60,6 @@
        "config-unicode-using-intl": "S'utilitza l'[https://pecl.php.net/intl extensió intl PECL] per a la normalització de l'Unicode.",
        "config-memory-raised": "El <code>memory_limit</code> del PHP és $1 i s'ha aixecat a $2.",
        "config-memory-bad": "<strong>Avís:</strong> El <code>memory_limit</code> del PHP és $1.\nAixò és probablement massa baix.\nLa instal·lació pot fallar!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] està instal·lat",
        "config-apc": "L’[http://www.php.net/apc APC] està instal·lat",
        "config-apcu": "[http://www.php.net/apcu APCu] està instal·lat",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] està instal·lat",
index 882d344..cd5d35c 100644 (file)
@@ -65,7 +65,6 @@
        "config-pcre-no-utf8": "<strong>Kritická chyba:</strong> PHP modul PCRE byl zřejmě přeložen bez podpory PCRE_UTF8.\nMediaWiki vyžaduje ke správné funkci podporu UTF-8.",
        "config-memory-raised": "<code>memory_limit</code> v PHP byl nastaven na $1, zvýšen na $2.",
        "config-memory-bad": "<strong>Upozornění:</strong> <code>memory_limit</code> je v PHP nastaven na $1.\nTo je pravděpodobně příliš málo.\nInstalace může selhat!",
-       "config-xcache": "Je nainstalována [https://xcache.lighttpd.net/ XCache]",
        "config-apc": "Je nainstalováno [http://www.php.net/apc APC]",
        "config-apcu": "Je nainstalováno [http://www.php.net/apcu APCu]",
        "config-wincache": "Je nainstalována [https://www.iis.net/download/WinCacheForPhp WinCache]",
index 0c32609..34cf29f 100644 (file)
@@ -34,7 +34,6 @@
        "config-env-php": "PHP $1 je wjinastalowóné",
        "config-env-hhvm": "HHVM $1 je wjinastalowóné",
        "config-memory-raised": "Paraméter PHP <code>memory_limit</code> $1 òstôł zwikszony do $2.",
-       "config-xcache": "[Http://trac.lighttpd.net/xcache/ XCache] je wjinstalowóny",
        "config-apc": "[Http://www.php.net/apc APC] je wjinstalowóny",
        "config-apcu": "[http://www.php.net/apcu APCu] je wjinstalowóny",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] je wjinstalowóny",
index f16700c..00005d3 100644 (file)
        "config-pcre-no-utf8": "'''Fataler Fehler:''' Das PHP-Modul PCRE scheint ohne PCRE_UTF8-Unterstützung kompiliert worden zu sein.\nMediaWiki benötigt die UTF-8-Unterstützung, um fehlerfrei lauffähig zu sein.",
        "config-memory-raised": "Der PHP-Parameter <code>memory_limit</code> betrug $1 und wurde auf $2 erhöht.",
        "config-memory-bad": "'''Warnung:''' Der PHP-Parameter <code>memory_limit</code> beträgt $1.\nDieser Wert ist wahrscheinlich zu niedrig.\nDer Installationsvorgang könnte eventuell scheitern!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] ist installiert",
        "config-apc": "[http://www.php.net/apc APC] ist installiert",
        "config-apcu": "[http://www.php.net/apcu APCu] ist installiert",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] ist installiert",
-       "config-no-cache-apcu": "<strong>Warnung:</strong> [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] konnten nicht gefunden werden.\nDer Objektcache ist nicht aktiviert.",
+       "config-no-cache-apcu": "<strong>Warnung:</strong> [http://www.php.net/apcu APCu] oder [http://www.iis.net/download/WinCacheForPhp WinCache] konnten nicht gefunden werden.\nDer Objektcache ist nicht aktiviert.",
        "config-mod-security": "'''Warnung:''' Auf dem Webserver wurde [https://modsecurity.org/ ModSecurity] aktiviert. Sofern falsch konfiguriert, kann dies zu Problemen mit MediaWiki sowie anderer Software auf dem Server führen und es Benutzern ermöglichen, beliebige Inhalte im Wiki einzustellen.\nFür weitere Informationen empfehlen wir die [https://modsecurity.org/documentation/ Dokumentation zu ModSecurity] oder den Kontakt zum Hoster, sofern Fehler auftreten.",
        "config-diff3-bad": "GNU diff3 wurde nicht gefunden.",
        "config-git": "Die Versionsverwaltungssoftware „Git“ wurde gefunden: <code>$1</code>.",
        "config-cache-options": "Einstellungen für die Zwischenspeicherung von Objekten:",
        "config-cache-help": "Das Objektcaching wird dazu genutzt, die Geschwindigkeit von MediaWiki zu verbessern, indem häufig genutzte Daten zwischengespeichert werden.\nEs wird sehr empfohlen, es für mittelgroße bis große Wikis zu nutzen, aber auch für kleine Wikis ergeben sich erkennbare Geschwindigkeitsverbesserungen.",
        "config-cache-none": "Kein Objektcaching (es wird keine Funktion entfernt, allerdings kann dies die Leistungsfähigkeit größerer Wikis negativ beeinflussen)",
-       "config-cache-accel": "Objektcaching von PHP (APC, APCu, XCache oder WinCache)",
+       "config-cache-accel": "Objektcaching von PHP (APC, APCu oder WinCache)",
        "config-cache-memcached": "Memcached Cacheserver (erfordert einen zusätzlichen Installationsvorgang mitsamt Konfiguration)",
        "config-memcached-servers": "Memcached Cacheserver",
        "config-memcached-help": "Liste der für Memcached nutzbaren IP-Adressen.\nEs sollte eine je Zeile mitsamt des vorgesehenen Ports angegeben werden. Beispiele:\n127.0.0.1:11211 oder\n192.168.1.25:1234 usw.",
index f12216c..0c93b3a 100644 (file)
@@ -64,7 +64,6 @@
        "config-pcre-no-utf8": "<strong>Κρίσιμο:</strong> Το PCRE module της PHP  φαίνεται να έχει μεταγλωττιστεί χωρίς υποστήριξη  PCRE_UTF8.\nΓια τη σωστή λειτουργία του MediaWiki απαιτείται υποστήριξη UTF-8.",
        "config-memory-raised": "Το  <code>memory_limit</code> της PHP είναι  $1 και αυξήθηκε σε  $2.",
        "config-memory-bad": "<strong>Προειδοποίηση:</strong> το <code>memory_limit</code> της PHP είναι $1.\nΑυτή η τιμή είναι πιθανώς πολύ χαμηλή.\n\nΗ εγκατάσταση ενδέχεται να αποτύχει!",
-       "config-xcache": "[https://xcache.lighttpd.net/ Το XCache] είναι εγκατεστημένο",
        "config-apc": "Το [http://www.php.net/apc APC] είναι εγκατεστημένο",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp Το WinCache] είναι εγκατεστημένο",
        "config-diff3-bad": "Το GNU diff3 δεν βρέθηκε.",
index 016fea5..c1c5edf 100644 (file)
@@ -37,7 +37,6 @@
        "config-env-bad": "La medio estis kontrolita.\nNe eblas instali MediaWiki.",
        "config-env-php": "PHP $1 estas instalita.",
        "config-env-hhvm": "HHVM $1 instalatas.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] estas instalita.",
        "config-apc": "[http://www.php.net/apc APC] estas instalita",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] estas instalita",
        "config-diff3-bad": "GNU diff3 ne estis trovita.",
index 8e17206..05df002 100644 (file)
@@ -90,7 +90,6 @@
        "config-pcre-no-utf8": "'''Error fatal ''': Parece que el módulo PCRE de PHP fue compilado sin el soporte PCRE_UTF8.\nMediaWiki requiere compatibilidad con UTF-8 para funcionar correctamente.",
        "config-memory-raised": "El parámetro <code>memory_limit</code> de PHP es $1. Se aumenta a $2.",
        "config-memory-bad": "<strong>Advertencia:</strong> el parámetro <code>memory_limit</code> de PHP es $1.\nProbablemente sea demasiado bajo.\n¡La instalación puede fallar!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] está instalado",
        "config-apc": "[http://www.php.net/apc APC] está instalado",
        "config-apcu": "[http://www.php.net/apcu APCu] está instalado",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
index 6292094..e94c71b 100644 (file)
@@ -61,7 +61,6 @@
        "config-pcre-no-utf8": "<strong>Fatal:</strong> PHREko PCRE modulua PCRE_UTF8 ko laguntza gabe bildu da.\nMediaWiki-k UTF-8 euskarria behar du behar bezala funtziona dezan.",
        "config-memory-raised": "PHP-ko <code>memory_limit</code> $1 da, $2-ra igota.",
        "config-memory-bad": "<strong>Warning:</strong> PHPko <code>memory_limit</code> $1 da.\nZiurrenik hau oso baxua da.\nInstalazioa huts egin dezake!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] instalatuta dago",
        "config-apc": "[http://www.php.net/apc APC] instalatuta dago",
        "config-apcu": "[http://www.php.net/apcu APCu] instalatuta dago",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] instalatuta dago",
index 0f026d5..aff2fd3 100644 (file)
@@ -71,7 +71,6 @@
        "config-pcre-no-utf8": "<strong>مخرب:</strong> به‌ نظر می‌رسد پودمان پی‌سی‌آراییِ پی‌اچ‌پی بدون پشتیبانی پی‌سی‌آرایی_یو‌تی‌اف۸ تهیه شده‌است.\nمدیاویکی برای درست عمل کردن نیازمند پشتیبانی یوتی‌اف-۸ است.",
        "config-memory-raised": "PHP's <code>memory_limit</code>, نسخهٔ $1 است، به نسخهٔ $2 ارتقاء داده شده‌است.",
        "config-memory-bad": "'''هشدار:''' PHP's <code>memory_limit</code> نسخهٔ $1 است.\nاین ممکن است خیلی پایین باشد.\nممکن است نصب با مشکل رو‌به‌رو شود.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] نصب شده‌است.",
        "config-apc": "[http://www.php.net/apc APC] نصب شده‌است.",
        "config-apcu": "[http://www.php.net/apcu APCu] نصب شده‌است",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] نصب شده‌است.",
index 306df1c..c1332b1 100644 (file)
@@ -74,7 +74,6 @@
        "config-pcre-old": "<strong>Tärkeää:</strong> PCRE $1 tai uudempi versio tarvitaan.\nPHP-binäärisi on linkitetty versiolla PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Lisätietoja].",
        "config-memory-raised": "PHP:n <code>memory_limit</code> on $1, nostetaan arvoon $2.",
        "config-memory-bad": "'''Varoitus:''' PHP:n <code>memory_limit</code> on $1.\nTämä on luultavasti liian alhainen.\nAsennus saattaa epäonnistua!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] on asennettu",
        "config-apc": "[http://www.php.net/apc APC] on asennettu.",
        "config-apcu": "[http://www.php.net/apcu APCu] on asennettu",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] on asennettu",
index 7f90990..2d9b94f 100644 (file)
        "config-pcre-no-utf8": "<strong>Erreur fatale :</strong> le module PCRE de PHP semble être compilé sans la prise en charge de PCRE_UTF8.\nMediaWiki a besoin de la gestion d’UTF-8 pour fonctionner correctement.",
        "config-memory-raised": "Le paramètre <code>memory_limit</code> de PHP était à $1, porté à $2.",
        "config-memory-bad": "<strong>Attention :</strong> Le paramètre <code>memory_limit</code> de PHP est à $1.\nCette valeur est probablement trop faible.\nIl est possible que l’installation échoue !",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] est installé",
        "config-apc": "[http://www.php.net/apc APC] est installé",
        "config-apcu": "[http://www.php.net/apcu APCu] est installé",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] est installé",
-       "config-no-cache-apcu": "<strong>Attention :</strong> impossible de trouver [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nLa mise en cache d’objets n’est pas activée.",
+       "config-no-cache-apcu": "<strong>Attention :</strong> impossible de trouver [http://www.php.net/apcu APCu] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nLa mise en cache d’objets n’est pas activée.",
        "config-mod-security": "<strong>Attention :</strong> votre serveur web a [https://modsecurity.org/ mod_security] activé. S’il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d’autres applications qui permettent aux utilisateurs de publier un contenu quelconque. Si possible, ceci devrait être désactivé. Sinon, reportez-vous à [https://modsecurity.org/documentation/ la documentation de mod_security] ou contactez l’assistance de votre hébergeur si vous rencontrez des erreurs aléatoires.",
        "config-diff3-bad": "GNU diff3 introuvable.",
        "config-git": "Logiciel de contrôle de version Git trouvé : <code>$1</code>.",
        "config-cache-options": "Paramètres pour la mise en cache des objets:",
        "config-cache-help": "La mise en cache des objets améliore la vitesse de MediaWiki en mettant en cache les données fréquemment utilisées.\nLes sites de taille moyenne à grande sont fortement encouragés à l'activer. Les petits sites y verront également des avantages.",
        "config-cache-none": "Pas de mise en cache (aucune fonctionnalité n'a été supprimée, mais la vitesse peut changer sur les wikis importants)",
-       "config-cache-accel": "Mise en cache des objets PHP (APC, APCu, XCache ou WinCache)",
+       "config-cache-accel": "Mise en cache des objets PHP (APC, APCu ou WinCache)",
        "config-cache-memcached": "Utiliser Memcached (nécessite une installation et une configuration supplémentaires)",
        "config-memcached-servers": "serveurs pour Memcached :",
        "config-memcached-help": "Liste des adresses IP à utiliser pour Memcached.\nUne par ligne, en indiquant le port à utiliser. Par exemple :\n  127.0.0.1:11211\n  192.168.1.25:1234",
index 7ed21ab..7f943f2 100644 (file)
@@ -30,7 +30,6 @@
        "config-page-existingwiki": "Vouiqui ègzistent",
        "config-env-php": "PHP $1 est enstalâ.",
        "config-memory-raised": "Lo paramètre <code>memory_limit</code> de PHP ére a $1, portâ a $2.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] est enstalâ",
        "config-apc": "[http://www.php.net/apc APC] est enstalâ",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] est enstalâ",
        "config-diff3-bad": "GNU diff3 entrovâblo.",
index 3de5773..50b124e 100644 (file)
@@ -63,7 +63,6 @@
        "config-pcre-no-utf8": "<strong>Erro fatal:</strong> Semella que o módulo PCRE do PHP foi compilado sen o soporte PCRE_UTF8.\nMediaWiki necesita soporte UTF-8 para funcionar correctamente.",
        "config-memory-raised": "O parámetro <code>memory_limit</code> do PHP é $1. Aumentado a $2.",
        "config-memory-bad": "<strong>Atención:<strong> O parámetro <code>memory_limit</code> do PHP é $1.\nProbablemente é un valor baixo de máis.\nA instalación pode fallar!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] está instalado",
        "config-apc": "[http://www.php.net/apc APC] está instalado",
        "config-apcu": "[http://www.php.net/apcu APCu] está instalado",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
index 1b69138..44f5eb2 100644 (file)
@@ -49,7 +49,6 @@
        "config-pcre-no-utf8": "'''Fatale Fähler: S PHP-Modul PCRE isch schyns ohni PCRE_UTF8-Unterstitzig kompiliert wore.'''\nMediaWiki brucht d UTF-8-Unterstitzi zum fählerfrej lauffähig syy.",
        "config-memory-raised": "Dr PHP-Parameter <code>memory_limit</code> lyt bi $1 un isch uf $2 uffegsetzt wore.",
        "config-memory-bad": "'''Warnig:''' Dr PHP-Parameter <code>memory_limit</code> lyt bi $1.\nDää Wärt isch wahrschyns z nider.\nDr Inschtallationsvorgang chennt wäge däm fählschlaa!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] isch inschtalliert",
        "config-apc": "[http://www.php.net/apc APC] isch inschtalliert",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] isch inschtalliert",
        "config-diff3-bad": "GNU diff3 isch nit gfunde wore.",
index 46d1fa3..ec3c782 100644 (file)
@@ -66,7 +66,6 @@
        "config-pcre-no-utf8": "<strong>שגיאה סופנית</strong>: נראה שמודול PCRE של PHP מהודר ללא תמיכה ב־PCRE_UTF8.\nמדיה־ויקי דורשת תמיכה ב־UTF-8 לפעילות נכונה.",
        "config-memory-raised": "ערך האפשרות <code>memory_limit</code> של PHP הוא $1, הועלה ל־$2.",
        "config-memory-bad": "'''אזהרה:''' ערך האפשרות <code>memory_limit</code> של PHP הוא $1.\nזה כנראה נמוך מדי.\nההתקנה עשויה להיכשל!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] מותקן",
        "config-apc": "[http://www.php.net/apc APC] מותקן",
        "config-apcu": "[http://www.php.net/apcu APCu] מותקן",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] מותקן",
index f461d10..5e9e1e2 100644 (file)
@@ -47,7 +47,6 @@
        "config-env-php": "PHP $1 स्थापित किया गया है।",
        "config-env-hhvm": "एचएचवीएम $1 स्थापित किया गया है।",
        "config-memory-raised": "पीएचपी की <code>memory_limit</code> सीमा $1 है, जो $2 तक बढ़ गई है।",
-       "config-xcache": "[https://xcache.lighttpd.net/ एक्सकैश] स्थापित है।",
        "config-apc": "[http://www.php.net/apc एपीसी] स्थापित है।",
        "config-apcu": "[http://www.php.net/apcu एपीसीयू] स्थापित है।",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp विनकैश] स्थापित है।",
index f278d63..343f50b 100644 (file)
@@ -57,7 +57,6 @@
        "config-pcre-no-utf8": "'''Fataler Fehler:''' Das PHP-Modul PCRE scheint ohne PCRE_UTF8-Unterstützung kompiliert worre sin.\nMediaWiki benöticht die UTF-8-Unnerstützung, um fehlerfrei looffähich zu sin.",
        "config-memory-raised": "Der PHP-Parameter <code>memory_limit</code> betruch $1 und woard uff $2 erhöcht.",
        "config-memory-bad": "'''Warnung:''' Der PHP-Parameter <code>memory_limit</code> beträcht $1.\nDer Weart ist wahrscheinlich zu niedrich.\nDer Installationsvoargang könnt doher scheitre!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] ist installiert",
        "config-apc": "[http://www.php.net/apc APC] ist installiert",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] ist installiert",
        "config-mod-security": "'''Warnung:''' Uff dem Webserver woard [https://modsecurity.org/ ModSecurity] aktiviert. Sofern falsch konfiguriert, kann das zu Probleme mit MediaWiki sowie annrer Software uff dem Server führe und es Benutzer ermöchliche beliebiche Inhalte im Wiki Renzustelle.\nFür weitre Informatione empfehle mir die [https://modsecurity.org/documentation/ Dokumentation zu ModSecurity] orrer den Kontakt zum Hoster, sofern Fehler ufftrete.",
index b72b451..1544d21 100644 (file)
@@ -53,7 +53,6 @@
        "config-pcre-no-utf8": "'''Ćežki zmylk''': Zda so, zo PCRE-modul za PHP ma so bjez PCRE_UTF8-podpěry kompilować.\nMediaWiki trjeba UTF-8-podpěru, zo by korektnje fungował.",
        "config-memory-raised": "PHP-parameter <code>memory_limit</code> je $1, je so na hódnotu $2 zwyšił.",
        "config-memory-bad": "'''Warnowanje:''' PHP-parameter <code>memory_limit</code> ma hódnotu $1,\nTo je najskerje přeniske.\nInstalacija móhła so njeporadźić!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] je instalowany",
        "config-apc": "[http://www.php.net/apc APC] je instalowany",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] je instalowany",
        "config-diff3-bad": "GNU diff3 njenamakany.",
index b1d3841..9f5e286 100644 (file)
@@ -12,7 +12,8 @@
                        "Máté",
                        "Seb35",
                        "Urbalazs",
-                       "MeskoBalazs"
+                       "MeskoBalazs",
+                       "Bencemac"
                ]
        },
        "config-desc": "A MediaWiki telepítője",
        "config-pcre-no-utf8": "<strong>Kritikus hiba:</strong> Úgy tűnik, hogy a PHP PRCE modulja PRCE_UTF8 támogatás nélkül lett fordítva.\nA MediaWikinek UTF-8-támogatásra van szüksége a helyes működéshez.",
        "config-memory-raised": "A PHP <code>memory_limit</code> beállításának értéke: $1. Meg lett növelve a következő értékre: $2.",
        "config-memory-bad": "<strong>Figyelmeztetés:</strong> A PHP <code>memory_limit</code> beállításának értéke $1.\nEz az érték valószínűleg túl kevés, a telepítés sikertelen lehet.",
-       "config-xcache": "Az [https://xcache.lighttpd.net/ XCache] telepítve van",
        "config-apc": "Az [http://www.php.net/apc APC] telepítve van",
        "config-apcu": "Az [http://www.php.net/apcu APCu] telepítve van",
        "config-wincache": "A [https://www.iis.net/download/WinCacheForPhp WinCache] telepítve van",
-       "config-no-cache-apcu": "<strong>Figyelmeztetés:</strong> nem találhatók a következők: [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] vagy [http://www.iis.net/download/WinCacheForPhp WinCache].\nAz objektum gyorsítótárazása nincs engedélyezve.",
+       "config-no-cache-apcu": "<strong>Figyelmeztetés:</strong> nem találhatók a következők: [http://www.php.net/apcu APCu] vagy [http://www.iis.net/download/WinCacheForPhp WinCache].\nAz objektum gyorsítótárazása nincs engedélyezve.",
        "config-diff3-bad": "GNU diff3 nem található.",
        "config-git": "Megtaláltam a Git verziókezelő szoftvert: <code>$1</code>.",
        "config-git-bad": "A Git verziókezelő rendszer nem található.",
        "config-cache-options": "Objektum-gyorsítótárazás beállításai:",
        "config-cache-help": "Az objektumgyorsítótárazás célja, hogy felgyorsítsa a MediaWiki működését a gyakran használt adatok gyorsítótárazásával.\nKözepes vagy nagyobb oldalak esetén erősen ajánlott a használata, de kisebb oldalak esetén is hasznos lehet.",
        "config-cache-none": "Nincs gyorsítótárazás (minden funkció működik, de nagyobb wiki esetében lassabb működést eredményezhet)",
-       "config-cache-accel": "PHP-objektumok gyorsítótárazása (APC, APCu, XCache vagy WinCache)",
+       "config-cache-accel": "PHP-objektumok gyorsítótárazása (APC, APCu vagy WinCache)",
        "config-cache-memcached": "Memcached használata (további telepítés és konfigurálás szükséges)",
        "config-memcached-servers": "Memcached-szerverek:",
        "config-memcached-help": "Azon IP-címek listája, melyeket a Memcached használhat.\nVesszővel kell elválasztani őket, és meg kell adni a portot is. Például:\n 127.0.0.1:11211\n 192.168.1.25:11211",
index 04e1141..d20b3e7 100644 (file)
@@ -59,7 +59,6 @@
        "config-pcre-no-utf8": "'''Fatal''': Le modulo PCRE de PHP pare haber essite compilate sin supporto de PCRE_UTF8.\nMediaWiki require supporto de UTF-8 pro functionar correctemente.",
        "config-memory-raised": "Le <code>memory_limit</code> de PHP es $1, elevate a $2.",
        "config-memory-bad": "'''Aviso:''' Le <code>memory_limit</code> de PHP es $1.\nIsto es probabilemente troppo basse.\nLe installation pote faller!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] es installate",
        "config-apc": "[http://www.php.net/apc APC] es installate",
        "config-apcu": "[http://www.php.net/apcu APCu] es installate",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] es installate",
index 01e5c23..6e1834f 100644 (file)
@@ -71,7 +71,6 @@
        "config-pcre-no-utf8": "'''Fatal''': Modul PCRE PHP tampaknya dikompilasi tanpa dukungan PCRE_UTF8.\nMediaWiki memerlukan dukungan UTF-8 untuk berfungsi dengan benar.",
        "config-memory-raised": "<code>memory_limit</code> PHP adalah $1, dinaikkan ke $2.",
        "config-memory-bad": "'''Peringatan:''' <code>memory_limit</code> PHP adalah $1.\nIni terlalu rendah.\nInstalasi terancam gagal!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] telah diinstal",
        "config-apc": "[http://www.php.net/apc APC] telah diinstal",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] telah diinstal",
        "config-no-cache-apcu": "<strong>Peringatan:</strong> Tidak dapat menemukan [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] atau [http://www.iis.net/download/WinCacheForPhp WinCache]. Singgahan obyek tidak diaktifkan.",
index 75511fd..78be96b 100644 (file)
@@ -34,7 +34,6 @@
        "config-copyright": "=== Höfundarréttur og skilmálar ===\n\n$1\n\nÞetta er frjáls hugbúnaður; þú mátt dreifa honum og/eða breyta samkvæmt skilmálum í almenna GNU GPL notkunarleyfinu eins og það er gefið út af Frjálsu hugbúnaðarstofnuninni; annaðhvort útgáfu 2 af GPL-leyfinu, eða (ef þér sýnist svo) einhverri nýrri útgáfu leyfisins.\n\nHugbúnaði þessum er dreift í þeirri von að hann geti verið gagnlegur, en <strong>ÁN ALLRAR ÁBYRGÐAR</strong>; einnig án þeirrar ábyrgðar sem gefin er í skyn með <strong>SELJANLEIKA</strong> eða <strong>EIGINLEIKUM TIL TILTEKINNA NOTA</strong>. Sjá almenna GNU GPL notkunarleyfið fyrir nánari upplýsingar.\n\nÞað ætti að hafa fylgt afrit af almenna <doclink href=Copying>GNU GPL notkunarleyfinu</doclink> með forritinu; ef ekki skrifið þá Fjálsu hugbúnarstofnuninni: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, eða [https://www.gnu.org/copyleft/gpl.html lestu það á netinu].",
        "config-env-php": "PHP $1 er uppsett.",
        "config-env-hhvm": "HHVM $1 er uppsett.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] er uppsett",
        "config-apc": "[http://www.php.net/apc APC] er uppsett",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] er uppsett",
        "config-diff3-bad": "GNU diff3 fannst ekki.",
index f3bc5de..d9b0dbc 100644 (file)
@@ -76,7 +76,6 @@
        "config-pcre-no-utf8": "'''Errore''': Il modulo PCRE di PHP sembra essere stato compilato senza il supporto PCRE_UTF8, ma MediaWiki lo richiede per funzionare correttamente.",
        "config-memory-raised": "Il valore <code>memory_limit</code> di PHP è $1, aumentato a $2.",
        "config-memory-bad": "''Attenzione:''' Il valore di <code>memory_limit</code> di PHP è $1.\nProbabilmente è troppo basso.\nL'installazione potrebbe non riuscire!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] è installato",
        "config-apc": "[http://www.php.net/apc APC] è installato",
        "config-apcu": "[http://www.php.net/apc APC] è installato",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] è installato",
        "config-cache-options": "Impostazioni per la cache di oggetti:",
        "config-cache-help": "La memorizzazione di oggetti nella cache è utilizzata per migliorare la velocità di MediaWiki attraverso l'allocazione nella cache dei dati utilizzati di frequente.\nPer siti di dimensioni medie e grandi, è caldamente consigliato attivare la cache, ma anche per piccoli siti se ne vedranno i benefici.",
        "config-cache-none": "Nessuna memorizzazione in cache (nessuna funzionalità viene impedita, ma sui siti wiki più grandi la velocità potrebbe risentirne)",
-       "config-cache-accel": "Mettere in cache oggetti PHP (APC, APCu, XCache o WinCache)",
+       "config-cache-accel": "Mettere in cache oggetti PHP (APC, APCu o WinCache)",
        "config-cache-memcached": "Usa Memcached (richiede ulteriori attività di installazione e configurazione)",
        "config-memcached-servers": "Server di memcached:",
        "config-memcached-help": "Elenco di indirizzi IP da utilizzare per Memcached.\nDovresti specificarne uno per riga e indicare la porta da utilizzare. Per esempio:\n 127.0.0.1:11211\n 192.168.1.25:1234",
index bfc0edc..9262dd0 100644 (file)
@@ -78,7 +78,6 @@
        "config-pcre-no-utf8": "<strong>致命的エラー:</strong> PHP の PCRE が PCRE_UTF8 対応なしでコンパイルされているようです。\nMediaWiki を正しく動作させるには、UTF-8 対応が必要です。",
        "config-memory-raised": "PHPの<code>memory_limit</code>は$1で、$2に引き上げられました。",
        "config-memory-bad": "<strong>警告:</strong> PHPの<code>memory_limit</code>に$1に設定されています。\nこの値はおそらく小さすぎます。\nインストールが失敗するおそれがあります!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] がインストール済み",
        "config-apc": "[http://www.php.net/apc APC] がインストール済み",
        "config-apcu": "[http://www.php.net/apc APC] がインストール済みです。",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] がインストール済み",
index 1897787..fb47fcd 100644 (file)
@@ -27,7 +27,6 @@
        "config-sidebar": "* [https://www.mediawiki.org მედიავიკის ვებ-გვერდი]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ka მომხმარებლების დახმარება]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ka ადმინისტრატორების დახმარება]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ka FAQ]\n----\n* <doclink href=Readme>წამიკითხე</doclink>\n* <doclink href=ReleaseNotes>ინფორმაცია გამოშვებაზე</doclink>\n* <doclink href=Copying>ლიცენზია</doclink>\n* <doclink href=UpgradeDoc>განახლება</doclink>",
        "config-env-php": "PHP $1 დაინსტალირებულია",
        "config-env-hhvm": "HHVM $1 დაინსტალირებულია.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] დაყენდა",
        "config-apc": "[http://www.php.net/apc APC] დაყენდა",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] დაყენდა",
        "config-diff3-bad": "GNU diff3 ვერ მოიძებნა.",
index c2f6987..e9314ed 100644 (file)
        "config-pcre-no-utf8": "<strong>치명:</strong> PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.\n미디어위키가 올바르게 작동하려면 UTF-8을 지원해야 합니다.",
        "config-memory-raised": "PHP의 <code>memory_limit</code>는 $1이며 $2(으)로 늘렸습니다.",
        "config-memory-bad": "<strong>경고:</strong> PHP의 <code>memory_limit</code>는 $1입니다.\n아마도 너무 낮은 것 같습니다.\n설치가 실패할 수 있습니다!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache]가 설치되었습니다",
        "config-apc": "[http://www.php.net/apc APC]가 설치되었습니다",
        "config-apcu": "[http://www.php.net/apcu APCu]가 설치되었습니다",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache]가 설치되었습니다",
-       "config-no-cache-apcu": "<strong>경고:</strong> [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] 또는 [http://www.iis.net/download/WinCacheForPhp WinCache]를 찾을 수 없습니다.\n개체 캐싱을 활성화할 수 없습니다.",
+       "config-no-cache-apcu": "<strong>경고:</strong> [http://www.php.net/apcu APCu] 또는 [http://www.iis.net/download/WinCacheForPhp WinCache]를 찾을 수 없습니다.",
        "config-mod-security": "<strong>경고:</strong> 웹 서버에 [https://modsecurity.org/ mod_security]가 허용되었습니다. 잘못 설정된 경우 미디어위키나 사용자가 임의의 내용을 게시할 수 있는 다른 소프트웨어에 대한 문제를 일으킬 수 있습니다.\n[https://modsecurity.org/documentation/ mod_security] 문서를 참고하거나 임의의 오류가 발생할 경우 호스트의 지원 요청에 문의하십시오.",
        "config-diff3-bad": "GNU diff3를 찾을 수 없습니다.",
        "config-git": "Git 버전 관리 소프트웨어를 찾았습니다: <code>$1</code>.",
        "config-cache-options": "개체 캐싱을 위한 설정:",
        "config-cache-help": "개체 캐싱은 자주 사용하는 데이터를 캐싱하여 미디어위키의 속도를 개선하는 데 사용합니다.\n큰 규모의 사이트는 이를 많이 사용하도록 권장하고 있으며, 소규모 사이트들도 물론 혜택을 볼 수 있습니다.",
        "config-cache-none": "캐시하지 않음 (기능이 삭제되지는 않지만 큰 위키 사이트에 속도가 영향을 받을 수 있습니다)",
-       "config-cache-accel": "PHP 개체 캐싱 (APC, APCu, XCache 또는 WinCache)",
+       "config-cache-accel": "PHP 개체 캐싱 (APC, APCu 또는 WinCache)",
        "config-cache-memcached": "Memcached 사용 (추가적인 설치와 설정이 필요합니다)",
        "config-memcached-servers": "Memcached 서버:",
        "config-memcached-help": "Memcached의 사용하기 위한 IP 주소 목록입니다.\n한 줄에 하나씩 사용할 포트를 지정해야 합니다. 예를 들어:\n 127.0.0.1:11211\n 192.168.1.25:1234",
index 007d6ff..2ccf4e0 100644 (file)
@@ -60,7 +60,6 @@
        "config-pcre-no-utf8": "'''Dä:''' Et PHP-Modul <i lang=\"en\">PCRE</i> schingk ohne de <i lang=\"en\">PCRE_UTF8</i>-Aandeile övversaz ze sin.\nMediaWiki bruch dä UTF-8-Krohm ävver, öm ohne Fähler loufe ze künne.",
        "config-memory-raised": "Der jrühzte zohjelasse Shpeisherbedarf vum PHP, et <code lang=\"en\">memory_limit</code>, shtund op $1 un es op $2 erop jesaz woode.",
        "config-memory-bad": "'''Opjepaß:''' Dem PHP singe Parameeter <code lang=\"en\">memory_limit</code> es $1.\nDat es wall ze winnisch.\nEt Enreeschte kunnt doh draan kappott jon!",
-       "config-xcache": "Dä <code lang=\"en\">[https://xcache.lighttpd.net/ XCache]</code> es ennjeresht.",
        "config-apc": "Dä <code lang=\"en\">[http://www.php.net/apc APC]</code> es ennjeresht.",
        "config-wincache": "Dä <code lang=\"en\">[https://www.iis.net/download/WinCacheForPhp WinCache]</code> es ennjeresht.",
        "config-no-cache-apcu": "'''Opjepaß:''' Mer kunnte dä <code lang=\"en\" xml:lang=\"en\" dir=\"rtl\">[http://www.php.net/apcu APCu]</code>, dä <code lang=\"en\" xml:lang=\"en\" dir=\"rtl\">[http://xcache.lighttpd.net/ XCache]</code> udder dä <code lang=\"en\" xml:lang=\"en\" dir=\"rtl\">[http://www.iis.net/download/WinCacheForPhp WinCache]</code> nit fenge.\nEt <i lang=\"en\" xml:lang=\"en\" dir=\"rtl\">object caching</i> es nit müjjelesch un es ußjeschalldt.",
index c81aa9e..dd2ba46 100644 (file)
@@ -26,7 +26,6 @@
        "config-page-upgradedoc": "Bilindkirin",
        "config-page-existingwiki": "Wîkiya heye",
        "config-restart": "Erê, jinûve bide destpêkirin",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] hate avakirin",
        "config-apc": "[http://www.php.net/apc APC] hate avakirin",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] hate avakirin",
        "config-diff3-bad": "GNU diff3 nehate dîtin.",
index f0b203b..66fb4ca 100644 (file)
@@ -49,7 +49,6 @@
        "config-no-db": "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.\n{{PLURAL:$2|Dësn Datebank-Typ gëtt|Dës Datebank-Type ginn}} ënnerstëtzt: $1.\n\nWann Dir PHP selwer compiléiert hutt, da rekonfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysqli</code> benotzt.\nWann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ass installéiert. Allerdengs brauch MediaWiki SQLite $2 oder méi nei. SQLite ass dofir net disponibel.",
        "config-memory-bad": "'''Opgepasst:''' De Parameter <code>memory_limit</code> vu PHP ass $1.\nDat ass wahrscheinlech ze niddreg.\nD'Installatioun kéint net funktionéieren.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] ass installéiert",
        "config-apc": "[http://www.php.net/apc APC] ass installéiert",
        "config-apcu": "[http://www.php.net/apcu APCu] ass installéiert.",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] ass installéiert",
index 23bc3c6..7a7ed57 100644 (file)
@@ -57,7 +57,6 @@
        "config-pcre-no-utf8": "'''Fatale''': o modulo PCRE de PHP pâ ch'o segge stæto compilou sença o supporto PCRE_UTF8. A MediaWiki a-o richiede pe fonçionâ corettamente.",
        "config-memory-raised": "O valô <code>memory_limit</code> de PHP o l'è $1, aomentou a $2.",
        "config-memory-bad": "''Atençion:''' O valô de <code>memory_limit</code> do PHP o l'è $1.\nFoscia o l'è troppo basso.\nL'installaçion a porriæ fallî!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] o l'è installou",
        "config-apc": "[http://www.php.net/apc APC] o l'è installou",
        "config-apcu": "[http://www.php.net/apc APC] o l'è installou",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] o l'è installou",
index feaabb2..4506139 100644 (file)
@@ -52,7 +52,6 @@
        "config-env-hhvm": "HHVM $1 yra įdiegtas.",
        "config-outdated-sqlite": "<strong>Įspėjimas:</strong> jūs turite SQLite $1, kuri yra mažesnė nei minimali reikalinga versija $2. SQLite nebus prieinama.",
        "config-memory-raised": "PHP <code>memory_limit</code> yra $1, padidintas iki $2.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] yra įdiegtas",
        "config-apc": "[http://www.php.net/apc APC] yra įdiegtas",
        "config-apcu": "[http://www.php.net/apcu APCu] yra įdiegtas",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] yra įdiegtas",
index 1496584..1a8c44a 100644 (file)
@@ -60,7 +60,6 @@
        "config-pcre-no-utf8": "<strong>Кобно</strong>: PCRE-модулот на PHP е срочен без поддршка за PCRE_UTF8.\nМедијаВики бара поддршка за UTF-8 за да може да работи правилно.",
        "config-memory-raised": "<code>memory_limit</code> за PHP изнесува $1, зголемен на $2.",
        "config-memory-bad": "<strong>Предупредување:</strong> <code>memory_limit</code> за PHP изнесува $1.\nОва е веројатно премалку.\nВоспоставката може да не успее!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] е воспоставен",
        "config-apc": "[http://www.php.net/apc APC] е воспоставен",
        "config-apcu": "[http://www.php.net/apcu APCu] е воспоставен",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] е воспоставен",
index d180abd..8e7cbee 100644 (file)
@@ -52,7 +52,6 @@
        "config-outdated-sqlite": "<strong>इशारा:</strong> आपणापाशी SQLite $1 आहे, जी किमान आवश्यक आवृत्ती $2 पेक्षा, निम्न आहे. SQLite अनुपलब्ध राहील.",
        "config-memory-raised": "पीएचपीची <code>memory_limit</code> ही $1 आहे, त्यास $2 ला वाढविली.",
        "config-memory-bad": "पीएचपीची <code>memory_limit</code> ही $1 आहे.\nही बरीच खालच्या स्तरावरची आहे.\nउभारणी अयशस्वी होऊ शकते!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] उभारली",
        "config-apc": "[http://www.php.net/apc APC] उभारली आहे",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] उभारली आहे",
        "config-diff3-bad": "GNU diff3 सापडली नाही.",
index 86e11b1..c848c42 100644 (file)
@@ -58,7 +58,6 @@
        "config-no-fts3": "<strong>Amaran:</strong> SQLite disusun tanpa [//sqlite.org/fts3.html modil FTS3], maka ciri-ciri pencarian tidak akan disediakan pada backend ini.",
        "config-pcre-old": "<strong>Amaran keras:</strong> PCRE $1 ke atas diperlukan.\nBinari PHP anda berpaut dengan PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Keterangan lanjut].",
        "config-memory-bad": "<strong>Amaran:</strong> <code>memory_limit</code> (Had memori) PHP ialah $1.\nIni mungkin terlalu rendah.\nPemasangan mungkin akan gagal!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] dipasang",
        "config-apc": "[http://www.php.net/apc APC] dipasang",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] dipasang",
        "config-mod-security": "<strong>Amaran:</strong> Pelayan web anda dihidupkan [https://modsecurity.org/ mod_security]/mod_security2. Kebanyakan konfigurasinya yang umum boleh menimbulkan kesulitan untuk MediaWiki dan perisian-perisian lain yang membolehkan pengguna untuk mengeposkan kandungan yang sewenang-wenang.\nJika boleh, ciri-ciri ini harus dimatikan. Jika tidak, rujuki [https://modsecurity.org/documentation/ dokumentasi mod_security] atau hubungi bantuan hos anda jika anda menghadapi ralat sembarangan.",
index 9b5cdf7..1763fcd 100644 (file)
@@ -31,7 +31,6 @@
        "config-env-hhvm": "اچ‌اچ‌وی‌ام $1 نصب بیه.",
        "config-unicode-using-intl": "عادی یونیکد وسه [https://pecl.php.net/intl افزونهٔ intl برای PECL] جه استفاده هاکن.",
        "config-memory-raised": "PHP's <code>memory_limit</code>, نسخهٔ $1 هسته، ونه نسخهٔ $2 ره بَیری آپگریت هاکنی.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] نصب بیه.",
        "config-apc": "[http://www.php.net/apc APC] نصب بیه.",
        "config-apcu": "[http://www.php.net/apcu APCu] نصب بیه.",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] نصب بیه.",
index d84b0ef..fa41257 100644 (file)
@@ -59,7 +59,6 @@
        "config-pcre-no-utf8": "<strong>Fatale:</strong> 'E module PCRE d' 'o PHP pare ca se so' compilate senza PCRE_UTF8 supporto.\nA MediaWiki serve nu supporto UTF-8 pe' putè funziunà apposto.",
        "config-memory-raised": "'O valore 'e PHP <code>memory_limit</code> è $1, aumentato a $2.",
        "config-memory-bad": "<strong>Attenziò:</strong> 'o valore 'e PHP <code>memory_limit</code> è $1.\nProbabbilmente troppo basso.\n'A installazione se putesse scassà!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] è installato",
        "config-apc": "[http://www.php.net/apc APC] è installato",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] è installato",
        "config-no-cache-apcu": "<strong>Attenziò:</strong> [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache] nun so' state truvate.\n'A funziona caching 'e ll'oggette non è apicciata.",
index 6d15111..b789480 100644 (file)
@@ -65,7 +65,6 @@
        "config-pcre-no-utf8": "'''Fatal''': PHPs PCRE modul ser ut til å være kompilert uten PCRE_UTF8-støtte.\nMediaWiki krever UTF-8-støtte for å fungere riktig.",
        "config-memory-raised": "PHPs <code>memory_limit</code> er $1, økt til $2.",
        "config-memory-bad": "'''Advarsel:''' PHPs <code>memory_limit</code> er $1.\nDette er sannsynligvis for lavt.\nInstallasjonen kan mislykkes!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] er installert",
        "config-apc": "[http://www.php.net/apc APC] er installert",
        "config-apcu": "[http://www.php.net/apcu APCu] er installert",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] er installert",
index d829970..81416cc 100644 (file)
@@ -77,7 +77,6 @@
        "config-pcre-no-utf8": "<strong>Onherstelbare fout:</strong> de module PRCE van PHP lijkt te zijn gecompileerd zonder ondersteuning voor PCRE_UTF8.\nMediaWiki heeft ondersteuning voor UTF-8 nodig om correct te kunnen werken.",
        "config-memory-raised": "PHP's <code>memory_limit</code> is $1 en is verhoogd tot $2.",
        "config-memory-bad": "'''Waarschuwing:''' PHP's <code>memory_limit</code> is $1.\nDit is waarschijnlijk te laag.\nDe installatie kan mislukken!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] is op dit moment geïnstalleerd",
        "config-apc": "[http://www.php.net/apc APC] is op dit moment geïnstalleerd",
        "config-apcu": "[http://www.php.net/apcu APCu] is geïnstalleerd",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] is op dit moment geïnstalleerd",
index bedf831..7ac065b 100644 (file)
@@ -41,7 +41,6 @@
        "config-env-hhvm": "HHVM $1 es installat.",
        "config-unicode-using-intl": "Utilizacion de [https://pecl.php.net/intl l'extension PECL intl] per la normalizacion Unicode.",
        "config-memory-raised": "Lo paramètre <code>memory_limit</code> de PHP èra a $1, portat a $2.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] es installat",
        "config-apc": "[http://www.php.net/apc APC] es installat",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] es installat",
        "config-diff3-bad": "GNU diff3 pas trobat.",
index e24aa54..cfe01be 100644 (file)
@@ -78,7 +78,6 @@
        "config-pcre-no-utf8": "'''Błąd krytyczny''' – wydaje się, że moduł PCRE w PHP został skompilowany bez wsparcia dla UTF‐8.\nMediaWiki wymaga wsparcia dla UTF‐8 do prawidłowego działania.",
        "config-memory-raised": "PHP <code>memory_limit</code> było ustawione na $1, zostanie zwiększone do $2.",
        "config-memory-bad": "'''Uwaga:''' PHP <code>memory_limit</code> jest ustawione na $1.\nTo jest prawdopodobnie zbyt mało.\nInstalacja może się nie udać!",
-       "config-xcache": "[Http://trac.lighttpd.net/xcache/ XCache] jest zainstalowany",
        "config-apc": "[Http://www.php.net/apc APC] jest zainstalowany",
        "config-apcu": "[http://www.php.net/apcu APCu] jest zainstalowany",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] jest zainstalowany",
index c91c0fd..e89b5db 100644 (file)
@@ -62,7 +62,6 @@
        "config-pcre-no-utf8": "'''Fatal''': ël mòdul PCRE ëd PHP a smija esse compilà sensa l'apògg PCRE_UTF8.\nMediaWiki a ciama l'apògg d'UTF8 për marcé për da bin.",
        "config-memory-raised": "<code>memory_limit</code> ëd PHP a l'é $1, aussà a $2.",
        "config-memory-bad": "'''Avis:''' <code>memory_limit</code> ëd PHP a l'é $1.\nSossì a l'é probabilment tròp bass.\nL'instalassion a peul falì!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] a l'é instalà",
        "config-apc": "[http://www.php.net/apc APC] a l'é instalà",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache]  a l'é instalà",
        "config-mod-security": "'''Avis''': Sò servent për l'aragnà a l'ha [https://modsecurity.org/ mod_security] abilità. Se mal configurà, a peul causé dij problema për MediaWiki o d'àutri programa ch'a përmëtto a j'utent dë spedì un contnù qualsëssìa.\nCh'a fasa arferiment a la [https://modsecurity.org/documentation/ mod_security documentassion] o ch'a contata l'echip ëd sò servissi s'a-j rivo dj'eror casuaj.",
index cdf88a4..68c2376 100644 (file)
@@ -30,7 +30,6 @@
        "config-restart": "هو، سر له نوي يې پيل کړه",
        "config-env-php": "د $1 PHP نصب شو.",
        "config-env-hhvm": "HHVM $1 نصب شو.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] نصب شو",
        "config-apc": "[http://www.php.net/apc APC] نصب شو",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] نصب شو",
        "config-diff3-bad": "جي ان يو ډيف3 و نه موندل شو.",
index 6b80d09..2d692ed 100644 (file)
        "config-pcre-no-utf8": "<strong>Erro fatal:</strong> O módulo PCRE do PHP parece ser compilado sem suporte a PCRE_UTF8.\nO MediaWiki requer suporte a UTF-8 para funcionar corretamente.",
        "config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
        "config-memory-bad": "<strong>Aviso:</strong> A configuração <code>memory_limit</code> do PHP é $1.\nIsso provavelmente é muito baixo.\nA instalação pode falhar!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] está instalado",
        "config-apc": "[http://www.php.net/apc APC] está instalado",
        "config-apcu": "[http://www.php.net/apcu APCu] está instalado",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
-       "config-no-cache-apcu": "<strong>Aviso:</strong> Não se pode encontrar [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nO caching de objetos não foi ativado.",
+       "config-no-cache-apcu": "<strong>Aviso:</strong> Não foram encontrados o [http://www.php.net/apcu APCu], ou o [http://www.iis.net/download/WinCacheForPhp WinCache].\nA cache de objetos não está ativa.",
        "config-mod-security": "<strong>Aviso:</strong> Seu servidor web tem [https://modsecurity.org/ mod_security2] habilitado. Muitas configurações comuns de módulo podem causar problemas para o MediaWiki ou outro software que permite aos usuários postar conteúdo arbitrário.\nSe possível, ele dever ser desativad. Consulte a [https://modsecurity.org/documentation/ documentação do mod_security] ou entre em contato com o suporte do seu host se você encontrar erros aleatórios.",
        "config-diff3-bad": "O GNU diff3 não foi encontrado.",
        "config-git": "Foi encontrado o software de controle de versão Git: <code>$1</code>.",
        "config-cache-options": "Configuração da cache de objetos:",
        "config-cache-help": "O cache de objetos é usado para melhorar o desempenho do MediaWiki, armazenando dados usados com frequência.\nSites de tamanho médio ou grande são altamente encorajados a ativar esta funcionalidade e os sites pequenos também terão alguns benefícios em fazê-lo.",
        "config-cache-none": "Sem cache (nenhuma funcionalidade é removida, mas a velocidade pode ser afetada em wikis maiores)",
-       "config-cache-accel": "Cache de objetos PHP (APC, APCu, XCache ou WinCache)",
+       "config-cache-accel": "Cache de objetos do PHP (APC, APCu, ou WinCache)",
        "config-cache-memcached": "Usar Memcached (requer instalação e configurações adicionais)",
        "config-memcached-servers": "Servidores Memcached:",
        "config-memcached-help": "Lista de endereços IP a serem usados para Memcached.\nDeve especificar um por linha e especificar a porta a ser utilizada. Por exemplo:\n 127.0.0.1:11211\n 192.168.1.25:1234",
index 8ebb7d0..7eb113c 100644 (file)
        "config-pcre-no-utf8": "'''Erro fatal''': O módulo PCRE do PHP parece ter sido compilado sem suporte PCRE_UTF8.\nO MediaWiki necessita do suporte UTF-8 para funcionar corretamente.",
        "config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
        "config-memory-bad": "<strong>Aviso:</strong> A configuração <code>memory_limit</code> do PHP é $1.\nIsto é provavelmente demasiado baixo.\nA instalação poderá falhar!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] instalada",
        "config-apc": "[http://www.php.net/apc APC] instalada",
        "config-apcu": "[http://www.php.net/apcu APCu] instalado",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] instalada",
-       "config-no-cache-apcu": "<strong>Aviso:</strong> Não foram encontrados o [http://www.php.net/apcu APCu], o [http://xcache.lighttpd.net/ XCache] ou o [http://www.iis.net/download/WinCacheForPhp WinCache].\nA cache de objetos não está ativa.",
+       "config-no-cache-apcu": "<strong>Aviso:</strong> Não foram encontrados o [http://www.php.net/apcu APCu], ou o [http://www.iis.net/download/WinCacheForPhp WinCache].\nA cache de objetos não está ativa.",
        "config-mod-security": "<strong>Aviso:</strong> O seu servidor de Internet tem o [https://modsecurity.org/ mod_security]/mod_security2 ativado. Muitas das suas configurações normais podem causar problemas ao MediaWiki e a outros programas, permitindo que os utilizadores publiquem conteúdos arbitrários.\nSe possível, isto deve ser desativado. Se não, consulte a [https://modsecurity.org/documentation/ mod_security documentação] ou peça apoio ao fornecedor do alojamento do seu servidor se encontrar erros aleatórios.",
        "config-diff3-bad": "O GNU diff3 não foi encontrado.",
        "config-git": "Foi encontrado o software de controlo de versões Git: <code>$1</code>.",
        "config-cache-options": "Configuração da cache de objetos:",
        "config-cache-help": "A cache de objetos é usada para melhorar o desempenho do MediaWiki. Armazena dados usados com frequência.\nSítios de tamanho médio ou grande são altamente encorajados a ativar esta funcionalidade e os sítios pequenos também terão alguns benefícios em fazê-lo.",
        "config-cache-none": "Sem cache (não é removida nenhuma funcionalidade, mas a velocidade de operação pode ser afectada nas wikis grandes)",
-       "config-cache-accel": "Cache de objetos do PHP (APC, APCu, XCache ou WinCache)",
+       "config-cache-accel": "Cache de objetos do PHP (APC, APCu, ou WinCache)",
        "config-cache-memcached": "Usar Memcached (requer instalação e configurações adicionais)",
        "config-memcached-servers": "Servidores Memcached:",
        "config-memcached-help": "Lista de endereços IP que serão usados para o Memcached.\nDeve-se colocar um por linha e indicar a porta a utilizar. Por exemplo:\n 127.0.0.1:11211\n 192.168.1.25:1234",
index 298a52c..0d3f312 100644 (file)
@@ -47,7 +47,6 @@
        "config-env-bad": "Verificarea mediului a fost efectuată.\nNu puteți instala MediaWiki.",
        "config-env-php": "PHP $1 este instalat.",
        "config-env-hhvm": "HHVM $1 este instalat.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] este instalat",
        "config-apc": "[http://www.php.net/apc APC] este instalat",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] este instalat",
        "config-diff3-bad": "GNU diff3 nu a fost găsit.",
index 554774b..f47e3f7 100644 (file)
        "config-pcre-no-utf8": "'''Фатальная ошибка'''. Модуль PCRE для PHP, похоже, собран без поддержки PCRE_UTF8.\nMediaWiki требует поддержки UTF-8 для корректной работы.",
        "config-memory-raised": "Ограничение на доступную PHP память (<code>memory_limit</code>) поднято с $1 до $2.",
        "config-memory-bad": "'''Внимание:''' размер PHP <code>memory_limit</code> составляет $1.\nВероятно, этого слишком мало.\nУстановка может потерпеть неудачу!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] установлен",
        "config-apc": "[http://www.php.net/apc APC] установлен",
        "config-apcu": "[http://www.php.net/apcu APCu] установлен",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] установлен",
-       "config-no-cache-apcu": "'''Внимание:''' Не найдены [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nКэширование объектов будет отключено.",
+       "config-no-cache-apcu": "<strong>Внимание:</strong> Не найдены [http://www.php.net/apcu APCu] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nКэширование объектов будет отключено.",
        "config-mod-security": "<strong>Внимание</strong>: На вашем веб-сервере включён [https://modsecurity.org/ mod_security]/mod_security2. Многие его стандартные настройки могут вызывать проблемы для MediaWiki или другого ПО, позволяющего пользователям отправлять на сервер произвольный контент.\nПо возможности он должен быть отключён. Обратитесь к [https://modsecurity.org/documentation/ документации mod_security] или в службу поддержки вашего хостинг-провайдера, если вы сталкиваетесь со случайными ошибками.",
        "config-diff3-bad": "GNU diff3 не найден.",
        "config-git": "Найдена система контроля версий Git: <code>$1</code>.",
        "config-cache-options": "Параметры кэширования объектов:",
        "config-cache-help": "Кэширование объектов используется для повышения скорости MediaWiki путем кэширования часто используемых данных.\nДля средних и больших сайтов кеширование настоятельно рекомендуется включать, а для небольших сайтов кеширование может показать преимущество.",
        "config-cache-none": "Без кэширования (никакой функционал не теряется, но крупные вики-сайты могут работать медленнее)",
-       "config-cache-accel": "Кэширование PHP-объектов (APC, APCu, XCache или WinCache)",
+       "config-cache-accel": "Кэширование PHP-объектов (APC, APCu или WinCache)",
        "config-cache-memcached": "Использовать Memcached (требует дополнительной настройки)",
        "config-memcached-servers": "Сервера Memcached:",
        "config-memcached-help": "Список IP-адресов, используемых Memcached.\nПеречислите по одному адресу на строку с указанием портов. Например:\n 127.0.0.1:11211\n 192.168.1.25:1234",
index 30b1c1c..292e636 100644 (file)
@@ -61,7 +61,6 @@
        "config-pcre-no-utf8": "<strong>Fatal:</strong> PHP's PCRE module seems tae be compiled wioot PCRE_UTF8 support.\nMediaWiki requires UTF-8 support tae function correctly.",
        "config-memory-raised": "PHP's <code>memerie_limit</code> is $1, raised til $2.",
        "config-memory-bad": "<strong>Warnishment:</strong> PHP's <code>memerie_limit</code> is $1.\nThis is proably ower low.\nThe installation micht fail!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] is installed.",
        "config-apc": "[http://www.php.net/apc APC] is installed.",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] is instawed.",
        "config-no-cache-apcu": "<strong>Wairnin:</strong> Could nae find [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] or [http://www.iis.net/download/WinCacheForPhp WinCache].\nObject cachin isna enabled.",
index 04fa30f..0bd079b 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Dbc334",
                        "Eleassar",
-                       "Yerpo"
+                       "Yerpo",
+                       "HairyFotr"
                ]
        },
        "config-desc": "Namestitveni program za MediaWiki",
@@ -50,7 +51,6 @@
        "config-env-hhvm": "HHVM $1 je nameščen.",
        "config-unicode-using-intl": "Uporaba [https://pecl.php.net/intl razširitve PECL intl] za normalizacijo unikoda.",
        "config-memory-raised": "PHP-jev <code>memory_limit</code> je $1, dvignjen na $2.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] je nameščen",
        "config-apc": "[http://www.php.net/apc APC] je nameščen",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] je nameščen",
        "config-diff3-bad": "GNU diff3 ni bilo mogoče najti.",
        "config-cc-again": "Izberi ponovno ...",
        "config-cc-not-chosen": "Izberite licenco Creative Commons, ki jo želite uporabiti, in kliknite »proceed«.",
        "config-advanced-settings": "Napredna konfiguracija",
-       "config-cache-accel": "Predpomnjenje predmetov PHP (APC, APCu, XCache ali WinCache)",
+       "config-cache-accel": "Predpomnjenje predmetov PHP (APC, APCu ali WinCache)",
        "config-cache-memcached": "Uporabi Memcached (zahteva dodatno namestitev in konfiguracijo)",
        "config-memcached-servers": "Strežniki Memcached:",
        "config-memcache-badip": "Vnesli ste neveljaven IP-naslov za Memcached: $1",
index ef0916b..335bc6a 100644 (file)
@@ -42,7 +42,6 @@
        "config-restart": "Да, покрени поново",
        "config-env-php": "PHP $1 је инсталиран.",
        "config-env-hhvm": "HHVM $1 је инсталиран.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] је инсталиран",
        "config-apc": "[http://www.php.net/apc APC] је инсталиран",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] је инсталиран",
        "config-db-type": "Тип базе података:",
index 7398b0b..74b8ac1 100644 (file)
@@ -65,7 +65,6 @@
        "config-pcre-no-utf8": "'''Kritiskt:''' PHP:s PCRE-modul verkar vara kompilerat utan PCRE_UTF8-stöd.\nMediaWiki kräver stöd för UTF-8 för att fungera korrekt.",
        "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-xcache": "[https://xcache.lighttpd.net/ XCache] är installerat",
        "config-apc": "[http://www.php.net/apc APC] är installerat",
        "config-apcu": "[http://www.php.net/apcu APCu] är installerat",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] är installerat",
index 183e740..9f7c531 100644 (file)
@@ -53,7 +53,6 @@
        "config-outdated-sqlite": "<strong>హెచ్చరిక:</strong> మీ వద్ద SQLite $1 ఉంది. అదికావలసిన వెర్షను $2 కంటే దిగువది. SQLite అందుబాటులో ఉండదు.",
        "config-memory-raised": "PHP యొక్క <code>memory_limit</code> $1, దాన్ని $2 కి పెంచాం.",
        "config-memory-bad": "<strong>హెచ్చరిక:</strong> PHP యొక్క <code>memory_limit</code> $1.\nబహుశా ఇది మరీ తక్కువ.\nస్థాపన విఫలం కావచ్చు!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] స్థాపించబడింది",
        "config-apc": "[http://www.php.net/apc APC] స్థాపించబడింది",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] స్థాపించబడింది",
        "config-diff3-bad": "GNU diff3 కనబడలేదు.",
index 5cf109c..d15387f 100644 (file)
@@ -60,7 +60,6 @@
        "config-pcre-no-utf8": "<strong>ข้อผิดพลาดร้ายแรง:</strong> โมดูล PCRE ของ PHP ดูเหมือนจะถูกคอมไพล์โดยไม่มีการรองรับ PCRE_UTF8\nMediaWiki ต้องการการรองรับ UTF-8 เพื่อให้ทำงานได้อย่างถูกต้อง",
        "config-memory-raised": "<code>memory_limit</code> ของ PHP คือ $1 ได้เพิ่มเป็น $2",
        "config-memory-bad": "<strong>คำเตือน:</strong> <code>memory_limit</code> ของ PHP คือ $1.\nเป็นไปได้ว่ามันอาจต่ำเกินไป\nการติดตั้งอาจล้มเหลวได้!",
-       "config-xcache": "มี [https://xcache.lighttpd.net/ XCache] ติดตั้งอยู่",
        "config-apc": "มี [http://www.php.net/apc APC] ติดตั้งอยู่",
        "config-apcu": "มี [http://www.php.net/apcu APCu] ติดตั้งอยู่",
        "config-wincache": "มี [https://www.iis.net/download/WinCacheForPhp WinCache] ติดตั้งอยู่",
index 6edc83c..54a2016 100644 (file)
@@ -63,7 +63,6 @@
        "config-pcre-no-utf8": "'''Malubha''': Tila tinipon ang modyul na PCRE ng PHP na wala ang suporta ng PCRE_UTF8.\nNangangailangan ang MediaWiki ng suporta ng UTF-8 upang maging tama ang pag-andar.",
        "config-memory-raised": "Ang <code>hangganan_ng_alaala</code> ng PHP ay $1, itinaas sa $2.",
        "config-memory-bad": "'''Babala:''' Ang <code>hangganan_ng_alaala</code> ng PHP ay $1.\nIto ay maaaring napakababa.\nMaaaring mabigo ang pagluluklok!",
-       "config-xcache": "Ininstala na ang [https://xcache.lighttpd.net/ XCache]",
        "config-apc": "Ininstala na ang [http://www.php.net/apc APC]",
        "config-wincache": "Ininstala na ang [https://www.iis.net/download/WinCacheForPhp WinCache]",
        "config-mod-security": "'''Babala''': Ang tagapaghain mo ng sangkasaputan ay pinagana na mayroong [https://modsecurity.org/ mod_security]. Kung mali ang kaayusan, makapagdurulot ito ng mga suliranin para sa MediaWiki o ibang mga sopwer na nagpapahintulot sa mga tagagamit na magpaskil ng hindi makatwirang nilalaman.\nSumangguni sa [https://modsecurity.org/documentation/ mod_security kasulatan] o makipag-ugnayan sa suporta ng iyong tagapagpasinaya kapag nakatagpo ng alin mang mga kamalian.",
index 41661b5..6d94297 100644 (file)
@@ -75,7 +75,6 @@
        "config-pcre-no-utf8": "<strong>Önemli hata:</strong> PHP'nin PCRE modülü PCRE_UTF8 desteği olmadan derlenmiş gözüküyor.\nMediaWiki'nin doğru çalışabilmesi için UTF-8 desteği gereklidir.",
        "config-memory-raised": "PHP'nin <code>memory_limit</code> (hafıza sınırı) değeri $1, $2'ye yükseltildi.",
        "config-memory-bad": "<strong>Uyarı:</strong> PHP'nin <code>memory_limit</code> (hafıza sınırı) değeri $1.\nBu büyük ihtimalle çok düşük.\nKurulum başarısız olabilir!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] kurulu",
        "config-apc": "[http://www.php.net/apc APC] kurulu",
        "config-apcu": "[http://www.php.net/apcu APCu] yüklendi",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] kurulu",
index f965aec..acd1281 100644 (file)
@@ -27,7 +27,6 @@
        "config-page-upgradedoc": "Яңарту",
        "config-page-existingwiki": "Хәзерге вики",
        "config-restart": "Әйе, яңадан башларга",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] куелды",
        "config-apc": "[http://www.php.net/apc APC] куелды",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] куелды",
        "config-diff3-bad": "GNU diff3 табылмады.",
index 7a1e7f0..3bfa1a0 100644 (file)
@@ -69,7 +69,6 @@
        "config-pcre-no-utf8": "'''Помилка''': PCRE-модуть PHP, вочевидь, було зібрано без підтримки PCRE_UTF8.\nMediaWiki вимагає підтримку UTF-8 для коректної роботи.",
        "config-memory-raised": "Обмеження пам'яті PHP (<code>memory_limit</code>) $1, піднято до $2.",
        "config-memory-bad": "'''Увага:''' Розмір пам'яті PHP (<code>memory_limit</code>) становить $1.\nІмовірно, це замало.\nВстановлення може не вдатись!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] встановлено",
        "config-apc": "[http://www.php.net/apc APC] встановлено",
        "config-apcu": "[http://www.php.net/apcu APCu] встановлено",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] встановлено",
index 429bece..4b9da0e 100644 (file)
@@ -62,7 +62,6 @@
        "config-pcre-no-utf8": "<strong>Lỗi chí tử:</strong> Mô đun PCRE của PHP dường như được biên dịch mà không có hỗ trợ PCRE_UTF8.\nMediaWiki yêu cầu phải có hỗ trợ UTF-8 để hoạt động chính xác.",
        "config-memory-raised": "<code>memory_limit</code> của PHP là $1, tăng lên $2.",
        "config-memory-bad": "<strong>Cảnh báo:</strong> <code>memory_limit</code> của PHP là $1.\nGiá trị này có lẽ quá thấp.\nCài đặt có thể bị thất bại!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] đã được cài đặt",
        "config-apc": "[http://www.php.net/apc APC] đã được cài đặt",
        "config-apcu": "[http://www.php.net/apcu APCu] đã được cài đặt",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] đã được cài đặt",
index d0606e0..5c5aff5 100644 (file)
@@ -39,7 +39,6 @@
        "config-env-bad": "מ'האט קאנטראלירט די סביבה.\nאיר קענט נישט אינסטאלירן מעדיעוויקי.",
        "config-env-php": "PHP $1 איז אינצטאלירט.",
        "config-env-hhvm": "HHVM $1 איז אינסטאלירט.",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] איז אינסטאלירט",
        "config-apc": "[http://www.php.net/apc APC] איז אינסטאלירט",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] איז אינסטאלירט",
        "config-diff3-bad": "GNU diff3 נישט געטראפן.",
index 640db38..635fc34 100644 (file)
        "config-pcre-no-utf8": "<strong>致命错误:</strong>PHP的PCRE模块在编译时可能没有包含PCRE_UTF8支持。\nMediaWiki需要UTF-8支持才能正常工作。",
        "config-memory-raised": "PHP的内存使用上限<code>memory_limit</code>为$1,自动提升到$2。",
        "config-memory-bad": "<strong>警告:</strong>PHP的内存使用上限<code>memory_limit</code>为$1。\n该设定可能过低,并导致安装失败!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache]已安装",
        "config-apc": "[http://www.php.net/apc APC]已安装",
        "config-apcu": "已安装[http://www.php.net/apcu APCu]",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache]已安装",
-       "config-no-cache-apcu": "<strong>警告:</strong>找不到[http://www.php.net/apcu APCu]、[http://xcache.lighttpd.net/ XCache]或[http://www.iis.net/download/WinCacheForPhp WinCache]。\n对象缓存未启用。",
+       "config-no-cache-apcu": "<strong>警告:</strong>找不到[http://www.php.net/apcu APCu]或[http://www.iis.net/download/WinCacheForPhp WinCache]。对象缓存未启用。",
        "config-mod-security": "<strong>警告:</strong>您的web服务器已启用[https://modsecurity.org/ mod_security]/mod_security2。它的很多常见配置可能导致MediaWiki及其他软件允许用户发布任意内容的问题。如果可能,这应当被禁用。否则,当您遭遇随机错误时,请参考[https://modsecurity.org/documentation/ mod_security 文档]或联络您的主机支持。",
        "config-diff3-bad": "找不到GNU diff3。",
        "config-git": "发现Git版本控制软件:<code>$1</code>",
        "config-cache-options": "对象缓存设置:",
        "config-cache-help": "对象缓存可通过缓存频繁使用的数据来提高MediaWiki的速度。高度推荐中到大型的网站启用该功能,小型网站亦能从其中受益。",
        "config-cache-none": "无缓存(不影响功能,但对较大型的wiki网站会有速度影响)",
-       "config-cache-accel": "PHP对象缓存(APC、APCu、XCache或WinCache)",
+       "config-cache-accel": "PHP对象缓存(APC、APCu或WinCache)",
        "config-cache-memcached": "使用Memcached(需要另外安装并配置)",
        "config-memcached-servers": "Memcached服务器:",
        "config-memcached-help": "用于Memcached的IP地址列表。请保持每行一条,并指定要使用的端口。例如:\n127.0.0.1:11211\n192.168.1.25:1234",
index a1f774e..acc8302 100644 (file)
        "config-pcre-no-utf8": "<strong>嚴重:</strong> PHP 的 PCRE 模組在編譯時未包含 PCRE_UTF8 支援。\nMediaWiki 需要支援 UTF-8 才可正常運作。",
        "config-memory-raised": "PHP 的記憶體使用上限 <code>memory_limit</code> 目前為 $1,自動提高到 $2。",
        "config-memory-bad": "<strong>警告:</strong>PHP 的記憶體使用上限 <code>memory_limit</code> 為 $1。\n該設定值可能過低。\n這可能導致後續的安裝失敗!",
-       "config-xcache": "[https://xcache.lighttpd.net/ XCache] 已安裝",
        "config-apc": "[http://www.php.net/apc APC] 已安裝",
        "config-apcu": "已安裝[http://www.php.net/apcu APCu]",
        "config-wincache": "[https://www.iis.net/download/WinCacheForPhp WinCache] 已安裝",
-       "config-no-cache-apcu": "<strong>警告:</strong>找不到[http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache]或[http://www.iis.net/download/WinCacheForPhp WinCache]。未開啟物件緩存。",
+       "config-no-cache-apcu": "<strong>警告:</strong>找不到[http://www.php.net/apcu APCu]或[http://www.iis.net/download/WinCacheForPhp WinCache]。未開啟物件快取。",
        "config-mod-security": "<strong>警告:</strong>您的網頁伺服器已開啟 [https://modsecurity.org/ mod_security] 模組,如果設定不恰當會導致使用者可在 MediaWiki 或其他應用程式發佈任意的內容。\n若您遇到任何問題,請參考 [https://modsecurity.org/documentation/ mod_security 文件] 或聯繫您的伺服器技術支援人員。",
        "config-diff3-bad": "找不到 GNU diff3。",
        "config-git": "找到 Git 版本控制軟體:<code>$1</code>。",
        "config-cache-options": "物件快取設定:",
        "config-cache-help": "物件快取是用來增進 MediaWiki 速度的一項功能,透過快取經常使用的資料。\n中型到大型的網站我們會建議開啟這個選項,對小型的網站也有一定程度的效果。",
        "config-cache-none": "不快取 (不會影響功能,但在大型 Wiki 網站可能會有處理速度的問題)",
-       "config-cache-accel": "使用 PHP 物件快取 (APC、APCu、XCache 或 WinCache)",
+       "config-cache-accel": "使用 PHP 物件快取 (APC、APCu、或是 WinCache)",
        "config-cache-memcached": "使用 Memcached (需要額外安裝與設定)",
        "config-memcached-servers": "Memcached 伺服器:",
        "config-memcached-help": "請列出 Memcached 伺服器的 IP 位址。\n每一行只指定一個位置並且要註明使用的埠號,例如:\n 127.0.0.1:11211\n 192.168.1.25:1234",
index 208f506..fcedf56 100644 (file)
@@ -159,7 +159,7 @@ abstract class DatabaseMysqlBase extends Database {
                        $this->reportConnectionError( $error );
                }
 
-               if ( $dbName != '' ) {
+               if ( strlen( $dbName ) ) {
                        MediaWiki\suppressWarnings();
                        $success = $this->selectDB( $dbName );
                        MediaWiki\restoreWarnings();
index 0af0e6e..04b3ea3 100644 (file)
@@ -1006,7 +1006,17 @@ class LoadBalancer implements ILoadBalancer {
                        throw new DBAccessError();
                }
 
-               if ( $domainOverride->getDatabase() !== null ) {
+               // Handle $domainOverride being a specified or an unspecified domain
+               if ( $domainOverride->getDatabase() === null ) {
+                       // Normally, an RDBMS requires a DB name specified on connection and the $server
+                       // configuration array is assumed to already specify an appropriate DB name.
+                       if ( $server['type'] === 'mysql' ) {
+                               // For MySQL, DATABASE and SCHEMA are synonyms, connections need not specify a DB,
+                               // and the DB name in $server might not exist due to legacy reasons (the default
+                               // domain used to ignore the local LB domain, even when mismatched).
+                               $server['dbname'] = null;
+                       }
+               } else {
                        $server['dbname'] = $domainOverride->getDatabase();
                        $server['schema'] = $domainOverride->getSchema();
                }
@@ -1362,7 +1372,7 @@ class LoadBalancer implements ILoadBalancer {
                $this->trxRoundId = false;
                $this->forEachOpenMasterConnection(
                        function ( IDatabase $conn ) use ( $fname, $restore ) {
-                               if ( $conn->writesOrCallbacksPending() ) {
+                               if ( $conn->writesOrCallbacksPending() || $conn->explicitTrxActive() ) {
                                        $conn->rollback( $fname, $conn::FLUSHING_ALL_PEERS );
                                }
                                if ( $restore ) {
index e2efaff..346a151 100644 (file)
@@ -301,10 +301,16 @@ class ParserOutput extends CacheTime {
                        ] );
                        $startLen = strlen( $start );
                        $end = Html::closeElement( 'div' );
+                       $endPos = strrpos( $text, $end );
                        $endLen = strlen( $end );
 
-                       if ( substr( $text, 0, $startLen ) === $start && substr( $text, -$endLen ) === $end ) {
-                               $text = substr( $text, $startLen, -$endLen );
+                       if ( substr( $text, 0, $startLen ) === $start && $endPos !== false
+                               // if the closing div is followed by real content, bail out of unwrapping
+                               && preg_match( '/^(?>\s*<!--.*?-->)*\s*$/s', substr( $text, $endPos + $endLen ) )
+                       ) {
+                               $text = substr( $text, $startLen );
+                               $text = substr( $text, 0, $endPos - $startLen )
+                                       . substr( $text, $endPos - $startLen + $endLen );
                        }
                }
 
index e3c5d8c..0a38ad1 100644 (file)
@@ -29,7 +29,6 @@
 use MediaWiki\Linker\LinkRenderer;
 use MediaWiki\Linker\LinkTarget;
 use MediaWiki\MediaWikiServices;
-use Wikimedia\Rdbms\DBReadOnlyError;
 
 /**
  * Provides the UI through which users can perform editing
@@ -244,17 +243,12 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                                $this->showTitles( $toUnwatch, $this->successMessage );
                        }
                } else {
-                       $this->clearWatchlist();
-                       $this->getUser()->invalidateCache();
 
-                       if ( count( $current ) > 0 ) {
-                               $this->successMessage = $this->msg( 'watchlistedit-raw-done' )->parse();
-                       } else {
+                       if ( count( $current ) === 0 ) {
                                return false;
                        }
 
-                       $this->successMessage .= ' ' . $this->msg( 'watchlistedit-raw-removed' )
-                               ->numParams( count( $current ) )->parse();
+                       $this->clearUserWatchedItems( $current, 'raw' );
                        $this->showTitles( $current, $this->successMessage );
                }
 
@@ -263,16 +257,28 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
 
        public function submitClear( $data ) {
                $current = $this->getWatchlist();
-               $this->clearWatchlist();
-               $this->getUser()->invalidateCache();
-               $this->successMessage = $this->msg( 'watchlistedit-clear-done' )->parse();
-               $this->successMessage .= ' ' . $this->msg( 'watchlistedit-clear-removed' )
-                       ->numParams( count( $current ) )->parse();
+               $this->clearUserWatchedItems( $current, 'clear' );
                $this->showTitles( $current, $this->successMessage );
-
                return true;
        }
 
+       /**
+        * @param array $current
+        * @param string $messageFor 'raw' or 'clear'
+        */
+       private function clearUserWatchedItems( $current, $messageFor ) {
+               $watchedItemStore = MediaWikiServices::getInstance()->getWatchedItemStore();
+               if ( $watchedItemStore->clearUserWatchedItems( $this->getUser() ) ) {
+                       $this->successMessage = $this->msg( 'watchlistedit-' . $messageFor . '-done' )->parse();
+                       $this->successMessage .= ' ' . $this->msg( 'watchlistedit-' . $messageFor . '-removed' )
+                                       ->numParams( count( $current ) )->parse();
+                       $this->getUser()->invalidateCache();
+               } else {
+                       $watchedItemStore->clearUserWatchedItemsUsingJobQueue( $this->getUser() );
+                       $this->successMessage = $this->msg( 'watchlistedit-clear-jobqueue' )->parse();
+               }
+       }
+
        /**
         * Print out a list of linked titles
         *
@@ -448,22 +454,6 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                } );
        }
 
-       /**
-        * Remove all titles from a user's watchlist
-        */
-       private function clearWatchlist() {
-               if ( $this->getConfig()->get( 'ReadOnlyWatchedItemStore' ) ) {
-                       throw new DBReadOnlyError( null, 'The watchlist is currently readonly.' );
-               }
-
-               $dbw = wfGetDB( DB_MASTER );
-               $dbw->delete(
-                       'watchlist',
-                       [ 'wl_user' => $this->getUser()->getId() ],
-                       __METHOD__
-               );
-       }
-
        /**
         * Add a list of targets to a user's watchlist
         *
index 97035c2..eeade49 100644 (file)
@@ -2509,12 +2509,17 @@ class User implements IDBAccessObject, UserIdentity {
                if ( $mode === 'refresh' ) {
                        $cache->delete( $key, 1 );
                } else {
-                       wfGetDB( DB_MASTER )->onTransactionPreCommitOrIdle(
-                               function () use ( $cache, $key ) {
-                                       $cache->delete( $key );
-                               },
-                               __METHOD__
-                       );
+                       $lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
+                       if ( $lb->hasOrMadeRecentMasterChanges() ) {
+                               $lb->getConnection( DB_MASTER )->onTransactionPreCommitOrIdle(
+                                       function () use ( $cache, $key ) {
+                                               $cache->delete( $key );
+                                       },
+                                       __METHOD__
+                               );
+                       } else {
+                               $cache->delete( $key );
+                       }
                }
        }
 
index d6d9ff0..35e824e 100644 (file)
@@ -13,10 +13,6 @@ use Wikimedia\Rdbms\LoadBalancer;
  * Database interaction & caching
  * TODO caching should be factored out into a CachingWatchedItemStore class
  *
- * Uses database because this uses User::isAnon
- *
- * @group Database
- *
  * @author Addshore
  * @since 1.27
  */
@@ -55,6 +51,11 @@ class WatchedItemStore implements WatchedItemStoreInterface, StatsdAwareInterfac
         */
        private $revisionGetTimestampFromIdCallback;
 
+       /**
+        * @var int
+        */
+       private $updateRowsPerQuery;
+
        /**
         * @var StatsdDataFactoryInterface
         */
@@ -64,18 +65,23 @@ class WatchedItemStore implements WatchedItemStoreInterface, StatsdAwareInterfac
         * @param LoadBalancer $loadBalancer
         * @param HashBagOStuff $cache
         * @param ReadOnlyMode $readOnlyMode
+        * @param int $updateRowsPerQuery
         */
        public function __construct(
                LoadBalancer $loadBalancer,
                HashBagOStuff $cache,
-               ReadOnlyMode $readOnlyMode
+               ReadOnlyMode $readOnlyMode,
+               $updateRowsPerQuery
        ) {
                $this->loadBalancer = $loadBalancer;
                $this->cache = $cache;
                $this->readOnlyMode = $readOnlyMode;
                $this->stats = new NullStatsdDataFactory();
-               $this->deferredUpdatesAddCallableUpdateCallback = [ DeferredUpdates::class, 'addCallableUpdate' ];
-               $this->revisionGetTimestampFromIdCallback = [ Revision::class, 'getTimestampFromId' ];
+               $this->deferredUpdatesAddCallableUpdateCallback =
+                       [ DeferredUpdates::class, 'addCallableUpdate' ];
+               $this->revisionGetTimestampFromIdCallback =
+                       [ Revision::class, 'getTimestampFromId' ];
+               $this->updateRowsPerQuery = $updateRowsPerQuery;
        }
 
        /**
@@ -215,6 +221,56 @@ class WatchedItemStore implements WatchedItemStoreInterface, StatsdAwareInterfac
                return $this->loadBalancer->getConnectionRef( $dbIndex, [ 'watchlist' ] );
        }
 
+       /**
+        * Deletes ALL watched items for the given user when under
+        * $updateRowsPerQuery entries exist.
+        *
+        * @since 1.30
+        *
+        * @param User $user
+        *
+        * @return bool true on success, false when too many items are watched
+        */
+       public function clearUserWatchedItems( User $user ) {
+               if ( $this->countWatchedItems( $user ) > $this->updateRowsPerQuery ) {
+                       return false;
+               }
+
+               $dbw = $this->loadBalancer->getConnectionRef( DB_MASTER );
+               $dbw->delete(
+                       'watchlist',
+                       [ 'wl_user' => $user->getId() ],
+                       __METHOD__
+               );
+               $this->uncacheAllItemsForUser( $user );
+
+               return true;
+       }
+
+       private function uncacheAllItemsForUser( User $user ) {
+               $userId = $user->getId();
+               foreach ( $this->cacheIndex as $ns => $dbKeyIndex ) {
+                       foreach ( $dbKeyIndex as $dbKey => $userIndex ) {
+                               if ( array_key_exists( $userId, $userIndex ) ) {
+                                       $this->cache->delete( $userIndex[$userId] );
+                                       unset( $this->cacheIndex[$ns][$dbKey][$userId] );
+                               }
+                       }
+               }
+
+               // Cleanup empty cache keys
+               foreach ( $this->cacheIndex as $ns => $dbKeyIndex ) {
+                       foreach ( $dbKeyIndex as $dbKey => $userIndex ) {
+                               if ( empty( $this->cacheIndex[$ns][$dbKey] ) ) {
+                                       unset( $this->cacheIndex[$ns][$dbKey] );
+                               }
+                       }
+                       if ( empty( $this->cacheIndex[$ns] ) ) {
+                               unset( $this->cacheIndex[$ns] );
+                       }
+               }
+       }
+
        /**
         * Queues a job that will clear the users watchlist using the Job Queue.
         *
index 8e263b6..2cb1ec9 100644 (file)
        "right-reupload": "Перазапіс існых файлаў",
        "right-reupload-own": "Перазапіс уласных існых файлаў",
        "right-reupload-shared": "Перазапіс файлаў з агульнага сховішча лякальнымі",
-       "right-upload_by_url": "загрузка файлаў з URL-адрасу",
+       "right-upload_by_url": "Ð\97агрузка файлаў з URL-адрасу",
        "right-purge": "ачыстка кэшу старонак бяз запыту пацьверджаньня",
        "right-autoconfirmed": "ня дзейнічаюць абмежаваньні хуткасьці па IP",
        "right-bot": "лічыцца аўтаматычным працэсам",
index 2b90dd0..79f2d7e 100644 (file)
        "nosuchusershort": "\"$1\" नाँव के कौनो प्रयोगकर्ता नइखन।\nआपन इस्पेलिंग (हिज्जे) जाँचीं।",
        "nouserspecified": "एगो प्रयोगकर्तानाँव देवे के परी।",
        "login-userblocked": "ए प्रयोगकर्ता के खाता निष्क्रिय हो चुकल बा। प्रवेश के आज्ञा नईखे।",
-       "wrongpassword": "गलत गुप्तशब्द डलले बानी।\nकृपया फिर से कोसिस करीं।",
+       "wrongpassword": "à¤\97लत à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dतानाà¤\81व à¤¯à¤¾ à¤\97à¥\81पà¥\8dतशबà¥\8dद à¤¡à¤²à¤²à¥\87 à¤¬à¤¾à¤¨à¥\80।\nà¤\95à¥\83पया à¤«à¤¿à¤° à¤¸à¥\87 à¤\95à¥\8bसिस à¤\95रà¥\80à¤\82।",
        "wrongpasswordempty": "गुप्तशब्द खाली बा। कृपया फिर से कोसिस करीं।",
        "passwordtooshort": "गुप्तशब्द कम से कम {{PLURAL:$1|1 अक्षर|$1 अक्षर}} के होवे के चाहीं।",
        "passwordtoolong": "गुप्तशब्द {{PLURAL:$1|$1 अक्षर}} से लमहर ना चाहीं।",
        "botpasswords-insert-failed": "बॉट नाँव $1 जोड़ल फेल हो गइल। का ई पहिलहीं जोड़ल जा चुकल बा?",
        "botpasswords-update-failed": "बॉट नाँव \"$1\" अपडेट कइल फेल हो गइल। का ई मिटा दिहल बा?",
        "botpasswords-created-title": "बॉट पासवर्ड बनावल गइल",
-       "botpasswords-created-body": "प्रयोगकर्ता \"$2\" के बॉट नाँव \"$1\" खातिर बॉट पासवर्ड बना दिहल गइल।",
+       "botpasswords-created-body": "{{GENDER:$2|प्रयोगकर्ता}} \"$2\" के बॉट नाँव \"$1\" खाती बॉट पासवर्ड बना दिहल गइल।",
        "botpasswords-updated-title": "बॉट पासवर्ड अपडेट भइल",
-       "botpasswords-updated-body": "प्रयोगकर्ता \"$2\" के बॉट नाँव \"$1\" खातिर बॉट पासवर्ड अपडेट भइल।",
+       "botpasswords-updated-body": "{{GENDER:$2|प्रयोगकर्ता}} \"$2\" के बॉट नाँव \"$1\" खातिर बॉट पासवर्ड अपडेट भइल।",
        "botpasswords-deleted-title": "बॉट पासवर्ड मिटावल गइल",
-       "botpasswords-deleted-body": "प्रयोगकर्ता \"$2\" के बॉट नाँव \"$1\" खातिर बॉट पासवर्ड मिटावल गइल।",
+       "botpasswords-deleted-body": "{{GENDER:$2|प्रयोगकर्ता}} \"$2\" के बॉट नाँव \"$1\" खातिर बॉट पासवर्ड मिटावल गइल।",
        "botpasswords-newpassword": "<strong>$1</strong> के संघे खाता में प्रवेश करे खातिर नया गुप्तशब्द <strong>$2</strong> बाटे। <em>भाबिस्य में हवाला देवे खातिर एकरा के रिकार्ड में दर्ज क लेईं।</em> <br> (पुरान बॉट सभ जिनहन में खाता में प्रवेश खातिर उहे लॉग इन नाँव इस्तमाल होला जे सदस्यनाँव होखे, आप सदस्यनाँव के रूप में <strong>$3</strong> आ गुप्तशब्द के रूप में <strong>$4</strong> के इस्तमाल क सकत बानी।)",
        "botpasswords-no-provider": "BotPasswordsSessionProvider उपलब्ध नइखे।",
        "botpasswords-restriction-failed": "बॉट गुप्तशब्द रोकथाम एह लॉगिन के नइखे होखे देत।",
        "yourtext": "राउर पाठ",
        "storedversion": "सुरक्षित कइल गइल संशोधन",
        "editingold": "<strong>चेतावनी: रउआँ ए पन्ना क एगो पुरान अवतरण के संपादन करत बानी।</strong>\nअगर आप एकरा के सहेज देइब, त एकरी बाद के सगरी बदलाव गायब हो जाई।",
+       "unicode-support-fail": "अइसन बुझाता कि राउर ब्राउजर यूनीकोड सपोर्ट नइखे करत। पन्ना के संपादन के जरूरत बा, एह कारन आपके संपादन ना सहेजल गइल बा।",
        "yourdiff": "अंतर",
        "copyrightwarning": "ई नोट कर लीं की {{SITENAME}} पर राउर सगरी योगदान $2 की तहत रिलीज कइल मानल जाई (ढेर जानकारी खातिर $1 देखल जाय)।\nअगर रउआँ ई नइखीं चाहत की राउर लिखल चीज के केहू दूसर बेकति बे मोह-छोह के संपादित क दे या कहीं भी बाँट दे तब अइसन चीज इहाँ मत डालीं।<br />\nरउआँ इहो सकारत बानी आ वादा करत बानी की ई चीज रउआँ खुद लिखले बानी, या फिर पब्लिक पहुँच में मौजूद या कौनों अइसने फ्री स्रोत से नकल कइले बानी।\n<strong>कौनों भी कॉपीराइट वाली चीज बिना परमीशन के इहाँ कब्बो मत डालीं!</strong>",
        "copyrightwarning2": "ई नोट कर लीं कि {{SITENAME}} पर सगरी योगदान के दुसरा योगदानकर्ता लोगन द्वारा संपादित कइल जा सकेला, बदलल या हटावल जा सकेला।\nअगर आप ई नइखीं चाहत की राउर लिखल चीज के केहू भी बे-मोहछोह के संपादित क दे, तब ए के इहाँ मत डालीं।<br />\nरउआँ इहो वादा करत बानी की आप ई खुद लिखले बानी या फिर पब्लिक पहुँच में मौजूद या अइसने कौनों फ्री स्रोत से नकल कइले बानी (ढेर जानकारी खातिर $1 देखीं)।\n<strong>बिना परमीशन के कॉपीराइट वाली चीज इहाँ कब्बो मत डालीं!</strong>",
        "contentmodelediterror": "रउआँ एह अवतरण के संपादन नइखीं कर सकत काहें से कि एकर सामग्री मॉडल <code>$1</code> बा जवन पन्ना के के वर्तमान मॉडल <code>$2</code> से अलग बाटे।",
        "recreate-moveddeleted-warn": "<strong>चेतावनी: रउआँ एगो अइसन पन्ना दुबारा बनावे जा रहल बानी जेवन पहिले हटावल जा चुकल बा</strong>\n\nआपके ई बिचार क लेवे के चाहीं की आगे संपादन कइल ठीक बा की ना।\n\nसुविधा खातिर, ए पन्ना के हटवले आ स्थानांतरण के लॉग नीचे दिहल जात बा:",
        "moveddeleted-notice": "ई पन्ना हटा दिहल गइल बा।\nसंदर्भ खातिर हटवले, सुरक्षा आ स्थानांतरण के लॉग नीचे दिहल जात बाटे।",
-       "moveddeleted-notice-recent": "माफ करीं, ई पन्ना हाले में हटा दिहल गइल बा (पछिला 24 घंटा के भीतर)।\nहटवले आ स्थानांतरण के लॉग हवाला खातिर नीचे दिहल जा रहल बा।",
+       "moveddeleted-notice-recent": "माफ करीं, ई पन्ना हाले में हटा दिहल गइल बा (पछिला 24 घंटा के भीतर)।\nहटवले, सुरक्षा आ स्थानांतरण के लॉग संदर्भ खातिर नीचे दिहल जा रहल बा।",
        "log-fulllog": "पूरा लॉग देखीं",
        "edit-hook-aborted": "संपादन के हुक निरस्त क दिहलस।\nई कौनों कारन ना बतवलस।",
        "edit-gone-missing": "पन्ना अपडेट ना हो पावल।\nबुझात बा कि ई हटा दिहल गइल बा।",
        "postedit-confirmation-created": "पन्ना बना दिहल गइल।",
        "postedit-confirmation-restored": "पन्ना के दुबारा अस्थापित कइल गइल।",
        "postedit-confirmation-saved": "राउर संपादन सहेज दिहल गइल।",
+       "postedit-confirmation-published": "राउर संपादन प्रकाशित भइल।",
        "edit-already-exists": "नया पन्ना ना बनावल जा सकत बा।\nई पहिलहीं से मौजूद बाटे।",
        "defaultmessagetext": "डिफॉल्ट संदेस पाठ",
        "content-failed-to-parse": "$2 के सामग्री, $1 मॉडल खातिर प्राप्त (पार्स) ना हो पावल: $3",
        "parser-template-loop-warning": "टेम्पलेट लूप पकड़ में आइल बा:[[$1]]",
        "template-loop-category": "टेम्पलेट लूप वाला पन्ना",
        "template-loop-category-desc": "पन्ना पर टेम्पलेट लूप बा, मने कि अइसन टेम्पलेट जे अपनहीं के दोहरा-दोहरा के काल क रहल बा।",
+       "template-loop-warning": "<strong>चेतावनी:</strong> ई पन्ना [[:$1]] के काल करत बा जे एगो टेम्पलेट लूप (एगो अनंत दोहराव वाली काल) बना रहल बा।",
        "parser-template-recursion-depth-warning": "टेम्पलेट रिकरसन (recursion) के गहिराइ सीमा पार ($1)",
        "language-converter-depth-warning": "भाषा बदलावक (language converter) के गहिराइ सीमा पार ($1)",
        "node-count-exceeded-category": "पन्ना जहाँ नोड गिनती पार हो गइल बा",
        "revdelete-reasonotherlist": "अन्य कारण",
        "revdelete-edit-reasonlist": "हटावे के कारण बदलीं",
        "revdelete-offender": "संशोधन सम्पादक:",
+       "suppressionlog": "सप्रेसन के लॉग",
        "mergehistory": "पन्नवन के इतिहास विलय करीं",
        "mergehistory-box": "दू गो पन्नवन के अवतरण विलय करीं",
        "mergehistory-from": "स्रोत पन्ना:",
        "powersearch-toggleall": "सब",
        "powersearch-togglenone": "कउनो ना",
        "search-external": "बाहरी खोज",
+       "search-error": "$1 के खोज करत समय कौनों खराबी आ गइल।",
+       "search-warning": "$1 के खोज करत समय चेतावनी आइल बा।",
        "preferences": "वरीयता",
        "mypreferences": "पसंदसेटिंग",
        "prefs-edits": "संपादन संख्या",
        "prefs-editwatchlist-clear": "आपन धियानसूची साफ करीं",
        "prefs-watchlist-days": "धियानसूची में देखावे खातिर दिन",
        "prefs-watchlist-days-max": "अधिकतम $1 {{PLURAL:$1|दिन}}",
-       "prefs-watchlist-edits": "बिसà¥\8dतारित à¤§à¤¿à¤¯à¤¾à¤¨à¤¸à¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤¦à¥\87à¤\96ावà¥\87 à¤\96ातिर à¤\85धिà¤\95तम à¤¬à¤¦à¤²à¤¾à¤µ à¤¸à¤\82à¤\96à¥\8dया:",
+       "prefs-watchlist-edits": "धियानसूची में देखावे खातिर अधिकतम बदलाव संख्या:",
        "prefs-watchlist-edits-max": "अधिकतम संख्या:1000",
        "prefs-watchlist-token": "धियानसूची टोकन:",
        "prefs-misc": "बिबिध",
        "timezoneregion-europe": "यूरोप",
        "timezoneregion-indian": "हिंद महासागर",
        "timezoneregion-pacific": "प्रशांत महासागर",
-       "allowemail": "दुसरे सदस्य से ईमेल पावल चालू",
+       "allowemail": "दुसरे सदस्य से ईमेल पावल एलाऊ करीं",
+       "email-allow-new-users-label": "एकदम नया प्रयोगकर्ता लोग से ईमेल पावल एलाऊ करीं",
+       "email-blacklist-label": "एह प्रयोगकर्ता सभ के हमरा के ईमेल करे से प्रतिबंधित करीं:",
        "prefs-searchoptions": "खोजीं",
        "prefs-namespaces": "नामस्थान",
        "default": "डिफाल्ट",
        "prefs-emailconfirm-label": "ईमेल जाँच:",
        "youremail": "ईमेल:",
        "username": "{{GENDER:$1|प्रयोगकर्तानाँव}}:",
+       "prefs-memberingroups": "जौना {{PLURAL:$1|समूह}} के {{GENDER:$2|सदस्य}} बा लोग:",
+       "group-membership-link-with-expiry": "$1 ($2 तक ले)",
        "prefs-registration": "रजिस्ट्रेशन के समय:",
        "yourrealname": "असली नाम",
        "yourlanguage": "भाषा:",
        "right-undelete": "हटावल पन्ना वापस ले आईं",
        "right-protect": "सुरक्षा स्तर बदलीं आ कास्केड-सुरक्षित पन्ना के सम्पादन करीं",
        "right-unwatchedpages": "ध्यानसूची में जवन पन्ना नइखे ओकर सूची देखीं",
+       "grant-group-email": "ईमेल भेजीं",
+       "grant-group-other": "बिबिध एक्टिविटी",
        "grant-blockusers": "प्रयोगकर्ता लोग पर रोक लगाईं आ रोक हटाईं",
        "grant-createaccount": "खाता बनाईं",
        "grant-createeditmovepage": "पन्ना बनाईं, संपादित करीं आ स्थानांतरण करीं",
+       "grant-delete": "पन्ना, रिवीजन आ लॉग एंट्री हटा सके ला",
        "grant-editmyoptions": "आपन पसंदीदा सेटिंग संपादित करीं",
        "grant-editmywatchlist": "आपन धियानसूची संपादित करीं",
        "grant-editpage": "पहिले से मौजूद पन्ना संपादित करीं",
index 0ecd719..48f961f 100644 (file)
        "yourpasswordagain": "পাসওয়ার্ড আবার লিখুন:",
        "createacct-yourpasswordagain": "পাসওয়ার্ড নিশ্চিত করুন",
        "createacct-yourpasswordagain-ph": "আবারও পাসওয়ার্ড লিখুন",
-       "userlogin-remembermypassword": "আমাকে প্রবেশ অবস্থায় রাখো",
+       "userlogin-remembermypassword": "আমাকে প্রবেশরত অবস্থায় রাখুন",
        "userlogin-signwithsecure": "নিরাপদ সংযোগ ব্যবহার করুন",
        "cannotlogin-title": "প্রবেশ করতে পারবেন না",
        "cannotlogin-text": "প্রবেশ করা সম্ভব নয়।",
        "resetpass-expired": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে। অ্যাকাউন্টে প্রবেশের জন্য অনুগ্রহ করে নতুন পাসওয়ার্ড নির্ধারণ করুন।",
        "resetpass-expired-soft": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে এবং আপনাকে একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে \"{{int:authprovider-resetpass-skip-label}}\" বাটনে ক্লিক করুন।",
        "resetpass-validity-soft": "আপনার পাসওয়ার্ড বৈধ নয়: $1\n\nদয়া করে একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে করার জন্য \"{{int:authprovider-resetpass-skip-label}}\" ক্লিক করুন।",
-       "passwordreset": "পাসà¦\93য়ারà§\8dড à¦°à¦¿à¦¸à§\87à¦\9f",
+       "passwordreset": "পাসà¦\93য়ারà§\8dড à¦ªà§\81নà¦\83সà§\8dথাপন à¦\95রà§\81ন",
        "passwordreset-text-one": "ইমেইলের মাধ্যমে একটি অস্থায়ী পাসওয়ার্ড পেতে এই ফরম পূরণ করুন।",
        "passwordreset-text-many": "{{PLURAL:$1|ইমেইলের মাধ্যমে একটি অস্থায়ী পাসওয়ার্ড পেতে ঘরগুলির একটি পূরণ করুন।}}",
        "passwordreset-disabled": "এই উইকিতে পাসওয়ার্ড রিসেটের সুবিধা নিষ্ক্রিয় রয়েছে।",
        "postedit-confirmation-created": "পাতাটি তৈরি করা হয়েছে।",
        "postedit-confirmation-restored": "পাতাটি পুনরুদ্ধার করা হয়েছে।",
        "postedit-confirmation-saved": "আপনার সম্পাদনা সংরক্ষিত হয়েছে।",
+       "postedit-confirmation-published": "আপনার সম্পাদনা প্রকাশিত হয়েছে।",
        "edit-already-exists": "নতুন পাতা সৃষ্টি করা যায়নি।\nপাতাটি ইতিমধ্যেই বিদ্যমান।",
        "defaultmessagetext": "আদি টেক্সট",
        "content-failed-to-parse": "$1 মডেলের জন্য $2 কন্টেন্ট পার্স করা যাচ্ছে না: $3",
        "doubleredirects": "দুইবার করা পুনর্নির্দেশনাসমূহ",
        "doubleredirectstext": "এই পাতায় এমন পাতাগুলোর তালিকা আছে, যেগুলো অন্য কোন পুনর্নির্দেশনা পাতায় পুনর্নির্দেশিত হয়েছে। প্রতিটি সারিতে প্রথম ও দ্বিতীয় পুনর্নির্দেশনার জন্য সংযোগ আছে এবং দ্বিতীয় পুনর্নির্দেশনাটির লক্ষ্য সংযোগটিও দেওয়া আছে। এই লক্ষ্য সংযোগটিই সাধারণত \"আসল\" লক্ষ্য পাতা, যেটিতে প্রথম পুনর্নির্দেশনাটি থেকে সংযোগ থাকা উচিত।\n<del>কেটে দেওয়া</del> ভুক্তিগুলো ঠিক করা হয়েছে।",
        "double-redirect-fixed-move": "[[$1]] সরিয়ে নেওয়া হয়েছে।\nএটি স্বয়ংক্রিয়ভাবে হালনাগাদ হয়েছে এবং এটি এখন [[$2]] এ পুনঃনির্দেশিত হয়েছে।",
-       "double-redirect-fixed-maintenance": "রক্ষণাবেক্ষণ কাজ হিসাবে [[$1]] থেকে [[$2]] এর দ্বিপুনঃর্নিদেশ স্বয়ংক্রিয়ভাবে সংশোধন করা হয়েছে।",
+       "double-redirect-fixed-maintenance": "রক্ষণাবেক্ষণ কাজ হিসাবে [[$1]] থেকে [[$2]]-এ দ্বিপুনঃর্নিদেশ স্বয়ংক্রিয়ভাবে সংশোধন করা হয়েছে",
        "double-redirect-fixer": "পুনঃনির্দেশনা মেরামতকারী",
        "brokenredirects": "অকার্যকর পুনর্নির্দেশনাসমূহ",
        "brokenredirectstext": "নিচের পুনর্নির্দেশনাগুলো অস্তিত্বহীন পাতাকে নির্দেশ করছে:",
index 14e189c..d5aa840 100644 (file)
        "passwordreset-emailtext-user": "{{SITENAME}} ($4) проектера декъашхочо $1 хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
        "passwordreset-emailelement": "Декъашхочун цӀе: \n$1\n\nХанна пароль: \n$2",
        "passwordreset-emailsentemail": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш.",
+       "passwordreset-emailsentusername": "ХӀокху декъашхочун цӀарца йихкина электронан пошта елахь, оцу тӀе пароль меттахӀоттаян хаам хьажор бу.",
        "changeemail": "Хийца электронан пошт",
        "changeemail-header": "Электронан поштан адрес хийцар",
        "changeemail-no-info": "ХӀара агӀо лело системин чугӀо.",
index 9a5e276..9e4e93f 100644 (file)
        "rcfilters-filter-excluded": "Ekskluderet",
        "rcfilters-view-tags": "Mærkede redigeringer",
        "rcfilters-view-namespaces-tooltip": "Filtrer resultater efter navnerum",
+       "rcfilters-liveupdates-button-title-off": "Vis nye ændringer når de sker",
        "rcfilters-watchlist-markseen-button": "Marker alle ændringer som set",
        "rcfilters-watchlist-edit-watchlist-button": "Rediger din liste med overvågede sider",
+       "rcfilters-watchlist-showupdated": "Ændringer til sider du ikke har besøgt siden ændringerne blev gjort vises med <strong>fed</strong>, med faste markører.",
        "rcfilters-preference-label": "Skjul den forbedrede verson af Seneste ændringer",
        "rcfilters-target-page-placeholder": "Indtast et sidenavn",
        "rcnotefrom": "Nedenfor er op til '''$1''' {{PLURAL:$5|ændring|ændringer}} siden '''$2''' vist.",
        "uploadstash-errclear": "Rydning af filerne mislykkedes.",
        "uploadstash-refresh": "Opdatér filoversigten",
        "uploadstash-thumbnail": "vis miniature",
+       "uploadstash-bad-path-unknown-type": "Ukendt type »$1«.",
+       "uploadstash-file-not-found-no-object": "Kunne ikke oprette lokalt filobjekt for miniaturebillede.",
+       "uploadstash-not-logged-in": "Ingen bruger er logget ind, filer skal tilhøre brugere.",
+       "uploadstash-wrong-owner": "Filen ($1) tilhører ikke den nuværende bruger.",
+       "uploadstash-no-such-key": "Ingen sådan nøgle ($1), kan ikke fjerne.",
+       "uploadstash-no-extension": "Udvidelsen er nul.",
+       "uploadstash-zero-length": "Filen har en længde på nul.",
        "invalid-chunk-offset": "Ugyldig segmentstart",
        "img-auth-accessdenied": "Adgang nægtet",
        "img-auth-nopathinfo": "PATH_INFO mangler.\nDin server er ikke sat op til at give denne information.\nDen bruger måske CGI og understøtter ikke img_auth.\nSe https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "listfiles_size": "Størrelse (Byte)",
        "listfiles_description": "Beskrivelse",
        "listfiles_count": "Versioner",
-       "listfiles-show-all": "Vis også gamle versioner af billeder",
+       "listfiles-show-all": "Vis også gamle versioner af filer",
        "listfiles-latestversion": "Nuværende version",
        "listfiles-latestversion-yes": "Ja",
        "listfiles-latestversion-no": "Nej",
        "filerevert-submit": "Gendan",
        "filerevert-success": "<span class=\"plainlinks\">'''[[Media:$1|$1]]''' er gendannet til [$4 version fra $2, $3].</span>",
        "filerevert-badversion": "Der findes ingen lokal udgave af denne fil med det opgivne tidsstempel.",
+       "filerevert-identical": "Den gældende version af filen er allerede identisk med den valgte.",
        "filedelete": "Slet $1",
        "filedelete-legend": "Slet fil",
        "filedelete-intro": "Du er ved at slette filen '''[[Media:$1|$1]]''' sammen med hele dens historik.",
        "doubleredirects": "Dobbelte omdirigeringer",
        "doubleredirectstext": "Dette er en liste over sider som omdirigerer til andre omdirigeringssider.\nHver linje indeholder henvisninger til den første og den anden omdirigering, såvel som til målet for den anden omdirigering som sædvanligvis er den \"rigtige\" målside som den første omdirigering burde henvise til.\n<del>Overstregede</del> poster er rettede.",
        "double-redirect-fixed-move": "[[$1]] blev flyttet.\nDen blev automatisk opdateret og er nu en omdirigering til [[$2]].",
-       "double-redirect-fixed-maintenance": "Automatisk rettelse af dobbelt omdirigering fra [[$1]] til [[$2]] som en del af en vedligeholdelsesopgave.",
+       "double-redirect-fixed-maintenance": "Automatisk rettelse af dobbelt omdirigering fra [[$1]] til [[$2]] som en del af en vedligeholdelsesopgave",
        "double-redirect-fixer": "Omdirigerings-retter",
        "brokenredirects": "Defekte omdirigeringer",
        "brokenredirectstext": "Følgende omdirigeringer peger på en side der ikke eksisterer:",
        "enotif_lastdiff": "For at se denne ændring, se $1",
        "enotif_anon_editor": "anonym bruger $1",
        "enotif_body": "Kære $WATCHINGUSERNAME\n\n$PAGEINTRO $NEWPAGE\n\nBidragyderens opsummering: $PAGESUMMARY $PAGEMINOREDIT\n\nKontakt bidragyderen:\ne-mail: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nDu vil ikke modtage flere beskeder om yderligere aktivitet medmindre du besøger denne side. På din overvågningsliste kan du også nulstille alle markeringer for de sider, du overvåger.\n\n         Med venlig hilsen {{SITENAME}}s informationssystem\n\n--\nFor at ændre dine indstillinger for e-mail-meddelelser, besøg\n{{canonicalurl:{{#special:Preferences}}}}\n\nFor at ændre indstillingerne for din overvågningsliste, besøg\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nFor at slette siden fra din overvågningsliste, besøg\n$UNWATCHURL\n\nTilbagemelding og yderligere hjælp:\n$HELPPAGE",
+       "enotif_minoredit": "Dette er en mindre ændring",
        "created": "oprettet",
        "changed": "ændret",
        "deletepage": "Slet side",
index a638833..9d06c96 100644 (file)
        "rollback-success": "Reverted edits by {{GENDER:$3|$1}};\nchanged back to last revision by {{GENDER:$4|$2}}.",
        "rollback-success-notify": "Reverted edits by $1;\nchanged back to last revision by $2. [$3 Show changes]",
        "sessionfailure-title": "Session failure",
-       "sessionfailure": "There seems to be a problem with your login session;\nthis action has been canceled as a precaution against session hijacking.\nGo back to the previous page, reload that page and then try again.",
+       "sessionfailure": "There seems to be a problem with your login session;\nthis action has been canceled as a precaution against session hijacking.\nPlease resubmit the form.",
        "changecontentmodel" : "Change content model of a page",
        "changecontentmodel-legend": "Change content model",
        "changecontentmodel-title-label": "Page title",
        "watchlistedit-clear-titles": "Titles:",
        "watchlistedit-clear-submit": "Clear the watchlist (This is permanent!)",
        "watchlistedit-clear-done": "Your watchlist has been cleared.",
+       "watchlistedit-clear-jobqueue": "Your watchlist is being cleared. This may take some time!",
        "watchlistedit-clear-removed": "{{PLURAL:$1|1 title was|$1 titles were}} removed:",
        "watchlistedit-too-many": "There are too many pages to display here.",
        "watchlisttools-clear": "Clear the watchlist",
index 082760f..19d55e4 100644 (file)
        "statistics-users-active": "Aktív szerkesztők",
        "statistics-users-active-desc": "Szerkesztők, akik csináltak valamit az elmúlt {{PLURAL:$1|egy|$1}} napban",
        "pageswithprop": "Laptulajdonsággal rendelkező lapok",
-       "pageswithprop-legend": "Lap tulajdonsággal rendelkező lapok",
-       "pageswithprop-text": "Ez a lap azokat a lapokat listázza, amelyek egy adott lap tulajdonsággal rendelkeznek.",
+       "pageswithprop-legend": "Laptulajdonsággal rendelkező lapok",
+       "pageswithprop-text": "Ez a lap azokat a lapokat listázza, amelyek egy adott laptulajdonsággal rendelkeznek.",
        "pageswithprop-prop": "Tulajdonságnév:",
        "pageswithprop-reverse": "Rendezés fordított sorrendben",
        "pageswithprop-sortbyvalue": "Rendezés a tulajdonság értéke szerint",
index ef12e21..e6fa11a 100644 (file)
        "redirect-page": "문서 ID",
        "redirect-revision": "문서 판",
        "redirect-file": "파일 이름",
-       "redirect-logid": "Log 아이디",
+       "redirect-logid": "기록 ID",
        "redirect-not-exists": "값을 찾을 수 없습니다",
        "fileduplicatesearch": "중복된 파일 검색",
        "fileduplicatesearch-summary": "파일 해시값을 이용해 중복 파일을 검색합니다.",
index a4f1d64..f3cbb7b 100644 (file)
        "watchlistedit-clear-titles": "Text above edit box containing items being watched on [[Special:Watchlist/clear]].\n{{Identical|Title}}",
        "watchlistedit-clear-submit": "Text of submit button on [[Special:Watchlist/clear]].\n{{Identical|Clear watchlist}}",
        "watchlistedit-clear-done": "A message which appears after the watchlist has been cleared using [[Special:Watchlist/clear]].",
+       "watchlistedit-clear-jobqueue": "A message which appears after the watchlist has been scheduled to be cleared using [[Special:Watchlist/clear]] and the Job Queue.",
        "watchlistedit-clear-removed": "Message on [[Special:EditWatchlist/clear]].\n\nThe message appears once the watchlist has been cleared.",
        "watchlistedit-too-many": "Message on [[Special:EditWatchlist]] that is used when there are too many titles to display.\n\nShown instead of list of the pages.",
        "watchlisttools-clear": "[[Special:Watchlist]]: Navigation link under the title.\n{{Identical|Clear watchlist}}",
index 5db9f14..d5cb44a 100644 (file)
@@ -22,6 +22,7 @@
        "tog-hideminor": "Nitaḱ bodolaḱre huḍiṅ kạmi danaṅme",
        "tog-hidepatrolled": "ᱡᱚᱲᱟᱣᱠᱟᱱ ᱥᱟᱯᱲᱟᱣᱠᱚ ᱱᱟᱣᱟ ᱵᱚᱫᱚᱞ ᱠᱷᱚᱱ ᱩᱠᱩᱭᱢᱮ",
        "tog-newpageshidepatrolled": "ᱱᱟᱣᱟ ᱥᱟᱦᱴᱟ ᱛᱟᱹᱞᱠᱟᱹ ᱠᱷᱚᱱ ᱵᱤᱰᱟᱹᱣᱠᱟᱱ ᱥᱟᱦᱴᱟᱠᱚ ᱩᱠᱩᱭᱢᱮ",
+       "tog-hidecategorization": "ᱥᱟᱦᱴᱟ ᱨᱮᱱᱟᱜ ᱛᱷᱚᱠ ᱠᱚ ᱫᱟᱱᱟᱝ",
        "tog-extendwatchlist": "Khạli nitoḱ bodolko do baṅ, joto bodolkodo ńeloḱ tạlikare phaylaomẽ.",
        "tog-usenewrc": "Nahaḱ bodolakanaḱko ar nojor reaḱ pahaṭare bodolaḱko mit́são ńelńam",
        "tog-numberheadings": "Mukhiạ kathako do actege piṛhipiṛhite sajaḱma",
@@ -50,6 +51,7 @@
        "tog-watchlisthideliu": "Ńeloḱ tạlikareaḱ ekaunṭ bolok beoharkoaḱ sompadon danaṅ hoyoḱma",
        "tog-watchlisthideanons": "Ńeloḱ tạlikare baṅ ńutamanić beoharićaḱ sompadonko danaṅ hoyoḱma",
        "tog-watchlisthidepatrolled": "Biḍạen sompadonko do ńeloḱ sakamre danaṅmẽ",
+       "tog-watchlisthidecategorization": "ᱥᱟᱦᱴᱟ ᱨᱮᱱᱟᱜ ᱛᱷᱚᱠ ᱠᱚ ᱫᱟᱱᱟᱝ",
        "tog-ccmeonemails": "E-mail reaḱ kopy kulạńme Eṭaḱ laṛcaṛko kulakome",
        "tog-diffonly": "Farak reaḱ latar sakamre babotko baṅ udugoḱma",
        "tog-showhiddencats": "Danaṅ rokom sokomko uduḱmẽ",
        "cascadeprotected": "Noa sakam do sompadon khon rukhiyạre menaḱa, karon sakam do latar reaḱ {{PLURAL:$1 gan sakam reaḱ gan sakam reaḱ}} bhitrire, oka sakam do (cascading) te rukhiyạ menaḱa:\n$2",
        "namespaceprotected": "Amaḱ do sakamko joṛao lạgit́te ạidạri banuḱ tama '''$1''' ńutumjayga.",
        "ns-specialprotected": "Asokay teaḱ sakamkodo baṅ oltoṅgea.",
+       "exception-nologin": "ᱵᱟᱢ ᱵᱚᱞᱚ ᱟᱠᱟᱱᱟ",
+       "exception-nologin-text": "ᱫᱟᱭᱟᱠᱟᱛᱮ ᱵᱚᱞᱚᱱ ᱢᱮ ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱨᱮ ᱡᱟᱦᱟᱸᱱ ᱠᱟᱹᱢᱤ ᱞᱟᱹᱜᱤᱫ",
        "virus-badscanner": "Vul konfigareson: baṅ orom vairas skenar: \"$1\"",
        "virus-scanfailed": "Esken baṅ hoelena (Code $1)",
        "virus-unknownscanner": "Baṅ urum anṭvayras:",
        "createacct-email-ph": "ᱟᱢᱟᱜ email ᱴᱷᱤᱠᱱᱟ ᱵᱚᱞᱚᱭᱢᱮ",
        "createacct-another-email-ph": "ᱤᱢᱮᱞ ᱵᱩᱴᱟᱹ ᱟᱫᱮᱨᱢᱮ",
        "createaccountmail": "E-mail hotete",
+       "createacct-realname": "ᱥᱚᱛ ᱧᱩᱛᱩᱢ (ᱚᱯᱥᱱᱟᱞ)",
        "createacct-reason": "ᱚᱡᱮ",
        "createacct-reason-ph": "ᱪᱮᱫᱟᱜ ᱟᱢ ᱮᱴᱟᱜ ᱦᱤᱥᱟᱹᱵᱮᱢ ᱛᱮᱭᱟᱨᱫᱟ",
        "createacct-submit": "ᱟᱢᱟᱜ ᱦᱤᱥᱟᱹᱵ ᱛᱮᱭᱟᱨᱢᱮ",
        "retypenew": "Doṛhate oku namber olme",
        "resetpass_submit": "Oku namber joṛao ar bhitri bolok",
        "changepassword-success": "Amaḱ oku namber do napayte bodolena!\nNitoḱ do am bhitritem boloḱkana...",
+       "botpasswords": "ᱵᱚᱴ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ",
        "botpasswords-createnew": "ᱱᱟᱶᱟ ᱵᱚᱴ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱛᱮᱭᱟᱨᱢᱮ",
        "botpasswords-label-appid": "ᱵᱚᱴ ᱧᱩᱛᱩᱢ:",
        "botpasswords-label-create": "ᱛᱮᱭᱟᱨ",
        "botpasswords-label-grants-column": "ᱦᱩᱭᱠᱟᱱ",
        "botpasswords-bad-appid": "ᱵᱚᱴ ᱧᱤᱛᱩᱢ \"$1\" ᱵᱟᱝ ᱴᱷᱤᱠᱟ᱾",
        "botpasswords-created-title": "ᱵᱚᱴ ᱩᱠᱩ ᱮᱞᱥᱚᱝ ᱛᱮᱭᱟᱨᱱᱟ",
+       "botpasswords-updated-title": "ᱵᱚᱴ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱩᱛᱷᱱᱟᱹᱣ",
        "botpasswords-deleted-title": "ᱵᱚᱴ ᱩᱠᱩ ᱮᱞᱥᱚᱝ ᱢᱩᱪᱷᱟᱹᱣᱱᱟ",
        "resetpass_forbidden": "Oku namber do baṅ bodoloklena",
        "resetpass_forbidden-reason": "ᱩᱠᱩ ᱮᱞᱥᱚᱝ ᱵᱟᱝ ᱵᱚᱫᱚᱞᱚᱜ-ᱟ: $1",
        "rightslog": "ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱟᱹᱭᱫᱟᱹᱨ ᱞᱚᱜᱽ",
        "action-edit": "ᱱᱚᱭᱟ ᱥᱟᱦᱴᱟ ᱥᱟᱯᱲᱟᱣᱢᱮ",
        "action-createaccount": "ᱱᱚᱶᱟ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱷᱟᱛᱟ ᱵᱮᱱᱟᱣ",
+       "action-minoredit": "ᱱᱚᱶᱟ ᱥᱟᱯᱲᱟᱣ ᱦᱩᱰᱤᱧ ᱢᱮᱱᱛᱮ ᱪᱤᱱᱦᱟᱹ",
+       "action-move": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱩᱪᱟᱹᱲᱢᱮ",
+       "action-move-subpages": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱩᱪᱟᱹᱲᱢᱮ, ᱟᱨ ᱥᱟᱶᱛᱮᱱ ᱥᱟᱦᱴᱟᱠᱚ",
+       "action-move-rootuserpages": "ᱢᱩᱲ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱥᱟᱦᱴᱟ ᱩᱪᱟᱹᱲᱢᱮ",
+       "action-move-categorypages": "ᱛᱷᱚᱠ ᱥᱟᱦᱴᱟᱠᱚ ᱩᱪᱟᱹᱲᱢᱮ",
+       "action-movefile": "ᱱᱚᱶᱟ ᱨᱮᱫ ᱩᱪᱟᱹᱲᱢᱮ",
+       "action-upload": "ᱱᱚᱶᱟ ᱨᱮᱫ ᱞᱟᱫᱮᱢᱮ",
+       "action-reupload": "ᱱᱚᱶᱟ ᱢᱮᱱᱟᱜ ᱨᱮᱫ ᱚᱞᱟᱹᱨᱩᱭ ᱢᱮ",
+       "action-upload_by_url": "ᱱᱚᱶᱟ ᱨᱮᱫ ᱞᱟᱫᱮᱢᱮ URL ᱠᱷᱚᱱ",
+       "action-delete": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱜᱮᱫᱽᱢᱮ",
+       "action-deleterevision": "ᱧᱮᱞᱟᱹᱨᱩᱠᱚ ᱜᱮᱫᱽᱢᱮ",
+       "action-deletelogentry": "ᱞᱚᱜᱽ ᱵᱚᱞᱚᱠᱚ ᱜᱮᱫᱽᱢᱮ",
+       "action-deletedhistory": "ᱥᱟᱦᱴᱟ ᱨᱮᱱᱟᱜ ᱜᱮᱫᱽ ᱱᱟᱜᱟᱢ ᱧᱮᱞᱢᱮ",
+       "action-deletedtext": "ᱜᱮᱫ ᱟᱠᱟᱱ ᱧᱮᱞᱟᱹᱨᱩ ᱚᱞ ᱧᱮᱞᱢᱮ",
        "action-browsearchive": "ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ ᱜᱮᱫ ᱟᱠᱟᱱᱟ ᱥᱟᱦᱴᱟᱠᱚ",
+       "action-undelete": "ᱵᱟᱝ ᱜᱮᱫᱟᱜ ᱥᱟᱦᱴᱟᱠᱚ",
+       "action-suppressrevision": "ᱧᱮᱞᱟᱹᱨᱩ ᱟᱨ ᱛᱷᱟᱯᱚᱱᱟᱹᱨᱩ ᱫᱟᱱᱟᱝ ᱧᱮᱞᱟᱹᱨᱩᱠᱚ",
        "nchanges": "$1 {{PLURAL:$1 bodol bodolko}}",
        "enhancedrc-history": "ᱱᱟᱜᱟᱢ",
        "recentchanges": "ᱨᱚᱠᱟ ᱵᱚᱫᱚᱞᱠᱚ",
        "recentchanges-label-plusminus": "ᱥᱟᱦᱴᱟ ᱫᱚ  ᱵᱚᱫᱚᱞᱮᱱᱟ ᱱᱤᱱᱟᱹᱜ ᱮᱞ ᱵᱟᱭᱤᱴᱥ ᱛᱮ",
        "recentchanges-legend-heading": "<strong>ᱞᱤᱡᱮᱸᱰ:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ᱟᱨᱦᱚᱸ ᱧᱮᱞᱢᱮ [[Special:NewPages|ᱱᱟᱶᱟ ᱥᱟᱦᱴᱟ ᱞᱤᱥᱴᱤ]])",
+       "recentchanges-submit": "ᱥᱚᱫᱚᱨ",
+       "rcfilters-tag-remove": "'$1' ᱚᱪᱚᱜ",
+       "rcfilters-activefilters": "ᱪᱚᱞᱚᱛ ᱪᱷᱟᱹᱱᱤᱠᱚ",
+       "rcfilters-advancedfilters": "ᱩᱥᱟᱹᱨᱟ ᱪᱷᱟᱹᱱᱤᱠᱚ",
+       "rcfilters-limit-title": "ᱧᱮᱞᱚᱜᱟᱜ ᱚᱨᱡᱚ ᱠᱚ",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|ᱵᱚᱫᱚᱞ|ᱵᱚᱫᱚᱞᱠᱚ}}, $2",
+       "rcfilters-date-popup-title": "ᱯᱟᱱᱛᱮ ᱞᱟᱹᱜᱤᱫ ᱚᱠᱛᱚ",
+       "rcfilters-days-title": "ᱨᱚᱠᱟ ᱫᱤᱱᱠᱚ",
+       "rcfilters-hours-title": "ᱨᱚᱠᱟ ᱴᱟᱲᱟᱝ",
+       "rcfilters-days-show-days": "$1 {{PLURAL:$1|ᱢᱟᱦᱟ|ᱢᱟᱦᱟᱸ}}",
+       "rcfilters-days-show-hours": "$1 {{PLURAL:$1|ᱴᱟᱲᱟᱝ|ᱴᱟᱬᱟᱝ}}",
+       "rcfilters-savedqueries-rename": "ᱧᱩᱢ-ᱟᱹᱨᱩ",
+       "rcfilters-savedqueries-remove": "ᱚᱪᱚᱜ",
+       "rcfilters-savedqueries-new-name-label": "ᱧᱩᱛᱩᱢ",
+       "rcfilters-savedqueries-cancel-label": "ᱵᱟᱹᱜᱤ",
        "rcnotefrom": "ᱞᱟᱛᱟᱨ {{PLURAL:$5|ᱵᱚᱫᱚᱞ|ᱵᱚᱫᱚᱞ ᱠᱚ}} <strong>$3, $4</strong> ᱠᱷᱚᱱ (<strong>$1</strong> ᱦᱟᱹᱵᱤᱡ ᱩᱫᱩᱜ-ᱮᱱᱟ)",
        "rclistfrom": "ᱱᱟᱣᱟ ᱵᱚᱫᱚᱞᱠᱚ ᱩᱫᱩᱜᱽ ᱢᱮ $3 $2 ᱠᱷᱚᱱ ᱮᱛᱦᱚᱯᱠᱟᱛᱮ",
        "rcshowhideminor": "$1 ᱱᱟᱥᱮᱭᱟᱜ ᱥᱟᱯᱲᱟᱣᱠᱩ",
        "rcshowhideanons-show": "ᱧᱮᱞ",
        "rcshowhideanons-hide": "ᱫᱟᱱᱟᱝ",
        "rcshowhidepatr": "$1 Biḍạen sompadonko",
+       "rcshowhidepatr-show": "ᱥᱚᱫᱚᱨ",
+       "rcshowhidepatr-hide": "ᱫᱟᱱᱟᱝ",
        "rcshowhidemine": "$1 ᱤᱧᱟᱜ ᱥᱟᱯᱲᱟᱣᱠᱩ",
        "rcshowhidemine-show": "ᱧᱮᱞ",
        "rcshowhidemine-hide": "ᱫᱟᱱᱟᱝ",
+       "rcshowhidecategorization": "$1 ᱥᱟᱦᱴᱟ ᱛᱷᱚᱠ",
+       "rcshowhidecategorization-show": "ᱧᱮᱞ",
+       "rcshowhidecategorization-hide": "ᱫᱟᱱᱟᱝ",
        "rclinks": "$2 din lahare $1 bodol unuduḱme",
        "diff": "ᱡᱩᱫᱟᱹ",
        "hist": "ᱱᱟᱜᱟᱢ",
        "filename": "Rẽt ńutum",
        "filedesc": "Guṭ katha",
        "fileuploadsummary": "Guṭ katha",
+       "filestatus": "ᱟᱫᱚᱞ ᱚᱵᱚᱥᱛᱟ:",
        "savefile": "Rẽt rukhiyaymẽ",
+       "upload-source": "ᱯᱷᱮᱰᱟᱛ ᱨᱮᱫ",
+       "sourcefilename": "ᱯᱷᱮᱰᱟᱛ ᱨᱮᱫᱧᱩᱢ:",
+       "sourceurl": "ᱯᱷᱮᱰᱟᱛ URL:",
        "upload-description": "Rẽt reaḱ jạṛ",
        "watchthisupload": "Noa rẽt ńelmẽ",
        "upload-file-error": "Bhitri reaḱ bhul",
+       "upload-dialog-title": "ᱨᱮᱫ ᱞᱟᱫᱮ",
+       "upload-dialog-button-cancel": "ᱵᱟᱫᱽ",
+       "upload-dialog-button-back": "ᱛᱟᱭᱚᱢ",
+       "upload-dialog-button-done": "ᱦᱩᱭᱱᱟ",
+       "upload-dialog-button-save": "ᱨᱩᱠᱷᱤᱭᱟᱹᱭᱢᱮ",
+       "upload-dialog-button-upload": "ᱞᱟᱫᱮ",
+       "upload-form-label-infoform-title": "ᱵᱩᱴᱟᱹᱠᱚ",
+       "upload-form-label-infoform-name": "ᱧᱩᱛᱩᱢ",
+       "upload-form-label-usage-filename": "ᱨᱮᱫ ᱧᱩᱛᱩᱢ",
+       "upload-form-label-own-work": "ᱱᱚᱶᱟ ᱫᱚ ᱤᱧᱟᱜ ᱠᱟᱹᱢᱤᱭᱟᱜ",
        "upload-form-label-infoform-date": "ᱢᱟᱹᱦᱤᱛ",
        "license": "Laisence benao",
        "license-header": "Laisense benao",
        "dellogpage": "Mãrao log",
        "rollbacklink": "ᱜᱷᱩᱨᱞᱟᱹᱣ ᱟᱹᱪᱩᱨ",
        "rollbacklinkcount": "ᱜᱚᱰᱟᱣ ᱨᱩᱣᱟᱹᱲ $1 {{PLURAL:$1|ᱥᱟᱯᱲᱟᱣ|ᱥᱟᱯᱲᱟᱣᱠᱚ}}",
+       "changecontentmodel-reason-label": "ᱚᱡᱮ:",
+       "changecontentmodel-submit": "ᱵᱚᱫᱚᱞ",
        "protectlogpage": "Rukhiyạy tala cạbi",
        "protectedarticle": "Rukhiyạgeya \"[[$1]]\"",
        "modifiedarticleprotection": "\"[[$1]]\" ᱞᱟᱹᱜᱤᱫ ᱨᱩᱠᱷᱭᱟᱹ ᱟᱲᱮ ᱵᱚᱫᱚᱞᱮᱱᱟ",
index 7bd0919..5983959 100644 (file)
        "search-showingresults": "{{PLURAL:$4|نتيجو <strong>$1</strong> of <strong>$3</strong>|نتيجا <strong>$1 - $2</strong> of <strong>$3</strong>}}",
        "search-nonefound": "توھان جي ڳولا جي نتيجي ۾ ڪجھہ بہ نہ لڌو.",
        "powersearch-legend": "اعليٰ ڳولا",
-       "powersearch-ns": "Ù\86اÙ\84Ù\86 Ù\84اءÙ\90 Ú\87Ú\8fÙ\8aÙ\86 Ù\88Ú\87Ù\88Ù½Ù\8aÙ\86 Û¾ Ú³Ù\88Ù\84Ú¾Ù\8aÙ\88 (سرÚ\86 Ø§Ù\90Ù\86 Ù\86Ù\8aÙ\85 Ø§Ø³Ù¾Ù\8aسز)",
+       "powersearch-ns": "Ù\86اÙ\86Ø¡Ù\8fÙ¾Ù\88Ù\84ارÙ\86 Û¾ Ú³Ù\88Ù\84Ù\8aÙ\88:",
        "powersearch-togglelabel": "چڪاسيو:",
        "powersearch-toggleall": "سڀ",
        "powersearch-togglenone": "ڪو بہ نہ",
index f905add..1a4a994 100644 (file)
        "apisandbox-request-url-label": "Адреса захтева:",
        "apisandbox-continue": "Настави",
        "apisandbox-continue-clear": "Очисти",
+       "apisandbox-multivalue-all-namespaces": "$1 (сви именски простори)",
+       "apisandbox-multivalue-all-values": "$1 (све вредности)",
        "booksources": "Штампани извори",
        "booksources-search-legend": "Тражи књижевне изворе",
        "booksources-isbn": "ISBN:",
        "tags-edit-existing-tags": "Постојеће ознаке:",
        "tags-edit-new-tags": "Нове ознаке:",
        "tags-edit-reason": "Разлог:",
+       "tags-edit-success": "Измене су примењене.",
        "comparepages": "Упоређивање страница",
        "compare-page1": "Страница 1",
        "compare-page2": "Страница 2",
        "diff-form": "Разлике",
        "diff-form-submit": "Прикажи разлике",
        "permanentlink": "Стална веза",
+       "permanentlink-revid": "ID измене",
+       "permanentlink-submit": "Иди на измену",
        "dberr-problems": "Дошло је до техничких проблема.",
        "dberr-again": "Сачекајте неколико минута и поново учитајте страницу.",
        "dberr-info": "(Не могу приступити бази података: $1)",
        "removecredentials": "Уклањање акредитива",
        "credentialsform-provider": "Врста акредитива:",
        "credentialsform-account": "Назив налога:",
+       "linkaccounts-submit": "Повежи налоге",
        "userjsispublic": "Напомена: JavaScript подстранице не би требале садржавати поверљиве информације будући да су видљиве другим корисницима.",
        "usercssispublic": "Напомена: CSS подстранице не би требале садржавати поверљиве информације будући да су видљиве другим корисницима.",
        "edit-error-short": "Грешка: $1",
index 27d5fc7..da88270 100644 (file)
@@ -34,6 +34,7 @@
         *  - {@link jQuery.plugin.textSelection#getContents getContents}
         *  - {@link jQuery.plugin.textSelection#setContents setContents}
         *  - {@link jQuery.plugin.textSelection#getSelection getSelection}
+        *  - {@link jQuery.plugin.textSelection#replaceSelection replaceSelection}
         *  - {@link jQuery.plugin.textSelection#encapsulateSelection encapsulateSelection}
         *  - {@link jQuery.plugin.textSelection#getCaretPosition getCaretPosition}
         *  - {@link jQuery.plugin.textSelection#setSelection setSelection}
                         *
                         * @private
                         * @param {string} content
+                        * @return {jQuery}
+                        * @chainable
                         */
                        setContents: function ( content ) {
-                               this.val( content );
+                               return this.each( function () {
+                                       var scrollTop = this.scrollTop;
+                                       $( this ).val( content );
+                                       // Setting this.value may scroll the textarea, restore the scroll position
+                                       this.scrollTop = scrollTop;
+                               } );
                        },
 
                        /**
                                return retval;
                        },
 
+                       /**
+                        * Replace the selected text in the textarea with the given text, or insert it at the cursor.
+                        *
+                        * @private
+                        * @param {string} value
+                        * @return {jQuery}
+                        * @chainable
+                        */
+                       replaceSelection: function ( value ) {
+                               return this.each( function () {
+                                       var allText, currSelection, startPos, endPos;
+
+                                       allText = $( this ).textSelection( 'getContents' );
+                                       currSelection = $( this ).textSelection( 'getCaretPosition', { startAndEnd: true } );
+                                       startPos = currSelection[ 0 ];
+                                       endPos = currSelection[ 1 ];
+
+                                       $( this ).textSelection( 'setContents', allText.slice( 0, startPos ) + value +
+                                               allText.slice( endPos ) );
+                                       $( this ).textSelection( 'setSelection', {
+                                               start: startPos,
+                                               end: startPos + value.length
+                                       } );
+                               } );
+                       },
+
                        /**
                         * Insert text at the beginning and end of a text selection, optionally
                         * inserting text at the caret when selection is empty.
                         */
                        encapsulateSelection: function ( options ) {
                                return this.each( function () {
-                                       var selText, scrollTop, insertText,
+                                       var selText, allText, currSelection, insertText,
+                                               combiningCharSelectionBug = false,
                                                isSample, startPos, endPos,
                                                pre = options.pre,
                                                post = options.post;
                                        }
 
                                        selText = $( this ).textSelection( 'getSelection' );
-                                       startPos = this.selectionStart;
-                                       endPos = this.selectionEnd;
-                                       scrollTop = this.scrollTop;
+                                       allText = $( this ).textSelection( 'getContents' );
+                                       currSelection = $( this ).textSelection( 'getCaretPosition', { startAndEnd: true } );
+                                       startPos = currSelection[ 0 ];
+                                       endPos = currSelection[ 1 ];
                                        checkSelectedText();
                                        if (
                                                options.selectionStart !== undefined &&
                                                endPos - startPos !== options.selectionEnd - options.selectionStart
                                        ) {
                                                // This means there is a difference in the selection range returned by browser and what we passed.
-                                               // This happens for Chrome in the case of composite characters. Ref bug #30130
+                                               // This happens for Safari 5.1, Chrome 12 in the case of composite characters. Ref T32130
                                                // Set the startPos to the correct position.
                                                startPos = options.selectionStart;
+                                               combiningCharSelectionBug = true;
+                                               // TODO: The comment above is from 2011. Is this still a problem for browsers we support today?
+                                               // Minimal test case: https://jsfiddle.net/z4q7a2ko/
                                        }
 
                                        insertText = pre + selText + post;
                                                insertText = doSplitLines( selText, pre, post );
                                        }
                                        if ( options.ownline ) {
-                                               if ( startPos !== 0 && this.value.charAt( startPos - 1 ) !== '\n' && this.value.charAt( startPos - 1 ) !== '\r' ) {
+                                               if ( startPos !== 0 && allText.charAt( startPos - 1 ) !== '\n' && allText.charAt( startPos - 1 ) !== '\r' ) {
                                                        insertText = '\n' + insertText;
                                                        pre += '\n';
                                                }
-                                               if ( this.value.charAt( endPos ) !== '\n' && this.value.charAt( endPos ) !== '\r' ) {
+                                               if ( allText.charAt( endPos ) !== '\n' && allText.charAt( endPos ) !== '\r' ) {
                                                        insertText += '\n';
                                                        post += '\n';
                                                }
                                        }
-                                       this.value = this.value.slice( 0, startPos ) + insertText +
-                                               this.value.slice( endPos );
-                                       // Setting this.value scrolls the textarea to the top, restore the scroll position
-                                       this.scrollTop = scrollTop;
+                                       if ( combiningCharSelectionBug ) {
+                                               $( this ).textSelection( 'setContents', allText.slice( 0, startPos ) + insertText +
+                                                       allText.slice( endPos ) );
+                                       } else {
+                                               $( this ).textSelection( 'replaceSelection', insertText );
+                                       }
                                        if ( isSample && options.selectPeri && ( !options.splitlines || ( options.splitlines && selText.indexOf( '\n' ) === -1 ) ) ) {
-                                               this.selectionStart = startPos + pre.length;
-                                               this.selectionEnd = startPos + pre.length + selText.length;
+                                               $( this ).textSelection( 'setSelection', {
+                                                       start: startPos + pre.length,
+                                                       end: startPos + pre.length + selText.length
+                                               } );
                                        } else {
-                                               this.selectionStart = startPos + insertText.length;
-                                               this.selectionEnd = this.selectionStart;
+                                               $( this ).textSelection( 'setSelection', {
+                                                       start: startPos + insertText.length
+                                               } );
                                        }
                                        $( this ).trigger( 'encapsulateSelection', [ options.pre, options.peri, options.post, options.ownline,
                                                options.replace, options.splitlines ] );
                        // case 'getContents': // no params
                        // case 'setContents': // no params with defaults
                        // case 'getSelection': // no params
+                       // case 'replaceSelection': // no params with defaults
                        case 'encapsulateSelection':
                                options = $.extend( {
                                        pre: '',
index 511b109..b36fd7d 100644 (file)
@@ -396,7 +396,8 @@ abstract class RevisionDbTestBase extends MediaWikiTestCase {
                $store = new RevisionStore(
                        $services->getDBLoadBalancer(),
                        $services->getService( '_SqlBlobStore' ),
-                       $services->getMainWANObjectCache()
+                       $services->getMainWANObjectCache(),
+                       $services->getCommentStore()
                );
 
                $store->setContentHandlerUseDB( $this->getContentHandlerUseDB() );
index 872a23e..57c0531 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 
+use MediaWiki\MediaWikiServices;
 use MediaWiki\Storage\BlobStoreFactory;
 use MediaWiki\Storage\MutableRevisionRecord;
 use MediaWiki\Storage\RevisionAccessException;
@@ -489,7 +490,12 @@ class RevisionTest extends MediaWikiTestCase {
 
                $cache = $this->getWANObjectCache();
 
-               $blobStore = new RevisionStore( $lb, $this->getBlobStore(), $cache );
+               $blobStore = new RevisionStore(
+                       $lb,
+                       $this->getBlobStore(),
+                       $cache,
+                       MediaWikiServices::getInstance()->getCommentStore()
+               );
                return $blobStore;
        }
 
index 6c90854..d31ca5c 100644 (file)
@@ -133,6 +133,7 @@ class RevisionStoreDbTest extends MediaWikiTestCase {
                        $loadBalancer,
                        $blobStore,
                        new WANObjectCache( [ 'cache' => new HashBagOStuff() ] ),
+                       MediaWikiServices::getInstance()->getCommentStore(),
                        $wikiId
                );
 
index bee94f3..8e8de6e 100644 (file)
@@ -4,6 +4,7 @@ namespace MediaWiki\Tests\Storage;
 
 use HashBagOStuff;
 use Language;
+use MediaWiki\MediaWikiServices;
 use MediaWiki\Storage\RevisionAccessException;
 use MediaWiki\Storage\RevisionStore;
 use MediaWiki\Storage\SqlBlobStore;
@@ -30,7 +31,8 @@ class RevisionStoreTest extends MediaWikiTestCase {
                return new RevisionStore(
                        $loadBalancer ? $loadBalancer : $this->getMockLoadBalancer(),
                        $blobStore ? $blobStore : $this->getMockSqlBlobStore(),
-                       $WANObjectCache ? $WANObjectCache : $this->getHashWANObjectCache()
+                       $WANObjectCache ? $WANObjectCache : $this->getHashWANObjectCache(),
+                       MediaWikiServices::getInstance()->getCommentStore()
                );
        }
 
@@ -597,7 +599,7 @@ class RevisionStoreTest extends MediaWikiTestCase {
                $blobStore = new SqlBlobStore( wfGetLB(), $cache );
                $blobStore->setLegacyEncoding( $encoding, Language::factory( $locale ) );
 
-               $store = new RevisionStore( wfGetLB(), $blobStore, $cache );
+               $store = $this->getRevisionStore( wfGetLB(), $blobStore, $cache );
 
                $record = $store->newRevisionFromRow(
                        $this->makeRow( $row ),
@@ -623,7 +625,7 @@ class RevisionStoreTest extends MediaWikiTestCase {
                $blobStore = new SqlBlobStore( wfGetLB(), $cache );
                $blobStore->setLegacyEncoding( 'windows-1252', Language::factory( 'en' ) );
 
-               $store = new RevisionStore( wfGetLB(), $blobStore, $cache );
+               $store = $this->getRevisionStore( wfGetLB(), $blobStore, $cache );
 
                $record = $store->newRevisionFromRow(
                        $this->makeRow( $row ),
index d6a1390..55f760f 100644 (file)
@@ -82,7 +82,7 @@ class ApiFormatBaseTest extends ApiFormatTestBase {
                $this->assertSame( "$ct; charset=utf-8", strtolower( $response->getHeader( 'Content-Type' ) ) );
                $this->assertSame( 'DENY', $response->getHeader( 'X-Frame-Options' ) );
                $this->assertSame( $file, $printer->getFilename() );
-               $this->assertSame( "inline; filename=\"$file\"", $response->getHeader( 'Content-Disposition' ) );
+               $this->assertSame( "inline; filename=$file", $response->getHeader( 'Content-Disposition' ) );
                $this->assertSame( $status, $response->getStatusCode() );
 
                return $text;
@@ -144,6 +144,49 @@ class ApiFormatBaseTest extends ApiFormatTestBase {
                ];
        }
 
+       /**
+        * @dataProvider provideFilenameEncoding
+        */
+       public function testFilenameEncoding( $filename, $expect ) {
+               $ret = parent::encodeData( [], [], [
+                       'name' => 'mock',
+                       'class' => ApiFormatBase::class,
+                       'factory' => function ( ApiMain $main, $format ) use ( $filename ) {
+                               $mock = $this->getMockFormatter( $main, $format, [ 'getFilename' ] );
+                               $mock->method( 'getFilename' )->willReturn( $filename );
+                               return $mock;
+                       },
+                       'returnPrinter' => true,
+               ] );
+               $response = $ret['printer']->getMain()->getRequest()->response();
+
+               $this->assertSame( "inline; $expect", $response->getHeader( 'Content-Disposition' ) );
+       }
+
+       public static function provideFilenameEncoding() {
+               return [
+                       'something simple' => [
+                               'foo.xyz', 'filename=foo.xyz'
+                       ],
+                       'more complicated, but still simple' => [
+                               'foo.!#$%&\'*+-^_`|~', 'filename=foo.!#$%&\'*+-^_`|~'
+                       ],
+                       'Needs quoting' => [
+                               'foo\\bar.xyz', 'filename="foo\\\\bar.xyz"'
+                       ],
+                       'Needs quoting (2)' => [
+                               'foo (bar).xyz', 'filename="foo (bar).xyz"'
+                       ],
+                       'Needs quoting (3)' => [
+                               "foo\t\"b\x5car\"\0.xyz", "filename=\"foo\x5c\t\x5c\"b\x5c\x5car\x5c\"\x5c\0.xyz\""
+                       ],
+                       'Non-ASCII characters' => [
+                               'fóo bár.🙌!',
+                               "filename=\"f\xF3o b\xE1r.?!\"; filename*=UTF-8''f%C3%B3o%20b%C3%A1r.%F0%9F%99%8C!"
+                       ]
+               ];
+       }
+
        public function testBasics() {
                $printer = $this->getMockFormatter( null, 'mock' );
                $this->assertTrue( $printer->canPrintErrors() );
@@ -220,7 +263,7 @@ class ApiFormatBaseTest extends ApiFormatTestBase {
                );
                $this->assertSame( 'DENY', $response->getHeader( 'X-Frame-Options' ) );
                $this->assertSame(
-                       'inline; filename="api-result.html"', $response->getHeader( 'Content-Disposition' )
+                       'inline; filename=api-result.html', $response->getHeader( 'Content-Disposition' )
                );
        }
 
index b8f7b73..e4056ee 100644 (file)
@@ -2,10 +2,13 @@
 
 namespace MediaWiki\Auth;
 
+use Config;
 use MediaWiki\Session\SessionInfo;
 use MediaWiki\Session\UserInfo;
+use Psr\Log\LoggerInterface;
 use Psr\Log\LogLevel;
 use StatusValue;
+use WebRequest;
 use Wikimedia\ScopedCallback;
 use Wikimedia\TestingAccessWrapper;
 
@@ -19,7 +22,7 @@ class AuthManagerTest extends \MediaWikiTestCase {
        protected $request;
        /** @var Config */
        protected $config;
-       /** @var \\Psr\\Log\\LoggerInterface */
+       /** @var LoggerInterface */
        protected $logger;
 
        protected $preauthMocks = [];
index fa1cfc9..356ebe5 100644 (file)
@@ -376,14 +376,14 @@ class LBFactoryTest extends MediaWikiTestCase {
                $db = $lb->getConnection( DB_MASTER, [], '' );
 
                $this->assertEquals(
-                       $wgDBname,
+                       '',
                        $db->getDomainId(),
-                       'Main domain ID handle used; same DB name'
+                       'Null domain ID handle used'
                );
                $this->assertEquals(
-                       $wgDBname,
+                       '',
                        $db->getDBname(),
-                       'Main domain ID handle used; same DB name'
+                       'Null domain ID handle used'
                );
                $this->assertEquals(
                        '',
@@ -446,16 +446,16 @@ class LBFactoryTest extends MediaWikiTestCase {
                $dbname = 'unittest-domain'; // explodes if DB is selected
                $factory = $this->newLBFactoryMulti(
                        [ 'localDomain' => ( new DatabaseDomain( $dbname, null, '' ) )->getId() ],
-                       [ 'dbFilePath' => $dbPath ]
+                       [
+                               'dbFilePath' => $dbPath,
+                               'dbName' => 'do_not_select_me' // explodes if DB is selected
+                       ]
                );
                $lb = $factory->getMainLB();
                /** @var Database $db */
                $db = $lb->getConnection( DB_MASTER, [], '' );
 
-               $this->assertEquals(
-                       $wgDBname,
-                       $db->getDomainID()
-               );
+               $this->assertEquals( '', $db->getDomainID(), "Null domain used" );
 
                $this->assertEquals(
                        $this->quoteTable( $db, 'page' ),
index 8d17d21..0390aeb 100644 (file)
@@ -12,7 +12,17 @@ use Wikimedia\ScopedCallback;
  * @group Parser
  * @group ParserTests
  *
- * @todo covers tags
+ * @covers Parser
+ * @covers BlockLevelPass
+ * @covers CoreParserFunctions
+ * @covers CoreTagHooks
+ * @covers Sanitizer
+ * @covers Preprocessor
+ * @covers Preprocessor_DOM
+ * @covers Preprocessor_Hash
+ * @covers DateFormatter
+ * @covers LinkHolderArray
+ * @covers StripState
  */
 class ParserIntegrationTest extends PHPUnit_Framework_TestCase {
 
index efcc4e0..1f3ee67 100644 (file)
@@ -349,6 +349,11 @@ EOF
                        'Unwrap without a mw-parser-output wrapper' => [
                                [ 'unwrap' => true ], [], '<div class="foobar">Content</div>', '<div class="foobar">Content</div>'
                        ],
+                       'Unwrap with extra comment at end' => [
+                               [ 'unwrap' => true ], [], '<div class="mw-parser-output"><p>Test document.</p></div>
+<!-- Saved in parser cache... -->', '<p>Test document.</p>
+<!-- Saved in parser cache... -->'
+                       ],
                ];
                // phpcs:enable
        }
index 61b62aa..3102929 100644 (file)
@@ -106,6 +106,23 @@ class WatchedItemStoreIntegrationTest extends MediaWikiTestCase {
                );
        }
 
+       public function testWatchBatchAndClearItems() {
+               $user = $this->getUser();
+               $title1 = Title::newFromText( 'WatchedItemStoreIntegrationTestPage1' );
+               $title2 = Title::newFromText( 'WatchedItemStoreIntegrationTestPage2' );
+               $store = MediaWikiServices::getInstance()->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $user, [ $title1, $title2 ] );
+
+               $this->assertTrue( $store->isWatched( $user, $title1 ) );
+               $this->assertTrue( $store->isWatched( $user, $title2 ) );
+
+               $store->clearUserWatchedItems( $user );
+
+               $this->assertFalse( $store->isWatched( $user, $title1 ) );
+               $this->assertFalse( $store->isWatched( $user, $title2 ) );
+       }
+
        public function testUpdateResetAndSetNotificationTimestamp() {
                $user = $this->getUser();
                $otherUser = ( new TestUser( 'WatchedItemStoreIntegrationTestUser_otherUser' ) )->getUser();
index 6dbb106..52e653c 100644 (file)
@@ -2,6 +2,7 @@
 use MediaWiki\Linker\LinkTarget;
 use Wikimedia\Rdbms\LoadBalancer;
 use Wikimedia\ScopedCallback;
+use Wikimedia\TestingAccessWrapper;
 
 /**
  * @author Addshore
@@ -104,10 +105,82 @@ class WatchedItemStoreUnitTest extends MediaWikiTestCase {
                return new WatchedItemStore(
                        $loadBalancer,
                        $cache,
-                       $readOnlyMode
+                       $readOnlyMode,
+                       1000
                );
        }
 
+       public function testClearWatchedItems() {
+               $user = $this->getMockNonAnonUserWithId( 7 );
+
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'selectField' )
+                       ->with(
+                               'watchlist',
+                               'COUNT(*)',
+                               [
+                                       'wl_user' => $user->getId(),
+                               ],
+                               $this->isType( 'string' )
+                       )
+                       ->will( $this->returnValue( 12 ) );
+               $mockDb->expects( $this->once() )
+                       ->method( 'delete' )
+                       ->with(
+                               'watchlist',
+                               [ 'wl_user' => 7 ],
+                               $this->isType( 'string' )
+                       );
+
+               $mockCache = $this->getMockCache();
+               $mockCache->expects( $this->never() )->method( 'get' );
+               $mockCache->expects( $this->never() )->method( 'set' );
+               $mockCache->expects( $this->once() )
+                       ->method( 'delete' )
+                       ->with( 'RM-KEY' );
+
+               $store = $this->newWatchedItemStore(
+                       $this->getMockLoadBalancer( $mockDb ),
+                       $mockCache,
+                       $this->getMockReadOnlyMode()
+               );
+               TestingAccessWrapper::newFromObject( $store )
+                       ->cacheIndex = [ 0 => [ 'F' => [ 7 => 'RM-KEY', 9 => 'KEEP-KEY' ] ] ];
+
+               $this->assertTrue( $store->clearUserWatchedItems( $user ) );
+       }
+
+       public function testClearWatchedItems_tooManyItemsWatched() {
+               $user = $this->getMockNonAnonUserWithId( 7 );
+
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'selectField' )
+                       ->with(
+                               'watchlist',
+                               'COUNT(*)',
+                               [
+                                       'wl_user' => $user->getId(),
+                               ],
+                               $this->isType( 'string' )
+                       )
+                       ->will( $this->returnValue( 99999 ) );
+
+               $mockCache = $this->getMockCache();
+               $mockCache->expects( $this->never() )->method( 'get' );
+               $mockCache->expects( $this->never() )->method( 'set' );
+               $mockCache->expects( $this->never() )->method( 'delete' );
+
+               $store = $this->newWatchedItemStore(
+                       $this->getMockLoadBalancer( $mockDb ),
+                       $mockCache,
+                       $this->getMockReadOnlyMode()
+               );
+
+               $this->assertFalse( $store->clearUserWatchedItems( $user ) );
+       }
+
        public function testCountWatchedItems() {
                $user = $this->getMockNonAnonUserWithId( 1 );